Skip to content
Snippets Groups Projects
ChangeLog 3.86 MiB
Newer Older
  • Learn to ignore specific revisions
  • 4001 4002 4003 4004 4005 4006 4007 4008 4009 4010 4011 4012 4013 4014 4015 4016 4017 4018 4019 4020 4021 4022 4023 4024 4025 4026 4027 4028 4029 4030 4031 4032 4033 4034 4035 4036 4037 4038 4039 4040 4041 4042 4043 4044 4045 4046 4047 4048 4049 4050 4051 4052 4053 4054 4055 4056 4057 4058 4059 4060 4061 4062 4063 4064 4065 4066 4067 4068 4069 4070 4071 4072 4073 4074 4075 4076 4077 4078 4079 4080 4081 4082 4083 4084 4085 4086 4087 4088 4089 4090 4091 4092 4093 4094 4095 4096 4097 4098 4099 4100 4101 4102 4103 4104 4105 4106 4107 4108 4109 4110 4111 4112 4113 4114 4115 4116 4117 4118 4119 4120 4121 4122 4123 4124 4125 4126 4127 4128 4129 4130 4131 4132 4133 4134 4135 4136 4137 4138 4139 4140 4141 4142 4143 4144 4145 4146 4147 4148 4149 4150 4151 4152 4153 4154 4155 4156 4157 4158 4159 4160 4161 4162 4163 4164 4165 4166 4167 4168 4169 4170 4171 4172 4173 4174 4175 4176 4177 4178 4179 4180 4181 4182 4183 4184 4185 4186 4187 4188 4189 4190 4191 4192 4193 4194 4195 4196 4197 4198 4199 4200 4201 4202 4203 4204 4205 4206 4207 4208 4209 4210 4211 4212 4213 4214 4215 4216 4217 4218 4219 4220 4221 4222 4223 4224 4225 4226 4227 4228 4229 4230 4231 4232 4233 4234 4235 4236 4237 4238 4239 4240 4241 4242 4243 4244 4245 4246 4247 4248 4249 4250 4251 4252 4253 4254 4255 4256 4257 4258 4259 4260 4261 4262 4263 4264 4265 4266 4267 4268 4269 4270 4271 4272 4273 4274 4275 4276 4277 4278 4279 4280 4281 4282 4283 4284 4285 4286 4287 4288 4289 4290 4291 4292 4293 4294 4295 4296 4297 4298 4299 4300 4301 4302 4303 4304 4305 4306 4307 4308 4309 4310 4311 4312 4313 4314 4315 4316 4317 4318 4319 4320 4321 4322 4323 4324 4325 4326 4327 4328 4329 4330 4331 4332 4333 4334 4335 4336 4337 4338 4339 4340 4341 4342 4343 4344 4345 4346 4347 4348 4349 4350 4351 4352 4353 4354 4355 4356 4357 4358 4359 4360 4361 4362 4363 4364 4365 4366 4367 4368 4369 4370 4371 4372 4373 4374 4375 4376 4377 4378 4379 4380 4381 4382 4383 4384 4385 4386 4387 4388 4389 4390 4391 4392 4393 4394 4395 4396 4397 4398 4399 4400 4401 4402 4403 4404 4405 4406 4407 4408 4409 4410 4411 4412 4413 4414 4415 4416 4417 4418 4419 4420 4421 4422 4423 4424 4425 4426 4427 4428 4429 4430 4431 4432 4433 4434 4435 4436 4437 4438 4439 4440 4441 4442 4443 4444 4445 4446 4447 4448 4449 4450 4451 4452 4453 4454 4455 4456 4457 4458 4459 4460 4461 4462 4463 4464 4465 4466 4467 4468 4469 4470 4471 4472 4473 4474 4475 4476 4477 4478 4479 4480 4481 4482 4483 4484 4485 4486 4487 4488 4489 4490 4491 4492 4493 4494 4495 4496 4497 4498 4499 4500 4501 4502 4503 4504 4505 4506 4507 4508 4509 4510 4511 4512 4513 4514 4515 4516 4517 4518 4519 4520 4521 4522 4523 4524 4525 4526 4527 4528 4529 4530 4531 4532 4533 4534 4535 4536 4537 4538 4539 4540 4541 4542 4543 4544 4545 4546 4547 4548 4549 4550 4551 4552 4553 4554 4555 4556 4557 4558 4559 4560 4561 4562 4563 4564 4565 4566 4567 4568 4569 4570 4571 4572 4573 4574 4575 4576 4577 4578 4579 4580 4581 4582 4583 4584 4585 4586 4587 4588 4589 4590 4591 4592 4593 4594 4595 4596 4597 4598 4599 4600 4601 4602 4603 4604 4605 4606 4607 4608 4609 4610 4611 4612 4613 4614 4615 4616 4617 4618 4619 4620 4621 4622 4623 4624 4625 4626 4627 4628 4629 4630 4631 4632 4633 4634 4635 4636 4637 4638 4639 4640 4641 4642 4643 4644 4645 4646 4647 4648 4649 4650 4651 4652 4653 4654 4655 4656 4657 4658 4659 4660 4661 4662 4663 4664 4665 4666 4667 4668 4669 4670 4671 4672 4673 4674 4675 4676 4677 4678 4679 4680 4681 4682 4683 4684 4685 4686 4687 4688 4689 4690 4691 4692 4693 4694 4695 4696 4697 4698 4699 4700 4701 4702 4703 4704 4705 4706 4707 4708 4709 4710 4711 4712 4713 4714 4715 4716 4717 4718 4719 4720 4721 4722 4723 4724 4725 4726 4727 4728 4729 4730 4731 4732 4733 4734 4735 4736 4737 4738 4739 4740 4741 4742 4743 4744 4745 4746 4747 4748 4749 4750 4751 4752 4753 4754 4755 4756 4757 4758 4759 4760 4761 4762 4763 4764 4765 4766 4767 4768 4769 4770 4771 4772 4773 4774 4775 4776 4777 4778 4779 4780 4781 4782 4783 4784 4785 4786 4787 4788 4789 4790 4791 4792 4793 4794 4795 4796 4797 4798 4799 4800 4801 4802 4803 4804 4805 4806 4807 4808 4809 4810 4811 4812 4813 4814 4815 4816 4817 4818 4819 4820 4821 4822 4823 4824 4825 4826 4827 4828 4829 4830 4831 4832 4833 4834 4835 4836 4837 4838 4839 4840 4841 4842 4843 4844 4845 4846 4847 4848 4849 4850 4851 4852 4853 4854 4855 4856 4857 4858 4859 4860 4861 4862 4863 4864 4865 4866 4867 4868 4869 4870 4871 4872 4873 4874 4875 4876 4877 4878 4879 4880 4881 4882 4883 4884 4885 4886 4887 4888 4889 4890 4891 4892 4893 4894 4895 4896 4897 4898 4899 4900 4901 4902 4903 4904 4905 4906 4907 4908 4909 4910 4911 4912 4913 4914 4915 4916 4917 4918 4919 4920 4921 4922 4923 4924 4925 4926 4927 4928 4929 4930 4931 4932 4933 4934 4935 4936 4937 4938 4939 4940 4941 4942 4943 4944 4945 4946 4947 4948 4949 4950 4951 4952 4953 4954 4955 4956 4957 4958 4959 4960 4961 4962 4963 4964 4965 4966 4967 4968 4969 4970 4971 4972 4973 4974 4975 4976 4977 4978 4979 4980 4981 4982 4983 4984 4985 4986 4987 4988 4989 4990 4991 4992 4993 4994 4995 4996 4997 4998 4999 5000
    	  arguments are all integers and the response is
    	  a whole number, in which case the user is likely
    	  expecting an integer. This casts the float to an integer
    	  before printing into the response buffer if possible.
    
    	  ASTERISK-29495
    
    	  Change-Id: I902d29eacf3ecd0f8a6a5e433c97f0421d205488
    
    2021-08-04 09:46 +0000 [9cac1c16da]  Naveen Albert <asterisk@phreaknet.org>
    
    	* app_morsecode: Add American Morse code
    
    	  Previously, the Morsecode application only supported international
    	  Morse code. This adds support for American Morse code and adds an
    	  option to configure the frequency used in off intervals.
    
    	  Additionally, the application checks for hangup between tones
    	  to prevent application execution from continuing after hangup.
    
    	  ASTERISK-29541
    
    	  Change-Id: I172431a2e18e6527d577e74adfb05b154cba7bd4
    
    2021-08-04 14:16 +0000 [3eec5b8c5c]  Naveen Albert <asterisk@phreaknet.org>
    
    	* func_scramble: Audio scrambler function
    
    	  Adds a function to scramble audio on a channel using
    	  whole spectrum frequency inversion. This can be used
    	  as a privacy enhancement with applications like
    	  ChanSpy or other potentially sensitive audio.
    
    	  ASTERISK-29542
    
    	  Change-Id: I01020769d91060a1f56a708eb405f87648d1a67e
    
    2021-08-04 19:28 +0000 [cb1dfecc11]  Naveen Albert <asterisk@phreaknet.org>
    
    	* app_originate: Add ability to set codecs
    
    	  A list of codecs to use for dialplan-originated calls can
    	  now be specified in Originate, similar to the ability
    	  in call files and the manager action.
    
    	  Additionally, we now default to just using the slin codec
    	  for originated calls, rather than all the slin* codecs up
    	  through slin192, which has been known to cause issues
    	  and inconsistencies from AMI and call file behavior.
    
    	  ASTERISK-29543
    
    	  Change-Id: I96a1aeb83d54b635b7a51e1b4680f03791622883
    
    2021-08-16 11:11 +0000 [a8e8b3aaff]  Alexander Traud <pabstraud@compuserve.com>
    
    	* BuildSystem: Remove two dead exceptions for compiler Clang.
    
    	  Commit 305ce3d added -Wno-parentheses-equality to Makefile.rules,
    	  turning the previous two warning suppressions from commit e9520db
    	  redundant. Let us remove the latter.
    
    	  Change-Id: I0b471254b31e6e05902062761dded4b3e626c7ac
    
    2021-08-10 12:41 +0000 [121860e3f6]  Sean Bright <sean.bright@gmail.com>
    
    	* mgcp: Remove dead debug code
    
    	  ASTERISK-20339 #close
    
    	  Change-Id: I36f364aaa1971241d8f3ea1a5909b463d185a2d5
    
    2021-08-11 06:15 +0000 [13fd0789a2]  Joshua C. Colp <jcolp@sangoma.com>
    
    	* policy: Add deprecation and removal versions to modules.
    
    	  app_meetme is deprecated in 19, to be removed in 21.
    	  app_osplookup is deprecated in 19, to be removed in 21.
    	  chan_alsa is deprecated in 19, to be removed in 21.
    	  chan_mgcp is deprecated in 19, to be removed in 21.
    	  chan_skinny is deprecated in 19, to be removed in 21.
    	  res_pktccops is deprecated in 19, to be removed in 21.
    	  cdr_mysql was deprecated in 1.8, to be removed in 19.
    	  app_mysql was deprecated in 1.8, to be removed in 19.
    	  app_ices was deprecated in 16, to be removed in 19.
    	  app_macro was deprecated in 16, to be removed in 21.
    	  app_fax was deprecated in 16, to be removed in 19.
    	  app_url was deprecated in 16, to be removed in 19.
    	  app_image was deprecated in 16, to be removed in 19.
    	  app_nbscat was deprecated in 16, to be removed in 19.
    	  app_dahdiras was deprecated in 16, to be removed in 19.
    	  cdr_syslog was deprecated in 16, to be removed in 19.
    	  chan_oss was deprecated in 16, to be removed in 19.
    	  chan_phone was deprecated in 16, to be removed in 19.
    	  chan_sip was deprecated in 17, to be removed in 21.
    	  chan_nbs was deprecated in 16, to be removed in 19.
    	  chan_misdn was deprecated in 16, to be removed in 19.
    	  chan_vpb was deprecated in 16, to be removed in 19.
    	  res_config_sqlite was deprecated in 16, to be removed in 19.
    	  res_monitor was deprecated in 16, to be removed in 21.
    	  conf2ael was deprecated in 16, to be removed in 19.
    	  muted was deprecated in 16, to be removed in 19.
    
    	  ASTERISK-29548
    	  ASTERISK-29549
    	  ASTERISK-29550
    	  ASTERISK-29551
    	  ASTERISK-29552
    	  ASTERISK-29553
    	  ASTERISK-29554
    	  ASTERISK-29555
    	  ASTERISK-29557
    	  ASTERISK-29558
    	  ASTERISK-29559
    	  ASTERISK-29560
    	  ASTERISK-29561
    	  ASTERISK-29562
    	  ASTERISK-29563
    	  ASTERISK-29564
    	  ASTERISK-29565
    	  ASTERISK-29566
    	  ASTERISK-29567
    	  ASTERISK-29568
    	  ASTERISK-29569
    	  ASTERISK-29570
    	  ASTERISK-29571
    	  ASTERISK-29572
    	  ASTERISK-29573
    	  ASTERISK-29574
    
    	  Change-Id: Ic3bee31a10d42c4b3bbc913d893f7b2a28a27131
    
    2021-08-12 11:00 +0000 [288d018fb7]  Asterisk Development Team <asteriskteam@digium.com>
    
    	* Update CHANGES and UPGRADE.txt for 18.6.0
    2021-06-16 15:30 +0000 [118d848238]  Naveen Albert <asterisk@phreaknet.org>
    
    	* func_frame_drop: New function
    
    	  Adds function to selectively drop specified frames
    	  in the TX or RX direction on a channel, including
    	  control frames.
    
    	  ASTERISK-29478
    
    	  Change-Id: I8147c9d55d74e2e48861edba6b22f930920541ec
    
    2021-08-02 12:33 +0000 [0b1a629ecd]  Alexander Traud <pabstraud@compuserve.com>
    
    	* aelparse: Accept an included context with timings.
    
    	  With Asterisk 1.6.0, in the main parser for the configuration file
    	  extensions.conf, the separator was changed from vertical bar to comma.
    	  However, the first separator was not changed in aelparse; it still had
    	  to be a vertical bar, and no comma was allowed.
    
    	  Additionally, this change allows the vertical bar for the first and
    	  last parameter again, even in the main parser, because the vertical bar
    	  was still accepted for the other parameters.
    
    	  ASTERISK-29540
    
    	  Change-Id: I882e17c73adf4bf2f20f9046390860d04a9f8d81
    
    2021-08-03 11:30 +0000 [628830921e]  Kevin Harwell <kharwell@sangoma.com>
    
    	* format_ogg_speex: Implement a "not supported" write handler
    
    	  This format did not specify a "write" handler, so when attempting to write
    	  to it (ast_writestream) a crash would occur.
    
    	  This patch adds a default handler that simply issues a "not supported"
    	  warning, thus no longer crashing.
    
    	  ASTERISK-29539
    
    	  Change-Id: I8f6ddc7cc3b15da30803be3b1cf68e2ba0fbce91
    
    2021-08-05 14:28 +0000  Asterisk Development Team <asteriskteam@digium.com>
    
    	* asterisk 18.6.0-rc1 Released.
    
    2021-06-28 08:48 +0000 [adf707f2ae]  Naveen Albert <asterisk@phreaknet.org>
    
    	* cdr_adaptive_odbc: Prevent filter warnings
    
    	  Previously, if CDR filters were used so that
    	  not all CDR records used all sections defined
    	  in cdr_adaptive_odbc.conf, then warnings will
    	  always be emitted (if each CDR record is unique
    	  to a particular section, n-1 warnings to be
    	  specific).
    
    	  This turns the offending warning log into
    	  a verbose message like the other one, since
    	  this behavior is intentional and not
    	  indicative of anything wrong.
    
    	  ASTERISK-29494
    
    	  Change-Id: Ifd314fa9298722bc99494d5ca2658a5caa94a5f8
    
    2021-07-25 16:53 +0000 [940f6c4a03]  Naveen Albert <asterisk@phreaknet.org>
    
    	* app_queue: Allow streaming multiple announcement files
    
    	  Allows multiple files comprising an agent announcement
    	  to be played by separating on the ampersand, similar
    	  to the multi-file support in other Asterisk applications.
    
    	  ASTERISK-29528
    
    	  Change-Id: Iec600d8cd5ba14aa1e4e37f906accb356cd7891a
    
    2021-04-13 02:36 +0000 [1e4ed61a2b]  Igor Goncharovsky <igorg@iqtek.ru>
    
    	* res_pjsip_header_funcs: Add PJSIP_HEADERS() ability to read header by pattern
    
    	  PJSIP currently does not provide a function to replace SIP_HEADERS() function to get a list of headers from INVITE request.
    	  It may be used to get all X- headers in case the actual set and names of headers unknown.
    
    	  ASTERISK-29389
    
    	  Change-Id: Ic09d395de71a0021e0d6c5c29e1e19d689079f8b
    
    2021-07-08 07:34 +0000 [71dd1d91ad]  Rijnhard Hessel <rijnhard@teleforge.co.za>
    
    	* res_statsd: handle non-standard meter type safely
    
    	  Meter types are not well supported,
    	  lacking support in telegraf, datadog and the official statsd servers.
    	  We deprecate meters and provide a compliant fallback for any existing usages.
    
    	  A flag has been introduced to allow meters to fallback to counters.
    
    
    	  ASTERISK-29513
    
    	  Change-Id: I5fcb385983a1b88f03696ff30a26b55c546a1dd7
    
    2021-07-22 11:39 +0000 [feb1e06ac5]  under <pcapdump@gmail.com>
    
    	* codec_builtin.c: G729 audio gets corrupted by Asterisk due to smoother
    
    	  If Asterisk gets G.729 6-byte VAD frames inbound, then at outbound Asterisk sends this G.729 stream with non-continuous timestamps.
    	  This makes the audio stream not-playable at the receiver side.
    	  Linphone isn't able to play such an audio - lots of disruptions are heard.
    	  Also I had complains of bad audio from users which use other types of phones.
    
    	  After debugging, I found this is a regression connected with RTP Smoother (main/smoother.c).
    
    	  Smoother has a special code to handle G.729 VAD frames (search for AST_SMOOTHER_FLAG_G729 in smoother.c).
    
    	  However, this flag is never set in Asterisk-12 and newer.
    	  Previously it has been set (see Asterisk-11).
    
    	  ASTERISK-29526 #close
    
    	  Change-Id: I6f51ecb1a3ecd9c6d59ec5a6811a27446e17065d
    
    2021-06-16 15:26 +0000 [016f6a0e14]  Naveen Albert <asterisk@phreaknet.org>
    
    	* app_dtmfstore: New application to store digits
    
    	  Adds application to asynchronously collect digits
    	  dialed on a channel in the TX or RX direction
    	  using a framehook and stores them in a specified
    	  variable, up to a configurable number of digits.
    
    	  ASTERISK-29477
    
    	  Change-Id: I51aa93fc9507f7636ac44806c4420ce690423e6f
    
    2021-07-27 07:53 +0000 [9117f09d28]  Joshua C. Colp <jcolp@sangoma.com>
    
    	* docs: Remove embedded macro in WaitForCond XML documentation.
    
    	  Change-Id: I40c6514e1843e320f3cbe0b2c70d4a98c0e35b9c
    
    2021-07-22 16:56 +0000 [993b3ba919]  Asterisk Development Team <asteriskteam@digium.com>
    
    	* Update CHANGES and UPGRADE.txt for 18.5.1
    2021-06-14 13:28 +0000 [3025ef4f6e]  Kevin Harwell <kharwell@sangoma.com>
    
    	* AST-2021-009 - pjproject-bundled: Avoid crash during handshake for TLS
    
    	  If an SSL socket parent/listener was destroyed during the handshake,
    	  depending on timing, it was possible for the handling callback to
    	  attempt access of it after the fact thus causing a crash.
    
    	  ASTERISK-29415 #close
    
    	  Change-Id: I105dacdcd130ea7fdd4cf2010ccf35b5eaf1432d
    
    2021-05-10 17:59 +0000 [2a141a58b6]  Kevin Harwell <kharwell@sangoma.com>
    
    	* AST-2021-008 - chan_iax2: remote crash on unsupported media format
    
    	  If chan_iax2 received a packet with an unsupported media format, for
    	  example vp9, then it would set the frame's format to NULL. This could
    	  then result in a crash later when an attempt was made to access the
    	  format.
    
    	  This patch makes it so chan_iax2 now ignores/drops frames received
    	  with unsupported media format types.
    
    	  ASTERISK-29392 #close
    
    	  Change-Id: Ifa869a90dafe33eed8fd9463574fe6f1c0ad3eb1
    
    2021-04-28 07:36 +0000 [523a795289]  Joshua C. Colp <jcolp@sangoma.com>
    
    	* AST-2021-007 - res_pjsip_session: Don't offer if no channel exists.
    
    	  If a re-INVITE is received after we have sent a BYE request then it
    	  is possible for no channel to be present on the session. If this
    	  occurs we allow PJSIP to produce the offer instead. Since the call
    	  is being hung up if it produces an incorrect offer it doesn't
    	  actually matter. This also ensures that code which produces SDP
    	  does not need to handle if a channel is not present.
    
    	  ASTERISK-29381
    
    	  Change-Id: I673cb88c432f38f69b2e0851d55cc57a62236042
    
    2021-06-29 11:07 +0000 [2c3defc6c6]  Andre Barbosa <andre.emanuel.barbosa@gmail.com>
    
    	* res_stasis_playback: Check for chan hangup on play_on_channels
    
    	  Verify `ast_check_hangup` before looping to the next sound file.
    	  If the call is already hangup we just break the cycle.
    	  It also ensures that the PlaybackFinished event is sent if the call was hangup.
    
    	  This is also use-full when we are playing a big list of file for a channel that is hangup.
    	  Before this patch Asterisk will give a warning for every sound not played and fire a PlaybackStart for every sound file on the list tried to be played.
    
    	  With the patch we just break the playback cycle when the chan is hangup.
    
    	  ASTERISK-29501 #close
    
    	  Change-Id: Ic4e1c01b974c9a1f2d9678c9d6b380bcfc69feb8
    
    2021-07-15 15:04 +0000 [30feaadabf]  Sean Bright <sean.bright@gmail.com>
    
    	* res_pjsip_stir_shaken: RFC 8225 compliance and error message cleanup.
    
    	  From RFC 8225 Section 5.2.1:
    
    	      The "dest" claim is a JSON object with the claim name of "dest"
    	      and MUST have at least one identity claim object.  The "dest"
    	      claim value is an array containing one or more identity claim JSON
    	      objects representing the destination identities of any type
    	      (currently "tn" or "uri").  If the "dest" claim value array
    	      contains both "tn" and "uri" claim names, the JSON object should
    	      list the "tn" array first and the "uri" array second.  Within the
    	      "tn" and "uri" arrays, the identity strings should be put in
    	      lexicographical order, including the scheme-specific portion of
    	      the URI characters.
    
    	  Additionally, make it clear that there was a failure to sign the JWT
    	  payload and not necessarily a memory allocation failure.
    
    	  Change-Id: Ia8733b861aef6edfaa9c2136e97b447a01578dc9
    
    2021-06-30 17:15 +0000 [4bd975f415]  Sebastien Duthil <sduthil@wazo.community>
    
    	* stun: Emit warning message when STUN request times out
    
    	  Without this message, it is not obvious that the reason is STUN timeout.
    
    	  ASTERISK-29507 #close
    
    	  Change-Id: I26e4853c23a1aed324552e1b9683ea3c05cb1f74
    
    2021-07-02 10:15 +0000 [76c09b1cfd]  Sean Bright <sean.bright@gmail.com>
    
    	* res_http_media_cache.c: Parse media URLs to find extensions.
    
    	  Use the URI parsing functions to parse playback URLs in order to find
    	  their file extensions.
    
    	  For backwards compatibility, we first look at the full URL, then at
    	  any Content-Type header, and finally at just the path portion of the
    	  URL.
    
    	  ASTERISK-27871 #close
    
    	  Change-Id: I16d0682f6d794be96539261b3e48f237909139cb
    
    2021-07-13 10:31 +0000 [fcebc4d24a]  Sean Bright <sean.bright@gmail.com>
    
    	* main/cdr.c: Correct Party A selection.
    
    	  This appears to just have been a copy/paste error from 6258bbe7. Fix
    	  suggested by Ross Beer in ASTERISK~29166.
    
    	  Change-Id: I51e0de92042e53f37597c6f83a75621ef0d1ae37
    
    2021-05-26 12:09 +0000 [a41d192e99]  Naveen Albert <asterisk@phreaknet.org>
    
    	* app_reload: New Reload application
    
    	  Adds an application to reload modules
    	  from within the dialplan.
    
    	  ASTERISK-29454
    
    	  Change-Id: Ic8ab025d8b38dd525b872b41c465c999c5810774
    
    2021-07-08 09:32 +0000 [b9bb96ffed]  Igor Goncharovsky <igorg@iqtek.ru>
    
    	* res_ari: Fix audiosocket segfault
    
    	  Add check that data parameter specified when audiosocket used for externalMedia.
    
    	  ASTERISK-29514 #close
    
    	  Change-Id: Ie562f03c5d6c3835a3631f376b3d43e75b8f9617
    
    2021-06-30 08:07 +0000 [146b59df3f]  Sean Bright <sean.bright@gmail.com>
    
    	* res_pjsip_config_wizard.c: Add port matching support.
    
    	  In f8b0c2c9 we added support for port numbers in 'match' statements
    	  but neglected to include that support in the PJSIP config wizard.
    
    	  The removed code would have also prevented IPv6 addresses from being
    	  successfully used in the config wizard as well.
    
    	  ASTERISK-29503 #close
    
    	  Change-Id: Idd5bbfd48009e7a741757743dbaea68e2835a34d
    
    2021-05-22 09:31 +0000 [1b21b1abf7]  Naveen Albert <mail@interlinked.x10host.com>
    
    	* app_waitforcond: New application
    
    	  While several applications exist to wait for
    	  a certain event to occur, none allow waiting
    	  for any generic expression to become true.
    	  This application allows for waiting for a condition
    	  to become true, with configurable timeout and
    	  checking interval.
    
    	  ASTERISK-29444
    
    	  Change-Id: I08adf2824b8bc63405778cf355963b5005612f41
    
    2021-06-04 06:11 +0000 [283812e492]  Andre Barbosa <andre.emanuel.barbosa@gmail.com>
    
    	* res_stasis_playback: Send PlaybackFinish event only once for errors
    
    	  When we try to play a list of sound files in the same Play command,
    	  we get only one PlaybackFinish event, after all sounds are played.
    
    	  But in the case where the Play fails (because channel is destroyed
    	  for example), Asterisk will send one PlaybackFinish event for each
    	  sound file still to be played. If the list is big, Asterisk is
    	  sending many events.
    
    	  This patch adds a failed state so we can understand that the play
    	  failed. On that case we don't send the event, if we still have a
    	  list of sounds to be played.
    
    	  When we reach the last sound, we send the PlaybackFinish with
    	  the failed state.
    
    	  ASTERISK-29464 #close
    
    	  Change-Id: I4c2e5921cc597702513af0d7c6c2c982e1798322
    
    2021-06-17 07:57 +0000 [88da59efe7]  George Joseph <gjoseph@digium.com>
    
    	* jitterbuffer:  Correct signed/unsigned mismatch causing assert
    
    	  If the system time has stepped backwards because of a time
    	  adjustment between the time a frame is timestamped and the
    	  time we check the timestamps in abstract_jb:hook_event_cb(),
    	  we get a negative interval, but we don't check for that there.
    	  abstract_jb:hook_event_cb() then calls
    	  fixedjitterbuffer:fixed_jb_get() (via abstract_jb:jb_get_fixed)
    	  and the first thing that does is assert(interval >= 0).
    
    	  There are several issues with this...
    
    	   * abstract_jb:hook_event_cb() saves the interval in a variable
    	     named "now" which is confusing in itself.
    
    	   * "now" is defined as an unsigned int which converts the negative
    	     value returned from ast_tvdiff_ms() to a large positive value.
    
    	   * fixed_jb_get()'s parameter is defined as a signed int so the
    	     interval gets converted back to a negative value.
    
    	   * fixed_jb_get()'s assert is NOT an ast_assert but a direct define
    	     that points to the system assert() so it triggers even in
    	     production mode.
    
    	  So...
    
    	   * hook_event_cb()'s "now" was renamed to "relative_frame_start" and
    	     changed to an int64_t.
    	   * hook_event_cb() now checks for a negative value right after
    	     retrieving both the current and framedata timestamps and just
    	     returns the frame if the difference is negative.
    	   * fixed_jb_get()'s local define of ASSERT() was changed to call
    	     ast_assert() instead of the system assert().
    
    	  ASTERISK-29480
    	  Reported by: Dan Cropp
    
    	  Change-Id: Ic469dec73c2edc3ba134cda6721a999a9714f3c9
    
    2021-05-21 19:08 +0000 [c4236dcff2]  Naveen Albert <mail@interlinked.x10host.com>
    
    	* app_dial: Expanded A option to add caller announcement
    
    	  Hitherto, the A option has made it possible to play
    	  audio upon answer to the called party only. This option
    	  is expanded to allow for playback of an audio file to
    	  the caller instead of or in addition to the audio
    	  played to the answerer.
    
    	  ASTERISK-29442
    
    	  Change-Id: If6eed3ff5c341dc8c588c8210987f2571e891e5e
    
    2021-06-21 06:31 +0000 [5e1cb3253c]  Joshua C. Colp <jcolp@sangoma.com>
    
    	* core: Don't play silence for Busy() and Congestion() applications.
    
    	  When using the Busy() and Congestion() applications the
    	  function ast_safe_sleep is used by wait_for_hangup to safely
    	  wait on the channel. This function may send silence if Asterisk
    	  is configured to do so using the transmit_silence option.
    
    	  In a scenario where an answered channel dials a Local channel
    	  either directly or through call forwarding and the Busy()
    	  or Congestion() dialplan applications were executed with the
    	  transmit_silence option enabled the busy or congestion
    	  tone would not be heard.
    
    	  This is because inband generation of tones (such as busy
    	  and congestion) is stopped when other audio is sent to
    	  the channel they are being played to. In the given
    	  scenario the transmit_silence option would result in
    	  silence being sent to the channel, thus stopping the
    	  inband generation.
    
    	  This change adds a variant of ast_safe_sleep which can be
    	  used when silence should not be played to the channel. The
    	  wait_for_hangup function has been updated to use this
    	  resulting in the tones being generated as expected.
    
    	  ASTERISK-29485
    
    	  Change-Id: I066bfc987a3ad6f0ccc88e0af4cd63f6a4729133
    
    2021-05-07 01:18 +0000 [6b041d1092]  Bernd Zobl <b.zobl@commend.com>
    
    	* res_pjsip_sdp_rtp: Evaluate remotely held for Session Progress
    
    	  With the fix for ASTERISK_28754 channels are no longer put on hold if an
    	  outbound INVITE is answered with a "Session Progress" containing
    	  "inactive" audio.
    
    	  The previous change moved the evaluation of the media attributes to
    	  `negotiate_incoming_sdp_stream()` to have the `remotely_held` status
    	  available when building the SDP in `create_outgoing_sdp_stream()`.
    	  This however means that an answer to an outbound INVITE, which does not
    	  traverse `negotiate_incoming_sdp_stream()`, cannot set the
    	  `remotely_held` status anymore.
    
    	  This change moves the check so that both, `negotiate_incoming_sdp_stream()` and
    	  `apply_negotiated_sdp_stream()` can do the checks.
    
    	  ASTERISK-29479
    
    	  Change-Id: Icde805a819399d5123b688e1ed1d2bcd9d5b0f75
    
    2021-06-17 14:44 +0000  Asterisk Development Team <asteriskteam@digium.com>
    
    	* asterisk 18.5.0-rc1 Released.
    
    2021-06-17 09:39 +0000 [0747162d4f]  Asterisk Development Team <asteriskteam@digium.com>
    
    	* Update CHANGES and UPGRADE.txt for 18.5.0
    2021-06-16 08:50 +0000 [702e1d33b5]  George Joseph <gjoseph@digium.com>
    
    	* res_pjsip_messaging: Overwrite user in existing contact URI
    
    	  When the MessageSend destination is in the form
    	  PJSIP/<number>@<endpoint> and the endpoint's contact
    	  URI already has a user component, that user component
    	  will now be replaced with <number> when creating the
    	  request URI.
    
    	  ASTERISK_29404
    
    	  Change-Id: I80e5910fa25c803d1440da0594a0d6b34b6b4ad5
    
    2021-03-16 11:45 +0000 [804788037e]  Bernd Zobl <b.zobl@commend.com>
    
    	* res_pjsip/pjsip_message_filter: set preferred transport in pjsip_message_filter
    
    	  Set preferred transport when querying the local address to use in
    	  filter_on_tx_messages(). This prevents the module to erroneously select
    	  the wrong transport if more than one transports of the same type (TCP or
    	  TLS) are configured.
    
    	  ASTERISK-29241
    
    	  Change-Id: I598e60257a7f92b29efce1fb3e9a2fc06f1439b6
    
    2021-06-10 09:34 +0000 [2b174a38fe]  Naveen Albert <asterisk@phreaknet.org>
    
    	* pbx_builtins: Corrects SayNumber warning
    
    	  Previously, SayNumber always emitted a warning if the caller hung up
    	  during execution. Usually this isn't correct, so check if the channel
    	  hung up and, if so, don't emit a warning.
    
    	  ASTERISK-29475
    
    	  Change-Id: Ieea4a67301c6ea83bbc7690c1d4808d79a704594
    
    2021-05-22 07:53 +0000 [6b67821098]  Jaco Kroon <jaco@uls.co.za>
    
    	* func_lock: Prevent module unloading in-use module.
    
    	  The scenario where a channel still has an associated datastore we
    	  cannot unload since there is a function pointer to the destroy and fixup
    	  functions in play.  Thus increase the module ref count whenever we
    	  allocate a datastore, and decrease it during destroy.
    
    	  In order to tighten the race that still exists in spite of this (below)
    	  add some extra failure cases to prevent allocations in these cases.
    
    	  Race:
    
    	  If module ref is zero, an LOCK or TRYLOCK is invoked (near)
    	  simultaneously on a channel that has NOT PREVIOUSLY taken a lock, and if
    	  in such a case the datastore is created *prior* to unloading being set
    	  to true (first step in module unload) then it's possible that the module
    	  will unload with the destructor being called (and segfault) post the
    	  module being unloaded.  The module will however wait for such locks to
    	  release prior to unloading.
    
    	  If post that we can recheck the module ref before returning the we can
    	  (in theory, I think) eliminate the last of the race.  This race is
    	  mostly theoretical in nature.
    
    	  Change-Id: I21a514a0b56755c578a687f4867eacb8b59e23cf
    	  Signed-off-by: Jaco Kroon <jaco@uls.co.za>
    
    2021-05-22 07:29 +0000 [6f303335d3]  Jaco Kroon <jaco@uls.co.za>
    
    	* func_lock: Add "dialplan locks show" cli command.
    
    	  For example:
    
    	  arthur*CLI> dialplan locks show
    	  func_lock locks:
    	  Name                                     Requesters Owner
    	  uls-autoref                              0          (unlocked)
    	  1 total locks listed.
    
    	  Obviously other potentially useful stats could be added (eg, how many
    	  times there was contention, how many times it failed etc ... but that
    	  would require keeping the stats and I'm not convinced that's worth the
    	  effort.  This was useful to troubleshoot some other issues so submitting
    	  it.
    
    	  Change-Id: Ib875e56feb49d523300aec5f36c635ed74843a9f
    	  Signed-off-by: Jaco Kroon <jaco@uls.co.za>
    
    2021-05-22 07:42 +0000 [a3df5d7de8]  Jaco Kroon <jaco@uls.co.za>
    
    	* func_lock: Fix memory corruption during unload.
    
    	  AST_TRAVERSE accessess current as current = current->(field).next ...
    	  and since we free current (and ast_free poisons the memory) we either
    	  end up on a ast_mutex_lock to a non-existing lock that can never be
    	  obtained, or a segfault.
    
    	  Incidentally add logging in the "we have to wait for a lock to release"
    	  case, and remove an ineffective statement that sets memory that was just
    	  cleared by ast_calloc to zero.
    
    	  Change-Id: Id19ba3d9867b23d0e6783b97e6ecd8e62698b8c3
    	  Signed-off-by: Jaco Kroon <jaco@uls.co.za>
    
    2021-05-22 07:48 +0000 [6bd741b77d]  Jaco Kroon <jaco@uls.co.za>
    
    	* func_lock: Fix requesters counter in error paths.
    
    	  In two places we bail out with failure after we've already incremented
    	  the requesters counter, if this occured then it would effectively result
    	  in unload to wait indefinitely, thus preventing clean shutdown.
    
    	  Change-Id: I362a6c0dc424f736d4a9c733d818e72d19675283
    	  Signed-off-by: Jaco Kroon <jaco@uls.co.za>
    
    2021-05-25 10:36 +0000 [a611a0cd42]  Naveen Albert <asterisk@phreaknet.org>
    
    	* app_originate: Allow setting Caller ID and variables
    
    	  Caller ID can now be set on the called channel and
    	  Variables can now be set on the destination
    	  using the Originate application, just as
    	  they can be currently using call files
    	  or the Manager Action.
    
    	  ASTERISK-29450
    
    	  Change-Id: Ia64cfe97d2792bcbf4775b3126cad662922a8b66
    
    2021-06-10 16:24 +0000 [26059f8616]  Sean Bright <sean.bright@gmail.com>
    
    	* menuselect: Fix description of several modules.
    
    	  The text description needs to be the last thing on the AST_MODULE_INFO
    	  line to be pulled in properly by menuselect.
    
    	  Change-Id: I0c913e36fea8b661f42e56920b6c5513ae8fd832
    
    2021-05-23 19:20 +0000 [a40e58a4da]  Naveen Albert <asterisk@phreaknet.org>
    
    	* app_confbridge: New ConfKick() application
    
    	  Adds a new ConfKick() application, which may
    	  be used to kick a specific channel, all channels,
    	  or all non-admin channels from a specified
    	  conference bridge, similar to existing CLI and
    	  AMI commands.
    
    	  ASTERISK-29446
    
    	  Change-Id: I5d96b683880bfdd27b2ab1c3f2e897c5046ded9b
    
    2021-06-02 08:11 +0000 [6873c5f3e4]  Naveen Albert <asterisk@phreaknet.org>
    
    	* sip_to_pjsip: Fix missing cases
    
    	  Adds the "auto" case which is valid with
    	  both chan_sip dtmfmode and chan_pjsip's
    	  dtmf_mode, adds subscribecontext to
    	  subscribe_context conversion, and accounts
    	  for cipher = ALL being invalid.
    
    	  ASTERISK-29459
    
    	  Change-Id: Ie27d6606efad3591038000e5f3c34fa94730f6f2
    
    2021-06-02 08:25 +0000 [99573f9540]  Naveen Albert <asterisk@phreaknet.org>
    
    	* res_pjsip_dtmf_info: Hook flash
    
    	  Adds hook flash recognition support
    	  for application/hook-flash.
    
    	  ASTERISK-29460
    
    	  Change-Id: I1d060fa89a7cf41244c98f892fff44eb1c9738ea
    
    2021-05-20 09:51 +0000 [a861522467]  Naveen Albert <mail@interlinked.x10host.com>
    
    	* app_confbridge: New option to prevent answer supervision
    
    	  A new user option, answer_channel, adds the capability to
    	  prevent answering the channel if it hasn't already been
    	  answered yet.
    
    	  ASTERISK-29440
    
    	  Change-Id: I26642729d0345f178c7b8045506605c8402de54b
    
    2021-04-22 13:07 +0000 [8e2672d2a4]  George Joseph <gjoseph@digium.com>
    
    	* res_pjsip_messaging: Refactor outgoing URI processing
    
    	   * Implemented the new "to" parameter of the MessageSend()
    	     dialplan application.  This allows a user to specify
    	     a complete SIP "To" header separate from the Request URI.
    
    	   * Completely refactored the get_outbound_endpoint() function
    	     to actually handle all the destination combinations that
    	     we advertized as supporting.
    
    	   * We now also accept a destination in the same format
    	     as Dial()...  PJSIP/number@endpoint
    
    	   * Added lots of debugging.
    
    	  ASTERISK-29404
    	  Reported by Brian J. Murrell
    
    	  Change-Id: I67a485196d9199916468f7f98bfb9a0b993a4cce
    
    2021-05-16 10:21 +0000 [9106c9d1f1]  Naveen Albert <mail@interlinked.x10host.com>
    
    	* func_math: Three new dialplan functions
    
    	  Introduces three new dialplan functions, MIN and MAX,
    	  which can be used to calculate the minimum or
    	  maximum of up to two numbers, and ABS, an absolute
    	  value function.
    
    	  ASTERISK-29431
    
    	  Change-Id: I2bda9269d18f9d54833c85e48e41fce0e0ce4d8d
    
    2021-05-19 13:45 +0000 [26a38c4084]  Ben Ford <bford@digium.com>
    
    	* STIR/SHAKEN: Add Date header, dest->tn, and URL checking.
    
    	  STIR/SHAKEN requires a Date header alongside the Identity header, so
    	  that has been added. Still on the outgoing side, we were missing the
    	  dest->tn section of the JSON payload, so that has been added as well.
    	  Moving to the incoming side, URL checking has been added to the public
    	  cert URL to ensure that it starts with http.
    
    	  https://wiki.asterisk.org/wiki/display/AST/OpenSIPit+2021
    
    	  Change-Id: Idee5b1b5e45bc3b483b3070e46ce322dca5b3f1c
    
    2021-05-24 13:38 +0000 [16e4a9d8cf]  Joshua C. Colp <jcolp@sangoma.com>
    
    	* res_pjsip: On partial transport reload also move factories.
    
    	  For connection oriented transports PJSIP uses factories to
    	  produce transports. When doing a partial transport reload
    	  we need to also move the factory of the transport over so
    	  that anything referencing the transport (such as an endpoint)
    	  has the factory available.
    
    	  ASTERISK-29441
    
    	  Change-Id: Ieae0fb98eab2d9257cad996a1136e5a62d307161
    
    2021-05-20 08:18 +0000 [033c2a2283]  Naveen Albert <mail@interlinked.x10host.com>
    
    	* func_volume: Add read capability to function.
    
    	  Up until now, the VOLUME function has been write
    	  only, so that TX/RX values can be set but not
    	  read afterwards. Now, previously set TX/RX values
    	  can be read later.
    
    	  ASTERISK-29439
    
    	  Change-Id: Ia23e92fa2e755c36e9c8e69f2940d2703ccccb5f
    
    2021-04-13 02:57 +0000 [59d15c4c2a]  Evgenios_Greek <jone1984@hotmail.com>
    
    	* stasis: Fix "FRACK!, Failed assertion bad magic number" when unsubscribing
    
    	  When unsubscribing from an endpoint technology a FRACK
    	  would occur due to incorrect reference counting. This fixes
    	  that issue, along with some other issues.
    
    	  Fixed a typo in get_subscription when calling ao2_find as it
    	  needed to pass the endpoint ID and not the entire object.
    
    	  Fixed scenario where a subscription would get returned when
    	  it shouldn't have been when searching based on endpoint
    	  technology.
    
    	  A doulbe unreference has also been resolved by only explicitly
    	  releasing the reference held by tech_subscriptions.
    
    	  ASTERISK-28237 #close
    	  Reported by: Lucas Tardioli Silveira
    
    	  Change-Id: Ia91b15f8e5ea68f850c66889a6325d9575901729
    
    2021-05-20 02:15 +0000 [b21d4d1b87]  Joseph Nadiv <ynadiv@corpit.xyz>
    
    	* res_pjsip.c: Support endpoints with domain info in username
    
    	  In multidomain environments, it is desirable to create
    	  PJSIP endpoints with the domain info in the endpoint name
    	  in pjsip_endpoint.conf.  This resulted in an error with
    	  registrations, NOTIFY, and OPTIONS packet generation.
    
    	  This commit will detect if there is an @ in the endpoint
    	  identifier and generate the URI accordingly so NOTIFY and
    	  OPTIONS From headers will generate correctly.
    
    	  ASTERISK-28393
    
    	  Change-Id: I96f8d01dfdd5573ba7a28299e46271dd4210b619
    
    2021-05-20 07:51 +0000 [3aed363716]  Joshua C. Colp <jcolp@sangoma.com>
    
    	* res_rtp_asterisk: Set correct raddr port on RTCP srflx candidates.
    
    	  RTCP ICE candidates use a base address derived from the RTP
    	  candidate. The port on the base address was not being updated to
    	  the RTCP port.
    
    	  This change sets the base port to the RTCP port and all is well.
    
    	  ASTERISK-29433
    
    	  Change-Id: Ide2d2115b307bfd3c2dfbc4d187515d724519040
    
    2021-05-25 05:38 +0000 [60ed1847b8]  Joshua C. Colp <jcolp@sangoma.com>
    
    	* asterisk: We've moved to Libera Chat!
    
    	  Change-Id: I48c1933dd79b50ddc0a6793acec4754b4e95c575
    
    2021-05-19 13:13 +0000 [0f8e2174a7]  Jeremy Lainé <jeremy.laine@m4x.org>
    
    	* res_rtp_asterisk: make it possible to remove SOFTWARE attribute
    
    	  By default Asterisk reports the PJSIP version in a SOFTWARE attribute
    	  of every STUN packet it sends. This may not be desired in a production
    	  environment, and RFC5389 recommends making the use of the SOFTWARE
    	  attribute a configurable option:
    
    	  https://datatracker.ietf.org/doc/html/rfc5389#section-16.1.2
    
    	  This patch adds a `stun_software_attribute` yes/no option to make it
    	  possible to omit the SOFTWARE attribute from STUN packets.
    
    	  ASTERISK-29434
    
    	  Change-Id: Id3f2b1dd9584536ebb3a1d7e8395fd8b3e46860b
    
    2021-04-15 10:43 +0000 [655ee680cd]  George Joseph <gjoseph@digium.com>
    
    	* res_pjsip_outbound_authenticator_digest: Be tolerant of RFC8760 UASs
    
    	  RFC7616 and RFC8760 allow more than one WWW-Authenticate or
    	  Proxy-Authenticate header per realm, each with different digest
    	  algorithms (including new ones like SHA-256 and SHA-512-256).
    	  Thankfully however a UAS can NOT send back multiple Authenticate
    	  headers for the same realm with the same digest algorithm.  The
    	  UAS is also supposed to send the headers in order of preference
    	  with the first one being the most preferred.  We're supposed to
    	  send an Authorization header for the first one we encounter for a
    	  realm that we can support.
    
    	  The UAS can also send multiple realms, especially when it's a
    	  proxy that has forked the request in which case the proxy will
    	  aggregate all of the Authenticate headers and then send them all
    	  back to the UAC.
    
    	  It doesn't stop there though... Each realm can require a
    	  different username from the others.  There's also nothing
    	  preventing each digest algorithm from having a unique password
    	  although I'm not sure if that adds any benefit.
    
    	  So now... For each Authenticate header we encounter, we have to
    	  determine if we support the digest algorithm and, if not, just
    	  skip the header.  We then have to find an auth object that
    	  matches the realm AND the digest algorithm or find a wildcard
    	  object that matches the digest algorithm. If we find one, we add
    	  it to the results vector and read the next Authenticate header.
    	  If the next header is for the same realm AND we already added an
    	  auth object for that realm, we skip the header. Otherwise we
    	  repeat the process for the next header.
    
    	  In the end, we'll have accumulated a list of credentials we can
    	  pass to pjproject that it can use to add Authentication headers
    	  to a request.
    
    	  NOTE: Neither we nor pjproject can currently handle digest
    	  algorithms other than MD5.  We don't even have a place for it in
    	  the ast_sip_auth object. For this reason, we just skip processing
    	  any Authenticate header that's not MD5.  When we support the
    	  others, we'll move the check into the loop that searches the
    	  objects.
    
    	  Changes:
    
    	   * Added a new API ast_sip_retrieve_auths_vector() that takes in
    	     a vector of auth ids (usually supplied on a call to
    	     ast_sip_create_request_with_auth()) and populates another
    	     vector with the actual objects.
    
    	   * Refactored res_pjsip_outbound_authenticator_digest to handle
    	     multiple Authenticate headers and set the stage for handling
    	     additional digest algorithms.
    
    	   * Added a pjproject patch that allows them to ignore digest
    	     algorithms they don't support.  This patch has already been
    	     merged upstream.
    
    	   * Updated documentation for auth objects in the XML and
    	     in pjsip.conf.sample.
    
    	   * Although res_pjsip_authenticator_digest isn't affected
    	     by this change, some debugging and a testsuite AMI event
    	     was added to facilitate testing.
    
    	  Discovered during OpenSIPit 2021.