Skip to content
Snippets Groups Projects
ChangeLog 4.07 MiB
Newer Older
2023-04-03 15:49 +0000  Asterisk Development Team <asteriskteam@digium.com>

	* asterisk 20.2.1 Released.

2023-03-29 13:49 +0000 [f8dfbaf225]  Mike Bradeen <mbradeen@sangoma.com>

	* res_pjsip_pubsub: subscription cleanup changes

	  There are two main parts of the change associated with this
	  commit. These are driven by the change in call order of
	  pubsub_on_rx_refresh and pubsub_on_evsub_state by pjproject
	  when an in-dialog SUBSCRIBE is received.

	  First, the previous behavior was for pjproject to call
	  pubsub_on_rx_refresh before calling pubsub_on_evsub_state
	  when an in-dialog SUBSCRIBE was received that changes the
	  subscription state.

	  If that change was a termination due to a re-SUBSCRIBE with
	  an expires of 0, we used to use the call to pubsub_on_rx_refresh
	  to set the substate of the evsub to TERMINATE_PENDING before
	  pjproject could call pubsub_on_evsub_state.

	  This substate let pubsub_on_evsub_state know that the
	  subscription TERMINATED event could be ignored as there was
	  still a subsequent NOTIFY that needed to be generated and
	  another call to pubsub_on_evsub_state to come with it.

	  That NOTIFY was sent via serialized_pubsub_on_refresh_timeout
	  which would see the TERMINATE_PENDING state and transition it
	  to TERMINATE_IN_PROGRESS before triggering another call to
	  pubsub_on_evsub_state (which now would clean up the evsub.)

	  The new pjproject behavior is to call pubsub_on_evsub_state
	  before pubsub_on_rx_refresh. This means we no longer can set
	  the state to TERMINATE_PENDING to tell pubsub_on_evsub_state
	  that it can ignore the first TERMINATED event.

	  To handle this, we now look directly at the event type,
	  method type and the expires value to determine whether we
	  want to ignore the event or use it to trigger the evsub
	  cleanup.

	  Second, pjproject now expects the NOTIFY to actually be sent
	  during pubsub_on_rx_refresh and avoids the protocol violation
	  inherent in sending a NOTIFY before the SUBSCRIBE is
	  acknowledged by caching the sent NOTIFY then sending it
	  after responding to the SUBSCRIBE.

	  This requires we send the NOTIFY using the non-serialized
	  pubsub_on_refresh_timeout directly and let pjproject handle
	  the protocol violation.

	  ASTERISK-30469

	  Change-Id: I05c1d91a44fe28244ae93faa4a2268a3332b5fd7

2023-03-19 16:30 +0000 [6e50550d28]  Sean Bright <sean@seanbright.com>

	* Revert "pbx_ael: Global variables are not expanded."

	  This reverts commit 56051d1ac5115ff8c55b920fc441613c487fb512.

	  Reason for revert: Behavior change that breaks existing dialplan.

	  ASTERISK-30472 #close

	  Change-Id: I83bed3b800d36228a04ded0a6164b795f7f16bd6

2023-03-09 17:17 +0000  Asterisk Development Team <asteriskteam@digium.com>

	* asterisk 20.2.0 Released.

74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638 639 640 641 642 643 644 645 646 647 648 649 650 651 652 653 654 655 656 657 658 659 660 661 662 663 664 665 666 667 668 669 670 671 672 673 674 675 676 677 678 679 680 681 682 683 684 685 686 687 688 689 690 691 692 693 694 695 696 697 698 699 700 701 702 703 704 705 706 707 708 709 710 711 712 713 714 715 716 717 718 719 720 721 722 723 724 725 726 727 728 729 730 731 732 733 734 735 736 737 738 739 740 741 742 743 744 745 746 747 748 749 750 751 752 753 754 755 756 757 758 759 760 761 762 763 764 765 766 767 768 769 770 771 772 773 774 775 776 777 778 779 780 781 782 783 784 785 786 787 788 789 790 791 792 793 794 795 796 797 798 799 800 801 802 803 804 805 806 807 808 809 810 811 812 813 814 815 816 817 818 819 820 821 822 823 824 825 826 827 828 829 830 831 832 833 834 835 836 837 838 839 840 841 842 843 844 845 846 847 848 849 850 851 852 853 854 855 856 857 858 859 860 861 862 863 864 865 866 867 868 869 870 871 872 873 874 875 876 877 878 879 880 881 882 883 884 885 886 887 888 889 890 891 892 893 894 895 896 897 898 899 900 901 902 903 904 905 906 907 908 909 910 911 912 913 914 915 916 917 918 919 920 921 922 923 924 925 926 927 928 929 930 931 932 933 934 935 936 937 938 939 940 941 942 943 944 945 946 947 948 949 950 951 952 953 954 955 956 957 958 959 960 961 962 963 964 965 966 967 968 969 970 971 972 973 974 975 976 977 978 979 980 981 982 983 984 985 986 987 988 989 990 991 992 993 994 995 996 997 998 999 1000
2023-03-02 16:45 +0000  Asterisk Development Team <asteriskteam@digium.com>

	* asterisk 20.2.0-rc1 Released.

2023-03-02 10:37 +0000 [93813c9dca]  Asterisk Development Team <asteriskteam@digium.com>

	* Update CHANGES and UPGRADE.txt for 20.2.0
2023-02-16 10:05 +0000 [ceda5a9859]  George Joseph <gjoseph@sangoma.com>

	* res_pjsip: Replace invalid UTF-8 sequences in callerid name

	  * Added a new function ast_utf8_replace_invalid_chars() to
	    utf8.c that copies a string replacing any invalid UTF-8
	    sequences with the Unicode specified U+FFFD replacement
	    character.  For example:  "abc\xffdef" becomes "abc\uFFFDdef".
	    Any UTF-8 compliant implementation will show that character
	    as a � character.

	  * Updated res_pjsip:set_id_from_hdr() to use
	    ast_utf8_replace_invalid_chars and print a warning if any
	    invalid sequences were found during the copy.

	  * Updated stasis_channels:ast_channel_publish_varset to use
	    ast_utf8_replace_invalid_chars and print a warning if any
	    invalid sequences were found during the copy.

	  ASTERISK-27830

	  Change-Id: I4ffbdb19c80bf0efc675d40078a3ca4f85c567d8

2023-02-27 18:35 +0000 [e5c5cd6e25]  Sean Bright <sean@seanbright.com>

	* test.c: Avoid passing -1 to FD_* family of functions.

	  This avoids buffer overflow errors when running tests that capture
	  output from child processes.

	  This also corrects a copypasta in an off-nominal error message.

	  Change-Id: Ib482847a3515364f14c7e7a0c0a4213851ddb10d

2022-12-14 10:00 +0000 [ede67a99be]  Naveen Albert <asterisk@phreaknet.org>

	* chan_iax2: Fix jitterbuffer regression prior to receiving audio.

	  ASTERISK_29392 (a security fix) introduced a regression by
	  not processing frames when we don't have an audio format.

	  Currently, chan_iax2 only calls jb_get to read frames from
	  the jitterbuffer when the voiceformat has been set on the pvt.
	  However, this only happens when we receive a voice frame, which
	  means that prior to receiving voice frames, other types of frames
	  get stalled completely in the jitterbuffer.

	  To fix this, we now fallback to using the format negotiated during
	  call setup until we've actually received a voice frame with a format.
	  This ensures we're always able to read from the jitterbuffer.

	  ASTERISK-30354 #close
	  ASTERISK-30162 #close

	  Change-Id: Ie4fd1e8e088a145ad89e0427c2100a530e964fe9

2023-02-27 15:35 +0000 [827222d607]  Sean Bright <sean@seanbright.com>

	* test_crypto.c: Fix getcwd(…) build error.

	  `getcwd(…)` is decorated with the `warn_unused_result` attribute and
	  therefore needs its return value checked.

	  Change-Id: Idcccb20a0abf293202c28633d0e9ee0f6a9dbe93

2023-02-11 06:58 +0000 [200dc7d0e8]  Nick French <nickfrench@gmail.com>

	* pjproject_bundled: Fix cross-compilation with SSL libs.

	  Asterisk makefiles auto-detect SSL library availability,
	  then they assume that pjproject makefiles will also autodetect
	  an SSL library at the same time, so they do not pass on the
	  autodetection result to pjproject.

	  This normally works, except the pjproject makefiles disables
	  autodetection when cross-compiling.

	  Fix by explicitly configuring pjproject to use SSL if we
	  have been told to use it or it was autodetected

	  ASTERISK-30424 #close

	  Change-Id: I8fe2999ea46710e21d1d55a1bed92769c6ebded9

2023-01-30 17:14 +0000 [5c11d7adea]  Mike Bradeen <mbradeen@sangoma.com>

	* app_read: Add an option to return terminator on empty digits.

	  Adds 'e' option to allow Read() to return the terminator as the
	  dialed digits in the case where only the terminator is entered.

	  ie; if "#" is entered, return "#" if the 'e' option is set and ""
	  if it is not.

	  ASTERISK-30411

	  Change-Id: I49f3221824330a193a20c660f99da0f1fc2cbbc5

2023-01-07 23:04 +0000 [5b0e3444c3]  cmaj <chris@penguinpbx.com>

	* res_phoneprov.c: Multihomed SERVER cache prevention

	  Phones moving between subnets on multi-homed server have their
	  initially connected interface IP cached in the SERVER variable,
	  even when it is not specified in the configuration files. This
	  prevents phones from obtaining the correct SERVER variable value
	  when they move to another subnet.

	  ASTERISK-30388 #close
	  Reported-by: cmaj

	  Change-Id: I1d18987a9d58e85556b4c4a6814ce7006524cc92

2023-01-27 14:23 +0000 [2308afed8e]  Mike Bradeen <mbradeen@sangoma.com>

	* app_directory: Add a 'skip call' option.

	  Adds 's' option to skip calling the extension and instead set the
	  extension as DIRECTORY_EXTEN channel variable.

	  ASTERISK-30405

	  Change-Id: Ib9d9db1ba5b7524594c640461b4aa8f752db8299

2023-02-06 09:54 +0000 [98742388b6]  Mike Bradeen <mbradeen@sangoma.com>

	* app_senddtmf: Add option to answer target channel.

	  Adds a new option to SendDTMF() which will answer the specified
	  channel if it is not already up. If no channel is specified, the
	  current channel will be answered instead.

	  ASTERISK-30422

	  Change-Id: Iddcbd501fcdf9fef0f453b7a8115a90b11f1d085

2023-02-21 14:25 +0000 [37e558f6ef]  Mike Bradeen <mbradeen@sangoma.com>

	* res_pjsip: Prevent SEGV in pjsip_evsub_send_request

	  contributed pjproject - patch to check sub->pending_notify
	  in evsub.c:on_tsx_state before calling
	  pjsip_evsub_send_request()

	  res_pjsip_pubsub - change post pjsip 2.13 behavior to use
	  pubsub_on_refresh_timeout to avoid the ao2_cleanup call on
	  the sub_tree. This is is because the final NOTIFY send is no
	  longer the last place the sub_tree is referenced.

	  ASTERISK-30419

	  Change-Id: Ib5cc662ce578e9adcda312e16c58a10b6453e438

2023-02-02 08:19 +0000 [aeb16aa7d8]  Sean Bright <sean@seanbright.com>

	* app_queue: Minor docs and logging fixes for UnpauseQueueMember.

	  ASTERISK-30417 #close

	  Change-Id: I7534e7a925bf92a7b5a5347f5f54225768c162fe

2023-01-31 08:40 +0000 [aef0c0ce0e]  Sean Bright <sean@seanbright.com>

	* app_queue: Reset all queue defaults before reload.

	  Several queue fields were not being set to their default value during
	  a reload.

	  Additionally added some sample configuration options that were missing
	  from queues.conf.sample.

	  Change-Id: I3a88c7877af91752b1b46a0c087384f7eb9c47e4

2023-01-20 16:50 +0000 [58636a6ea6]  Mike Bradeen <mbradeen@sangoma.com>

	* res_pjsip: Upgraded bundled pjsip to 2.13

	  Removed multiple patches.

	  Code chages in res_pjsip_pubsub due to changes in evsub.

	  Pjsip now calls on_evsub_state() before on_rx_refresh(),
	  so the sub tree deletion that used to take place in
	  on_evsub_state() now must take place in on_rx_refresh().

	  Additionally, pjsip now requires that you send the NOTIFY
	  from within on_rx_refresh(), otherwise it will assert
	  when going to send the 200 OK. The idea is that it will
	  look for this NOTIFY and cache it until after sending the
	  response in order to deal with the self-imposed message
	  mis-order. Asterisk previously dealt with this by pushing
	  the NOTIFY in on_rx_refresh(), but pjsip now forces us
	  to use it's method.

	  Changes were required to configure in order to detect
	  which way pjsip handles this as the two are not
	  compatible for the reasons mentioned above.

	  A corresponding change in testsuite is required in order
	  to deal with the small interal timing changes caused by
	  moving the NOTIFY send.

	  ASTERISK-30325

	  Change-Id: I50b00cac89d950d3511d7b250a1c641965d9fe7f

2023-01-30 15:17 +0000 [96d9ad51ac]  Sean Bright <sean@seanbright.com>

	* doxygen: Fix doxygen errors.

	  Change-Id: Ic50e95b4fc10f74ab15416d908e8a87ee8ec2f85

2022-01-06 16:11 +0000 [88b2c741ca]  Naveen Albert <asterisk@phreaknet.org>

	* app_signal: Add signaling applications

	  Adds the Signal and WaitForSignal
	  applications, which can be used for inter-channel
	  signaling in the dialplan.

	  Signal supports sending a signal to other channels
	  listening for a signal of the same name, with an
	  optional data payload. The signal is received by
	  all channels waiting for that named signal.

	  ASTERISK-29810 #close

	  Change-Id: Ic34439de3d60f8609357666a465c354d81f5fef3

2023-01-25 16:27 +0000 [70856e865f]  Mike Bradeen <mbradeen@sangoma.com>

	* app_directory: add ability to specify configuration file

	  Adds option to app_directory to specify a filename from which to
	  read configuration instead of voicemail.conf ie;

	  same => n,Directory(,,c(directory.conf))

	  This configuration should contain a list of extensions using the
	  voicemail.conf format, ie;

	  2020=2020,Dog Dog,,,,attach=no|saycid=no|envelope=no|delete=no

	  ASTERISK-30404

	  Change-Id: Id58ccb1344ad1e563fa10db12f172fbd104a9d13

2022-02-12 15:59 +0000 [8a45cd7af4]  Naveen Albert <asterisk@phreaknet.org>

	* func_json: Enhance parsing capabilities of JSON_DECODE

	  Adds support for arrays to JSON_DECODE by allowing the
	  user to print out entire arrays or index a particular
	  key or print the number of keys in a JSON array.

	  Additionally, adds support for recursively iterating a
	  JSON tree in a single function call, making it easier
	  to parse JSON results with multiple levels. A maximum
	  depth is imposed to prevent potentially blowing
	  the stack.

	  Also fixes a bug with the unit tests causing an empty
	  string to be printed instead of the actual test result.

	  ASTERISK-29913 #close

	  Change-Id: I603940b216a3911b498fc6583b18934011ef5d5b

2023-01-04 06:35 +0000 [f99849f8d5]  sungtae kim <sungtae.kim@avoxi.com>

	* res_stasis_snoop: Fix snoop crash

	  Added NULL pointer check and channel lock to prevent resource release
	  while the chanspy is processing.

	  ASTERISK-29604

	  Change-Id: Ibdc675f98052da32333b19685b1708a3751b6d24

2023-01-26 14:18 +0000 [56051d1ac5]  Sean Bright <sean@seanbright.com>

	* pbx_ael: Global variables are not expanded.

	  Variable references within global variable assignments are now
	  expanded rather than being included literally.

	  ASTERISK-30406 #close

	  Change-Id: I136e8d6395e90a4c92d9777a46a7bc3edb08d05d

2022-10-13 08:45 +0000 [a1da8042d1]  Naveen Albert <asterisk@phreaknet.org>

	* res_pjsip_session: Add overlap_context option.

	  Adds the overlap_context option, which can be used
	  to explicitly specify a context to use for overlap
	  dialing extension matches, rather than forcibly
	  using the context configured for the endpoint.

	  ASTERISK-30262 #close

	  Change-Id: Ibbcd4a8b11402428a187fb56b8d4e7408774a0db

2023-01-05 10:41 +0000 [ef16eaee36]  Sean Bright <sean@seanbright.com>

	* app_playback.c: Fix PLAYBACKSTATUS regression.

	  In Asterisk 11, if a channel was redirected away during Playback(),
	  the PLAYBACKSTATUS variable would be set to SUCCESS. In Asterisk 12
	  (specifically commit 7d9871b3940fa50e85039aef6a8fb9870a7615b9) that
	  behavior was inadvertently changed and the same operation would result
	  in the PLAYBACKSTATUS variable being set to FAILED. The Asterisk 11
	  behavior has been restored.

	  Partial fix for ASTERISK~25661.

	  Change-Id: I53f54e56b59b61c99403a481b6cb8d88b5a559ff

2023-01-11 11:17 +0000 [2f5aece0c9]  George Joseph <gjoseph@digium.com>

	* res_rtp_asterisk: Don't use double math to generate timestamps

	  Rounding issues with double math were causing rtp timestamp
	  slips in outgoing packets.  We're now back to integer math
	  and are getting no more slips.

	  ASTERISK-30391

	  Change-Id: I6ba992b49ffdf9ebea074581dfa784a188c661a4

2023-01-06 10:06 +0000 [e86d5d7fda]  Alexei Gradinari <alex2grad@gmail.com>

	* format_wav: replace ast_log(LOG_DEBUG, ...) by ast_debug(1, ...)

	  Each playback of WAV files results in logging
	  "Skipping unknown block 'LIST'".

	  To prevent unnecessary flooding of this DEBUG log this patch replaces
	  ast_log(LOG_DEBUG, ...) by ast_debug(1, ...).

	  Change-Id: Iaa09cf19c5348a05385518fdb8cb181b45fe05f0

2022-11-17 20:16 +0000 [3526441e41]  Igor Goncharovsky <igorg@iqtek.ru>

	* res_pjsip_rfc3326: Add SIP causes support for RFC3326

	  Add ability to set HANGUPCAUSE when SIP causecode received in BYE (in addition to currently supported Q.850).

	  ASTERISK-30319 #close

	  Change-Id: I3f55622dc680ce713a2ffb5a458ef5dd39fcf645

2022-10-28 05:57 +0000 [4710f37ef6]  George Joseph <gjoseph@digium.com>

	* res_rtp_asterisk: Asterisk Media Experience Score (MES)

	  -----------------

	  This commit reinstates MES with some casting fixes to the
	  functions in time.h that convert between doubles and timeval
	  structures.  The casting issues were causing incorrect
	  timestamps to be calculated which caused transcoding from/to
	  G722 to produce bad or no audio.

	  ASTERISK-30391

	  -----------------

	  This module has been updated to provide additional
	  quality statistics in the form of an Asterisk
	  Media Experience Score.  The score is avilable using
	  the same mechanisms you'd use to retrieve jitter, loss,
	  and rtt statistics.  For more information about the
	  score and how to retrieve it, see
	  https://wiki.asterisk.org/wiki/display/AST/Media+Experience+Score

	  * Updated chan_pjsip to set quality channel variables when a
	    call ends.
	  * Updated channels/pjsip/dialplan_functions.c to add the ability
	    to retrieve the MES along with the existing rtcp stats when
	    using the CHANNEL dialplan function.
	  * Added the ast_debug_rtp_is_allowed and ast_debug_rtcp_is_allowed
	    checks for debugging purposes.
	  * Added several function to time.h for manipulating time-in-samples
	    and times represented as double seconds.
	  * Updated rtp_engine.c to pass through the MES when stats are
	    requested.  Also debug output that dumps the stats when an
	    rtp instance is destroyed.
	  * Updated res_rtp_asterisk.c to implement the calculation of the
	    MES.  In the process, also had to update the calculation of
	    jitter.  Many debugging statements were also changed to be
	    more informative.
	  * Added a unit test for internal testing.  The test should not be
	    run during normal operation and is disabled by default.

	  Change-Id: I4fce265965e68c3fdfeca55e614371ee69c65038

2023-01-09 07:21 +0000 [62ca063fca]  George Joseph <gjoseph@digium.com>

	* Revert "res_rtp_asterisk: Asterisk Media Experience Score (MES)"

	  This reverts commit d454801c2ddba89f7925c847012db2866e271f68.

	  Reason for revert: Issue when transcoding to/from g722

	  Change-Id: I09f49e171b1661548657a9ba7a978c29d0b5be86

2022-12-08 15:44 +0000 [d33bd6d67a]  Naveen Albert <asterisk@phreaknet.org>

	* loader: Allow declined modules to be unloaded.

	  Currently, if a module declines to load, dlopen is called
	  to register the module but dlclose never gets called.
	  Furthermore, loader.c currently doesn't allow dlclose
	  to ever get called on the module, since it declined to
	  load and the unload function bails early in this case.

	  This can be problematic if a module is updated, since the
	  new module cannot be loaded into memory since we haven't
	  closed all references to it. To fix this, we now allow
	  modules to be unloaded, even if they never "loaded" in
	  Asterisk itself, so that dlclose is called and the module
	  can be properly cleaned up, allowing the updated module
	  to be loaded from scratch next time.

	  ASTERISK-30345 #close

	  Change-Id: Ifc743aadfa85ebe3284e02a63e124dafa64988d5

2022-08-15 15:04 +0000 [e06fe8e344]  Naveen Albert <asterisk@phreaknet.org>

	* app_broadcast: Add Broadcast application

	  Adds a new application, Broadcast, which can be used for
	  one-to-many transmission and many-to-one reception of
	  channel audio in Asterisk. This is similar to ChanSpy,
	  except it is designed for multiple channel targets instead
	  of a single one. This can make certain kinds of audio
	  manipulation more efficient and streamlined. New kinds
	  of audio injection impossible with ChanSpy are also made
	  possible.

	  ASTERISK-30180 #close

	  Change-Id: I7ba72f765dbab9b58deeae028baca3f4f8377726

2022-12-13 14:35 +0000 [68e345286b]  Naveen Albert <asterisk@phreaknet.org>

	* func_frame_trace: Print text for text frames.

	  Since text frames contain a text body, make FRAME_TRACE
	  more useful for text frames by actually printing the text.

	  ASTERISK-30353 #close

	  Change-Id: Ia6ce3d15cecd7a673a528d34faac86854a2bab50

2022-12-16 12:25 +0000 [3b3fef2347]  Naveen Albert <asterisk@phreaknet.org>

	* json.h: Add ast_json_object_real_get.

	  json.h contains macros to get a string and an integer
	  from a JSON object. However, the macro to do this for
	  JSON reals is missing. This adds that.

	  ASTERISK-30361 #close

	  Change-Id: I8d0e28d763febf27b05801cdc83b73282aa6ee7a

2022-12-21 19:01 +0000 [7b8f7428da]  Naveen Albert <asterisk@phreaknet.org>

	* manager: Fix appending variables.

	  The if statement here is always false after the for
	  loop finishes, so variables are never appended.
	  This removes that to properly append to the end
	  of the variable list.

	  ASTERISK-30351 #close
	  Reported by: Sebastian Gutierrez

	  Change-Id: I1b7f8b85a8918f6a814cb933a479d4278cf16199

2022-12-23 06:02 +0000 [24102ba236]  George Joseph <gjoseph@digium.com>

	* res_pjsip_transport_websocket: Add remote port to transport

	  When Asterisk receives a new websocket conenction, it creates a new
	  pjsip transport for it and copies connection data into it.  The
	  transport manager then uses the remote IP address and port on the
	  transport to create a monitor for each connection.  However, the
	  remote port wasn't being copied, only the IP address which meant
	  that the transport manager was creating only 1 monitoring entry for
	  all websocket connections from the same IP address. Therefore, if
	  one of those connections failed, it deleted the transport taking
	  all the the connections from that same IP address with it.

	  * We now copy the remote port into the created transport and the
	    transport manager behaves correctly.

	  ASTERISK-30369

	  Change-Id: Ib506d40897ea6286455ac0be4dfbb0ed43b727e1

2022-12-28 13:33 +0000 [edc90c96ac]  Boris P. Korzun <drtr0jan@yandex.ru>

	* http.c: Fix NULL pointer dereference bug

	  If native HTTP is disabled but HTTPS is enabled and status page enabled
	  too, Core/HTTP crashes while loading. 'global_http_server' references
	  to NULL, but the status page tries to dereference it.

	  The patch adds a check for HTTP is enabled.

	  ASTERISK-30379 #close

	  Change-Id: I11b02fc920b72aaed9c809fc43210523ccfdc249

2022-12-16 01:00 +0000 [3d9b9a2b16]  Holger Hans Peter Freyther <holger@moiji-mobile.com>

	* res_http_media_cache: Do not crash when there is no extension

	  Do not crash when a URL has no path component as in this case the
	  ast_uri_path function will return NULL. Make the code cope with not
	  having a path.

	  The below would crash
	  > media cache create http://google.com /tmp/foo.wav

	  Thread 1 "asterisk" received signal SIGSEGV, Segmentation fault.
	  0x0000ffff836616cc in strrchr () from /lib/aarch64-linux-gnu/libc.so.6
	  (gdb) bt
	   #0  0x0000ffff836616cc in strrchr () from /lib/aarch64-linux-gnu/libc.so.6
	   #1  0x0000ffff43d43a78 in file_extension_from_string (str=<optimized out>, buffer=buffer@entry=0xffffca9973c0 "",
	      capacity=capacity@entry=64) at res_http_media_cache.c:288
	   #2  0x0000ffff43d43bac in file_extension_from_url_path (bucket_file=bucket_file@entry=0x3bf96568,
	      buffer=buffer@entry=0xffffca9973c0 "", capacity=capacity@entry=64) at res_http_media_cache.c:378
	   #3  0x0000ffff43d43c74 in bucket_file_set_extension (bucket_file=bucket_file@entry=0x3bf96568) at res_http_media_cache.c:392
	   #4  0x0000ffff43d43d10 in bucket_file_run_curl (bucket_file=0x3bf96568) at res_http_media_cache.c:555
	   #5  0x0000ffff43d43f74 in bucket_http_wizard_create (sorcery=<optimized out>, data=<optimized out>, object=<optimized out>)
	      at res_http_media_cache.c:613
	   #6  0x0000000000487638 in bucket_file_wizard_create (sorcery=<optimized out>, data=<optimized out>, object=<optimized out>)
	      at bucket.c:191
	   #7  0x0000000000554408 in sorcery_wizard_create (object_wizard=object_wizard@entry=0x3b9f0718,
	      details=details@entry=0xffffca9974a8) at sorcery.c:2027
	   #8  0x0000000000559698 in ast_sorcery_create (sorcery=<optimized out>, object=object@entry=0x3bf96568) at sorcery.c:2077
	   #9  0x00000000004893a4 in ast_bucket_file_create (file=file@entry=0x3bf96568) at bucket.c:727
	   #10 0x00000000004f877c in ast_media_cache_create_or_update (uri=0x3bfa1103 "https://google.com",
	      file_path=0x3bfa1116 "/tmp/foo.wav", metadata=metadata@entry=0x0) at media_cache.c:335
	   #11 0x00000000004f88ec in media_cache_handle_create_item (e=<optimized out>, cmd=<optimized out>, a=0xffffca9976b8)
	      at media_cache.c:640

	  ASTERISK-30375 #close

	  Change-Id: I6a9433688cb5d3d4be8758b7642d923bdde6c273

2022-10-28 05:57 +0000 [d454801c2d]  George Joseph <gjoseph@digium.com>

	* res_rtp_asterisk: Asterisk Media Experience Score (MES)

	  This module has been updated to provide additional
	  quality statistics in the form of an Asterisk
	  Media Experience Score.  The score is avilable using
	  the same mechanisms you'd use to retrieve jitter, loss,
	  and rtt statistics.  For more information about the
	  score and how to retrieve it, see
	  https://wiki.asterisk.org/wiki/display/AST/Media+Experience+Score

	  * Updated chan_pjsip to set quality channel variables when a
	    call ends.
	  * Updated channels/pjsip/dialplan_functions.c to add the ability
	    to retrieve the MES along with the existing rtcp stats when
	    using the CHANNEL dialplan function.
	  * Added the ast_debug_rtp_is_allowed and ast_debug_rtcp_is_allowed
	    checks for debugging purposes.
	  * Added several function to time.h for manipulating time-in-samples
	    and times represented as double seconds.
	  * Updated rtp_engine.c to pass through the MES when stats are
	    requested.  Also debug output that dumps the stats when an
	    rtp instance is destroyed.
	  * Updated res_rtp_asterisk.c to implement the calculation of the
	    MES.  In the process, also had to update the calculation of
	    jitter.  Many debugging statements were also changed to be
	    more informative.
	  * Added a unit test for internal testing.  The test should not be
	    run during normal operation and is disabled by default.

	  ASTERISK-30280

	  Change-Id: I458cb9a311e8e5dc1db769b8babbcf2e093f107a

2022-12-21 09:01 +0000 [cc8d9b947b]  Naveen Albert <asterisk@phreaknet.org>

	* pbx_app: Update outdated pbx_exec channel snapshots.

	  pbx_exec makes a channel snapshot before executing applications.
	  This doesn't cause an issue during normal dialplan execution
	  where pbx_exec is called over and over again in succession.
	  However, if pbx_exec is called "one off", e.g. using
	  ast_pbx_exec_application, then a channel snapshot never ends
	  up getting made after the executed application returns, and
	  inaccurate snapshot information will linger for a while, causing
	  "core show channels", etc. to show erroneous info.

	  This is fixed by manually making a channel snapshot at the end
	  of ast_pbx_exec_application, since we anticipate that pbx_exec
	  might not get called again immediately.

	  ASTERISK-30367 #close

	  Change-Id: I2a5131053aa9d11badbc0ef2ef40b1f83d0af086

2022-11-26 06:54 +0000 [c7598ee947]  Naveen Albert <asterisk@phreaknet.org>

	* res_pjsip_session: Use Caller ID for extension matching.

	  Currently, there is no Caller ID available to us when
	  checking for an extension match when handling INVITEs.
	  As a result, extension patterns that depend on the Caller ID
	  are not matched and calls may be incorrectly rejected.

	  The Caller ID is not available because the supplement that
	  adds Caller ID to the session does not execute until after
	  this check. Supplement callbacks cannot yet be executed
	  at this point since the session is not yet in the appropriate
	  state.

	  To fix this without impacting existing behavior, the Caller ID
	  number is now retrieved before attempting to pattern match.
	  This ensures pattern matching works correctly and there is
	  no behavior change to the way supplements are called.

	  ASTERISK-28767 #close

	  Change-Id: Iec7f5a3b90e51b65ccf74342f96bf80314b7cfc7

2022-12-12 12:42 +0000 [881faf544f]  Ben Ford <bford@digium.com>

	* res_pjsip_sdp_rtp.c: Use correct timeout when put on hold.

	  When a call is put on hold and it has moh_passthrough and rtp_timeout
	  set on the endpoint, the wrong timeout will be used. rtp_timeout_hold is
	  expected to be used, but rtp_timeout is used instead. This change adds a
	  couple of checks for locally_held to determine if rtp_timeout_hold needs
	  to be used instead of rtp_timeout.

	  ASTERISK-30350

	  Change-Id: I7b106fc244332014216d12bba851cefe884cc25f

2022-11-14 07:12 +0000 [20d4775d0a]  Naveen Albert <asterisk@phreaknet.org>

	* app_voicemail_odbc: Fix string overflow warning.

	  Fixes a negative offset warning by initializing
	  the buffer to empty.

	  Additionally, although it doesn't currently complain
	  about it, the size of a buffer is increased to
	  accomodate the maximum size contents it could have.

	  ASTERISK-30240 #close

	  Change-Id: I8eecedf14d3f2a75864797f802277cac89a32877

2022-11-25 18:03 +0000 [cbb1fd2cb9]  Naveen Albert <asterisk@phreaknet.org>

	* func_callerid: Warn about invalid redirecting reason.

	  Currently, if a user attempts to set a Caller ID related
	  function to an invalid value, a warning is emitted,
	  except for when setting the redirecting reason.
	  We now emit a warning if we were unable to successfully
	  parse the user-provided reason.

	  ASTERISK-30332 #close

	  Change-Id: Ic341f5d5f7303b6f1115549be64db58a85944f5a

2022-11-04 05:11 +0000 [115a1b4f0a]  Igor Goncharovsky <igorg@iqtek.ru>

	* res_pjsip: Fix path usage in case dialing with '@'

	  Fix aor lookup on sip path addition. Issue happens in case of dialing
	  with @ and overriding user part of RURI.

	  ASTERISK-30100 #close
	  Reported-by: Yury Kirsanov

	  Change-Id: I3f2c42a583578c94397b113e32ca3ebf2d600e13

2022-11-21 21:37 +0000 [58404b5c22]  Peter Fern <asterisk@obfusc8.org>

	* streams:  Ensure that stream is closed in ast_stream_and_wait on error

	  When ast_stream_and_wait returns an error (for example, when attempting
	  to stream to a channel after hangup) the stream is not closed, and
	  callers typically do not check the return code. This results in leaking
	  file descriptors, leading to resource exhaustion.

	  This change ensures that the stream is closed in case of error.

	  ASTERISK-30198 #close
	  Reported-by: Julien Alie

	  Change-Id: Ie46b67314590ad75154595a3d34d461060b2e803

2022-12-10 16:51 +0000 [36bea9ad33]  Naveen Albert <asterisk@phreaknet.org>

	* app_sendtext: Remove references to removed applications.

	  Removes see-also references to applications that don't
	  exist anymore (removed in Asterisk 19),
	  so these dead links don't show up on the wiki.

	  ASTERISK-30347 #close

	  Change-Id: I9539bc30f57cd65aa4e2d5ce8185eafa09567909

2022-12-15 12:55 +0000  Asterisk Development Team <asteriskteam@digium.com>

	* asterisk 20.1.0-rc1 Released.

2022-12-15 06:40 +0000 [fefc236e7c]  Asterisk Development Team <asteriskteam@digium.com>

	* Update CHANGES and UPGRADE.txt for 20.1.0
2022-12-09 13:37 +0000 [01b3962201]  Alexandre Fournier <afournier@wazo.io>

	* res_geoloc: fix NULL pointer dereference bug

	  The `ast_geoloc_datastore_add_eprofile` function does not return 0 on
	  success, it returns the size of the underlying datastore. This means
	  that the datastore will be freed and its pointer set to NULL when no
	  error occured at all.

	  ASTERISK-30346

	  Change-Id: Iea9b209bd1244cc57b903b9496cb680c356e4bb9

2022-12-13 09:25 +0000 [b6855755ce]  Joshua C. Colp <jcolp@sangoma.com>

	* res_pjsip_aoc: Don't assume a body exists on responses.

	  When adding AOC to an outgoing response the code
	  assumed that a body would exist for comparing the
	  Content-Type. This isn't always true.

	  The code now checks to make sure the response has
	  a body before checking the Content-Type.

	  ASTERISK-21502

	  Change-Id: Iaead371434fc3bc693dad487228106a7d7a5ac76

2022-12-12 09:16 +0000 [2f9cdfbc50]  Naveen Albert <asterisk@phreaknet.org>

	* app_if: Fix format truncation errors.

	  Fixes format truncation warnings in gcc 12.2.1.

	  ASTERISK-30349 #close

	  Change-Id: I42be4edf0284358b906e765d1966b6b9d66e1d3c

2022-11-01 15:37 +0000 [5c114dcb4a]  Michael Kuron <m.kuron@gmx.de>

	* manager: AOC-S support for AOCMessage

	  ASTERISK-21502

	  Change-Id: I051b778f8c862d3b4794d28f2f3d782316707b08

2022-10-23 04:42 +0000 [fee9012fe1]  Michael Kuron <m.kuron@gmx.de>

	* res_pjsip_aoc: New module for sending advice-of-charge with chan_pjsip

	  chan_sip supported sending AOC-D and AOC-E information in SIP INFO
	  messages in an "AOC" header in a format that was originally defined by
	  Snom. In the meantime, ETSI TS 124 647 introduced an XML-based AOC
	  format that is supported by devices from multiple vendors, including
	  Snom phones with firmware >= 8.4.2 (released in 2010).

	  This commit adds a new res_pjsip_aoc module that inserts AOC information
	  into outgoing messages or sends SIP INFO messages as described below.
	  It also fixes a small issue in res_pjsip_session which didn't always
	  call session supplements on outgoing_response.

	  * AOC-S in the 180/183/200 responses to an INVITE request
	  * AOC-S in SIP INFO (if a 200 response has already been sent or if the
	    INVITE was sent by Asterisk)
	  * AOC-D in SIP INFO
	  * AOC-D in the 200 response to a BYE request (if the client hangs up)
	  * AOC-D in a BYE request (if Asterisk hangs up)
	  * AOC-E in the 200 response to a BYE request (if the client hangs up)
	  * AOC-E in a BYE request (if Asterisk hangs up)

	  The specification defines one more, AOC-S in an INVITE request, which
	  is not implemented here because it is not currently possible in
	  Asterisk to have AOC data ready at this point in call setup. Once
	  specifying AOC-S via the dialplan or passing it through from another
	  SIP channel's INVITE is possible, that might be added.

	  The SIP INFO requests are sent out immediately when the AOC indication
	  is received. The others are inserted into an appropriate outgoing
	  message whenever that is ready to be sent. In the latter case, the XML
	  is stored in a channel variable at the time the AOC indication is
	  received. Depending on where the AOC indications are coming from (e.g.
	  PRI or AMI), it may not always be possible to guarantee that the AOC-E
	  is available in time for the BYE.

	  Successfully tested AOC-D and both variants of AOC-E with a Snom D735
	  running firmware 10.1.127.10. It does not appear to properly support
	  AOC-S however, so that could only be tested by inspecting SIP traces.

	  ASTERISK-21502 #close
	  Reported-by: Matt Jordan <mjordan@digium.com>

	  Change-Id: Iebb7ad0d5f88526bc6629d3a1f9f11665434d333

2022-12-08 04:33 +0000 [564349ff5d]  Joshua C. Colp <jcolp@sangoma.com>

	* ari: Destroy body variables in channel create.

	  When passing a JSON body to the 'create' channel route
	  it would be converted into Asterisk variables, but never
	  freed resulting in a memory leak.

	  This change makes it so that the variables are freed in
	  all cases.

	  ASTERISK-30344

	  Change-Id: I924dbd866a01c6073e2d6fb846ccaa27ef72d49d

2022-11-03 15:28 +0000 [b9c031c1f8]  Naveen Albert <asterisk@phreaknet.org>

	* app_voicemail: Fix missing email in msg_create_from_file.

	  msg_create_from_file currently does not dispatch emails,
	  which means that applications using this function, such
	  as MixMonitor, will not trigger notifications to users
	  (only AMI events are sent our currently). This is inconsistent
	  with other ways users can receive voicemail.

	  This is fixed by adding an option that attempts to send
	  an email and falling back to just the notifications as
	  done now if that fails. The existing behavior remains
	  the default.

	  ASTERISK-30283 #close

	  Change-Id: I597cbb9cf971a18d8776172b26ab187dc096a5c7

2022-11-25 03:59 +0000 [58534b309f]  Marcel Wagner <mwagner@sipgate.de>

	* res_pjsip: Fix typo in from_domain documentation

	  This fixes a small typo in the from_domain documentation on the endpoint documentation

	  ASTERISK-30328 #close

	  Change-Id: Ia6f0897c3f5cab899ef2cde6b3ac07265b8beb21

2022-11-21 12:53 +0000 [531eacd6c9]  Naveen Albert <asterisk@phreaknet.org>

	* res_hep: Add support for named capture agents.

	  Adds support for the capture agent name field
	  of the Homer protocol to Asterisk by allowing
	  users to specify a name that will be sent to
	  the HEP server.

	  ASTERISK-30322 #close

	  Change-Id: I6136583017f9dd08daeb8be02f60fb8df4639a2b

2021-06-28 11:56 +0000 [b365ea8601]  Naveen Albert <asterisk@phreaknet.org>

	* app_if: Adds conditional branch applications

	  Adds the If, ElseIf, Else, ExitIf, and EndIf
	  applications for conditional execution
	  of a block of dialplan, similar to the While,
	  EndWhile, and ExitWhile applications. The
	  appropriate branch is executed at most once
	  if available and may be broken out of while
	  inside.

	  ASTERISK-29497

	  Change-Id: I3aa3bd35a5add82465c6ee9bd86b64601f0e1f49

2022-10-16 19:33 +0000 [0d6003fa9a]  Naveen Albert <asterisk@phreaknet.org>

	* res_pjsip_session.c: Map empty extensions in INVITEs to s.

	  Some SIP devices use an empty extension for PLAR functionality.

	  Rather than rejecting these empty extensions, we now use the s
	  extension for such calls to mirror the existing PLAR functionality
	  in Asterisk (e.g. chan_dahdi).

	  ASTERISK-30265 #close

	  Change-Id: I0861a405cd49bbbf532b52f7b47f0e2810832590

2022-11-17 13:30 +0000 [b83af13f65]  Marcel Wagner <mwagner@sipgate.de>

	* res_pjsip: Update contact_user to point out default

	  Updates the documentation for the 'contact_user' field to point out the
	  default outbound contact if no contact_user is specified 's'

	  ASTERISK-30316 #close

	  Change-Id: I61f24fb9164e4d07e05908a2511805281874c876

2022-11-23 16:59 +0000 [80e6205bb0]  Naveen Albert <asterisk@phreaknet.org>

	* res_adsi: Fix major regression caused by media format rearchitecture.