--- /dev/null
+2020-09-09 14:11 +0000 Asterisk Development Team <asteriskteam@digium.com>
+
+ * asterisk 13.37.0-rc1 Released.
+
+2020-09-09 09:00 +0000 [8ccae31f5d] Asterisk Development Team <asteriskteam@digium.com>
+
+ * Update CHANGES and UPGRADE.txt for 13.37.0
+2020-09-01 08:43 +0000 [d649ab4a30] Patrick Verzele <patrick@verzele.be>
+
+ * res_pjsip_session: Deferred re-INVITE without SDP send a=sendrecv instead of a=sendonly
+
+ Building on ASTERISK-25854. When the device requests hold by sending SDP with attribute recvonly, asterisk places the session in sendonly mode. When the device later requests to resume the call by using a re-INVITE excluding SDP, asterisk needs to change the sendonly mode to sendrecv again.
+
+ Change-Id: I60341ce3d87f95869f3bc6dc358bd3e8286477a6
+
+2020-08-26 04:58 +0000 [0064aa0107] Kfir Itzhak <mastertheknife@gmail.com>
+
+ * app_queue: Fix leave-empty not recording a call as abandoned
+
+ This fixes a bug introduced mistakenly in ASTERISK-25665:
+ If leave-empty is enabled, a call may sometimes be removed from
+ a queue without recording it as abandoned.
+ This causes Asterisk to not generate an abandon event for that
+ call, and for the queue abandoned counter to be incorrect.
+
+ ASTERISK-29043 #close
+
+ Change-Id: I1a71b81df78adff59af587f1d8483cf57df430c7
+
+2020-08-28 09:34 +0000 [bc615ee4c4] George Joseph <gjoseph@digium.com>
+
+ * ast_coredumper: Fix issues with naming
+
+ If you run ast_coredumper --tarball-coredumps in the same directory
+ as the actual coredump, tar can fail because the link to the
+ actual coredump becomes recursive. The resulting tarball will
+ have everything _except_ the coredump (which is usually what
+ you need)
+
+ There's also an issue that the directory name in the tarball
+ is the same as the coredump so if you extract the tarball the
+ directory it creates will overwrite the coredump.
+
+ So:
+
+ * Made the link to the coredump use the absolute path to the
+ file instead of a relative one. This prevents the recursive
+ link and allows tar to add the coredump.
+
+ * The tarballed directory is now named <coredump>.output instead
+ of just <coredump> so if you expand the tarball it won't
+ overwrite the coredump.
+
+ Change-Id: I8b3eeb26e09a577c702ff966924bb0a2f9a759ea
+
+2020-08-28 04:29 +0000 [dc6d3a746c] Joshua C. Colp <jcolp@sangoma.com>
+
+ * parking: Copy parker UUID as well.
+
+ When fixing issues uncovered by GCC10 a copy of the parker UUID
+ was removed accidentally. This change restores it so that the
+ subscription has the data it needs.
+
+ ASTERISK-29042
+
+ Change-Id: I7d396a14ea648bd26d3c363dd78e78bd386b544a
+
+2016-05-03 11:11 +0000 [c111777756] Tzafrir Cohen <tzafrir@debian.org>
+
+ * followme: allow disabling callee prompt
+
+ Add the option 'enable_callee_prompt' to followme.conf. Enabled by
+ default. If disabled, a callee is not prompted to accept or reject
+ the forwarded call.
+
+ ASTERISK-29010 #close
+
+ Change-Id: Ic15a2bac4f16d0fce7a1b5e7b375f9bafee37aa4
+ Signed-off-by: Tzafrir Cohen <tzafrir.cohen@xorcom.com>
+
+2020-08-26 08:55 +0000 [4cc8d29fd3] Sean Bright <sean.bright@gmail.com>
+
+ * app_voicemail: Fix pollmailboxes
+
+ The name of the voicemail context was overwriting the name of the
+ subscribed mailbox. Fix by simplifying how we create the MWI
+ subscription.
+
+ ASTERISK-29029 #close
+
+ Change-Id: Ie8a7db6a0b68f3995b0846bbb733a21909ba44e5
+
+2020-08-26 10:43 +0000 [384f2638b2] Alexander Traud <pabstraud@compuserve.com>
+
+ * sip_nat_settings: Update script for latest Linux.
+
+ With the latest Linux, 'ifconfig' is not installed on default anymore.
+ Furthermore, the output of the current net-tools 'ifconfig' changed.
+ Therefore, parsing failed. This update uses 'ip addr show' instead.
+ Finally, the service for the external IP changed.
+
+ Change-Id: I9b1a7c3f457e3553b50a3e9a55524e40d70245a0
+
+2020-08-26 10:19 +0000 [8055807be2] Alexander Traud <pabstraud@compuserve.com>
+
+ * samples: Fix keep_alive_interval default in pjsip.conf.
+
+ Since ASTERISK_27978 the default is not off but 90 seconds. That change
+ happened because ASTERISK_27347 disabled the keep-alives in the bundled
+ PJProject and Asterisk should behave the same as before.
+
+ Change-Id: Ie63dc558ade6a5a2b969c30a4bd492d63730dc46
+
+2020-08-24 16:26 +0000 [bf139ff519] Kevin Harwell <kharwell@digium.com>
+
+ * chan_pjsip: disallow PJSIP_SEND_SESSION_REFRESH pre-answer execution
+
+ This patch makes it so if the PJSIP_SEND_SESSION_REFRESH dialplan function
+ is called on a channel prior to answering a warning is issued and the
+ function returns unsuccessful.
+
+ ASTERISK-28878 #close
+
+ Change-Id: I053f767d10cf3b2b898fa9e3e7c35ff07e23c9bb
+
+2020-08-27 05:31 +0000 [e519d28fe0] Joshua C. Colp <jcolp@sangoma.com>
+
+ * pbx: Fix hints deadlock between reload and ExtensionState.
+
+ When the ExtensionState AMI action is executed on a pattern matched
+ hint it can end up adding a new hint if one does not already exist.
+ This results in a locking order of contexts -> hints -> contexts.
+
+ If at the same time a reload is occurring and adding its own hint
+ it will have a locking order of hints -> contexts.
+
+ This results in a deadlock as one thread wants a lock on contexts
+ that the other has, and the other thread wants a lock on hints
+ that the other has.
+
+ This change enforces a hints -> contexts locking order by explicitly
+ locking hints in the places where a hint is added when queried for.
+ This matches the order seen through normal adding of hints.
+
+ ASTERISK-29046
+
+ Change-Id: I49f027f4aab5d2d50855ae937bcf5e2fd8bfc504
+
+2020-08-21 16:53 +0000 [fd49b4b43c] Nickolay Shmyrev <nshmyrev@alphacephei.com>
+
+ * res_speech: Bump reference on format object
+
+ Properly bump reference on format object to avoid memory corruption on double free
+
+ ASTERISK-29040 #close
+
+ Change-Id: Ic5a7faabfe2ef965ddb024186e1de7ca4542e2a3
+
+2020-07-22 03:45 +0000 [efb682c8f2] Torrey Searle <tsearle@voxbone.com>
+
+ * res_pjsip_diversion: handle 181
+
+ Adapt the response handler so it also called when 181 is received.
+ In the case 181 is received, also generate the 181 response.
+
+ ASTERISK-29001 #close
+
+ Change-Id: I73cfee46a8ca85371280ebdb38674f8fde7510df
+
+2020-08-21 09:17 +0000 [273f819dfe] Sean Bright <sean.bright@gmail.com>
+
+ * app_voicemail: Process urgent messages with mailcmd
+
+ Rather than putting messages into INBOX and then moving them to Urgent
+ later, put them directly in to the Urgent folder. This prevents
+ mailcmd from being skipped.
+
+ ASTERISK-27273 #close
+
+ Change-Id: I49934e093290d308506ab8d45a40ef705c5ae4f5
+
+2020-08-18 04:36 +0000 [02dee3986a] Joshua C. Colp <jcolp@sangoma.com>
+
+ * res_pjsip_session: Don't aggressively terminate on failed re-INVITE.
+
+ Per the RFC when an outgoing re-INVITE is done we should
+ only terminate the dialog if a 481 or 408 is received.
+
+ ASTERISK-29033
+
+ Change-Id: I6c3ff513aa41005d02de0396ba820083e9b18503
+
+2020-08-20 08:57 +0000 [c7df06a077] George Joseph <gjoseph@digium.com>
+
+ * scope_trace: Updated macro stubs to match other branches
+
+ Although scope tracing isn't actually implemented in this branch,
+ macro stubs had been added to allow code that used scope tracing
+ to be cherry-picked to this branch without modification.
+
+ To match the other branches, the following changes were made
+ to the stubs...
+
+ The SCOPE_ENTER and SCOPE_EXIT* macros now print debug messages
+ at the same level as the scope level. This allows the same
+ messages to be printed to the debug log when AST_DEVMODE
+ isn't enabled.
+
+ Also added a few variants of the SCOPE_EXIT macros that will
+ also call ast_log instead of ast_debug to make it easier to
+ use scope tracing and still print error messages.
+
+ Change-Id: Ifc281793a5b91c84a4f1633db9d07006d31585ed
+
+2020-08-19 12:29 +0000 [179530558d] Sean Bright <sean.bright@gmail.com>
+
+ * bridge_channel: Ensure text messages are zero terminated
+
+ T.140 data in RTP is not zero terminated, so when we are queuing a text
+ frame on a bridge we need to ensure that we are passing a zero
+ terminated string.
+
+ ASTERISK-28974 #close
+
+ Change-Id: Ic10057387ce30b2094613ea67e3ae8c5c431dda3
+
+2020-08-20 10:03 +0000 Asterisk Development Team <asteriskteam@digium.com>
+
+ * asterisk 13.36.0-rc1 Released.
+
+2020-02-18 06:30 +0000 [56f446482b] Dennis Buteyn <dennis.buteyn@xorcom.com>
+
+ * chan_sip: Clear ToHost property on peer when changing to dynamic host
+
+ The ToHost parameter was not cleared when a peer's host value was
+ changed to dynamic. This causes invites to be sent to the original host.
+
+ ASTERISK-29011 #close
+
+ Change-Id: I9678d512741f71baca8f131a65b7523020b07d5c
+
+2020-07-10 18:14 +0000 [53f9bbdc2d] sungtae kim <sungtae@messagebird.com>
+
+ * stasis_bridge.c: Fixed wrong video_mode shown
+
+ Currently, if the bridge has created by the ARI, the video_mode
+ parameter was
+ not shown in the BridgeCreated event correctly.
+
+ Fixed it and added video_mode shown in the 'bridge show <bridge id>'
+ cli.
+
+ ASTERISK-28987
+
+ Change-Id: I8c205126724e34c2bdab9380f523eb62478e4295
+
+2020-08-06 09:58 +0000 [7379a54424] Sean Bright <sean.bright@gmail.com>
+
+ * res_musiconhold.c: Prevent crash with realtime MoH
+
+ The MoH class internal file vector is potentially being manipulated by
+ multiple threads at the same time without sufficient locking. Switch to
+ a reference counted list and operate on copies where necessary.
+
+ ASTERISK-28927 #close
+
+ Change-Id: I479c5dcf88db670956e8cac177b5826c986b0217
+
+2020-08-04 10:51 +0000 [46fb9fb663] Sean Bright <sean.bright@gmail.com>
+
+ * vector.h: Fix implementation of AST_VECTOR_COMPACT() for empty vectors
+
+ The assumed behavior of realloc() - that it was effectively a free() if
+ its second argument was 0 - is Linux specific behavior and is not
+ guaranteed by either POSIX or the C specification.
+
+ Instead, if we want to resize a vector to 0, do it explicitly.
+
+ Change-Id: Ife31d4b510ebab41cb5477fdc7ea4e3138ca8b4f
+
+2020-06-30 10:40 +0000 [dd739f8a08] Michael Neuhauser <mike@firmix.at>
+
+ * pjproject: clone sdp to protect against (nat) modifications
+
+ PJSIP, UDP transport with external_media_address and session timers
+ enabled. Connected to SIP server that is not in local net. Asterisk
+ initiated the connection and is refreshing the session after 150s
+ (timeout 300s). The 2nd refresh-INVITE triggered by the pjsip timer has
+ a malformed IP address in its SDP (garbage string). This only happens
+ when the SDP is modified by the nat-code to replace the local IP address
+ with the configured external_media_address.
+ Analysis: the code to modify the SDP (in
+ res_pjsip_session.c:session_outgoing_nat_hook() and also (redundantly?)
+ in res_pjsip_sdp_rtp.c:change_outgoing_sdp_stream_media_address()) uses
+ the tdata->pool to allocate the replacement string. But the same
+ pjmedia_sdp_stream that was modified for the 1st refresh-INVITE is also
+ used for the 2nd refresh-INVITE (because it is stored in pjmedia's
+ pjmedia_sdp_neg structure). The problem is, that at that moment, the
+ tdata->pool that holds the stringified external_media_address from the
+ 1. refresh-INVITE has long been reused for something else.
+ Fix by Sauw Ming of pjproject (see
+ https://github.com/pjsip/pjproject/pull/2476): the local, potentially
+ modified pjmedia_sdp_stream is cloned in
+ pjproject/source/pjsip/src/pjmedia/sip_neg.c:process_answer() and the
+ clone is stored, thereby detaching from the tdata->pool (which is only
+ released *after* process_answer())
+
+ ASTERISK-28973
+ Reported-by: Michael Neuhauser
+
+ Change-Id: I272ac22436076596e06aa51b9fa23fd1c7734a0e
+
+2020-07-22 04:41 +0000 [5c0d247d69] Joshua C. Colp <jcolp@sangoma.com>
+
+ * res_pjsip_registrar: Don't specify an expiration for static contacts.
+
+ Statically configured contacts on an AOR don't have an expiration
+ time so when adding them to the resulting 200 OK if an endpoint
+ registers ensure they are marked as such.
+
+ ASTERISK-28995
+
+ Change-Id: I9f0e45eb2ccdedc9a0df5358634a19ccab0ad596
+
+2020-07-13 15:06 +0000 [718efe9365] Sean Bright <sean.bright@gmail.com>
+
+ * utf8.c: Add UTF-8 validation and utility functions
+
+ There are various places in Asterisk - specifically in regards to
+ database integration - where having some kind of UTF-8 validation would
+ be beneficial. This patch adds:
+
+ * Functions to validate that a given string contains only valid UTF-8
+ sequences.
+
+ * A function to copy a string (similar to ast_copy_string) stopping when
+ an invalid UTF-8 sequence is encountered.
+
+ * A UTF-8 validator that allows for progressive validation.
+
+ All of this is based on the excellent UTF-8 decoder by Björn Höhrmann.
+ More information is available here:
+
+ https://bjoern.hoehrmann.de/utf-8/decoder/dfa/
+
+ The API was written in such a way that should allow us to replace the
+ implementation later should we determine that we need something more
+ comprehensive.
+
+ Change-Id: I3555d787a79e7c780a7800cd26e0b5056368abf9
+
+2020-07-20 13:17 +0000 [4fec6da25b] Sean Bright <sean.bright@gmail.com>
+
+ * vector.h: Add AST_VECTOR_SORT()
+
+ Allows a vector to be sorted in-place, rather than only during
+ insertion.
+
+ Change-Id: I22cba9ddf556a7e44dacc53c4431bd81dd2fa780
+
+2020-07-16 08:41 +0000 [f6afac1b37] George Joseph <gjoseph@digium.com>
+
+ * CI: Force publishAsteriskDocs to use python2
+
+ Change-Id: I7d951e75ad2d472fa096647dfb55670b11105e23
+
+2020-07-13 15:42 +0000 [ff90e00677] Sean Bright <sean.bright@gmail.com>
+
+ * acl.c: Coerce a NULL pointer into the empty string
+
+ If an ACL is misconfigured in the realtime database (for instance, the
+ "rule" is blank) and Asterisk attempts to read the ACL, Asterisk will
+ crash.
+
+ ASTERISK-28978 #close
+
+ Change-Id: Ic1536c4df856231bfd2da00128f7822224d77610
+
+2020-07-13 04:41 +0000 [bcdc3ec645] Joshua C. Colp <jcolp@sangoma.com>
+
+ * pjsip: Include timer patch to prevent cancelling timer 0.
+
+ I noticed this while looking at another issue and brought
+ it up with Teluu. It was possible for an uninitialized timer
+ to be cancelled, resulting in the invalid timer id of 0
+ being placed into the timer heap causing issues.
+
+ This change is a backport from the pjproject repository
+ preventing this from happening.
+
+ Change-Id: I1ba318b1f153a6dd7458846396e2867282b428e7
+
+2020-07-02 17:19 +0000 [f8f934b545] Nickolay Shmyrev <nshmyrev@alphacephei.com>
+
+ * res_http_websocket: Avoid reading past end of string
+
+ We read beyond the end of the buffer when copying the string out of the
+ buffer when we used ast_copy_string() because the original string was
+ not null terminated. Instead switch to ast_strndup() which does not
+ exhibit the same behavior.
+
+ ASTERISK-28975 #close
+
+ Change-Id: Ib4a75cffeb1eb8cf01136ef30306bd623e531a2a
+
+2020-07-09 10:27 +0000 [77a5383957] Asterisk Development Team <asteriskteam@digium.com>
+
+ * Update CHANGES and UPGRADE.txt for 13.35.0
+2020-07-09 15:33 +0000 Asterisk Development Team <asteriskteam@digium.com>
+
+ * asterisk 13.35.0-rc1 Released.
+
+2020-07-05 19:03 +0000 [c705e79d79] George Joseph <gjoseph@digium.com>
+
+ * Scope Trace: Update stub defines
+
+ Reminder: 13 doesn't support scope tracing but we're keeping
+ the stub defines consistent across branches.
+
+ Change-Id: If00733a4d5a4e829cbb4c934bcc2f4c1a80dab81
+
+2020-06-23 18:27 +0000 [52e1e362f0] sungtae kim <pchero21@gmail.com>
+
+ * res_pjsip.c: Added disable_rport option for pjsip.conf
+
+ Currently when the pjsip making an outgoing request, it keep adding the
+ rport parameter in a request message as a default.
+
+ This causes unexpected rport handle at the other end.
+
+ Added option for disable this behaviour in the pjsip.conf.
+
+ This is a system option, but working as a gloabl option.
+
+ ASTERISK-28959
+
+ Change-Id: I9596675e52a742774738b5aad5d1fec32f477abc
+
+2020-06-22 12:16 +0000 [f323ac334b] Nickolay Shmyrev <nshmyrev@alphacephei.com>
+
+ * res_http_websocket.c: Continue reading after ping/pong
+
+ Do not return error if the client received ping frame
+ while looking for a string and just wait for another frame.
+
+ ASTERISK-28958 #close
+
+ Change-Id: I4d06b4827bd71e56cbaafc011ffdcef9f0332922
+
+2020-06-30 10:40 +0000 [ef19d69c6b] Kevin Harwell <kharwell@digium.com>
+
+ * PJSIP_MEDIA_OFFER: override what's specified on configuration
+
+ When using the PSJIP_MEDIA_OFFER dialplan function it was not
+ overriding an endpoint's configured codecs unless they had a
+ shared codec between the two.
+
+ This patch makes it so whatever is set using PJSIP_MEDIA_OFFER
+ is used when creating the SDP definition no matter what.
+
+ ASTERISK-28878 #close
+
+ Change-Id: I0f7dc86fd0fb607c308e6f98ede303c54d1eacb6
+
+2020-06-10 16:58 +0000 [4bbc5be798] Kevin Harwell <kharwell@digium.com>
+
+ * manager - Add Content-Type parameter to the SendText action
+
+ This patch allows a user of AMI to now specify the type of message
+ content contained within by setting the 'Content-Type' parameter.
+
+ Note, the AMI version has been bumped for this change.
+
+ ASTERISK-28945 #close
+
+ Change-Id: Ibb5315702532c6b954e1498beddc8855fabdf4bb
+
+2020-06-29 08:00 +0000 [9fce541643] George Joseph <gjoseph@digium.com>
+
+ * logger: Fix scope trace defines
+
+ Although not implemented in the 13 branch, we need to keep the
+ defines consistent across all branches.
+
+ Change-Id: Id88ad71ca36818a35f1f14a5acb450e240366301
+
+2020-06-26 05:18 +0000 [df509590a1] Joshua C. Colp <jcolp@sangoma.com>
+
+ * res_pjsip: Apply AOR outbound proxy to static contacts.
+
+ The outbound proxy for an AOR was not being applied to
+ any statically configured Contacts. This resulted in the
+ OPTIONS requests being sent to the wrong target.
+
+ This change sets the outbound proxy on statically configured
+ contacts once the AOR configuration is done being
+ applied.
+
+ ASTERISK-28965
+
+ Change-Id: Ia60f3e93ea63f819c5a46bc8b54be2e588dfa9e0
+
+2020-06-24 05:25 +0000 [2513235859] Joshua C. Colp <jcolp@sangoma.com>
+
+ * menuselect: Resolve infinite loop in dependency scenario.
+
+ Given a scenario where a module has a dependency on both
+ an external library and a module if the external library was
+ available and the module was not an infinite loop would
+ occur. This happened due to the code changing the dependecy
+ status to no failure on each dependency checking loop
+ iteration, resulting in the code thinking that it had
+ gone from no failure to failure each time triggering another
+ dependency check.
+
+ This change makes it so that the old dependency status is
+ preserved throughout the dependency checking allowing it to
+ determine that after the first iteration the dependency
+ status does not transition from no failure to failure.
+
+ ASTERISK-28930
+
+ Change-Id: Iea06d45d9fd6d8bfd068882a0bb7e23a53ec3e84
+
+2020-06-22 04:08 +0000 [745ae35f0e] Frederic LE FOLL <frederic.lefoll@c-s.fr>
+
+ * chan_sip: chan_sip does not process 400 response to an INVITE.
+
+ chan_sip handle_response() function, for a 400 response to an INVITE,
+ calls handle_response_invite() and does not generate ACK.
+ handle_response_invite() does not recognize 400 response and has no
+ default response processing for unexpected responses, thus it does not
+ generate ACK either.
+ The ACK on response repetition comes from handle_response() mechanism
+ "We must re-send ACKs to re-transmitted final responses".
+
+ According to code history, 400 response specific processing was
+ introduced with commit
+ "channels/chan_sip: Add improved support for 4xx error codes"
+ This commit added support for :
+ - 400/414/493 in handle_response_subscribe() handle_response_register()
+ and handle_response().
+ - 414/493 only in handle_response_invite().
+
+ This fix adds 400 response support in handle_response_invite().
+
+ ASTERISK-28957
+
+ Change-Id: Ic71a087e5398dfc7273946b9ec6f9a36960218ad
+
+2020-06-03 05:05 +0000 [09370b0a2b] Università di Bologna - CESIA VoIP <cesia.voip@unibo.it>
+
+ * res_corosync: Fix crash in huge distributed environment.
+
+ 1) Fix memory-leaks
+ Added code to release ast_events extracted from corosync and stasis messages
+
+ 2) Clean stasis cache when a member of the corosync cluster leaves the group
+ Added code to remove from the stasis cache of the members remained on the
+ group all the messages with the EID of the left member.
+ If the device states of the left member remain in the stasis cache of other
+ members, they will not be updated anymore and high priority cached values,
+ like BUSY, will take precedence over current device states.
+
+ 3) Stop corosync event propagation when node is not joined to the group
+ Updated dispatch_thread_handler code to detect when asterisk is not joined
+ to the corosync group and added some condition in publish_event_to_corosync
+ code to send corosync messages only when joined.
+ When a node is not joined its corosync daemon can't send messages:
+ the cpg_mcast_joined function append new messages to the FIFO buffer until
+ it's full and then it blocks indefinitely.
+ In this scenario if the stasis_message_cb callback, registered by
+ res_corosync to handle stasis messages, try to send a corosync messages,
+ the thread of the stasis thread-pool will be blocked until the node join
+ the corosync cluster.
+
+ ASTERISK-28888
+ Reported by: Università di Bologna - CESIA VoIP
+
+ Change-Id: Ie8e99bc23f141a73c13ae6fb1948d148d4de17f2
+
+2020-06-13 11:29 +0000 [635885ec33] Moises Silva <moises.silva@gmail.com>
+
+ * res_http_websocket: Add payload masking to the websocket client
+
+ ASTERISK-28949
+
+ Change-Id: Id465030f2b1997b83d408933fdbabe01827469ca
+
+2020-06-18 05:14 +0000 [a3af7ef7e7] Guido Falsi <madpilot@FreeBSD.org>
+
+ * chan_dadhi: Fix setvar in dahdi channels
+
+ The change to how setvar works for various channels performed in
+ ASTERISK~23756 missed some required change in the dahdi channel,
+ where the variables are actually set while reading configuration.
+ This change should fix the issue.
+
+ ASTERISK-28955
+
+ Change-Id: Ibfeb7f8cbdd735346dc4028de6a265f24f9df274
+
+2020-06-10 04:35 +0000 [1a40a6d55a] Joshua C. Colp <jcolp@sangoma.com>
+
+ * res_sorcery_memory_cache: Disallow per-object expire with full backend.
+
+ The AMI action and CLI command did not take into account the properties
+ of full backend caching. This resulted in an expired object remaining
+ removed until a full backend update occurred, instead of having the
+ object updated when needed.
+
+ This change makes it so that the AMI action and CLI command for object
+ expire will now fail instead of putting the cache into an undesired
+ state. If full backend caching is enabled then only operations
+ which act on the entire cache are available.
+
+ ASTERISK-28942
+
+ Change-Id: Id662d888f177ab566c8e802ad583083b742d21f4
+
+2020-06-15 06:55 +0000 [8576603faf] Walter Doekes <walter+asterisk@wjd.nu>
+
+ * app_queue: Read latest wrapuptime instead of (possibly stale) copy
+
+ Before this changeset, it was possible that a queue member (agent) was
+ called even though they just got out of a call, and wrapuptime seconds
+ hadn't passed yet.
+
+ This could happen if a member ended a call _between_ a new call attempt
+ and asterisk trying that particular member for a new call.
+
+ In that case, Asterisk would check the hangup time of the
+ call-before-the-last-call instead of the hangup time of the-last-call.
+
+ ASTERISK-28952
+
+ Change-Id: Ie0cab8f0e8d639c01cba633d4968ba19873d80b3
+
+2020-06-15 06:53 +0000 [bcc7766bf6] Walter Doekes <walter+asterisk@wjd.nu>
+
+ * app_queue: Remove stale code in try_calling
+
+ Because ring_entry() is not called, outgoing->chan is not touched here
+ either.
+
+ ASTERISK-28950
+ ASTERISK-28644
+
+ Change-Id: I564613715dfaf45af868251eb75a451f512af90f
+
+2020-06-15 07:09 +0000 [50ba662b6a] Walter Doekes <walter+asterisk@wjd.nu>
+
+ * res_pjsip: Include <pjsip_ua.h> instead of internal "pjsua-lib/pjsua.h"
+
+ Change-Id: I24b5453df412232cf7f9a171ea4a34b35ad3ae78
+
+2020-05-15 16:08 +0000 [58eaf41e28] Kevin Harwell <kharwell@digium.com>
+
+ * pjproject: Upgrade bundled version to pjproject 2.10
+
+ This patch makes the usual necessary changes when upgrading to a new
+ version pjproject. For instance, version number bump, patches removed
+ from third-party, new *.md5 file added, etc..
+
+ This patch also includes a change to the Asterisk pjproject Makefile to
+ explicitly create the 'source/pjsip-apps/lib' directory. This directory
+ is no longer there by default so needs to be added so the Asterisk
+ malloc debug can be built.
+
+ This patch also includes some minor changes to Asterisk that were a result
+ of the upgrade. Specifically, there was a backward incompatibility change
+ made in 2.10 that modified the "expires header" variable field from a
+ signed to an unsigned value. This potentially effects comparison. Namely,
+ those check for a value less than zero. This patch modified a few locations
+ in the Asterisk code that may have been affected.
+
+ Lastly, this patch adds a new macro PJSIP_MINVERSION that can be used to
+ check a minimum version of pjproject at compile time.
+
+ ASTERISK-28899 #close
+
+ Change-Id: Iec8821c6cbbc08c369d0e3cd2f14e691b41d0c81
+
+2020-06-03 11:23 +0000 [dd983edafe] George Joseph <gjoseph@digium.com>
+
+ * res_fax: Don't start a gateway if either channel is hung up
+
+ When fax_gateway_framehook is called and a gateway hasn't already
+ been started, the framehook gets the t38 state for both the current
+ channel and the peer. That call trickles down to the channel
+ driver which determines the state. If either channel is hung up
+ (or in the process of being hung up), the channel driver's tech_pvt
+ is going to be NULL which, in the case of chan_pjsip, will cause a
+ segfault.
+
+ * Added a hangup check for both the channel and peer channel
+ before starting a fax gateway.
+
+ * Added a check for NULL tech_pvt to chan_pjsip_queryoption
+ so we don't attempt to reference a tech_pvt that's already
+ gone.
+
+ ASTERISK-28923
+ Reported by: Yury Kirsanov
+
+ Change-Id: I4e10e63b667bbb68c1c8623f977488f5d807897c
+
+2020-06-03 11:45 +0000 [654ec4b908] Kevin Harwell <kharwell@digium.com>
+
+ * Compiler fixes for gcc 10
+
+ This patch fixes a few compile warnings/errors that now occur when using gcc
+ 10+.
+
+ Also, the Makefile.rules check to turn off partial inlining in gcc versions
+ greater or equal to 8.2.1 had a bug where it only it only checked against
+ versions with at least 3 numbers (ex: 8.2.1 vs 10). This patch now ensures
+ any version above the specified version is correctly compared.
+
+ Change-Id: I54718496eb0c3ce5bd6d427cd279a29e8d2825f9
+
+2020-06-05 04:30 +0000 [1e5ea08e0c] Walter Doekes <walter+asterisk@wjd.nu>
+
+ * pjsip: Prevent invalid memory access when attempting to contact a non-sip URI
+
+ You cannot cast a pjsip_uri to a pjsip_sip_uri using pjsip_uri_get_uri,
+ without checking that it's a PJSIP_URI_SCHEME_IS_SIP(S).
+
+ ASTERISK-28936
+
+ Change-Id: I9f572b3677e4730458e9402719e580f8681afe2a
+
+2020-05-27 03:47 +0000 [f30a61022a] Joshua C. Colp <jcolp@sangoma.com>
+
+ * res_fax: Don't consume frames given to fax gateway on write.
+
+ In a particular fax gateway scenario whereby it would
+ have to translate using the read translation path on a
+ channel the frame being translated would be consumed.
+ When the frame is in the write path it is not permitted
+ to free the frame as the caller expects it to continue
+ to exist.
+
+ This change makes it so that the frame is only consumed
+ on the read path where it is acceptable to free it.
+
+ ASTERISK-28900
+
+ Change-Id: I011c321288a1b056d92b37c85e229f4a28ee737d
+
+2020-06-02 06:24 +0000 [439f782452] Alexander Traud <pabstraud@compuserve.com>
+
+ * pjproject_bundled: Honor --without-pjproject.
+
+ The previous change missed that 'make' uses 'PJPROJECT_BUNDLED' anyway.
+
+ ASTERISK-28929
+
+ Change-Id: I7ef0e78a06ea391b59d95b99d46bbed3fec4fed9
+
+2020-06-04 01:50 +0000 [84da8622f6] Pirmin Walthert <infos@nappsoft.ch>
+
+ * res_pjsip_logger: use the correct pointer when logging tx_messages to pcap
+
+ When writing tx messages to pcap files, Asterisk is using the wrong
+ pointer resulting in lots of wasted space. This patch fixes it to use
+ the correct pointer.
+
+ ASTERISK-28932 #close
+
+ Change-Id: I5b8253dd59a083a2ca2c81f232f1d14d33c6fd23
+
+2020-05-21 08:20 +0000 [edf9471e05] George Joseph <gjoseph@digium.com>
+
+ * Scope Tracing: Add stubs to allow easier cherry-picking
+
+ Scope tracing isn't supported in Asterisk 13 due to changes made
+ to logging between 13 and 16 but since the scope tracing macros
+ may be present in the 16, 17 and master branches, those macros
+ are defined here as NOOPs so cherry-picking changes downward
+ to 13 can still be seamless.
+
+ Change-Id: I0390ce5651374d8f3e06d7620050acb22c5440a2
+
+2020-05-31 17:10 +0000 [e7f7c8c9de] Joshua C. Colp <jcolp@sangoma.com>
+
+ * res_rtp_asterisk: Re-order RTP destruction.
+
+ The destructor for RTP deallocated transport resources
+ before terminating the ICE support. This could result
+ in a crash as the thread handling ICE would access already
+ freed parts of the RTP data.
+
+ This change re-orders the destruction so that ICE is
+ stopped before destroying things.
+
+ ASTERISK-28885
+
+ Change-Id: Ie71add549f12b6cdea7e9dbf976d1bd1d2fc0bdc
+
+2020-05-29 04:28 +0000 [81b86702fb] Pirmin Walthert <infos@nappsoft.ch>
+
+ * res_pjsip_logger.c: correct the return value checks when writing to pcap
+ files
+
+ fwrite() does return the number of elements written and not the
+ number of bytes. However asterisk is currently comparing the return
+ value to the size of the written element what means that asterisk logs
+ five WARNING messages on every packet written to the pcap file.
+
+ This patch changes the code to check for the correct value, which will
+ always be 1.
+
+ ASTERISK-28921 #close
+
+ Change-Id: I2455032d9cb4c5a500692923f9e2a22e68b08fc2
+
+2020-05-28 12:10 +0000 Asterisk Development Team <asteriskteam@digium.com>
+
+ * asterisk 13.34.0-rc1 Released.
+
+2020-05-28 07:05 +0000 [07bf7890dc] Asterisk Development Team <asteriskteam@digium.com>
+
+ * Update CHANGES and UPGRADE.txt for 13.34.0
+2020-05-27 09:35 +0000 [c8cabb08aa] Joshua C. Colp <jcolp@sangoma.com>
+
+ * res_pjsip: Use correct pool for storing the contact_user value.
+
+ When replacing the user portion of the Contact URI the code
+ was using the ephemeral pool instead of the tdata pool. This
+ could cause the Contact user value to become invalid after a
+ period of time.
+
+ The code will now use the tdata pool which persists for the
+ lifetime of the message instead.
+
+ ASTERISK-28794
+
+ Change-Id: I31e7b958e397cbdaeedd0ebb70bcf8dd2ed3c4d5
+
+2020-05-13 07:06 +0000 [4b7293f44e] Pirmin Walthert <infos@nappsoft.ch>
+
+ * res_pjsip_nat.c: remove x-ast-orig-host from request URI and To header
+
+ While asterisk is filtering out the x-ast-orig-host parameter from the
+ contact on response messages, it is not filtering it out from the
+ request URI and the to header on SIP requests (for example INVITE).
+
+ ASTERISK-28884 #close
+
+ Change-Id: Id032b33098a1befea9b243ca994184baecccc59e
+
+2020-05-19 07:55 +0000 [0d86f49f7f] Joshua C. Colp <jcolp@sangoma.com>
+
+ * res_sorcery_config: Always reload configuration on errors.
+
+ When a configuration file in Asterisk is loaded
+ information about it is stored such that on a
+ reload it is not reloaded if nothing has changed.
+ This can be problematic when an error exists in
+ a configuration file in PJSIP since the error
+ will be output at start and not subsequently on
+ reload if the file is unchanged.
+
+ This change makes it so that if an error is
+ encountered when res_sorcery_config is loading
+ a configuration file a reload will always read
+ in the configuration file, allowing the error
+ to be seen easier.
+
+ Change-Id: If2e05a017570f1f5f4f49120da09601e9ecdf9ed
+
+2020-05-19 04:18 +0000 [17a878dd99] Joshua C. Colp <jcolp@sangoma.com>
+
+ * bridge_softmix: Always remove audio from mixed frame.
+
+ When receiving audio from a channel we determine if it
+ is talking or silence based on a threshold value. If
+ this threshold is met we always mix the audio into the
+ conference bridge. If this threshold is not met we also
+ mix the audio into the conference bridge UNLESS the
+ drop silence option is enabled.
+
+ The code that removed the audio from the mixed frame
+ assumed that it was always not present if it did not
+ meet the threshold to be considered talking. This is
+ incorrect. If it has been stated that the audio was
+ mixed into the mixed frame then it has been mixed into
+ the mixed frame. By not removing audio that was
+ considered non-talking it was possible for a channel
+ to receive a slight echo of audio of itself at times.
+
+ This change ensures that the audio is always removed
+ from the mixed frame going back to the channel so it
+ no longer receives the slight echo.
+
+ ASTERISK-28898
+
+ Change-Id: I7b1b582cc1bcdb318ecc60c9d2e3d87ae31d55cb
+
+2020-04-30 17:57 +0000 [4fba0f678b] Joshua C. Colp <jcolp@sangoma.com>
+
+ * res_pjsip_logger: Expand functionality to improve logging.
+
+ The PJSIP packet logger now has the following CLI commands:
+
+ pjsip set logger pcap <filename>
+
+ When used this will create a pcap file containing the incoming
+ and outgoing SIP packets, in unencrypted form.
+
+ pjsip set logger verbose <on / off>
+
+ This allows you to toggle logging to verbose on and off.
+
+ pjsip set logger host <IP/subnet mask> add
+
+ This allows you to add an additional IP address or subnet
+ mask to logging, allowing you to log multiple instead of
+ just a single IP address or all traffic.
+
+ The normal "pjsip set logger host" CLI command has also been
+ expanded to allow subnet masks as well.
+
+ ASTERISK-28895
+
+ Change-Id: If5859161a72b0d7dd2d1f92d45bed88e0cd07d0e
+
+2020-05-18 11:31 +0000 [5de3f22ee0] sungtae kim <sungtae@messagebird.com>
+
+ * res_rtp_asterisk.c: Fixed memory leak
+
+ Added freeifaddrs() for memory releasing.
+
+ ASTERISK-28904
+
+ Change-Id: I109403866e85a30659351946903a679de9727a8f
+
+2020-05-08 06:11 +0000 [683f0b269e] Guido Falsi <madpilot@FreeBSD.org>
+
+ * pjproject: Fix race condition when building with parallel make
+
+ Pjproject makefiles miss some dependencies which can cause race
+ conditions when building with parallel make processes. This patch
+ adds such dependencies correctly.
+
+ ASTERISK-28879 #close
+ Reported-by: Dmitry Wagin <dmitry.wagin@ya.ru>
+
+ Change-Id: Ie1b0dc365dafe4a84c5248097fe8d73804043c22
+
+2020-05-09 02:46 +0000 [3df1b65dd0] Roger James <roger@beardandsandals.co.uk>
+
+ * res_pjsip_history.c: Fix to stop SIGSEGV when IPv6 addresses are encountered.
+
+ Changed source and destination address fields in struct
+ pjsip_history_entry so that they are long enough to hold an IPv6
+ address.
+
+ ASTERISK-28854
+
+ Change-Id: Id65bb9aa961e9ecbcb500815e18170f774e34d3e
+
+2020-04-01 08:50 +0000 [377f5b6992] Alexander Traud <pabstraud@compuserve.com>
+
+ * tcptls: Fix notice when TLS is enabled but not supported.
+
+ ASTERISK-28797
+
+ Change-Id: Iab364a2c2519fd9d11d1c28293fda43d61b64c28
+
+2020-04-04 04:28 +0000 [103b789e56] Alexander Traud <pabstraud@compuserve.com>
+
+ * app_osplookup: Avoid a format truncation.
+
+ Ensure that output buffers for the osp_convert_inout
+ function have sufficient space for additional data
+ such as brackets and ports.
+
+ ASTERISK-28804
+
+ Change-Id: Ie54c8241ff0cc653910539c2db00ff2a4869750b
+
+2020-04-14 11:02 +0000 [146e7c54f1] Pirmin Walthert <infos@nappsoft.ch>
+
+ * app.c: make sure that no non-async-signal-safe syscalls are used after
+ fork before exec
+
+ Posix does only allow async-signal-safe syscalls after fork before exec.
+ As asterisk ignores this, functions like TrySystem or System sometimes
+ end up in a deadlocked child process. The patch prevents the use of
+ non-async-signal-safe syscalls.
+
+ ASTERISK-28776
+
+ Change-Id: Idc76365c0592ee3f3b3bd72a4f48f7a098978e8e
+
+2020-04-08 18:41 +0000 [10292dc663] Nathan Bruning <nathan@iperity.com>
+
+ * app_queue: track masquerades in app_queue to avoid leaked stasis subscriptions
+
+ Add a new "masquarade" channel event, and use it in app_queue to track unique id's.
+
+ Testcase is submitted as https://gerrit.asterisk.org/c/testsuite/+/14210
+
+ ASTERISK-28829 #close
+ ASTERISK-25844 #close
+
+ Change-Id: Ifc5f9f9fd70903f3c6e49738d3bc632b085d2df6
+
+2020-05-03 05:30 +0000 [77837059ac] Guido Falsi <madpilot@FreeBSD.org>
+
+ * pjproject: Remove bashism from configure.m4 script
+
+ The configure.m4 script for pjproject contains some += syntax, which
+ is specific to bash, replacing it with string substitutions makes
+ the script compatible with traditional Bourne shells.
+
+ ASTERISK-28866 #close
+ Reported-by: Christoph Moench-Tegeder <cmt@FreeBSD.org>
+
+ Change-Id: I382a78160e028044598b7da83ec7e1ff42b91c05
+
+2020-05-04 03:29 +0000 [f5a1a91b03] Jaco Kroon <jaco@uls.co.za>
+
+ * Remove #include <sys/cdefs.h>
+
+ These are not provided by standards, and as a result causes failure to
+ compile on musl.
+
+ https://wiki.musl-libc.org/faq.html#Q:-When-compiling-something-against-musl,-I-get-error-messages-about-%3Ccode%3Esys/cdefs.h%3C/code%3E
+
+ Change-Id: I6a357cefd106c72cfecafd898638f6b5692c2e05
+
+2020-04-30 10:56 +0000 [2d1713395b] George Joseph <gjoseph@digium.com>
+
+ * app_voicemail: Add workaround for a gcc 10 issue with -Wrestrict
+
+ The gcc 10 -Wrestrict option was causing "overlap" errors when
+ snprintf was copying one char[256] structure member to another
+ char[256] member in the same structure.
+
+ Using ast_alloca instead of declaring the structure inline
+ solves the issue.
+
+ Here's a link to the "enhancement":
+ https://gcc.gnu.org/legacy-ml/gcc-patches/2019-10/msg00570.html
+
+ We may follow up with a gcc bug report.
+
+ Change-Id: Ie0099adcb0a9727bd9aa99e024dd912a67eaf534
+
+2020-04-27 10:28 +0000 [18cc090761] Alexander Traud <pabstraud@compuserve.com>
+
+ * core_local: Local calls are always secure.
+
+ In a Dialplan, the channel drivers 'chan_sip' and 'chan_iax2' support
+ the channel items 'secure_bridge_media' and 'secure_bridge_signaling'.
+ That way, a channel can be forced to use encryption even if not
+ specified in its configuration.
+
+ However, when the Local Proxy kicks in, for example, in case of a
+ forwarding (SIP status 302), Local Proxy stated it does not know those
+ items. Consequently, such a call could not be proxied how clever your
+ Dialplan was. Because local calls within Asterisk are always secure,
+ Local Proxy accepts such a request now.
+
+ ASTERISK-22920
+
+ Change-Id: I4c143bb70f686790953cc04c5a4b810bbb03636c
+
+2020-04-28 10:31 +0000 [35f7e24ebc] Joshua C. Colp <jcolp@sangoma.com>
+
+ * pjsip: Increase maximum ICE candidate count.
+
+ In practice it has been seen that some users come
+ close to our maximum ICE candidate count of 32.
+ In case people have gone over this increases the
+ count to 64, giving ample room.
+
+ ASTERISK-28859
+
+ Change-Id: I35cd68948ec0ada86c14eb53092cdaf8b62996cf
+
+2020-04-26 05:56 +0000 [5c74f22977] Guido Falsi <madpilot@FreeBSD.org>
+
+ * res_rtp_asterisk: Protect access to nochecksums with #ifdef
+
+ Recently code accessing nochecksums variable has been added without including #ifdef SO_NO_CHECK protection, while the variable is created only when such constant is defined.
+
+ ASTERISK-28852 #close
+
+ Change-Id: I381718893b80599ab8635f2b594a10c1000d595e
+
+2020-04-17 02:39 +0000 [7714bbfeaa] Peter Turczak <peter@turczak.de>
+
+ * chan_mobile: Add smoother to make SIP/RTP endpoints happy.
+
+ In contrast to RFC 3551, section 4.2, several SIP/RTP clients misbehave
+ severly (up to crashing). This patch adds another smoother for the audio
+ received via bt. Therefore the audio frames sent to the core will be
+ CHANNEL_FRAME_SIZE.
+
+ ASTERISK-28832 #close
+
+ Change-Id: Ic5f9e2f35868ae59cc9356afbd1388b779a1267f
+
+2020-04-23 16:10 +0000 Asterisk Development Team <asteriskteam@digium.com>
+
+ * asterisk 13.33.0-rc1 Released.
+
+2020-04-23 11:01 +0000 [074d766fb3] Asterisk Development Team <asteriskteam@digium.com>
+
+ * Update CHANGES and UPGRADE.txt for 13.33.0
+2020-04-21 10:40 +0000 [f2d9d31ef5] sungtae kim <sungtae@messagebird.com>
+
+ * res_ari_channels: Fixed endpoint 80 characters limit
+
+ Fixed it to copy the entire string from the requested endpoint body except tech-prefix.
+
+ ASTERISK-28847
+
+ Change-Id: I91b5f6708a1200363f3267b847dd6a0915222c25
+
+2020-04-15 15:13 +0000 [e4508fcc6e] Daniel Heckl <daniel.heckl@gmail.com>
+
+ * res_pjsip: Fixed format of IPv6 addresses for external media addresses
+
+ ASTERISK-28835
+
+ Change-Id: I66289afd164c5cdd6c5caa39e79d629a467e7a26
+
+2020-04-20 13:11 +0000 [91ce91dbc6] Alexander Traud <pabstraud@compuserve.com>
+
+ * chan_sip: externhost/externaddr with non-default TCP/TLS ports.
+
+ ASTERISK-28372
+ Reported by: Anton Satskiy
+
+ ASTERISK-24428
+ Reported by: sstream
+
+ Change-Id: I2b7432a9bf3b09dc8515297ff955636db7a6224c
+
+2020-04-17 06:51 +0000 [f91dc188dd] Alexander Traud <pabstraud@compuserve.com>
+
+ * curl: Add build-time dependency.
+
+ ASTERISK-28838
+
+ Change-Id: I34724e799e1ffaf723eb2c358abe8934dbadcd52
+
+2020-04-17 04:18 +0000 [bb5c0f30c4] Alexander Traud <pabstraud@compuserve.com>
+
+ * res_pjsip_refer: Add build-time dependency.
+
+ ASTERISK-28838
+
+ Change-Id: Ic693c3f464e35ec0db242afdb0a1415806af4e25
+
+2020-04-17 05:25 +0000 [7124850d3c] Alexander Traud <pabstraud@compuserve.com>
+
+ * app_getcpeid: Add build-time dependency.
+
+ ASTERISK-28838
+
+ Change-Id: I68b78e7e4718be82507247433127ce3992a5ba96
+
+2020-04-17 04:55 +0000 [59f2ad2019] Alexander Traud <pabstraud@compuserve.com>
+
+ * res_pjsip: Add build-time dependency.
+
+ ASTERISK-28838
+
+ Change-Id: Icb08304744ae3f34dce6ccb76f94379b8382a074
+
+2020-04-15 13:01 +0000 [1edf0047a1] Alexander Traud <pabstraud@compuserve.com>
+
+ * pjproject_bundled: Honor --without-pjproject.
+
+ ASTERISK-28837
+
+ Change-Id: Id057324912a3cfe6f50af372675626bb515907d9
+
+2020-04-15 01:20 +0000 [dac20ce461] Alexander Traud <pabstraud@compuserve.com>
+
+ * chan_sip: DiffServ/ToS not only on UDP but also on TCP and TLS sockets.
+
+ ASTERISK-27195
+ Reported by: Joshua Roys
+
+ Change-Id: I6e72ecb874200dec7a3865c7babaf5ac0d3101de
+
+2020-04-15 07:16 +0000 [65598af3ff] Alexander Traud <pabstraud@compuserve.com>
+
+ * install_prereq: Add libcap for high bits in DiffServ/ToS.
+
+ works automatically; see Mantis 7047 (now ASTERISK-6863)
+
+ Change-Id: I27d2c109180bd857b6757fd532de48eddb78aee6
+
+2020-04-15 06:09 +0000 [47e887dbf6] Alexander Traud <pabstraud@compuserve.com>
+
+ * BuildSystem: Only if found LibPRI, check its optional parts.
+
+ Change-Id: If8445f899ee4ce0c606c484943d4ce0c8e43b5da
+
+2020-04-15 02:38 +0000 [007a6ab05a] Alexander Traud <pabstraud@compuserve.com>
+
+ * BuildSystem: Only if found external PJProject, check its optional parts.
+
+ Change-Id: I11d5693d25c166c99d8cebffc16184d58f6362de
+
+2020-04-08 05:29 +0000 [43dfd0d300] Bernard Merindol <bernard.merindol@telnowedge.com>
+
+ * res_rtp_asterisk.c: Check for first DTMF having timestamp set to 0
+
+ When the first DTMF receive in RF2833 codec have TimeStamp at 0
+ is not processed.
+
+ ASTERISK-28812
+
+ Change-Id: I3196803a062dd2daee4938c9a778c3810cb7e504
+
+2020-04-07 07:05 +0000 [947a6e8674] Jean Aunis <jean.aunis@prescom.fr>
+
+ * func_volume: Accept decimal number as argument
+
+ Allow voice volume to be multiplied or divided by a floating point number.
+
+ ASTERISK-28813
+
+ Change-Id: I5b42b890ec4e1f6b0b3400cb44ff16522b021c8c
+
+2019-12-03 12:35 +0000 [ce1213e72f] Jaco Kroon <jaco@uls.co.za>
+
+ * res_rtp_asterisk: iterate all local addresses looking to populate ICE.
+
+ By using pjproject to give us a list of candidates, and then filtering,
+ if the host has >32 addresses configured, then it is possible that we
+ end up filtering out all 32 of those, and ending up with no candidates
+ at all. Instead, get getifaddrs (which pjsip is using underlying
+ anyway) to retrieve all local addresses, and iterate those, adding the
+ first 32 addresses not excluded by the ICE ACL.
+
+ In our setup at any point in time We've got between 6 and 328 addresses
+ on any given system. The lower limit is the lower limit but the upper
+ limit is growing on a near daily basis currently.
+
+ Change-Id: I109eaffc3e2b432f00bf958e3caa0f38cacb4edb
+ Signed-off-by: Jaco Kroon <jaco@uls.co.za>
+
+2020-04-10 08:13 +0000 [64427c667b] Alexander Traud <pabstraud@compuserve.com>
+
+ * pjproject_bundled: Repair ./configure --with-ssl without ARG.
+
+ ASTERISK-28758
+ Reported by: Patrick Wakano
+ Reported by: Dmitriy Serov
+
+ Change-Id: Ifb6b85c559d116739af00bc48d1f547caa85efac
+
+2020-04-11 14:03 +0000 [a142a1455c] Jaco Kroon <jaco@uls.co.za>
+
+ * res_pjsip: document legal dtls_verify endpoint options.
+
+ Change-Id: I7fa7c5c8a7ddb0bd525982f58bff3264ebbd9a1b
+
+2020-04-12 09:53 +0000 [23211669a7] Alexander Traud <pabstraud@compuserve.com>
+
+ * BuildSystem: Search for Python/C API when possibly needed only.
+
+ The Python/C API is used only if the Test Framework was enabled in Asterisk
+ 'make menuselect'. The Test Framework is available only if the Developer Mode
+ was enabled in Asterisk './configure --enable-dev-mode'. And that Python/C API
+ is used only if the PJProject was found and not disabled in Asterisk; the user
+ did not go for './configure --without-pjproject'.
+
+ Furthermore, because version 2 of that Python/C API is required (currently) and
+ because some platforms do not offer a generic version 2, the script searches
+ for 2.7 explicitly as well.
+
+ To avoid version mismatch between the Python/C API and the Python environment,
+ the script searches for the latter in the same versions, in the same the order
+ as well. Because this Python/C API is just for (some) Asterisk contributors,
+ the script also goes for the Python 3 environment as a last resort for all
+ other Asterisk users. This allows 'make full' even on minimal installations of
+ Ubuntu 18.04 LTS and newer.
+
+ Because the Python/C API is Asterisk contributor specific, the Python packages
+ are removed from the script './contrib/scripts/install_prereq' as this script
+ is intended for Asterisk users. Asterisk contributors have to install much more
+ packages in any case, like:
+ sudo apt install autoconf automake git git-review python2.7-dev
+
+ ASTERISK-28824
+ ASTERISK-27717
+
+ Change-Id: Id46d357e18869f64dcc217b8fdba821b63eeb876
+
+2020-04-01 11:52 +0000 [2bcc3df533] Alexander Traud <pabstraud@compuserve.com>
+
+ * chan_sip: TCP/TLS client without server.
+
+ It is possible to configure a TCP/TLS client without having a TCP/TLS
+ server. In that case, no error or warning was printed but the headers
+ Contact and Via in SIP REGISTER were "(null)".
+
+ ASTERISK-28798
+
+ Change-Id: I387ca5cb6a65f1eb675a29c5e41df8ec6c242ab2
+
+2020-04-13 12:05 +0000 [a0d5f7ccff] Alexander Traud <pabstraud@compuserve.com>
+
+ * _pjsua: Build even with Clang.
+
+ Change-Id: Iebf7687613aa0295ea3c82256460b337f1595be2
+
+2020-04-13 11:27 +0000 [92efcc9047] Alexander Traud <pabstraud@compuserve.com>
+
+ * res_rtp_asterisk: Build without PJProject.
+
+ Change-Id: Ifc5059cd867e77b9c92ed9f4b895a9a91200d3ec
+
+2020-04-08 14:01 +0000 [b2e7fc6972] Kevin Harwell <kharwell@digium.com>
+
+ * chan_pjsip: digit_begin - constant DTMF tone if RTP is not setup yet
+
+ If chan_pjsip is configured for DTMF_RFC_4733, and the core triggers a
+ digit begin before media, or rtp has been setup then it's possible the
+ outgoing channel will hear a constant DTMF tone upon answering.
+
+ This happens because when there is no media, or rtp chan_pjsip notifies
+ the core to initiate inband DTMF. However, upon digit end if media, and
+ rtp become available then chan_pjsip does not notify the core to stop
+ inband DTMF. Thus the tone continues playing.
+
+ This patch makes it so chan_pjsip only notifies the core to start
+ inband DTMF in only the required cases. Now if there is no media, or
+ rtp availabe upon digit begin chan_pjsip does nothing, but tells the
+ core it handled it.
+
+ ASTERISK-28817 #close
+
+ Change-Id: I0dbea9fff444a2595fb18c64b89653e90d2f6eb5
+
+2020-04-07 12:44 +0000 [9b259c6514] Alexander Traud <pabstraud@compuserve.com>
+
+ * BuildSystem: Remove doc/tex and doc/pdf leftovers.
+
+ Furthermore, the nowhere used compress is removed.
+
+ ASTERISK-28816
+
+ Change-Id: I77daab80cfabb56d51c3ea6b1d14bd9b9fbc577c
+
+2020-04-09 07:05 +0000 [785225c5a0] Alexander Traud <pabstraud@compuserve.com>
+
+ * BuildSystem: Allow space in path.
+
+ ASTERISK-28818
+
+ Change-Id: Ib7f246896457d9e3b14d7f5199136d6545ce0b6f
+
+2020-04-02 12:14 +0000 [9082f90217] Alexander Traud <pabstraud@compuserve.com>
+
+ * stasis: Avoid always true warnings with clang.
+
+ ASTERISK-28801
+
+ Change-Id: I63ba125226b9fe8a018bd28825c877603eb8f398
+
+2020-03-31 15:14 +0000 [bb974877fa] Sebastien Duthil <sduthil@wazo.community>
+
+ * func_channel: allow reading 4 fields from dialplan
+
+ The following fields return an error when read from dialplan:
+
+ - exten
+ - context
+ - userfield
+ - channame
+
+ ASTERISK-28796 #close
+
+ Change-Id: Ieacaac629490f8710fdacc9de80ed5916c5f6ee2
+
+2020-04-03 12:25 +0000 [05440f3ef6] Alexander Traud <pabstraud@compuserve.com>
+
+ * chan_unistim: Avoid tautological warnings with clang.
+
+ ASTERISK-28803
+
+ Change-Id: I15449621b68d0ad4d57b7c337c1167adb15135af
+
+2020-04-06 09:29 +0000 [b92bd5783b] Sean Bright <sean.bright@gmail.com>
+
+ * Revert "res_config_odbc: Preserve empty strings returned by the database"
+
+ This reverts commit a3a2fbaec685d931d56f669f2d4171220e9977ac.
+
+ Reason for revert: There is a lot of code that relies on the broken
+ behavior that this fixes.
+
+ Change-Id: I410c395a0168acbdaf89e616e3cb5e1312d190cb
+
+2020-04-06 06:56 +0000 [55dacdce56] Alexander Traud <pabstraud@compuserve.com>
+
+ * test_stasis: Avoid always true warning with clang.
+
+ ASTERISK-28808
+
+ Change-Id: I5e76831373532d7b8065d024e66cd1fb75dedd80
+
+2020-04-01 04:00 +0000 [42989a285b] Jaco Kroon <jaco@uls.co.za>
+
+ * main/backtrace: binutils-2.34 fix.
+
+ My tester missed this one previously, have confirmed a positive build
+ this time round.
+
+ Change-Id: Id06853375954a200f03f9a1b9c97fe0b10d31fbf
+
+2020-03-26 17:42 +0000 [69805a772e] Jason Hord <jhord@fluentstream.com> (license 6978)
+
+ * res_pjsip: Don't set endpoint to unavailable in all cases.
+
+ When an AOR is modified endpoints are updated that reference
+ the AOR so they can start receiving updates and reflect the
+ correct state. If this is the case then we shouldn't change
+ the endpoint to be offline if it does not reference the AOR
+ but instead only when the endpoint is completely updated for
+ all its AORs.
+
+ ASTERISK-28056
+ patches:
+ pjsip_options-aor.diff submitted by jhord (license 6978)
+
+ Change-Id: I3ee00023be2393113cd4e056599f23f3499ef164
+
+2020-03-24 06:43 +0000 [b338da8a19] Alexander Traud <pabstraud@compuserve.com>
+
+ * test_utils: Avoid incorrect error message on load.
+
+ In case of no OpenSSL headers, the module was built but did not load.
+
+ ASTERISK-28789
+
+ Change-Id: Ie007e84296bcf2bd4237f19d68ba5f932b84cd02
+
+2020-03-23 12:25 +0000 [151a27fa81] Alexander Traud <pabstraud@compuserve.com>
+
+ * func_aes: Avoid incorrect error message on load.
+
+ In case of no OpenSSL headers, the module func_aes was built but did not load.
+
+ ASTERISK-28788
+
+ Change-Id: I0b99b8468cbeb3b0eab23069cbd64062ef885ffc
+
+2020-03-26 17:18 +0000 [59e193b295] sungtae kim <sungtae@messagebird.com>
+
+ * dial.c: Removed dial string 80 character limitation
+
+ The dial application had 80 characters of destination length
+ limitation. But this limitation causes unexpected dial string
+ cut if the dial string is long.
+
+ Removed unnecessary limited buffer to support longer dial
+ destination.
+
+ ASTERISK-27946
+
+ Change-Id: I72c8f0319a4b47e8180817a66a7e9bde063cb330
+
+2020-03-19 04:34 +0000 [ad7be12f0d] Torrey Searle <torrey@voxbone.com>
+
+ * res_pjsip_session: implement processing of Content-Disposition
+
+ RFC5621 requires any content type with a Content-Disposition
+ with handling=required to be rejected with a 415 response
+
+ ASTERISK-28782 #close
+
+ Change-Id: Iad969df75936730254b95c1a8bc3b48497070bb4
+
+2020-03-18 08:49 +0000 [5ddac396f0] Jaco Kroon <jaco@uls.co.za>
+
+ * acl: implement a centralized ACL output mechanism for HAs and ACLs.
+
+ named_acl.c (which is really a named_ha) now uses ast_ha_output.
+
+ I've also updated main/manager.c to output the actual ACL on "manager
+ show user <username>" if one is set. If this works then we can add
+ similar to other modules as required.
+
+ Change-Id: I0ec9876a90dddd379c80ec078d48e3ee6991eb0f
+
+2020-03-26 08:49 +0000 [305227dd38] Joshua C. Colp <jcolp@sangoma.com>
+
+ * chan_sip: Send 403 when ACL fails.
+
+ Change-Id: I0910c79196f2b7c7e5ad6f1db95e83800ac737a2
+
+2020-03-17 15:54 +0000 [e96e5cc3d4] Kevin Harwell <kharwell@digium.com>
+
+ * ast_coredumper: add Asterisk information dump
+
+ This patch makes it so ast_coredumper now outputs the following information to
+ a *-info.txt file when processing a core file:
+
+ asterisk version and "built by" string
+ BUILD_OPTS
+ system start, and last reloaded date/time
+ taskprocessor list
+ equivalent of "bridge show all"
+ equivalent of "core show channels verbose"
+
+ Also a slight modification was made when trying to obtain the pid(s) of a
+ running Asterisk. If it fails to retrieve any it now reports an error.
+
+ Change-Id: I54f35c19ab69b8f8dc78cc933c3fb7c99cef346b
+
+2020-03-20 09:12 +0000 [6b2aea9ce2] Jaco Kroon <jaco@uls.co.za>
+
+ * netsock2: compile fixes.
+
+ This fixes ast_addressfamily_to_sockaddrsize to reference the
+ provided argument, and ast_sockaddr_from_sockaddr to not use the name of
+ a structure as argument.
+
+ Change-Id: Ibf5db469c47c3b4214edf8456326086174e8edd7
+
+2020-03-18 04:21 +0000 [96efd52460] Jaco Kroon <jaco@uls.co.za>
+
+ * dahdiras: Only set plugin dahdi.so to pppd if we're running as root.
+
+ Users of this should set plugin dahdi.so in their options file.
+
+ ASTERISK-16676
+
+ Change-Id: I6d01ad0a10e9fea477876d0941c3f38aac357e91
+
+2020-03-18 04:38 +0000 [9065d95254] Jaco Kroon <jaco@uls.co.za>
+
+ * dundi: fix NULL dereference.
+
+ If a negative (error) return is received from dundi_lookup_internal,
+ this is not handled correctly when assigning the result to the buffer.
+ As such, use a signed integer in the assignment and do a proper
+ comparison.
+
+ ASTERISK-21205
+
+ Change-Id: I5214ebb6491e2bd14f90c7d3ce229da86888f739
+
+2020-02-14 02:45 +0000 [0daf62f501] Sungtae Kim <sungtae@messagebird.com>
+
+ * res_pjsip_session: Fixed wrong session termination
+
+ When the Asterisk receives 200 OK with invalid SDP,
+ the Asterisk/PJPROJECT terminating the session.
+ But if the channel was in the Bridge, Asterisk tries send
+ the Re-Invite before terminating the session.
+ And when the Asterisk sending the Re-Invite, it doesn't check
+ the SDP is NULL or not. This crashes the Asterisk.
+
+ Fixed it to close the session correctly if the UAS sends the
+ 200 OK with wrong SDP.
+
+ ASTERISK-28743
+
+ Change-Id: Ifa864e0e125b1a7ed2f3abd4164187e1dddc56da
+
+2020-03-18 04:49 +0000 [18b058d65b] Jaco Kroon <jaco@uls.co.za>
+
+ * build: enable building with uClibc
+
+ This patch has been included in Gentoo distribution for at least since
+ asterisk 1.8, but there are references in the logs going back as far as
+ 1.0.0 - not sure if this is still required in any way, it does apply,
+ and it doesn't (as far as we can determine) cause build failures.
+
+ Change-Id: I46d8845e30200205e80580680bf060aa3012ba54
+
+2020-03-18 04:43 +0000 [5d5f05ab61] Jaco Kroon <jaco@uls.co.za>
+
+ * build: search from newest to oldest for gmime.
+
+ We (Gentoo distribution) reckon that in the case of multiple versions of
+ gmime installed we should prefer the newest one.
+
+ Change-Id: Idf7be613230232eb1d573d93c4a5a8297f4ecd2d
+
+2020-03-06 10:50 +0000 [0bd1420064] Michael Neuhauser <mike@firmix.at>
+
+ * chan_psip, res_pjsip_sdp_rtp: ignore rtptimeout if direct-media is active
+
+ Do not hang up a PJSIP channel on RTP timeout if that channel is in
+ a direct-media bridge. Also reset the time of the last received RTP packet when
+ direct-media ends (wait full rtp_timeout period before checking first time after
+ audio came back to Asterisk).
+
+ ASTERISK-28774
+ Reported-by: Michael Neuhauser
+
+ Change-Id: I8b62012be7685849e8fb2b1c5dd39d35313ca2d1
+
+2019-11-27 07:54 +0000 [f4a8c71dc2] Jaco Kroon <jaco@uls.co.za>
+
+ * res_rtp_asterisk: implement ACL mechanism for ICE and STUN addresses.
+
+ A pure blacklist is not good enough, we need a whitelist mechanism as
+ well, and the simplest way to do that is to re-use existing ACL
+ infrastructure.
+
+ This makes it simpler to blacklist say an entire block (/24) except a
+ smaller block (eg, a /29 or even a /32). Normally you'd need to
+ recursively split the block, so if you want to blacklist a /24 except
+ for a /29 you'd end up with a blacklit for a /25, /26, /27 and /28. I
+ feel that having an ACL instead of a blacklist only is clearer.
+
+ Change-Id: Id57a8df51fcfd3bd85ea67c489c85c6c3ecd7b30
+ Signed-off-by: Jaco Kroon <jaco@uls.co.za>
+
+2020-03-16 05:11 +0000 [345e072a6d] Jaco Kroon <jaco@uls.co.za>
+
+ * Update main/backtrace.c to deal with changes in binutils 2.34.
+
+ binutils 2.34 merged this commit:
+
+ https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;a=commitdiff;\
+ h=fd3619828e94a24a92cddec42cbc0ab33352eeb4
+
+ Which effectively does things like:
+
+ -#define bfd_section_size(bfd, ptr) ((ptr)->size)
+ -#define bfd_get_section_size(ptr) ((ptr)->size)
+
+ +#define bfd_section_size(sec) ((sec)->size)
+
+ So in order to remain backwards compatible we need to detect this API
+ change, and adjust accordingly. The simplest is to notice that the
+ bfd_get_section_size and bfd_get_section_vma MACROs are no longer
+ defined, and define then onto the new API. The alternative is to litter
+ the code with a number of #ifdef #else #endif splatters right through
+ the code.
+
+ Change-Id: I3efe0f8e8f3e338d16fcbc2b26a505367b6e172f
+
+2020-03-15 09:07 +0000 [8b7071994e] Sean Bright <sean.bright@gmail.com>
+
+ * func_odbc.conf.sample: Clarify sample documentation
+
+ ASTERISK-20325 #close
+
+ Change-Id: I06cb9b467b0fd06c8af2a5aee049f872c09cc4b6
+
+2020-03-13 13:43 +0000 [3e4e016a6c] Sean Bright <sean.bright@gmail.com>
+
+ * chan_vpb: Fix 'catching polymorphic type ... by value' error
+
+ Fixes the following compile error:
+
+ chan_vpb.cc:2688:26: error: catching polymorphic type
+ ‘class std::exception’ by value
+
+ Change-Id: Ic87bc357d72427d77626735c83200fd278a7a649
+
+2020-03-12 09:22 +0000 [6636fff2cf] Joshua C. Colp <jcolp@sangoma.com>
+
+ * audiohook: Don't allow audiohooks to attach to hung up channels.
+
+ Given a scenario where MixMonitor was initiated over AMI it
+ was possible for the channel and MixMonitor thread to remain
+ alive past hang up of the channel. This scenario required
+ the AMI initiated MixMonitor to retrieve the channel, a
+ hangup to occur on the channel in another thread, and then
+ for MixMonitor to actually start. If this occurred the
+ MixMonitor thread would remain alive indefinitely and
+ the channel reference would remain.
+
+ This change ensures that audiohooks are never able to
+ be attached to channels that have been hung up. An
+ additional fix has also been done in app_mixmonitor to
+ properly release the channel reference if this occurs.
+
+ ASTERISK-28780
+
+ Change-Id: I8044c06daa06f0f16607788c596f55623be26f58
+
+2020-03-04 15:45 +0000 [4990a6e2fb] George Joseph <gjoseph@digium.com>
+
+ * CI: Create generic jenkinsfile
+
+ This is a generic jenkinsfile to build Asterisk and optionally
+ perform one or more of the following:
+ * Publish the API docs to the wiki
+ * Run the Unit tests
+ * Run Testsuite Tests
+
+ This job can be triggered manually from Jenkins or be triggered
+ automatically on a schedule based on a cron string.
+
+ Change-Id: Id9d22a778a1916b666e0e700af2b9f1bacda0852
+
+2020-03-06 10:13 +0000 [85786d75c7] Torrey Searle <torrey@voxbone.com>
+
+ * res_rtp_asterisk: Send correct sender SSRC when p2p bridge in use
+
+ bridge_p2p_rtp_write will forward rtp to the bridged rtp instance
+ without modifying the ssrc. However, it is not updating the SSRC
+ in the bridged rtp. Thus, when SSRC packets are generated, they
+ have the correct SSRC for the sender.
+
+ ASTERISK-28773 #close
+
+ Change-Id: I39f923bde28ebb4f0fddc926b92494aed294a478
+
+2020-03-11 09:55 +0000 [793f312199] Joshua C. Colp <jcolp@sangoma.com>
+
+ * res_rtp_asterisk: Fix unused warning for "ice".
+
+ Change-Id: I31e022f722509214cd600c428939c91ace0c59fd
+
+2020-02-25 18:30 +0000 [f0b6d24704] Paulo Vicentini <paulo.vicentini@gmail.com>
+
+ * chan_pjsip: Check audio frame when remote SSRC changes.
+
+ If the SSRC of a received RTP packet differed from the previous SSRC
+ an SSRC change control frame would be queued ahead of the media
+ frame. In the case of audio this would result in the format of the
+ audio frame not being checked, and if it differed or was not allowed
+ then it could cause the call to drop due to failure to set up a
+ translation path.
+
+ The chan_pjsip module will now no longer assume the first frame
+ will be the audio frame and instead goes through the complete list
+ to find it.
+
+ ASTERISK-28759
+
+ Change-Id: I6d854cc523f343e299a615636fc65bdbd5f809ec
+
+2020-03-06 14:59 +0000 [58b8c24c40] Sean Bright <sean.bright@gmail.com>
+
+ * enum.c: Add support for regular expression flag in NAPTR record
+
+ A regular expression in a NAPTR response record can have a trailing
+ 'i' flag to indicate that the expression should be evaluated in a
+ case-insensitive way. We were not checking for that flag which caused
+ the record parsing to fail on otherwise valid input.
+
+ Although this change will initially go into Asterisk 13, 16, and 17,
+ it is my intention to replace the majority of this code in 16 and up -
+ including this fix - by changing enum.c to consume the new DNS API
+ which duplicates most of this logic already. Asterisk 13 doesn't have
+ the DNS API, so this fix will be as good as it gets.
+
+ ASTERISK-26711 #close
+ Reported by: Vitold
+
+ Change-Id: I33943a5b3e7539c6dca3a5079982ee15a08186f0
+
+2020-03-06 06:10 +0000 [74718010d0] Jared Smith <jsmith@fedoraproject.org>
+
+ * indications.conf.sample: Add indication tones for Indonesia
+
+ These tones come from http://www.itu.int/ITU-T/inr/forms/files/tones-0203.pdf
+
+ ASTERISK-23407
+
+ Change-Id: I48e2285f1e5bb29b3335f762006f66c423d0fcb8
+
+2020-03-03 08:42 +0000 [b999447494] Rodrigo Ramírez Norambuena <a@rodrigoramirez.com>
+
+ * res_rtp_asterisk: Add 'rtp show settings' cli command
+
+ This change introduce a CLI command for the RTP to display the general
+ configuration.
+
+ In the first step add the follow fields of the configurations:
+ - rtpstart
+ - rtpend
+ - dtmftimeout
+ - rtpchecksum
+ - strictrtp
+ - learning_min_sequential
+ - icesupport
+
+ Change-Id: Ibe5450898e2c3e1ed68c10993aa1ac6bf09b821f
+
+2020-03-05 03:08 +0000 [04f2fad021] Torrey Searle <torrey@voxbone.com>
+
+ * res_pjsip_sdp_rtp: Don't wait for ICE if not negotiated
+
+ If ICE support is enabled but not negotiated, the rtp->ice structure is
+ not being destroyed. This leads to Asterisk waiting for ICE to complete
+ instead of immediately starting the DTLS handshake, resulting in the
+ call leg having no RTP.
+
+ ASTERISK-28769 #close
+
+ Change-Id: I17c137546dc9ecfb9583c24dcf4c2ced8bbd7a27
+
+2020-03-04 16:53 +0000 [0ee0134cc9] Sean Bright <sean.bright@gmail.com>
+
+ * enum.c: Make ast_get_txt() actually do something.
+
+ The ast_get_txt() API function (and by extension, the TXTCIDNAME
+ dialplan function) were broken in
+ 65b8381550a9f46fdce84de79960073e9d51b05d such that we would never
+ actually make a DNS TXT query as described.
+
+ This patch restores the documented behavior.
+
+ ASTERISK-19460 #close
+ Reported by: George Joseph
+
+ Change-Id: I1b19aea711488cb1ecd63843cddce05010e39376
+
+2020-03-05 17:28 +0000 Asterisk Development Team <asteriskteam@digium.com>
+
+ * asterisk 13.32.0-rc1 Released.
+
+2020-03-05 11:20 +0000 [077cc24d66] Asterisk Development Team <asteriskteam@digium.com>
+
+ * Update CHANGES and UPGRADE.txt for 13.32.0
+2020-03-03 10:57 +0000 [4b242d4280] lvl <digium@lvlconsultancy.nl>
+
+ * res_pjsip_refer: ensure refer progress is still sent after Proceeding()
+
+ ASTERISK-28766 #close
+
+ Change-Id: I5ce2210062f9325db762edbf6e46075079bb2cd1
+
+2020-01-12 05:37 +0000 [d6b5a18111] Sebastian Kemper <sebastian_ml@gmx.net>
+
+ * check_expr2: fix cross-compile/hardening issues
+
+ When building check_expr2 with ASLR PIE hardening enabled the linker
+ fails. This is resolved by adding the regular compiler flags when
+ building the object files from ast_expr2f.c and ast_expr2.c.
+
+ Note: The STANDALONE define is removed because it is already defined in
+ _ASTCFLAGS. YY_NO_INPUT is defined so that the compile survives
+ '--enable-dev-mode'.
+
+ Also, a Makefile variable "CROSS_COMPILING" is added so that the
+ build system doesn't try to run check_expr2 when cross-compiling,
+ because that will fail the build as will.
+
+ ASTERISK-28685 #close
+
+ Signed-off-by: Sebastian Kemper <sebastian_ml@gmx.net>
+ Change-Id: If435b7db9f9ad8266245bda51c81c220f9658915
+
+2020-02-28 12:53 +0000 [0fb06121cb] Kevin Harwell <kharwell@digium.com>
+
+ * message & stasis/messaging: make text message variables work in ARI
+
+ When a text message was received any associated variable was not written to
+ the ARI TextMessageReceived event. This occurred because Asterisk only wrote
+ out "send" variables. However, even those "send" variables would fail ARI
+ validation due to a TextMessageVariable formatting bug.
+
+ Since it seems the TextMessageReceived event has never been able to include
+ actual variables it was decided to remove the TextMessageVariable object type
+ from ARI, and simply return a JSON object of key/value pairs for variables.
+ This aligns more with how the ARI sendMessage handles variables, and other
+ places in ARI.
+
+ That being the case, and since this is technically an API breaking change (no
+ one should really be affected since things never really worked) the ARI version
+ was updated to reflect that.
+
+ ASTERISK-28755 #close
+
+ Change-Id: Ia6051c01a53b30cf7edef84c27df4ed4479b8b6f
+
+2020-02-24 09:00 +0000 [ed670ca0c6] Torrey Searle <torrey@voxbone.com>
+
+ * res/res_pjsip_sdp_rtp: Fix MOH transitions
+
+ Update the state of remote_hold immediately on receipt of remote
+ SDP so that the information is available when building the SDP
+ answer
+
+ ASTERISK-28754 #close
+
+ Change-Id: I7026032a807e9c95081cb8f060400b05deb4836f
+
+2020-02-25 10:09 +0000 [c3e9d37ce7] Walter Doekes <walter+asterisk@wjd.nu>
+
+ * say: Remove unused "plural" option from main/say
+
+ There are exceptions for plural objects, but they are detected using the
+ supplied NUMBER, not using an extra option.
+
+ Change-Id: I95d1d1b2796b1aba92048a2dbae8a3856ed8a113
+
+2020-02-25 10:05 +0000 [6995b0a8fa] Walter Doekes <walter+asterisk@wjd.nu>
+
+ * app_queue: Refactor odd placement of if's around say_position
+
+ Change-Id: Icba97905e331812f129e5966e91a59b104c7a748
+
+2020-02-24 12:44 +0000 [d13cd25d4c] Kevin Harwell <kharwell@digium.com>
+
+ * format_cap: make function parameters 'const'
+
+ There were a couple places where the format cap function parameter was not
+ 'const' when it should have been. This patch makes them 'const'.
+
+ Change-Id: Ife753fb16a962d842a6b44f45363a61a66bfdb2e
+
+2020-02-20 06:52 +0000 [2ff7057287] Jaco Kroon <jaco@uls.co.za>
+
+ * addons/res_config_mysql: silense warnings about printf format errors.
+
+ Warnings without this:
+
+ res_config_mysql.c: In function 'update2_mysql':
+ res_config_mysql.c:741:15: warning: format '%llu' expects argument of type
+ 'long long unsigned int', but argument 6 has type 'my_ulonglong'
+ {aka 'long unsigned int'} [-Wformat=]
+ ast_debug(1, "MySQL RealTime: Updated %llu rows on table: %s\n",
+ numrows, tablename);
+
+ (reformatted for readability within line-wrap)
+
+ Change-Id: I2af4d419a37c1a7eeee750cf9ae4a9a2b3a37fd3
+
+2020-02-19 13:20 +0000 [cbbf192f0a] Sean Bright <sean.bright@gmail.com>
+
+ * tcptls.c: Log more informative OpenSSL errors
+
+ Dump OpenSSL's error stack to the error log when things fail.
+
+ ASTERISK-28750 #close
+ Reported by: Martin Zeh
+
+ Change-Id: Ib63cd0df20275586e68ac4c2ddad222ed7bd9c0a
+
+2020-02-19 08:38 +0000 [66388abbb1] Sean Bright <sean.bright@gmail.com>
+
+ * ast_tls_cert: Allow private key size to be set on command line
+
+ The default size in release branches will be 1024 but we'll use 2048 in master.
+
+ ASTERISK~28750
+
+ Change-Id: I435cea18bdd58824ed2b55259575c7ec7133842a
+
+2020-01-23 13:17 +0000 [f928600a98] Ben Ford <bford@digium.com>
+
+ * RTP/ICE: Send on first valid pair.
+
+ When handling ICE negotiations, it's possible that there can be a delay
+ between STUN binding requests which in turn will cause a delay in ICE
+ completion, preventing media from flowing. It should be possible to send
+ media when there is at least one valid pair, preventing this scenario
+ from occurring.
+
+ A change was added to PJPROJECT that adds an optional callback
+ (on_valid_pair) that will be called when the first valid pair is found
+ during ICE negotiation. Asterisk uses this to start the DTLS handshake,
+ allowing media to flow. It will only be called once, either on the first
+ valid pair, or when ICE negotiation is complete.
+
+ ASTERISK-28716
+
+ Change-Id: Ia7b68c34f06d2a1d91c5ed51627b66fd0363d867
+
+2020-02-18 07:10 +0000 [a60071610c] Joshua C. Colp <jcolp@sangoma.com>
+
+ * pjsip: Update ACLs on named ACL changes.
+
+ This change extends the Sorcery API to allow a wizard to be
+ told to explicitly reload objects or a specific object type
+ even if the wizard believes that nothing has changed.
+
+ This has been leveraged by res_pjsip and res_pjsip_acl to
+ reload endpoints and PJSIP ACLs when a named ACL changes.
+
+ ASTERISK-28697
+
+ Change-Id: Ib8fee9bd9dd490db635132c479127a4114c1ca0b
+
+2020-02-17 08:05 +0000 [0246bca581] Sean Bright <sean.bright@gmail.com>
+
+ * app_mixmonitor: Set MIXMONITOR_FILENAME to correct value when wav49 is used
+
+ When opening a file for writing, Asterisk silently converts filenames
+ ending with 'wav49' to 'WAV.' We aren't taking that in to account when
+ setting the MIXMONITOR_FILENAME variable in MixMonitor.
+
+ * If the user wants to write to a wav49 file, make sure that it is
+ reflected properly in MIXMONITOR_FILENAME.
+
+ * Add a note to the documentation describing this behavior.
+
+ * Add a note in main/file.c indicating that app_mixmonitor needs to be
+ changed if the logic in build_filename was changed.
+
+ ASTERISK-24798 #close
+ Reported by: xrobau
+
+ Change-Id: I384691ce624eb55c80a125b9ca206d2d691c574c
+
+2020-02-12 10:05 +0000 [21ed671893] Torrey Searle <torrey@voxbone.com>
+
+ * res_pjsip_sdp_rtp: implement hold state handling on moh_passthrough
+
+ When moh_passthrough is used, asterisk is only generating invites
+ of type sendonly and sendrecv instead of taking fully into account
+ the on hold state of the local and remote parties
+
+ ASTERISK-28738 #close
+
+ Change-Id: Iaaad9fbc033cb14803d433b8a4071bc337047761
+
+2020-02-11 07:46 +0000 [7687d1bda5] Sean Bright <sean.bright@gmail.com>
+
+ * res_musiconhold: Avoid spurious warning when 'format' is the empty string
+
+ The change to res_config_odbc that allowed empty strings to be
+ returned to realtime consumers¹ causes a warning to be emitted when
+ loading MoH classes. So we need to treat an empty 'format' as if it
+ was not specified to avoid the warning.
+
+ ASTERISK-28735 #close
+ Reported by: Ross Beer
+
+ [1] https://gerrit.asterisk.org/c/asterisk/+/13722
+
+ Change-Id: I9a271d721e1a0973e80ebe7d75b46a0d8fa0e5a5
+
+2020-02-10 15:40 +0000 [ea1f318534] Sean Bright <sean.bright@gmail.com>
+
+ * func_odbc: Prevent snprintf() truncation warning
+
+ For reasons that are not clear to me - this only appears for me when
+ _not_ building in dev-mode.
+
+ Change-Id: Ib45c54daaea8e0d571cb470cab1daaae2edba968
+
+2020-02-07 13:44 +0000 [74d0244dc3] George Joseph <gjoseph@digium.com>
+
+ * doc: Fix CHANGES entries to have .txt suffix and update READMEs
+
+ Although the wiki page for the new CHANGES and UPGRADE scheme
+ states that the files must have the ".txt" suffix, the READMEs
+ didn't.
+
+ Change-Id: I490306aa2cc24d6f014738e9ebbc78592efe0f05
+ (cherry picked from commit 7416703f04f12eb583a3427a3f64d06951c18c6e)
+
+2020-01-16 09:50 +0000 [d5fa23e72a] Sean Bright <sean.bright@gmail.com>
+
+ * pjproject_bundled: Allow brackets in via parameters
+
+ ASTERISK-26955 #close
+ Reported by: Peter Sokolov
+
+ Change-Id: Ib2803640905a77b65d0cee2d0ed2c7b310d470ac
+
+2020-02-05 02:26 +0000 [9419295aee] Sylvain Afchain <safchain@gmail.com>
+
+ * install_prereq: Install aptitude non-interactively
+
+ Currently aptitude is installed using interactive mode. This patch
+ changes this to use the non-interactive mode as it can block
+ automatic dependencies installation, ex: CI, Docker build.
+
+ ASTERISK-28726 #close
+
+ Change-Id: I271ee00d230513a6f044810351a32d83b2181133
+ (cherry picked from commit 0c02d0a4500cbd4f657c26eb609928c110ebccb9)
+
+2020-01-31 06:58 +0000 [44e1c7d93f] Walter Doekes <walter+asterisk@wjd.nu>
+
+ * chan_sip: Return 503 if we're out of RTP ports
+
+ If you're for some reason out of RTP ports, chan_sip would previously
+ responde to an INVITE with a 403, which will fail the call.
+
+ Now, it returns a 503, allowing the device/proxy to retry the call on a
+ different machine.
+
+ ASTERISK-28718
+
+ Change-Id: I968dcf6c1e30ecddcce397dcda36db727c83ca90
+
+2020-01-28 02:34 +0000 [cea6cad343] Walter Doekes <walter+asterisk@wjd.nu>
+
+ * chan_sip: Clarify in sample docs how directmediapermit/-acl should be used
+
+ It said "restrict [...] which peers should be able to pass [audio]
+ to each other".
+
+ However, these settings are not global (for which you would expect
+ signaling IPs to be checked). These settings are available per peer
+ only, and the IPs being checked, are the RTP IPs.
+
+ Change-Id: I2a6c6cd7c2f5f30d1df4844e3e0308a077021660
+
+2020-01-29 08:57 +0000 [a3a2fbaec6] Sean Bright <sean.bright@gmail.com>
+
+ * res_config_odbc: Preserve empty strings returned by the database
+
+ When res_config_odbc (and perhaps other realtime backends) reads a SQL
+ NULL from the database, it coalesces the value to the empty string
+ which prevents it from being returned to the realtime core.
+
+ However, if it instead reads the empty string from the database, it
+ needs a way to encode that fact without having the value omitted
+ entirely. It does this by changing the value to a string with a single
+ space. The realtime code in main/config.c recognizes this special case
+ and _turns the string back into the empty string_ before passing it to
+ realtime API consumers.
+
+ For all of this to work, we need to ensure that we actually pass the
+ single-space-string back to the realtime core, which is currently
+ failing because we are trimming the value before checking its
+ content. So instead we now special case the single-space-string case
+ so that empty values are returned properly.
+
+ ASTERISK-28719 #close
+ Reported by: EDV O-TON
+
+ Change-Id: I673ed8c31ad037aa224e80c78c7a1dc4e4a4e3de
+
+2020-01-28 09:18 +0000 [e14fd3b22a] Joshua C. Colp <jcolp@sangoma.com>
+
+ * res_pjsip_pubsub: Increment persistence data ref when recreating.
+
+ Each subscription needs to have a reference to the persisted data
+ for it, as well as the main JSON contained within the tree. When
+ recreating a subscription this did not occur and they both shared
+ the same reference.
+
+ ASTERISK-28714
+
+ Change-Id: I706abd49ea182ea367a4ac3feca2706460ae9f4a
+
+2020-01-27 19:58 +0000 [dafdcc623c] Sean Bright <sean.bright@gmail.com>
+
+ * res_pjsip_messaging: Allow Content-Type to be overridden
+
+ ASTERISK-26082 #close
+ Reported by: Alex
+
+ Change-Id: I6549e90932016349bc72b0f053432dc25286f4fb
+
+2020-01-27 12:01 +0000 [78d9bc8ef6] Kevin Harwell <kharwell@digium.com>
+
+ * stasis/app: don't lock an app before a call to send
+
+ Calling 'app_send' eventually calls the app's message handler. It's possible
+ for a handler to obtain a lock on another object, and then need/want to lock
+ the app object. If the caller of 'app_send' locks the app object prior to
+ calling then there's a potential for a deadlock, if another thread calls
+ 'app_send' without locking.
+
+ This patch makes it so 'app_send' is not called with the app object locked in
+ the section of code doing such.
+
+ ASTERISK-28423 #close
+
+ Change-Id: I6767c6d0933c7db1b984018966eefca4c0638a27
+
+2020-01-27 11:44 +0000 [1051227dd9] Kevin Harwell <kharwell@digium.com>
+
+ * res_stasis: trigger cleanup after update
+
+ The cleanup code in stasis shuts down applications if they are in a deactivated
+ state, and no longer have explicit subscriptions. When registering an app the
+ cleanup code was running before calling 'update'. When it should be executed
+ after 'update' since a call to register may re-activate the app. We don't want
+ it to shutdown before the 'update' otherwise the app won't be re-activated,
+ or registered.
+
+ This patch makes it so the cleanup code is executed post 'update'.
+
+ ASTERISK-28679 #close
+
+ Change-Id: I8f2c0b17e33bb8128441567b97fd4c7bf74a327b
+
+2020-01-27 08:03 +0000 [d99580ae69] Sean Bright <sean.bright@gmail.com>
+
+ * res_pjsip_messaging: Ensure MESSAGE_SEND_STATUS is set properly
+
+ We need to wait for the message sending callback to finish to know if
+ we succeeded or failed.
+
+ ASTERISK-25421 #close
+ Reported by: Dmitriy Serov
+
+ Change-Id: I22b954398821d2caf4c6fe58f0607c8cfa378059
+
+2019-12-27 07:04 +0000 [bfc93cc954] Sean Bright <sean.bright@gmail.com>
+
+ * chan_pjsip: Ignore RTP that we haven't negotiated
+
+ If chan_pjsip receives an RTP packet whose payload differs from the
+ channel's native format, and asymmetric_rtp_codec is disabled (the
+ default), Asterisk will switch the channel's native format to match
+ that of the incoming packet without regard to the negotiated payloads.
+
+ We now keep track of the formats that have been negotiated and check
+ before switching payloads which results in these packets being dropped
+ instead of causing the session to terminate.
+
+ ASTERISK-28139 #close
+ Reported by: Paul Brooks
+
+ Change-Id: Icc3b85cee1772026cee5dc1b68459bf9431c14a3
+
+2020-01-13 04:13 +0000 [e99f70f112] Walter Doekes <walter+asterisk@wjd.nu>
+
+ * chan_sip: Always process updated SDP on media source change
+
+ Fixes no-audio issues when the media source is changed and
+ strictrtp is enabled (default).
+
+ If the peer media source changes, the SDP session version also changes.
+ If it is lower than the one we had stored, chan_sip would ignore it.
+
+ This changeset keeps track of the remote media origin identifier,
+ comparing that as well. If it changes, the session version needn't be
+ higher for us to accept the SDP.
+
+ Common scenario where this would've caused problems: a separate media
+ gateway that informs the caller about premium rates before handing off
+ the call to the final destination.
+
+ (An alternative fix would be to set ignoresdpversion=yes on the peer.)
+
+ ASTERISK-28686
+
+ Change-Id: I88fdbc5aeb777b583e7738c084254c482a7776ee
+
+2020-01-23 16:23 +0000 Asterisk Development Team <asteriskteam@digium.com>
+
+ * asterisk 13.31.0-rc1 Released.
+
+2020-01-23 10:06 +0000 [fe72f4e216] Asterisk Development Team <asteriskteam@digium.com>
+
+ * Update CHANGES and UPGRADE.txt for 13.31.0
+2020-01-22 12:56 +0000 [4eb2ad5e17] George Joseph <gjoseph@digium.com>
+
+ * cdr.c: Set event time on party b when leaving a parking bridge
+
+ When Alice calls Bob and Bob does a blind transfer to Charlie,
+ Bob's bridge leave event generates a finalize on both the party_a
+ and party_b CDRs but while the party_a CDR has the correct end time
+ set from the event time, party_b's leg did not. This caused that
+ CDR's end time to be equal to the answered time and resulted in a
+ billsec of 0.
+
+ * We now pass the bridge leave message event time to
+ cdr_object_party_b_left_bridge_cb() and set it on that CDR before
+ calling cdr_object_finalize() on it.
+
+ NOTE: This issue affected transfers using chan_sip most of the
+ time but also occasionally affected chan_pjsip probably due to
+ message timing.
+
+ ASTERISK-28677
+ Reported by: Maciej Michno
+
+ Change-Id: I790720f1e7326f9b8ce8293028743b0ef0fb2cca
+
+2020-01-22 09:39 +0000 [b6ebdabd9c] Sean Bright <sean.bright@gmail.com>
+
+ * http: Add ability to disable /httpstatus URI
+
+ Add a new configuration option 'enable_status' which allows the
+ /httpstatus URI handler to be administratively disabled.
+
+ We also no longer unconditionally register the /static and /httpstatus
+ URI handlers, but instead do it based upon configuration.
+
+ Behavior change: If enable_static was turned off, the URI handler was
+ still installed but returned a 403 when it was accessed. Because we
+ now register/unregister the URI handlers as appropriate, if the
+ /static URI is disabled we will return a 404 instead.
+
+ Additionally:
+
+ * Change 'enablestatic' to 'enable_static' but keep the former for
+ backwards compatibility.
+ * Improve some internal variable names
+
+ ASTERISK-28710 #close
+
+ Change-Id: I647510f796473793b1d3ce1beb32659813be69e1
+
+2020-01-20 13:53 +0000 [ca7309fd29] Sean Bright <sean.bright@gmail.com>
+
+ * translate.c: Fix silk 24kHz truncation in 'core show translation'
+
+ SILK @ 24kHz is not shown in the 'core show translation' output because of an
+ off-by-one-error. Discovered while looking into ASTERISK~19871.
+
+ ASTERISK-28706
+ Reported by: Sean Bright
+
+ Change-Id: Ie1a551a8a484e07b45c8699cc0c90f1061029510
+
+2020-01-20 15:26 +0000 [14de6b9ba7] Sean Bright <sean.bright@gmail.com>
+
+ * func_odbc.conf.sample: Add example lookup
+
+ Change-Id: Ia05aab1f579597963d2ea23920d2210cfcb97c84
+
+2020-01-20 11:18 +0000 [9382718f50] Sean Bright <sean.bright@gmail.com>
+
+ * res_statsd: Document that res_statsd does nothing on its own
+
+ ASTERISK-24484 #close
+ Reported by: Dan Jenkins
+
+ Change-Id: I05f298904511d6739aefb1486b6fcbee27efa9ec
+
+2016-09-30 21:56 +0000 [5c5bf49cb1] Rodrigo Ramírez Norambuena <a@rodrigoramirez.com>
+
+ * queue_log: Add alembic script for generate db table for queue_log
+
+ Change-Id: I35b928a6251f9da9a1742b2cd14c63a00c3d0f0c
+
+2020-01-18 15:54 +0000 [419fd1da11] Andrew Siplas <andrew@asiplas.net>
+
+ * chan_dahdi: Change 999999 to INT_MAX to better reflect "no timeout"
+
+ The no-entry timeout set to 999999 == 16⅔ minutes, change to INT_MAX
+ to match behavior of "no timeout" defined in comment.
+
+ ASTERISK-28702 #close
+
+ Change-Id: I4ea015986e061374385dba247b272f7aac60bf11
+
+2020-01-16 13:47 +0000 [ee05a43951] Sean Bright <sean.bright@gmail.com>
+
+ * app_voicemail, say: Fix various leading whitespace problems
+
+ In af90afd90c64c5183c2207d061f9aa15138081b2, Japanese language support
+ was added to app_voicemail and main/say.c, but the leading whitespace
+ is not consistent with Asterisk coding guidelines. This patch fixes
+ that.
+
+ Whitespace only, no functional change.
+
+ ASTERISK~23324
+ Reported by: Kevin McCoy
+
+ Change-Id: I72c725f5930084673749bd7c9cc426a987f08e87
+
+2020-01-16 07:32 +0000 [884b86e7c0] Sean Bright <sean.bright@gmail.com>
+
+ * pbx.c: Include filesystem cache in free memory calculation
+
+ ASTERISK-28695 #close
+ Reported by: Kevin Flyn
+
+ Change-Id: Ief098bb6eb77378daeace8f97ba30701c8de55b8
+
+2020-01-16 09:09 +0000 [d514fa3300] Sean Bright <sean.bright@gmail.com>
+
+ * chan_sip.c: Stop handling continuation lines after reading headers
+
+ lws2sws() does not stop trying to handle header continuation lines
+ even after all headers have been found. This is problematic if the
+ first character of a SIP message body is a space or tab character, so
+ we update to recognize the end of the message header.
+
+ ASTERISK-28693 #close
+ Reported by: Frank Matano
+
+ Change-Id: Idec8fa58545cd3fd898cbe0075d76c223f8d33df
+
+2020-01-15 14:29 +0000 [6906e0aa3c] Sean Bright <sean.bright@gmail.com>
+
+ * app_voicemail: Prevent crash when saving message with realtime voicemail
+
+ ast_store_realtime() is not NULL tolerant, so we need to initialize
+ the field values we pass to it to the empty string to avoid a crash.
+
+ ASTERISK-23739 #close
+ Reported by: Stas Kobzar
+
+ Change-Id: I756c5dd0299c77f4274368f7c99eb0464367466c
+
+2020-01-14 16:20 +0000 [d0a412fced] Sean Bright <sean.bright@gmail.com>
+
+ * app_voicemail: Set globals to default values when voicemail.conf missing
+
+ If voicemail.conf exists but is empty, the config parsing process will
+ default a number of global variables to non-zero values. On the other
+ hand, if voicemail.conf is missing (arguably semantically equivalent
+ to an empty file), this process is skipped and the globals are
+ defaulted to 0.
+
+ Set the globals to the same values they would be set to if a
+ configuration were present. This allows voicemail configuration to be
+ done completely by Realtime without the need to create an empty
+ voicemail.conf file.
+
+ ASTERISK-27622 #close
+ Reported by: Jim Van Meggelen
+
+ Change-Id: Id907d280f310f12e542ca527e6a025432b9fb409
+
+2020-01-11 07:29 +0000 [1a4fcaadb2] Sean Bright <sean.bright@gmail.com>
+
+ * app_queue: Deprecate the QueueMemberPause.Reason field
+
+ The QueueMemberPause AMI event includes two fields that return the
+ reason a member was paused.
+
+ * In release branches, deprecate Reason in favor of PausedReason.
+ * In master, remove the Reason field entirely.
+
+ ASTERISK-28349 #close
+ Reported by: Niksa Baldun
+
+ Change-Id: I01da58f2b0ab927baeee754870f62b51b7b3d296
+
+2020-01-13 16:37 +0000 [5e868fc11f] Sean Bright <sean.bright@gmail.com>
+
+ * res_realtime: Fix 'realtime update2' argument handling
+
+ The change in 9b99ef50b5d01ee8111d26efa7b926bdfaf3f980 updated the
+ syntax of the 'realtime update2' CLI command but did not correctly
+ update the calls to ast_update2_realtime().
+
+ The issue this addresses was originally opened because we aren't
+ allowing a SQL NULL to be set as part of the update, but this is a
+ limitation of the Realtime API and is not a bug.
+
+ Additionally, this patch:
+
+ * Corrects the example in the command documentation to reflect
+ 'update2' instead of 'update.'
+
+ * Fixes the leading spacing of the command documentation.
+
+ * Checks that the required 'NULL' literal argument is present where we
+ expect it to be.
+
+ ASTERISK-21794 #close
+ Reported by: Cédric Bassaget
+
+ Change-Id: Idda63a5dc50d5f9bcb34c27ea3238d90f733b2cd
+
+2020-01-10 13:30 +0000 [53967ebd0f] Sean Bright <sean.bright@gmail.com>
+
+ * func_curl: Add 'followlocation' option to CURLOPT()
+
+ We allow for 'maxredirs' to be set, but this value is ignored when
+ followlocation is not enabled which, by default, it is not.
+
+ ASTERISK-17491 #close
+ Reported by: candrews
+
+ Change-Id: I96a4ab0142f2fb7d2e96ff976f6cf7b2982c761a
+
+2020-01-10 15:13 +0000 [b8963987a6] Sean Bright <sean.bright@gmail.com>
+
+ * res_pjsip_endpoint_identifier_ip: Document support for hostnames
+
+ ASTERISK-25429 #close
+ Reported by: Joshua C. Colp
+
+ Change-Id: I7cdfc6026821636acc2465094b7fcde8471a3824
+
+2020-01-10 14:43 +0000 [6648472a28] Sean Bright <sean.bright@gmail.com>
+
+ * res_pjsip_notify: Only allow a single Event header to be added to a NOTIFY
+
+ ASTERISK-27775 #close
+ Reported by: AvayaXAsterisk
+
+ Change-Id: Iad158e908e34675ad98f74d09c5e73024e50c257
+
+2019-12-03 12:27 +0000 [e7d2ab666b] Jaco Kroon <jaco@uls.co.za>
+
+ * netsock2: ast_addressfamily_to_sockaddrsize and ast_sockaddr_from_sockaddr.
+
+ ast_addressfamily_to_sockaddrize will determine the size that's
+ required, and ast_sockaddr_from_sockaddr then wraps this new function
+ and ast_sockaddr_copy_sockaddr to copy arbitrary sockaddr's (without
+ knowing the address family) into the ast_sockaddr structure.
+
+ Change-Id: Iee604e96e9096c79b477d6e5ff310cf0b06dae86
+ Signed-off-by: Jaco Kroon <jaco@uls.co.za>
+
+2020-01-09 04:37 +0000 [7601a5f0f8] Corey Farrell <git@cfware.com>
+
+ * app_record: Do not hang up if beep audio is missing
+
+ Additionally alter the warning to mention that it was "beep" which could
+ not be streamed to give admins a better clue about what the warning
+ means.
+
+ ASTERISK-28682
+
+ Change-Id: If5aed21226a173117ed17589f44826dd1ba6576e
+
+2020-01-08 13:54 +0000 [ba5b0c5c36] Kevin Harwell <kharwell@digium.com>
+
+ * app_agent_pool: Update XML docs for AgentLogin
+
+ This patch fixes some wrongly formatted documentation for the AgentLogin
+ application. A couple of "see also" links should contain only the function
+ name, and no parameters.
+
+ Change-Id: I3f788b47dce3292e311f8a9856938d59a0bd0661
+
+2020-01-08 12:11 +0000 [83077366de] George Joseph <gjoseph@digium.com>
+
+ * CI: Update buildAsterisk.sh to do a "make full"
+
+ If you do a "make all" when building Asterisk the xml documentation
+ produced will be missing certain AMI events where their
+ documentation is located not at the top of the c source file but
+ embedded further down next to the event's manager_event()
+ registration call. See main/manager_mwi.c for an example.
+
+ "make full" does produce the correct documentation so we're changing
+ it in the build script. A separate commit/issue will address the
+ problem with "make all".
+
+ ASTERISK-28507
+ Reported by: David Lee
+
+ Change-Id: I4a22635d6eef99eacecc0efb69e28360eebdb86c
+
+2020-01-06 09:02 +0000 [9720b29d8e] Joshua C. Colp <jcolp@sangoma.com>
+
+ * res_pjsip_pubsub: Add ability to persist generator state information.
+
+ Some body generators, such as dialog-info+xml, require storing state
+ information which is then conveyed in the NOTIFY request itself. Up
+ until now there was no way for such body generators to persist this
+ information.
+
+ Two new API calls have been added to allow body generators to set and
+ get persisted data. This data is persisted out alongside the normal
+ persistence information and allows the body generator to restore
+ state information or to simply use this for normal storage of state.
+ State is stored in the form of JSON and it is up to the body
+ generator to interpret this as needed.
+
+ The dialog-info+xml body generator has been updated to take advantage
+ of this to persist the version number.
+
+ ASTERISK-27759
+
+ Change-Id: I5fda56c624fd13c17b3c48e0319b77079e9e27de
+
+2019-12-24 09:16 +0000 [49bb7d85cd] Sean Bright <sean.bright@gmail.com>
+
+ * res_pjsip_endpoint_identifier_ip.c: Add port matching support
+
+ Adds source port matching support when IP matching is used:
+
+ [example]
+ type = identify
+ match = 1.2.3.4:5060/32, 1.2.3.4:6000/32, asterisk.org:4444
+
+ If the IP matches but the source port does not, we reject and search for
+ alternatives. SRV lookups are still performed if enabled (srv_lookups = yes),
+ unless the configured FQDN includes a port number in which case just a host
+ lookup is performed.
+
+ ASTERISK-28639 #close
+ Reported by: Mitch Claborn
+
+ Change-Id: I256d5bd5d478b95f526e2f80ace31b690eebba92
+
+2019-12-30 11:04 +0000 [9249c30b87] George Joseph <gjoseph@digium.com>
+
+ * sig_pri: Fix deadlock caused by sig_pri_queue_hangup
+
+ The change to add setting hangupsource to sig_pri_queue_hangup()
+ made in https://gerrit.asterisk.org/c/asterisk/+/12857 casued
+ deadlocks when a hangup request was received from the core at the
+ same time a hanguprequest was received from the remote end via the
+ D channel.
+
+ Although the PRI's channel private structure was being unlocked
+ before setting the hangupsource, the PRI's own lock was still being
+ held during the process. If channel actions were also coming from
+ the core, a deadlock on the PRI could result. This deadlock could
+ then escalate to the entire DAHDI subsystem via DAHDI's global
+ interface list lock, especially if someone used the PRI CLI commands.
+
+ Fix:
+
+ * We now unlock the PRI as well as the PRI's channel private
+ structure before setting the hangupsource, then relock both
+ afterwards.
+
+ ASTERISK-28605
+ Reported by: Dirk Wendland
+
+ Change-Id: Id74aaa5d4e3746063dbe9deed188eb65193cb9c9
+
+2019-12-30 13:13 +0000 [3a8290d1f2] Richard Mudgett <rmudgett@digium.com>
+
+ * app_chanisavail.c: Simplify dialplan using ChanIsAvail.
+
+ Dialplan has to be careful about passing an empty device list or empty
+ positions in the list. As a result, dialplan has to check for these
+ conditions before using ChanIsAvail. Simplify dialplan by making
+ ChanIsAvail handle these conditions gracefully.
+
+ * Made tolerate empty positions in the device list.
+
+ * Simplified the code and eliminated some unnecessary indention.
+
+ ASTERISK-28638
+
+ Change-Id: I9e4b67e2cbf26b2417c2d03485b8568e898931d3
+
+2020-01-02 14:25 +0000 [e4e5e07e3d] George Joseph <gjoseph@digium.com>
+
+ * stasis.c: Use correct topic name in stasis_topic_pool_delete_topic
+
+ When a topic is created for an object, its name is only
+ <object>:<uniqueid>
+ For example:
+ bridge:cb68b3a8-fce7-4738-8a17-d7847562f020
+
+ When a topic is added to a pool, its name has the pool's topic
+ name prepended. For example:
+ bridge:all/bridge:cb68b3a8-fce7-4738-8a17-d7847562f020
+
+ The topic_pool_entry's name however, is only what was passed
+ in to stasis_topic_pool_get_topic which is
+ bridge:cb68b3a8-fce7-4738-8a17-d7847562f020
+ That's actually correct because the entry is qualified by the
+ pool that's in.
+
+ When you're ready to delete the entry from the pool, you retrieve
+ the tropic name from the object but since it now has the pool's
+ topic name prepended, it won't be found in the pool container.
+
+ Fix:
+
+ * Modified stasis_topic_pool_delete_topic() to skip past the
+ pool topic's name, if it was prepended to the topic name,
+ before searching the container for a pool entry.
+
+ ASTERISK-28633
+ Reported by: Joeran Vinzens
+
+ Change-Id: I4396aa69dd83e4ab84c5b91b39293cfdbcf483e6
+
+2019-12-29 22:38 +0000 [f6f25601a4] Richard Mudgett <rmudgett@digium.com>
+
+ * app_dial.c: Simplify dialplan using Dial.
+
+ Dialplan has to be careful about passing an empty destination list or
+ empty positions in the list. As a result, dialplan has to check for
+ these conditions before using Dial. Simplify dialplan by making Dial
+ handle these conditions gracefully.
+
+ * Made tolerate empty positions in the dialed device list.
+
+ * Reduced some message log levels from notice to verbose.
+
+ ASTERISK-28638
+
+ Change-Id: I6edc731aff451f8bdfaee5498078dd18c3a11ab9
+
+2019-12-29 20:41 +0000 [4414def9f9] Richard Mudgett <rmudgett@digium.com>
+
+ * app_page.c: Simplify dialplan using Page.
+
+ Dialplan has to be careful about passing an empty destination list or
+ empty positions in the list. As a result, dialplan has to check for
+ these conditions before using Page. Simplify dialplan by making Page
+ handle these conditions gracefully.
+
+ * Made tolerate empty positions in the paged device list.
+
+ * Reduced some warnings associated with the 's' option to verbose
+ messages. The warning level for those messages really serves no purpose
+ as that is why the 's' option exists.
+
+ ASTERISK-28638
+
+ Change-Id: I95b64a6d6800cd1a25279c88889314ae60fc21e3
+
+2019-12-29 18:36 +0000 [9997710f8f] Richard Mudgett <rmudgett@digium.com>
+
+ * features.c: Make Bridge application tolerate unspecified channel.
+
+ The Bridge application was inconsistent if the channel to bridge with is
+ not specified. If no parameters are given then a warning is issued and
+ the current channel is hung up. If options are given but no channel is
+ specified then a warning is issued and the current channel is not hung up.
+
+ * Made the Bridge application give a verbose message instead of a warning
+ if the channel to bridge with is not specified and made not hang up the
+ current channel. As a result dialplan no longer needs to check if a
+ channel name is passed before calling Bridge and simply needs to check the
+ BRIDGERESULT channel variable instead. This is something you likely want
+ your dialplan to do anyway.
+
+ * Fixed up L() option warning message. It is up to the caller to
+ determine if the channel is hung up because of the warning. Dial() hangs
+ up the current channel while Bridge() does not.
+
+ Change-Id: I44349a8dc3912397f28852777de04f19e7bb9c73
+
+2019-12-29 17:48 +0000 [aed10616e5] Richard Mudgett <rmudgett@digium.com>
+
+ * app_chanspy.c: Reduce log message level from notice to verbose.
+
+ Change-Id: Ica5f38ccd8cdc077aef14d0c50425e0b29ac7e0a
+
+2019-12-29 17:31 +0000 [1cd2e340e0] Richard Mudgett <rmudgett@digium.com>
+
+ * app_softhangup.c: Reduce unnecessary warning to verbose message.
+
+ Why log a warning for something your dialplan explicitly asked for?
+
+ Change-Id: I167b90daf4c7d75dd4b7ef94849f6cef05aa43a7
+
+2020-01-05 10:00 +0000 [430350ed53] Sean Bright <sean.bright@gmail.com>
+
+ * res_pjsip_config_wizard: Fix change detection for wizard settings
+
+ ast_sorcery_changeset_create() is not commutative and will fail to detect
+ differences between two variable lists depending on what changed, so switch to
+ ast_variable_lists_match().
+
+ ASTERISK-28492 #close
+ Reported by: Jean-Denis Girard
+
+ Change-Id: I7b3256983ddfaa2138d3de92a444a53b5193a4e1
+
+2020-01-03 10:20 +0000 [0d252feab6] Sean Bright <sean.bright@gmail.com>
+
+ * res_agi: Improve GET FULL VARIABLE documentation
+
+ ASTERISK-28673 #close
+ Reported by: Jonathan Harris
+
+ Change-Id: I591afdec669622bfa19243aabec31b579652c92f
+
+2019-12-17 18:20 +0000 [c00c448c05] snuffy <snuffy22@gmail.com>
+
+ * contrib/valgrind: Fix use of frame-level suppression
+
+ Fix use of frame-level wildcard usage in suppression file.
+
+ ASTERISK-27243 #close
+ Reported-by: Richard Kenner
+
+ Change-Id: I1c0c64c5f305d2c9aa124e11f1f64a2eec52dc51
+
+2019-08-28 05:07 +0000 [d95b719891] Boris P. Korzun <drtr0jan@yandex.ru>
+
+ * func_odbc: acf_odbc_read() and cli_odbc_read() unicode support
+
+ Added ast_odbc_ast_str_SQLGetData() considers SQL_DESC_OCTET_LENGTH
+ column attribute for correct allocating the buffer.
+
+ ASTERISK-28497 #close
+
+ Change-Id: I50e86c8a277996f13d4a4b9b318ece0d60b279bf
+
+2019-12-03 05:58 +0000 [72548ca9e5] Jean Aunis <jean.aunis@prescom.fr>
+
+ * chan_sip: voice frames are no longer transmitted after emitting a COLP
+
+ The SIP transaction state was reset when emitting an UPDATE or a re-INVITE
+ related to a COLP, preventing RTP packets to be emitted.
+
+ ASTERISK-28647
+
+ Change-Id: Ie7a30fa7a97f711e7ba6cc17f221a0993d48bd8b
+
+2019-12-27 17:29 +0000 [401056fd27] Sean Bright <sean.bright@gmail.com>
+
+ * db: Initialize condition primitive before use
+
+ The db_init() function ultimately calls db_sync() which signals the
+ condition before it is initialized.
+
+ Change-Id: Id4a4e025b637bc4ac7d90557fcb71d56598892ab
+
+2019-12-22 10:07 +0000 [e8ca2af820] Jaco Kroon <jaco@uls.co.za>
+
+ * netsock2: backport ast_sockaddr_copy_sockaddr to asterisk 13.
+
+ This function is already present in 15, 16 and master.
+
+ Change-Id: I491ddecdccc87620c264567c549217e48f3d4ff1
+ Signed-off-by: Jaco Kroon <jaco@uls.co.za>
+
+2019-12-18 09:13 +0000 [6ceb4c25fb] Sean Bright <sean.bright@gmail.com>
+
+ * config.c: Skip UTF-8 BOMs if present when reading config files
+
+ ASTERISK-28667 #close
+
+ Change-Id: I4767ed365c98f3e1587b7653321048a31d8a53b2
+
+2019-12-17 07:38 +0000 [8654d6cb20] Pascal Cadotte Michaud <pcm@wazo.io>
+
+ * sip_to_pjsip.py: Fix trustrpid typo
+
+ ASTERISK-28664 #close
+
+ Change-Id: I6c28b1002fd7075ae0ed36f026f8c1855c9418a6
+
+2019-12-16 19:18 +0000 [c1faa9ecda] Joshua C. Colp <jcolp@sangoma.com>
+
+ * json: Support older jansson versions.
+
+ The use of '?' is a fairly new addition to jansson and is not
+ supported in the version of jansson that can be used by 13.
+ This change returns to previous supported behavior and removes
+ usage of '?'.
+
+ ASTERISK-28663
+
+ Change-Id: I6d596007ae85e8724d928865d99968f679be1142
+
+2019-12-16 15:27 +0000 [b07bccd0bd] Frederic LE FOLL <frederic.lefoll@c-s.fr>
+
+ * app_chanisavail/cdr: ChanIsAvail sometimes fails to deactivate CDR.
+
+ Temporary channel lifespan is very short and CDR deactivation request
+ through ast_cdr_set_property() may happen when CDR is not available
+ yet. Use CDR_PROP() dialplan function instead, it will first wait
+ for pending CDR insertion requests to be processed.
+
+ ASTERISK-28636
+
+ Change-Id: I1cbe09e8d2169c0962c1195133ff260d291f2074
+
+2019-12-16 06:35 +0000 [7cea1c4306] Joshua C. Colp <jcolp@sangoma.com>
+
+ * configure: Add check for MySQL client bool and my_bool type usage.
+
+ Instead of trying to use the defined MySQL client version from the
+ header use a configure check to determine whether the bool or my_bool
+ type should be used for defining a boolean.
+
+ ASTERISK-28604
+
+ Change-Id: Id2225b3785115de074c50c123ff1a68005b4a9c7
+
+2019-12-11 18:03 +0000 [ca35de4282] Joshua C. Colp <jcolp@sangoma.com>
+
+ * confbridge: Add support for specifying maximum sample rate.
+
+ ConfBridge has the ability to move between different sample
+ rates for mixing the conference bridge. Up until now there has
+ only been the ability to set the conference bridge to mix at
+ a specific sample rate, or to let it move between sample rates
+ as necessary. This change adds the ability to configure a
+ conference bridge with a maximum sample rate so it can move
+ between sample rates but only up to the configured maximum.
+
+ ASTERISK-28658
+
+ Change-Id: Idff80896ccfb8a58a816e4ce9ac4ebde785963ee
+
+2019-12-13 13:46 +0000 [754fca9297] Kevin Harwell <kharwell@digium.com>
+
+ * res_fax: wrap v21 detected Asterisk initiated negotiation with config option
+
+ A previous patch:
+
+ Gerrit Change-Id: I73bb24799bfe1a48adae9c034a2edbae54cc2a39
+
+ made it so a T.38 Gateway tries to negotiate with both sides by sending T.38
+ negotiation request to both endpoints supported T.38 versus the previous
+ behavior of forwarding negotiation to the "other" channel once a preamble
+ was detected.
+
+ This had the unfortunate side effect of breaking some setups. Specifically
+ ones that set the max datagram option on an endpoint configuration (configured
+ max datagram was not propagated since Asterisk now initiates negotiations).
+
+ This patch adds a configuration option, "negotiate_both", that when enabled
+ makes it so Asterisk initiates the negotiation requests to both endpoints vs.
+ the previous behavior of waiting, and forwarding the request.
+
+ The default is disabled keeping with the old behavior.
+
+ ASTERISK-28660
+
+ Change-Id: I5deb875f3485e20bc75119ec743090655d864a1a
+
+2019-12-12 13:26 +0000 [22f9c57f43] Stanislav <stas.abramenkov@gmail.com>
+
+ * app_voicemail: warning when is compiling
+
+ Change-Id: Ib53eba1a66e25fbeba61c620bd3edd462f699ada
+
+ ASTERISK-28628
+
+ Change-Id: Ib53eba1a66e25fbeba61c620bd3edd462f699ada
+
+2019-12-11 10:52 +0000 [644ae311bb] Pascal Cadotte Michaud <pcm@wazo.io>
+
+ * PJSIP_CONTACT: add missing argument documentation
+
+ add missing argument "rtt" and "status" to the documentation
+
+ The change to the dtd file allow an enumlist to contain one or many
+ configOptionToEnum or enum.
+
+ This is different from the previous patch I submitted when you could have a
+ configOptionToEnum or (a configOptionToEnum followed by one or manu enums) or
+ (one or many enums)
+
+ ASTERISK-28626
+
+ Change-Id: Ia71743ee7ec813f40297b0ddefeee7909db63b6d
+
+2019-12-04 08:35 +0000 [72d51ab8f5] Jaco Kroon <jaco@uls.co.za>
+
+ * chan_sip: in case of tcp/tls, be less annoying about tx errors.
+
+ chan_sip.c:3782 __sip_xmit: sip_xmit of 0x7f1478069230 (len 600) to
+ 213.150.203.60:1492 returned -2: Interrupted system call
+
+ returned -2 implies this wasn't actually an OS error, so errno makes no
+ sense either. Internal error was already logged higher up, and -2
+ generally means that either there isn't a valid connection available, or
+ the pipe notification failed, and that is already correctly logged.
+
+ ASTERISK-28651 #close
+
+ Change-Id: I46eb82924beeff9dfd86fa6c7eb87d2651b950f2
+ Signed-off-by: Jaco Kroon <jaco@uls.co.za>
+
+2019-08-25 21:20 +0000 [02576bfef7] George Joseph <gjoseph@digium.com>
+
+ * res_pjsip_nat: Restore original contact for REGISTER responses
+
+ RFC3261 Section 10 "Registrations", specifically paragraph
+ "10.2.4: Refreshing Bindings", states that a user agent compares
+ each contact address (in a 200 REGISTER response) to see if it
+ created the contact. If the Asterisk endpoint has the
+ rewrite_contact option set however, the contact host and port sent
+ back in the 200 response will be the rewritten one and not the
+ one sent by the user agent. This prevents the user agent from
+ matching its own contact. Some user agents get very upset when
+ this happens and will not consider the registration successful.
+ While this is rare, it is acceptable behavior especially if more
+ than 1 user agent is allowed to register to a single endpoint/aor.
+
+ This commit updates res_pjsip_nat (where rewrite_contact is
+ implemented) to store the original incoming Contact header in
+ a new "x-ast-orig-host" URI parameter before rewriting it, and to
+ restore the original host and port to the Contact headers in the
+ outgoing response.
+
+ This is only done if the request is a REGISTER and rewrite_contact
+ is enabled.
+
+ pjsip_message_filter was also updated to ensure that if a request
+ comes in with any existing x-ast-* URI parameters, we remove them
+ so they don't conflict. Asterisk will never send a request
+ with those headers in it but someone might just decide to add them
+ to a request they craft and send to Asterisk.
+
+ NOTE: If a device changes its contact address and registers again,
+ it's a NEW registration. If the device didn't unregister the
+ original registration then all existing behavior based
+ on aor/remove_existing and aor/max_contacts apply.
+
+ ASTERISK-28502
+ Reported-by: Ross Beer
+
+ Change-Id: Idc263ad2d2d7bd8faa047e5804d96a5fe1cd282e
+
+2019-12-04 02:35 +0000 [6e79028020] Jaco Kroon <jaco@uls.co.za>
+
+ * ACL: ast_apply_acl_nolog - identical to ast_apply_acl but without logging.
+
+ Due to use in res_rtp_asterisk there is a need to be able to apply an
+ ACL without logging any invalid/denies. It's probably sensible to at
+ least validate the ACL once directly after load and report invalid ACLs.
+
+ Change-Id: I256169229d945ca7c1bbf228fc492d91df345843
+ Signed-off-by: Jaco Kroon <jaco@uls.co.za>
+
+2019-12-12 11:09 +0000 Asterisk Development Team <asteriskteam@digium.com>
+
+ * asterisk 13.30.0-rc1 Released.
+
+2019-12-12 05:01 +0000 [51482dec75] Asterisk Development Team <asteriskteam@digium.com>
+
+ * Update CHANGES and UPGRADE.txt for 13.30.0
+2019-12-11 07:01 +0000 [c1cfca5ef1] Joshua Colp <jcolp@digium.com>
+
+ * Revert "PJSIP_CONTACT: add missing argument documentation"
+
+ This reverts commit 3778e1abcd9ffb7fb92253b8333e048239d9f348.
+
+ Reason for revert: Regression in XML validation.
+
+ validity error : Content model of enumlist is not determinist:
+ (configOptionToEnum | (configOptionToEnum , enum+) | enum+)
+
+ As we are preparing to do releases and this is not critical
+ I am reverting this for now until resolved.
+
+ Change-Id: I07b539d0406e8af08934a91223e850444bde1b75
+
+2019-12-04 15:26 +0000 [1750847fc0] Sean Bright <sean.bright@gmail.com>
+
+ * res_pjsip_registrar.c: Prevent potential double free if AOR is not found
+
+ The simple fix here is simply to NULL out username and password after we call
+ ast_free on them. Unfortunately, I noticed that we weren't checking for
+ allocation failures for username and password, and adding those checks made
+ things noisy and cumbersome.
+
+ So instead we partially rollback the recent LGTM patch, and move the alloca
+ calls into find_aor_name().
+
+ ASTERISK-28641 #close
+ Reported by: Ross Beer
+
+ Change-Id: Ic9d01624e717a020be0b0aee31f0814e7f1ffbe2
+
+2019-12-04 15:12 +0000 [890f8a79d4] Sean Bright <sean.bright@gmail.com>
+
+ * res_pjsip_registrar.c: Prevent possible buffer overflow with domain aliases
+
+ We're appropriately sizing the id_domain_alias buffer, but then copying the data
+ into the id_domain one. We were then using the uninitialized id_domain_alias
+ buffer we just allocated.
+
+ This is ASTERISK~28641 adjacent, but significant enough to warrant its own
+ patch.
+
+ Change-Id: I81c38724d18deab8c6573153e2b99dbb6e2f33d9
+
+2019-12-04 03:33 +0000 [d8063c1cf9] Walter Doekes <walter+asterisk@wjd.nu>
+
+ * app_queue: Fix old confusing comment about when the members are called
+
+ ASTERISK-28644
+
+ Change-Id: I2771a931d00a8fc2b9f9a4d1a33ea8f1ad24e06b
+
+2019-11-27 12:11 +0000 [3a32b75c33] Frederic LE FOLL <frederic.lefoll@c-s.fr>
+
+ * chan_sip+native_bridge_rtp: no directmedia for ptime other than default ptime.
+
+ During capabilities selection (joint capabilities of us and peer,
+ configured capability for this peer, or general configured
+ capabilities), if sip_new() does not keep framing information,
+ then directmedia activation will fail for any framing different
+ from default framing.
+
+ ASTERISK-28637
+
+ Change-Id: I99257502788653c2816fc991cac7946453082466
+
+2019-12-03 15:42 +0000 [2b5259b7e8] Sean Bright <sean.bright@gmail.com>
+
+ * res_pjsip_session.c: Prevent use-after-free with TEST_FRAMEWORK enabled
+
+ We need to copy the endpoint name before we call ao2_cleanup() on it,
+ otherwise we might try to access memory that has been reclaimed.
+
+ ASTERISK-28445 #close
+ Reported by: Bernhard Schmidt
+
+ Change-Id: I404b952608aa606e0babd3c4108346721fb726b3
+
+2019-11-22 10:39 +0000 [5aee4f7655] Thomas Arimont (license 5525)
+
+ * channel.c: Resolve issue with receiving SIP INFO packets for DTMF
+
+ The problem is essentially the same as in ASTERISK~28245. Besides
+ the direct media scenario we have an additional scenario where a
+ special client is involved. This device mutes audio by default in
+ transmit direction (no rtp frames) and activates audio only by a
+ foot switch. In this situation dtmf input (pin for conferences,
+ transfer features codes , etc) using SIP INFO mode is not
+ understood properly especially when SIP INFO messages are sent
+ quickly.
+
+ This patch ensures that SIP INFO frames are properly queued and
+ processed in the above scenario. The patch also corrects situations
+ where successive dtmf events are received quicker than the
+ signalled event duration (plus minimum gap/pause) allows, i.e. DTMF
+ events have to be buffered in the ast channel read queue and
+ emulation has to be processed asynchronously at slower speed.
+
+ Reported by: Thomas Arimont
+ patches:
+ trigger_dtmf_emulation.patch submitted by Thomas Arimont (license 5525)
+
+ Change-Id: I309bf61dd065c9978c8e48f5b9a936ab47de64c2
+
+2019-12-02 06:48 +0000 [cec947525b] George Joseph <gjoseph@digium.com>
+
+ * CI: Turn off shallow cloning altogether
+
+ Change-Id: I73ed4aef33a92f20080128aafc34e19fd4457196
+
+2019-11-25 06:55 +0000 [e401f725d1] Joshua Colp <jcolp@digium.com>
+
+ * parking: Fall back to parker channel name even if it matches parkee.
+
+ ASTERISK-28631
+
+ Change-Id: Ia74d084799fbb9bee3403e30d2391aacd46243cc
+
+2019-10-21 14:55 +0000 [c2279540ba] Ben Ford <bford@digium.com>
+
+ * chan_sip.c: Prevent address change on unauthenticated SIP request.
+
+ If the name of a peer is known and a SIP request is sent using that
+ peer's name, the address of the peer will change even if the request
+ fails the authentication challenge. This means that an endpoint can
+ be altered and even rendered unusuable, even if it was in a working
+ state previously. This can only occur when the nat option is set to the
+ default, or auto_force_rport.
+
+ This change checks the result of authentication first to ensure it is
+ successful before setting the address and the nat option.
+
+ ASTERISK-28589 #close
+
+ Change-Id: I581c5ed1da60ca89f590bd70872de2b660de02df
+
+2019-10-24 12:41 +0000 [1b9281a5de] George Joseph <gjoseph@digium.com>
+
+ * manager.c: Prevent the Originate action from running the Originate app
+
+ If an AMI user without the "system" authorization calls the
+ Originate AMI command with the Originate application,
+ the second Originate could run the "System" command.
+
+ Action: Originate
+ Channel: Local/1111
+ Application: Originate
+ Data: Local/2222,app,System,touch /tmp/owned
+
+ If the "system" authorization isn't set, we now block the
+ Originate app as well as the System, Exec, etc. apps.
+
+ ASTERISK-28580
+ Reported by: Eliel Sardañons
+
+ Change-Id: Ic4c9dedc34c426f03c8c14fce334a71386d8a5fa
+
+2019-11-08 13:21 +0000 [c257794330] Ben Ford <bford@digium.com>
+
+ * res_pjsip_session.c: Check for port of zero on incoming SDP.
+
+ If a re-invite comes in initiating T.38, but there is no c line in the
+ SDP and the port is also 0, a crash can occur. A check is now done on
+ the port to see if the steam is already declined, preventing the crash.
+ The logic was moved to res_pjsip_session.c because it is handled in a
+ similar manner in later versions of Asterisk.
+
+ ASTERISK-28612
+ Reported by: Salah Ahmed
+
+ Change-Id: Ifc4a0d05b32c7f2156e77fc8435a6ecaa6abada0
+
+2019-11-21 07:24 +0000 [3778e1abcd] Pascal Cadotte Michaud <pcm@wazo.io>
+
+ * PJSIP_CONTACT: add missing argument documentation
+
+ add missing argument "rtt" and "status" to the documentation
+
+ ASTERISK-28626
+ Change-Id: I8419e4c8203e411b87d93dc395acdbcf7526dedf
+
+2019-11-15 11:34 +0000 [9c586e5be7] Salah Ahmed <txrubel@gmail.com>
+
+ * res_pjsip_t38: T.38 error correction mode selection at 200 ok received
+
+ if asterisk offer T38 SDP with none error correction scheme and
+ the endpoint respond with redundancy EC scheme, asterisk switch
+ to that mode. Since we configure the endpoint as none EC mode
+ we should not switch to any other mode except none.
+ following logic implemented in code.
+
+ 1. If asterisk offer none, and anything except none in answer
+ will be ignored.
+ 2. If asterisk offer fec, answer with fec, redundancy and none will
+ be accepted.
+ 3. If asterisk offer redundancy, answer with redundancy and none
+ will be accepted.
+
+ ASTERISK-28621
+
+ Change-Id: I343c62253ea4c8b7ee17abbfb377a4d484a14b19
+
+2019-11-19 12:11 +0000 [95213b01d2] George Joseph <gjoseph@digium.com>
+
+ * CI: Fix missing script block in jenkinsfiles
+
+ Change-Id: I9f44a3d5085ea7880fad1a3883a4820907e29ea3
+
+2019-11-19 09:31 +0000 [b03af8ba3c] Sean Bright <sean.bright@gmail.com>
+
+ * res_pjsip_registrar: Fix uninitlized variable warning
+
+ Fixes: error: ‘domain_name’ may be used uninitialized in this function
+
+ Found with gcc (Ubuntu 9.2.1-9ubuntu2) 9.2.1 20191008
+
+ Change-Id: I44413b49ea1205aa25538142161deb73883c79e8
+
+2019-11-19 11:40 +0000 [d60f23ecbd] George Joseph <gjoseph@digium.com>
+
+ * CI: Fix missing script block in jenkinsfiles
+
+ Change-Id: Ib4b6e4887695f230ea7a5b0c879b29fc5a13be4f
+
+2019-11-19 08:51 +0000 [7702ea986e] George Joseph <gjoseph@digium.com>
+
+ * CI: Increase clone depth and do better cleanup
+
+ The original clone depth of 10 was causing the need to rebase
+ changes whose parent was older than the 10 commits. The clone
+ depth has been increased to 100.
+
+ Workspace cleanup was only happening for successful builds which
+ wasn't enough to keep the 8G workspace in-memory drives on the
+ docker slaves from filling up. Now the workspaces are cleaned up
+ after every build regardless of success/failure. If you need to
+ preserve builds temporarily, you can log into Jenkins/Manage
+ Jenkins/Configure System and change the CLEANUP_WS_* environment
+ variable for the job type you're troubleshooting to "FALSE".
+
+ Change-Id: I0d7366e87cea714e5dbc9488caf718802fce75ca
+
+2019-11-07 11:54 +0000 [ad50410568] Frederic LE FOLL <frederic.lefoll@c-s.fr>
+
+ * chan_dahdi: PRI span status may stay "Down, Active" after a short alarm
+
+ Upon a short PRI disconnection, libpri may maintain Q.921 layer 'up' and
+ may thus not send PRI_EVENT_DCHAN_DOWN / PRI_EVENT_DCHAN_UP events.
+ If pri_event_alarm() clears DCHAN_UP status bit upon alarm detection
+ and no Q.921 reconnection sequence occurs, chan_dahdi will keep
+ seeing span status "Down" at the end of alarm.
+
+ This patch modifies pri_event_alarm() in order to keep DCHAN_UP bit
+ unchanged. libpri will send a PRI_EVENT_DCHAN_DOWN event if it detects
+ a disconnection of Q.921 layer and this will clear DCHAN_UP if required.
+
+ ASTERISK-28615
+
+ Change-Id: Ibe27df4971fd4c82cc6850020bce4a8b2692c996
+
+2019-11-07 11:05 +0000 [17c393377e] lvl <digium@lvlconsultancy.nl>
+
+ * app_senddtmf: Add receive mode to AMI Action PlayDTMF
+
+ ASTERISK-28614
+
+ Change-Id: I183501297ae1dc294ae56b34acac9b0343eb2664
+
+2019-11-07 10:56 +0000 [26fc3a3127] Alexei Gradinari <alex2grad@gmail.com>
+
+ * serializer: set high/low alert levels on whole pool
+
+ The current code sets alert levels starting from index 1.
+ Need to set on whole pool starting from index 0.
+
+ Change-Id: I5decbb43160954fb9a512f04302637fc666b6f5d
+
+2019-11-07 11:54 +0000 [f032b8c158] Martin Tomec <tomec.martin@gmail.com>
+
+ * func_curl.c: Support custom http headers
+
+ When user wants to send json data, the default Content-Type header
+ is incorect (application/x-www-form-urlencoded). This patch allows
+ to set any custom headers so the Content-Type header can be
+ overriden. User can set multiple headers by multiple calls of
+ curlopt(). This approach is not consistent with other parameters,
+ but is more readable in dialplan than one call with multiple
+ headers.
+
+ ASTERISK-28613
+
+ Change-Id: I4dd68c3f4e25362ef941d73a3861f58348dcfbf9
+
+2019-11-15 04:46 +0000 [eb3b49928e] Joshua Colp <jcolp@digium.com>
+
+ * parking: Fix case where we can't get the parker.
+
+ ASTERISK-28616
+
+ Change-Id: Iabe31ae38d01604284fcc5c2438d44e29a32ea4d
+
+2019-11-06 05:47 +0000 [7a236ed20d] George Joseph <gjoseph@digium.com>
+
+ * stasis: Don't hold app_registry and session locks unnecessarily
+
+ resource_events:app_handler() was locking the session, then
+ attempting to determine if the app had debug enabled which
+ locked the app_registry container. res_stasis:__stasis_app_register
+ was locking the app_registry container then calling app_update
+ which caused app_handler (which locks the session) to run.
+ The result was a deadlock.
+
+ * Updated resource_events:app_handler() to determine if debug was
+ set (which locks the app_registry) before obtaining the session lock.
+
+ * Updated res_stasis:__stasis_app_register to release the app_registry
+ container lock before calling app_update (which locks the sesison).
+
+ ASTERISK-28423
+ Reported by Ross Beer
+
+ Change-Id: I58c69d08cb372852a63933608e4d6c3e456247b4
+
+2019-11-05 12:16 +0000 [9361e32bed] Michael Cargile <mikec@vicidial.com>
+
+ * app_amd: Fixed timeout issue
+
+ ASTERISK_28143 attempted to fix an issue where calls with no audio would never
+ timeout. It did so by adding AST_FRAME_NULL as a frame type to process in its
+ calculations. Unfortunately these frames seem to show up at irregular time
+ intervals. This resulted in app_amd returning prematurely most of the time.
+
+ * Removed AST_FRAME_NULL from the calculations
+ * Added a check to see how much time has actually passed since app_amd began
+
+ ASTERISK-28608
+
+ Change-Id: I642a21b02d389b17e40ccd5357754b034c3daa42
+
+2019-11-14 04:19 +0000 [6856cdc6ba] Joshua Colp <jcolp@digium.com>
+
+ * res_rtp_asterisk: Always return provided DTLS packet length.
+
+ OpenSSL can not tolerate if the packet sent out does not
+ match the length that it provided to the sender. This change
+ lies and says that each time the full packet was sent. If
+ a problem does occur then a retransmission will occur as
+ appropriate.
+
+ ASTERISK-28576
+
+ Change-Id: Id42455b15c9dc4eb987c8c023ece6fbf3c22a449
+
+2019-11-13 17:24 +0000 [300e21662c] Kevin Harwell <kharwell@digium.com>
+
+ * bridge_softmix: clear hold when joining a softmix bridge
+
+ MOH continues to play to a channel if that channel was on hold prior to
+ entering a softmix bridge. MOH will not stop even if the original "holder"
+ attempts an unhold.
+
+ For the most part a softmix bridge ignores holds, so a participating channel
+ shouldn't join while on hold. This patch checks to see if the channel joining
+ the softmix bridge is currently on hold. If so then it indicates an unhold.
+
+ ASTERISK-28618
+
+ Change-Id: I66ccd4efc80f5b4c3dd68186b379eb442916392b
+
+2019-11-12 05:00 +0000 [3b94982b4f] Joshua Colp <jcolp@digium.com>
+
+ * parking: Use channel snapshot instead of channel.
+
+ There exists a scenario where a thread can hold a lock on the
+ channels container while trying to lock a bridge. At the same
+ time another thread can hold the lock for said bridge while
+ attempting to retrieve a channel. This causes a deadlock.
+
+ This change fixes this scenario by retrieving a channel snapshot
+ instead of a channel, as information present in the snapshot
+ is all that is needed.
+
+ ASTERISK-28616
+
+ Change-Id: I68ceb1d62c7378addcd286e21be08a660a7cecf2
+
+2019-11-13 14:25 +0000 [e5d0add8c6] Sean Bright <sean.bright@gmail.com>
+
+ * func_env: Prevent FILE() from reading garbage at end-of-file
+
+ If the last line of a file does not have a terminating EOL sequence, we
+ potentially add garbage to the value returned from the FILE() function.
+
+ There is no overflow potential here as we are reading from a buffer of a
+ known size, we are just reading too much of it.
+
+ ASTERISK-26481 #close
+
+ Change-Id: I50dd4fcf416fb3c83150040a1a79a59d9eb1ae01
+
+2019-10-23 16:34 +0000 [6ca76798e1] Kevin Harwell <kharwell@digium.com>
+
+ * various files - fix some alerts raised by lgtm code analysis
+
+ This patch fixes several issues reported by the lgtm code analysis tool:
+
+ https://lgtm.com/projects/g/asterisk/asterisk
+
+ Not all reported issues were addressed in this patch. This patch mostly fixes
+ confirmed reported errors, potential problematic code points, and a few other
+ "low hanging" warnings or recommendations found in core supported modules.
+ These include, but are not limited to the following:
+
+ * innapropriate stack allocation in loops
+ * buffer overflows
+ * variable declaration "hiding" another variable declaration
+ * comparisons results that are always the same
+ * ambiguously signed bit-field members
+ * missing header guards
+
+ Change-Id: Id4a881686605d26c94ab5409bc70fcc21efacc25
+
+2019-10-29 08:35 +0000 [7a85a947af] George Joseph <gjoseph@digium.com>
+
+ * cdr_mysql: Fix missing use of 'my_bool' with MySql >= 8.0.1
+
+ MySql 8.0.1 replaced the "my_bool" type with "bool" so an #if
+ was added to use "bool" with MYSQL_VERSION_ID >= 80001.
+
+ ASTERISK-28604
+
+ Change-Id: I66a28d8f0011e33774edee13a6f8efd2302bb920
+
+2019-10-25 06:46 +0000 [9c8424a97b] Joshua Colp <jcolp@digium.com>
+
+ * res_pjsip_outbound_registration: Extend documentation for "max_retries".
+
+ If the "max_retries" option is set to 0 then upon failure no
+ further attemps are made, so explicitly document the behavior.
+
+ ASTERISK-28602
+
+ Change-Id: I1e30daae9dd6c49ce18744164214d3def505acbf
+
+2019-10-24 09:15 +0000 [27fc662cf2] Sean Bright <sean.bright@gmail.com>
+
+ * res_calendar: Resolve memory leak on calendar destruction
+
+ Calling ne_uri_parse allocates memory that needs to be freed with a
+ corresponding call to ne_uri_free.
+
+ ASTERISK-28572 #close
+
+ Change-Id: I8a6834da27000a6807d89cb7a157b2a88fcb5e61
+
+2019-10-24 05:21 +0000 [50feafe9b8] Joshua Colp <jcolp@digium.com>
+
+ * res_ari_events: Add module reference when a WebSocket is open.
+
+ This change ensures that the module isn't unloaded when a
+ WebSocket is open. Previously it was possible to unload the
+ module manually or during shutdown which could cause a crash
+ when any active WebSockets were terminated.
+
+ ASTERISK-28585
+
+ Change-Id: I85c71ab112f99875b586419a34c08c8b34c14c5c
+
+2019-10-18 13:47 +0000 [f1e3a13579] Sean Bright <sean.bright@gmail.com>
+
+ * utils.h: Set lower bound for thread stack size to PTHREAD_STACK_MIN
+
+ ASTERISK-28590 #close
+
+ Change-Id: I51abce00c04d0a06550bda5205580705185b9c1c
+
+2019-10-16 16:06 +0000 [0cccfcba9e] Sean Bright <sean.bright@gmail.com>
+
+ * README-SERIOUSLY.bestpractices.md: Speling correetions.
+
+ ASTERISK-28586 #close
+
+ Change-Id: I43dc4e8bd9dc685b17695b215a5360314074734f
+
+2019-10-10 06:56 +0000 [414eebcbc9] Salah Ahmed <txrubel@gmail.com>
+
+ * Crash during "pjsip show channelstats" execution
+
+ During execution "pjsip show channelstats" cli command by an
+ external module asterisk crashed. It seems this is a separate
+ thread running to fetch and print rtp stats. The crash happened on
+ the ao2_lock method, just before it going to read the rtp stats on
+ a rtp instance. According to gdb backtrace log, it seems the
+ session media was already cleaned up at that moment.
+
+ ASTERISK-28578
+
+ Change-Id: Ia918bfa3c8119060633e39b14852e8d983e0417e
+
+2019-09-26 19:24 +0000 [c8e38f8550] cmaj <chris@penguinpbx.com>
+
+ * app_voicemail.c: Support multiple file formats for forwarded messages.
+
+ If you specify multiple formats in voicemail.conf, eg. "format = gsm|wav"
+ and are using realtime ODBC backend, only the first format gets stored
+ in the database. So when you forward a message later on, there is a bug
+ generating the email, related to the stored format (GSM) being different
+ than the desired email format (WAV) specified for the user. Sox can
+ handle this, but Asterisk needs to tell sox exactly what to do.
+
+ ASTERISK-22192
+
+ Change-Id: I7321e7f7e7c58adbf41dd4fd7191c887b9b2eafd
+
+2019-10-08 13:40 +0000 [a7749f4fcd] Christoph Moench-Tegeder <cmt@burggraben.net>
+
+ * cdr_pgsql cel_pgsql res_config_pgsql: compatibility with PostgreSQL 12
+
+ PostgreSQL 12 finally removed column adsrc from table pg_catalog.pg_attrdef
+ (column default values), which has been deprecated since version 8.0.
+ Since then, the official/correct/supported way to retrieve the column
+ default value from the catalog is function pg_catalog.pg_get_expr().
+
+ This change breaks compatibility with pre-8.0 PostgreSQL servers,
+ but has reached end-of-support more than a decade ago.
+ cdr_pgsql and res_config_pgsql still have support for pre-7.3
+ servers, but cleaning that up is perhaps a topic for a major release,
+ not this bugfix.
+
+ ASTERISK-28571
+
+ Change-Id: I834cb3addf1937e19e87ede140bdd16cea531ebe
+
+2019-10-09 16:00 +0000 [c3a1f2ce91] Chris Savinovich <csavinovich@digium.com>
+
+ * test_taskprocessor.c: Fix test failure on Ubuntu
+
+ Fixes a failure in /main/taskprocesor unit test, only occurring in Ubuntu.
+ Newer versions of GCC require variable initialization.
+
+ Change-Id: I2994d8aab9307a8c2c7330584f287a27144a580c
+
+2019-10-10 15:30 +0000 [e34651d62c] Kevin Harwell <kharwell@digium.com>
+
+ * res_pjsip_mwi: potential double unref, and potential unwanted double link
+
+ When creating an unsolicited MWI aggregate subscription it was possible for
+ the subscription object to be double unref'ed. This patch removes the explicit
+ unref as it is not needed since the RAII_VAR will handle it at function end.
+
+ Less concerning there was also a bug that could potentially allow the aggregate
+ subscription object to be added to the unsolicited container twice. This patch
+ ensures it is added only once.
+
+ ASTERISK-28575
+
+ Change-Id: I9ccfdb5ea788bc0c3618db183aae235e53c12763
+
+2019-10-09 09:32 +0000 [164e5372a2] George Joseph <gjoseph@digium.com>
+
+ * pjproject_bundled: Replace earlier reverts with official fixes.
+
+ Issues in pjproject 2.9 caused us to revert some of their changes
+ as a work around. This introduced another issue where pjproject
+ wouldn't build with older gcc versions such as that found on
+ CentOS 6. This commit replaces the reverts with the official
+ fixes for the original issues and allows pjproject to be built
+ on CentOS 6 again.
+
+ ASTERISK-28574
+ Reported-by: Niklas Larsson
+
+ Change-Id: I06f8507bea553d1a01b0b8874197d35b9d47ec4c
+
+2019-10-09 15:17 +0000 [a2ddaaac32] Joshua Colp (license 5000)
+
+ * pbx: deadlock when outgoing dialed channel hangs up too quickly
+
+ Here's the basic scenario that occurred when executing an AMI fast originate
+ while at the same time something else locks the channels container, and also
+ wants a lock on the dialed channel:
+
+ 1. pbx_outgoing_attempt obtains a lock on a dialed channel
+ 2. concurrently another thread obtains a lock on the channels container, and
+ subsequently requests a lock on the dialed channel. It waits on #1. For
+ instance, "core show channel <dialed channel"
+ 3. the outgoing call does not fail, but ends before the pbx_outgoing_attempt
+ function exits
+ 4. pbx_outgoing_attempt function exits, the outgoing structure destructs, and
+ attempts to hang up the dialed channel
+ 5. hang up tries to obtain the channels container lock, but can't due to #2.
+ 6. Asterisk is deadlocked.
+
+ The solution was to allow the pbx_outgoing_exec function to "steal" ownership
+ of the dialed channel, and handle hanging it up. The channel now is either hung
+ up prior to it being potentially locked by the initiating thread, or if locked
+ the hang up takes place in a different thread, thus alleviating the deadlock.
+
+ ASTERISK-28561
+ patches:
+ iliketrains.diff submitted by Joshua Colp (license 5000)
+
+ Change-Id: I51b42b92dde8f2215b69bb509e28667ee3a3853a
+
+2019-10-01 06:29 +0000 [bc8d56816d] lvl <digium@lvlconsultancy.nl>
+
+ * chan_pjsip: Prevent segfault when running PlayDTMF on hungup channel
+
+ ASTERISK-28086 #close
+
+ Change-Id: Ib3baadc89b9f0477a6f25a63861433812368c5ea
+
+2019-10-07 14:02 +0000 [0834e06673] Sean Bright <sean.bright@gmail.com>
+
+ * Revert "app_voicemail: Cleanup stale lock files on module load"
+
+ This reverts commit fd2e8d0da7ba539470ed73d463d8bc641f7843af.
+
+ Reason for revert: Problematic for users who store their voicemail
+ on network storage devices, or share voicemail storage between
+ multiple Asterisk instances.
+
+ ASTERISK-28567 #close
+
+ Change-Id: I3ff4ca983d8e753fe2971f3439bd154705693c41
+
+2019-10-02 11:08 +0000 [3f7f376a68] Kevin Harwell <kharwell@digium.com>
+
+ * res_pjsip_mwi: use an ao2_global object for mwi containers
+
+ On shutdown it's possible for the unsolicited mwi container to be freed before
+ other dependent threads are done using it. This patch ensures this can no
+ longer happen by wrapping the container in an ao2_global object. The solicited
+ container was also changed too.
+
+ ASTERISK-28552
+
+ Change-Id: I8f812286dc19a34916acacd71ce2ec26e1042047
+
+2019-10-01 15:54 +0000 [2042020abf] Kevin Harwell <kharwell@digium.com>
+
+ * res_pjsip/res_pjsip_mwi: use centralized serializer pools
+
+ Both res_pjsip and res_pjsip_mwi made use of serializer pools. However, they
+ both implemented their own serializer pool functionality that was pretty much
+ identical in each of the source files. This patch removes the duplicated code,
+ and uses the new 'ast_serializer_pool' object instead.
+
+ Additionally res_pjsip_mwi enables a shutdown group on the pool since if the
+ timing was right the module could be unloaded while taskprocessor threads still
+ needed to execute, thus causing a crash.
+
+ Change-Id: I959b0805ad024585bbb6276593118be34fbf6e1d
+
+2019-10-01 15:43 +0000 [0b7efc1687] Kevin Harwell <kharwell@digium.com>
+
+ * serializer: move/add asterisk serializer pool functionality
+
+ Serializer pools have previously existed in Asterisk. However, for the most
+ part the code has been duplicated across modules. This patch abstracts the
+ code into an 'ast_serializer_pool' object. As well the code is now centralized
+ in serializer.c/h.
+
+ In addition serializer pools can now optionally be monitored by a shutdown
+ group. This will prevent the pool from being destroyed until all serializers
+ have completed.
+
+ Change-Id: Ib1e906144b90ffd4d5ed9826f0b719ca9c6d2971
+
+2019-10-04 15:31 +0000 [fa897059a5] Sean Bright <sean.bright@gmail.com>
+
+ * cdr_mysql: Don't clean up on unload unless we can unregister from CDRs
+
+ ASTERISK-28566 #close
+
+ Change-Id: I6daa4e5128e9406d04d3aed670c3bae98d38d40c
+
+2019-09-19 03:56 +0000 [6fd195ca91] Torrey Searle <torrey@voxbone.com>
+
+ * channel/chan_pjsip: add dialplan function for music on hold
+
+ Add a new dialplan function PJSIP_MOH_PASSTHROUGH that allows
+ the on-hold behavior to be controlled on a per-call basis
+
+ ASTERISK-28542 #close
+
+ Change-Id: Iebe905b2ad6dbaa87ab330267147180b05a3c3a8
+
+2019-09-24 14:18 +0000 [c1d82f73a3] Alexei Gradinari <alex2grad@gmail.com>
+
+ * res_pjsip_pubsub: add endpoint to some warning
+
+ There are some warning messages which are not informative without endpoint:
+ "No registered subscribe handler for event presence.winfo"
+ "No registered publish handler for event presence"
+
+ This patch adds an endpoint name to these messages.
+
+ Change-Id: Ia2811ec226d8a12659b4f9d4d224b48289650827
+
+2019-09-27 09:54 +0000 [438085f10e] Sean Bright <sean.bright@gmail.com>
+
+ * res_pjsip_transport_websocket: Don't put brackets around local_name if IPv6
+
+ ASTERISK-28544 #close
+
+ Change-Id: I8e62c444d107674c298f472e3545661de8a80dce
+
+2019-09-24 15:44 +0000 [67bd02d08d] Ben Ford <bford@digium.com>
+
+ * taskprocessor.c: Added "like" support to 'core show taskprocessors'
+
+ Added "like" support for 'core show taskprocessors'. Now you
+ can specify a specific set of taskprocessors (or just one) by
+ adding the keyword "like" to the above command, followed by
+ your search criteria.
+
+ Change-Id: I021e740201e9ba487204b5451e46feb0e3222464
+
+2019-09-25 12:47 +0000 [0dc1ba17b8] Asterisk Development Team <asteriskteam@digium.com>
+
+ * Update CHANGES and UPGRADE.txt for 13.29.0-rc2
+2019-09-25 11:01 +0000 [7280e2ec51] Sean Bright <sean.bright@gmail.com>
+
+ * pbx: Prevent Realtime switch crash on invalid priority
+
+ pbx_extension_helper takes two 'context' arguments. One (con) is a
+ pointer directly to a 'struct ast_context' and the other (context) is
+ the name of the context. In all cases, one of these arguments is NULL
+ and the other is non-NULL.
+
+ Functions that are ultimately called by pbx_extension_helper expect that
+ 'context' will be non-NULL, so we set it unconditionally on entry into
+ this function.
+
+ ASTERISK-28534 #close
+
+ Change-Id: Ifbbc5e71440afd80efd441f7a9d72e8b10b6f47d
+
+2019-09-24 17:43 +0000 [22fb0f286d] Sean Bright <sean.bright@gmail.com>
+
+ * res_pjsip_registrar: Validate Contact URI before adding to responses
+
+ If a permanent contact URI associated with an AOR is invalid, we add a
+ Contact header to REGISTER responses with a NULL URI, causing a crash.
+
+ ASTERISK-28463 #close
+
+ Change-Id: Id2b643e58b975bc560aab1c111e6669d54db9102
+
+2014-11-03 08:45 +0000 [d775bc5add] Joshua Colp <jcolp@digium.com>
+
+ * chan_pjsip: Add support for passing hold and unhold requests through.
+
+ This change adds an option, moh_passthrough, that when enabled will pass
+ hold and unhold requests through using a SIP re-invite. When placing on
+ hold a re-invite with sendonly will be sent and when taking off hold a
+ re-invite with sendrecv will be sent. This allows remote servers to handle
+ the musiconhold instead of the local Asterisk instance being responsible.
+
+ Review: https://reviewboard.asterisk.org/r/4103/
+
+ Change-Id: Ib6294e906e577e1a4245cb1f058d3976ff484c52
+
+2019-09-24 11:21 +0000 [9384639953] Kevin Harwell <kharwell@digium.com>
+
+ * res_pjsip_pubsub: change warning to debug
+
+ The following message:
+
+ "Subscription request from endpoint <blah> rejected. Expiration of 0 is invalid"
+
+ Would sometimes spam the log with warnings if Asterisk restarted and a bunch
+ of clients sent unsubscribes. This patch changes it from a warning to a debug
+ message.
+
+ Change-Id: I841ec42f65559f3135e037df0e55f89b6447a467
+
+2019-09-24 11:24 +0000 [c881d36319] Corey Farrell <git@cfware.com>
+
+ * core: Fix ABI mismatch of ao2_global_obj.
+
+ astobj2.c declares DEBUG_THREADS_LOOSE_ABI to avoid overhead of debug
+ threads tracking information in the internal structures of astobj2.
+ Unfortunately this means that ao2_global_obj contains the statically
+ allocated debug threads tracking fields which are used by initialization
+ and cleanup but main/astobj2.c believed those fields and associated
+ space did not exist.
+
+ Change-Id: Icef41ad97d88a8c1d1515e034ec8133cab3b1527
+
+2019-09-24 09:40 +0000 [3069153bdf] Ben Ford <bford@digium.com>
+
+ * taskprocessor.c: Add CLI commands to reset taskprocessor stats.
+
+ Added two new CLI commands to reset stats for taskprocessors. You can
+ reset stats for a single, specific taskprocessor ('core reset
+ taskprocessor <taskprocessor>'), or you can reset all taskprocessors
+ ('core reset taskprocessors'). These commands will reset the counter for
+ the number of tasks processed as well as the max queue size.
+
+ Change-Id: Iaf17fc4ae29396ab0c6ac92408fc7bdc2f12362d
+
+2019-09-19 09:50 +0000 [e8a9cc21ab] George Joseph <gjoseph@digium.com>
+
+ * pjproject_bundled: Revert pjproject 2.9 commits causing leaks
+
+ We've found a connection re-use regression in pjproject 2.9
+ introduced by commit
+ "Close #1019: Support for multiple listeners."
+ https://trac.pjsip.org/repos/changeset/6002
+ https://trac.pjsip.org/repos/ticket/1019
+
+ Normally, multiple SSL requests should reuse the same connection
+ if one already exists to the remote server. When a transport
+ error occurs, the next request should establish a new connection
+ and any following requests should use that same one. With this
+ patch, when a transport error occurs, every new request creates
+ a new connection so you can wind up with thousands of open tcp
+ sockets, possibly exhausting file handles, and increasing memory
+ usage.
+
+ Reverting pjproject commit 6002 (and related 6021) restores the
+ expected behavior.
+
+ We also found a memory leak in SSL processing that was introduced by
+ commit
+ "Fixed #2204: Add OpenSSL remote certificate chain info"
+ https://trac.pjsip.org/repos/changeset/6014
+ https://trac.pjsip.org/repos/ticket/2204
+
+ Apparently the remote certificate chain is continually recreated
+ causing the leak.
+
+ Reverting pjproject commit 6014 (and related 6022) restores the
+ expected behavior.
+
+ Both of these issues have been acknowledged by Teluu.
+
+ ASTERISK-28521
+
+ Change-Id: I8ae7233c3ac4ec29a3b991f738e655dabcaba9f1
+
+2019-09-23 11:01 +0000 [6517690168] Kevin Harwell <kharwell@digium.com>
+
+ * res_sorcery_memory_cache: stale item update leak
+
+ When a stale item was being updated the object was being retrieved, but its
+ reference was not being decremented after the update. This patch makes it so
+ the object is now appropriately de-referenced.
+
+ ASTERISK-28523
+
+ Change-Id: I9d8173d3a0416a242f4eba92fa0853279c500ec7
+
+2019-09-23 07:09 +0000 [afd6b98757] George Joseph <gjoseph@digium.com>
+
+ * astmm.c: Display backtrace with memory show allocations
+
+ You can currently capture backtraces of memory allocations but they
+ only get displayed when you stop asterisk and the atexit hooks
+ are enabled. Now, if memory backtrace is on and you issue a
+ "memory show allocations" CLI command for a specific file, then
+ a backtrace will show for each allocation that occurred after
+ you turned "memory backtrace on". The backtrace display is shown
+ only when a specific file's allocations are displayed to prevent
+ a massive CLI dump of every file's allocations.
+
+ Change-Id: Ic657afc1fc6ec7205e16eb36a97a611d235a2b4f
+
+2019-09-19 11:06 +0000 [48fd773743] Corey Farrell <git@cfware.com>
+
+ * res_pjsip_mwi: Remove inappropriate topic unreference.
+
+ ast_mwi_topic() returns a borrowed reference which should not be
+ unreferenced, doing so leads to a FRACK. This was hidden by the fact
+ that stasis_cache.c leaked the result of cache_remove in
+ caching_topic_exec.
+
+ Change-Id: I51101bf7d07b8dc8ce8fc46b6cb31fbbd213fbc7
+
+2019-09-19 10:53 +0000 [25918f2837] Corey Farrell <git@cfware.com>
+
+ * app_voicemail: Fix module unload leak.
+
+ Change-Id: Ib9a06565b9a178822d3bbb67eccf51432e12d84a
+
+2019-09-15 14:35 +0000 [a97bd89f84] Joshua Colp <jcolp@digium.com>
+
+ * chan_pjsip: Relock correct channel during "fax" redirect.
+
+ When fax detection occurs on an outbound PJSIP channel the
+ redirect operation will result in a masquerade occurring and
+ the underlying channel on the session changing. The code
+ incorrectly relocked the new channel instead of the old
+ channel when returning. This resulted in the new channel
+ being locked indefinitely. The code now always acts on the
+ expected channel.
+
+ ASTERISK-28538
+
+ Change-Id: I2b2e60d07e74383ae7e90d752c036c4b02d6b3a3
+
+2019-09-14 10:05 +0000 [ae70c2a428] Guido Falsi <madpilot@FreeBSD.org>
+
+ * chan_dahdi: Fix build with clang/llvm
+
+ On FreeBSD using the clang/llvm compiler build fails to build due
+ to the switch statement argument being a non integer type expression.
+ Switch to an if/else if/else construct to sidestep the issue.
+
+ ASTERISK-28536 #close
+
+ Change-Id: Idf4a82cc1e94580a2d017fe9e351c226f23e20c8
+
+2019-09-11 15:58 +0000 [622e487cd4] Michael Goryainov
+
+ * channels: Allow updating variable value
+
+ When modifying an already defined variable in some channel drivers they
+ add a new variable with the same name to the list, but that value is
+ never used, only the first one found.
+
+ Introduce ast_variable_list_replace() and use it where appropriate.
+
+ ASTERISK-23756 #close
+ Patches:
+ setvar-multiplie.patch submitted by Michael Goryainov
+
+ Change-Id: Ie1897a96c82b8945e752733612ee963686f32839
+
+2019-09-12 20:29 +0000 Asterisk Development Team <asteriskteam@digium.com>
+
+ * asterisk 13.29.0-rc1 Released.
+
+2019-09-12 15:20 +0000 [18fbd8d8c3] Asterisk Development Team <asteriskteam@digium.com>
+
+ * Update CHANGES and UPGRADE.txt for 13.29.0
+2019-09-12 13:36 +0000 [2a7cec9051] Asterisk Development Team <asteriskteam@digium.com>
+
+ * Update CHANGES and UPGRADE.txt for 13.29.0
+2019-08-27 17:44 +0000 [2705652152] sungtae kim <pchero21@gmail.com>
+
+ * res_musiconhold: Added unregister realtime moh class
+
+ This fix allows a realtime moh class to be unregistered from the command
+ line. This is useful when the contents of a directory referenced by a
+ realtime moh class have changed.
+ The realtime moh class is then reloaded on the next request and uses the
+ new directory contents.
+
+ ASTERISK-17808
+
+ Change-Id: Ibc4c6834592257c4bb90601ee299682d15befbce
+
+2019-09-05 11:09 +0000 [9462722b17] Frederic LE FOLL <frederic.lefoll@c-s.fr>
+
+ * ChanIsAvail() generates a CDR when unanswered=yes in cdr.conf.
+
+ ChanIsAvail() creates a temporary channel with ast_request() to test
+ resource availability. It should not generate a CDR when it hangs up
+ this temporary channel.
+
+ This patch disables CDR generation for the temporary channel with
+ ast_cdr_set_property().
+
+ ASTERISK-28527
+
+ Change-Id: I7b0555c6909c7d322e452dde97c9ea5b111552d1
+
+2019-09-05 10:52 +0000 [2b563368df] Frederic LE FOLL <frederic.lefoll@c-s.fr>
+
+ * chan_dahdi: set CHANNEL(hangupsource) when a PRI channel hangs up
+
+ When the remote ISDN party ends an ISDN call on a PRI link
+ (DISCONNECT), CHANNEL(hangupsource) information is not available.
+
+ chan_dahdi already contains an ast_set_hangupsource() in
+ __dahdi_exception() function but it seems that ISDN message processing
+ does not use this part of code.
+
+ Two other channel modules associate ast_queue_hangup() and
+ ast_set_hangupsource() functions calls:
+ - chan_pjsip in chan_pjsip_session_end() function,
+ - chan_sip in sip_queue_hangup_cause() function.
+ chan_iax2 separates them, in iax2_queue_hangup()/iax2_destroy() and
+ set_hangup_source_and_cause().
+
+ Thus, I propose to add ast_set_hangupsource() beside
+ ast_queue_hangup() in sig_pri_queue_hangup(), like chan_pjsip and
+ chan_sip already do.
+
+ ASTERISK-28525
+
+ Change-Id: I0f588a4bcf15ccd0648fd69830d1b801c3f21b7c
+
+2019-09-08 10:38 +0000 [060495ed86] Sean Bright <sean.bright@gmail.com>
+
+ * codec_resample: Ensure OUTSIDE_SPEEX is defined when necessary
+
+ ASTERISK-28511
+
+ Change-Id: If0d58598ce14aad3c786a1c0127b5f7b200b737d
+
+2019-08-26 07:53 +0000 [c711546559] Joshua Colp <jcolp@digium.com>
+
+ * AST-2019-005 - translate: Don't assume all frames will have a src.
+
+ This change removes the assumption that a frame will always have
+ a src set on it. This assumption is incorrect.
+
+ Given a scenario where an RTP packet is received with no payload
+ the resulting audio frame will have no samples. If this frame goes
+ through a signed linear translation path an interpolated frame can
+ be created (if generic packet loss concealment is enabled) that has
+ minimal data on it, including no src. If this frame is given to a
+ translation path a crash will occur due to the lack of src.
+
+ ASTERISK-28499
+
+ Change-Id: I024d10dd98207eb8a6b35b59880bcdf1090538f8
+
+2019-08-27 06:10 +0000 [8e07fcc30d] Igor Goncharovsky <igor.goncharovsky@gmail.com>
+
+ * chan_unistim: Fix clang warning: variable sized type not at end of a struct
+
+ On reading information about initial client packet unistim use dirty
+ implementation of destination ip address retrieval. This fix uses
+ CMSG_*(..) to get ip address and make clang compile without warning.
+
+ ASTERISK-25592 #close
+ Reported-by: Alexander Traud
+
+ Change-Id: Ic1fd34c2c2bcc951da65bf62e3f7a8adff8351b1
+
+2019-08-23 16:24 +0000 [af12d36f7e] Kevin Harwell <kharwell@digium.com>
+
+ * res_pjsip_mwi: add better handling of solicited vs unsolicited subscriptions
+
+ res_pjsip_mwi allows both solicited and unsolicited MWI subscription types.
+ While both can be set in the configuration for a given endpoint/aor, only
+ one is allowed. Precedence is given to unsolicited. Meaning if an endpoint/aor
+ is configured to allow both types then the solicited subscription is rejected
+ when it comes in. However, there is a configuration option to override that
+ behavior:
+
+ mwi_subscribe_replaces_unsolicited
+
+ When set to "yes" then when a solicited subscription comes in instead of
+ rejecting it Asterisk is suppose to replace the unsolicited one if it exists.
+ Prior to this patch there was a bug in Asterisk that allowed the solicted one
+ to be added, but did not remove the unsolicited. As a matter of fact a new
+ unsolicited subscription got added everytime a SIP register was received.
+ Over time this eventually could "flood" a phone with SIP notifies.
+
+ This patch fixes that behavior to now make it work as expected. If configured
+ to do so a solicited subscription now properly replaces the unsolicited one.
+ As well when an unsubscribe is received the unsolicited subscription is
+ restored. Logic was also put in to handle reloads, and any configuration changes
+ that might result from that. For instance, if a solicited subscription had
+ previously replaced an unsolicited one, but after reload it was configured to
+ not allow that then the solicited one needs to be shutdown, and the unsolicited
+ one added.
+
+ ASTERISK-28488
+
+ Change-Id: Iec2ec12d9431097e97ed5f37119963aee41af7b1
+
+2019-08-27 00:49 +0000 [7f1a574ce7] Igor Goncharovsky <igor.goncharovsky@gmail.com>
+
+ * chan_unistim: Fix code, causing all incoming DTMF sent back to asterisk
+
+ Current implementation of ast_channel_tech send_digit_begin hook uses
+ same function for tone playback as key press handler. This cause every
+ incoming dtmf send back to asterisk. In case of two unistim phones
+ connected to each other, it'll cause indefinite DTMF loop. Fix add
+ separate function for dtmf tone phone play.
+
+ Change-Id: I5795db468df552f0c89c7576b6b3858b26c4eab4
+
+2019-08-16 06:01 +0000 [b003c9b3ae] Igor Goncharovsky <igor.goncharovsky@gmail.com>
+
+ * chan_unistim: Fix RTP port byte order for big-endian arch
+
+ This patch fixes one-way oudio that users expirienced on
+ big-endian architechtires. RTP port number bytes was stored
+ in improper order and phone sent RTP to wrong RTP port.
+
+ Reported-by: Andrey Ionov
+ Change-Id: I9a9ca7f26e31a67bbbceff12923baa10dfb8a3be
+
+2019-08-23 15:14 +0000 [5154e7f359] Sean Bright <sean.bright@gmail.com>
+
+ * codec_resample: Upgrade speex_resample to fix up-sampling bug
+
+ ASTERISK-28511 #close
+
+ Change-Id: Idd07bf341e89ac999c7f5701d9b72b8a9cb11e82
+
+2019-08-22 13:19 +0000 [e6a4cca4aa] Alexei Gradinari <alex2grad@gmail.com>
+
+ * Fix misname 'res_external_mwi' to 'res_mwi_external' in comments.
+
+ Change-Id: Ic784be8500e5cb75dcb34bae9f03cfd93b6b34fb
+
+2019-08-21 10:58 +0000 [1a86b2499a] Dan Cropp <dan@amtelco.com>
+
+ * pjproject: Configurable setting for cnonce to include hyphens or not
+
+ NEC SIP Station interface with authenticated registration only supports cnonce
+ up to 32 characters. In Linux, PJSIP would generate 36 character cnonce
+ which included hyphens. Teluu developed this patch adding a compile time
+ setting to default to not include the hyphens. They felt it best to still
+ generate the UUID and strip the hyphens.
+ They have indicated it will be part of PJSIP 2.10.
+
+ ASTERISK-28509
+ Reported-by: Dan Cropp
+
+ Change-Id: Ibdfcf845d4f8c0a14df09fd983b11f2d72c5f470
+
+2019-07-30 12:08 +0000 [06e5c11589] Stas Kobzar <stas@modulis.ca>
+
+ * res_pjsip: Channel variable SIPFROMDOMAIN
+
+ In chan_sip, there was variable SIPFROMDOMAIN that allows to set
+ From header URI domain per channel. This patch introduces res_pjsip
+ variable SIPFROMDOMAIN for backward compatibility with chan_sip.
+
+ ASTERISK-28489
+
+ Change-Id: I715133e43172ce2a1e82093538dc39f9e99e5f2e
+
+2019-08-20 13:04 +0000 [22372d5d2b] George Joseph <gjoseph@digium.com>
+
+ * res_ari.c: Prefer exact handler match over wildcard
+
+ Given the following request path and 2 handler paths...
+ Request: /channels/externalMedia
+ Handler: /channels/{channelId} "wildcard"
+ Handler: /channels/externalmedia "non-wildcard"
+
+ ...if /channels/externalMedia was registered as a handler after
+ /channels/{channelId} as shown above, the request would automatically
+ match the wildcard handler and attempt to parse "externalMedia" into
+ the channelId variable which isn't what was intended. It'd work
+ if the non-wildard entry was defined in rest-api/api-docs/channels.json
+ before the wildcard entry but that makes the json files
+ order-dependent which isn't a good thing.
+
+ To combat this issue, the search loop saves any wildcard match but
+ continues looking for exact matches at the same level. If it finds
+ one, it's used. If it hasn't found an exact match at the end of
+ the current level, the wildcard is used. Regardless, after
+ searching the current level, the wildcard is cleared so it won't
+ accidentally match for a different object or a higher level.
+
+ BTW, it's currently not possible for more than 1 wildcard entry
+ to be defined for a level. For instance, there couldn't be:
+ Handler: /channels/{channelId}
+ Handler: /channels/{channelName}
+ We wouldn't know which one to match.
+
+ Change-Id: I574aa3cbe4249c92c30f74b9b40e750e9002f925
+
+2019-08-09 15:53 +0000 [ddc64ca059] Sean Bright <sean.bright@gmail.com>
+
+ * audiohook.c: Substitute silence for unavailable audio frames
+
+ There are 4 scenarios to consider when capturing audio from a channel
+ with an audiohook:
+
+ 1. There is no rx and no tx audio, so return nothing.
+ 2. There is rx but no tx audio, so return rx.
+ 3. There is tx but no rx audio, so return tx.
+ 4. There is rx and tx audio, so mix them and return.
+
+ The file passed as the primary argument to MixMonitor will be written to
+ in scenarios 2, 3, and 4. However, if you pass the r() and t() options
+ to MixMonitor, a frame will only be written to the r() file if there was
+ rx audio and a frame will only be written to the t() file if there was
+ tx audio.
+
+ If you subsequently take the r() and t() files and try to mix them, the
+ sides of the conversation will 'drift' and be non-representative of the
+ user experience.
+
+ This patch adds a new 'S' option to MixMonitor that injects a frame of
+ silence on either the r() side or the t() side of the channel so that
+ when later mixed, there is no such drift.
+
+ Change-Id: Ibf5ed73a811087727bd561a89a59f4447b4ee20e
+
+2019-08-14 14:52 +0000 [16bc4ed93c] Alexei Gradinari <alex2grad@gmail.com>
+
+ * app_voicemail/IMAP: check mailstream not NULL in leave_voicemail
+
+ The function leave_voicemail checks if expungeonhangup is set,
+ but does not check if IMAP stream is closed,
+ so it could call imap function with NULL stream.
+ This leads to segfault.
+
+ ASTERISK-28505 #close
+
+ Change-Id: Ib66c57c1f1ba97774e447b36349198e2626a8d7c
+
+2019-08-09 05:51 +0000 [8a96746994] Sean Bright <sean.bright@gmail.com>
+
+ * menuselect: Fix curses build on Gentoo Linux
+
+ Because keypad() is exported by libtinfo, it needs to be explicitly
+ added to the linker options.
+
+ ASTERISK-28487 #close
+
+ Change-Id: I6c2ad5b95f422c263d078b5c0e84c111807dffc6
+
+2019-08-08 12:10 +0000 [c6558e09af] George Joseph <gjoseph@digium.com>
+
+ * CI: Escape backslashes in printenv/sort/tr
+
+ Change-Id: I52be64c8f6af2bbe15148a856d1f10cb113e1e94
+
+2019-08-07 17:54 +0000 [feaadbd250] Kevin Harwell <kharwell@digium.com>
+
+ * srtp: Fix possible race condition, and add NULL checks
+
+ Somehow it's possible for the srtp session object to be NULL even though the
+ Asterisk srtp object itself is valid. When this happened it would cause a
+ crash down in the srtp code when attempting to protect or unprotect data.
+
+ After looking at the code there is at least one spot that makes this situation
+ possible. If Asterisk fails to unprotect the data, and after several retries
+ it still can't then the srtp->session gets freed, and set to NULL while still
+ leaving the Asterisk srtp object around. However, according to the original
+ issue reporter this does not appear to be their situation since they found
+ no errors logged stating the above happened (which Asterisk does for that
+ situation).
+
+ An issue was found however, where a possible race condition could occur between
+ the pjsip incoming negotiation, and the receiving of RTP packets. Both places
+ could attempt to create/setup srtp for the same rtp instance at the same time.
+ This potentially could be the cause of the problem as well.
+
+ Given the above this patch adds locking around srtp setup for a given rtp, or
+ rtcp instance. NULL checks for the session have also been added within the
+ protect and unprotect functions as a precaution. These checks should at least
+ stop Asterisk from crashing if it gets in this situation again.
+
+ This patch also fixes one other issue noticed during investigation. When doing
+ a replace the old object was freed before creating the replacement. If the new
+ replacement object failed to create then the rtp/rtcp instance would now point
+ to freed srtp data which could potentially cause a crash as well when the next
+ attempt to reference it was made. This is now fixed so the old srtp object is
+ kept upon replacement failure.
+
+ Lastly, more logging has been added to help diagnose future issues.
+
+ ASTERISK-28472
+
+ Change-Id: I240e11cbb1e9ea8083d59d50db069891228fe5cc
+
+2019-08-08 07:12 +0000 [17908cb76e] George Joseph <gjoseph@digium.com>
+
+ * CI: Add "throttle" label and "skip_gate" capability
+
+ To make throttling by label fully active, the "throttle" option
+ has to be specified with a specific label.
+
+ You can now specify "skip_gate" in the Gerrit comments when you
+ do a +2 code review to tell Jenkins not to actually run the
+ gate. You'd do this if you plan to manually merge the change.
+
+ Also updated the "printenv" debug output to better sort multi-line
+ comments.
+
+ Change-Id: I4c0b1085acec4805f2ca207eebac50aad81f27e2
+
+2019-08-05 07:23 +0000 [1496aef51b] Joshua Colp <jcolp@digium.com>
+
+ * cdr / cel: Use event time at event creation instead of processing.
+
+ When updating times on CDR or CEL records using the time at which
+ it is done can result in times being incorrect if the system is
+ heavily loaded and stasis message processing is delayed.
+
+ This change instead makes it so CDR and CEL use the time at which
+ the stasis messages that drive the systems are created. This allows
+ them to be backed up while still producing correct records.
+
+ ASTERISK-28498
+
+ Change-Id: I6829227e67aefa318efe5e183a94d4a1b4e8500a
+
+2019-08-06 10:40 +0000 [1a051fcf5a] George Joseph <gjoseph@digium.com>
+
+ * CI: Make node labels job-specific
+
+ Originally, the eligible nodes for a job were labelled only by
+ "swdev-docker". So basically any node could run any job. We had
+ found that allowing a node to run more than 1 gate at a time was
+ problematic so we limited the nodes to processing 1 job at a time.
+ With the creation of the Asterisk 17 branches however, we now have
+ so many active branches that getting checks and gates through in
+ a timely manner is problematic when a node can run only 1 job
+ at a time.
+
+ Now the nodes are also labelled by the job type they can run.
+ For instance: "asterisk-check", "asterisk-gate", etc. With the
+ "Throttle Concurrent Builds" plugin, we can now allow a node to
+ run more than 1 job BUT throttle by job type. For instance:
+ Allow 2 jobs but only 1 asterisk-gate at a time.
+ Now a node can run 2 checks or 1 check and 1 gate or 1 gate but
+ not 2 gates at a time.
+
+ Change-Id: I2032bf6afbcec5c341d9b852214c0c812d3d6db5
+
+2019-07-17 07:35 +0000 [6f77e12f21] Torrey Searle <torrey@voxbone.com>
+
+ * main/udptl.c: correctly handle udptl sequence wrap around
+
+ incorrect handling of UDPTL squence number wrap arounds causes
+ loss of packets every time the wrap around occurs
+
+ ASTERISK-28483 #close
+
+ Change-Id: I33caeb2bf13c574a1ebb81714b58907091d64234
+
+2019-08-01 16:22 +0000 [f145b58542] Kevin Harwell <kharwell@digium.com>
+
+ * various modules: json integer overflow
+
+ There were still a few places in the code that could overflow when "packing"
+ a json object with a value outside the base type integer's range. For instance:
+
+ unsigned int value = INT_MAX + 1
+ ast_json_pack("{s: i}", value);
+
+ would result in a negative number being "packed". In those situations this patch
+ alters those values to a ast_json_int_t, which widens the value up to a long or
+ long long.
+
+ ASTERISK-28480
+
+ Change-Id: Ied530780d83e6f1772adba0e28d8938ef30c49a1
+
+2019-07-29 10:15 +0000 [bb74c691ce] Sean Bright <sean.bright@gmail.com>
+
+ * res_musiconhold: Use a vector instead of custom array allocation
+
+ Change-Id: Ic476a56608b1820ca93dcf68d10cd76fc0b94141
+
+2019-08-01 05:07 +0000 [c6a34ddbf4] Joshua Colp <jcolp@digium.com>
+
+ * res_pjsip: Fix multiple of the same contact in "pjsip show contacts".
+
+ The code for gathering contacts could result in the same contact
+ being retrieved and added to the list multiple times. The container
+ which stores the contacts to display will now only allow a contact
+ to be added to it once instead of multiple times.
+
+ ASTERISK-28228
+
+ Change-Id: I805185cfcec03340f57d2b9e6cc43c49401812df
+
+2019-07-24 15:12 +0000 [5096a5ddf7] Sean Bright <sean.bright@gmail.com>
+
+ * manager: Send fewer packets
+
+ The functions that build manager message headers do so in a way that
+ results in a single messages being split across multiple packets. While
+ this doesn't matter to the remote end, it makes network captures noisier
+ and harder to follow, and also means additional system calls.
+
+ With this patch, we build up more of the message content into the TLS
+ buffer before flushing to the network. This change is completely
+ internal to the manager code and does not affect any of the existing
+ API's consumers.
+
+ Change-Id: I50128b0769060ca5272dbbb5e60242d131eaddf9
+
+2019-07-29 10:04 +0000 [2982138d2b] Sean Bright <sean.bright@gmail.com>
+
+ * res_musiconhold: Use ast_pipe_nonblock() wrapper
+
+ Change-Id: Ib0a4b41e5ececbe633079e2d8c2b66c031d2d1f2
+
+2019-07-24 15:15 +0000 [e51e2cae58] George Joseph <gjoseph@digium.com>
+
+ * CI: Don't enable non-core modules in Certified branches
+
+ We don't support non-core modules for Certified releases but we
+ were enabling them for CI builds which was causing lots of test
+ failures. Now we don't.
+
+ Change-Id: I0b3254c08a2479f3d39151690350cce5ce5ad766
+
+2019-05-12 13:29 +0000 [8e09fbb4e9] Leonid Fainshtein <leonid.fainshtein@xorcom.com>
+
+ * openr2(6/6): Set hangup cause
+
+ Change-Id: I94dc38920e6e77cc73062648f62fdd613d0d1452
+ Signed-off-by: Oron Peled <oron.peled@xorcom.com>
+
+2019-04-22 14:14 +0000 [fdaefbb20a] Tzafrir Cohen <tzafrir.cohen@xorcom.com>
+
+ * openr2(5/6): added cli command -- mfcr2 destroy link <index>
+
+ Change-Id: I452d6a853bcd8c6e194455b19e5e017713e9c0fe
+ Signed-off-by: Oron Peled <oron.peled@xorcom.com>
+
+2019-04-22 10:27 +0000 [effca9917d] Tzafrir Cohen <tzafrir.cohen@xorcom.com>
+
+ * openr2(4/6): added new cli command -- mfcr2 show links
+
+ * This command show the MFC/R2 links
+
+ Change-Id: I213822e1b7ef9c05bd89a2ba62df8e0856ce9f84
+ Signed-off-by: Oron Peled <oron.peled@xorcom.com>
+
+2019-04-22 07:27 +0000 [b3de2c0e1e] Tzafrir Cohen <tzafrir.cohen@xorcom.com>
+
+ * openr2(3/6): Convert r2links to standard Asterisk AST_LIST*
+
+ Change-Id: Ibcb2401515a58782a1488c0b9efbed201c3f3a17
+ Signed-off-by: Oron Peled <oron.peled@xorcom.com>
+
+2019-04-22 07:33 +0000 [4b779a59e4] Tzafrir Cohen <tzafrir.cohen@xorcom.com>
+
+ * openr2(2/6): Stop polling channels when DAHDI returns -ENODEV (e.g: plug-out)
+
+ Otherwise, OpenR2 threads go crazy and consume almost all CPU resources
+
+ Change-Id: I10a41f617613fe7399c5bdced5c64a2751173f28
+ Signed-off-by: Oron Peled <oron.peled@xorcom.com>
+
+2019-07-23 12:58 +0000 [202fdc88dd] Sean Bright <sean.bright@gmail.com>
+
+ * res_config_sqlite3: Only join threads that we started
+
+ ASTERISK-28477 #close
+ Reported by: Dennis
+
+ ASTERISK-28478 #close
+ Reported by: Dennis
+
+ Change-Id: I77347ad46a86dc5b35ed68270cee56acefb4f475
+
+2019-07-19 11:20 +0000 [b63425f469] George Joseph <gjoseph@digium.com>
+
+ * CI: Add cleanWs to cleanup steps in jenkinsfiles
+
+ We're at the point where there are enough Jenkins jobs for
+ Asterisk branches than even cleaned checkouts of Asterisk
+ will add up to more disk space than is available on the
+ in-memory workspace mount. Since we archive all relevent
+ artifacts anyway, there's no need to keep the workspace
+ around after the job finishes, whether it succeeds or fails.
+
+ Change-Id: I1cd3b73ebb045a987df0f62526d152a510210c39
+
+2019-07-04 19:46 +0000 [5c87fa6a0e] Rodrigo Ramírez Norambuena <a@rodrigoramirez.com>
+
+ * README.md: Update year
+
+ Change-Id: I746fb94d112c7d797e206bca0fd1e13fcd26bae3
+
+2019-07-19 08:38 +0000 [51504432a7] George Joseph <gjoseph@digium.com>
+
+ * CI: Add install-headers to the install make targets
+
+ The testsuite actually needs the headers installed to run
+ it's self_test.
+
+ Change-Id: Ice41d331131b876ad4a9c056085fe6aac34b32b2
+
+2019-07-17 08:06 +0000 [3449240130] Walter Doekes <walter+asterisk@wjd.nu>
+
+ * sched: Don't allow ast_sched_del to deadlock ast_sched_runq from same thread
+
+ When fixing ASTERISK~24212, a change was done so a scheduled callback could not
+ be removed while it was running. The caller of ast_sched_del would have to wait.
+
+ However, when the caller of ast_sched_del is the callback itself (however wrong
+ this might be), this new check would cause a deadlock: it would wait forever
+ for itself.
+
+ This changeset introduces an additional check: if ast_sched_del is called
+ by the callback itself, it is immediately rejected (along with an ERROR log and
+ a backtrace). Additionally, the AST_SCHED_DEL_UNREF macro is adjusted so the
+ after-ast_sched_del-refcall function is only run if ast_sched_del returned
+ success.
+
+ This should fix the following spurious race condition found in chan_sip:
+ - thread 1: schedule sip_poke_peer_now (using AST_SCHED_REPLACE)
+ - thread 2: run sip_poke_peer_now
+ - thread 2: blank out sched-ID (too soon!)
+ - thread 1: set sched-ID (too late!)
+ - thread 2: try to delete the currently running sched-ID
+
+ After this fix, an ERROR would be logged, but no deadlocks (in do_monitor) nor
+ excess calls to sip_unref_peer(peer) (causing double frees of rtp_instances and
+ other madness) should occur.
+
+ (Thanks Richard Mudgett for reviewing/improving this "scary" change.)
+
+ Note that this change does not fix the observed race condition: unlocked
+ access to peer->pokeexpire (and potentially other scheduled items in chan_sip),
+ causing AST_SCHED_DEL_UNREF to look at a changing id. But it will make the
+ deadlock go away. And in the observed case, it will not have adverse affects
+ (like memory leaks) because the scheduled item is removed through a different
+ path.
+
+ ASTERISK-28282
+
+ Change-Id: Ic26777fa0732725e6ca7010df17af77a012aa856
+
+2019-07-16 08:15 +0000 [aaafe8a108] George Joseph <gjoseph@digium.com>
+
+ * Build: Add separate header install/uninstall targets
+
+ Two new Makefile targets have been added... "install-headers" and
+ "uninstall-headers" to separately control header installation.
+ The existing behavior has not changed so "make install" and
+ "make uninstall" will continue to also install/uninstall the headers.
+ The new targets were added for forward compatibility with Asterisk 17
+ in which the headers are no longer installed/uninstalled with the
+ "install" and "uninstall" targets.
+
+ Also corrects an issue where /usr/include/asterisk.h was never
+ being removed at all.
+
+ Change-Id: Ia7399f3a0203a4825fc4a9f43b9034dae9a2b643
+
+2019-07-09 14:42 +0000 [d2eaba4853] Kevin Harwell <kharwell@digium.com>
+
+ * manager: Log AMI actions
+
+ When manager debugging is turned on, this patch makes it so incoming AMI actions
+ are now also logged.
+
+ Change-Id: I8047524510e7ac97d99482b2448f8e368f29cd47
+
+2019-04-22 10:02 +0000 [d8bf4b1608] Tzafrir Cohen <tzafrir.cohen@xorcom.com>
+
+ * openr2(1/6): bugfix in configuration saving
+
+ Details:
+ - The memcpy() call copied part of "dahdi_conf" and not "dahdi_conf.mfcr2"
+ - As a result, the memcmp() in dahdi_r2_get_link() always fails
+ - This cause dahdi_r2_get_link() to create new link for every channel
+ (instead of a new link for every ~30 channels)
+ - With the fix, far less links are generated -- so we use far less threads
+
+ Change-Id: I7259dd6272f5e46e8a6c7f5bf3e8c2ec01b8c132
+ Signed-off-by: Oron Peled <oron.peled@xorcom.com>
+
+2019-07-18 11:10 +0000 Asterisk Development Team <asteriskteam@digium.com>
+
+ * asterisk 13.28.0-rc1 Released.
+
+2019-07-18 06:05 +0000 [b3d0754f82] Asterisk Development Team <asteriskteam@digium.com>
+
+ * Update CHANGES and UPGRADE.txt for 13.28.0
+2019-07-14 13:26 +0000 [3cb839d111] Joshua Colp <jcolp@digium.com>
+
+ * res_rtp_asterisk: Move where DTLS MTU variable is defined.
+
+ The DTLS MTU variable is not dependent on pjproject and should
+ not exist in its block.
+
+ Change-Id: I7e97d64dc192f2ac81bfe2b72b8229d321c7d026
+
+2019-06-12 13:03 +0000 [41d6492de0] George Joseph <gjoseph@digium.com>
+
+ * res_pjsip_messaging: Check for body in in-dialog message
+
+ We now check that a body exists and it has a length > 0 before
+ attempting to process it.
+
+ ASTERISK-28447
+ Reported-by: Gil Richard
+
+ Change-Id: Ic469544b22ab848734636588d4c93426cc6f4b1f
+
+2019-06-28 11:15 +0000 [1318a3a2b7] Francesco Castellano <francesco.castellano@messagenet.it>
+
+ * chan_sip: Handle invalid SDP answer to T.38 re-invite
+
+ The chan_sip module performs a T.38 re-invite using a single media
+ stream of udptl, and expects the SDP answer to be the same.
+
+ If an SDP answer is received instead that contains an additional
+ media stream with no joint codec a crash will occur as the code
+ assumes that at least one joint codec will exist in this
+ scenario.
+
+ This change removes this assumption.
+
+ ASTERISK-28465
+
+ Change-Id: I8b02845b53344c6babe867a3f0a5231045c7ac87
+
+2019-07-01 16:57 +0000 [e206a54d59] Chris-Savinovich <csavinovich@digium.com>
+
+ * chan_dahdi.c: crash in chan_dahdi
+
+ Fixes a crash in chan_dahdi occurring on 32-bit systems. A previous
+ patch introduced a variable of type unassigned long long which is 64-bits.
+ Casting it as 'ast_json_int_t' along with JSON type 'I' makes it work
+ with 32-bit systems.
+
+ ASTERISK-28457
+
+ Change-Id: I9cef6b5f2d826fc5c93f2f6a1c997c4e3e6c93fe
+
+2019-06-27 15:04 +0000 [be54e94773] George Joseph <gjoseph@digium.com>
+
+ * tcptls.c: Add peer hostname and port to some error messages
+
+ Where possble, hostname and port has been added to error
+ messages, mostly on the server side.
+
+ ASTERISK-26006
+ Reported by: Oleksandr Natalenko
+
+ Change-Id: Iff4f897277bc36ce8c5b493b71d0a4a7b74e62f0
+
+2019-06-27 12:46 +0000 [493268a938] George Joseph <gjoseph@digium.com>
+
+ * pjproject_bundled: Add peer information to most SSL/TLS errors
+
+ Most SSL/TLS error messages coming from pjproject now have either
+ the peer address:port or peer hostname, depending on what was
+ available at the time and code location where the error was
+ generated.
+
+ ASTERISK-28444
+ Reported by: Bernhard Schmidt
+
+ Change-Id: I41770e8a1ea5e96f6e16b236692c4269ce1ba91e
+
+2019-06-13 10:11 +0000 [ba57b004c4] Sean Bright <sean.bright@gmail.com>
+
+ * pjproject: Update to 2.9 release
+
+ Relies on https://github.com/asterisk/third-party/pull/4
+
+ Change-Id: Iec9cad42cb4ae109a86a3d4dae61e8bce4424ce3
+
+2019-06-24 08:30 +0000 [79087b6aeb] George Joseph <gjoseph@digium.com>
+
+ * sig_pri: Address gcc9 issues
+
+ A few more format truncation issues addressed.
+
+ Change-Id: I047f373169caaca0eec4889d3c0e5e10f130017a
+
+2019-06-24 05:08 +0000 [9721f3908d] Joshua Colp <jcolp@digium.com>
+
+ * res_pjsip_sdp_rtp: Fix ICE candidates leak.
+
+ Given the non-default configuration of enabling ICE support on an
+ endpoint that does not result in an ICE negotiation occurring the
+ ICE candidates would be leaked.
+
+ This change makes it so that the ICE candidates are only retrieved
+ if ICE negotiation is occurring.
+
+ ASTERISK-28460
+
+ Change-Id: I7b3f76f031c41fb8a3dc3ef1a84b77e2a8cb969f
+
+2019-05-29 17:54 +0000 [d5db7473e7] Alexei Gradinari <alex2grad@gmail.com>
+
+ * res_fax: gateway sends T.38 request to both endpoints if V.21 detected
+
+ According T.38 Gateway 'Use case 3'
+ https://wiki.asterisk.org/wiki/display/AST/T.38+Gateway
+ T.38 Gateway should send T.38 negotiation request to called endpoint
+ if FAX preamble (using V.21 detector) generated by called endpoint.
+ But it does not, because fax_gateway_detect_v21 constructs T.38
+ negotiation request, but forwards it only to other channel,
+ not to the channel on which FAX preamble is detected.
+
+ Some SIP endpoints could be improperly configured to rely on the other side
+ to initiate T.38 re-INVITEs.
+
+ With this patch the T.38 Gateway tries to negotiate with both sides
+ by sending T.38 negotiation request to both endpoints supported T.38.
+
+ Change-Id: I73bb24799bfe1a48adae9c034a2edbae54cc2a39
+
+2019-06-19 11:58 +0000 [e4ee209bfe] George Joseph <gjoseph@digium.com>
+
+ * CI: New way to determnine libdir
+
+ We were using the presence of /usr/lib64 to determine where
+ shared libraries should be installed. This only existed on
+ Redhat based systems and was safe. If it existed, use it,
+ otherwise use /usr/lib.
+
+ Unfortunately, Ubuntu 19 decided to create a /usr/lib64 BUT
+ NOT INCLUDE IT IN THE DEFAULT ld.so.conf. So if anything is
+ installed there, it won't work.
+
+ The new method, just looks for $ID in /etc/os-release and if it's
+ centos or fedora, uses /usr/lib64 and if ubuntu, uses /usr/lib.
+
+ NOTE: This applies only to the CI scripts. Normal asterisk
+ build and install is not affected.
+
+ Change-Id: Iad66374b550fd89349bedbbf2b93f8edd195a7c3
+
+2019-06-14 15:45 +0000 [3bfe1f3a1b] Alexei Gradinari <alex2grad@gmail.com>
+
+ * translate.c do not log WARNING on empty audio frame
+
+ There is WARNING "no samples for ..." on each Playtones.
+ The function ast_playtones_start calls ast_activate_generator,
+ which calls ast_prod.
+ The function ast_prod calls ast_write with empty audio frame.
+ In this case it's spam log.
+
+ Change-Id: Id4ac309489d9ff281bad02abdef341cecdede660
+
+2019-06-17 12:11 +0000 [d0f01af913] George Joseph <gjoseph@digium.com>
+
+ * chan_dahdi: Address gcc9 issues
+
+ Fixed format-truncation issues in chan_dahdi.c and
+ sig_analog.c. Since they're related to fields provided
+ by dahdi-tools we can't change the buffer sizes so we're just
+ checking the return from snprintf and printing an errior if we
+ overflow.
+
+ Change-Id: Idc1f3c1565b88a7d145332a0196074b5832864e5
+
+2019-06-10 16:58 +0000 [41f5d15763] George Joseph <gjoseph@digium.com>
+
+ * app_confbridge: Attended transfer event fixup
+
+ When a channel already in a conference bridge is attended transfered
+ to another extension, or when an existing call is attended
+ transferred into a conference bridge, we now generate ConfbridgeJoin
+ and ConfbridgeLeave events for the entering and departing channels.
+
+ Change-Id: Id7709cfbceb26fbcb828b2d0d2a6b2fbeaf028e1
+
+2019-06-11 07:26 +0000 [1ea9bad34d] Joshua Colp <jcolp@digium.com>
+
+ * res_rtp_asterisk: Add support for DTLS packet fragmentation.
+
+ This change adds support for larger TLS certificates by allowing
+ OpenSSL to fragment the DTLS packets according to the configured
+ MTU. By default this is set to 1200.
+
+ This is accomplished by implementing our own BIO method that
+ supports MTU querying. The configured MTU is returned to OpenSSL
+ which fragments the packet accordingly. When a packet is to be
+ sent it is done directly out the RTP instance.
+
+ ASTERISK-28018
+
+ Change-Id: If2d5032019a28ffd48f43e9e93ed71dbdbf39c06
+
+2019-05-21 14:12 +0000 [45a9ee4c53] Alexei Gradinari <alex2grad@gmail.com>
+
+ * app_attended_transfer: new application AttendedTransfer
+
+ AttendedTransfer queues up attended transfer to the given extension.
+
+ This application can be useful with Custom Dynamic Features.
+ For example to make attended transfer to a predefined number.
+
+ features.conf
+ ;;;
+ [applicationmap]
+ my_atxfer => *7,self,GoSub,"my_atxfer,s,1",default
+ ;;;
+
+ extensions.conf
+ ;;;
+ [globals]
+ DYNAMIC_FEATURES=my_atxfer
+ TRANSFER_CONTEXT=my_transfer
+
+ [my_atxfer]
+ exten => s,1,AttendedTransfer(1234567890)
+ same => n,Return()
+
+ [my_transfer]
+ include => default
+ ;;;
+
+ This application also can be used to completly redefine Attended transfer
+ feature using dialplan. For example:
+
+ features.conf
+ ;;;
+ [featuremap]
+ atxfer => *7
+
+ [applicationmap]
+ custom_atxfer => *2,self,GoSub,"custom_atxfer,s,1",default
+ ;;;
+
+ extensions.conf
+ ;;;
+ [globals]
+ DYNAMIC_FEATURES=custom_atxfer
+ TRANSFER_CONTEXT=my_transfer
+
+ [custom_atxfer]
+ exten => s,1,
+ same => n,Playback(pbx-transfer)
+ same => n,Read(dest,dial,10,i,3,3)
+ same => n,AttendedTransfer(${dest})
+ same => n,Return()
+
+ [my_transfer]
+ include => default
+ ;;;
+
+ Change-Id: Ie5cfa455d0813cffd5c85a6fb117f07d8f0b903b
+
+2019-06-06 07:48 +0000 [67841b8f55] Abhay Gupta <abhay@avissol.com>
+
+ * chan_pjsip.c: Check for channel and session to not be NULL in hangup
+
+ We have seen some rare case of segmentation fault in hangup function
+ and we could notice that channel pointer was NULL. Debug log shows
+ that there is a 200 OK answer and SIP timeout at the same time. It
+ looks that while the SIP session was being destroyed due to timeout
+ call hangup due to answer event lead to race condition and channel
+ is being destroyed from two different places. The check ensures we
+ check it not to be NULL before freeing it.
+
+ ASTERISK-25371
+
+ Change-Id: I19f6566830640625e08f7b87bfe15758ad33a778
+
+2019-05-21 14:53 +0000 [dd12e1cbd3] Alexei Gradinari <alex2grad@gmail.com>
+
+ * app_blind_transfer: new application BlindTransfer
+
+ BlindTransfer redirects all channels currently bridged to the
+ caller channel to the specified destination.
+
+ This application can be useful with Custom Dynamic Features.
+ For example to make blind transfer to a predefined number.
+
+ features.conf
+ ;;;
+ [applicationmap]
+ my_blindxfer => *6,self,GoSub,"my_blindxfer,s,1",default
+ ;;;
+
+ extensions.conf
+ ;;;
+ [globals]
+ DYNAMIC_FEATURES=my_blindxfer
+
+ [my_blindxfer]
+ exten => s,1,BlindTransfer(1234567890,default)
+ same => n,Return()
+ ;;;
+
+ This application also can be used to completly redefine Blind transfer
+ feature using dialplan. For example:
+
+ features.conf
+ ;;;
+ [featuremap]
+ blindxfer =>
+
+ [applicationmap]
+ custom_blindxfer => ##,self,GoSub,"custom_blindxfer,s,1",default
+ ;;;
+
+ extensions.conf
+ ;;;
+ [globals]
+ DYNAMIC_FEATURES=custom_blindxfer
+
+ [custom_blindxfer]
+ exten => s,1,
+ same => n,Playback(pbx-transfer)
+ same => n,Read(dest,dial,10,i,3,3)
+ same => n,BlindTransfer(${dest},default)
+ same => n,Return()
+ ;;;
+
+ Change-Id: I9d55e7f69ccfd4472dec00d62771d6de8803215a
+
+2019-06-04 12:41 +0000 [45c1159c62] Chris-Savinovich <csavinovich@digium.com>
+
+ * cdr_pgsql: fix error in connection string
+
+ Fixes an error occurring in function pgsql_reconnect() caused when value of
+ hostname is blank. Which in turn will cause the connection string to look
+ like this: "host= port=xx", which creates a sintax error. This fix now checks
+ if the corresponding values for host, port, dbname, and user are blank. Note
+ that since this is a reconnect function the database library will replace any
+ missing value pairs with default ones.
+
+ ASTERISK-28435
+
+ Change-Id: I0a921f99bbd265768be08cd492f04b30855b8423
+
+2019-05-28 15:35 +0000 [e306c62ff1] Alexei Gradinari <alex2grad@gmail.com>
+
+ * res_fax: fix segfault on inactive "reserved" fax session
+
+ The change #10017 "Handle fax gateway being started more than once"
+ introdiced a bug which leads to segfault in res_fax_spandsp.
+
+ The res_fax_spandsp module does not support reserving sessions, so
+ fax_session_reserve returns a fax session with state AST_FAX_STATE_INACTIVE.
+
+ The fax_gateway_start does not create a real fax session if the fax session
+ is already present and the state is not AST_FAX_STATE_RESERVED.
+ But the "reserved" session created for res_fax_spandsp has state
+ AST_FAX_STATE_INACTIVE, so fax_gateway_start not starting.
+
+ Then when fax_gateway_framehook is called and gateway T.38 state is
+ NEGOTIATED the call of gateway->s->tech->write(gateway->s, f) leads to
+ segfault, because session tech_pvt is not set, i.e. the tech session
+ was not initialized/started.
+
+ This patch adds check also on AST_FAX_STATE_INACTIVE to the "reserved"
+ session created for res_fax_spandsp will start.
+
+ This patch also adds extra check and log ERROR if tech_pvt is not set
+ before call tech->write.
+
+ ASTERISK-27981 #close
+
+ Change-Id: Ife3e65e5f18c902db2ff0538fccf7d28f88fa803
+
+2019-05-30 11:59 +0000 [fba341af8b] Asterisk Development Team <asteriskteam@digium.com>
+
+ * Update CHANGES and UPGRADE.txt for 13.27.0
+2019-05-21 01:38 +0000 [f7527921b6] Nasir Iqbal <nasir@ictinnovations.com>
+
+ * app_amd: issue with silence suppression fixed
+
+ Now AMD algorithm will not ignore AST_FRAME_NULL, As I think using manual
+ wait time instead of `framelength` is enough to fix timeout / TOOLONG issue.
+
+ ASTERISK-28419 #close
+
+ Change-Id: I16ea2d6295bc99b975e8c092e5f9fbd9214debdb
+
+2019-05-28 17:15 +0000 [dfa513c565] Alexei Gradinari <alex2grad@gmail.com>
+
+ * res_fax: add channel name to CLI 'fax show session'
+
+ This patch adds a channel name to output of CLI 'fax show session'
+ and also expands the channel name field up to 30 characters on
+ CLI 'fax show sessions'
+
+ Change-Id: Id059c43ff41811f5e76712b83fb63b8f246da953
+
+2019-05-24 09:01 +0000 [6aeab9d5e7] Ben Ford <bford@digium.com>
+
+ * build: Fix file format in CHANGES-staging.
+
+ One of the change files doesn't conform to the format that the release
+ scripts need in order to parse it.
+
+ Change-Id: Ie0b634cf27e4cbc671b9fe92993b6f2ecf60254c
+
+2019-05-23 09:44 +0000 [ac4921c373] Guido Falsi <madpilot@FreeBSD.org>
+
+ * chan_dahdi: add missing include.
+
+ After some definitions have been moved to asterisk/mwi.h the files
+ channels/chan_dahdi.h channels/sig_pri.c are missing this new
+ include.
+
+ ASTERISK-28427 #close
+
+ Change-Id: Ia8cc595eeda653324643f40dcd9799d4c3f0ac91
+
+2019-05-17 17:45 +0000 [6ded762dbf] Alexei Gradinari <alex2grad@gmail.com>
+
+ * app_readexten: new option 'p' to stop reading on '#' key
+
+ This patch adds the 'p' option.
+ The extension entered will be considered complete when a # is entered.
+
+ Change-Id: If77c40c9c8b525885730821e768f5dea71cf04c1
+
+2019-05-13 15:37 +0000 [595d60846a] Alexei Gradinari <alex2grad@gmail.com>
+
+ * pjsip: replace 180 by 183 if SDP negotiation has completed
+
+ The caller endpoint hears dead silence if a callee replies 180 (without SDP)
+ and the caller already received 183 (with SDP).
+ It happens because Asterisk sends 180 (WITH SDP) to the caller,
+ there are not incoming RTP packets from the callee
+ and Asterisk does not generate inband ringing,
+ so there are not any outgoing RTP packets to the caller.
+
+ This patch replaces 180 by 183 if SDP negotiation has completed,
+ as if the caller endpoint is configured with "inband_progress=yes".
+
+ In this case Asterisk will generate inband ringing untill Asterisk receive
+ incoming RTP packets from the callee.
+
+ ASTERISK-27994 #close
+
+ Change-Id: I7450b751083ec30d68d6abffe922215a15ae5a73
+
+2019-05-22 18:35 +0000 Asterisk Development Team <asteriskteam@digium.com>
+
+ * asterisk 13.27.0-rc1 Released.
+
+2019-05-20 12:45 +0000 [fc49632bbc] Joshua Colp <jcolp@digium.com>
+
+ * pjproject-bundled: Add upstream timer fixes
+
+ Fixed #2191:
+ - Stricter double timer entry scheduling prevention.
+ - Integrate group lock in SIP transport, e.g: for add/dec ref,
+ for timer scheduling.
+
+ ASTERISK-28161
+ Reported-by: Ross Beer
+
+ Change-Id: I2e09aa66de0dda9414d8a8259a649c4d2d96a9f5
+
+2019-05-17 18:44 +0000 [90fe830a77] George Joseph <gjoseph@digium.com>
+
+ * res_rtp_asterisk: Add ability to propose local address in ICE
+
+ You can now add the "include_local_address" flag to an entry in
+ rtp.conf "[ice_host_candidates]" to include both the advertized
+ address and the local address in ICE negotiation:
+
+ [ice_host_candidates]
+ 192.168.1.1 = 1.2.3.4,include_local_address
+
+ This causes both 192.168.1.1 and 1.2.3.4 to be advertized.
+
+ Change-Id: Ide492cd45ce84546175ca7d557de80d9770513db
+
+2019-05-10 10:48 +0000 [4337895aee] George Joseph <gjoseph@digium.com>
+
+ * Fixes for GCC 9
+
+ Various fixes for issues caught by gcc 9. Mostly snprintf
+ trying to copy to a buffer potentially too small.
+
+ ASTERISK-28412
+
+ Change-Id: I9e85a60f3c81d46df16cfdd1c329ce63432cf32e
+
+2019-05-07 14:24 +0000 [c41e3184e3] George Joseph <gjoseph@digium.com>
+
+ * Revert "pjproject-bundled: Add upstream timer fixes"
+
+ This reverts commit cfeb8a59eb892e7f72b5ce0acfc0dbde1a51d3b8.
+
+ The fixes in question cause assert failures when pjproject
+ asserts are enabled. Reverting in 13 until a solution is
+ found for all branches.
+
+ Change-Id: Iae5bd340e0543613185fecb63f9c86fa985fe664
+
+2019-05-07 11:08 +0000 [f71a0e3f60] Ben Ford <bford@digium.com>
+
+ * pjsip_options.c: Allow immediate qualifies for new contacts.
+
+ When multiple endpoints try to register close together using the same
+ AOR with qualify_frequency set, one contact would qualify immediately
+ while the other contacts would have to wait out the duration of the
+ timer before being able to qualify. Changing the conditional to check
+ the contact container count for a non-zero value allows all contacts to
+ qualify immediately.
+
+ Change-Id: I79478118ee7e0d6e76af7c354d66684220db9415
+
+2019-05-03 13:31 +0000 [7646e2257f] George Joseph <gjoseph@digium.com>
+
+ * build: Pass --fno-partial-inlining to third-party when appropriate
+
+ When the gcc version is >= 8.2.1, we were already setting the
+ --fno-partial-inlining flag for Asterisk source files to get around
+ a gcc bug but we weren't passing the flag down to the bundled
+ builds of pjproject and jansson.
+
+ ASTERISK-28392
+
+ Change-Id: I99ede9bc35408ecd096f7d5369e8192d3dc75704
+
+2019-05-03 08:27 +0000 [cfeb8a59eb] George Joseph <gjoseph@digium.com>
+
+ * pjproject-bundled: Add upstream timer fixes
+
+ Fixed #2191:
+ - Stricter double timer entry scheduling prevention.
+ - Integrate group lock in SIP transport, e.g: for add/dec ref,
+ for timer scheduling.
+
+ ASTERISK-28161
+ Reported-by: Ross Beer
+
+ Change-Id: I02a791fd1570a1e594a132b36c4ff72441108c17
+
+2019-05-02 13:29 +0000 [9d8a093a94] George Joseph <gjoseph@digium.com>
+
+ * res_pjsip: Check return from pjsip_parse_uri calls
+
+ Updated ast_sip_create_rdata_with_contact and registrar_find_contact
+ to check the return from pjsip_parse_uri before attempting to
+ use the uri returned.
+
+ ASTERISK-28402
+ Reported-by: Ross Beer
+
+ Change-Id: I9810b3b163c45ed5a56ec743586e5ce107f13ba7
+
+2018-12-04 02:10 +0000 [188b1d3e68] Abhay Gupta <abhay@avissol.com>
+
+ * app_amd: Fix infinite loop on silent calls
+
+ The total time logic will now be executed on calls which
+ do not pass any media.
+
+ ASTERISK-28143
+
+ Change-Id: I24726bd29d7e467fc721ca265363417234b22855
+
+2019-04-23 09:47 +0000 [4589260961] Ben Ford <bford@digium.com>
+
+ * stasis: Fix crash at shutdown.
+
+ When compiling in dev mode, stasis statistics are enabled and can cause
+ a crash at shutdown due to the following:
+ - Containers are freed
+ - Topics and subscriptions remain
+ - When those topics and subscriptions are deallocated, they go to do
+ things with the container
+
+ This changes the containers to global ao2 objects, and whenever needed
+ in the code, a reference must be obtained and checked before any
+ operations can be done.
+
+ ASTERISK-28353 #close
+
+ Change-Id: Ie7d5e907fcfcb4d65bd36d5e4eb923126fde8d33
+
+2019-03-29 09:04 +0000 [001e7762e4] Antoni Goldstein <action@gdevel.com>
+
+ * app_dial.c: RINGTIME, PROGRESSTIME and ms resolution dial timings
+
+ Added RINGTIME, RINGTIME_MS, PROGRESSTIME, PROGRESSTIME_MS variables filled
+ at the earliest received PROGRESS or RINGING.
+ Added millisecond versions of DIALEDTIME and ANSWEREDTIME.
+
+ Added millisecond versions of ast_channel_get_up_time and
+ ast_channel_get_duration in channel.c.
+
+ ASTERISK-28363
+
+ Change-Id: If95f1a7d8c4acbac740037de0c6e3109ff6620b1
+
+2019-04-09 14:09 +0000 [4ea20c9c85] Kevin Harwell <kharwell@digium.com>
+
+ * mwi core: Move core MWI functionality into its own files
+
+ There is enough MWI functionality to warrant it having its own 'c' and header
+ files. This patch moves all current core MWI data structures, and functions
+ into the following files:
+
+ main/mwi.h
+ main/mwi.c
+
+ Note, code was simply moved, and not modified. However, this patch is also in
+ preparation for core MWI changes, and additions to come.
+
+ Change-Id: I9dde8bfae1e7ec254fa63166e090f77e4d3097e0
+
+2019-04-22 11:09 +0000 [6d4023e3a6] George Joseph <gjoseph@digium.com>
+
+ * ARI: Bump non-breaking version number to 1.10.2
+
+ main/json.c: Added app_name, app_data to channel type
+ res/res_ari: Added ARI resource /ari/channels/{channelId}/rtp_statistics
+ res/res_ari: Added timestamp as a requirement for all ARI events
+
+ Change-Id: Ie0da5b0cf0623b0d0fddbb864f73cb676c2b55cd
+
+2019-04-07 11:36 +0000 [8ee69fbdd0] Guido Falsi <madpilot@freebsd.org>
+
+ * core/buildsystem: check the actual compiler being version
+
+ Make compiler check use the output of the actual compiler being
+ used as reported by the CC variable, instead of unconditionally
+ running the "gcc" binary. Also only run the check if the compiler
+ is gcc or a cross-compile gcc.
+
+ ASTERISK-28374
+
+ Change-Id: Icaacf6d93686ad21076878aa1504a23b4fc9d0f4
+
+2019-04-19 09:33 +0000 [aaee0fa6f5] Lucas Mendes <lucas.mendes@wearespindle.com>
+
+ * res_indications: Fix indications remove command autocomplete
+
+ We changed the validation of autocomplete parameter in the "indications
+ remove" command to avoid continue the execution of the command after
+ asking for autocomplete out of range parameters.
+
+ ASTERISK-28391
+ Reported by: lmendes86
+
+ Change-Id: I92b24131fd02f2e3c7fec966eea6f7a663310d40
+
+2019-04-08 17:04 +0000 [00588226c6] Dan Cropp <dan@amtelco.com>
+
+ * res_pjsip: Added a norefersub configuration setting
+
+ Added a new PJSIP global setting called norefersub.
+ Default is true to keep support working as before.
+
+ res_pjsip_refer: Configures PJSIP norefersub capability accordingly.
+
+ Checks the PJSIP global setting value.
+ If it is true (default) it adds the norefersub capability to PJSIP.
+ If it is false (disabled) it does not add the norefersub capability
+ to PJSIP.
+
+ This is useful for Cisco switches that do not follow RFC4488.
+
+ ASTERISK-28375 #close
+ Reported-by: Dan Cropp
+
+ Change-Id: I0b1c28ebc905d881f4a16e752715487a688b30e9
+
+2019-04-16 10:58 +0000 [33ed8fdadc] Sean Bright <sean.bright@gmail.com>
+
+ * res_mwi_devstate: Specify AST_MODFLAG_LOAD_ORDER to enable load priority
+
+ Suggested by abelbeck on the issue tracker.
+
+ ASTERISK~28384
+ Reported by: abelbeck
+
+ Change-Id: Icee0fff2b58dbfaa80f2b68270fe69dfb0463fc0
+
+2019-04-12 11:32 +0000 [2fe9fd5cf9] George Joseph <gjoseph@digium.com>
+
+ * CI: Move test group config files to Jenkins
+
+ One of the downaides of having things like test configuration
+ in the git repo is that it can't be changed at runtime. You have
+ to create a review for the changes and merge it mefore it will
+ take effect.
+
+ This review moves the data currently held in
+ tests/CI/periodic-dailyTestGroups.json and
+ tests/CI/gateTestGroups.json into a Jenkins Config File attached
+ to the job definitions. This allows us to alter it from the
+ Jenkins UI at runtime. The original files stay in the repo
+ as documentation.
+
+ Change-Id: I14b9702f6285ce1fb2420287ba0e7d3b59109763
+
+2019-04-13 13:36 +0000 [d2f519dcfa] Sean Bright <sean.bright@gmail.com>
+
+ * app_voicemail: Don't split mailbox options on comma
+
+ Because the per-mailbox options are the last thing on a line, don't look
+ for or stomp on any subsequent commas.
+
+ ASTERISK-27935 #close
+ Reported by: Sébastien Duthil
+
+ Change-Id: I07b2eb4a33c303d0c7114d5b906f8c067c60a153
+
+2019-04-12 09:33 +0000 [79a620080c] Sean Bright <sean.bright@gmail.com>
+
+ * pbx.c: Ignore dashes in extensions when using extenpatternmatchnew
+
+ Because hyphens are not matched literally in Asterisk dialplan, we need
+ to ignore them in our candidate extensions as well.
+
+ ASTERISK-17695 #close
+ Reported by: test011
+
+ Change-Id: I227f02301577b1633e8a55b9fe9dc149935c03f0
+
+2019-04-09 10:10 +0000 [fd2e8d0da7] Sean Bright <sean.bright@gmail.com>
+
+ * app_voicemail: Cleanup stale lock files on module load
+
+ If Asterisk crashes while a VM directory is locked, lock files in the VM
+ spool directory will not get properly cleaned up. We now clear them on
+ module load.
+
+ ASTERISK-20207 #close
+ Reported by: Steven Wheeler
+
+ Change-Id: If40ccd508e2f6e5ade94dde2f0bcef99056d0aaf
+
+2019-04-11 15:48 +0000 [9051e62523] Sean Bright <sean.bright@gmail.com>
+
+ * res_ael: Create consistent label names across reloads
+
+ Reset the internal counter that the AEL2 compiler uses for unique label
+ names before compiling. This keeps dialplan labels consistent across
+ reloads assuming the AEL2 has not changed.
+
+ ASTERISK-17799 #close
+ Reported by: Kirill Katsnelson
+
+ Change-Id: I30b3cc887d1ee0644d3f341e2fef16f525d7fae5
+
+2019-04-11 15:29 +0000 [237989a5e8] Sean Bright <sean.bright@gmail.com>
+
+ * res_ael: Use Gosub in for loop expressions
+
+ In AEL2, if a 'for' statement contains macro* calls, like:
+
+ for (&iterator(${TRY},A); "${A}" != ""; &iterate(A)) {
+
+ The AEL2 parser will translate these into calls to the deprecated Macro
+ dialplan application and use the antiquated pipe delimiter.
+
+ Instead, convert these into calls to the Gosub dialplan application and
+ use commas as argument separators.
+
+ ASTERISK-18593 #close
+ Reported by: Luke-Jr
+
+ * 'macro' in this context means AEL2 macros, not the 'Macro' application
+
+ Change-Id: I3d73716033b8e3e42e0209d355bf5f10c97045fc
+
+2019-04-11 11:03 +0000 [f66f21895f] Sean Bright <sean.bright@gmail.com>
+
+ * res_ael: Fix pattern matching against literal '+'
+
+ When generating the regular expression that matches against existing
+ extensions, we need to escape literal characters that can also be
+ regular expression metacharacters. This was already being done for '*'
+ but we need to do the same for '+'.
+
+ In passing, remove some unreachable code - strcmp() is already run
+ immediately when entering extension_matches().
+
+ ASTERISK-14939 #close
+ Reported by: klaus3000
+
+ Change-Id: I8d2cccb3479168fba1b0a6704c52198b396468f1
+
+2019-04-11 12:49 +0000 [7666fdc394] Sean Bright <sean.bright@gmail.com>
+
+ * pbx.c: Properly parse labels with leading digits
+
+ If the target of a Goto is a label that starts with a number, we
+ erroneously treat the leading digits as a priority.
+
+ ASTERISK-20182 #close
+ Reported by: Janu
+
+ Change-Id: Ia78408c0805a729103917247ecfc802f6fafc94b
+
+2019-04-10 18:07 +0000 [9a1e8090c3] Alexander Anikin <may213@yandex.ru>
+
+ * chan_ooh323: fix h323 log file path
+
+ Change h323 log path relative to AST_LOG_DIR instead of
+ /var/log/asterisk hardcoded
+ Add return back error message from OOH323EP initialize
+
+ ASTERISK-28348 #close
+
+ Reported by: Dmitry Shubin
+
+ Change-Id: Ib102dd36bbe6c2a7a4ce6870ae9110d9000d7e98
+
+2019-04-09 16:47 +0000 [cb24eb4cc2] Alexei Gradinari <alex2grad@gmail.com>
+
+ * res_pjsip: Fix transport_states ref leak
+
+ Add missing ao2_ref(transport_state, -1) while iterate on a transport_states
+ container.
+
+ Change-Id: I40e35b5a339121300c80075c30db47201a6c374e
+
+2019-04-01 14:42 +0000 [251348cbbb] Ben Ford <bford@digium.com>
+
+ * build: Revise CHANGES and UPGRADE.txt handling.
+
+ This changes the way that we handle adding changes to CHANGES and
+ UPGRADE.txt. The reason for this is because whenever someone needed to
+ make a change to one of these files and someone else had already done
+ so, you would run into merge conflicts. With this new setup, there will
+ never be merge conflicts since all changes will be documented in the
+ doc/<file>-staging directory. The release script is now responsible for
+ merging all of these changes into the appropriate files.
+
+ There is a special format that these files have to follow in order to be
+ parsed. The files do not need to have a meaningful name, but it is
+ strongly recommended. For example, if you made a change to pjsip, you
+ may have something like this "res_pjsip_relative_title", where
+ "relative_title" is something more descriptive than that. Inside each
+ file, you will need a subject line for your change, followed by a
+ description. There can be multiple subject lines. The file may look
+ something like this:
+
+ Subject: res_pjsip
+ Subject: Core
+
+ A description that explains the changes made and why. The release
+ script will handle the bulleting and section separators!
+
+ You can still separate with new lines within your description.
+
+ The headers ("Subject" and "Master-Only") are case sensative, but the
+ value for "Master-Only" ("true" or "True") is not.
+
+ For more information, check out the wiki page:
+ https://wiki.asterisk.org/wiki/display/AST/CHANGES+and+UPGRADE.txt
+
+ ASTERISK-28111 #close
+
+ Change-Id: I19cf4b569321c88155a65e9b0b80f6d58075dd47
+
+2019-04-04 16:02 +0000 [f9bb53a1dd] Chris-Savinovich <csavinovich@digium.com>
+
+ * config.c: Fix a crash in extconfig parsing
+
+ When extconfig.conf file is parsed, the code previously searched for
+ character comma without verifying if error (null or blank). This caused
+ a segmentation error.
+
+ Change-Id: Id76b452d8f330d11c2742c37232761ad71472a8b
+
+2019-04-03 10:55 +0000 [a9a0303544] Salah Ahmed <txrubel@gmail.com>
+
+ * chan_pjsip: DTMF Mode auto_info fallback lead to both inband and info
+
+ When the dtmf_mode on an endpoint is configured as "auto_info"
+ Asterisk will produce an inband DTMF tone alongside an INFO
+ message when sending DTMF.
+
+ ASTERISK-28371
+
+ Change-Id: I1380b82f006e110a1b83fbb50c9873edd13a5d9a
+
+2019-03-21 18:09 +0000 [707897e5f7] sungtae kim <sungtae@messagebird.com>
+
+ * main/json.c: Added app_name, app_data to channel type
+
+ It was difficult to check the channel's current application and
+ parameters using ARI for current channels. Added app_name, app_data
+ items to show the current application information.
+
+ ASTERISK-28343
+
+ Change-Id: Ia48972b3850e5099deab0faeaaf51223a1f2f38c
+
+2019-04-03 17:55 +0000 [b3faf7311a] George Joseph <gjoseph@digium.com>
+
+ * CI: Add --no-dev-mode option to buildAsterisk.sh
+
+ The new option disables dev mode, TEST_FRAMEWORK and
+ MALLOC_DEBUG making the build more production-like.
+
+ Change-Id: Ieb72497d4d91d5416684aaed702cc3f532099738
+
+2019-04-03 10:24 +0000 [4853fc2218] Ben Ford <bford@digium.com>
+
+ * build: Fix compiler warnings/errors.
+
+ The compiler complained about a couple of variables that weren't
+ initialized but were being used. Initializing them to NULL resolves the
+ warnings/errors.
+
+ ASTERISK-28362 #close
+
+ Change-Id: I6243afc5459b416edff6bbf571b0489f6b852e4b
+
+2019-03-27 14:30 +0000 [1c7bc63cff] Matthew Fredrickson <creslin@digium.com>
+
+ * res/res_rtp_asterisk: Enable rxjitter calculation for video
+
+ It looks like we're not properly calculating jitter values on received
+ video streams. This patch enables the code that does jitter calculations
+ for those streams.
+
+ Change-Id: Iaac985808829c8f034db8c57318789c4c8c11392
+
+2019-03-02 05:37 +0000 [fb7aa52ae0] sungtae kim <sungtae@messagebird.com>
+
+ * res/res_ari: Added ARI resource /ari/channels/{channelId}/rtp_statistics
+
+ Added ARI resource for channel statistics.
+ GET /ari/channels/{channelId}/rtp_statistics : It returns given
+ channel's rtp statistics detail.
+
+ ASTERISK-28320
+
+ Change-Id: I4343eec070438cec13f2a4f22e7fd9e574381376
+
+2019-03-26 13:07 +0000 [33647ebe2c] Sean Bright <sean.bright@gmail.com>
+
+ * pjproject: Add timer patch from pjproject r5934
+
+ ASTERISK-28161 #close
+ Reported by: Ross Beer
+
+ Change-Id: I65331d554695753005eaa66c1d5d4807fe9009c8
+
+2019-04-01 14:42 +0000 Asterisk Development Team <asteriskteam@digium.com>
+
+ * asterisk 13.26.0-rc1 Released.
+
+2019-03-26 14:56 +0000 [4de27f332d] Ben Ford <bford@digium.com>
+
+ * alembic: Fix errors during upgrade head.
+
+ When trying to upgrade using alembic, a couple different errors kept
+ popping up that prevented the upgrade. An additional parameter was
+ needed when changing the schema for mwi_subscribe_replaces_unsolicited
+ from an integer to an enum. When changing from a string to an enum, the
+ type needed to be cast for postgresql. The other issue was a parameter
+ being used during column creation that did not exist.
+
+ After fixing the upgrade process, it revealed errors with the downgrade
+ process. One was a variable not being defined in the downgrade function,
+ and the other was tables not existing when using MySQL. This was due to
+ a context check that should have encompassed MySQL, but in the end was
+ not doing so.
+
+ Change-Id: Ib4d70cf3ce5080023a50be496272a777b55d6c8e
+
+2019-03-27 11:03 +0000 [90c1653997] Ben Ford <bford@digium.com>
+
+ * build: Add staging directories for future changes.
+
+ This is the first step in changing the release process so that changes
+ made to the CHANGES and UPGRADE.txt files do not result in merge
+ conflicts every time multiple people modify these files. The changes
+ made will go in these new directories: doc/CHANGES-staging and
+ doc/UPGRADE-staging. The README.md files explain how things will work,
+ but here's a little overview. When you make a change that would go in
+ either CHANGES or UPGRADE.txt, this should instead be documented in a
+ new file in the doc/CHANGES-staging or doc/UPGRADE-staging directory,
+ respectively. The format will look like this:
+
+ Subject: res_pjsip
+
+ A description that explains the changes made and why. The release
+ script will handle the bulleting and section separators! The
+ 'Subject:' header is case-sensitive.
+
+ You can still separate with new lines within your description.
+
+ Subject: res_ari
+ Master-Only: true
+
+ You can have more than one subject, and they don't have to be the
+ same! Also, the 'Master-Only' header should always be true and is
+ also case-sensitive (but the value is not - you can have 'true' or
+ 'True'). This header will only ever be present in the master branch.
+
+ For more information, check out the wiki page:
+ https://wiki.asterisk.org/wiki/display/AST/CHANGES+and+UPGRADE.txt
+
+ This is an initial change for ASTERISK_28111. Functionally, this will
+ make no difference, but it will prep the directories for when the
+ changes from CHANGES and UPGRADE.txt are extracted.
+
+ Change-Id: I8d852f284f66ac456b26dcb899ee46babf7d15b6
+
+2019-03-25 18:05 +0000 [6e20e071a9] Alexei Gradinari <alex2grad@gmail.com>
+
+ * pjsip: restrict function PJSIP_PARSE_URI to parse only SIP/SIPS URIs
+
+ The next usage of PJSIP_PARSE_URI will crash asterisk
+ ${PJSIP_PARSE_URI(tel:+1234567890,host)}
+ or
+ ${PJSIP_PARSE_URI(192.168.1.1:5060,host)}
+
+ The function pjsip_parse_uri successfully parses then, but returns
+ struct pjsip_other_uri *.
+
+ This patch restricts parsing only SIP/SIPS URIs.
+
+ Change-Id: I16f255c2b86a80a67e9f9604b94b129a381dd25e
+
+2019-03-26 16:55 +0000 [4a6bd68869] Sean Bright <sean.bright@gmail.com>
+
+ * app_queue: Fix documentation for QUEUE_MEMBER function.
+
+ It was a copy/paste of the QUEUE_MEMBER_COUNT function's synopsis.
+
+ ASTERISK-20986 #close
+ Reported by: Olivier Krief
+
+ Change-Id: If51ec481feb35824a4e78ab5600b197b819b10be
+
+2019-03-25 06:34 +0000 [03708f435c] Joshua Colp <jcolp@digium.com>
+
+ * manager: Use separate lock for session event notification.
+
+ When notifying a manager session that new events were available
+ the same lock was used that was also held when doing things within
+ the session (such as sending events out). If the manager session
+ blocked for a period of time this would cause a back up of messages
+ in Stasis and would also block any other sessions from receiving
+ events.
+
+ This change adds a separate lock to the manager session which is
+ strictly used for notifying it that new events are available.
+
+ ASTERISK-28350
+
+ Change-Id: Ifbcac007faca9ad0231640f5e82a6ca9228f261b
+
+2019-03-06 16:21 +0000 [04d1bc3df0] sungtae kim <sungtae@messagebird.com>
+
+ * res/res_ari: Added timestamp as a requirement for all ARI events
+
+ Changed to requirement to having timestamp for all of ARI events.
+ The below ARI events were changed to having timestamp.
+ PlaybackStarted, PlaybackContinuing, PlaybackFinished,
+ RecordingStarted, RecordingFinished, RecordingFailed,
+ ApplicationReplaced, ApplicationMoveFailed
+
+ ASTERISK-28326
+
+ Change-Id: I382c2fef58f5fe107e1074869a6d05310accb41f
+
+2019-03-25 14:31 +0000 [53aa750839] Sean Bright <sean.bright@gmail.com>
+
+ * chan_sip: Ensure 'qualifygap' isn't negative
+
+ Passing negative intervals to the scheduler rips a hole in the
+ space-time continuum.
+
+ ASTERISK-25792 #close
+ Reported by: Paul Sandys
+
+ Change-Id: Ie706f21cee05f76ffb6f7d89e9c867930ee7bcd7
+
+2019-03-25 11:42 +0000 [3b1cf67fa9] Alexei Gradinari <alex2grad@gmail.com>
+
+ * res_config_odbc: set empty extended field as a single whitespace
+
+ If Realtime @ variable value is NULL or empty or contains only whitespaces
+ then when we try to retrieve it using PJSIP_ENDPOINT we get WARNING
+ pjsip_endpoint_function_read: Unknown property @my_var for PJSIP endpoint.
+ And the variable is missing in the result of CLI pjsip show endpoint.
+
+ This patch keeps empty sorcery extended field.
+
+ ASTERISK-28341 #close
+
+ Change-Id: I221fccc04cbfa2be17ce971f64ae0e74e465eea0
+
+2019-03-22 14:46 +0000 [4315634bc9] Matthew Fredrickson <creslin@digium.com>
+
+ * main/taskprocessor: Increase max name length of taskprocessors
+
+ Since the new names went in, the maximum taskprocessor name is too
+ short. This patch increases the name field to a length to better
+ handle the new names.
+
+ Change-Id: I32f32d6926f25c8ef5a91303fd2988d2c2858877
+
+2019-03-14 11:46 +0000 [69b194c837] George Joseph <gjoseph@digium.com>
+
+ * sorcery.c: Sorcery enhancements for wizard management
+
+ Added ability to specifiy a wizard is read-only when applying
+ it to a specific object type. This allows you to specify
+ create, update and delete callbacks for the wizard but limit
+ which object types can use them.
+
+ Added the ability to allow an object type to have multiple
+ wizards of the same type. This is indicated when a wizard
+ is added to a specific object type.
+
+ Added 3 new sorcery wizard functions:
+
+ * ast_sorcery_object_type_insert_wizard which does the same thing
+ as the existing ast_sorcery_insert_wizard_mapping function but
+ accepts the new read-only and allot-duplicates flags and also
+ returns the ast_sorcery_wizard structure used and it's internal
+ data structure. This allows immediate use of the wizard's
+ callbacks without having to register a "wizard mapped" observer.
+
+ * ast_sorcery_object_type_apply_wizard which does the same
+ thing as the existing ast_sorcery_apply_wizard_mapping function
+ but has the added capabilities of
+ ast_sorcery_object_type_insert_wizard.
+
+ * ast_sorcery_object_type_remove_wizard which removes a wizard
+ matching both its name and its original argument string.
+
+ * The original logic in __ast_sorcery_insert_wizard_mapping was moved
+ to __ast_sorcery_object_type_insert_wizard and enhanced for the
+ new capabilities, then __ast_sorcery_insert_wizard_mapping was
+ refactored to just call __ast_sorcery_insert_wizard_mapping.
+
+ * Added a unit test to test_sorcery.c to test the read-only
+ capability.
+
+ Change-Id: I40f35840252e4313d99e11dbd80e270a3aa10605
+
+2019-03-10 17:53 +0000 [dc94a3180e] sungtae kim <sungtae@messagebird.com>
+
+ * res/res_stasis: Fixed wrong StasisEnd timestamp
+
+ Because StasisEnd's timestamp created it's own timestamp, it makes
+ wrong timestamp, compare to other channel event(ChannelDestroyed).
+ Fixed to getting a timestamp from the Channel's timestamp.
+
+ ASTERISK-28333
+
+ Change-Id: I5eb8380fc472f1100535a6bc4983c64767026116
+
+2019-03-14 09:55 +0000 [cc954977eb] Sean Bright <sean.bright@gmail.com>
+
+ * vector: Add AST_VECTOR_COMPACT() to reclaim wasted space
+
+ This might be useful in situations where you are loading an undetermined number
+ of items into a vector and don't want to keep (potentially) 2x the necessary
+ memory around indefinitely.
+
+ Change-Id: I9711daa0fe01783fc6f04c5710eba84f2676d7b9
+
+2019-03-14 11:53 +0000 [f4bb80ba85] Richard Mudgett <rmudgett@digium.com>
+
+ * taskprocessor.c: Fix printf type mismatch
+
+ A size_t is not always an unsigned long.
+
+ * Use the %zu format specifier in the ast_cli() printf format string since
+ AST_VECTOR_SIZE() returns a size_t value.
+
+ Change-Id: Ib102dd36bbe6c2a7a4ce6870ae9110d978dd7e98
+
+2019-03-08 09:40 +0000 [c87158f2da] George Joseph <gjoseph@digium.com>
+
+ * app.c: Remove deletion of pool topic on mwi state delete
+
+ As part of an earlier voicemail refactor, ast_delete_mwi_state_full
+ was modified to remove the pool topic for a mailbox when the state
+ was deleted. This was an attempt to prevent stale topics from
+ accumulating when app_voicemail was reloaded and a mailbox went
+ away. Unfortunately because of the fact that when app_voicemail
+ reloads, ALL mailboxes are deleted then only current ones recreated,
+ topics were being removed from the pool that still had subscribers
+ on them, then recreated as new topics of the same name. So now
+ modules like res_pjsip_mwi are listening on a topic that will
+ never receive any messages because app_voicemail is publishing on
+ a different topic that happens to have the same name. The solutiuon
+ to this is not easy and given that accumulating topics for
+ deleted mailboxes is less evil that not sending NOTIFYs...
+
+ * Removed the call to stasis_topic_pool_delete_topic in
+ ast_delete_mwi_state_full.
+
+ Also:
+
+ * Fixed a topic reference leak in res_pjsip_mwi
+ mwi_stasis_subscription_alloc.
+
+ * Added some debugging to mwi_stasis_subscription_alloc,
+ stasis_topic_create, and topic_dtor.
+
+ * Fixed a topic reference leak in an error path in
+ internal_stasis_subscribe.
+
+ ASTERISK-28306
+ Reported-by: Jared Hull
+
+ Change-Id: Id7da0990b3ac4be4b58491536b35f41291247b27
+
+2019-03-13 06:05 +0000 [f0254cc1e9] Joshua Colp <jcolp@digium.com>
+
+ * stasis: Allow empty application arguments to move.
+
+ Change-Id: I1e4d37415f3034abe36496dc30209c2303e6af5c
+
+2019-03-06 07:20 +0000 [92d1889813] Dömsödi Gergely <doome@uhusystems.com>
+
+ * app_queue: fix ring_entry to access nativeformats with a channel lock
+
+ Fixes an intermittent segmentation fault which occured when accessing
+ nativeformats of a channel which entered into a queue.
+
+ ASTERISK-27964
+ Reported by: Francisco Seratti
+
+ Change-Id: Ic87fa7a363f3b487c24ce07032f4b2201c22db9e
+
+2019-03-12 15:38 +0000 [a96729c1cd] Kevin Harwell <kharwell@digium.com>
+
+ * AMI/ARI: Bump non-breaking version numbers
+
+ Increasing the non-breaking AMI and ARI version numbers due to changes and
+ additions in those API's. Note, some changes may be forthcoming (will be added
+ between now and the next release of Asterisk), thus not listed here. As well
+ a few changes listed below may have been released in a previous release of
+ Asterisk, but the API version numbers were not increased at that time, so
+ including here.
+
+ AMI:
+
+ * res_pjsip: option for ContactStatus event updates - 4a8564c
+
+ ARI:
+
+ * bridging: Add creation timestamps - 4dd4dbd
+ * res_stasis: Add ability to switch applications - 65170ba
+ * ARI event type filtering - da93d17
+ * Added ARI resource /ari/asterisk/ping - 67d587f
+
+ ASTERISK-28314
+
+ Change-Id: I96951b19c27c196e410b09fe82b00c8ca328cccc
+
+2019-03-12 13:25 +0000 [ee75df6ec9] George Joseph <gjoseph@digium.com>
+
+ * Makefile.moddir_rules: Pass PJPROJECT_BUNDLED to download_externals
+
+ The download_externals script wasn't getting the PJPROJECT_BUNDLED
+ environment variable passed down to it so it wasn't downloading
+ the appropriate variant of res_digium_phone. This could cause
+ crashes in the DPMA.
+
+ Change-Id: I5daa9369c7af1fd556d892e89a85f279a2533425
+
+2019-03-07 13:48 +0000 [29d2d22e82] Chris-Savinovich <csavinovich@digium.com>
+
+ * partial-inlining: disable partial-inlining if gcc>=8.2.1
+
+ Apply flag -fno-partial-inlining on default optimization if and only if
+ gcc version >= 8.2.1 (this is the current ver on Fedora and Ubuntu).
+ This is done to avoid a bug that causes arithmetic calculations to fail
+ if the following conditions are met:
+ 1. TEST_FRAMEWORK on
+ 2. DONT_OPTIMIZE off
+ 3. Fedora and Ubuntu
+ 4. GCC 8.2.1
+ 5. There must exist a certain combination of multithreading.
+ 6. Optimization level -O2 and -O3
+ 7. Flag -fpartial-inline activated (default when optimization level>=2)
+ The following link points to a similar gcc bug reported in 2015. This leads me
+ to believe the bug has regressed. Note I am not able to replicate this bug
+ in an environment other than Asterisk + Test Framework + Test_cel because the
+ multithreading combination that causes it seems to be unique. Therefore I
+ am temporarily abandoning any thoughts of reporting the new occurrence of this
+ bug to gcc.gnu.org. https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65307
+
+ Change-Id: Ibd1afe60e0a38b88e85fdcd9b051004601c2f102
+
+2019-03-07 06:28 +0000 [07b3253155] Joshua Colp <jcolp@digium.com>
+
+ * stasis: Improve topic/subscription names and statistics.
+
+ Topic names now follow: <subsystem>:<functionality>[/<object>]
+
+ This ensures that they are all unique, and also provides better
+ insight in to what each topic is for.
+
+ Subscriber ids now also use the main topic name they are
+ subscribed to and an incrementing integer as their identifier to
+ make it easier to understand what the subscription is primarily
+ responsible for.
+
+ Both the CLI commands for listing topic and subscription statistics
+ now sort to make it a bit easier to see what is going on.
+
+ Subscriptions will now show all topics that they are receiving messages
+ from, not just the main topic they were subscribed to.
+
+ ASTERISK-28335
+
+ Change-Id: I484e971a38c3640f2bd156282e532eed84bf220d
+
+2019-03-03 09:20 +0000 [4bdf24a689] sungtae kim <sungtae@messagebird.com>
+
+ * res/res_rtp_asterisk.c: Fixing possible divide by zero
+
+ Currently, when the Asterisk calculates rtp statistics, it uses
+ sample_count as a unsigned integer parameter. This would be fine
+ for most of cases, but in case of large enough number of sample_count,
+ this might be causing the divide by zero error.
+
+ ASTERISK-28321
+
+ Change-Id: If7e0629abaceddd2166eb012456c53033ea26249
+
+2019-03-09 08:39 +0000 [68d2304621] cirillor <cirillor@lbv.org.br>
+
+ * Variable ALTCONF ignored when service is used in Debian
+
+ When variable ALTCONF is defined, the command start prints the message
+ "Unable to open specified master config file '"/etc/asterisk/asteris..."
+ and use default configurations.
+
+ ASTERISK-28332
+
+ Change-Id: I7595e582a0ee2c1051ea35435e247e27906957ef
+
+2019-03-04 01:50 +0000 [cbc704c5ec] Torrey Searle <torrey@voxbone.com>
+
+ * chan_pjsip: add a flag to ignore 183 responses if no SDP present
+
+ chan_sip will always ignore 183 responses that do not contain SDP
+ however, chan_pjsip will currently always translate it into a
+ 183 with SDP. This new flag allows chan_pjsip to have the same
+ behavior as chan_sip.
+
+ ASTERISK-28322 #close
+
+ Change-Id: If81cfaa17c11b6ac703e3d71696f259d86c6be4a
+
+2019-03-07 17:15 +0000 [b4bba8f217] Sean Bright <sean.bright@gmail.com>
+
+ * app_meetme: Don't mute joining admins if conference is muted
+
+ ASTERISK-28328 #close
+
+ Change-Id: I4f6069fb34923b7521520c2a205a1e56227e592b
+
+2019-03-06 15:04 +0000 [1cb6466268] Sean Bright <sean.bright@gmail.com>
+
+ * Replace calls to strtok() with strtok_r()
+
+ strtok() uses a static buffer, making it not thread safe.
+
+ Change-Id: Icce265153e1e65adafa8849334438ab6d190e541
+
+2019-03-07 16:05 +0000 [9a4027ad41] Sean Bright <sean.bright@gmail.com>
+
+ * samples: Fix comment typo in pjsip.conf.sample
+
+ Change-Id: I84a45c3d9fd26ca61aca99927eec83b57f1de857
+
+2019-02-28 12:03 +0000 [65170ba8f0] Ben Ford <bford@digium.com>
+
+ * res_stasis: Add ability to switch applications.
+
+ Added the ability to move between Stasis applications within Stasis.
+ This can be done by calling 'move' in an application, providing (at
+ minimum) the channel's id and the application to switch to. If the
+ application is not registered or active, nothing will happen and the
+ channel will remain in the current application, and an event will be
+ triggered to let the application know that the move failed. The event
+ name is "ApplicationMoveFailed", and provides the "destination" that the
+ channel was attempting to move to, as well as the usual channel
+ information. Optionally, a list of arguments can be passed to the
+ function call for the receiving application. A full example of a 'move'
+ call would look like this:
+
+ client.channels.move(channelId, app, appArgs)
+
+ The control object used to control the channel in Stasis can now switch
+ which application it belongs to, rather than belonging to one Stasis
+ application for its lifetime. This allows us to use the same control
+ object instead of having to tear down the current one and create
+ another.
+
+ ASTERISK-28267 #close
+
+ Change-Id: I43d12b10045a98a8d42541889b85695be26f288a
+
+2019-03-05 08:15 +0000 [5065f31fca] cirillor <cirillor@lbv.org.br>
+
+ * chan_dahdi: Add logical group at DAHDIChannel event and CHANNEL function
+
+ Add logical group at DAHDIChannel event
+ and create "dahdi_group" at CHANNEL function.
+
+ ASTERISK-28317
+
+ Change-Id: Ic1f834cd53982a9707a9748395ee746d6575086a
+
+2019-03-04 16:05 +0000 [cb6a976656] Sean Bright <sean.bright@gmail.com>
+
+ * app_queue: Handle empty 'interface' in queue member config
+
+ While the 'interface' column is a NOT NULL, the empty string is still
+ allowed. res_config_odbc treats the empty string as a NULL and we crash
+ when trying to dereference.
+
+ Also cleaned up an adjacent error message for consistency.
+
+ ASTERISK-28168 #close
+
+ Change-Id: I55e012b540fbcda99bb40bede3099b7ae5db8202
+
+2019-03-04 12:36 +0000 [7bcbc0bdfd] Sean Bright <sean.bright@gmail.com>
+
+ * sip_to_pjsip: Make multiline comment parsing consistent with Asterisk
+
+ In Asterisk configuration, a multiline comment starts with ;-- as long as it is
+ not followed by another dash (i.e. ;--- is not a multiline comment).
+
+ ASTERISK-28323 #close
+
+ Change-Id: I32dc38e0fac01d3c0805d27d35d2365a7c37ca72
+
+2019-02-28 06:24 +0000 [1f3d6e1ebf] Joshua Colp <jcolp@digium.com>
+
+ * basic-pbx: Update configuration to work with current modules.
+
+ The res_pjsip_websocket module requires the res_http_websocket
+ module so ensure it is loaded. As well the res_pjsip_notify
+ module needs the pjsip_notify.conf configuration file so
+ ensure it is installed.
+
+ ASTERISK-28272
+
+ Change-Id: I261659b84e7a6ac4cb49990d9badb4b2ad01bacd
+
+2019-02-08 15:32 +0000 [4dd4dbddbb] sungtae kim <sungtae@messagebird.com>
+
+ * bridging: Add creation timestamps
+
+ This small feature will help to checking the bridge's status to
+ figure out which bridge is in old/zombie or not. Also added
+ detail items for the 'bridge show *' cli to provide more detail
+ info. And added creation item to the ARI as well.
+
+ ASTERISK-28279
+
+ Change-Id: I460238c488eca4d216b9176576211cb03286e040
+
+2019-02-28 10:01 +0000 [5821090661] Sean Bright <sean.bright@gmail.com>
+
+ * res_pjsip_diversion: Use static pj_str_t for Diversion header names
+
+ PJSIP assumes that these header names are not allocated, and does not
+ clone the name strings when reusing headers.
+
+ Block unload of res_pjsip_diversion until shutdown to ensure static
+ memory stays valid.
+
+ ASTERISK-28312 #close
+
+ Change-Id: Ibd6ea55ec4a604bbd43ac07f8d0b54da2c39b8b9
+
+2019-02-28 15:36 +0000 [aa8ab603b0] Sean Bright <sean.bright@gmail.com>
+
+ * menuselect: Add license header to menuselect_gtk.c
+
+ This file was added to the Subversion repository on 2007-03-15 by
+ Russell Bryant, a Digium employee at the time.
+
+ ASTERISK-24173 #close
+
+ Change-Id: Ie866fa9d31d550467613d362b35b03c031ee594d
+
+2019-02-27 19:09 +0000 [c38c8db14a] Sean Bright <sean.bright@gmail.com>
+
+ * res_config_odbc: Avoid deadlock when max_connections = 1
+
+ Rather than calling ast_odbc_find_table() in the prepare callback, call
+ it beforehand and pass it in to the callback to avoid the need for a
+ second connection.
+
+ ASTERISK-28166 #close
+
+ Change-Id: I6f8a0b9990d636fd6bc1a92ed70f7050d2436202
+
+2019-02-28 06:51 +0000 [1b3a489204] Sean Bright <sean.bright@gmail.com>
+
+ * Revert "pjsip_message_filter: Only do interface lookup for wildcard addresses."
+
+ This reverts commit d524ad523d0d32babba309810b5bccd09cb7f467.
+
+ Reason for revert: This causes Contact and Via headers to have the wrong
+ transport address.
+
+ ASTERISK-28309 #close
+
+ Change-Id: Ibba4d6176f68e39279fcd9a545f81d56e747bed8
+
+2019-02-28 05:28 +0000 [2f4a15101b] Joshua Colp <jcolp@digium.com>
+
+ * Revert "http.c: Support separated HTTP request"
+
+ This reverts commit 148ddfba9afc83b102fadabecf67d48a65e30e4a.
+
+ Reason for revert: Under 13 this change appears to break HTTP
+ body processing, causing test failures and problems.
+
+ Change-Id: Ica47ca2cac1b21c6ef907c1ffbfaf2cebdea8e80
+
+2019-02-27 19:52 +0000 [85b1f8f886] Sean Bright <sean.bright@gmail.com>
+
+ * res_pjsip_config_wizard: Don't crash if misconfigured
+
+ If both send_registrations and send_auth are both set to yes,
+ outbound_auth/username must be set or we crash.
+
+ ASTERISK-27992 #close
+
+ Change-Id: I6418d56de1ae53f80393b314c2584048fbf7f11d
+
+2019-02-13 15:24 +0000 [41effb7d4d] Kevin Harwell <kharwell@digium.com>
+
+ * res_pjsip_registrar: blocked threads on reliable transport shutdown take 3
+
+ When a contact was removed by the registrar it did not always check to see if
+ the circumstances involved a monitored reliable transport. For instance, if the
+ 'remove_existing' option was set to 'true' then when existing contacts were
+ removed due to 'max_contacts' being reached, those existing contacts being
+ removed did not unregister the transport monitor.
+
+ Also, it was possible to add more than one monitor on a reliable transport for
+ a given aor and contact.
+
+ This patch makes it so all contact removals done by the registrar also remove
+ any associated transport monitors if necessary. It also makes it so duplicate
+ monitors cannot be added for a given transport.
+
+ ASTERISK-28213
+
+ Change-Id: I94b06f9026ed177d6adfd538317c784a42c1b17a
+
+2019-02-27 10:37 +0000 [5ce084579f] George Joseph <gjoseph@digium.com>
+
+ * CI: Update jenkinsfiles with new Gerrit URLs
+
+ The recent upgrade of Gerrit to 2.16 elimiated referencing a
+ repository in a way the jenkinsfiles were relying on so
+ the URL references were changed to a more consistent and supported
+ format.
+
+ Change-Id: I2e8e3f213b9a96bb1b27665eca4a9a24bc49820e
+
+2019-02-20 13:15 +0000 [4aa55a8ca6] George Joseph <gjoseph@digium.com>
+
+ * res_mwi_devstate.c: New module to allow presence subs to VM boxes
+
+ This module allows presence subscriptions to voicemail boxes. This
+ allows common BLF keys to act as voicemail waiting indicators.
+
+ ASTERISK-28301
+
+ Change-Id: I62a246c24f3d7d432e33e22d7a4a57c15c292fdd
+
+2019-02-25 09:41 +0000 [e9bd8c4204] Torrey Searle <torrey@voxbone.com>
+
+ * res/res_rtp_asterisk: smoother can cause wrong timestamps if dtmf happen
+
+ Delivery timeval in the smoother object will fall behind while a DTMF is
+ being generated. This can eventually lead to invalid rtp timestamps.
+ To prevent this from happening the smoother needs to be reset after every
+ DTMF to keep the timing up to date.
+
+ ASTERISK-28303 #close
+
+ Change-Id: Iaba3f7b428ebd72a4caa90e13b829ab4f088310f
+
+2019-02-25 15:32 +0000 [ec7f92c4ef] Kevin Harwell <kharwell@digium.com>
+
+ * rest-api-templates/asterisk_processor - replace http line breaks with line feed
+
+ Including line breaks (<br>, <br/>, <br />) in certain parts of the rest-api
+ json definition (e.g. summary, notes) displays them correctly in swagger.
+ However, when the field gets converted to the wiki format those breaks get
+ escaped and show up in the text as the actual string literal "<br>" etc...
+
+ This patch makes it so when converting to the wiki format it replaces all line
+ break values (<br>, etc...) with line feeds ('\n').
+
+ Change-Id: Ie1c9faa0d1c5d622804cc0a21ce769095b08aa3d
+
+2019-02-25 06:10 +0000 [9c94c027cd] Joshua C. Colp <jcolp@digium.com>
+
+ * res_ari_applications: Fix incorrect call to ao2_lock.
+
+ When listing the applications the apps lock was incorrectly
+ locked twice instead of being locked and then unlocked.
+
+ ASTERISK-28302
+
+ Change-Id: If7d064592a9e88c0f1049214c50e02be6dabf79e
+
+2019-01-09 04:27 +0000 [148ddfba9a] Sungtae Kim <sungtae@messagebird.com>
+
+ * http.c: Support separated HTTP request
+
+ Currently, the Asterisk does not support seperated HTTP request.
+ This patch make the Asterisk enables to wait lest part of HTTP request.
+ Also increases acceptable HTTP body length to 40k to support more
+ larger request.
+
+ ASTERISK-28236
+
+ Change-Id: I48a401aa64a21c3b37bf3cb4e0486d64b7dd8aa1
+
+2019-02-20 12:48 +0000 [23ffc3af5c] George Joseph <gjoseph@digium.com>
+
+ * Core: Increase AST_PBX_MAX_STACK to 512 if not LOW_MEMORY
+
+ The current settings AST_PBX_MAX_STACK is 128 entries which is
+ too low for some FreePBX installations with complex parking
+ arrangements. Increased to 512 if LOW_MEMORY is not defined.
+
+ ASTERISK-28300
+
+ Change-Id: I7c4b540bc92e6642df0f3da639b003f7da8b1299
+
+2019-02-20 12:22 +0000 [82758295df] Joshua C. Colp <jcolp@digium.com>
+
+ * stasis: Store subscriber uniqueids with topic statistics.
+
+ This change provides an easier mechanism to determine which
+ subscribers are subscribed to a topic. Using this you can
+ inspect the specific subscribers for further details.
+
+ Change-Id: I8deea21703cd5c5357b85593b46c3eaf24e18c0c
+
+2019-02-15 12:53 +0000 [bae3fd04c1] George Joseph <gjoseph@digium.com>
+
+ * taskprocessor: Enable subsystems and overload by subsystem
+
+ To prevent one subsystem's taskprocessors from causing others
+ to stall, new capabilities have been added to taskprocessors.
+
+ * Any taskprocessor name that has a '/' will have the part
+ before the '/' saved as its "subsystem".
+ Examples:
+ "sorcery/acl-0000006a" and "sorcery/aor-00000019"
+ will be grouped to subsystem "sorcery".
+ "pjsip/distributor-00000025" and "pjsip/distributor-00000026"
+ will bn grouped to subsystem "pjsip".
+ Taskprocessors with no '/' have an empty subsystem.
+
+ * When a taskprocessor enters high-water alert status and it
+ has a non-empty subsystem, the subsystem alert count will
+ be incremented.
+
+ * When a taskprocessor leaves high-water alert status and it
+ has a non-empty subsystem, the subsystem alert count will be
+ decremented.
+
+ * A new api ast_taskprocessor_get_subsystem_alert() has been
+ added that returns the number of taskprocessors in alert for
+ the subsystem.
+
+ * A new CLI command "core show taskprocessor alerted subsystems"
+ has been added.
+
+ * A new unit test was addded.
+
+ REMINDER: The taskprocessor code itself doesn't take any action
+ based on high-water alerts or overloading. It's up to taskprocessor
+ users to check and take action themselves. Currently only the pjsip
+ distributor does this.
+
+ * A new pjsip/global option "taskprocessor_overload_trigger"
+ has been added that allows the user to select the trigger
+ mechanism the distributor uses to pause accepting new requests.
+ "none": Don't pause on any overload condition.
+ "global": Pause on ANY taskprocessor overload (the default and
+ current behavior)
+ "pjsip_only": Pause only on pjsip taskprocessor overloads.
+
+ * The core pjsip pool was renamed from "SIP" to "pjsip" so it can
+ be properly grouped into the "pjsip" subsystem.
+
+ * stasis taskprocessor names were changed to "stasis" as the
+ subsystem.
+
+ * Sorcery core taskprocessor names were changed to "sorcery" to
+ match the object taskprocessors.
+
+ Change-Id: I8c19068bb2fc26610a9f0b8624bdf577a04fcd56
+
+2019-02-08 13:07 +0000 [da93d17af8] Kevin Harwell <kharwell@digium.com>
+
+ * ARI event type filtering
+
+ Event type filtering is now enabled, and configurable per application. An app is
+ now able to specify which events are sent to the application by configuring an
+ allowed and/or disallowed list(s). This can be done by issuing the following:
+
+ PUT /applications/{applicationName}/eventFilter
+
+ And then enumerating the allowed/disallowed event types as a body parameter.
+
+ ASTERISK-28106
+
+ Change-Id: I9671ba1fcdb3b6c830b553d4c5365aed5d588d5b
+
+2019-02-14 17:09 +0000 [f6689547ae] sungtae kim <sungtae@messagebird.com>
+
+ * chan_pjsip: Changed to continued after invalid media for pjsip show channelstats
+
+ Currently, the pjsip show channelstats cli does not show channel's
+ stats after hits the invalid channel info. This makes hard to use
+ this cli. Changed to keep iterate after hits the invalid channel
+ info.
+
+ ASTERISK-28292
+
+ Change-Id: I3efdff1c9e1b1efd3c971fb82ae77aa133a6f43c
+
+2019-02-19 10:06 +0000 [46df13e2d0] Joshua Colp <jcolp@digium.com>
+
+ * CI: Use tmpfs option to Docker instead of mount.
+
+ Some tests require Asterisk to execute scripts which
+ are stored in /tmp. When mount is used for tmpfs there
+ is no ability to allow scripts to be executed from
+ that location.
+
+ This change switches to using tmpfs which can be told
+ to allow executables to be run from /tmp.
+
+ Change-Id: I0e598ca2b76af1f7f2d29f0da7b1731a214a291a
+
+2019-02-08 13:01 +0000 [b2d3c9d2de] Kevin Harwell <kharwell@digium.com>
+
+ * json.c/strings.c - Add a couple of utility functions
+
+ Added 'ast_json_object_string_get' to the JSON wrapper in order to make it a
+ little easier to retrieve a string field from the JSON object.
+
+ Also added an 'ast_strings_equal' function that safely checks (checks for NULLs)
+ for equality between two strings.
+
+ Change-Id: I26f0a16d61537505eb41b4b05ef2e6d67fc2541b
+
+2019-02-14 10:53 +0000 [3e922adcc1] Chris Savinovich <csavinovich@digium.com>
+
+ * Revert "Test_cel: Fails when DONT_OPTIMIZE is off"
+
+ This reverts commit 9b85882f04ed4b48e7bb318dbbb969d90159f13a.
+
+ Change-Id: I36cf159abb103502e48d6f8fd70d560d7f0bda56
+
+2019-02-12 03:50 +0000 [7c17bc75ed] Torrey Searle <torrey@voxbone.com>
+
+ * res/res_rtp_asterisk: clear smoother when local bridging
+
+ p2p_write updates txformat but doesn't require a smoother. If a smoother
+ was created by another bridge type the smoother could fall out of date causing
+ one way audio issues. To prevent this the smoother is now destroyed on the
+ start of native bridge.
+
+ ASTERISK-28284 #close
+
+ Change-Id: I84e67f144963787fff9b4d79ac500514fb40cdc6
+
+2019-02-13 07:36 +0000 [2db81ee2b4] Paulo Vicentini <paulo.vicentini@gmail.com>
+
+ * res/res_pjsip: Resources (udptl fd) are leaking for T.38 calls
+
+ Fix unbalanced references for datastore t38_session_media
+
+ ASTERISK-28288
+
+ Change-Id: Id6dceceb06651b03f611bf33deb3061022fe5d0c
+
+2019-02-07 09:52 +0000 [9a6464e54f] Joshua Colp <jcolp@digium.com>
+
+ * ci: Rerun unit tests when non-code changes occur.
+
+ This change makes it so that even if non-code changes
+ occur (such as commit message changing) unit tests
+ will still be run and result in a verification.
+
+ ASTERISK-28251
+
+ Change-Id: I6491fff7c93e5d5cd8e41054486968bf66c4f608
+
+2019-01-31 13:29 +0000 [3974633c00] Kevin Harwell <kharwell@digium.com>
+
+ * res_pjsip_registrar: lock transport monitor when setting 'removing' flag
+
+ A previous patch attempt to mitigate blocked threads on transport shutdown for
+ a given contact. It was thought that a second lock could be avoided by checking
+ the 'removing' flag on the transport monitor twice (once before and once after
+ the normal named aor locking). However as with usual threading issues if the
+ timing was right the original problem still occured.
+
+ This patch adds locking around the first 'removing' flag check and set, thus
+ nullifying the secondary check, so it was removed.
+
+ ASTERISK-28213
+
+ Change-Id: Iaa8e36e5311789549b76d8de42dfcea96013b2ed
+
+2019-02-06 06:16 +0000 [a4d930c2ed] Joshua Colp <jcolp@digium.com>
+
+ * res_odbc: Add basic query logging.
+
+ When Asterisk is connected and used with a database the response
+ time of the database can cause problems in Asterisk if it is long.
+ Normally the only way to see this problem would be to retrieve a
+ backtrace from Asterisk and examine where things are blocked, or
+ examine the database to see if there is any indication of a
+ problem.
+
+ This change adds some basic query logging to make it easier to
+ investigate such a problem. When logging is enabled res_odbc will
+ now keep track of the number of queries executed, as well as the
+ query that has taken the longest time to execute. There is also
+ an option which will cause a WARNING message to be output if a
+ query takes longer than a configurable amount of time to execute.
+
+ This makes it easier and clearer for users that their database may
+ be experiencing a problem that could impact Asterisk.
+
+ ASTERISK-28277
+
+ Change-Id: I173cf4928b10754478a6a8c27dfa96ede0f058a6
+
+2018-12-05 16:09 +0000 [f16d711679] Sungtae Kim <pchero21@gmail.com>
+
+ * main/cdr: Fixed cdr start overwriting
+
+ The CDR was overwriting the start time when the call continued the
+ dialplan from the ARI stasis or a Local channel was originated.
+
+ This change fixes this by no longer reinitializing the CDR when
+ transitioning out of the dialed pending state to the single state.
+
+ ASTERISK-28181
+
+ Change-Id: I921bc04064b6cff1deb2eea56a94d86489561cdc
+
+2019-02-04 13:55 +0000 [e70f8f7c20] Sean Bright <sean.bright@gmail.com>
+
+ * sounds: Sort 'core show sounds' output
+
+ Change-Id: Ib39052a745040f75eb635f15a042da15b20e22ab
+
+2019-02-06 11:01 +0000 Asterisk Development Team <asteriskteam@digium.com>
+
+ * asterisk 13.25.0-rc1 Released.
+
+2019-01-28 17:21 +0000 [67d587f47d] sungtae kim <sungtae@messagebird.com>
+
+ * Added ARI resource /ari/asterisk/ping
+
+ Added ARI resource.
+ GET /ari/asterisk/ping : It returns "pong" message with timestamp
+ and asterisk id. It would be useful for simple heath check.
+
+ Change-Id: I8d24e1dcc96f60f73437c68d9463ed746f688b29
+
+2019-02-04 07:09 +0000 [8222e8ee2f] George Joseph <gjoseph@digium.com>
+
+ * bundled-jansson: On OpenSuse Leap libjansson.a was placed in lib64
+
+ On OpenSuse Leap, libjansson.a is installed in
+ third-party/jansson/dest/lib64 instead of lib (which is where
+ the top-level makeopts looks). This causes a link failure.
+
+ * Updated jansson/Makefile to add an explicit --libdir to force
+ the installation to third-party/jansson/dest/lib.
+
+ ASTERISK-28271
+ Reported by: David Wilcox
+
+ Change-Id: Ibf8af75e5da13562105fcc39ed898c6ef0b5a5f3
+
+2019-01-29 10:48 +0000 [26a04477f4] Ben Ford <bford@digium.com>
+
+ * res_stasis: Auto-create context and extens on Stasis app launch.
+
+ At AstriCon, there was a strong desire for the ability to completely
+ bypass dialplan when using ARI. This is possible through the automatic
+ creation of a context and a couple of extensions whenever an application
+ is started.
+
+ For example, if you have an application named 'ari-example', a context
+ named 'stasis-ari-example' will be automatically created whenever this
+ application is started as long as one does not already exist. Two
+ extensions (a match-all extension for Stasis and a 'h' extension) are
+ created within this context. Any endpoint that registers to Asterisk
+ within this context will send all calls to the corresponding Stasis
+ application. When the application is destroyed, the context is removed.
+
+ ASTERISK-28104 #close
+
+ Change-Id: Ie35bd93075e05b05e3ae129a83c9426931b7ebac
+
+2019-01-15 17:20 +0000 [5a0a4c2efa] Kevin Harwell <kharwell@digium.com>
+
+ * pjsip/config_global: regcontext context not created
+
+ The context specified by 'regcontext' was not being created, so when Asterisk
+ attempted to later dynamically add an extension it would fail. This patch now
+ creates the context if a 'regcontext' is specified.
+
+ ASTERISK-28238
+
+ Change-Id: I0f36cf4ab0a93ff4b1cc5548d617ecfd45e09265
+
+2019-01-22 09:02 +0000 [66982824bf] George Joseph <gjoseph@digium.com>
+
+ * media_index.c: Refactored so it doesn't cache the index
+
+ Testing revealed that the cache added no benefit but that it could
+ consume excessive memory.
+
+ Two new index related functions were created:
+ ast_sounds_get_index_for_file() and ast_media_index_update_for_file()
+ which restrict index updating to specific sound files.
+
+ The original ast_sounds_get_index() and ast_media_index_update()
+ calls are still available but since they no longer cache the results
+ internally, developers should re-use an index they may already have
+ instead of calling ast_sounds_get_index() repeatedly. If information
+ for only a single file is needed, ast_sounds_get_index_for_file()
+ should be called instead of ast_sounds_get_index().
+
+ The media_index directory scan code was elimininated in favor of
+ using the existing ast_file_read_dirs() function.
+
+ Since there's no more cache, ast_sounds_index_init now only
+ registers the sounds cli commands instead of generating the
+ initial index and subscribing to stasis format register/unregister
+ messages.
+
+ ast_sounds_reindex() is now a no-op but left for backwards
+ compatibility.
+
+ loader.c no longer registers "sounds" as a special reload target.
+
+ Both the sounds cli commands and the sounds ari resources were
+ refactored to only call ast_sounds_get_index() once per invocation
+ and to use ast_sounds_get_index_for_file() when a specific sound
+ file is requested.
+
+ Change-Id: I1cef327ba1b0648d85d218b70ce469ad07f4aa8d
+
+2018-11-19 18:44 +0000 [a618d20ca4] Giuseppe Sucameli <sucameli@netresults.it>
+
+ * Fix deadlock handling subscribe req during res_parking reload
+
+ Split destroy_hint method to separate hint removal and extension hint
+ state changed callback, the latter now called via stasis.
+ This avoids deadlock between res_parking reload that is removing the
+ parking lot and the related hint and subscribe requests coming for the
+ same parking lot.
+
+ ASTERISK-28173
+
+ Change-Id: I5b03c3455b3b12b6f83cea4cc34f4b4b20444f7e
+
+2019-01-25 12:27 +0000 [62faecd60d] Kevin Harwell <kharwell@digium.com>
+
+ * codecs.conf.sample: update codec opus docs
+
+ The option value "sdp" for some of the settings was removed a while back,
+ however the sample conf was not updated.
+
+ This patch removes any wording with regards to the old "sdp" option value,
+ and adjusts the defaults to what they are now.
+
+ ASTERISK-28263
+
+ Change-Id: I41bfa44e9f69446bcc5c8fd92e3675c676fdc445
+
+2019-01-23 07:59 +0000 [e456600575] Jean Aunis <jean.aunis@prescom.fr>
+
+ * build : Fix cross-compilation errors
+
+ Bundled pjproject and jansson must be configured with the host and build
+ parameters provided to the configure script.
+
+ ASTERISK-28250
+
+ Change-Id: If0a76e52a87d4ab82b7d4c72d27d8759ca931880
+
+2019-01-22 09:24 +0000 [9eb3a7a82c] eyalhasson <eyal@kolhl.com>
+
+ * format_g726: add support for seeking
+
+ Added support for the seek function in format_g726
+ so playback can start from anywhere.
+ Before the fix, playback of g726 files
+ always started from the beginning.
+
+ ASTERISK-28246
+
+ Change-Id: I626235bc4642df1479050d3d06828412603a9b40
+
+2018-11-08 04:21 +0000 [c01d2f66ee] Paulo Vicentini <paulo.vicentini@gmail.com>
+
+ * res/res_pjsip: Fix crash due to misuse of session->media between threads.
+
+ This patch makes sure that thread running ast_taskprocessor_execute
+ cannot suddenly dispose the session->media object making the other
+ threads (running pbx_thread / bridge_channel_ind_thread) crash when they
+ try to access the pointer to invalid memory. We were experiencing a crash due
+ to a misuse of session->media container between threads running
+ (bridge_channel_ind_thread/pbx_thread) and the thread running
+ ast_taskprocessor_execute. Depending on the SIP flow (during a disconnection)
+ and the threads' code path, the session->media container was being destroyed
+ (and set to NULL) by the thread running ast_taskprocessor_execute while the
+ thread running t38_framehook_read was still referring to it.
+ Now res_pjsip_t38 is referring a session_media in a datastore.
+
+ ASTERISK-28156
+
+ Change-Id: Ia92e2389b8d804bf205473e92ec06217e87ce237
+
+2019-01-23 04:45 +0000 [59ae83d07e] Jeremy Lainé <jeremy.laine@m4x.org>
+
+ * res_http_websocket: ensure control frames do not interfere with data
+
+ Control frames (PING / PONG / CLOSE) can be received in the middle of a
+ fragmented message. In order to ensure they do not interfere with the
+ reassembly buffer, we exit early and do not return the payload to the
+ caller.
+
+ ASTERISK-28257 #close
+
+ Change-Id: Ia5367144fe08ac6141bba3309517a48ec7f013bc
+
+2019-01-22 15:03 +0000 [8791dda672] Gerald Schnabel <gs@starface.de>
+
+ * manager_channels: Fix throwing of HangupHandler manager events
+
+ The type value extracted from stasis message data in channel_hangup_handler_cb
+ isn't compared against the valid values "run", "pop" and "push". Thus the
+ manager events HangupHandlerPush, HangupHandlerPop and HangupHandlerRun are
+ never thrown.
+
+ This regression was introduced by ASTERISK_21462.
+
+ ASTERISK-28252
+
+ Change-Id: I9956e35e18da1873113644df1ddc3c7cd37bf524
+
+2019-01-22 11:48 +0000 [9b85882f04] Chris-Savinovich <csavinovich@digium.com>
+
+ * Test_cel: Fails when DONT_OPTIMIZE is off
+
+ A bug in GCC causes TEST_CEL to return
+ failure under the following conditions:
+ 1. TEST_FRAMEWORK on
+ 2. DONT_OPTIMIZE off
+ 3. Fedora and Ubuntu
+ 4. GCC 8.2.1
+ 5. Test name: test_cel_dial_pickup
+ 6. There must exist a certain combination of multithreading.
+ The bug affects arithmetic calculations when the optimization level
+ is bigger than O1 and the -fpartial-inline flag is on. Provided these
+ conditions, function ast_str_to_lower() fails to convert to lower case
+ due to said function being of type force_inline. The solution is to
+ remove the "force_inline" type declaration from function ast_str_to_lower()
+ Change-Id: Ied32e0071f12ed9d5f3b4cdd878b2532a1c769d7
+
+2018-12-10 07:20 +0000 [d0eccac3ff] George Joseph <gjoseph@digium.com>
+
+ * app_voicemail: Add Mailbox Aliases
+
+ You can now define an "aliases" context in voicemail.conf
+ whose entries point to actual mailboxes. These can be used anywhere
+ the mailbox is specified.
+
+ Example:
+ [general]
+ aliasescontext = myaliases
+
+ [default]
+ 1234 = yadayada
+
+ [myaliases]
+ 4321@devices = 1234@default
+
+ Now you can use 4321@devices to refer to the 1234@default mailbox.
+
+ This can be useful to provide channel drivers with constant
+ mailbox specifications such as <extension>@devices leaving
+ app_voicemail to control exactly which mailbox the alias points to.
+ Now, only voicemail has to be reloaded to make changes instead of
+ individual channel drivers which are usually more expensive to
+ reload.
+
+ Change-Id: I395b9205c91523a334fe971be0d1de4522067b04
+
+2019-01-22 11:48 +0000 [2e1cbcde7d] Kevin Harwell <kharwell@digium.com>
+
+ * res_pjsip_registrar: mitigate blocked threads on reliable transport shutdown
+
+ When a reliable transport is shutdown it's possible for the pjsip registrar
+ resource shutdown handler to get called multiple times. If this happens and one
+ of the threads is taking "too long" (slow database call for instance) then the
+ others get blocked waiting to delete.
+
+ Since it only takes one to delete the contact then the other threads should be
+ able to continue on if one of the threads is currently "deleting". This patch
+ makes it so now when a thread enters the shutdown handler it checks to see if a
+ thread is currently already "deleting". If so, then the thread does not attempt
+ to get the lock, and instead continues on thus avoiding the blockage.
+
+ ASTERISK-28213 #close
+
+ Change-Id: I7563ca596312b1dff4f3ab41483e89fe2862328a
+
+2019-01-22 09:02 +0000 [8414ca191e] George Joseph <gjoseph@digium.com>
+
+ * pjproject_bundled: Add patch for double free issue in timer heap
+
+ Fixed #2172: Avoid double reference counter decrements in
+ timer in the scenario of race condition between
+ pj_timer_heap_cancel() and pj_timer_heap_poll().
+
+ Change-Id: If000e9438c83ac5084b678eb811e902c035bd2d8
+
+2019-01-08 01:38 +0000 [da50162fa4] Jeremy Lainé <jeremy.laine@m4x.org>
+
+ * res_http_websocket: respond to CLOSE opcode
+
+ This ensures that Asterisk responds properly to frames received from a
+ client with opcode 8 (CLOSE) by echoing back the status code in its own
+ CLOSE frame.
+
+ Handling of the CLOSE opcode is moved up with the rest of the opcodes so
+ that unmasking gets applied. The payload is no longer returned to the
+ caller, but neither ARI nor the chan_sip nor pjsip made use of the
+ payload, which is a good thing since it was masked.
+
+ ASTERISK-28231 #close
+
+ Change-Id: Icb1b60205fc77ee970ddc91d1f545671781344cf
+
+2019-01-18 16:11 +0000 [9cd6161083] Sean Bright <sean.bright@gmail.com>
+
+ * pjsip_transport_management: Shutdown transport immediately on disconnect
+
+ The transport management code that checks for idle connections keeps a
+ reference to PJSIP's transport for IDLE_TIMEOUT milliseconds (32000 by
+ default). Because of this, if the transport is closed before this
+ timeout, the idle checking code will keep the transport from actually
+ being shutdown until the timeout expires.
+
+ Rather than passing the AO2 object to the scheduler task, we just pass
+ its key and look it up when it is time to potentially close the idle
+ connection. The other transport management code handles cleaning up
+ everything else for us.
+
+ Additionally, because we use the address of the transport when
+ generating its name, we concatenate an incrementing ID to the end of the
+ name to guarantee uniqueness.
+
+ Related to ASTERISK~28231
+
+ Change-Id: I02ee9f4073b6abca9169d30c47aa69b5e8ae9afb
+
+2019-01-20 12:15 +0000 [efde1ab138] Valentin Vidic <vvidic@valentin-vidic.from.hr>
+
+ * channel.c: Fix segfault with Monitor(wav,file,i)
+
+ If the Monitor is started with the i option the read_stream will be
+ NULL. One code path in channel.c checks if write_stream is set but than
+ uses read_stream instead causing a segfault.
+
+ ASTERISK-28249
+
+ Change-Id: I1bae9126537be54895c7fea2d08dd9488d8cc525
+
+2019-01-10 13:34 +0000 [42922af7b8] Joshua C. Colp <jcolp@digium.com>
+
+ * stasis / manager / ari: Better filter messages.
+
+ Previously both AMI and ARI used a default route on
+ their stasis message router to handle some of the
+ messages for publishing out their respective
+ connection. This caused messages to be given to
+ their subscription that could not be formatted
+ into AMI or JSON.
+
+ This change adds an API call to the stasis message
+ router which allows a default route to be set as well
+ as formatters that the default route is expecting.
+ This allows both AMI and ARI to specify that their
+ default route only wants messages of their given
+ formatter. By doing so stasis can more intelligently
+ filter at publishing time so that they do not receive
+ messages which will not be turned into AMI or JSON.
+
+ ASTERISK-28244
+
+ Change-Id: I65272819a53ce99f869181d1d370da559a7d1703
+
+2019-01-17 09:56 +0000 [28da2948d1] Sean Bright <sean.bright@gmail.com>
+
+ * sched: Make sched_settime() return void because it cannot fail
+
+ Change-Id: I66b8b2b2778f186919d73ae9bf592104b8fb1cd5
+
+2019-01-04 17:14 +0000 [d87fc1c591] Sean Bright <sean.bright@gmail.com>
+
+ * res_pjsip_transport_websocket: Don't assert on 0 length payloads
+
+ If an external pjproject is used and built with assertions enabled, we
+ will assert if passed a payload length of 0, so treat empty frames as if
+ we didn't receive them.
+
+ Change-Id: I9c5fdccd89cc8d2f3ed7e3ee405ef0fc78178f48
+
+2019-01-11 10:34 +0000 [4a8564cafa] Alexei Gradinari <alex2grad@gmail.com>
+
+ * res_pjsip: add option to disable ContactStatus event when contact is updated
+
+ This patch adds a new PJSIP global configuration option
+ 'send_contact_status_on_update_registration' to be able to have the same
+ performance benefits as version 16.
+
+ By default old behavior, i.e. the ContactStatus event will be sent when a
+ device refreshes its registration.
+
+ Change-Id: I706adf7584e7077eb6bde6d9799ca408bc82ce46
+
+2019-01-07 12:04 +0000 [84a7b4d356] Mohit Dhiman <mohitdhiman@drishti-soft.com>
+
+ * stasis/endpoint: Fix memory leak of channel_ids in ast_endpoint structure.
+
+ During Bridging of two channels if masquerade operation is performed on a
+ channel (clone channel) which was created with endpoint details
+ (ast_channel_alloc_with_endpoint()) and the original channel which is created
+ without endpoint details (ast_channel_alloc()) then both the channels must
+ exchange their endpoint details or else after masquerade when clone channel
+ is being destroyed the endpoint cleanup callbacks will be destroyed too and
+ after call completion unique_id of original channel will still be there in
+ ast_endpoint structure's channel_ids container.
+
+ ASTERISK-28197
+
+ Change-Id: Ied0451f378a3f2a36acc8c0984959a69895efa17
+
+2019-01-05 11:14 +0000 [790626ec82] Diederik de Groot <dkgroot@talon.nl>
+
+ * RAII: Change order or variables in clang version
+
+ This prevents use-after-scope issues when unwinding the stack,
+ which happens in reverse order. The varname variable needs to
+ remain alive for the destruction to be able to access it.
+ Issue was found using clang + address-sanitizer.
+
+ ASTERISK-28232 #close
+
+ Change-Id: I00811c34ae910836a5fb6d22304528aef92624db
+
+2019-01-02 11:44 +0000 [250812df09] Bryan Boatright <ast-bugs@omega71.com>
+
+ * app_voicemail: Fix Channel variable VM_MESSAGEFILE for "urgent" voicemail
+
+ If a voicemail is marked "urgent" then the VM_MESSAGEFILE channel variable is
+ not updated correctly since urgent messages are in a different directory. The
+ fix is to update the channel variable when the path to the urgent message is
+ created.
+
+ ASTERISK-28225
+
+ Change-Id: I8efbace06e6122ea0793f7bdb073d4378e8274ca
+
+2018-12-19 13:02 +0000 [b26ec935ec] Richard Mudgett <rmudgett@digium.com>
+
+ * stasic.c: Fix printf format type mismatches with arguments.
+
+ An int64_t is not likely the same size as a long.
+
+ * Changed the int64_t values in the statistics structs to longs so casting
+ is not necessary when generating the formatted CLI output. The offending
+ members did not need to be int64_t anyway as they were only set by an int
+ type variable which was already truncating bits.
+
+ * Reordered the statistics structs to reduce potential padding bytes.
+
+ Change-Id: Ic090a070e9dc4ca650ebdb9c01ed50a581289962
+
+2018-12-26 12:30 +0000 [240f339938] Corey Farrell <git@cfware.com>
+
+ * stasis: Fix ABI between DEVMODE and non-DEVMODE.
+
+ Create compatibility stubs for maximum ABI compatibility.
+
+ ASTERISK-28212 #close
+
+ Change-Id: I872c04842ab6b61e9dd6d37e4166bc619aa20626
+
+2018-12-26 10:23 +0000 [96f8b19b1f] George Joseph <gjoseph@digium.com>
+
+ * Revert "stasis_cache: Stop caching stasis subscription change messages"
+
+ This reverts commit 94a4eea7f6e486368b35585ea867479f248095c2.
+
+ This commit caused issues with polling when combined with
+ the revert commit "Revert "app_voicemail: Remove need to subscribe
+ to stasis"
+
+ ASTERISK-28222
+ Reported by: abelbeck
+
+ Change-Id: I0aaab5218a282706dfc6fcbbaeead228d599b99b
+
+2018-12-24 11:42 +0000 [a39dd50436] George Joseph <gjoseph@digium.com>
+
+ * ast_coredumper: Refactor the pid determination process
+
+ In order to get a dump of the running process, we need to find the
+ pid of the main asterisk process. This can be tricky if there are
+ also instances of "asterisk -r" running or if an alternate location
+ for asterisk.conf was specified on the command line with the -C
+ option that also specified an alternation location for the pid file.
+
+ So now...
+
+ 1. We find the asterisk executable with "which" or the --asterisk-bin
+ command line option.
+ 2. If there's only 1 process with an executable path that matches,
+ we use that pid. If not...
+ 3. We try "<asterisk-bin> -rx 'core show settings'" and parse the
+ output to find the pidfile, then read that for the pid. If that
+ didn't work...
+ 4. We get a list of all the pids matching <asterisk-bin> and look
+ in /proc/<pid>/cmdline for a -C argument and retry the "core show
+ settings" using the same -C option. We can't parse the output
+ of "ps" to get the -C path because it may contain spaces. The
+ contents of /proc/<pid>/cmdline are delimited by NULLs. For BSDs
+ we may have to mount /proc first. :(
+
+ ASTERISK-28221
+ Reported by: Andrew Nagy
+
+ Change-Id: I8aa1f3f912f949df2b5348908803c636bde1d57c
+
+2018-12-19 15:27 +0000 [f9face3612] Alexei Gradinari <alex2grad@gmail.com>
+
+ * RTP: reset DTMF last seqno/timestamp on RTP renegotiation
+
+ The remote side may start a new stream when renegotiating RTP.
+ Need to reset the DTMF last sequence number and the timestamp
+ of the last END packet on RTP renegotiation.
+
+ If the new time stamp is lower then the timestamp of the last DTMF END packet
+ the asterisk drops all DTMF frames as out of order.
+
+ This bug was caught using Cisco ip-phone SPA5XX and codec g722.
+ On SIP session update the SPA50X resets stream and a new timestamp is twice
+ smaller then the previous.
+
+ ASTERISK-28162 #close
+
+ Change-Id: Ic72b4497e74d801b27a635559c1cf29c16c95254
+
+2018-12-19 12:39 +0000 [a551539048] Richard Mudgett <rmudgett@digium.com>
+
+ * backtrace.c: Fix casting pointer to/from integral type.
+
+ The backtrace library bfd.h include file does not get the sizes of
+ pointers and ints right on some platforms. On my old test box the size
+ of bfd_vma is 8 while the size of a pointer is 4. gcc on the box
+ complains of the integer casting to/from pointers size mismatch.
+
+ * uintptr_t to the rescue by doing an appropriate two stage cast.
+
+ Change-Id: Icb2621583f50c8728de08a3c824d95fe53cc45d0
+
+2018-12-18 10:33 +0000 [e137086163] George Joseph <gjoseph@digium.com>
+
+ * app_voicemail: Don't delete mailbox state unless mailbox is deleted
+
+ The free_user function was automatically deleting the stasis mailbox
+ state but this only makes sense when the mailbox is actually
+ deleted, not just the structure freed. This was causing issues
+ where leave_voicemail would publish the mwi message to stasis and
+ delete the state before the message could be processed by
+ res_pjsip_mwi.
+
+ * Removed the delete of state from free_user().
+
+ * Created a new free_user_final() function that both frees the data
+ structure and deletes the state. This function is only called
+ during module load/unload where it's appropriate to delete the
+ state.
+
+ ASTERISK-28215
+
+ Change-Id: I305e8b3c930e9ac41d901e5dc8a58fd7904d98dd
+
+2018-12-14 10:50 +0000 [a2336adfb9] Sean Bright <sean.bright@gmail.com>
+
+ * res_rtp_asterisk: Remove some unused structure fields.
+
+ All of the fields that were removed were no longer referenced except for
+ 'lastrxts' and 'rxseqno' which were only ever written to.
+
+ Change-Id: I5a5d31eb33e97663843698f58d0d97f22a76627c
+
+2018-12-13 15:56 +0000 [560747dca4] Sean Bright <sean.bright@gmail.com>
+
+ * res_format_attr_h264.c: Make sure profile-level-id fmtp attribute is set
+
+ The profile-iop octet (the 2nd) of profile-level-id can be zero
+ according to RFC 6184 Section 8.1. So we ignore its value when deciding
+ to include profile-level-id in the outgoing SDP.
+
+ ASTERISK-27959 #close
+ Reported by: David Kuehling
+
+ Change-Id: Id28cd916a3d7748058fe9609b585d07d9e243f73
+
+2018-12-11 14:49 +0000 [92cc094d4e] Sean Bright <sean.bright@gmail.com>
+
+ * bridge_builtin_features.c: Set auto(mix)mon variables on both channels
+
+ This is how features behaved up through Asterisk 11, but was changed
+ when the new bridging framework was implemented in Asterisk 12.
+
+ Reported by rrittgarn in #asterisk.
+
+ Change-Id: I72cf86223947a8118c75f46e2c603dbc11e3125b
+
+2018-11-30 05:40 +0000 [e5605232df] Joshua C. Colp <jcolp@digium.com>
+
+ * stasis: Add statistics gathering in developer mode.
+
+ This change adds statistics gathering to Stasis topics,
+ subscriptions, and message types. These can be viewed using
+ CLI commands and provide insight into how Stasis is used
+ and how long certain operations take to execute.
+
+ These are only available when Asterisk is compiled in
+ developer mode and do not have any impact under normal
+ operation.
+
+ ASTERISK-28117
+
+ Change-Id: I94411b53767f89ee01714daaecf0c2f1666e863f
+
+2018-12-11 08:54 +0000 [b84fd37ef0] Sean Bright <sean.bright@gmail.com>
+
+ * Use non-blocking socket() and pipe() wrappers
+
+ Change-Id: I050ceffe5a133d5add2dab46687209813d58f597
+
+2018-12-11 09:06 +0000 [3f3035680b] Sean Bright <sean.bright@gmail.com>
+
+ * utils: Don't set or clear flags that don't need setting or clearing
+
+ Change-Id: I0e7fb507ac09b15e45e1ff8501ecfca67afa5217
+
+2018-12-11 06:55 +0000 [93f00ebe59] Sean Bright <sean.bright@gmail.com>
+
+ * build: Update config.guess and config.sub
+
+ Pulled from the authoritative respository at:
+
+ https://git.savannah.gnu.org/cgit/config.git/tree/
+
+ Change-Id: I748708ce24d4d47ff1f395075d0b08d3da3355e0
+
+2018-12-11 08:29 +0000 [1ef993911f] George Joseph <gjoseph@digium.com>
+
+ * Revert "RTP: reset DTMF last seqno/timestamp on voice packet with marker bit"
+
+ This reverts commit cf620ce0f6dc4a7ef713dc85b4c2610b614cd647.
+
+ Pending resolution of ASTERISK_28200
+
+ Change-Id: If18ab1166db0d634ce8a099bd7460251e9c682e1
+
+2018-12-07 14:22 +0000 [6392e452f2] Alexei Gradinari <alex2grad@gmail.com>
+
+ * confbridge: announce to the marked users when they join an empty conference
+
+ Currently the file sound_only_person is not played when a marked
+ user (with announce_only_user=yes) joins an empty conference.
+
+ This patch fixes it.
+
+ ASTERISK-28201 #close
+
+ Change-Id: I85b67687e6b220939c3af8091d83a70a7b174cf4
+
+2018-12-04 18:00 +0000 [f4afd097af] Giuseppe Sucameli <sucameli@netresults.it>
+
+ * chan_sip: Fix leak using contact ACL
+
+ Free old peer's contactacl before overwrite it within build_peer.
+
+ ASTERISK-28194
+
+ Change-Id: Ie580db6494e50cee0e2a44b38e568e34116ff54c
+
+2018-11-29 09:53 +0000 [21a5ad0fd9] George Joseph <gjoseph@digium.com>
+
+ * stasis: Allow filtering by formatter
+
+ A subscriber can now indicate that it only wants messages
+ that have formatters of a specific type. For instance,
+ manager can indicate that it only wants messages that have a
+ "to_ami" formatter. You can combine this with the existing
+ filter for message type to get only messages with specific
+ formatters or messages of specific types.
+
+ ASTERISK-28186
+
+ Change-Id: Ifdb7a222a73b6b56c6bb9e4ee93dc8a394a5494c
+
+2018-12-07 06:57 +0000 [8c312c54ed] Sean Bright <sean.bright@gmail.com>
+
+ * utils: Wrap socket() and pipe() to reduce syscalls
+
+ Some platforms provide an implementation of socket() and pipe2() that allow the
+ caller to specify that the resulting file descriptors should be non-blocking.
+
+ Using these allows us to potentially elide 3 calls into 1 by avoiding extraneous
+ calls to fcntl() to set the O_NONBLOCK flag afterwards.
+
+ In passing, change ast_alertpipe_init() to use pipe2() directly instead of the
+ wrapper if it is available.
+
+ Change-Id: I3ebe654fb549587537161506c6c950f4ab298bb0
+
+2018-12-05 09:37 +0000 [30934a0145] George Joseph <gjoseph@digium.com>
+
+ * CI: Various updates to buildAsterisk.sh
+
+ * Added ---no-configure, --no-menuselect, --no-make and --no-alembic
+ options that prevent those actions from being performed. Useful
+ for testing and re-running portions of the build after fixing
+ earlier failures.
+
+ * Added "set -e" to abort the script on command failure.
+ Not sure why this wasn't there in the first place.
+
+ * Fixed a few echos that were redirecting to stderr when they shouldn't
+ have been.
+
+ * Catch more alembic failures by actually trying to generate the SQL.
+
+ Change-Id: I9f395fa4e9254be7299e7c1014f1a13db78faffb
+
+2018-11-30 14:00 +0000 [2e15657485] Chris-Savinovich <csavinovich@digium.com>
+
+ * test_websocket_client.c: Disable websocket_client_create_and_connect test.
+
+ This test was occasionally failing, with:
+
+ WARNING[5812]: http.c:1939 httpd_helper_thread: Failed to set
+ TCP_NODELAY on HTTP connection: Bad file descriptor
+ ERROR[5812]: iostream.c:91 ast_iostream_nonblock: Failed to get
+ fcntl() flags for file descriptor: Bad file descriptor
+ ERROR[5812]: iostream.c:569 ast_iostream_close: close() failed: Bad
+ file descriptor
+
+ Disabled for now by making the test explicit only.
+
+ Change-Id: I778f6cbb6104c6b4e89737a2eaf1a9540888d351
+
+2018-11-28 01:14 +0000 [385d7523c7] Pirmin Walthert <infos@nappsoft.ch>
+
+ * pjproject_bundled: check whether UPDATE is supported on outgoing calls
+
+ In ASTERISK-27095 an issue had been fixed because of which chan_pjsip was not
+ trying to send UPDATE messages when connected_line_method was set to invite.
+ However this only solved the issue for incoming INVITES. For outgoing INVITES
+ (important when transferring calls) the options variable needs to be updated
+ at a different place.
+
+ ASTERISK-28182 #close
+ Reported-by: nappsoft
+
+ Change-Id: I76cc06da4ca76ddd6dce814a8b97cc66b98aaf29
+
+2018-12-03 23:07 +0000 Asterisk Development Team <asteriskteam@digium.com>
+
+ * asterisk 13.24.0-rc1 Released.
+
+2018-12-03 16:41 +0000 [44c8868fb1] Sean Bright <sean.bright@gmail.com>
+
+ * core: Add some documentation to the malloc_trim code
+
+ This adds documentation to handle_cli_malloc_trim() indicating how it
+ can be useful when debugging OOM conditions.
+
+ Change-Id: I1936185e78035bf123cd5e097b793a55eeebdc78
+
+2018-12-03 14:01 +0000 [40ab571e0d] Chris-Savinovich <csavinovich@digium.com>
+
+ * core: Merge malloc_trim patch
+
+ We've had multiple opportunities where Richard Mudgett's
+ malloc_trim patch has been useful. Let's get it
+ pushed up to gerrit and merged.
+
+ Since malloc_trim is only available in libc, an entry is
+ added to configure.ac to create a definition for
+ HAVE_MALLOC_TRIM.
+
+ Change-Id: Ia38308c550149d9d6eae4ca414a649957de9700c
+
+2018-10-22 07:47 +0000 [91630834f7] lvl <digium@lvlconsultancy.nl>
+
+ * app_queue: Revert broken queue channel reference patch
+
+ Revert commit 6409e7b11a2310196a9978b30a6b79e2760be592, and add
+ NULL checks for all app_queue event handling code.
+
+ Related issues: ASTERISK~25185, ASTERISK~27006, ASTERISK~25844
+
+ ASTERISK-28125
+
+ Change-Id: I37334ea184ebb56e54471496b82937d4927815a0
+
+2018-11-29 10:37 +0000 [363d19326b] George Joseph <gjoseph@digium.com>
+
+ * Revert "app_voicemail: Remove need to subscribe to stasis"
+
+ This reverts commit 1843b0e2b52ba95df57f2f92a8c4669cbbb17bfa.
+
+ That commit closed a long standing hole which allowed subscriptions
+ to mailboxes that weren't configured in voicemail.conf. This
+ caused an issue with FreePBX which depdended on that behavior.
+ The commit is being reverted until FreePBX can handle the new
+ behavior.
+
+ ASTERISK-28151
+ Reported by: Ronald Raikes
+
+ Change-Id: I57b7b85e75d7dd97c742b5c69d718a0f61260c15
+
+2018-11-27 10:20 +0000 [ec02d7fd4c] Corey Farrell <git@cfware.com>
+
+ * res_pjsip: Patch for res_pjsip_* module load/reload crash
+
+ The session_supplements for the pjsip makes crashes when the module
+ load/unload.
+
+ ASTERISK-28157
+
+ Change-Id: I5b82be3a75d702cf1933d8d1417f44aa10ad1029
+
+2018-11-26 16:18 +0000 [922fbafda0] George Joseph <gjoseph@digium.com>
+
+ * test_cel: Plug a few ref leaks
+
+ These are only a few of the leaks. The large number of macros
+ and return paths in this file would make a weeks worth of work
+ to plug them all.
+
+ Change-Id: Ie2369fa944023d44767871c5c30974cb077ffb56
+
+2018-11-26 06:09 +0000 [7c346aa4f4] Corey Farrell <git@cfware.com>
+
+ * jansson: Upgrade to 2.12.
+
+ This brings in jansson-2.12, removes all patches that were merged
+ upstream. README is created in third-party/jansson/patches to explain
+ how to add patches but also because the patches folder must exist for
+ the build process to succeed.
+
+ Change-Id: If0f2d541c50997690660c21fb7b03d625a5cdadd
+
+2018-11-19 10:20 +0000 [0a9904e1c6] Corey Farrell <git@cfware.com>
+
+ * astobj2: Eliminate usage of legacy ao2_container_alloc routine.
+
+ Replace usage of ao2_container_alloc with ao2_container_alloc_hash or
+ ao2_container_alloc_list.
+
+ ao2_container_alloc is now restricted to modules only and is being
+ removed from Asterisk 17.
+
+ Change-Id: I0907d78bc66efc775672df37c8faad00f2f6c088
+
+2018-11-16 14:45 +0000 [aa728adab0] Michael Walton (license 6502)
+
+ * func_strings: HASHKEY - negative array index can cause corruption
+
+ This patch makes it so only matching non-empty key names, and keys created by
+ the HASH function are eligible for inclusion in the comma separated string. It
+ also fixes a bug where it was possible to write to a negative index if the
+ result buffer was empty.
+
+ ASTERISK-28159
+ patches:
+ ASTERISK-28159.diff submitted by Michael Walton (license 6502)
+
+ Change-Id: I6e57fe7307dfd856271753aed5ba64c59b511487
+
+2018-11-19 11:59 +0000 [d2397e643d] George Joseph <gjoseph@digium.com>
+
+ * CI: Get job timeouts from environment
+
+ The job timeouts were hard coded in the jenkinsfiles which
+ means changes had to go through gerrit. Now they are taken
+ from the following environment variables (and their defaults) that
+ can be set in Jenkins configuration...
+
+ TIMEOUT_GATES = "60 MINUTES"
+ TIMEOUT_DAILIES = "3 HOURS"
+ TIMEOUT_REF_DEBUG = "24 HOURS"
+ TIMEOUT_UNITTESTS = "30 MINUTES"
+
+ Change-Id: I673a551c1780bf665a3bc160b245da574aa4bbab
+
+2018-11-18 17:53 +0000 [a5a8cba8c7] Joshua C. Colp <jcolp@digium.com>
+
+ * stasis: Remove stringfields and lock from change message.
+
+ When a subscribe or unsubscribe occurs a message is published
+ containing this information. This change makes it so that the
+ message no longer uses stringfields or a lock, as both are not
+ really needed for the message.
+
+ Change-Id: I3f4831931d79f94fd979baf48048738df5dc1632
+
+2018-11-08 09:53 +0000 [0deaf81bff] George Joseph <gjoseph@digium.com>
+
+ * backtrace: Refactor ast_bt_get_symbols so it doesn't crash
+
+ We've been seeing crashes in libbfd when we attempt to generate
+ a stack trace from multiple threads. It turns out that libbfd
+ is NOT thread-safe. It can cache the bfd structure and give it to
+ multiple threads without protecting itself. To get around this,
+ we've added a global mutex around the bfd functions and also have
+ refactored the use of those functions to be more efficient and
+ to provide more information about inlined functions.
+
+ Also added a few more tests to test_pbx.c. One just calls
+ ast_assert() and the other calls ast_log_backtrace(). Neither are
+ run by default.
+
+ WARNING: This change necessitated changing the return value of
+ ast_bt_get_symbols() from an array of strings to a VECTOR of
+ strings. However, the use of this function outside Asterisk is not
+ likely.
+
+ ASTERISK-28140
+
+ Change-Id: I79d02862ddaa2423a0809caa4b3b85c128131621
+
+2018-10-31 16:28 +0000 [b6d0fbda9d] Alexei Gradinari <alex2grad@gmail.com>
+
+ * pjsip: New function PJSIP_PARSE_URI to parse URI and return part of URI
+
+ New dialplan function PJSIP_PARSE_URI added to parse an URI and return
+ a specified part of the URI.
+
+ This is useful when need to get part of the URI instead of cutting it
+ using a CUT function.
+
+ For example to get 'user' part of Remote URI
+ ${PJSIP_PARSE_URI(${CHANNEL(pjsip,remote_uri)},user)}
+
+ ASTERISK-28144 #close
+
+ Change-Id: I5d828fb87f6803b6c1152bb7b44835f027bb9d5a
+
+2018-09-23 15:50 +0000 [d748ed4147] Joshua Colp <jcolp@digium.com>
+
+ * stasis: Add internal filtering of messages.
+
+ This change adds the ability for subscriptions to indicate
+ which message types they are interested in accepting. By
+ doing so the filtering is done before being dispatched
+ to the subscriber, reducing the amount of work that has
+ to be done.
+
+ This is optional and if a subscriber does not add
+ message types they wish to accept and set the subscription
+ to selective filtering the previous behavior is preserved
+ and they receive all messages.
+
+ There is also the ability to explicitly force the reception
+ of all messages for cases such as AMI or ARI where a large
+ number of messages are expected that are then generically
+ converted into a different format.
+
+ ASTERISK-28103
+
+ Change-Id: I99bee23895baa0a117985d51683f7963b77aa190
+
+2018-11-18 10:38 +0000 [7ec470c1ca] George Joseph <gjoseph@digium.com>
+
+ * CI: Add tmpfs to all jenkinsfiles
+
+ Change-Id: Ida29d70d48d5f39aabf0b25c66b51f79324a8cba
+
+2018-11-17 15:40 +0000 [73efe86436] George Joseph <gjoseph@digium.com>
+
+ * CI: Mount a tmpfs on /tmp for testsuite docker containers
+
+ Change-Id: I0566d81b0852f22066cd76d58eae5f1fda5602aa
+
+2018-11-17 13:07 +0000 [a335f4c9ad] George Joseph <gjoseph@digium.com>
+
+ * CI: Pass work directory to runTestsuite
+
+ The testsuite can now use a user-specified work directory for
+ all it's temp files. This allows the docker containers to use
+ a tmpfs backed directory for the temp files instead of it's
+ own write-layer image.
+
+ * runTestsuite.sh now accepts a --work-dir command line argument
+ that gets exported as AST_WORK_DIR before running the testsuite.
+
+ * gates.jenkinsfile now specifies --work-dir to be
+ <testsuite_dir>/astroot.
+
+ Since the Asterisk CI docker hosts now mount /srv/jenkins/workspace
+ on a tmpfs, asterisk should be compiled and the testsuite run all in
+ memory.
+
+ Change-Id: If5ee905a15821296c355bb84cda38950ad8edc45
+
+2018-11-15 11:41 +0000 [97633c09c5] George Joseph <gjoseph@digium.com>
+
+ * CI: Allow runUnittests to use 'expect' to run the tests
+
+ There seems to be a race condition between starting the asterisk
+ daemon and attempting to use 'asterisk -r' that can cause the
+ control socket file to not be created. Since all of the Jenkins
+ slaves have 'expect' installed, the runUnittests script can use
+ it to start asterisk in the forground and issue the commands
+ interactively. This is much more reliable and it can also make
+ startup errors more visible since they'll be in the Jenkins console
+ output.
+
+ If 'expect' isn't installed, the original daemon/asterisk -r
+ process is used.
+
+ Also added a "core show settings" before running the tests
+ and added "notice,warning,error" to the console log.
+
+ Change-Id: Idd656085f854afede813ac241b9e312b31358160
+
+2018-11-12 12:23 +0000 [2f75f1941a] Corey Farrell <git@cfware.com>
+
+ * taskprocessor: Prevent race creating new taskprocessor.
+
+ Task processors are retrieved using a 'get or create' pattern. The
+ singleton container was unlocked between the get and create steps so
+ it's possible that two threads could create task processors with the
+ same name at the same time.
+
+ Change-Id: Id64fae94a6a1e940ddf38fde622dcd4391635382
+
+2018-11-16 06:20 +0000 [433f1acbec] Corey Farrell <git@cfware.com>
+
+ * pjproject-bundled: Use AST_DEVMODE for conditional compilation.
+
+ We previously allowed resample and g711 codecs to be built when
+ TEST_FRAMEWORK was enabled. This could cause errors if the testsuite
+ was run without this option enabled. Switch the build system to allow
+ those codecs to be built when --enable-dev-mode is used. This removes a
+ chance for strange testsuite errors from use of an inadequate pjsua
+ binary.
+
+ Change-Id: Iee8a3613cdb711fa7e7d217c5a775a575907ae22
+
+2018-11-15 14:45 +0000 [580bc5e2c6] Corey Farrell <git@cfware.com>
+
+ * res_pjsip_caller_id: Use static pj_str_t for fromto header names.
+
+ PJSIP assumes that these header names are not allocated, does not clone
+ the name strings when reusing headers.
+
+ Block unload of res_pjsip_caller_id until shutdown to ensure static
+ memory stays valid. It was previously unsafe to unload while any
+ sessions are active.
+
+ Change-Id: I190854dea943d6e441cf03733f8a0da661aea27f
+
+2018-10-24 07:38 +0000 [da4879443b] Torrey Searle <torrey@voxbone.com>
+
+ * res/res_pjsip_nat: Fix logic for REINVITES
+
+ The presence of Record-Route in re-invites is optional, thus it is
+ important to make sure the dialog doesn't have a routset before
+ rewriting the contact header.
+
+ ASTERISK-28129 #close
+
+ Change-Id: Ic8ceb54ccfc93f7e315e476c514a2c777f2da7dc
+
+2018-11-15 05:25 +0000 [013d0c50fb] Corey Farrell <git@cfware.com>
+
+ * core: Fix handling of restart from remote console.
+
+ We cannot use need_el_end and SIGURG when restarting. Instead we need
+ to run el_end within the SIGHUP restartnow handler.
+
+ ASTERISK-28158
+
+ Change-Id: Ia852276363c81bdcf1aa29eb4558c5c2fa1218a0
+
+2018-11-13 10:51 +0000 [8e7a8e8734] Corey Farrell <git@cfware.com>
+
+ * test_res_pjsip_scheduler: Fix possible write after free in scheduler_policy.
+
+ It's possible for a 4th task to be spawned before we cancel. This
+ results in a write to the already freed test_data1. Wait long enough to
+ verify success of the cancelation before freeing test_data1.
+
+ Change-Id: I057e2fcbe97f8a175e50890be89c28c20490a20f
+
+2018-11-12 17:12 +0000 [cf620ce0f6] Alexei Gradinari <alex2grad@gmail.com>
+
+ * RTP: need to reset DTMF last seqno/timestamp on voice packet with marker bit
+
+ The marker bit set on the voice packet indicates the start
+ of a new stream and a new time stamp.
+ Need to reset the DTMF last sequence number and the timestamp
+ of the last END packet.
+
+ If the new time stamp is lower then the timestamp of the last DTMF END packet
+ the asterisk drops all DTMF frames as out of order.
+
+ This bug was caught using Cisco ip-phone SPA50X and codec g722.
+ On SIP session update the SPA50X resets stream indicating it with market bit
+ and a new timestamp is twice smaller then the previous.
+
+ ASTERISK-28162 #close
+
+ Change-Id: If9c5742158fa836ad549713a9814d46a5d2b1620
+
+2018-11-11 18:32 +0000 [dc54dc0439] Corey Farrell <git@cfware.com>
+
+ * taskprocessor: Do not use separate allocation for stats or name.
+
+ Merge storage for the stats object and name string into the main
+ allocation for struct ast_taskprocessor.
+
+ Change-Id: I74fe9a7f357f0e6d63152f163cf5eef6428218e1
+
+2018-11-11 07:34 +0000 [2301580ba8] Corey Farrell <git@cfware.com>
+
+ * core: Ensure that el_end is always run when needed.
+
+ * Ignore console=yes configuration option in remote console processes.
+ * Use new flag to tell consolethread to run el_end and exit when needed.
+
+ ASTERISK-28158
+
+ Change-Id: I9e23b31d4211417ddc88c6bbfd83ea4c9f3e5438
+
+2018-10-17 08:48 +0000 [834d37c39c] Robert Cripps <rcripps@voxbone.com>
+
+ * bridge_native_rtp.c: Fail native bridge if no framing match.
+
+ ASTERISK-28110 #close
+
+ Change-Id: Ic64b8fc6a140a93fbdb2f97550a40d0ff334e607
+
+2018-11-08 15:37 +0000 [d4d3818ecb] Corey Farrell <git@cfware.com>
+
+ * jansson-bundled: Patch for off-nominal crash.
+
+ pack_string crashed on non-NULL strings returned when s->has_error was
+ true if the string was the result of 's' format without '#', '%' or '+'.
+
+ Change-Id: Ic125df691d81ba2cbc413e37bdae657b304d20d0
+
+2018-11-02 06:38 +0000 [1709f6be77] Corey Farrell <git@cfware.com>
+
+ * pbx_config: Only the first [globals] section is seen.
+
+ If multiple [globals] sections are used (for example via separate
+ included files), only the first one is processed. This can result in
+ lost global variables when using a modular extensions.conf.
+
+ ASTERISK-28146 #close
+
+ Change-Id: Iaac810c0a7c4d9b1bf8989fcc041cdb910ef08a0
+
+2018-11-06 16:44 +0000 [bc2420ee0e] Chris-Savinovich <csavinovich@digium.com>
+
+ * res_pjsip: Send a 503 response when overload state if reliable transport.
+
+ When Asterisk's taskprocessors get overloaded we need to reduce the work
+ load. res_pjsip currently ignores new SIP requests and relies on SIP
+ retransmissions in the hope that the overload condition will clear soon
+ enough to handle the retransmitted SIP request.
+ This change adds the following code after ast_taskprocessor_alert_get()
+ has returned TRUE:
+ 1- identifies transport type. If non-udp then send a 503 response
+ 2- if transport type is udp/udp6 then ignore, as before.
+
+ Change-Id: I1c230b40d43a254ea0f226b7acf9ee480a5d3836
+
+2018-11-06 16:35 +0000 [214d0d118a] Kevin Harwell <kharwell@digium.com>
+
+ * res_pjsip: formatting error in documentation
+
+ The use of a '|' in the "global/debug" synopsis documentation caused the
+ generated html table on the wiki to add an extra column that included the
+ text after the pipe.
+
+ This patch replaces the pipe with a comma.
+
+ ASTERISK-28150
+
+ Change-Id: I3d79a6ca6d733d9cb290e779438114884b98a719
+
+2018-11-05 12:44 +0000 [158214c1a0] Alexei Gradinari <alex2grad@gmail.com>
+
+ * res_pjsip.c: Make taskprocessor scheduling algorithm pick the shortest queue
+
+ The current round-robin method does not take the current taskprocessor
+ load into consideration when distributing requests. Using the least-size
+ method the request goes to the taskprocessor that is servicing the least
+ number of active tasks at the current time.
+
+ Longer running tasks with the round-robin method can delay processing
+ tasks.
+
+ * Change the algorithm from round-robin to least-size for picking the
+ PJSIP taskprocessor from the default serializer pool.
+
+ Change-Id: I7b8d8cc2c2490494f579374b6af0a4868e3a37cd
+
+2018-11-05 08:30 +0000 [2f8499788a] Joshua Colp <jcolp@digium.com>
+
+ * stasis: Clarify lifetime of topics.
+
+ As mentioned in the comment I've added in the code there is no
+ ability to unsubscribe all subscribers from a topic and explicitly
+ destroy it. This is not currently a problem as we have two types of
+ topics:
+
+ Long lived topics which exist for the lifetime of the system.
+ Ephemeral topics which feed a long lived topic.
+
+ In the case of the ephemeral topics there is no subscriber which does
+ not have its lifetime managed by the same entity that has created
+ the topic. This ensures that when the topic is being unreferenced the
+ subscribers are also unsubscribed and destroyed, allowing the topic
+ to ultimately be destroyed as well.
+
+ Change-Id: Ic5e244da7b16b1895ba1fc5ece481ebba5809c9a
+
+2018-10-09 07:44 +0000 [cf193d53ad] Jasper Hafkenscheid <jasper.hafkenscheid@wearespindle.com>
+
+ * chan_sip: Attempt ast_do_pickup in handle_invite_replaces
+
+ When a call pickup is performed using and invite with replaces header
+ the ast_do_pickup method is attempted and a PICKUP stasis message is sent.
+
+ ASTERISK-28081 #close
+ Reported-by: Luit van Drongelen
+
+ Change-Id: Ieb1442027a3ce6ae55faca47bc095e53972f947a
+
+2018-10-26 10:53 +0000 [0a4e8a43e3] Pascal Cadotte Michaud <pcm@wazo.io>
+
+ * contrib/sip_to_pjsip: add a --quiet option to avoid prints
+
+ Using the --quiet or -q option in conjonction with /dev/stdout as the output
+ file allow the output to be used as a valid configuration.
+
+ Given a script that generates a valid sip.conf I can pipe the output of that
+ script into `sip_to_pjsip.py -q /dev/stdin /dev/stdout`. This allow me to use
+ that piped command in my pjsip.conf using the `exec` command.
+
+ ASTERISK-28136
+
+ Change-Id: I7b0e2e90e2549f3f8e01dc96701f111b5874c88d
+
+2018-10-31 07:53 +0000 [9946bcc557] Joshua Colp <jcolp@digium.com>
+
+ * res_pjsip: Add XML documentation for "use_callerid_contact"
+
+ ASTERISK-28087
+
+ Change-Id: I69d48813ec514f5ef06c6de994cba52630e0a3b4
+
+2018-10-30 10:52 +0000 [c81ffa9ec8] Richard Mudgett <rmudgett@digium.com>
+
+ * alembic: Fix use_callerid_contact option add script.
+
+ ASTERISK-28087
+
+ Change-Id: I046d018015427d0916fab571b5a4f5367476f729
+
+2018-10-12 16:46 +0000 [bfe3821800] Alexei Gradinari <alex2grad@gmail.com>
+
+ * pjsip: new endpoint's options to control Connected Line updates
+
+ This patch adds new options 'trust_connected_line' and 'send_connected_line'
+ to the endpoint.
+
+ The option 'trust_connected_line' is to control if connected line updates
+ are accepted from this endpoint.
+
+ The option 'send_connected_line' is to control if connected line updates
+ can be sent to this endpoint.
+
+ The default value is 'yes' for both options.
+
+ Change-Id: I16af967815efd904597ec2f033337e4333d097cd
+
+2018-10-27 09:59 +0000 [e0472eb1d0] Pascal Cadotte Michaud <pcm@wazo.io>
+
+ * contrib/sip_to_pjsip: handle setvar in conversion
+
+ Given a sip.conf with the following content:
+
+ setvar FOO=1
+ setvar BAR=42
+
+ I want my generated pjsip.conf to containt the following set_vars
+
+ set_var FOO=1
+ set_var BAR=42
+
+ in the matching endpoint section.
+
+ Change-Id: I6c822401fda4133c3b44bf31e655b4eb939d4d26
+
+2018-10-26 16:18 +0000 [82f0a86e39] Alexei Gradinari <alex2grad@gmail.com>
+
+ * res_pjsip_notify: improve realtime performance on CLI completion on the endpoint
+
+ The module 'res_pjsip_notify' inefficiently makes a lot of DB requests
+ on CLI completion on the endpoint.
+
+ For example if there are 10k endpoints the module makes 10k requests
+ of these 10k records.
+
+ Even if a part of the endpoint entered
+ the module makes the same 10k requests and then filtered them by itself.
+
+ This patch gathers endpoints container by prefix
+ and adds all gathered endpoints to completion at once.
+
+ ASTERISK-28137 #close
+
+ Change-Id: Ic20024912cc77bf4d3e476c4cd853293c52b254b
+
+2018-10-02 07:31 +0000 [bbbec2e95e] Torrey Searle <torrey@voxbone.com>
+
+ * res_pjsip_session: add new flag use_callerid_contact
+
+ Add a new global flag to res_pjsip to allow the callerid to be used
+ as the username in the contact header. This allows chan_pjsip to have
+ the same behavour as chan_sip
+
+ ASTERISK-28087 #close
+
+ Change-Id: I9a720e058323f6862a91c62f8a8c1a4b5c087b95
+
+2018-10-17 19:34 +0000 [92f71534fd] Richard Mudgett <rmudgett@digium.com>
+
+ * logger.c: Fix default console logging when no logger.conf available.
+
+ Default logging was not setup correctly when there was no logger.conf.
+ This resulted in many expected log messages not actually getting out to
+ the console.
+
+ Change-Id: I542e61c03b2f630ff5327f9de5641d776c6fa70c
+
+2018-10-16 14:00 +0000 [54a1fbe428] Corey Farrell <git@cfware.com>
+
+ * astobj2: Eliminate usage of legacy container allocation macros.
+
+ These macros have been documented as legacy for a long time but are
+ still used in new code because they exist. Remove all references to:
+ * ao2_container_alloc_options
+ * ao2_t_container_alloc_options
+ * ao2_t_container_alloc
+
+ These macro's are still available for use but only in modules. Only
+ ao2_container_alloc remains due to it's use in over 100 places.
+
+ Change-Id: I1a26258b5bf3deb081aaeed11a0baa175c933c7a
+
+2018-09-26 15:05 +0000 [0e7b91a22b] Alexei Gradinari <alex2grad@gmail.com>
+
+ * app_dial/queue/followme: 'I' options to block initial updates in both directions
+
+ The 'I' option currently blocks initial CONNECTEDLINE or REDIRECTING updates
+ from the called parties to the caller.
+
+ This patch also blocks updates in the other direction before call is
+ answered.
+
+ ASTERISK-27980
+
+ Change-Id: I6ce9e151a2220ce9e95aa66666933cfb9e2a4a01
+
+2018-09-28 13:31 +0000 [655a962aa5] Corey Farrell <git@cfware.com>
+
+ * lock: Replace __ast_mutex_logger with private log_mutex_error.
+
+ __ast_mutex_logger used the variable `canlog` without accepting it as a
+ argument. Replace with internal macro `log_mutex_error` which takes
+ canlog as the first arguement. This will prevent confusion when working
+ with lock.c code, many of the function declare the canlog variable and
+ in some cases it previously appeared to be unused.
+
+ Change-Id: I83b372cb0654c5c18eadc512f65a57fa6c2e9853
+
+2018-10-18 14:36 +0000 [badf0adf86] Richard Mudgett <rmudgett@digium.com>
+
+ * app_dial/app_queue: Update application option documentation
+
+ * Update the post-answer documentation and example. The Dial example was
+ incorrect and misleading for the post-answer subroutine useage.
+
+ * Fix note and warning paragraphs in option descriptions. They don't show
+ up in the wiki.
+
+ Change-Id: I81019a1fd75d5b9151f76b52c38e2a90da682d14
+
+2018-10-18 14:56 +0000 [78aee0f6a2] Sean Bright <sean.bright@gmail.com>
+
+ * samples: PARKINGSLOT -> PARKING_SPACE in parking sample config
+
+ PARKINGSLOT was deprecated in Asterisk 12 but the sample config was not
+ updated to reflect that.
+
+ Change-Id: I3e087c19d9ee587094fa5304102d8084a79c2b3c
+
+2018-10-18 12:32 +0000 [d8b9e3413c] Richard Mudgett <rmudgett@digium.com>
+
+ * Fix 'statement' typo throughout code.
+
+ Most were in comments. A couple were in warning messages.
+
+ Pointed out by Jonathan H on the Asterisk users mailing list.
+
+ Change-Id: I6286939dff5d0a27a2758140570106f1cb351855
+
+2018-10-17 14:34 +0000 [ce2e04801a] Richard Mudgett <rmudgett@digium.com>
+
+ * modules: Add missing run time module support levels.
+
+ Change-Id: I29b9dbfa4bbfc49f21eba356858e38b1d3041824
+
+2018-10-14 07:58 +0000 [01716f70e6] Corey Farrell <git@cfware.com>
+
+ * taskprocessor: Warn on unused result from pushing task.
+
+ Add attribute_warn_unused_result to ast_taskprocessor_push,
+ ast_taskprocessor_push_local and ast_threadpool_push. This will help
+ ensure we perform the necessary cleanup upon failure.
+
+ Change-Id: I7e4079bd7b21cfe52fb431ea79e41314520c3f6d
+
+2018-10-16 12:28 +0000 [75565adb55] Richard Mudgett <rmudgett@digium.com>
+
+ * bundled pjproject: Remove timer cleanup usage patch.
+
+ This patch is not in the upstream pjproject and does unsafe things with
+ the timer->_timer_id and timer->_grp_lock values in pj_timer_entry_reset()
+ outside of the timer heap lock. pj_timer_entry_reset() is also called for
+ timers that are not about to be rescheduled in a few places.
+
+ Change-Id: I4fe0b4bc648f7be5903cf4531b94fc87275713c1
+
+2018-10-11 06:24 +0000 [7c49125f5b] Corey Farrell <git@cfware.com>
+
+ * threadpool: Eliminate pointless AO2 usage.
+
+ thread_worker_pair, set_size_data and task_pushed_data structures are
+ allocated with AO2 objects, passed to a taskprocessor, then released.
+ They never have multiple owners or use locking so AO2 only adds
+ overhead.
+
+ Change-Id: I2204d2615d9d952670fcb48e0a9c0dd1a6ba5036
+
+2018-10-12 12:14 +0000 [6b1a981ee1] Alexei Gradinari <alex2grad@gmail.com>
+
+ * res_pjsip: set callerid_tag to empty string
+
+ This patch sets the callerid_tag to empty string by default.
+
+ If the callerid_tag is set to NULL then the tag does not
+ become part of a connected line update.
+ For example:
+ Alice's tag is "Alice".
+ Bob's tag is empty.
+ Charlie's tag is "Charlie".
+ Alice calls Bob and then does attended transfer to Charlie.
+ When Alice hangs up the CONNECTEDLINE(tag) is "Alice"
+ on the interception routine on the Charlie's channel, but should be empty.
+
+ Ths patch also fix memory leaks if there are more then one options
+ "callerid", "callerid_tag", "voicemail_extension" and "contact_user"
+ in the pjsip.conf endpoint definition.
+
+ Change-Id: I86ba455c4677ca8d516d9a04ce7fb4d24dd576e4
+
+2018-10-12 12:16 +0000 [ebfb8baeed] Corey Farrell <git@cfware.com>
+
+ * main/astfd: Fix GCC8 format-truncation warning.
+
+ The field used to store call arguments was not large enough to hold the
+ arguments string that can be constructed for 'open'. Expand it to
+ prevent this warning/error.
+
+ Change-Id: I514927f256481bc84df10a51b19d5b5fb1bc387e
+
+2018-10-10 06:36 +0000 [c4b979a841] Corey Farrell <git@cfware.com>
+
+ * chan_sip: Tell module loader that chan_sip is extended support.
+
+ Change-Id: I33508c134b1be888b8884f5dcfee19087634e415
+
+2018-10-10 02:54 +0000 [348a23b187] Corey Farrell <git@cfware.com>
+
+ * CI: Disable binary modules when REF_DEBUG is enabled.
+
+ In Asterisk 13 binary modules are linked to the non-REF_DEBUG variants
+ of ao2 functions. Cause false leaks to be reported when binary modules
+ are used.
+
+ Change-Id: I192b1b912ad20b6f46e51dcc0f6fcf2d6cef9e70
+
+2018-10-09 16:18 +0000 [ccdb53a1ca] Richard Mudgett <rmudgett@digium.com>
+
+ * res_statsd.c: Fix returned reload status.
+
+ The return status when there was no change in statsd.conf was incorrect.
+ This resulted in the wrong status message on the CLI when reloading the
+ module.
+
+ * Fixed cleanup on initial load if initializing statsd failed.
+
+ Change-Id: Id24fae75f1a7ff584a444a5680e867d989792481
+
+2018-07-24 10:43 +0000 [3be3d4a730] Corey Farrell <git@cfware.com>
+
+ * CI: Use bundled jansson if needed.
+
+ Use pkg-config to determine if jansson is installed, enabled bundled
+ version otherwise.
+
+ Change-Id: Ib555a8b72ff6f6925f9280ef035caa0b91ca4bd2
+
+2018-10-04 13:13 +0000 [69d62b5d04] Richard Mudgett <rmudgett@digium.com>
+
+ * func_periodic_hook.c: Cleanup module resources on failure.
+
+ * Make load_module() cleanup if it failed to setup the module.
+
+ * Make unload_module() always return 0. It is silly to fail unloading if
+ the hook function we try to unregister was not even registered.
+
+ Change-Id: I280fc6e8ba2a7ee2588ca01d870eebaf74b4ffe6
+
+2018-10-04 11:49 +0000 [f7cc6bada6] Richard Mudgett <rmudgett@digium.com>
+
+ * codec_speex.c: Cleanup module loading to DECLINE and not FAILURE.
+
+ If codec_speex fails to register a translator it would cause Asterisk to
+ exit instead of continue as a DECLINED module.
+
+ * Make unload_module() always return 0. It is silly to fail unloading if
+ any translators we try to unregister were not even registered.
+
+ Change-Id: Ia262591f68333dad17673ba7104d11c88096f51a
+
+2018-10-04 13:03 +0000 [1311aeecfb] George Joseph <gjoseph@digium.com>
+
+ * CI: Fix missing () in gates.jenkinsfile
+
+ Change-Id: I2f252e0f8c7f1a6328438fbd2be5d6574b7dfa5b
+
+2018-10-04 10:13 +0000 [2065fe0c04] George Joseph <gjoseph@digium.com>
+
+ * CI: Add timestamps and timeouts to jenkinsfiles
+
+ Change-Id: Ide83574dc957bc1df28e30a69079140050dfc35f
+
+2018-10-03 16:51 +0000 [1359f673bb] Emmanuel BUU <emmanuel.buu@ives.fr>
+
+ * core/frame: generate correct T.140 payload in ast_sendtext_data()
+
+ ast_sendtext_data() would create an incorrect T.140 text frame which
+ length include the null terminator byte. It causes ultimately RTP
+ packets to be send with this trailing 0. The proposed fix just set the
+ correct length to the text frame
+
+ ASTERISK-28089
+ Reported by: Emmanuel BUU
+ Tested by: Emmanuel BUU
+
+ Change-Id: I7ab1b9ed1e21683b2b667ea0a59d9aba3c77dd96
+
+2018-10-03 17:02 +0000 [4a19205ac7] Sean Bright <sean.bright@gmail.com>
+
+ * ast_coredumper: Remove .gdbinit file on exit
+
+ Change-Id: I1297de78628773ca368e687c6f148bf74857cae9
+
+2018-10-03 09:33 +0000 [e71c1ba045] Sean Bright <sean.bright@gmail.com>
+
+ * CI: Look up configured kernel.core_pattern sysctl
+
+ Change-Id: I8246a0147df8d821fbbcabc1db1887104b8bedc4
+
+2018-10-03 15:51 +0000 [e1ce997437] Corey Farrell <git@cfware.com>
+
+ * jenkins: Fix cleanup command redirection.
+
+ Fix redirection to /dev/null of cleanup commands. The '2' was being
+ interpreted as part of the command instead of part of the redirect.
+
+ Change-Id: I2e3a591b165e0288c4b82b9ef475fdfd5392a90a
+
+2018-10-03 15:29 +0000 [856d0f1312] George Joseph <gjoseph@digium.com>
+
+ * ast_coredumper: Don't use "declare -n"
+
+ Change-Id: I7ddfed4cd6549a0cd458e4d5cf9ac95d784de6cb
+
+2018-10-02 17:15 +0000 [2cec36fcc3] Corey Farrell <git@cfware.com>
+
+ * astobj2: Comment on OBJ_NOLOCK in ao2_container_clone.
+
+ The test for OBJ_NOLOCK looks wrong but it isn't. Add comments to
+ prevent confusion.
+
+ Change-Id: I9662b82eb39e7627a1f1944fd18f967a2b987344
+
+2018-10-03 09:05 +0000 [7c65723f91] Sean Bright <sean.bright@gmail.com>
+
+ * CI: Use brace expansion instead of calling out to seq
+
+ Also make the shebang in publishAsteriskDocs.sh the first line.
+
+ Change-Id: I3fdd6f22e652e4fb5b5fe85df46fa34eb6d0cf08
+
+2018-10-03 08:59 +0000 [71e9a94673] Sean Bright <sean.bright@gmail.com>
+
+ * CI: Use bindport instead of port in test http.conf
+
+ Change-Id: Ife9a6879da63a56e5b8348a2024eeed4e7b1615b
+
+2018-10-03 07:56 +0000 [c27da79ede] Sean Bright <sean.bright@gmail.com>
+
+ * http.c: Reload TLS even if http.conf hasn't changed
+
+ There is currently no way to indicate to Asterisk that TLS certificates
+ and/or keys have been updated other than by modifying http.conf or
+ restarting Asterisk.
+
+ There is already code in main/tcptls.c that determines if a reload is
+ actually necessary based on the hashes of the certicate and dependent
+ files, so this change merely gives us a way to request a reload without
+ explicitly modifying http.conf.
+
+ Change-Id: Ie795420dcc7eb3d91336820688a29adbcc321276
+
+2018-10-01 22:12 +0000 [4ca65bdf17] Corey Farrell <git@cfware.com>
+
+ * core: Disable astobj2 locking for some common objects.
+
+ * ACO options
+ * Indications
+ * Module loader ref_debug object
+ * Media index info and variants
+ * xmldoc items
+
+ These allocation locations were identified using reflocks.py on the
+ master branch.
+
+ Change-Id: Ie999b9941760be3d1946cdb6e30cb85fd97504d8
+
+2018-10-02 16:15 +0000 [d55ded340f] Richard Mudgett <rmudgett@digium.com>
+
+ * res_smdi.c: Fix module ref counting and inverted test.
+
+ I think this module is so screwed up that it doesn't work anymore. Even
+ with these attempts to fix things it still won't gracefully shut down.
+ The module refs will not go to zero to allow unloading the module.
+
+ * Fix module ref counting dealing with the SMDI interface object. There
+ were several off-nominal paths that unbalanced the module ref count. Also
+ the destructor freed the ao2 object itself which is bad. Made the
+ smdi_read thread not hold its own ref to the SMDI interface object so when
+ all refs go away the destructor will stop the listener thread.
+
+ * Fixed the smdi_load() return code of 1 concerning the number of
+ listeners. The test was inverted.
+
+ Change-Id: Ic288db51b58e395d6a2fc3847f77176c16988784
+
+2018-09-13 13:03 +0000 [bdd9f760ae] Corey Farrell <git@cfware.com>
+
+ * Resolve warning about duplicate 'dialplan' CLI.
+
+ Change-Id: I029db1b4a32ccfb38374d6fe944dc430866f4b30
+
+2018-10-02 01:28 +0000 [e3c18f073b] Corey Farrell <git@cfware.com>
+
+ * loader: Fix result of module reload error.
+
+ When a module reload fails we never set AST_MODULE_RELOAD_ERROR. This
+ caused reload failures to incorrectly report 'No module found'.
+
+ Change-Id: I5f3953e0f7d135e53ec797f24c97ee3f73f232e7
+
+2018-09-25 16:19 +0000 [3d03fca94a] Emmanuel BUU <emmanuel.buu@ives.fr>
+
+ * core/frame: Fix ast_frdup() and ast_frisolate() for empty text frames
+
+ If a channel creates an AST_TEXT_FRAME with datalen == 0, the ast_frdup()
+ and ast_frisolate() functions could create a clone frame with an invalid
+ data.ptr which would cause a crash. The proposed fix is to make sure that
+ for such empty text frames, ast_frdup() and ast_frisolate() return cloned
+ text frames with a valid data.ptr.
+
+ ASTERISK-28076
+ Reported by: Emmanuel BUU
+ Tested by: Emmanuel BUU
+
+ Change-Id: Ib882dd028598f13c4c233edbfdd7e54ad44a68e9
+
+2018-09-28 13:55 +0000 [ec52409a53] Richard Mudgett <rmudgett@digium.com>
+
+ * app_queue.c: Fix json ref leak
+
+ Declining the queue_member_status_type stasis message in stasis.conf
+ causes these messages to leak json objects.
+
+ * Add missing ast_json_unref() if the type is NULL in
+ queue_publish_member_blob().
+
+ ASTERISK-28084
+
+ Change-Id: I691ecf49bd1f7d9c29182e1eee8c4bb7103be9fc
+
+2018-09-28 14:45 +0000 [b994c03650] Corey Farrell <git@cfware.com>
+
+ * jansson-bundled: Add patches to improve json_pack error reporting.
+
+ Change-Id: I045e420d5e73e60639079246e810da6ae21ae22b
+
+2018-09-27 19:32 +0000 [95dc10eb72] Corey Farrell <git@cfware.com>
+
+ * lock: Improve performance of DEBUG_THREADS.
+
+ Add a volatile flag to lock tracking structures so we only need to use
+ the global lock when first initializing tracking.
+
+ Additionally add support for DEBUG_THREADS_LOOSE_ABI. This is used by
+ astobj2.c to eliminate storage for tracking fields when DEBUG_THREADS is
+ not defined.
+
+ Change-Id: Iabd650908901843e9fff47ef1c539f0e1b8cb13b
+
+2018-09-10 11:28 +0000 [aa31657e28] Ben Ford <bford@digium.com>
+
+ * res_rtp_asterisk.c: Add "seqno" strictrtp option
+
+ When networks experience disruptions, there can be large gaps of time
+ between receiving packets. When strictrtp is enabled, this created
+ issues where a flood of packets could come in and be seen as an attack.
+ Another option - seqno - has been added to the strictrtp option that
+ ignores the time interval and goes strictly by sequence number for
+ validity.
+
+ Change-Id: I8a42b8d193673899c8fc22fe7f98ea87df89be71
+
+2018-09-27 04:51 +0000 [73fa382227] Corey Farrell <git@cfware.com>
+
+ * astobj2: Reduce memory overhead.
+
+ Reduce options to 2-bit field, magic to 30 bit field. Move ref_counter
+ next to options the fields will pack.
+
+ This reduces memory overhead for every ao2 object by 8 bytes on x86_64.
+
+ Change-Id: Idc1baabb35ec3b3d8de463c4fa3011eaf7fcafb5
+
+2018-09-27 15:01 +0000 [acfc06cfc0] Sean Bright <sean.bright@gmail.com>
+
+ * config.c: Cleanup AST_INCLUDE_GLOB
+
+ * In main/config.c, AST_INCLUDE_GLOB is fixed to '1' making the #ifdefs
+ pointless.
+
+ * In utils/extconf.c, AST_INCLUDE_GLOB is never defined so there is a
+ lot of dead code.
+
+ Change-Id: I1bad1a46d7466ddf90d52cc724e997195495226c
+
+2018-09-25 17:33 +0000 [7d79805d54] Alexei Gradinari <alex2grad@gmail.com>
+
+ * res_pjsip: improve realtime performance on CLI 'pjsip show contacts'
+
+ CLI command 'pjsip show contacts' inefficiently make a lot of DB requests.
+
+ For example if there are 10k aors then asterisk requests these 10k records
+ of aor and then does 10k requests of contact - one request per aor.
+
+ Even if use 'like <pattern>' the asterisk requests all aor's and contact's
+ records and then filters them by itself.
+
+ This patch gathers contact's container by
+ - retrieving all dynamic contacts by regex (filtered by reg_server)
+ - retrieving all aors with permanent contacts
+ - finally filters container by regex
+
+ ASTERISK-28077 #close
+
+ Change-Id: Id0ad65d14952a02fb213273a90f3f680a8149618
+
+2018-09-27 05:33 +0000 [1f5c2a2d0d] Corey Farrell <git@cfware.com>
+
+ * astobj2: Fix shutdown order.
+
+ When REF_DEBUG and AO2_DEBUG are both enabled we closed the refs log
+ before we shutdown astobj2_container. This caused the AO2_DEBUG
+ container registration container to be reported as a leak.
+
+ Change-Id: If9111c4c21c68064b22c546d5d7a41fac430430e
+
+2018-06-26 09:17 +0000 [27c46b8ff3] Moritz Fain <moritz@fain.io>
+
+ * res_stasis: Fix stale data in ARI bridges
+
+ Fixed an issue that resulted in "Allocation failed" each time an ARI
+ request was made to start playing MOH on a bridge.
+
+ In bridge_moh_create() we were attaching the after bridge callbacks to
+ chan which is the ;1 channel of the unreal channel pair. We should have
+ attached them to the ;2 channel which is pushed into the bridge by
+ ast_unreal_channel_push_to_bridge(). The callbacks are called when the
+ specific channel leaves the bridging system. Since the ;1 channel is
+ never put into a bridge the callbacks never get called. The callbacks
+ then never remove the moh_wrapper from the app_bridges_moh container. As
+ a result we cannot find the channel associated with the wrapper to start
+ MOH because it has hungup. This is the reason causing the reported issue.
+
+ * Rather than using after bridge callbacks to cleanup, we now have
+ moh_channel_thread() doing the cleanup when the channel hangs up.
+
+ * Fixed moh_channel_thread() accumulating control frames on the stasis
+ bridge MOH channel until MOH is stopped. Control frames are no longer
+ accumulated while MOH is playing.
+
+ * Fixed channel ref counting issue. stasis_app_bridge_moh_channel() may
+ or may not return a channel ref. As a result ast_ari_bridges_start_moh()
+ wouldn't know it may have a channel ref to release.
+ stasis_app_bridge_moh_channel() will now return a ref with the channel it
+ returns.
+
+ * Eliminated RAII_VAR in bridge_moh_create().
+
+ ASTERISK-26094 #close
+
+ Change-Id: Ibff479e167b3320c68aaabfada7e1d0ef7bd548c
+
+2018-09-05 21:14 +0000 [74c5c1cd1b] Cao Minh Hiep <chiep@infinitalk.co.jp>
+
+ * app_queue: Fix Attended transfer hangup with removing pending member.
+
+ This issue related to setting of holdtime, announcements, member delays.
+ It works well if we set the member delays to "0" and no announcements
+ and no holdtime.This issue will happen if we set member delays to "1",
+ "2"... or announcements or holdtime and hangs up the call during
+ processing it.
+
+ And here is the reason:
+ (At the step of answering a phone.)
+ It takes care any holdtime, announcements, member delays,
+ or other options after a call has been answered if it exists.
+
+ Normally, After the call has been aswered,
+ and we wait for the processing one of the cases of the member delays
+ or hold time or announcements finished, "if (ast_check_hangup(peer))"
+ will be not executed, then queue will be updated at update_queue().
+ Here, pending member will be removed.
+
+ However, after the call has been aswered,
+ if we hangs up the call during one of the cases of the member delays
+ or hold time or announcements, "if (ast_check_hangup(peer))"
+ will be executed.
+ outgoing = NULL and at hangupcalls, pending members will not be removed.
+
+ * This fixed patch will remove the pending member from container
+ before hanging up the call with outgoing is NULL.
+
+ ASTERISK-27920
+
+ Reported by: Cao Minh Hiep
+ Tested by: Cao Minh Hiep
+
+ Change-Id: Ib780fbf48ace9d2d8eaa1270b9d530a4fc14c855
+
+2018-09-26 08:12 +0000 [97f4290421] George Joseph <gjoseph@digium.com>
+
+ * CI: Add --test-timeout option to runTestsuite.sh
+
+ The default is 600 seconds.
+ Also added timeouts to the *TestGroups.json files.
+
+ Change-Id: I8ab6a69e704b6a10f06a0e52ede02312a2b72fe0
+
+2018-09-24 12:43 +0000 [155ff8e174] Joshua Colp <jcolp@digium.com>
+
+ * res_rtp_asterisk: Raise event when RTP port is allocated
+
+ This change raises a testsuite event to provide what port
+ Asterisk has actually allocated for RTP. This ensures that
+ testsuite tests can remove any assumption of ports and instead
+ use the actual port in use.
+
+ ASTERISK-28070
+
+ Change-Id: I91bd45782e84284e01c89acf4b2da352e14ae044
+
+2018-07-16 22:55 +0000 [9c35f80adf] Corey Farrell <git@cfware.com>
+
+ * jansson: Backport fixes to bundled, use json_vsprintf if available.
+
+ Use json_vsprintf from versions which contain fix for va_copy leak.
+
+ Apply fixes from jansson master:
+ * va_copy leak fix.
+ * Avoid potential invalid memory read in json_pack.
+ * Rename variable that shadowed another.
+
+ Change-Id: I7522e462d2a52f53010ffa1e7d705c666ec35539
+
+2018-09-17 15:35 +0000 [286cf80bec] Kevin Harwell <kharwell@digium.com>
+
+ * rtp_engine: rtcp_report_to_json can overflow the ssrc integer value
+
+ When writing an RTCP report to json the code attempts to pack the "ssrc" and
+ "source_ssrc" unsigned integer values as a signed int value type. This of course
+ means if the ssrc's unsigned value is greater than that which can fit into a
+ signed integer value it gets converted to a negative number. Subsequently, the
+ negative value goes out in the json report.
+
+ This patch now packs the value as a json_int_t, which is the widest integer type
+ available on a given system. This should make it so the value no longer
+ overflows.
+
+ Note, this was caught by two failing tests hep/rtcp-receiver/ and
+ hep/rtcp-sender.
+
+ Change-Id: I2af275286ee5e795b79f0c3d450d9e4b28e958b0
+
+2018-09-21 14:32 +0000 [656b3e85cf] George Joseph <gjoseph@digium.com>
+
+ * app_voicemail: Fix stack overrun in append_mailbox
+
+ The append_mailbox function wasn't calculating the correct length
+ to pass to ast_alloca and it wasn't handling the case where context
+ might be empty.
+
+ Found by the Address Sanitizer.
+
+ Change-Id: I7eb51c7bd18a7a8dbdba261462a95cc69e84f161
+
+2018-09-21 15:23 +0000 [1948fbe439] George Joseph <gjoseph@digium.com>
+
+ * channel.c: Address stack overflow in does_id_conflict()
+
+ does_id_conflict() was passing a pointer to an int to a callback
+ that expected a pointer to a size_t.
+
+ Found by the Address Sanitizer.
+
+ Change-Id: I0ff542067eef63a14a60301654d65d34fe2ad503
+
+2018-09-20 13:59 +0000 [37c1f35922] Alexei Gradinari <alex2grad@gmail.com>
+
+ * res_odbc: fix missing SQL error diagnostic
+
+ On SQL error there is not diagnostic information about this error.
+ There is only
+ WARNING res_odbc.c: SQL Execute error -1!
+
+ The function ast_odbc_print_errors calls a SQLGetDiagField to get the number
+ of available diagnostic records, but the SQLGetDiagField returns 0.
+ However SQLGetDiagRec could return one diagnostic records in this case.
+
+ Looking at many example of getting diagnostics error information
+ I found out that the best way it's to use only SQLGetDiagRec
+ while it returns SQL_SUCCESS.
+
+ Also this patch adds calls of ast_odbc_print_errors on SQL_ERROR
+ to res_config_odbc.
+
+ ASTERISK-28065 #close
+
+ Change-Id: Iba5ae5470ac49ecd911dd084effbe9efac68ccc1
+
+2018-09-20 15:26 +0000 [3033242a7b] Sean Bright <sean.bright@gmail.com>
+
+ * res_rtp_asterisk: Reset all settings on module reload
+
+ 'rtpchecksums' and 'rtcpinterval' are not being reset to their defaults
+ if they are not present in the updated configuration file.
+
+ Change-Id: I1162e40199314d46cf3225d5e1271c4c81176670
+
+2018-09-20 10:15 +0000 [7bdf1d3c67] George Joseph <gjoseph@digium.com>
+
+ * app_voicemail: Cleanup mailbox topic and cache
+
+ app_voicemail wasn't properly cleaning up the stasis cache or the
+ mwi topic pool when the module was unloaded or when a user was
+ deleted as a result of a reload. This resulted in leaks in both
+ areas.
+
+ * app_voicemail now calls ast_delete_mwi_state_full when it frees
+ a user structure and ast_delete_mwi_state_full in turn now calls
+ the new stasis_topic_pool_delete_topic function to clear the topic
+ from the pool.
+
+ Change-Id: Ide23144a4a810e7e0faad5a8e988d15947965df8
+
+2018-08-16 10:45 +0000 [33ca3664ca] Sean Bright <sean.bright@gmail.com>
+
+ * AST-2018-009: Fix crash processing websocket HTTP Upgrade requests
+
+ The HTTP request processing in res_http_websocket allocates additional
+ space on the stack for various headers received during an Upgrade request.
+ An attacker could send a specially crafted request that causes this code
+ to overflow the stack, resulting in a crash.
+
+ * No longer allocate memory from the stack in a loop to parse the header
+ values. NOTE: There is a slight API change when using the passed in
+ strings as is. We now require the passed in strings to no longer have
+ leading or trailing whitespace. This isn't a problem as the only callers
+ have already done this before passing the strings to the affected
+ function.
+
+ ASTERISK-28013 #close
+
+ Change-Id: Ia564825a8a95e085fd17e658cb777fe1afa8091a
+
+2018-09-20 09:41 +0000 [1d141112b5] George Joseph <gjoseph@digium.com>
+
+ * stasis: Add function to delete topic from pool
+
+ There's been a long standing leak when using topic pools. The
+ topics in the pool get cleaned up when the last pool reference is
+ released but you can't remove a topic specifically. If you reloaded
+ app_voicemail for instance, and mailboxes went away, their topics
+ were left in the pool.
+
+ * Added stasis_topic_pool_delete_topic() so modules can clean up
+ topics from pools.
+ * Registered the topic pool containers so it can be examined from
+ the CLI when AO2_DEBUG is enabled. They'll be named
+ "<topic_pool_name>-pool".
+
+ Change-Id: Ib7957951ee5c9b9b4482af7b9b4349112d62bc25
+
+2018-09-13 11:06 +0000 [94a4eea7f6] George Joseph <gjoseph@digium.com>
+
+ * stasis_cache: Stop caching stasis subscription change messages
+
+ Since app_voicemail no longer uses the cache to maintain its state
+ there is no longer a need to cache these messages.
+
+ ASTERISK-27121
+
+ Change-Id: I321c708505f5ad8d00e1b0afc4c27dc2ac12ecb4
+
+2018-09-14 15:51 +0000 [ac18bb23a9] Richard Mudgett <rmudgett@digium.com>
+
+ * stasis: No need to keep a stasis type ref in a stasis msg or cache object.
+
+ Stasis message types are global ao2 objects and we make stasis messages
+ and cache entries hold references to them. Since there are currently
+ situations where cache objects are never deleted, the reference count on
+ the types can exceed 100000 and generate a FRACK assertion message. The
+ stasis message cache could conceivably also have that many messages
+ legitimately on large systems.
+
+ The only down side to not holding the message type ref in the stasis
+ message is it only makes a crash either at shutdown or when manually
+ unloading a busy module slightly more likely. However, this is more
+ exposing a pre-existing stasis shutdown ordering issue than a problem with
+ not holding a message type ref in stasis messages.
+
+ * Made stasis messages and cache entries no longer hold a ref to the
+ message type.
+
+ Change-Id: Ibaa28efa8d8ad3836f0c65957192424c7f561707
+
+2018-09-18 13:59 +0000 [418eb22ba6] Richard Mudgett <rmudgett@digium.com>
+
+ * pjproject: Update initial 2.8 patches to apply cleanly.
+
+ ASTERISK-28059
+
+ Change-Id: I027472f2753391646dde594a709a75f14422db93
+
+2018-09-14 15:48 +0000 [2f84ff9728] Richard Mudgett <rmudgett@digium.com>
+
+ * stasis_message.c: Don't create immutable stasis objects with locks.
+
+ * Create the stasis message object without a lock as it is immutable.
+ * Create the stasis message type object without a lock as it is immutable.
+ * Creating the stasis message type could crash if the passed in type name
+ is NULL and REF_DEBUG is enabled. Added missing NULL check when passing
+ the ao2 object tag string.
+
+ Change-Id: I28763c58bb9f0b427c11971d0103bf94055e7b32
+
+2018-09-18 09:39 +0000 [8539f6a657] Florian Floimair <f.floimair@commend.com>
+
+ * alembic: fix suppress_q850_reason_headers column name
+
+ In the original commit introducing the feature the column in the alembic
+ script was called 'suppress_q850_reason_header'.
+ In the code however the option is called 'suppress_q850_reason_headers'
+ (trailing 's'). This leads to errors when ARI push configuration is used.
+
+ Change-Id: Ie84808adbca6fcc9136556e4f5d741adbef5d14f
+
+2018-09-18 08:01 +0000 [84c574bb8b] Peter Katzmann <peter.katzmann@edag.de>
+
+ * chan_sip: SipNotify on Chan_Sip vi AMI behave different to CLI
+
+ With tls and udp enabled asterisk generates a warning about sending
+ message via udp instead of tls.
+ sip notify command via cli works as expected and without warning.
+
+ asterisk has to set the connection information accordingly to connection
+ and not on presumption
+
+ ASTERISK-28057 #close
+
+ Change-Id: Ib43315aba1f2c14ba077b52d8c5b00be0006656e
+
+2018-09-13 07:55 +0000 [1843b0e2b5] George Joseph <gjoseph@digium.com>
+
+ * app_voicemail: Remove need to subscribe to stasis
+
+ app_voicemail was using the stasis cache to build and maintain a
+ list of mailboxes that had subscribers. It then used this list
+ to determine if a mailbox should be polled for new messages if
+ polling was enabled. For this to work, stasis had to cache every
+ subscription and unsubscription to the mailbox which caused a lot of
+ overhead, both cpu and memory related.
+
+ Since polling is only required when changes are being made to
+ mailboxes outside of app_voicemail and since the number of mailboxes
+ that don't have any subscribers is likely to be very low, all
+ mailboxes are now polled instead of just the ones with subscribers.
+
+ This paves the way for disabling the caching of stasis subscription
+ change messages.
+
+ Also fixed cleanup in some of the unit tests that not only left
+ test users in the users list but also caused segfaults if the tests
+ were run more than once.
+
+ ASTERISK-27121
+
+ Change-Id: I5cceb737246949f9782955c64425b8bd25a9e9ee
+
+2018-09-17 11:38 +0000 [cd2deadb69] Joshua Colp <jcolp@digium.com>
+
+ * pjproject: Upgrade to 2.8.
+
+ This change brings in PJSIP 2.8, removes all the patches
+ that were merged upstream, and makes a minor change to
+ support a breaking change that was done.
+
+ ASTERISK-28059
+
+ Change-Id: I5097772b11b0f95c3c1f52df6400158666f0a189
+
+2018-09-17 10:38 +0000 [99b2e0c2ff] Sean Bright <sean.bright@gmail.com>
+
+ * autoconf: Check for srtp_get_version_string() before using it
+
+ Change-Id: Id2a916ff9448706090e72ff2c7fb3f5ba24a05df
+
+2018-09-17 07:10 +0000 [0b88512a4d] George Joseph <gjoseph@digium.com>
+
+ * CI: Fix typo in testsuite git checkout
+
+ Change-Id: I30024515e5b00a5044fd39fbff27d818f016b719
+
+2018-09-16 06:08 +0000 [44375c0616] Sean Bright <sean.bright@gmail.com>
+
+ * res_srtp.c: Show linked version of libsrtp on module init
+
+ Change-Id: Ib0a645d6985de5757cc4399ed2524b2d02c4f342
+
+2018-09-07 09:40 +0000 [d3c869c736] Sean Bright <sean.bright@gmail.com>
+
+ * res_pjsip: Log IPv6 addresses correctly
+
+ Both pjsip_tx_data.tp_info.dst_name and pjsip_rx_data.pkt_info.src_name
+ store IPv6 addresses without enclosing brackets. This causes some log
+ output to be confusing because it is difficult to separate the IPv6
+ address from a port specification.
+
+ * Use pj_sockaddr_print() along with pjsip_tx_data.tp_info.dst_addr and
+ pjsip_rx_data.pkt_info.src_addr where possible for consistent IPv6
+ output.
+
+ * When a pj_sockaddr is not available, explicitly wrap IPv6 addresses
+ in brackets.
+
+ * When assigning pjsip_rx_data.pkt_info.src_name ourselves, make sure
+ to also set pjsip_rx_data.pkt_info.src_addr.
+
+ Change-Id: I5cfe997ced7883862a12b9c7d8551d76ae02fcf8
+
+2018-09-14 12:31 +0000 [52324ef1a1] George Joseph <gjoseph@digium.com>
+
+ * CI: Use proper credentials for Security testsuite checkout
+
+ Can't do anonymous http checkout from Security-testsuite.
+ Need to use same credentials as the gerrit review checkout.
+
+ Change-Id: I87af68c995cb8926f5e87f9af245600d76984f05
+
+2018-09-12 12:39 +0000 [d1f6a323a0] Corey Farrell <git@cfware.com>
+
+ * CI: Use .gitreview to default BRANCH_NAME.
+
+ This ensures that binary modules are avoided in the master branch even
+ if BRANCH_NAME is not set.
+
+ Change-Id: I79162d2063f22fa9d6b31fde4827ace2dd5bf0da
+
+2018-09-11 07:08 +0000 [d226458c5b] Walter Doekes <walter+asterisk@wjd.nu>
+
+ * optional_api: Remove unused nonoptreq fields
+
+ As they're not actively used, they only grow stale. The moduleinfo field itself
+ is kept in Asterisk 13/15 for ABI compatibility.
+
+ ASTERISK-28046 #close
+
+ Change-Id: I8df66a7007f807840414bb348511a8c14c05a9fc
+
+2018-09-12 07:18 +0000 [931b68d3e6] Sean Bright <sean.bright@gmail.com>
+
+ * res_pjproject: Fix sockaddr conversion routines for non-bundled PJSIP
+
+ The bundled version of pjproject has a patch for Solaris compatability
+ that changes the definition of various socket structures which we need
+ to account for when compiling against a non-bundled version.
+
+ ASTERISK-28049 #close
+
+ Change-Id: Ia1ea47c433fc2d915115193ee889a752373925f0
+
+2018-09-10 22:28 +0000 [436daa50ff] Corey Farrell <git@cfware.com>
+
+ * Build System: Resolve conflict between DESTDIR and bundled jansson.
+
+ If Asterisk is built using a DESTDIR this will cause the bundled jansson
+ to be installed to an unexpected location and we will fail to find it.
+
+ Change-Id: Id033e2813261e0d45232383d44c6391122169548
+
+2018-08-30 03:42 +0000 [a5f87a3a36] Frederic LE FOLL <frederic.lefoll@c-s.fr>
+
+ * res_musiconhold.c: Restart MOH if previous hold just reached end-of-file
+
+ On MOH activation, moh_files_readframe() is called while the current
+ stream attached to the channel is NULL and it calls ast_moh_files_next()
+ immediately. However, it won't call ast_moh_files_next() again if sample
+ reading fails. The failure may occur because res_musiconhold retains the
+ last sample reading position in the channel data and MOH during the
+ previous hold/retrieve just reached EOF. Obviously, a bit of bad luck is
+ required here.
+
+ * Restructured moh_files_readframe() to try a second time to start MOH if
+ there was no stream setup and the saved position was at EOF. Also added
+ comments describing what is going on for each step.
+
+ ASTERISK-28029
+
+ Change-Id: I1508cf2c094f8feca22d6f76deaa9fdfa9944860
+
+2018-09-03 06:28 +0000 [eda1af091e] lvl <digium@lvlconsultancy.nl>
+
+ * app_queue: Update realtime queuemembers after wait_a_bit(), not before
+
+ This ensures the most up-to-date information is used for the next
+ call attempt.
+
+ ASTERISK-28032
+
+ Change-Id: I02fc17c6ffb50bb60ea97c2d2e6023e8061815ce
+
+2018-08-28 08:42 +0000 [b0ef54af71] Sean Bright <sean.bright@gmail.com>
+
+ * res_pjproject: Add utility functions to convert between socket structures
+
+ Currently, to convert from a pj_sockaddr to an ast_sockaddr, the address
+ needs to be rendered to a string and then parsed into the correct
+ structure. This also involves a call to getaddrinfo(3). The same is true
+ for the inverse operation.
+
+ Instead, because we know the internal structure of both ast_sockaddr and
+ pj_sockaddr, we can translate directly between the two without the
+ need for an intermediate string.
+
+ Change-Id: If0fc4bba9643f755604c6ffbb0d7cc46020bc761
+
+2018-08-30 13:08 +0000 [87550706c8] George Joseph <gjoseph@digium.com>
+
+ * stasis_cache: Prune stasis_subscription_change messages
+
+ The stasis cache provides a way to reconstruct the current state
+ of topic subscribers. Unfortunately, since every subscribe and
+ unsubscribe is cached, the cache continues to grow unabated while
+ asterisk is running. This patch removes subscribe messages from
+ the cache when the corresponding unsubscribe is received.
+
+ This patch also registers the cache containers with ao2 so that if
+ AO2_DEBUG is turned on, you can list the container and get its
+ stats from the CLI.
+
+ ASTERISK-27121
+
+ Change-Id: I3d18905e477f3721815da91f30da8d3fbb2d4f56
+
+2018-09-03 09:27 +0000 [17040d1ce3] Rodrigo Ramírez Norambuena <a@rodrigoramirez.com>
+
+ * app_dial: set the comment for OPT_ARG_ANNOUNCE to really what is done
+
+ Change-Id: I08f88adb09f7e5813f37e70fecd787468cdb32c8
+
+2018-08-15 14:27 +0000 [7b898dd8e1] Chris-Savinovich <csavinovich@digium.com>
+
+ * pbx_config.c: Fix reloading module if initially declined to load
+
+ Added decline if extensions.conf file not available
+ when loading pbx_config, and also made sure everything
+ gets properly unregistered and/or destroyed on unload.
+
+ Change-Id: Ib00665106043b1be5148ffa7a477396038915854
+
+2018-08-30 14:42 +0000 [4e20fe9f06] Richard Mudgett <rmudgett@digium.com>
+
+ * http.c: Give HTTP error response when received lines are too long.
+
+ Added a check when we receive a HTTP request line or header line that is
+ too long. We now return an error response to the sender because we are
+ not able to process the request.
+
+ Change-Id: I6df2705435fd7dde4d5d3bdf7acec859cfb7c12d
+
+2018-08-06 15:37 +0000 [f2266602a1] Richard Mudgett <rmudgett@digium.com>
+
+ * res_pjsip: Fix mwi_subscribe_replaces_unsolicited type mismatch
+
+ ASTERISK-27988
+
+ Change-Id: Iccafdd0552ea8aaed647620fb14499f1bf341843
+
+2018-08-16 09:04 +0000 [00e5c7d0ff] Rodrigo Ramírez Norambuena <a@rodrigoramirez.com>
+
+ * make config: os-release output error.
+
+ Fix not show the error
+ "/bin/sh: /etc/os-release: No such file or directory" when the command
+ 'make config' is run in a System without systemv.
+
+ The instruction 'make config' pre execute the syntax
+ "$(shell . /etc/os-release && echo $$ID)" to identified if system is a
+ Slackware and Opensuse.
+
+ This change prevent show the message and is send to the /dev/null
+
+ Change-Id: I7f43e281a8d9405b2519fc653de82d9b8b645fdf
+
+2018-08-29 05:18 +0000 [fa71f498ce] Joshua Colp <jcolp@digium.com>
+
+ * res_fax: Handle fax gateway being started more than once.
+
+ The T.38 fax gateway state machine can cause the fax gateway
+ to be started more than once on a channel depending on the
+ responses of the remote endpoint. This would previously leak
+ the channel name, channel unique id, and underlying fax engine
+ state. This change instead makes it so that if the fax gateway
+ session is already present and not reserved the fax gateway
+ is not started again.
+
+ ASTERISK-27981
+
+ Change-Id: I552d95086860cb18f2522ee40ef47b13b6da2e0e
+
+2018-08-28 08:01 +0000 [f3188a634d] Sean Bright <sean.bright@gmail.com>
+
+ * res_pjsip_transport_websocket: Properly set src_name for IPv6
+
+ SIP responses over WebSockets when the client is using IPv6 have invalid
+ Via headers according to RFC 3261. The 'received' header parameter
+ should not be wrapped in brackets if it is an IPv6 address.
+
+ When src_name is populated by the built-in PJSIP transports, the code
+ uses pj_sockaddr_print() with 'flags' set to 0, meaning that the
+ brackets are not rendered around IPv6 addresses.
+
+ This may be related to ASTERISK~27101.
+
+ See also: https://github.com/onsip/SIP.js/pull/594
+
+ ASTERISK-28020 #close
+
+ Change-Id: I8ea9d289901b837512bee2ca2535e3dc14f04d77
+
+2018-08-26 13:18 +0000 [abb04622f7] Corey Farrell <git@cfware.com>
+
+ * Create --disable-binary-modules option.
+
+ This new option can be passed for ./configure or
+ ./tests/CI/buildAsterisk.sh to prevent download/install of binary
+ modules.
+
+ Normally enabling the categories MENUSELECT_CODECS or MENUSELECT_RES
+ will result in binary modules being enabled even if the build target is
+ incompatible with those modules. This includes CI scripts which enable
+ categories before disabling specific modules.
+
+ If more binary modules are offered in the future this will help avoid
+ accidentally downloading them if unwanted or incompatible. Adding a
+ binary module will only require creating a new menuselect entry similar
+ to the existing ones, it will not be necessary to modify the CI scripts.
+
+ Change-Id: I6b1bd1c75a2e48f05b8b8a45b7a7a2d00a079166
+
+2018-08-28 19:07 +0000 Asterisk Development Team <asteriskteam@digium.com>
+
+ * asterisk 13.23.0-rc1 Released.
+
+2018-08-13 08:12 +0000 [2a5d408733] Jaco Kroon <jaco@uls.co.za>
+
+ * chan_sip: improved ip:port finding of peers for non-UDP transports.
+
+ Also remove function peer_ipcmp_cb since it's not used (according to
+ rmudgett).
+
+ Prior to b2c4e8660a9c89d07041271371151779b7ec75f6 (ASTERISK_27457)
+ insecure=port was the defacto standard. That commit also prevented
+ insecure=port from being applied for sip/tcp or sip/tls.
+
+ Into consideration there are three sets of behaviour:
+
+ 1. "previous" - before the above commit.
+ 2. "current" - post above commit, pre this one.
+ 3. "new" - post this commit.
+
+ The problem that the above commit tried to address was guests over TCP.
+ It succeeded in doing that but broke transport!=udp with host!=dynamic.
+
+ This commit attempts to restore sane behaviour with respect to
+ transport!=udp for host!=dynamic whilst still retaining the guest users
+ over tcp.
+
+ It should be noted that when looking for a peer, two passes are made, the
+ first pass doesn't have SIP_INSECURE_PORT set for the searched-for peer,
+ thus looking for full matches (IP + Port), the second pass sets
+ SIP_INSECURE_PORT, thus expecting matches on IP only where the matched
+ peer allows for that (in the author's opinion: UDP with insecure=port,
+ or any TCP based, non-dynamic host).
+
+ In previous behaviour there was special handling for transport=tcp|tls
+ whereby a peer would match during the first pass if the utilized
+ transport was TCP|TLS (and the peer allowed that specific transport).
+
+ This behaviour was wrong, or dubious at best. Consider two dynamic tcp
+ peers, both registering from the same IP (NAT), in this case either peer
+ could match for connections from an IP. It's also this behaviour that
+ prevented SIP guests over tcp.
+
+ The above referenced commit removed this behaviour, but kept applying
+ the SIP_INSECURE_PORT only to WS|WSS|UDP. Since WS and WSS is also TCP
+ based, the logic here should fall into the TCP category.
+
+ This patch updates things such that the previously non-explicit (TCP
+ behaviour) transport test gets performed explicitly (ie, matched peer
+ must allow for the used transport), as well as the indeterministic
+ source-port nature of the TCP protocol is taken into account. The new
+ match algorithm now looks like:
+
+ 1. As per previous behaviour, IP address is matched first.
+
+ 2. Explicit filter with respect to transport protocol, previous
+ behaviour was semi-implied in the test for TCP pure IP match - this now
+ made explicit.
+
+ 3. During first pass (without SIP_INSECURE_PORT), always match on port.
+
+ 4. If doing UDP, match if matched against peer also has
+ SIP_INSECURE_PORT, else don't match.
+
+ 5. Match if not a dynamic host (for non-UDP protocols)
+
+ 6. Don't match if this is WS|WSS, or we can't trust the Contact address
+ (presumably due to NAT)
+
+ 7. Match (we have a valid Contact thus if the IP matches we have no
+ choice, this will likely only apply to non-NAT).
+
+ To logic-test this we need a few different scenarios. Towards this end,
+ I work with a set number of peers defined in sip.conf:
+
+ [peer1]
+ host=1.1.1.1
+ transport=tcp
+
+ [peer2]
+ host=1.1.1.1
+ transport=udp
+
+ [peer3]
+ host=1.1.1.1
+ port=5061
+ insecure=port
+ transport=udp
+
+ [peer4]
+ host=1.1.1.2
+ transport=udp,tcp
+
+ [peer5]
+ host=dynamic
+ transport=udp,tcp
+
+ Test cases for UDP:
+
+ 1 - incoming UDP request from 1.1.1.1:
+ - previous:
+ - pass 1:
+ * peer1 or peer2 if from port 5060 (indeterminate, depends on peer
+ ordering)
+ * peer3 if from port 5061
+ * peer5 if registered from 1.1.1.1 and source port matches
+ - pass 2:
+ * peer3
+ - current: as per previous.
+ - new:
+ - pass 1:
+ * peer2 if from port 5060
+ * peer3 if from port 5061
+ * peer5 if registered from 1.1.1.1 and source port matches
+ - pass 2:
+ * peer3
+
+ 2 - incoming UDP request from 1.1.1.2:
+ - previous:
+ - pass 1:
+ * peer5 if registered from 1.1.1.2 and port matches
+ * peer4 if source port is 5060
+ - pass 2:
+ * no match (guest)
+ - current: as previous.
+ - new as previous (with the variation that if peer5 didn't have udp as
+ allowed transport it would not match peer5 whereas previous
+ and current code could).
+
+ 3 - incoming UDP request from anywhere else:
+ - previous:
+ - pass 1:
+ * peer5 if registered from that address and source port matches.
+ - pass 2:
+ * peer5 if insecure=port is additionally set.
+ * no match (guest)
+ - current - as per previous
+ - new - as per previous
+
+ Test cases for TCP based transports:
+
+ 4 - incoming TCP request from 1.1.1.1
+ - previous:
+ - pass 1 (indeterministic, depends on ordering of peers in memory):
+ * peer1; or
+ * peer5 if peer5 registered from 1.1.1.1 (irrespective of source port); or
+ * peer2 if the source port happens to be 5060; or
+ * peer3 if the source port happens to be 5061.
+ - pass 2: cannot happen since pass 1 will always find a peer.
+ - current:
+ - pass 1:
+ * peer1 or peer2 if from source port 5060
+ * peer3 if from source port 5060
+ * peer5 if registered as 1.1.1.1 and source port matches
+ - pass 2:
+ * no match (guest)
+ - new:
+ - pass 1:
+ * peer 1 if from port 5060
+ * peer 5 if registered and source port matches
+ - pass 2:
+ * peer 1
+
+ 5 - incoming TCP request from 1.1.1.2
+ - previous (indeterminate, depends on ordering):
+ - pass 1:
+ * peer4; or
+ * peer5 if peer5 registered from 1.1.1.2
+ - pass 2: cannot happen since pass 1 will always find a peer.
+ - current:
+ - pass 1:
+ * peer4 if source port is 5060
+ * peer5 if peer5 registered as 1.1.1.2 and source port matches
+ - pass 2:
+ * no match (guest).
+ - new:
+ - pass 1:
+ * peer4 if source port is 5060
+ * peer5 if peer5 registered as 1.1.1.2 and source port matches
+ - pass 2:
+ * peer4
+
+ 6 - incoming TCP request from anywhere else:
+ - previous:
+ - pass 1:
+ * peer5 if registered from that address
+ - pass 2: cannot happen since pass 1 will always find a peer.
+ - current:
+ - pass 1:
+ * peer5 if registered from that address and port matches.
+ - pass 2:
+ * no match (guest)
+ - new: as per current.
+
+ It should be noted the test cases don't make explicit mention of TLS, WS
+ or WSS. WS and WSS previously followed UDP semantics, they will now
+ enforce source port matching. TLS follow TCP semantics.
+
+ The previous commit specifically tried to address test-case 6, but broke
+ test-cases 4 and 5 in the process.
+
+ ASTERISK-27881 #close
+
+ Change-Id: I61a9804e4feba9c7224c481f7a10bf7eb7c7f2a2
+
+2018-08-20 07:23 +0000 [b528715fa0] Jaco Kroon <jaco@uls.co.za>
+
+ * AMI: be less verbose when adding HTTP headers to AMI/HTTP messages.
+
+ All HTTP/AMI message headers are being sent to the verbose channel.
+ There are multiple places this is happening. Consolidate the loop into
+ a function. Drop the debug/verbose message.
+
+ Convert to using ast_asprintf to perform the length calculation, memory
+ allocation and snprintf all in one step.
+
+ Change-Id: Ic45e673fde05bd544be95ad5cdbc69518207c1a1
+
+2018-08-22 10:50 +0000 [adb3195697] Matthew Fredrickson <creslin@digium.com>
+
+ * sample_configs: noload res_hep.so by default
+
+ Change disables loading of res_hep.so in default installation. Loading
+ res_hep has a performance impact whether it's used or not. This disables
+ loading of it in sample config files.
+
+ Change-Id: I5ec150cf941634fabc72973e5bf1a965cb0ef9d0
+ (cherry picked from commit c8bacd45f17d2ae6f6d05c8cff538dd651f683a6)
+
+2018-08-23 06:57 +0000 [1928e00d90] Florian Floimair <f.floimair@commend.com>
+
+ * alembic: increase uri column size
+
+ When mobile SIP clients register with Asterisk that use some sort of
+ push notifications, the URI can get quite lengthy due to the
+ additional push-service annotations (things like tokens, pn-type, etc.)
+ contained in it.
+
+ ASTERISK-28022 #close
+
+ Change-Id: I08e17b37af5a446c36cc7d1f903861f81fd41cca
+
+2018-08-21 13:50 +0000 [b9d9c0a8b9] Sean Bright <sean.bright@gmail.com>
+
+ * app_queue: Silence GCC 8 compiler warning
+
+ I'm only seeing an error in 14+, so I assume it is due to different
+ compiler options:
+
+ app_queue.c: In function ‘handle_queue_add_member’:
+ app_queue.c:10234:19: error: ‘%d’ directive writing between 1 and 11
+ bytes into a region of size 3 [-Werror=format-overflow=]
+ sprintf(num, "%d", state);
+ ^~
+ app_queue.c:10234:18: note: directive argument in the range
+ [-2147483648, 99]
+ sprintf(num, "%d", state);
+ ^~~~
+
+ Compiler: gcc version 8.0.1 20180414 (experimental)
+ [trunk revision 259383] (Ubuntu 8-20180414-1ubuntu2)
+
+ Change-Id: I18577590da46829c1ea7d8b82e41d69f105baa10
+
+2018-08-21 18:45 +0000 [6964bc37e0] Alec Davis <sivad.a@paradise.net.nz>
+
+ * chan_sip: remove unnecessary ast_channel_unlock(peer) as RAII looks after it
+
+ Otherwise console output
+
+ (get_refer_info): mutex 'peer' freed more times than we've locked!
+ (get_refer_info): Error releasing mutex: Operation not permitted
+
+ or
+ (get_refer_info): attempted unlock mutex 'peer' without owning it!
+ (__ast_read): 'peer' was locked here.
+ ...dump_backtrace
+
+ (get_refer_info): Error releasing mutex: Operation not permitted
+ (__ast_read): mutex 'chan' freed more times than we've locked!
+
+ ASTERISK-28011 #close
+
+ Change-Id: I6e45f2764ba4f3273a943300f91ac9b461ac2893
+
+2018-08-21 07:59 +0000 [49d388bfa8] Emmanuel BUU <emmanuel.buu@ives.fr>
+
+ * res/res_rtp_asterisk: remove debug traces generated by an empty frame
+
+ The realtime text timer pops regularly and sends text frames even if
+ the buffer is empty. This causes a lot of unecessary debug logging.
+
+ * Made red_write() test if we need to send a frame before calling
+ ast_rtp_write()
+
+ ASTERISK-28002
+ Reported by: Emmanuel BUU
+ Tested by: Emmanuel BUU
+
+ Change-Id: Icf81310c3b8080b615a42060afc02ab41f9523dd
+
+2018-08-20 11:23 +0000 [9b9dee2d2c] Richard Mudgett <rmudgett@digium.com>
+
+ * AMI: Remove docs for nonexistent AMI ContactStatus event headers
+
+ Change-Id: I5736965c64c44338f7330e85a24bb46818607f19
+
+2018-08-09 18:46 +0000 [a66fa4db24] Richard Mudgett <rmudgett@digium.com>
+
+ * res_sorcery_realtime.c: Fix unqualified fetch warning.
+
+ The allow_unqualified_fetch option for the sorcery realtime backend
+ blocked actually fetching all rows when the option is set to warn.
+
+ * Made issue a warning and actually do the request when
+ allow_unqualified_fetch=warn is set.
+
+ Change-Id: I74456c80a03a62dce66fc3dc3cb0cf2351ac4312
+
+2018-08-15 21:31 +0000 [f3924b576a] Richard Mudgett <rmudgett@digium.com>
+
+ * pbx_dundi.c: Misc memory management fixes when destroying peers
+
+ * In destroy_peer(), fixed memory leaks of lookup history strings and
+ qualify transactions when destroying peers.
+
+ * In destroy_peer(), fixed leaving the registerexpire scheduled callback
+ active when a peer is destroyed on a reload. The reload marks and sweeps
+ peers so any peers not explicitly configured get destroyed. Peers created
+ dynamically from the '*' peer will not exist until they re-register after
+ the reload. These destroyed peers caused memory corruption when the
+ registerexpire timer expired.
+
+ * Made build_peer() not schedule any callbacks on the '*' peer
+ (empty_eid). It is a special peer that is cloned to dynamically created
+ peers so it doesn't actually get involved in any message transactions.
+
+ * Made do_register_expire() remove the dundi/dpeers AstDB entry when a
+ peer registration expires.
+
+ * Fix deep_copy_peer() to not copy some things that cannot be copied to
+ the cloned peer structure. Timers, message transactions, and lookup
+ history are specific to a peer instance.
+
+ * Made set_config() lock around processing the mappings configuration.
+
+ * Reordered unload_module() to handle load_module() declining the load due
+ to error.
+
+ Change-Id: Ib846b2b60d027f3a2c2b3b563d9a83a357dce1d6
+
+2018-08-15 23:49 +0000 [fbc53412f6] Richard Mudgett <rmudgett@digium.com>
+
+ * pbx_dundi.c: Handle thread shutdown better.
+
+ Change-Id: Id52f99bd6a948fe6dd82acc0a28b2447a224fe87
+
+2018-08-15 18:14 +0000 [ad2dfb07b0] Richard Mudgett <rmudgett@digium.com>
+
+ * pbx_dundi: Fix debug frame decode string.
+
+ * Fixed a typo in the name of the REGREQ frame decode string array.
+ * Fixed off by one range check indexing into the frame decode string
+ array.
+ * Removed some unneeded casts associated with the decode string array.
+
+ Change-Id: I77435e81cd284bab6209d545919bf236ad7933c2
+
+2018-08-16 16:21 +0000 [0a7dab8904] Richard Mudgett <rmudgett@digium.com>
+
+ * pbx_dundi: Update sample config documentation.
+
+ Change-Id: I33d0ad0611c2124ca3440f0f811fa0f45e4e2849
+
+2018-08-16 13:28 +0000 [33a1593fba] George Joseph <gjoseph@digium.com>
+
+ * CI: Final version of setting correct gerrit creds
+
+ Change-Id: I7729ecceedceb12f52bf18dae259846aa1d993b3
+
+2018-08-16 13:23 +0000 [ab095ca4c6] George Joseph <gjoseph@digium.com>
+
+ * CI: Yet Another stab at creds
+
+ Change-Id: I768850780d39151c5dd8e2bb1a4b24776727958e
+
+2018-08-16 13:11 +0000 [b1e294c670] George Joseph <gjoseph@digium.com>
+
+ * CI: Another stab at creds
+
+ Change-Id: I5b1dc3b354789e676c27a4e1fc42f5c3343cc994
+
+2018-08-16 12:08 +0000 [45d096fe8d] George Joseph <gjoseph@digium.com>
+
+ * CI: Add https credentials to gerrit checkouts
+
+ If the review to be tested is in a project with restricted access,
+ we need to use the jenkins user's gerrit https credentials when we
+ do the checkout or the checkout will fail.
+
+ Change-Id: I9dc9994763c5ebfeb9f1cff60fb53f6902b7fd5f
+
+2018-08-15 13:51 +0000 [db367ddbbf] Corey Farrell <git@cfware.com>
+
+ * res_pjsip: Resolve transport management leak at shutdown.
+
+ Cleanup idle check scheduled events at shutdown.
+
+ Change-Id: I61bfbb56bac69fe840c3242927d31ff3593be461
+
+2018-08-15 11:44 +0000 [7f4420a222] Corey Farrell <git@cfware.com>
+
+ * CI: Disable res_odbc if REF_DEBUG is requested.
+
+ This is for 13/15 only, res_odbc never unloads so it is impossible to do
+ REF_DEBUG testing with that module.
+
+ Change-Id: I2c1e32b80564e8fb08b6b5900ede6b5d304ebd10
+
+2018-08-15 11:12 +0000 [7df97d0a00] Corey Farrell <git@cfware.com>
+
+ * res_pjsip: Fix leak in pjsip_options.
+
+ sip_options_get_endpoint_state_compositor_state leaked a reference to
+ the first available endpoint state compositor that was found.
+
+ Change-Id: Idb6be19f7219b6eed1dfb19c1e740dd40cb3fdc7
+
+2018-08-14 11:55 +0000 [e8ac75eed0] Richard Mudgett <rmudgett@digium.com>
+
+ * contrib/scripts: Make astgenkey executable
+
+ Change-Id: I11641d65592536dea9cbca5aa94a24c25d24dd5f
+
+2018-08-14 07:29 +0000 [555516233d] Joshua Colp <jcolp@digium.com>
+
+ * res_pjsip_caller_id: Add "party" parameter to RPID header.
+
+ This change adds the "party" parameter to the Remote-Party-ID header
+ which indicates which party the header information is applicable
+ to. In Asterisk this is determined on whether we are the calling
+ or called party. This is added to improve interoperability with some
+ implementations.
+
+ ASTERISK-28006
+
+ Change-Id: I1eec3e377ffff8633b5c1dd59a05e9533122cfca
+
+2018-08-12 11:04 +0000 [f48761907a] Ivan Poddubny <ivan.poddubny@gmail.com>
+
+ * app_queue: set QUEUESTATUS to LEAVEEMPTY instead of CONTINUE
+
+ When a call leaves a queue on leaveempty condition, QUEUESTATUS
+ must be set to LEAVEEMPTY, no matter whether Queue was executed with or
+ without the "c" (continue) option.
+
+ The regression was introduced in the fix for ASTERISK_25665.
+ The following fix (ASTERISK_27065) was incomplete, as QUEUESTATUS was
+ overwritten in case when "c" is set, regardless of what was the cause
+ for leaving the queue.
+
+ ASTERISK-27973 #close
+ Reported-by: Valentin Safonov
+
+ Change-Id: Iec013fe6a26a4e825ca572a1dda4f3cee5f6f80c
+
+2018-08-09 15:25 +0000 [dc786aa576] Corey Farrell <git@cfware.com>
+
+ * Sample configs: Fix pjsip.conf syntax error.
+
+ It is valid for a config file to be empty or contain only comments, but
+ not valid for a config value to be set when no uncommented context
+ exists. This caused an error to be loged numerous times during start
+ when loading the default pjsip.conf.
+
+ Change-Id: Icf3b0d69b4ecb6e935eecd43c99ed8b32a5a1cf6
+
+2018-08-09 02:34 +0000 [a1b0db826a] Torrey Searle <torrey@voxbone.com>
+
+ * res/res_pjsip_sdp_rtp: put rtcp-mux in answer only if offered
+
+ If in the initial sdp the caller doesn't include the line
+ a=rtcp-mux
+
+ Then asterisk shoud not include rtcp-mux in the response regardless
+ of rtcp-mux being enabled on the endpoint
+
+ ASTERISK-28007 #close
+
+ Change-Id: I58e9b9f40a139afc0da5de41906cc608fb62adc7
+
+2018-07-19 22:28 +0000 [f3a8bfff36] Corey Farrell <git@cfware.com>
+
+ * CI: Add support for coverage processing.
+
+ Enable coverage with `./tests/CI/buildAsterisk.sh --coverage`. This
+ will cause Asterisk to be compiled with coverage support. It also
+ initializes 'before' coverage data for all sources. Accept
+ --tested-only to disable modules which are not run by any test.
+ Enabling coverage also sets tested-only true by default. To build
+ everything with coverage enabled use `--coverage --tested-only=0`.
+
+ ./tests/CI/processCoverage.sh is used to process the coverage and
+ generate HTML reports.
+
+ Fix utils/check_expr2 which failed to compiled with coverage enabled.
+
+ Add status output 5 times per stage of astobj2_test_perf to ensure
+ remote CLI does not timeout when compiled with coverage. Remote CLI
+ disconnects if no output is received for 60 seconds. When coverage is
+ enabled it takes about 70 seconds for my laptop to run the stages of
+ this test, so with the change a message is printed every 14 seconds.
+
+ Change-Id: I890f7d5665087426ad7d3e363187691b9afc2222
+
+2018-08-06 12:19 +0000 [b7f195b6fd] Richard Mudgett <rmudgett@digium.com>
+
+ * res_pjsip.h: Fix doxygen comments.
+
+ Change-Id: I9cf97bdc756012d1f552ab007f4aa85e0ddb4e62
+
+2018-08-06 06:36 +0000 [856b6d1954] Joshua Colp <jcolp@digium.com>
+
+ * stasis: Reduce calculation of stasis message type hash.
+
+ When the stasis cache is used a hash is calculated for
+ retrieving or inserting messages. This change calculates
+ a hash when the message type is initialized that is then
+ used each time needed. This ensures that the hash is
+ calculated only once for the message type.
+
+ Change-Id: I4fe6bfdafb55bf5c322dd313fbd8c32cce73ef37
+
+2018-07-30 07:49 +0000 [819842f7fb] Alexander Traud <pabstraud@compuserve.com>
+
+ * pjproject_bundled: Fix for Solaris builds. Do not undef s_addr.
+
+ The authors of PJProject undef s_addr because of some issue in Microsoft
+ Windows. However in Oracle Solaris, s_addr is not a structure member, but
+ defined to map to the real structure member.
+
+ Updates the patch from ASTERISK_20366
+
+ ASTERISK-27997
+
+ Change-Id: I8223026d4d54e2a46521085fcc94bfa6ebe35b11
+
+2018-08-03 15:59 +0000 [1f97ea7e2c] Richard Mudgett <rmudgett@digium.com>
+
+ * res_pjsip: Make pjlib.h consistently included.
+
+ * Don't include pjlib.h twice in res_pjsip.h
+ * Consistently use #include <> form for pjproject includes.
+ (pjsip.h and pjlib.h)
+
+ Change-Id: I3f7b42044840de64edf7e9d7695cb60c45990dc7
+
+2018-07-30 06:05 +0000 [0d880fac93] Alexander Traud <pabstraud@compuserve.com>
+
+ * pjproject_bundled: Find shared libraries in root --with-ssl=PATH.
+
+ The script configure from Teluu expects shared libraries (.so) in a subfolder
+ called 'lib', when --with-xyz=PATH is specified. However for OpenSSL, the
+ default location is the root of the source folder = PATH. Furthermore, Asterisk
+ supports both, 'lib' and root. For consistency and because Asterisk is using
+ (only) OpenSSL in PJProject, it is enhanced to support both locations, just
+ like Asterisk.
+
+ ASTERISK-27995
+
+ Change-Id: I8eb916a88b6b8c22e29bb40bee8faaca6c73406f
+
+2018-08-01 09:45 +0000 [a5ce9b6c4b] Joshua Colp <jcolp@digium.com>
+
+ * res_pjsip_registrar: Improve performance on inbound handling.
+
+ This change removes a sorcery lookup for retrieving all
+ contacts at the end of the registration process by keeping
+ track of the contacts that are added/updated/deleted.
+
+ This ensures at the end of the process the container of
+ contacts we have is the current state.
+
+ Pool usage has also been reduced by allocating one for
+ usage throughout the handling of a REGISTER and resetting
+ it to a clean state. This ensures that in most cases
+ we allocate once and just reuse it.
+
+ ASTERISK-28001
+
+ Change-Id: I1a78b2d46f9a2045dbbff1a3fd6dba84b612b3cb
+
+2018-08-02 14:37 +0000 [4aa91c6f11] Salah Ahmed <txrubel@gmail.com>
+
+ * dialplan_functions: wrong srtp use status report of a dialplan function
+
+ If asterisk offer an endpoint with SRTP and that endpoint respond
+ with non srtp, in that case channel(rtp,secure,audio) reply wrong
+ status.
+
+ Why delete flag AST_SRTP_CRYPTO_OFFER_OK while check identical remote_key:
+ Currently this flag has being set redundantly. In either case identical
+ or different remote_key this flag has being set. So if we
+ don't set it while we receive identical remote_key or non SRTP SDP
+ response then we can take decision of srtp use by using that flag.
+
+ ASTERISK-27999
+
+ Change-Id: I29dc2843cf4e5ae2604301cb4ff258f1822dc2d7
+
+2018-07-17 07:13 +0000 [ff94fcb6f1] Torrey Searle <torrey@voxbone.com>
+
+ * thirdparty/pjproject: fix deadlock in response retransmissions
+
+ The tdata containing the response can be shared by both the dialog
+ object and the tsx object. In order to prevent the race condition
+ between the tsx retransmission and the dialog sending a response,
+ clone the tdata before modifying it for the dialog send response.
+
+ ASTERISK-27966 #close
+
+ Change-Id: Ic381004a3a212fe1d8eca0e707fe09dba4a6ab4e
+
+2018-07-31 11:24 +0000 [75131c9e1c] Richard Mudgett <rmudgett@digium.com>
+
+ * pjsip_wizard.conf.sample: Update remote_hosts description.
+
+ Remove the note that SRV records are not supported as that is no longer
+ true.
+
+ ASTERISK-27993
+
+ Change-Id: Id0dd6ef40e52702be9727a2b6122216cb00bb4ca
+
+2018-07-27 13:23 +0000 [7f203d2bd8] George Joseph <gjoseph@digium.com>
+
+ * CI: Add optional uninstall step before installing asterisk
+
+ Change-Id: I7dedf1e925eafc3a0adf01dd9dfbe44eb642aab7
+
+2018-07-28 11:49 +0000 [4aa1a42159] Alexander Traud <pabstraud@compuserve.com>
+
+ * BuildSystem: Enable ncurses for menuselect in Solaris 11.
+
+ The check for the library ncurses should use not use the header <curses.h> but
+ <ncurses.h>, because on some platforms <curses.h> is not a drop-in replacement
+ for <ncurses.h>: For example in Solaris, the symbol initscr is a typedef in
+ <curses.h> to a symbol which does not exist in the library ncurses (initscr32).
+ Simply use <ncurses.h> when you link to ncurses.
+
+ Furthermore in Solaris, the header <ncurses.h> is in a subdirectory
+ /usr/include/ncurses and not available via pkg-config.
+
+ ASTERISK-15331
+ ASTERISK-14935
+ ASTERISK-12382
+ ASTERISK-9107
+
+ Change-Id: Ife367776b0ccf17d3fefed868245376bfb93745d
+
+2018-07-28 08:08 +0000 [d9da161b5c] Alexander Traud <pabstraud@compuserve.com>
+
+ * BuildSystem: Enable Jansson in Solaris 11.
+
+ In Solaris, the header <jansson.h> is in /usr/include/jansson. To find
+ Jansson even in such a subdirectory, the tool pkg-config is queried via
+ AST_PKG_CONFIG_CHECK. For those platforms, which do not list Jansson via
+ pkg-config, the previous check remains and is executed thereafter.
+
+ Because the check for the NetBSD Editline library uses the tool pkg-config
+ conditionally PKG_PROG_PKG_CONFIG must be used. Because that check happens
+ earlier than Jansson, it must be placed in front of that.
+
+ The script configure does some pre-checks for the script configure of the
+ Asterisk internal NetBSD Editline library. The check for the library ncurses
+ should use not use the header <curses.h> but <ncurses.h>, because on some
+ platforms <curses.h> is not a drop-in replacement for <ncurses.h>: For example
+ in Solaris, the symbol initscr is a typedef in <curses.h> to a symbol which
+ does not exist in the library ncurses (initscr32). Simply use <ncurses.h> when
+ you link to ncurses.
+
+ ASTERISK-27991
+
+ Change-Id: I69ea0f379f87a50049654b2487c76ee1c04fa53a
+
+2018-07-28 08:00 +0000 [edddcb3dc6] Joshua Colp <jcolp@digium.com>
+
+ * res_pjsip_pubsub: Use ast_true for "prune_on_boot".
+
+ Change-Id: Iedec4e7390b3e821987681da24d0298632b9873d
+
+2018-07-24 13:44 +0000 [8baedc2204] Richard Mudgett <rmudgett@digium.com>
+
+ * res_pjsip_endpoint_identifier_ip.c: Added regex support to match_header
+
+ This patch adds regular expression support to make the identify section's
+ match_header option more useful when attempting to match complex headers
+ like the 'To' or 'From' headers. The 'From' header has variable
+ components such as the tag parameter that you cannot predict. To specify
+ a regular expression put slashes around the regular expression in place of
+ the header value.
+
+ [identify-alice]
+ type=identify
+ endpoint=alice
+ match_header=From: /<sip:alice@127\\.0\\.0\\.1>/
+
+ * Added regex support to match_header so you could match a 'To' header
+ among other complex headers.
+
+ Fixed reported crashes when trying to match special headers like 'Contact'.
+ The identify section's match_header method used code that assumed you were
+ matching a generic header. Any other type of header could cause a crash
+ if the header structure variant did not match the generic header enough.
+
+ * Made use code that will work for any header type instead of code
+ specific to generic headers.
+
+ Other fixes while in the area:
+
+ * Made check all headers of the requested name.
+ * Added some more sanity checks to the configured identify matching
+ options when applying the configuration.
+
+ ASTERISK-27548
+
+ Change-Id: I27dfd4ff5e2259b906640e3c330681b76b4ed1f1
+
+2018-07-27 10:46 +0000 [d33ed08afc] Joshua Colp <jcolp@digium.com>
+
+ * res_pjsip_pubsub: Treat "prune_on_boot" as a yes / no.
+
+ The alembic for the PJSIP subscription persistence table has the
+ "prune_on_boot" field as a boolean. While in Asterisk we are
+ tolerant of many different definitions of true and false in the
+ database we only accept "yes" and "no". This change makes the
+ field treated as a yes/no instead of an integer, thus storing
+ "yes" and "no" instead of "1" and "0".
+
+ Change-Id: Ic8b9211b36babefe78f70def6828a135a6ae7ab6
+
+2018-07-27 08:54 +0000 [a4b105c99b] Alexander Traud <pabstraud@compuserve.com>
+
+ * res_rtp_asterisk: In Developer Mode, do not require OpenSSL.
+
+ OpenSSL is an optional external library and should stay optional even when
+ Developer Mode is configured.
+
+ ASTERISK-27990
+
+ Change-Id: Ia68a4cd5474b26d45e0f43b04032ad598022853b
+
+2018-07-26 18:54 +0000 [2b0d003a35] George Joseph <gjoseph@digium.com>
+
+ * CI: Fix placement of job summary statments
+
+ Change-Id: Iace19e718f4e8fb48eb7dc9f98af53b115cc45f3
+
+2018-07-26 11:34 +0000 [5fbf2ce248] George Joseph <gjoseph@digium.com>
+
+ * CI: Add docker info to job summary
+
+ Change-Id: I45d52005a9b692ad303c11792f226ace1e449901
+
+2018-07-23 13:49 +0000 [eacf8fe96c] Corey Farrell <git@cfware.com>
+
+ * Build System: Create 'make install-configs' target.
+
+ This target requires specifying CONFIG_SRC=path_to_configs. This can be
+ used to install custom configs for the Asterisk build while still
+ performing directory replacements on asterisk.conf.
+
+ Modify internal INSTALL_CONFIGS so first argument requires full path to
+ the config sources relative to Asterisk source root.
+
+ Change-Id: Idcd841df3c8d5bfe23d566bb9e2e448e9df4f8ab
+
+2018-07-25 15:33 +0000 [059e1e3bc8] Kevin Harwell <kharwell@digium.com>
+
+ * json.c: improve ast_json_to_ast_variables performance
+
+ When converting from a json object to an ast variables list the conversion
+ algorithm was doing a complete traversal of the entire variables list for
+ every item appended from the json structure.
+
+ This patch makes it so the list is no longer traversed for each new ast
+ variable being appended.
+
+ Change-Id: I8bf496a1fc449485150d6db36bfc0354934a3977
+
+2018-07-25 05:32 +0000 [dd1b4b38cf] Joshua Colp <jcolp@digium.com>
+
+ * devicestate: Don't create topic when change isn't cached.
+
+ When publishing a device state the change can be marked as being
+ cachable or not. If it is not cached the change is just published
+ to all interested and not stored away for later query. This was not
+ fully taken into account when publishing in stasis. The act of
+ publishing would create a topic for the device even if it may be
+ ephemeral.
+
+ This change makes it so messages which are not cached won't create
+ a topic for the device. If a topic does already exist it will be
+ published to but otherwise the change will only be published to
+ the device state all topic.
+
+ ASTERISK-27591
+
+ Change-Id: I18da0e8cbb18e79602e731020c46ba4101e59f0a
+
+2018-07-25 10:20 +0000 [21168ba931] George Joseph <gjoseph@digium.com>
+
+ * CI: Explicitly pass BRANCH_NAME to buildAsterisk and installAsterisk
+
+ Change-Id: I652f4a0ea5107c778e27a78bccb67b18b0c4e087
+
+2018-07-24 13:29 +0000 [9b4fb9d1aa] George Joseph <gjoseph@digium.com>
+
+ * CI: Add options to initialize and cleanup database to runTestsuite.sh
+
+ Change-Id: I352333233bab5377723bf37d490ba84fc55bc853
+
+2018-07-25 09:07 +0000 [90325f0569] Corey Farrell <git@cfware.com>
+
+ * CI: Do not `mkdir 2`.
+
+ Change-Id: Ib7377d26a6c98b38bad463f47c84f1875ac84eb7
+
+2018-07-25 07:34 +0000 [3ed6abcc1f] Corey Farrell <git@cfware.com>
+
+ * Build System: Silence build of bundled jansson.
+
+ Change-Id: I7392c79c0173057f5378010bf1fe65e300e8fc56
+
+2018-07-25 07:13 +0000 [b971faf740] George Joseph <gjoseph@digium.com>
+
+ * CI: RefDebug: Fix reference to testsuite URL
+
+ Change-Id: I0ee41d95a87f0d97b01f2757012b846bcfe6443d
+
+2018-07-24 14:28 +0000 [ab103d66db] Corey Farrell <git@cfware.com>
+
+ * Build System: Fix bundled jansson install.
+
+ Update the bundled jansson Makefile to do nothing during Asterisk
+ install, use a target that is not phony to initiate the jansson make and
+ install.
+
+ Change-Id: I7643cc3d39af9feba8fc0da676b646efc5f8b3bb
+
+2018-07-24 04:57 +0000 [fd1b8c57e9] Florian Floimair <f.floimair@commend.com>
+
+ * res_pjsip: Change log message from error to warning for valid use cases
+
+ If a SIP MESSAGE is triggered for an endpoint that is currently not registered
+ - and therefore has no valid contact associated - an error message was logged.
+ Since this is a valid request in a valid use cases this is now changed to a
+ warning, as discussed with Matt Fredrickson on the asterisk-dev mailing list.
+
+ Change-Id: I55eb62d2712818a58c7532119dec288bd98cf0c0
+
+2018-07-24 05:39 +0000 [eccd5886c3] George Joseph <gjoseph@digium.com>
+
+ * CI: Add --privileged flag to docker options
+
+ Change-Id: If92d55f15306e55dd7091ac3c47b13ebbbb03488
+
+2018-07-24 05:22 +0000 [32ae565da2] George Joseph <gjoseph@digium.com>
+
+ * CI: Set correct user:group when publishing docs
+
+ Change-Id: Ibabeb9ac730d9755cf54318d0da74771c939b86b
+
+2018-07-23 10:23 +0000 [46ea59a0ca] Corey Farrell <git@cfware.com>
+
+ * CI: Split --test-command argument.
+
+ The --test-command argument has now been split, unit tests now use
+ `--unittest-command` and the testsuite uses --testsuite-command.
+
+ This will make it easier to create a script which run everything by
+ forwarding the same arguments to all CI scripts.
+
+ Change-Id: Ia54aa4848eaffbdf13175fcda40fc0b23080ad71
+
+2018-07-21 11:58 +0000 [f34c59e745] Corey Farrell <git@cfware.com>
+
+ * CI: Fix mkdir CACHE_DIR.
+
+ Change-Id: Ic9f9a61e230047836c836206731f8ff7eb3538c9
+
+2018-07-21 11:22 +0000 [82d351ca0e] Corey Farrell <git@cfware.com>
+
+ * build_tools/make_version: Get MAINLINE_BRANCH from .gitreview.
+
+ Use .gitreview defaultbranch setting to determine the mainline branch.
+ This allows the script to be used against other directories which might
+ not be on the same defaultbranch. This can be used by CI scripts to
+ report the testsuite version being used:
+ ./build_tools/make_version ${TESTSUITE_DIR}
+
+ Change-Id: Ifdad4a9d8a26138c41bc6b630ecc3e34ea1c2758
+
+2018-07-22 10:41 +0000 [1fbe1b1eff] Joshua Colp <jcolp@digium.com>
+
+ * sched: Make ABI compatible between dev mode and non-dev mode.
+
+ In the past there was an assertion in the ast_sched_del function
+ and in order to ensure it was useful the calling function name,
+ line number, and filename had to be passed in. This cause the ABI
+ to be different between dev mode and non-dev mode.
+
+ This assertion is no longer present so the special logic can be
+ removed to make it the same between them both.
+
+ Change-Id: Icbc69c801e357d7004efc5cf2ab936d9b83b6ab8
+
+2018-07-16 15:08 +0000 [f36b4091f5] Corey Farrell <git@cfware.com>
+
+ * Enable bundling of jansson.
+
+ Change-Id: Ib3111b151d37cbda40768cf2a8a9c6cf6c5c7cbd
+
+2018-07-18 09:32 +0000 [e5721b01f6] Emmanuel BUU <emmanuel.buu@ives.fr>
+
+ * res_rtp_asterisk: Avoid merging command and regular T.140 text packets
+
+ When realtime text packets are to be sent, the text is accumulated in a
+ buffer and sent regularly by a timer. It can happen that commands such as
+ a backspace, CR, or LF get merged with regular text. This breaks some
+ UAs.
+
+ The proposed change:
+ * We test if the current packet contains a command. If so we send the
+ buffer immediately.
+ * We test if the buffer contained a command. If so we send the buffer
+ immediately.
+ * We accumulate the text (or the command) in the buffer.
+
+ ASTERISK-27970
+
+ Change-Id: Ifbe993311410fa855cb8aa4a12084db75f413462
+
+2018-07-20 09:25 +0000 [fd84eb65b3] Corey Farrell <git@cfware.com>
+
+ * CI: Fix logger.conf for unit tests.
+
+ Change-Id: Idea59d60eab20105de50b34f0f0d506e6ef55d5c
+
+2018-07-19 10:34 +0000 [2acba0f418] George Joseph <gjoseph@digium.com>
+
+ * CI: Add wiki doc publish to periodics
+
+ Change-Id: I29ba26134e5083bc6788ede235f1a5d4383c148a
+
+2018-07-20 06:54 +0000 [18e9acc3c1] Joshua Colp <jcolp@digium.com>
+
+ * res_pjsip: Update default keepalive interval to 90 seconds.
+
+ A change recently went in which disabled the built-in PJSIP
+ keepalive. This defaulted to 90 seconds and kept TCP/TLS
+ connections alive. Disabling this functionality has resulted
+ in a behavior change of not doing keepalives by default resulting
+ in TCP/TLS connections dropping for some people.
+
+ This change makes our default keepalive interval 90 seconds
+ to match the previous behavior and preserve it.
+
+ ASTERISK-27978
+
+ Change-Id: Ibd9a45f3cbe5d9bb6d2161268696645ff781b1d6
+
+2018-07-20 06:20 +0000 [58c7b64ed6] George Joseph <gjoseph@digium.com>
+
+ * xmldoc.c: Fix dump of xml document
+
+ The "xmldoc dump" cli command was simply concatenating xml documents
+ into the output file. The resulting file had multiple "xml"
+ processing instructions and multiple root elements which is illegal.
+ Normally this isn't an issue because Asterisk has only 1 main xml
+ documentation file but codec_opus has its own file so if it's
+ downloaded and you do "xmldoc dump", the result is invalid.
+
+ * Added 2 new functions to xml.c:
+ ast_xml_copy_node_list creates a copy of a list of children.
+ ast_xml_add_child_list adds a list to an existing list.
+
+ * Modified handle_dump_docs to create a new output document and
+ add to it the children from each input file. It then dumps the
+ new document to the output file.
+
+ Change-Id: I3f182d38c75776aee76413dadd2d489d54a85c07
+
+2018-07-19 16:17 +0000 [0ade9df3b6] Richard Mudgett <rmudgett@digium.com>
+
+ * res_pjsip: Update endpoint transport option documentation.
+
+ Change-Id: I5394fdff6a296efc8e1695a156e616acd932ae52
+
+2018-07-09 04:42 +0000 [bd36ec69e2] Torrey Searle <torrey@voxbone.com>
+
+ * res_pjsip_sdp_rtp: include ice in ANSWER only if offered
+
+ Keep track if ICE candidates were in the SDP offer & only put them
+ in the corresponding SDP answer if the offer condaind ICE candidates
+
+ ASTERISK-27957 #close
+
+ Change-Id: Idf2597ee48e9a287e07aa4030bfa705430a13a92
+
+2018-05-29 09:31 +0000 [6cf1aefff8] Alexander Traud <pabstraud@compuserve.com>
+
+ * pjproject_bundled: Repair ./configure --with-ssl=PATH.
+
+ Previously, Asterisk did not tell its bundled PJProject about this configure
+ parameter. Therefore, PJProject used the platform provided OpenSSL always.
+
+ ASTERISK-27880
+
+ Change-Id: Iea545aec854dd0e2c061c69bb118a76ce56c5dc6
+
+2018-07-18 11:34 +0000 [ae5ba776ae] Chris-Savinovich <csavinovich@digium.com>
+
+ * stasis: Improve message type "Use of before/init after destruction"
+
+ Fixes issue where error msg
+ "Use of before/init after destruction"
+ was being printed on disabled messages
+ in dev mode. With this
+ fix if message is disabled
+ a warning will print.
+
+ ASTERISK-25548
+ Change-Id: Ie0d866d1cbc60c16dbef08bc65e99505c3c1adfa
+
+2018-07-18 11:12 +0000 [03c1bbffd2] Joshua Colp <jcolp@digium.com>
+
+ * res_sorcery_config: Allow configuration section to be used based on name.
+
+ A problem I've seen countless times is a global or system section
+ for PJSIP not getting applied. This is inevitably the result of
+ the "type=" line missing. This change alleviates that problem.
+
+ The ability to specify an explicit section name has been
+ added to res_sorcery_config. If the configured section
+ name matches this and there are no unknown things configured
+ the section is taken as being for the given type.
+
+ Both the PJSIP "global" and "system" types now support this
+ so you can just name your section "global" or "system" and it
+ will be matched and used, even without a "type=" line.
+
+ ASTERISK-27972
+
+ Change-Id: Ie22723663c1ddd24f869af8c9b4c1b59e2476893
+
+2018-07-17 13:56 +0000 [6a0847cfc6] Nick French <naf@ou.edu>
+
+ * SRTP: Lower SDES key lifetime minimum to 2^20
+
+ SRTP SDES key lifetime support was added in ASTERISK_17899.
+
+ In that addition, the minimum key lifetime to be accepted was
+ set at the 10 hours @ 20ms/packet = 1800000 packets.
+
+ The firmware in the obi1xx ATA uses a hardcoded lifetime of
+ 2^20 packets.
+
+ Lower the limit to 2^20 to support a wider field of clients.
+
+ ASTERISK-27967 #close
+
+ Change-Id: I81a0703c595a0c9101dfdf02300149a3cc39bf94
+
+2018-07-17 11:09 +0000 [f8fa7182ac] George Joseph <gjoseph@digium.com>
+
+ * CI: Fix merge strategy
+
+ Change-Id: I5e3fb6adfa6cbf694c0deecf02e3879297b0c12e
+
+2018-07-17 10:41 +0000 [ca651c8973] George Joseph <gjoseph@digium.com>
+
+ * CI: Fix regex in daily and ref_debug jobs
+
+ Change-Id: Icf2e67818b2155a158d2390b138613e1f653ea92
+
+2018-07-17 09:09 +0000 [47572a5831] Nick French <naf@ou.edu>
+
+ * res_pjsip: Remove spurious error logging when printing silent headers
+
+ Asterisk patched the pjproject source to avoid crashing when pjproject
+ sip_msg headers are encountered with NULL vptr's, but the patch also
+ output error messages for some valid headers which simply did not need
+ to be added to the message itself, such as hidden route headers.
+
+ pjproject has since applied a similar patch to their baseline to avoid
+ crashes, but their version also avoids the spurious error logging.
+
+ Lets use their patch instead.
+
+ ASTERISK-27961 #close
+
+ Change-Id: I2ddbd82c8da10e0dcc9807a48089d1f3c2d6e389
+
+2018-07-17 10:18 +0000 [33668ab46a] Richard Mudgett <rmudgett@digium.com>
+
+ * res_config_ldap.c: Fix mem leak in CLI "realtime show ldap status"
+
+ Change-Id: Ib2a3622b297b0363c62d23958f7a20039bcb9b4c
+
+2018-07-17 10:15 +0000 [081f689bc5] George Joseph <gjoseph@digium.com>
+
+ * CI: Add pre-build merge back in as RECURSIVE
+
+ Change-Id: I0ff1730ef4a4f0ac9f18ccc9bc0dfe7a782f57a8
+
+2018-07-17 09:01 +0000 [694503d378] George Joseph <gjoseph@digium.com>
+
+ * CI: Remove pre-build merge from gates and checks
+
+ Change-Id: Ibc151f63dcec4db847915c2f3cbe5b467dd59574
+
+2018-07-17 07:13 +0000 [65cf0001fe] George Joseph <gjoseph@digium.com>
+
+ * CI: Fix logic inversion in runTestsuite
+
+ Change-Id: I56399aa384468f45494c2c3650420563a0b6efe1
+
+2018-07-17 04:03 +0000 [c025f09452] George Joseph <gjoseph@digium.com>
+
+ * CI: Add teardownRealtime
+
+ Change-Id: I2fe55c38607eaec2fbf69ef23a5019e0c443a64b
+
+2018-07-16 13:30 +0000 [0da16dd5d0] George Joseph <gjoseph@digium.com>
+
+ * CI: Prevent Jenkins from triggering jobs back to itself
+
+ Change-Id: I9cae8bb3d1a2cea335d3ccd88d471832549666fd
+
+2018-07-13 18:26 +0000 [c8ea924b50] Richard Mudgett <rmudgett@digium.com>
+
+ * Build: Fix modules getting their optimization setting overridden.
+
+ Asterisk modules that use PJPROJECT services have their compiler
+ optimization and possibly their symbolic debug options overridden by the
+ PJPROJECT configure script selected settings.
+
+ * We need to filter-out any -O and -g options in PJ_CFLAGS before echoing
+ out the result so the PJPROJECT_INCLUDE variable does not override the
+ Asterisk module settings when using bundled PJPROJECT.
+
+ NOTE: This patch only has an effect when using bundled PJPROJECT.
+
+ ASTERISK-27563
+
+ Change-Id: If124169735ecf572ad1535cd43bff94cb44d5b30
+
+2018-07-16 11:08 +0000 [bb52ce0b64] George Joseph <gjoseph@digium.com>
+
+ * CI: runUnittests: loop a few times on waitfullybooted
+
+ Change-Id: Icebc0d013896f3b2a7214945cac60647435c1651
+
+2018-07-16 10:49 +0000 [a5e6ffa1f2] George Joseph <gjoseph@digium.com>
+
+ * CI: Add realtime checks to dailies
+
+ Change-Id: I6dc8ab1679b3505c6dde1d47e1b9276df47814f8
+
+2018-07-16 09:13 +0000 [1817d5a3e7] George Joseph <gjoseph@digium.com>
+
+ * CI: Add weekly REF_DEBUG testsuite run
+
+ Change-Id: I5b581d0a0d1d1bb9b38961d40b112fb448355037
+
+2018-07-16 08:44 +0000 [0023e40308] George Joseph <gjoseph@digium.com>
+
+ * CI: Fix bad reporting of status by the verification pub
+
+ Change-Id: I6f31a130b3ba0187149aaaa2ce94195a79e0f6a6
+
+2018-07-16 07:16 +0000 [014f226bf1] George Joseph <gjoseph@digium.com>
+
+ * CI: Make build tag an acceptable docker name
+
+ Change-Id: I3a4b8a4a9c488ddabf9daf651dc1334222056f38
+
+2018-07-13 22:44 +0000 [871715f77c] Corey Farrell <git@cfware.com>
+
+ * Fix declaration of PBX_CURL for ./configure --without-libcurl
+
+ When `--without-libcurl` is used PBX_CURL is never set. Set default
+ value 0 so the proper value is passed to menuselect.
+
+ Change-Id: I03e2842a00899cbca2dbde52bb1f6636d54bae1e
+
+2018-07-13 06:56 +0000 [b97b39fe1b] George Joseph <gjoseph@digium.com>
+
+ * CI: Add daily periodics to CI
+
+ Change-Id: I26933e73928e091ae72e838c02f4f2ec7c3983d6
+
+2018-07-12 16:34 +0000 [1b1271c3ea] George Joseph <gjoseph@digium.com>
+
+ * CI: Add Asterisk Gates
+
+ Change-Id: I7e2467f9120812551238d8005deb97f965279205
+
+2018-07-11 15:55 +0000 [df67a98938] George Joseph <gjoseph@digium.com>
+
+ * CI: Remove duplicate checkout
+
+ Change-Id: If5f925b4c4ed7000b153f3ed8386ce2140c886f8
+
+2018-07-11 15:09 +0000 [947d024539] George Joseph <gjoseph@digium.com>
+
+ * CI: Update cleanup steps and permissions
+
+ Change-Id: I7ca92935979d94845af8e1caf4468cbd6209b7de
+
+2018-07-11 14:54 +0000 [578d381164] George Joseph <gjoseph@digium.com>
+
+ * CI: Fix log artifact paths
+
+ Change-Id: I55136de8f4d9c3b56bd4d054306a187bb04a4b7d
+
+2018-07-11 14:45 +0000 [96464a523b] George Joseph <gjoseph@digium.com>
+
+ * CI: Remove CleanBeforeCheckout option for testsuite
+
+ Change-Id: I510231c9087f7be5272b8ef3f3223eadaaffb754
+
+2018-07-11 14:00 +0000 [2d16c85574] George Joseph <gjoseph@digium.com>
+
+ * CI: Move gates into source repo
+
+ Change-Id: If028ede5f3b127fa274c63ce166bc04ad7c1e5db
+
+2018-07-11 11:57 +0000 [d739aa71f8] Alexander Traud (License 6520)
+
+ * Bundled PJPROJECT: Disable internal connection oriented keep-alive.
+
+ Turn off the periodic sending of CRLNCRLN. Default is on (90 seconds),
+ which conflicts with the global section's keep_alive_interval option in
+ pjsip.conf.
+
+ patches:
+ pjsip_keep_not_alive.patch submitted by Alexander Traud (License 6520)
+
+ ASTERISK-27347
+
+ Change-Id: I6a197f56e1830d3b7e5ec70f17025840a290b057
+
+2018-07-11 06:14 +0000 [8167048804] George Joseph <gjoseph@digium.com>
+
+ * CI: Initial commit for moving CI into source repo
+
+ Create tests/CI directory and add files used by Jenkins to
+ build and test Asterisk.
+
+ With this commit, Jenkins will run the Asterisk Unit Tests using
+ the Jenkinsfile at tests/CI/unittests.jenkinsfile. Bash scripts
+ to do the actual building and testing are also in the same directory.
+ Output is placed in tests/CI/output so that directory has been
+ added to .gitignore.
+
+ Change-Id: I9448065465e6de2b878634510ace8fd1ef378608
+
+2018-06-23 01:40 +0000 [167baff944] Alexander Traud <pabstraud@compuserve.com>
+
+ * chan_ooh323: IPTOS_MINCOST is not defined on Solaris.
+
+ Furthermore, <sys/sockio.h> is required for SIOCGIF*.
+
+ ASTERISK-27938
+
+ Change-Id: Idc9153ece769944765b66122efb11728d8d8ebde
+
+2018-07-05 16:02 +0000 [9e615dac63] Alexei Gradinari <alex2grad@gmail.com>
+
+ * res_pjsip_pubsub: segfault in function publish_expire
+
+ The function pubsub_on_rx_publish_request incorrectly uses
+ of AST_SCHED_REPLACE_UNREF.
+
+ The AST_SCHED_REPLACE_UNREF should unref old '_data'.
+
+ Because of this, there may be a double unref
+ of variable 'publication' when ast_sched_del is unsuccessful
+ that leads to use after free of the 'publication' in publish_expire.
+
+ ASTERISK-27956 #close
+
+ Change-Id: Ie0f0cfc7e036953d890b188656010b325a5cdc82
+
+2018-07-06 09:04 +0000 [7666b80378] George Joseph <gjoseph@digium.com>
+
+ * test.c: Make output jUnit compatible
+
+ Separate "name" into "classname" and "name".
+ Use '.' for classname separator instead of '/'.
+ Prefix reserved words with '_'.
+ Wrap output with a top-level "testsuites" element.
+
+ Change-Id: Iec1a985eba1c478e5c1d65d5dfd95cb708442099
+
+2018-07-06 07:57 +0000 [3470409dd6] George Joseph <gjoseph@digium.com>
+
+ * res_pjsip: Add 'suppress_q850_reason_headers' option to endpoint
+
+ A new option 'suppress_q850_reason_headers' has been added to the
+ endpoint object. Some devices can't accept multiple Reason headers and
+ get confused when both 'SIP' and 'Q.850' Reason headers are received.
+ This option allows the 'Q.850' Reason header to be suppressed.
+ The default value is 'no'.
+
+ ASTERISK-27949
+ Reported-by: Ross Beer
+
+ Change-Id: I54cf37a827d77de2079256bb3de7e90fa5e1deb1
+
+2018-07-05 15:43 +0000 [76f2699d2d] Joshua Colp <jcolp@digium.com>
+
+ * res_pjsip_t38: Decline T.38 stream on failure case.
+
+ When negotiating an incoming T.38 stream the code incorrectly
+ returned failure instead of a decline for the stream when a
+ problem occurred or the configuration didn't allow it. This
+ resulted in SDP offers being rejected with a 488 response
+ in all cases, even when another valid stream was present.
+
+ This change makes it so the stream is now declined. If no
+ streams are accepted a 488 response is sent while if at least
+ one stream is accepted all the declined streams are, well,
+ declined.
+
+ ASTERISK-27763
+
+ Change-Id: I88bcf793788c412a9839d111a5c736bf6867807c
+
+2018-07-02 18:43 +0000 [a82f9762fd] Richard Mudgett <rmudgett@digium.com>
+
+ * res_pjsip_t38.c: Be smarter about how we respond when T.38 is disabled.
+
+ We were blindly responding with AST_T38_REFUSED when ANY T.38 control
+ frame came accross the bridge. This causes T.38 Gateway to get confused
+ and the T.38 session to get in a strange state.
+
+ * Made the T.38 framehook only respond to request frames and ignore
+ response frames.
+
+ ASTERISK-27657
+ ASTERISK-27080
+
+ Change-Id: I5fb5967c7d1efb30a7ff375f82887ca82a55b05b
+
+2018-07-03 12:10 +0000 [b6b49071af] Richard Mudgett <rmudgett@digium.com>
+
+ * res_pjsip/pjsip_transport_management.c: Fix deadlock with transport keep alive.
+
+ Using the keep_alive_interval option can result in a deadlock between the
+ pjproject transport manager group lock and the monitored transports ao2
+ container lock. The pjproject transport manager group lock has to be
+ superior in the locking order to the monitored transports ao2 container
+ lock because of pjproject callbacks called when already holding the group
+ lock. The lock inversion happens when Asterisk attempts to send a keep
+ alive packet over the reliable transports.
+
+ * Made keepalive_transport_thread() iterate over the monitored transports
+ container rather than use the ao2_callback() method. This avoids holding
+ the container lock when sending the keep alive packet.
+
+ ASTERISK-26686
+
+ Change-Id: I5d5392a52e698bbe41a93f7d8e92bf0e61fe3951
+
+2018-06-29 18:28 +0000 [140ce56f50] Richard Mudgett <rmudgett@digium.com>
+
+ * res_pjsip_t38.c: Fix crash by ignoring 1xx messages.
+
+ If we initiated a T.38 reINVITE, we would crash if we received any other
+ 1xx response message except 100 if it were followed by a 200 response.
+
+ * Made ignore any 1xx response so we do not close out the T.38 negotiation
+ too early. For good measure we'll now accept any 2xx response as
+ acceptance of the reINVITE T.38 offer.
+
+ NOTE: In v13 we don't actually crash but we should deal with the non-final
+ response messages and not switch to rejected and then to enabled when the
+ 200 comes in.
+
+ ASTERISK-27944
+
+ Change-Id: I0ca88aae708d091db7335af73f41035a212adff4
+
+2018-07-03 18:07 +0000 Asterisk Development Team <asteriskteam@digium.com>
+
+ * asterisk 13.22.0-rc1 Released.
+
+2018-07-02 18:44 +0000 [62859ad526] Joshua Colp <jcolp@digium.com>
+
+ * pjsip: Clarify certificate configuration for Websocket.
+
+ The Websocket transport uses the built-in HTTP server. As a result
+ the TLS configuration is done in http.conf and not in pjsip.conf.
+
+ This change adds a warning if this is configured in pjsip.conf and
+ also clarifies in the sample configuration file.
+
+ Change-Id: I187d994d328c3ed274b6754fd4c2a4955bdc6dd9
+
+2018-07-01 13:54 +0000 [5f3869608a] Joshua Colp <jcolp@digium.com>
+
+ * res_pjsip_pubsub: Hold module reference for publications.
+
+ Incoming publications need to ensure that the module remains
+ loaded for the lifetime of them. This is now done by holding
+ a reference to the module while the publication exists. This
+ mirrors that of inbound subscriptions.
+
+ ASTERISK-27783
+
+ Change-Id: Ia98c95a15e11af25728d5fb3e56e12cda0cfc7c0
+
+2018-05-21 07:24 +0000 [447ec4e472] Robert Mordec <r.mordec@slican.pl>
+
+ * app_confbridge: Bridge and announcers not removed if conference ends quickly
+
+ If a conference is ended very quickly after it was created (i.e., the
+ first user immediately hangs up) then the conference bridge and announcer
+ channels are not removed.
+
+ When a conference is created, the push_announcer() function is added to
+ the playback queue task processor and the conference object reference is
+ bumped. If a conference is ended while the push_announcer() function is
+ still going then the ao2_cleanup(conference) at the end of
+ push_announcer() will call the destructor function -
+ destroy_conference_bridge().
+
+ The destroy_conference_bridge() function will then add the
+ hangup_playback() task to the playback queue and will wait for it to end.
+ Since it is already a current task of the playback queue it will wait
+ forever.
+
+ This patch makes the conference thread call push_announcer() directly.
+ This way the conference object reference bump is not needed. Since the
+ playback queue task processor is only used by the conference thread
+ itself, there is no danger of trying to play announcements before the
+ announcer is pushed to the bridge.
+
+ ASTERISK-27870 #close
+
+ Change-Id: I947a50fb121422d90fd1816d643a54d75185a477
+
+2018-06-21 00:28 +0000 [33f4716d13] Matthew Fredrickson <creslin@digium.com>
+
+ * main/cdr.c: Alleviate CDR deadlock
+
+ There is a rare case (do to the infrequent timing involved) where
+ CDR submission threads in batch mode can deadlock with a currently
+ running CDR batch process. This patch should remove the need for
+ holding the lock in the scheduler and should clean a few code
+ paths up that inconsistently submitted new work to the CDR batch
+ processor.
+
+ ASTERISK-27909
+
+ Change-Id: I6333e865db7c593c102c2fd948cecdb96481974d
+ Reported-by: Denis Lebedev
+
+2018-06-25 22:08 +0000 [3203c3491a] Kirsty Tyerman <kirsty.tyerman@boeing.com>
+
+ * pbx_dundi: reordered unloading of module pbx_dundi
+
+ Destroy scheduler after peers are pruned to stop dundi crashing when
+ unloading module.
+
+ ASTERISK-26987
+ Reported-by: Kirsty Tyerman
+
+ Change-Id: Ic12e562cd90d8d813a9e97f302045091f59e3c05
+
+2018-06-28 12:07 +0000 [d0e4cbfc51] Richard Mudgett <rmudgett@digium.com>
+
+ * AMI SendText action: Fix to use correct thread to send the text.
+
+ The AMI action was directly sending the text to the channel driver.
+ However, this makes two threads attempt to handle media and runs afowl of
+ CHECK_BLOCKING.
+
+ * Queue a read action to make the channel's media handling thread actually
+ send the text message. This changes the AMI actions success/fail response
+ to just mean the text was queued to be sent not that the text actually got
+ sent. The channel driver may not even support sending text messages.
+
+ ASTERISK-27943
+
+ Change-Id: I9dce343d8fa634ba5a416a1326d8a6340f98c379
+
+2018-06-25 07:37 +0000 [6087c1e575] George Joseph <gjoseph@digium.com>
+
+ * res_pjsip_messaging: Allow application/* for in-dialog MESSAGEs
+
+ In addition to text/* content types, incoming_in_dialog_request now
+ accepts application/* content types.
+
+ Also fixed a length issue when copying the body text. It was one
+ character short.
+
+ ASTERISK-27942
+
+ Change-Id: I4e54d8cc6158dc47eb8fdd6ba0108c6fd53f2818
+
+2018-06-18 21:22 +0000 [06966e91fe] George Joseph <gjoseph@digium.com>
+
+ * res_pjsip_session: Add ability to accept multiple sdp answers
+
+ pjproject by default currently will follow media forked during an INVITE
+ on outbound calls if the To tag is different on a subsequent response as
+ that on an earlier response. We handle this correctly. There have
+ been reported cases where the To tag is the same but we still need to
+ follow the media. The pjproject patch in this commit adds the
+ capability to sip_inv and also adds the capability to control it at
+ runtime. The original "different tag" behavior was always controllable
+ at runtime but we never did anything with it and left it to default to
+ TRUE.
+
+ So, along with the pjproject patch, this commit adds options to both the
+ system and endpoint objects to control the two behaviors, and a small
+ logic change to session_inv_on_media_update in res_pjsip_session to
+ control the behavior at the endpoint level.
+
+ The default behavior for "different tags" remains the same at TRUE and
+ the default for "same tag" is FALSE.
+
+ Change-Id: I64d071942b79adb2f0a4e13137389b19404fe3d6
+ ASTERISK-27936
+ Reported-by: Ross Beer
+
+2018-06-21 11:45 +0000 [5e9230b528] Alexander Traud <pabstraud@compuserve.com>
+
+ * uuid: Enable UUID in Solaris 11.
+
+ ASTERISK-27933
+ Reported by: bautsche
+
+ Change-Id: I9b8362824efbfb2a16981e46e85f7c8322908c49
+
+2018-06-21 16:39 +0000 [cb9475eb3d] Richard Mudgett <rmudgett@digium.com>
+
+ * VECTOR: Passing parameters with side effects to macros is dangerous.
+
+ * Fix several instances where we were bumping a ref in the parameter and
+ then unrefing the object if it failed. The way the AST_VECTOR_APPEND()
+ and AST_VECTOR_REPLACE() macros are implemented means if it fails the new
+ value was never evaluated.
+
+ Change-Id: I2847872a455b11ea7e5b7ce697c0a455a1d0ac9a
+
+2018-06-21 11:22 +0000 [6d201a5df4] Alexander Traud <pabstraud@compuserve.com>
+
+ * smsq: Remove an left-over special case for Solaris.
+
+ Actually, this case was never needed because the check below does the same.
+
+ Change-Id: Ia2fca4ba6c58c644a8b7cb2d9db8539728c14ffb
+
+2018-06-21 11:17 +0000 [c8966b8c29] Alexander Traud <pabstraud@compuserve.com>
+
+ * res_http_post: Enable GMime in Solaris 11.
+
+ Change-Id: Ie434541f18f894c751d2e44bcb3efb3cac626019
+
+2018-06-21 05:08 +0000 [81f39649ea] Alexander Traud <pabstraud@compuserve.com>
+
+ * codecs/ilbc: Compile in Solaris 11.
+
+ The symbol FS is the sampling frequency. That symbol is not used in Asterisk at
+ all and was a copy-and-paste of the iLBC reference code from the IETF RFC.
+ However, in Solaris, that symbol is defined by another header already. To
+ compile in Solaris, that symbol has to go.
+
+ Change-Id: I91ddbe5be7c00069c3a25abd5f58d7b2f04c51b1
+
+2018-06-21 05:07 +0000 [78855e13e8] Alexander Traud <pabstraud@compuserve.com>
+
+ * chan_oss: Compile in Solaris 11.
+
+ M_READ existed already and was conflicting in name.
+
+ Change-Id: I02108e07ae7d2dc314fe1e6c706c17731095a3e4
+
+2018-06-21 05:04 +0000 [0b3c090ada] Alexander Traud <pabstraud@compuserve.com>
+
+ * func_env: Compile in Solaris 11.
+
+ Change-Id: Idc9b36720f3d29c90a35a6a1ae79a7f9e1aaf50e
+
+2018-06-21 05:01 +0000 [a0445c7a3e] Alexander Traud <pabstraud@compuserve.com>
+
+ * utils: Avoid an unused variable in Solaris 11.
+
+ With ./configure --enable-dev-mode[=noisy], the build fails because every
+ warning gets an error. Therefore, Asterisk has to be free of warnings and this
+ variable must go.
+
+ Change-Id: I63dd2bc4833b9bdb04602f83422d16caf289d46a
+
+2018-06-21 04:59 +0000 [d3fe2aceab] Alexander Traud <pabstraud@compuserve.com>
+
+ * BuildSystem: Enable ./configure in Solaris 11.
+
+ ASTERISK-27931
+
+ Change-Id: If298ce7f03be227a3687b9c20d382c9c55a72404
+
+2018-06-20 13:24 +0000 [7686e674bf] Alexander Traud <pabstraud@compuserve.com>
+
+ * BuildSystem: Enable autotools in Solaris 11.
+
+ Because this was the last operating system which required a special case, a
+ version appended to the autotools, the whole version stuff is removed by this
+ change. This simplifies the script ./bootstrap.sh. Hopefully, this gives even
+ broader platform compatibility.
+
+ ASTERISK-27929
+ ASTERISK-27926
+
+ Change-Id: Id4cf433a1a7fa861d0210e1a2e16ca592b49fd5a
+
+2018-06-13 11:33 +0000 [f878de44af] Richard Mudgett <rmudgett@digium.com>
+
+ * channel.c: Make CHECK_BLOCKING() save thread LWP id for messages.
+
+ * Removed an unnecessary call to ast_channel_blocker_set() in
+ __ast_read().
+
+ ASTERISK-27625
+
+ Change-Id: I342168b999984666fb869cd519fe779583a73834
+
+2018-06-13 16:41 +0000 [99f439dc01] Richard Mudgett <rmudgett@digium.com>
+
+ * ARI POST DTMF: Make not compete with channel's media thread.
+
+ There can be one and only one thread handling a channel's media at a time.
+ Otherwise, we don't know which thread is going to handle the media frames.
+
+ ASTERISK-27625
+
+ Change-Id: I4d6a2fe7386ea447ee199003bf8ad681cb30454e
+
+2018-06-13 13:05 +0000 [6a1626c265] Richard Mudgett <rmudgett@digium.com>
+
+ * AMI PlayDTMF Action: Make not compete with channel's media thread.
+
+ There can be one and only one thread handling a channel's media at a time.
+ Otherwise, we don't know which thread is going to handle the media frames.
+
+ ASTERISK-27625
+
+ Change-Id: Ia341f1a6f4d54f2022261abec9021fe5b2eb4905
+
+2018-06-12 14:09 +0000 [1abcc41fff] Richard Mudgett <rmudgett@digium.com>
+
+ * channel.c: Fix usage of CHECK_BLOCKING()
+
+ The CHECK_BLOCKING() macro is used to indicate if a channel's handling
+ thread is about to do a blocking operation (poll, read, or write) of
+ media. A few operations such as ast_queue_frame(), soft hangup, and
+ masquerades use the indication to wake up the blocked thread to reevaluate
+ what is going on.
+
+ ASTERISK-27625
+
+ Change-Id: I4dfc33e01e60627d962efa29d0a4244cf151a84d
+
+2018-06-18 18:04 +0000 [5d34ca5b33] Richard Mudgett <rmudgett@digium.com>
+
+ * autoservice: Don't start channel autoservice if the thread is a user interface.
+
+ Executing dialplan functions from either AMI or ARI by getting a variable
+ could place the channel into autoservice. However, these user interface
+ threads do not handle the channel's media so we wind up with two threads
+ attempting to handle the media.
+
+ There can be one and only one thread handling a channel's media at a time.
+ Otherwise, we don't know which thread is going to handle the media frames.
+
+ ASTERISK-27625
+
+ Change-Id: If2dc94ce15ddabf923ed1e2a65ea0ef56e013e49
+
+2018-06-18 16:07 +0000 [a6edbc9be1] Richard Mudgett <rmudgett@digium.com>
+
+ * Dialplan functions: Fix some channel autoservice misuse.
+
+ * Fix off nominal paths leaving the channel in autoservice.
+ * Remove unnecessary start/stop channel autoservice.
+ * Fix channel locking around a channel datastore search.
+
+ Change-Id: I7ff2e42388064fe3149034ecae57604040b8b540
+
+2018-06-19 10:43 +0000 [7b30158147] Richard Mudgett <rmudgett@digium.com>
+
+ * Fix some doxygen and curly placement.
+
+ Change-Id: I9a784a7c804120a8fa826c2a4cb9957e4b0b2fc8
+
+2018-06-15 15:21 +0000 [3570a62b32] Matthew Fredrickson <creslin@digium.com>
+
+ * menuselect/menuselect_curses: Resolves sprintf usage error
+
+ Acccording to the man page for sprintf, using the same buffer for
+ output as one used as an input yields undefined behavior.
+ This patch should work around this problem.
+
+ ASTERISK-27903
+ Reported-by: Alexander Traud
+
+ Change-Id: I2213dcb454aff26457e2e4cc9c6821276463ae3a
+
+2018-06-12 15:13 +0000 [f94a310ca0] Richard Mudgett <rmudgett@digium.com>
+
+ * channel: Fix some more unprotected channel flag setting.
+
+ Change-Id: I34c3b1201b1de539945bcfdcb264fff30332d48c
+
+2018-06-12 09:30 +0000 [bb0ce22b2b] Sam Wierema <sam@messagebird.com>
+
+ * app_mp3: remove 10 seconds of silence after mp3 playback
+
+ This patch changes the way asterisk polls output from mpg123, instead
+ of waiting for 10 seconds(when playing an http url) it now uses a
+ timeout of one second and iterates 10 times using this same timeout.
+
+ The main difference is that for every timeout asterisk receives it now
+ checks if mpg123 is still running before poll again.
+
+ ASTERISK-27752
+
+ Change-Id: Ib7df8462e3e380cb328011890ad9270d9e9b4620
+
+2018-06-13 04:40 +0000 [b004b44a46] Alexander Traud <pabstraud@compuserve.com>
+
+ * tests/test_utils: Repair ./configure --with-ssl=PATH.
+
+ ASTERISK-27914
+
+ Change-Id: Ibcab8f556ee77776f203cff8b06d776a673b7bc4
+
+2018-06-04 20:31 +0000 [c6116a3234] Kirsty Tyerman <kirsty.tyerman@boeing.com>
+
+ * chan_iax2: better handling for timeout and EINTR
+
+ The iax2 module is not handling timeout and EINTR case properly. Mainly when
+ there is an interupt to the kernel thread. In case of ast_io_wait recieves a
+ signal, or timeout it can be an error or return 0 which eventually escapes the
+ thread loop, so that it cant recieve any data. This then causes the modules
+ receive queue to build up on the kernel and stop any communications via iax in
+ asterisk.
+
+ The proposed patch is for the iax module, so that timeout and EINTR does not
+ exit the thread.
+
+ ASTERISK-27705
+ Reported-by: Kirsty Tyerman
+
+ Change-Id: Ib4c32562f69335869adc1783608e940c3535fbfb
+
+2018-06-13 05:14 +0000 [e3de4bc46e] Alexander Traud <pabstraud@compuserve.com>
+
+ * res_rtp_asterisk: Instead of ./configure use OPENSSL_NO_SRTP.
+
+ Previously, Asterisk used its script ./configure, to test whether OpenSSL was
+ built with no-srtp (or was simply too old). However, the header file
+ <openssl/opensslconf.h> is the preferred way to detect the local configuration
+ of OpenSSL.
+
+ As a positive side-effect the script ./configure does not interleave the
+ detection of the Open Settlement Protocol Toolkit (OSPTK) with the detection of
+ individual features of OpenSSL anymore.
+
+ Change-Id: I3c77c7b00b2ffa2e935632097fa057b9fdf480c0
+
+2018-04-30 17:38 +0000 [034a04af2a] Richard Mudgett <rmudgett@digium.com>
+
+ * AST-2018-008: Fix enumeration of endpoints from ACL rejected addresses.
+
+ When endpoint specific ACL rules block a SIP request they respond with a
+ 403 forbidden. However, if an endpoint is not identified then a 401
+ unauthorized response is sent. This vulnerability just discloses which
+ requests hit a defined endpoint. The ACL rules cannot be bypassed to gain
+ access to the disclosed endpoints.
+
+ * Made endpoint specific ACL rules now respond with a 401 unauthorized
+ which is the same as if an endpoint were not identified. The fix is
+ accomplished by replacing the found endpoint with the artificial endpoint
+ which always fails authentication.
+
+ ASTERISK-27818
+
+ Change-Id: Icb275a54ff8e2df6c671a6d9bda37b5d732b3b32
+
+2018-06-08 15:09 +0000 [ef2386fcd7] Alexander Traud <pabstraud@compuserve.com>
+
+ * res_rtp_asterisk: Allow OpenSSL configured with no-deprecated.
+
+ Furthermore, allow OpenSSL configured with no-dh. Additionally, this change
+ allows auto-negotiation of the elliptic curve/group for servers, not only with
+ OpenSSL 1.0.2 but also with OpenSSL 1.1.0 and newer. This enables X25519
+ (since OpenSSL 1.1.0) and X448 (since OpenSSL 1.1.1) as a side-effect.
+
+ ASTERISK-27910
+
+ Change-Id: I5b0dd47c5194ee17f830f869d629d7ef212cf537
+
+2018-06-08 06:01 +0000 [2c3ad1e40d] Alexander Traud <pabstraud@compuserve.com>
+
+ * crypto.h: Repair ./configure --with-ssl=PATH.
+
+ ASTERISK-27908
+
+ Change-Id: Iac49d9f82faeb8a4611c6805906bd6d650b1b1d8
+
+2018-06-08 04:06 +0000 [7763aa824e] Alexander Traud <pabstraud@compuserve.com>
+
+ * res_crypto: Allow OpenSSL configured with no-deprecated.
+
+ The header <openssl/rsa.h> had to be included explicitly.
+
+ ASTERISK-27906
+
+ Change-Id: I41743801eed998c039d73db7a0762d104a4f75b2
+
+2018-06-08 02:41 +0000 [e62e069705] Alexander Traud <pabstraud@compuserve.com>
+
+ * res_srtp: Repair ./configure --with-ssl=PATH.
+
+ ASTERISK-27905
+
+ Change-Id: Ibb7dc148a0048f4f9c3b12937ba4240dff0d15e2
+
+2018-05-31 10:25 +0000 [d9d50396cf] Alexei Gradinari <alex2grad@gmail.com>
+
+ * func_odbc: NODATA if SQLNumResultCols returned 0 columns on readsql
+
+ The functions acf_odbc_read/cli_odbc_read ignore a number of columns
+ returned by the SQLNumResultCols.
+ If the number of columns is zero it means no data.
+ In this case, a SQLFetch function has to be not called,
+ because it will cause an error.
+
+ ASTERISK-27888 #close
+
+ Change-Id: Ie0f7bdac6c405aa5bbd38932c7b831f90729ee19
+
+2018-06-07 08:46 +0000 [98da1971e3] George Joseph <gjoseph@digium.com>
+
+ * chan_pjsip: Register for "BEFORE_MEDIA" responses
+
+ chan_pjsip wasn't registering for "BEFORE_MEDIA" responses which meant
+ it was not updating HANGUPCAUSE for 4XX responses. If the remote end
+ sent a "180 Ringing", then a "486 Busy", the hangup cause was left at
+ "180 Normal Clearing".
+
+ * Removed chan_pjsip_incoming_response from the original session
+ supplement (which was handling only "AFTER MEDIA") and added it to a
+ new session supplement which accepts both "BEFORE_MEDIA" and
+ "AFTER_MEDIA".
+
+ * Also cleaned up some cleanup code in load module.
+
+ ASTERISK-27902
+
+ Change-Id: If9b860541887aca8ac2c9f2ed51ceb0550fb007a
+
+2018-06-07 07:19 +0000 [1205bcb69f] Alexander Traud <pabstraud@compuserve.com>
+
+ * ooh323c: GCC 8.1 warned about output truncated before terminating nul.
+
+ ASTERISK-27901
+
+ Change-Id: I5a8e894f4924ef52e3094f6870656a559d67f3d7
+
+2018-06-04 09:50 +0000 [db2413b446] George Joseph <gjoseph@digium.com>
+
+ * app_sendtext: Allow content types other than text/plain
+
+ There was no real reason to limit the conteny type to text/plain other
+ than that's what it was limited to before. Now any text/* content
+ type will be allowed for channel drivers that don't support enhanced
+ messaging and any type will be allowed for channel drivers that do
+ support enhanced messaging.
+
+ Change-Id: I94a90cfee98b4bc8e22aa5c0b6afb7b862f979d9
+
+2018-05-30 01:12 +0000 [8b67e2bd14] Pirmin Walthert <infos@nappsoft.ch>
+
+ * bridge_channel.c: Fix Deadlock when using Local channels and fax gateway
+
+ ast_indicate is invoked with the bridge locked. As ast_indicate locks the
+ other end of the bridge as well this can lead to a deadlock in some situations.
+ (Especially when a different thread does the same in the reverse order).
+ This patch calls ast_indicate after unlocking the bridge which fixes the
+ deadlock. Calling ast_indicate with these parameters without locking the
+ bridge should be safe as this is done at different places without a
+ bridge lock.
+
+ ASTERISK-27094 #close
+ Reported-by: David Brillert
+
+ Change-Id: I5f86c1e2ce75b9929a36ab589b18c450e62ea35f
+
+2018-05-28 19:17 +0000 [9ff4779f03] William McCall <william.mccall@gmail.com>
+
+ * app_confbridge: Add talking indicator for ConfBridgeList AMI response
+
+ When an AMI client connects, it cannot determine if a user was talking
+ prior to a transition in the user speaking state (which would generate
+ a ConfbridgeTalking event). This patch causes app_confbridge to track the
+ talking state and make this state available via ConfBridgeList.
+
+ ASTERISK-27877 #close
+
+ Change-Id: I19b5284f34966c3fda94f5b99a7e40e6b89767c6
+
+2018-05-29 12:28 +0000 [071232244a] Richard Mudgett <rmudgett@digium.com>
+
+ * app_meetme: Fix manager event documentation for several events.
+
+ The MeetmeJoin, MeetmeLeave, MeetmeEnd, MeetmeMute, MeetmeTalking, and
+ MeetmeTalkRequest AMI events were documented with sending out a Usernum
+ header when the User header was actually output.
+
+ * Change the online documentation to match reality.
+
+ ASTERISK-27873
+ ASTERISK-25261
+
+ Change-Id: I437bc70618d07c183c9624b7069c2fcae7f17a39
+
+2018-05-28 10:32 +0000 [8c78337479] Alexander Traud <pabstraud@compuserve.com>
+
+ * tcptls.h: Repair ./configure --with-ssl=PATH.
+
+ asterisk/tcptls.h was included (explicitly, implicitly, or transitively). Those
+ inclusions got replaced by forward declarations. As side effect, the inclusions
+ got completed.
+
+ ASTERISK-27878
+
+ Change-Id: I9d102728e30336d6522e5e4ae9e964013a0835f7
+
+2018-05-22 16:21 +0000 [9ad3918acd] Alexei Gradinari <alex2grad@gmail.com>
+
+ * pjsip_options: handle modification of qualify options in realtime
+
+ Currentrly pjsip_options code does not handle the situation when the
+ qualify options were changed in realtime database.
+ Only 'module reload res_pjsip' helps.
+
+ This patch add a check on contact add/update observers if the contact
+ qualify options are different than local aor qualify options.
+ If the qualify options were modified then synchronize
+ the pjsip_options AOR local state.
+
+ ASTERISK-27872
+
+ Change-Id: Id55210a18e62ed5d35a88e408d5fe84a3c513c62
+
+2018-05-25 09:55 +0000 [6833c763c7] Alexander Traud <pabstraud@compuserve.com>
+
+ * tcptls: Allow OpenSSL configured with no-dh.
+
+ Additionally, this change allows auto-negotiation of the elliptic curve/group
+ for servers, not only with OpenSSL 1.0.2 but also with OpenSSL 1.1.0 and newer.
+ This enables X25519 (since OpenSSL 1.1.0) and X448 (since OpenSSL 1.1.1) as a
+ side-effect.
+
+ ASTERISK-27876
+
+ Change-Id: I62c2aba4a630aefc231b71f646207e8c027d9497
+
+2018-05-25 07:24 +0000 [204cc25a27] Alexander Traud <pabstraud@compuserve.com>
+
+ * tcptls: Allow OpenSSL 1.1.x configured with enable-ssl3-method no-deprecated.
+
+ ASTERISK-27874
+
+ Change-Id: Ica65113511c7a1c13f7988e7d9e7d9e7f3f620dd
+
+2018-05-15 08:45 +0000 [acfdfcd19e] George Joseph <gjoseph@digium.com>
+
+ * ast_coredumper: Fix output directory and variable precedence
+
+ The OUTPUTDIR variable in ast_debug_tools.conf.sample is now set
+ to "/tmp" instead of "/some/directory".
+
+ Variables set on the command line or that are already in the
+ environment now take predecence over variables set in the config files.
+
+ ASTERISK-27846
+ Reported by: Ted G
+
+ Change-Id: Ie8baec52d531886bf5849ec1d59bb59dc87ad387
+
+2018-05-09 08:31 +0000 [4b7fd478d5] Torrey Searle <torrey@voxbone.com>
+
+ * res/res_rtp_asterisk: ensure marker bit is correctly set on ssrc change
+
+ Certain race conditions between changing bridge types and DTMF can
+ cause the current FLAG_NEED_MARKER_BIT to send the marker bit before
+ the actual first packet of native bridging.
+
+ This logic keeps track of the ssrc the bridge is currently sending
+ and will correctly ensure the marker bit is set if SSRC as changed
+ from the previous sent packet.
+
+ ASTERISK-27845
+
+ Change-Id: I01858bd0235f1e5e629e20de71b422b16f55759b
+
+2018-05-23 16:20 +0000 [a576f50362] Alexei Gradinari <alex2grad@gmail.com>
+
+ * pjsip_options: show/reload AOR qualify options using CLI
+
+ Currentrly pjsip_options code does not handle the situation when the
+ AOR qualify options were changed.
+
+ Also there is no way to find out what qualify options are using.
+
+ This patch add CLI commands to show and synchronize Aor qualify options:
+ pjsip show qualify endpoint <id>
+ Show the current qualify options for all Aors on the PJSIP endpoint.
+ pjsip show qualify aor <id>
+ Show the PJSIP Aor current qualify options.
+ pjsip reload qualify endpoint <id>
+ Synchronize the qualify options for all Aors on the PJSIP endpoint.
+ pjsip reload qualify aor <id>
+ Synchronize the PJSIP Aor qualify options.
+
+ ASTERISK-27872
+
+ Change-Id: I1746d10ef2b7954f2293f2e606cdd7428068c38c
+
+2018-05-22 17:17 +0000 [90a075221b] Richard Mudgett <rmudgett@digium.com>
+
+ * channel.c: Fix off nominal channel allocation failure path.
+
+ __ast_channel_alloc_ap() had a failure exit path that hadn't setup the fd
+ descriptors to -1 yet. The destructor would then attempt to close these
+ fd's that had never been opened.
+
+ Change-Id: Icf21093f36c60781e8cf6ee9d586536302af33e3
+
+2018-05-18 16:45 +0000 [d6145087cf] Alexei Gradinari <alex2grad@gmail.com>
+
+ * config.c: Fix successful DELETE treated as failure
+
+ The config engine destroy_func callback function returns the number of
+ rows deleted or -1 on error. But the function
+ ast_destroy_realtime_fields treated non-zero return values as error.
+
+ ASTERISK-27863
+
+ Change-Id: Ied02b38e8196cb03043e609a0679feebd288d17b
+
+2018-05-20 06:41 +0000 [ec40bd945c] Alexander Traud <pabstraud@compuserve.com>
+
+ * libasteriskssl: Allow OpenSSL 1.0.2 configured with no-deprecated.
+
+ Use CRYPTO_set_id_callback(.) only with OpenSSL 0.9.8 and older.
+
+ ASTERISK-27867
+
+ Change-Id: Iadd58d5bf6f538eb224203970a4e88e26f259655
+
+2018-05-19 08:23 +0000 [b6234f9577] Alexander Traud <pabstraud@compuserve.com>
+
+ * tcptls: Repair ./configure --with-ssl=PATH.
+
+ SSL_OP_NO_TLSv1_1 and SSL_OP_NO_TLSv1_2 got discovered without honoring a PATH.
+
+ ASTERISK-27865
+
+ Change-Id: I8cd358eed7411726d08fa7b01691bef122fbeb71
+
+2018-05-12 06:53 +0000 [436d17fa50] Nic Colledge <nic@njcolledge.net>
+
+ * app_voicemail: Fix incorrect msg leaving/retrieving an ODBC voicemail
+
+ Correct the log warning message shown when ODBC voicemail
+ retrieve_file is called and there is a null value in the category
+ column.
+ A more meaningfull message is now written at debug level.
+
+ ASTERISK-27853
+
+ Change-Id: Ic36e97d5eb070a23a12ba45972f6b53e2182a3f4
+
+2018-04-17 21:15 +0000 [8c1202beb9] Brian P. Martin <asterisk-forum@silverflash.net>
+
+ * chan_mobile: support handling of caller-id names ("cnam").
+
+ Add support to handle caller-ID names ("cnam") in addition to caller-ID
+ numbers. The prior code ignored the caller-ID name altogether, and
+ used the local name for the cell phone (e.g. "my-iphone") in its place.
+
+ Note: as of this writing, at least some Android phones don't pass cnam to
+ us. This can be seen by issuing "core set debug 2" in the CLI and watching
+ the "CLIP" record when a call comes in. If cnam isn't in the CLIP record,
+ there's nothing we can do to provide one. We'll provide a null cnam field,
+ so later Asterisk processes know to try other sources (e.g. cidname database,
+ OpenCNAM, etc.).
+
+ Reported by: Brian Martin
+ Tested by: Brian Martin
+ ASTERISK-27726
+
+ Change-Id: I89490d85fa406c36261879c50ae5e65595538ba5
+
+2018-05-17 01:58 +0000 [b615df06d3] Alexander Traud <pabstraud@compuserve.com>
+
+ * res_pjsip_endpoint_identifier_ip: Unregister the module for headers.
+
+ Asterisk uses Reference Counting to track whether a module can be unloaded.
+ Every consumer who requires a module, increases the reference count. When the
+ consumer goes, is unloaded itself, it has to decrease the reference count on
+ all its used/required modules. That way
+ core stop gracefully
+ works on the command-line interface (CLI): One module after the other is
+ unloaded. A recent change broke this for the module res_pjsip.
+
+ ASTERISK-27861
+
+ Change-Id: I261abcb411d026bbb0691cc78f28300bfd3103a3
+
+2018-05-17 00:34 +0000 [99b24dc63b] Alexander Traud <pabstraud@compuserve.com>
+
+ * res_pjsip: Register pjsip_transport_management not externally but internally.
+
+ The module (res_)pjsip_transport_management got moved into res_pjsip. It is no
+ longer an independent/external module with (un)load_module and therefore has to
+ register just internally with res_pjsip.
+
+ ASTERISK-27860
+
+ Change-Id: Icd0413be7d2e98b92f51e6d6c353f2570bb4be95
+
+2018-03-27 18:53 +0000 [36f08075da] Nic Colledge <nic@njcolledge.net>
+
+ * app_voicemail: Fix data-type mismatch between app_voicemail and database
+
+ Fix data-type mismatch between app_voicemail and database columns
+ exposed by new version of MariaDB
+
+ ASTERISK-27760
+
+ Change-Id: I8543ad480a08c98be78bde1ee870e6e6c84b2c5b
+
+2018-05-11 12:49 +0000 [308a967470] Alexander Traud <pabstraud@compuserve.com>
+
+ * rtp_engine: Remove the double assigned RTP payload ID of H.263+.
+
+ Mantis-3709 (Commit 68ff3c3, Asterisk 1.2) added support for the video format
+ H.263+. For this, the RTP payload ID 103 got assigned statically. Commit f1aadc8
+ assigned another payload ID 98 for this format in Asterisk 1.6.
+
+ Change-Id: I90e35b158487f8f1f8187da6241b54cd3b74e667
+
+2018-05-11 12:26 +0000 [67212eae87] Corey Farrell <git@cfware.com>
+
+ * cli: Display correct unit for HTTP timeout in "manager show settings".
+
+ HTTP timeout is in seconds, not minutes.
+
+ ASTERISK-27852 #close
+
+ Change-Id: Ie6640835cb07307555741f9b559c2eb876d9343e
+
+2018-05-11 10:37 +0000 [9fe4f99cba] Alexander Traud <pabstraud@compuserve.com>
+
+ * rtp_engine: Avoid a typo error in Doxygen for ast_rtp_codecs_find_payload_code.
+
+ Change-Id: Ica089d4507a27ddfc4ce3a88d697ffbef378de48
+
+2018-05-07 10:49 +0000 [d893e57c90] Corey Farrell <git@cfware.com>
+
+ * Fix GCC 8 build issues.
+
+ This fixes build warnings found by GCC 8. In some cases format
+ truncation is intentional so the warning is just suppressed.
+
+ ASTERISK-27824 #close
+
+ Change-Id: I724f146cbddba8b86619d4c4a9931ee877995c84
+
+2018-05-04 16:07 +0000 [316efcddb9] Matthew Fredrickson <creslin@digium.com>
+
+ * res_hep: Adds hostname resolution support for capture_address
+
+ Previously, only an IP address would be accepted for the capture_address config
+ setting in hep.conf. This change allows capture_address to be a resolvable
+ hostname or an IP address.
+
+ ASTERISK-27796 #close
+ Reported-By: Sebastian Gutierrez
+
+ Change-Id: I33e1a37a8b86e20505dadeda760b861a9ef51f6f
+
+2018-05-09 09:30 +0000 [19ebad0d30] Corey Farrell <git@cfware.com>
+
+ * git: Ignore *.orig.
+
+ This prevents accidental commit of files created by patch.
+
+ Change-Id: I68380db61f0f9d620046f719ccd978811d0e9964
+
+2018-04-18 02:27 +0000 [c6a4d34b7f] Alexander Traud <pabstraud@compuserve.com>
+
+ * sip_to_pjsip: Enable python3 compatibility.
+
+ The script remains compatible with Python 2.7 but now also works with
+ Python 3.3 and newer; to ease the migration from chan_sip to chan_pjsip.
+
+ ASTERISK-27811
+
+ Change-Id: I59cc6b52a1a89777eebcf25b3023bdf93babf835
+
+2018-05-08 14:28 +0000 [ba6034db48] Corey Farrell <git@cfware.com>
+
+ * makeopts.in: Remove unused/undefined AST_MARCH_NATIVE.
+
+ Change-Id: I617a96ebb83ec99f5d3176bbbee2d2a272ccb203
+
+2018-05-08 04:59 +0000 [47548ff485] Jaco Kroon <jaco@uls.co.za>
+
+ * manager: fix digest auth for ami/http mechanism.
+
+ Due to a fixed size buffer the digest authentication could be
+ incorrectly calculated if a large URI was provided, causing
+ authentication failure. The buffer is now dynamically allocated to allow
+ any size URI within the normal limits of the HTTP request size.
+
+ ASTERISK-27841
+
+ Change-Id: I660609db13b8f9e5f9567f339dd804f4985d41b3
+
+2018-05-04 13:47 +0000 [5dffdf79d1] Corey Farrell <git@cfware.com>
+
+ * app_macro: Prevent infinite loop in find_matching_priority.
+
+ Use AST_PBX_MAX_STACK to escape if we recurse 128 times. This will
+ prevent crash if dialplan contains an include loop. Log an error when
+ this occurs, at most one message per call to Macro() so we avoid logger
+ spam.
+
+ ASTERISK-26570 #close
+
+ Change-Id: I6c71b76998c31434391b150de055ae9a531e31da
+
+2018-05-03 06:34 +0000 [a36d6e3674] Joshua Colp <jcolp@digium.com>
+
+ * res_ari: Remove requirement that body exists when debug is on.
+
+ The "ari set debug" code for incoming requests incorrectly assumed
+ that all requests would contain a body. If one did not exist the
+ request would be incorrectly rejected. The response that was sent
+ was also incomplete as an incorrect function was used to construct
+ the response.
+
+ The code has now been changed to no longer require a request to have
+ a body and the response updated to use the correct function.
+
+ ASTERISK-27801
+
+ Change-Id: I4eef036ad54550a4368118cc348765ecac25e0f8
+
+2018-05-02 07:43 +0000 [850e554793] Sean Bright <sean.bright@gmail.com>
+
+ * pjsip: Increase maximum number of usable ciphers & other cleanups
+
+ * Increase maximum number of ciphers from 100 to 256 (or whatever
+ PJ_SSL_SOCK_MAX_CIPHERS is #define'd to)
+
+ * Simplify logic in cipher_name_to_id()
+
+ * Make signed/unsigned comparison consistent
+
+ Re: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=897412
+
+ Reported by: Ondřej Holas
+
+ Change-Id: Iea620f03915a1b873e79743154255c3148a514e7
+
+2018-04-30 17:24 +0000 [51a6a986f1] Richard Mudgett <rmudgett@digium.com>
+
+ * res_pjsip/pjsip_distributor.c: Add missing off-nominal request response.
+
+ Change-Id: I389579b39c523d1d1e8ce020ef549a8bb5781c9b
+
+2018-04-30 17:20 +0000 [3663968705] Richard Mudgett <rmudgett@digium.com>
+
+ * res_pjsip/pjsip_distributor.c: Pull some assignments out of if tests.
+
+ Change-Id: I3d30d638b53a4bbe9bf9aad853c649d583894112
+
+2017-12-11 12:34 +0000 [bea52b3706] Joshua Colp <jcolp@digium.com>
+
+ * pjsip: Rewrite OPTIONS support with new eyes.
+
+ The OPTIONS support in PJSIP has organically grown, like many things in
+ Asterisk. It has been tweaked, changed, and adapted based on situations
+ run into. Unfortunately this has taken its toll. Configuration file
+ based objects have poor performance and even dynamic ones aren't that
+ great.
+
+ This change scraps the existing code and starts fresh with new eyes. It
+ leverages all of the APIs made available such as sorcery observers and
+ serializers to provide a better implementation.
+
+ 1. The state of contacts, AORs, and endpoints relevant to the qualify
+ process is maintained. This state can be updated by external forces (such
+ as a device registering/unregistering) and also the reload process. This
+ state also includes the association between endpoints and AORs.
+
+ 2. AORs are scheduled and not contacts. This reduces the amount of work
+ spent juggling scheduled items.
+
+ 3. Manipulation of which AORs are being qualified and the endpoint states
+ all occur within a serializer to reduce the conflict that can occur with
+ multiple threads attempting to modify things.
+
+ 4. Operations regarding an AOR use a serializer specific to that AOR.
+
+ 5. AORs and endpoint state act as state compositors. They take input
+ from lower level objects (contacts feed AORs, AORs feed endpoint state)
+ and determine if a sufficient enough change has occurred to be fed further
+ up the chain.
+
+ 6. Realtime is supported by using observers to know when a contact has
+ been registered. If state does not exist for the associated AOR then it
+ is retrieved and becomes active as appropriate.
+
+ The end result of all of this is best shown with a configuration file of
+ 3000 endpoints each with an AOR that has a static contact. In the old
+ code it would take over a minute to load and use all 8 of my cores. This
+ new code takes 2-3 seconds and barely touches the CPU even while dealing
+ with all of the OPTIONS requests.
+
+ ASTERISK-26806
+
+ Change-Id: I6a5ebbfca9001dfe933eaeac4d3babd8d2e6f082
+
+2018-04-18 15:59 +0000 [63c68d023c] Kevin Harwell <kharwell@digium.com>
+
+ * translate: generic plc not filled in after translation
+
+ If during translation a codec could not handle a given frame the translation
+ core would return NULL, thus not passing along the "missing" frame. Due to this
+ there was no frame to apply generic plc to, thus rendering it useless.
+
+ This patch makes it so the translation core produces an interpolated slin frame
+ in the cases where an attempt was made to translate to slin, but failed. This
+ interpolated frame is then passed along and can be used by the generic plc
+ algorithms to fill in the frame.
+
+ ASTERISK-27814 #close
+
+ Change-Id: I133d084da87adef913bf2ecc9c9240e3eaf4f40a
+
+2018-04-20 14:07 +0000 [1593ff91fe] Alexander Anikin <may213@yandex.ru>
+
+ * chan_ooh323: fix ooManualProgress/ooManualRingback on ooh323 debuggin on
+
+ Call ooManualProgress/Ringback outside of ast_debug function
+ when ooh323 debugging is on
+
+ ASTERISK-27812 #close
+ ASTERISK-26893 #close
+ Reported by: Dimos, Marco Giordani
+
+ Change-Id: I5873762e4f05824e7b6e94a19dd4eb56adbbbb79
+
+2018-04-20 07:13 +0000 [94c8b20f5f] Alexander Traud <pabstraud@compuserve.com>
+
+ * BuildSystem: Enable IMAP storage on FreeBSD and DragonFly BSD.
+
+ ASTERISK-27639
+
+ Change-Id: I1347f3f2f3737010d0a80a5c30b5aaf71cf3ccb0
+
+2018-04-20 05:54 +0000 [7b219311eb] Alexander Traud <pabstraud@compuserve.com>
+
+ * BuildSystem: Add DragonFly BSD.
+
+ ASTERISK-27820
+
+ Change-Id: I310896143e94d65da1c2be3bb448204a8b86d557
+
+2018-04-20 05:40 +0000 [00711bce99] Alexander Traud <pabstraud@compuserve.com>
+
+ * menuselect: Add DragonFly BSD.
+
+ In DragonFly BSD, added libraries from ports are placed into /usr/local.
+ Therefore, this directory must be added for the preprocessor, compiler, and
+ linker.
+
+ Beside that, the script ./configure was updated:
+ * OSARCH list was outdated and not used, removed.
+ * AC_CANONICAL_BUILD was not used.
+ * _REENTRANT, this feature test macro is obsolete.
+
+ ASTERISK-27820
+
+ Change-Id: I186d88d99cfa4de6569888e12ac97bd2f441c422
+
+2018-04-20 05:23 +0000 [866b884eab] Alexander Traud <pabstraud@compuserve.com>
+
+ * install_prereq: Add DragonFly BSD.
+
+ ASTERISK-27820
+
+ Change-Id: I718ddb000fe5184b1bdc7759da67a370a7520144
+
+2018-04-18 16:24 +0000 [ea14243971] Corey Farrell <git@cfware.com>
+
+ * res_pjsip: Fix initialization of extended stringfields.
+
+ It is possible for initialization of extended stringfields to fail. Add
+ checks for this failure.
+
+ Change-Id: I062e09852db3d37ceefaf6c2048958fa0118304f
+
+2018-04-18 13:40 +0000 [7b05184bca] Sean Bright <sean.bright@gmail.com>
+
+ * format_pcm: Correct behavior of fseek and ftell for G.722
+
+ There are twice as many samples in the same number of bytes, so redefine
+ some of the G.722 format functions in terms of their PCM counterparts.
+
+ Change-Id: I6a8c7352624b930a5f2d9e4857f75283fa5dd9f9
+
+2018-04-18 05:32 +0000 [8611135e96] Alexander Anikin <may213@yandex.ru>
+
+ * chan_ooh323: Fix cppcheck warnings
+
+ Fix cppcheck warnings about redundant conditions and possible
+ null pointer usage
+
+ ASTERISK-27793 #close
+ Reported by: Ilya Shipitsin
+ Tested by: Ilya Shipitsin
+
+ Change-Id: I0b31933b062a23331dbac9a82b8bcfe345f406f6
+
+2018-04-10 16:09 +0000 [3c2249fd37] George Joseph <gjoseph@digium.com>
+
+ * app_sendtext: Enhance SendText to support Enhanced Messaging
+
+ SendText now accepts new channel variables that can be used
+ to override the To and From display names and set the Content-Type
+ of a message. Since you can now set Content-Type, other text/*
+ content types are now valid.
+
+ Change-Id: I648b4574478119f95de09d9f08e9595831b02830
+
+2017-09-27 11:44 +0000 [be7d4faed5] George Joseph <gjoseph@digium.com>
+
+ * bridge_softmix: Forward TEXT frames
+
+ Core bridging and, more specifically, bridge_softmix have been
+ enhanced to relay received frames of type TEXT or TEXT_DATA to all
+ participants in a softmix bridge. res_pjsip_messaging and
+ chan_pjsip have been enhanced to take advantage of this so when
+ res_pjsip_messaging receives an in-dialog MESSAGE message from a
+ user in a conference call, it's relayed to all other participants
+ in the call.
+
+ res_pjsip_messaging already queues TEXT frames to the channel when
+ it receives an in-dialog MESSAGE from an endpoint and chan_pjsip
+ will send an MESSAGE when it gets a TEXT frame. On a normal
+ point-to-point call, the frames are forwarded between the two
+ correctly. bridge_softmix was not though so messages weren't
+ getting forwarded to conference bridge participants. Even if they
+ were, the bridging code had no way to tell the participants who
+ sent the message so it would look like it came from the bridge
+ itself.
+
+ * The TEXT frame type doesn't allow storage of any meta data, such
+ as sender, on the frame so a new TEXT_DATA frame type was added that
+ uses the new ast_msg_data structure as its payload. A channel
+ driver can queue a frame of that type when it receives a message
+ from outside. A channel driver can use it for sending messages
+ by implementing the new send_text_data channel tech callback and
+ setting the new AST_CHAN_TP_SEND_TEXT_DATA flag in its tech
+ properties. If set, the bridging/channel core will use it instead
+ of the original send_text callback and it will get the ast_msg_data
+ structure. Channel drivers aren't required to implement this. Even
+ if a TEXT_DATA enabled driver uses it for incoming messages, an
+ outgoing channel driver that doesn't will still have it's send_text
+ callback called with only the message text just as before.
+
+ * res_pjsip_messaging now creates a TEXT_DATA frame for incoming
+ in-dialog messages and sets the "from" to the display name in the
+ "From" header, or if that's empty, the caller id name from the
+ channel. This allows the chat client user to set a friendly name
+ for the chat.
+
+ * bridge_softmix now forwards TEXT and TEXT_DATA frames to all
+ participants (except the sender).
+
+ * A new function "ast_sendtext_data" was added to channel which
+ takes an ast_msg_data structure and calls a channel's
+ send_text_data callback, or if that's not defined, the original
+ send_text callback.
+
+ * bridge_channel now calls ast_sendtext_data for TEXT_DATA frame
+ types and ast_sendtext for TEXT frame types.
+
+ * chan_pjsip now uses the "from" name in the ast_msg_data structure
+ (if it exists) to set the "From" header display name on outgoing text
+ messages.
+
+ Change-Id: Idacf5900bfd5f22ab8cd235aa56dfad090d18489
+
+2018-04-17 05:31 +0000 [fb9634bcb3] Alexander Traud <pabstraud@compuserve.com>
+
+ * chan_vpb: Avoid GNU old-style field designator extension.
+
+ clang 6.0 warned about this. Beside that, this change removes the used variable
+ 'desc'.
+
+ ASTERISK-27808
+
+ Change-Id: Ia26bdcc0a562c058151814511cfcf70ecafa595b
+
+2018-04-19 18:28 +0000 Asterisk Development Team <asteriskteam@digium.com>
+
+ * asterisk 13.21.0-rc1 Released.
+
+2018-04-17 07:09 +0000 [92f88f164a] Alexander Traud <pabstraud@compuserve.com>
+
+ * utils/pval: Add -lBlocksRuntime for compiler clang conditionally.
+
+ ASTERISK-27809
+
+ Change-Id: I930b364a33d54cc08dedfcd5bb45f7e83242f134
+
+2018-04-13 15:17 +0000 [39c51394c8] George Joseph <gjoseph@digium.com>
+
+ * utils: Add ast_assert_return
+
+ Similar to pjproject's PJ_ASSERT_RETURN macro, this one will do the
+ following...
+
+ If the assert passes... NoOp
+
+ If the assert fails and AST_DEVMODE is defined, execute ast_assert()
+ then, if DO_CRASH isn't set, return from the calling function with
+ the supplied value.
+
+ If the assert fails and AST_DEVMODE is not defined, return from the
+ calling function with the supplied value.
+
+ The macro will execute a return without a value if one isn't suppled.
+
+ Change-Id: I0003844affeab550d5ff5bca7aa7cf8a559b873e
+
+2018-04-13 14:32 +0000 [f2e140e8a7] Ben Ford <bford@digium.com>
+
+ * res_musiconhold: Don't restart MOH from beginning after announcement.
+
+ This reverts a problem introduced by the fix for ASTERISK_24329.
+ Now, when an announcement is played while waiting in a queue, music on
+ hold will not restart from the beginning of the sound file and will
+ instead pick up where it left off. However, the incorrect behavior in
+ ASTERISK_24329 is now present again; if an announcement X seconds
+ long is played when music on hold starts, music on hold will start X
+ seconds into the file.
+
+ ASTERISK-27774 #close
+ Reported by: lvl
+
+ Change-Id: I86b2885ee7063268f9b9747eddb788336ade989b
+
+2018-03-28 15:13 +0000 [b92ebdba5f] Richard Mudgett <rmudgett@digium.com>
+
+ * pjsip_scheduler.c: Add ability to trace scheduled tasks.
+
+ When a scheduled task is created you can pass in the
+ AST_SIP_SCHED_TASK_TRACK flag. This new flag causes scheduling events to
+ be logged.
+
+ Change-Id: I91967eb3d5a220915ce86881a28af772f9a7f56b
+
+2018-03-27 11:04 +0000 [12aa25b2e1] Richard Mudgett <rmudgett@digium.com>
+
+ * res_pjsip.c: Split ast_sip_push_task_synchronous() to fit expectations.
+
+ ast_sip_push_task_synchronous() did not necessarily execute the passed in
+ task under the specified serializer. If the current thread is any
+ registered pjsip thread then it would execute the task immediately instead
+ of under the specified serializer. Reentrancy issues could result if the
+ task does not execute with the right serializer.
+
+ The original reason ast_sip_push_task_synchronous() checked to see if the
+ current thread was a registered pjsip thread was because of a deadlock
+ with masquerades and the channel technology's fixup callback
+ (ASTERISK_22936). A subsequent masquerade deadlock fix (ASTERISK_24356)
+ involving call pickups avoided the original deadlock situation entirely.
+ The PJSIP channel technology's fixup callback no longer needed to call
+ ast_sip_push_task_synchronous().
+
+ However, there are a few places where this unexpected behavior is still
+ required to avoid deadlocks. The pjsip monitor thread executes callbacks
+ that do calls to ast_sip_push_task_synchronous() that would deadlock if
+ the task were actually pushed to the specified serializer. I ran into one
+ dealing with the pubsub subscriptions where an ao2 destructor called
+ ast_sip_push_task_synchronous().
+
+ * Split ast_sip_push_task_synchronous() into
+ ast_sip_push_task_wait_servant() and ast_sip_push_task_wait_serializer().
+ ast_sip_push_task_wait_servant() has the old behavior of
+ ast_sip_push_task_synchronous(). ast_sip_push_task_wait_serializer() has
+ the new behavior where the task is always executed by the specified
+ serializer or a picked serializer if one is not passed in. Both functions
+ behave the same if the current thread is not a SIP servant.
+
+ * Redirected ast_sip_push_task_synchronous() to
+ ast_sip_push_task_wait_servant() to preserve API for released branches.
+
+ ASTERISK_26806
+
+ Change-Id: Id040fa42c0e5972f4c8deef380921461d213b9f3
+
+2018-03-21 19:43 +0000 [dfdc9a2575] Richard Mudgett <rmudgett@digium.com>
+
+ * pjsip_scheduler.c: Fix some corner cases.
+
+ * Fix the periodic interval wander because it may take significant time
+ between the sched thread queueing the task in the serializer and the
+ serializer actually executing the task. The time it takes to actually
+ execute the task was already taken into account.
+
+ * Pass a schtd ref to the serializer when we queue a scheduled task on
+ the serializer. We don't want it going away on us while it is in the
+ serializer queue.
+
+ * Skip the scheduled task if the task was canceled between queueing the
+ task to the serializer and the serializer actually executing the task.
+
+ * Reorder struct ast_sip_sched_task to avoid unnecessary padding. Removed
+ task_id and added next_periodic.
+
+ * Hold a ref to the passed in serializer so the serializer cannot go away
+ on the scheduled task.
+
+ ASTERISK_26806
+
+ Change-Id: I6c8046b75f6953792c8c30e55b836a4291143f24
+
+2018-03-22 19:09 +0000 [af36823907] Richard Mudgett <rmudgett@digium.com>
+
+ * pjsip_scheduler.c: Sort "pjsip show scheduled_tasks" output.
+
+ * A side benefit is that the scheduled tasks are not completely blocked
+ while the CLI command executes.
+
+ * Adjusted the "Task Name" column width to have more room for longer
+ names.
+
+ Change-Id: Iec64aa463ee8b10eef90120e00c38b1fb444087e
+
+2018-04-02 15:59 +0000 [7886354343] Evandro Cesar Arruda <ecarruda@gmail.com>
+
+ * cdr_mysql: Compile error because MYSQL_PORT definition is missing
+
+ If it is not defined, it will add MYSQL_PORT definition. After some
+ research on MySQL/MariaDB development tree, I couldn't find any reference
+ to MYSQL_PORT definition in include files.
+
+ ASTERISK-27782 #close
+
+ Change-Id: Ieee56c836fc2e8bd021c456145bba04c6068bb77
+
+2018-04-09 20:00 +0000 [724d926d46] Chris-Savinovich <csavinovich@digium.com>
+
+ * res_pjsip_session: Rewrite o= with external_media_address.
+
+ It now appends the external IP address on the
+ o= line of the SDP packet. The decision was made to write
+ the numeric IP address as opposed to the RFC that states
+ the FQDN should be used if and when available. We believe
+ the usage of literal IP address will help avoid
+ potential problems.
+
+ ASTERISK-27614 #close
+
+ Change-Id: I84f3360f3606b8c4e8d161edb228799ec0b8a302
+
+2018-02-22 12:18 +0000 [6a4afe09ce] Nathan Bruning <nathan@iperity.com>
+
+ * res_pjsip_notify.c: enable in-dialog NOTIFY
+
+ This patch adds support to send in-dialog SIP NOTIFY commands on
+ chan_pjsip channels, similar to the functionality recently added
+ for chan_sip (ASTERISK_27461).
+
+ This extends res_pjsip_notify to allow for in-dialog messages.
+
+ ASTERISK-27697
+
+ Change-Id: If7f3151a6d633e414d5dc319d5efc1443c43dd29
+
+2018-03-22 13:35 +0000 [c4f02c975b] Richard Mudgett <rmudgett@digium.com>
+
+ * pjsip_scheduler.c: Fix ao2 usage errors.
+
+ * Removed several invalid uses of OBJ_NOLOCK. These uses resulted in the
+ 'tasks' container being accessed without a lock in a multi-threaded
+ environment. A recipe for crashes.
+
+ * Removed needlessly obtaining schtd object references. If the caller
+ providing you a pointer to an object doesn't have a valid reference then
+ you cannot safely get one from it.
+
+ * Getting a ref to 'tasks' when you aren't copying the pointer into
+ another location is useless. The 'tasks' container pointer is global.
+
+ * Removed many unnecessary uses of RAII_VAR.
+
+ * Make ast_sip_schedule_task() name parameter const.
+
+ ASTERISK_26806
+
+ Change-Id: I5c62488e651314e2a1dbc01f5b078a15512d73db
+
+2018-03-23 06:49 +0000 [7593359787] Corey Farrell <git@cfware.com>
+
+ * Build System: Enable python3 compatibility.
+
+ * Consistently use spaces in rest-api-templates/asterisk_processor.py.
+ * Exclude third-party from docs/full-en_US.xml.
+ * Add docs/full-en_US.xml to .gitignore.
+ * Use list() to convert python3 view.
+ * Use python3 print function.
+ * Replace cmp() with equivalent equation.
+ * Replace reference to out of scope subtype variable with name
+ parameter.
+ * Use unescaping triple bracket notation in mustache templates where
+ needed. This causes behavior of Python2 to be maintained when using
+ Python3.
+ * Fix references to has_websocket / is_websocket in
+ res_ari_resource.c.mustache.
+ * Update calculation of has_websocket to use any().
+ * Use unicode mode for writing output file in transform.py.
+ * Replace 'from swagger_model import *' with explicit import of required
+ symbols.
+ * Add missing 'import os'
+ * Fix invalid reference to swagger_version from exception handler.
+
+ I have not tested voicemailpwcheck.py, only the print syntax has
+ been fixed.
+
+ Change-Id: If5c5b556a2800d41a3e2cfef080ac2e151178c33
+
+2018-04-05 18:33 +0000 [72b16ee400] Richard Mudgett <rmudgett@digium.com>
+
+ * res_pjsip_refer/chan_sip: Fix INVITE with replaces transfer to ConfBridge
+
+ There is a problem when an INVITE-with-Replaces transfer targets a channel
+ in a ConfBridge. The transfer will unconditionally swap out the
+ ConfBridge channel. Unfortunately, the ConfBridge state will not be aware
+ of this change. Unexpected behavior will happen as a result since
+ ConfBridge channels currently can only be replaced by a masquerade and not
+ normal bridge channel moves.
+
+ * We just need to pretend that the channel isn't in a bridge (like other
+ transfer methods already do) so the transfer channel will masquerade into
+ the ConfBridge channel.
+
+ Change-Id: I209beb0e748fa4f4b92a576f36afa8f495ba4c82
+
+2018-04-05 17:40 +0000 [ea055386e0] Richard Mudgett <rmudgett@digium.com>
+
+ * chan_sip.c: Fix INVITE with replaces channel ref leak.
+
+ Given the below call scenario:
+ A -> Ast1 -> B
+ C <- Ast2 <- B
+
+ 1) A calls B through Ast1
+ 2) B calls C through Ast2
+ 3) B transfers A to C
+
+ When party B transfers A to C, B sends a REFER to Ast1 causing Ast1 to
+ send an INVITE with replaces to Ast2. Ast2 then leaks a channel ref of
+ the channel between Ast1 and Ast2.
+
+ Channel ref leaks are easily seen in the CLI "core show channels" output.
+ The leaked channels appear in the output but you can do nothing with them
+ and they never go away unless you restart Asterisk.
+
+ * Properly account for the channel refs when imparting a channel into a
+ bridge when handling an INVITE with replaces in handle_invite_replaces().
+ The ast_bridge_impart() function steals a channel ref but the code didn't
+ account for how many refs were held by the code at the time and which ref
+ was stolen.
+
+ * Eliminated RAII_VAR in handle_invite_replaces().
+
+ ASTERISK-27740
+
+ Change-Id: I7edbed774314b55acf0067b2762bfe984ecaa9a4
+
+2018-03-21 19:40 +0000 [e94f8e4a24] Richard Mudgett <rmudgett@digium.com>
+
+ * res_pjsip: Update authenticate_qualify documentation.
+
+ Change-Id: I3811de0014b1ffe96d4a3b49cddd5d4ca02ee5d4
+
+2018-04-02 16:49 +0000 [906db6a3ff] Richard Mudgett <rmudgett@digium.com>
+
+ * app_agent_pool.c: Fix off nominal ref leak.
+
+ Change-Id: Ib427ffc2c802620eaafb08b1c2a17dddd8fb8eb6
+
+2018-04-04 10:02 +0000 [07e408e588] Corey Farrell <git@cfware.com>
+
+ * Build System: Strip '-std=c99' from CFLAGS provided by libraries.
+
+ Asterisk requires GNU C extensions. On some systems certain libraries
+ may incorrectly push -std=c99 into CFLAGS, thus breaking the build.
+ This change causes that flag to be stripped so the Asterisk build is not
+ broken by those libraries. This change is made for both pkgconfig and
+ tool based libraries.
+
+ ASTERISK-27629 #close
+
+ Change-Id: I13389613b194abbac77becf90cd950dc168704db
+
+2018-04-03 14:39 +0000 [01b3c435d8] Corey Farrell <git@cfware.com>
+
+ * Build System: Fixes for configure script.
+
+ * Replace all 'else if' statements with 'elif'.
+ * Use loop to detect versioned lua headers and libraries.
+
+ The loop for detecting lua fixes a bug where LUA_INCLUDE would be
+ appended with the directory of every lua version after the first one is
+ found.
+
+ Change-Id: I3276f9aee955014108345be6092f51c932b43a0f
+
+2018-01-02 07:54 +0000 [cea1a22ef3] George Joseph <gjoseph@digium.com>
+
+ * res_pjsip: Correct usages of pjproject's timer heap
+
+ Fix some timer heap initializations and cancels to try and prevent
+ crashes and timer heap issues.
+
+ Change-Id: I64885d190fa22097d1b55987091375541e57a7ee
+
+2018-03-25 13:35 +0000 [158c0efd4f] George Joseph <gjoseph@digium.com>
+
+ * pjroject_bundled: Add already-destroyed check to tsx_timer_callback
+
+ There have been cases that when the transaction timer callback is called
+ the tsx is already destroyed. This causes a crash. We now check the
+ tsx state and return if the tsx is already destroyed.
+
+ Change-Id: If93acd5e48d9ca5bb553f2405d5afc836842fe1c
+
+2018-03-25 13:25 +0000 [69c61237cd] George Joseph <gjoseph@digium.com>
+
+ * pjproject_bundled: timer: Clean up usage of timer heap
+
+ Added a new pj_timer_entry_reset function that resets a timer_entry
+ for re-use.
+
+ Changed direct settings of timer_entry fields to use
+ pj_timer_entry_init and pj_timer_entry_reset.
+
+ Fixed issues where timers were being rescheduled incorrectly.
+
+ Change-Id: I5b624bfbc5c1429117484b9b24567293002148e6
+
+2018-03-22 08:54 +0000 [83353997f4] Alexander Traud <pabstraud@compuserve.com>
+
+ * BuildSystem: Add support for building RADIUS with radcli.
+
+ Radcli is yet another RADIUS client library, generally compatible with
+ freeradius and radiusclient-ng.
+
+ This commit adds autoconf option for detecting it as well and changes
+ cdr_radius and cel_radius to use its header file in that case.
+
+ ASTERISK-26540
+ Reported by: Tzafrir Cohen
+
+ Change-Id: Icc056d476b7acf481309219e9abdca416866c6ec
+
+2018-03-29 17:07 +0000 [e1363283d7] Richard Mudgett <rmudgett@digium.com>
+
+ * res_pjsip: Fix deadlock on reliable transport shutdown.
+
+ A deadlock can happen when the PJSIP monitor thread is shutting down a
+ connection oriented transport (TCP/TLS) used by a subscription at the same
+ time as another thread tries to send something for that subscription. The
+ deadlock is between the pjsip monitor thread attempting to get the dialog
+ lock and another thread sending something for that dialog when it tries to
+ get the transport manager lock.
+
+ * res_pjsip_pubsub.c: Avoid the deadlock by pushing the subscription
+ removal to the subscription serializer.
+
+ * res_pjsip_registrar.c: Pushed off incoming registration contact removals
+ to a default serializer as a precaution. Removing the contacts involves
+ sorcery access which in this case will involve database access. Depending
+ upon the setup, the database may not be on the same machine and could take
+ awhile. We don't want to hold up the pjsip monitor thread with
+ potentially long access times.
+
+ ASTERISK-27706
+
+ Change-Id: I56b647aea565f24dba33e9e5ebeed4cd3f31f8c4
+
+2018-03-25 13:12 +0000 [c63a2e28f1] George Joseph <gjoseph@digium.com>
+
+ * pjproject_bundled: Add patch for pj_atomic crashes
+
+ There have been some crashes in the past where something attempts
+ to use a pj_atomic after it's already been destroyed. This patch
+ tries to prevent it by making sure that pj_atomic_destroy sets
+ its mutex to NULL when it's done. The pj_mutex functions already check
+ for a NULL mutex and just return PJ_EINVAL.
+
+ Teluu also added some checks to the win32 implementation as well.
+
+ Change-Id: Id25f70b79fdedf44ead6e6e1763a4417d3b3f825
+
+2018-03-28 08:18 +0000 [5908c6753b] Corey Farrell <git@cfware.com>
+
+ * core: Create main/options.c.
+
+ This creates a separate source to 'own' symbols related to options.h and
+ paths.h. This significantly reduces the number of exports created by
+ main/asterisk.o. This change is required to eventually be able to
+ link unmodified Asterisk sources to utilities and/or stand-alone tests.
+
+ ASTERISK~26245
+
+ Change-Id: I5cf184f4757f9363b80c9e678bdc35c477122380
+
+2018-03-23 13:15 +0000 [e8e4fc6202] Alexander Traud <pabstraud@compuserve.com>
+
+ * install_prereq: Add Slackware (somehow).
+
+ ASTERISK-27770
+
+ Change-Id: Ib87e0483c785542238cfe34c1e884d5a31edfaab
+
+2018-03-23 09:18 +0000 [96a668e60b] Alexander Traud <pabstraud@compuserve.com>
+
+ * install_prereq: Add Gentoo Linux.
+
+ ASTERISK-27769
+
+ Change-Id: Ieb13293cd67481f3a33f58f6f7c8c3ee1e338e7a
+
+2018-03-17 01:02 +0000 [6615469a05] Corey Farrell <git@cfware.com>
+
+ * main/indications: Use ast_cli_completion_add for all completions.
+
+ Change-Id: I371be01f178fb542a9fbe8d97e7ae21aa4d82c36
+
+2018-03-22 07:27 +0000 [de4e2c1de8] Alexander Traud <pabstraud@compuserve.com>
+
+ * BuildSystem: pjsip_evsub_set_uas_timeout was not used (part 2).
+
+ The previous change was not complete.
+
+ ASTERISK-27435
+
+ Change-Id: I11082c14c0ef9c6af8c995084a6851337ea2a90f
+
+2018-03-22 05:52 +0000 [79bb956b69] Alexander Traud <pabstraud@compuserve.com>
+
+ * BuildSystem: With external editline, do not require libs for internal editline.
+
+ ASTERISK-27761
+
+ Change-Id: Ib17a7415297a210cfcdbf149e4df9b6edadbfab6
+
+2018-03-21 19:25 +0000 [3a4a441817] George Joseph <gjoseph@digium.com>
+
+ * Revert "BuildSystem: In NetBSD, the Python Programming Language is python-X.Y."
+
+ Something is causing a python2/python3 mismatch on Fedora27.
+
+ PYTHON='/usr/bin/python2'
+ PYTHONDEV_CFLAGS='-I/usr/include/python3.6m '
+ PYTHONDEV_INCLUDE='-I/usr/include/python3.6m '
+ PYTHONDEV_LIB='-lpython3.6m '
+ PYTHONDEV_LIBS='-lpython3.6m '
+
+
+ This reverts commit c0c537c1d3aab05358df697d8d259aa73f55a43c.
+
+ Change-Id: I670a82aa7c872fa5facea1e3bc718e2d3124cc28
+
+2018-03-20 15:28 +0000 [17cd687679] Kevin Harwell <kharwell@digium.com>
+
+ * bridge_softmix: Clear "talking" when a channel is put on hold
+
+ This patch clears the talking flag from the channel (if already set), and
+ notifies listeners when that channel is put on hold. Note however, if the
+ endpoint continues to send audio frames and these are received by the bridge
+ then that channel will be put back into a "talking" state even though they
+ are on hold.
+
+ ASTERISK-27755 #close
+
+ Change-Id: I930e16c4662810f9f02043d69062f88173c5e2ef
+
+2018-03-07 06:15 +0000 [5955cdf5ae] Ross Beer <ross.beer@voicehost.co.uk>
+
+ * pjsip_transport_events.c: Fix crash using stale transport pointer.
+
+ Apparently it is possible for the transport to be destroyed without
+ triggering the transport callback logic. As a result the transport gets
+ destroyed and we have a stale pointer in the active_transports container.
+
+ * Invoke the transport monitor callback checks when the transport is
+ destroyed in addition to when it is disconnected and shutdown.
+
+ ASTERISK-27688
+
+ Change-Id: Ia9b5469fea8f2b3f2d8476fae6b748a4d23e7261
+
+2018-03-20 09:58 +0000 [69de659224] Ivan Poddubny <ivan.poddubny@gmail.com>
+
+ * func_channel: Delete dead CHANNEL_TRACE code
+
+ The functions behind the flag and the flag itself were removed
+ from Asterisk 12 as incompatible with the new architecture.
+
+ Change-Id: I058493ef7a53ee290fd225bbcbb07bf46b623ccf
+
+2018-03-20 11:55 +0000 [7580d1e0bb] Alexander Traud <pabstraud@compuserve.com>
+
+ * BuildSystem: For consistency, avoid extra libs to be empty.
+
+ AST_EXT_LIB_CHECK has several optional parameters. When an optional parameter
+ is left empty, [] is used to indicate this. However, this is done in the script
+ ./configure only then, when a further parameter is not empty. For example, when
+ no extra libraries are needed to test the checked library, parameter 5 is not
+ mentioned. Except parameter 6 and higher are used, then parameter 5 must be
+ empty.
+
+ However, this general rule was broken
+ * three times for parameter 5 (extra libs) and
+ * three times for parameter 4 (header)
+ as found via the Regular Expression \[\]\). In case of parameter 5, all cases
+ were changed, because that happened for no reason. In case of parameter 4, an
+ [] improves readability actually. Therefore for parameter 4, the only case which
+ did not do it was changed. All this aims to create more consistency: Only do
+ something different if there is a reason to do so.
+
+ Change-Id: I037ef170cf1ad94497151a9ea5071a31c656cafe
+
+2018-03-17 20:03 +0000 [6f304697b0] Corey Farrell <git@cfware.com>
+
+ * core: Remove dead symbols from asterisk.exports.in.
+
+ * dahdi_chan_name
+ * dahdi_chan_name_len
+ * dahdi_chan_mode
+ * __manager_event
+ * dialed_interface_info
+
+ Added comment about __progname and environ being needed for FreeBSD to
+ prevent accidental removal in the future.
+
+ Change-Id: I3ae026bc541cd9cb572be2ffa95fc359547642b5
+
+2018-03-17 01:39 +0000 [8df4811cfa] Corey Farrell <git@cfware.com>
+
+ * named_acl: Use ast_cli_completion_add.
+
+ Change-Id: I317a82de976bbdbfe4352c243e32a7bb8f66c377
+
+2018-03-17 01:58 +0000 [a89323236f] Corey Farrell <git@cfware.com>
+
+ * main/sounds: Use ast_cli_completion_add.
+
+ Change-Id: I140e1137906bbfcdb61c0c6304159be459ad873e
+
+2018-03-17 01:09 +0000 [dc520b6d8f] Corey Farrell <git@cfware.com>
+
+ * manager: Use ast_cli_completion_add for completion generators.
+
+ Change-Id: I658141c6ec490a3e866b02d2afea757928ceaabf
+
+2018-03-17 02:16 +0000 [534fda0a59] Corey Farrell <git@cfware.com>
+
+ * main/test: Use ast_cli_completion_add.
+
+ Change-Id: I5133ff2ba4e030f9733fb3d050c863d72a22ae6b
+
+2018-03-16 10:19 +0000 [373e7e3fb0] George Joseph <gjoseph@digium.com>
+
+ * channel.c: Allow generic plc then channel formats are equal
+
+ If the two formats on a channel are equal, we don't transcode and since
+ the generic plc needs slin to work, it doesn't get invoked.
+
+ * A new configuration option "genericplc_on_equal_codecs" was added
+ to the "plc" section of codecs.conf to allow generic packet loss
+ concealment even if no transcoding was originally needed.
+ Transcoding via SLIN is forced in this case.
+
+ ASTERISK-27743
+
+ Change-Id: I0577026a179dea34232e63123254b4e0508378f4
+
+2018-03-17 02:25 +0000 [bd926539b0] Corey Farrell <git@cfware.com>
+
+ * main/translate: Use ast_cli_completion_add.
+
+ Change-Id: I0e2402660e54d91f74ab0804c62a5b1925577413
+
+2018-03-17 02:00 +0000 [d202b56a74] Corey Farrell <git@cfware.com>
+
+ * main/taskprocessor: Use ast_cli_completion_add.
+
+ Change-Id: Ie5f812a988ed811fd11967151932de62bc131b48
+
+2018-03-17 00:51 +0000 [18cbfcf4f0] Corey Farrell <git@cfware.com>
+
+ * aco: Use ast_cli_completion_add for 'config show help'.
+
+ In addition this removes:
+ * RAII_VAR usage
+ * Duplicate check of pos
+ * Unneeded arguments.
+
+ Change-Id: I2da8eac2670d1d8d6474c04037129804f55ebf39
+
+2018-03-15 15:06 +0000 [d57b58f5e9] Corey Farrell <git@cfware.com>
+
+ * main/config: Use ast_cli_completion_add for reload completion.
+
+ Change-Id: Ia3fa4c03f2285a1ec8814bbe7f4624ead9111ad1
+
+2018-03-17 04:31 +0000 [34e16cbf3a] Corey Farrell <git@cfware.com>
+
+ * main/bridge: Use ast_cli_completion_add.
+
+ Change-Id: I3775a696d6a57139fdf09651ecb786bcf1774509
+
+2018-03-17 16:41 +0000 [98a3baca70] Corey Farrell <git@cfware.com>
+
+ * core: Minor cleanup of ast_el_read_char.
+
+ * Define CHAR_T_LIBEDIT and CHAR_TO_LIBEDIT based on
+ HAVE_LIBEDIT_IS_UNICODE. This avoids needing to repeatedly use
+ conditional blocks, eliminates having multiple function prototypes.
+ * Remove parenthesis from return values.
+ * Add missing code block brackets {}.
+ * Reduce use of 'else' conditional statements where possible.
+
+ Change-Id: I4315328ebea2f62641faf6881de2ac20a9f9d08e
+
+2018-03-17 10:54 +0000 [7b40605d8e] Alexander Traud <pabstraud@compuserve.com>
+
+ * BuildSystem: Check for header file of OGG.
+
+ Asterisk uses various symbols of the shared library libogg within the module
+ format_ogg_vorbis. However, the source code of that module did not include the
+ header file of libogg explicitly but implicitly. Because that header was not
+ included before Asterisk 14, the script ./configure was told not to check for
+ it.
+
+ Anyway, even Asterisk 13 LTS uses symbols of libogg. Therefore, that header
+ should be included explicitly. Therefore, ./configure should check for that
+ header.
+
+ Change-Id: I98c50d56311b68880d1084fcc62c35ab2f8692db
+
+2018-03-09 06:26 +0000 [06ba605988] Alexander Traud <pabstraud@compuserve.com>
+
+ * BuildSystem: When no download utility is available, display the explanation.
+
+ ./configure --with-pjproject-bundled
+ did not display an explanation, when no download utility like wget, curl, or
+ fetch was installed beforehand, although an explanation existed in code. This
+ happened because the code expected the variable DOWNLOAD_TO_STDOUT to be empty.
+ However, the script ./configure set that variable always.
+
+ Change-Id: I64c99b76a03525c69471e5055bf124b36a51bbd4
+
+2018-03-17 05:00 +0000 [0f634c1446] Alexander Traud <pabstraud@compuserve.com>
+
+ * BuildSystem: Remove unused dependency on libltdl.
+
+ Asterisk does not need the development package of libltdl, because it does not
+ use any symbol of -lltdl directly. Instead, it uses the runtime package via the
+ shared library -lodbc. On the supported platforms, that shared library declares
+ its dependency on -lltdl correctly, otherwise AST_EXT_LIB_CHECK would have
+ failed.
+
+ ASTERISK-27745
+
+ Change-Id: Icd315809b8e7978203431f3afb66240dd3a040ba
+
+2018-03-05 06:50 +0000 [c0c537c1d3] Alexander Traud <pabstraud@compuserve.com>
+
+ * BuildSystem: In NetBSD, the Python Programming Language is python-X.Y.
+
+ ASTERISK-27717
+
+ Change-Id: If90ddf9c396c32e7402a894f42dce215c30049d1
+
+2018-03-16 09:53 +0000 [afcd1dd8e5] Alexander Traud <pabstraud@compuserve.com>
+
+ * BuildSystem: Avoid an extra case for OpenBSD.
+
+ Nine years ago with Mantis 13639 (now ASTERISK-12841) an extra case for OpenBSD
+ was introduced: Vorbis required Ogg to be specified manually, because the shared
+ library libvorbis.so did not specify its required dependency on -logg itself.
+
+ Today with OpenBSD 6.2, all libvorbis*.so declare their dependencies correctly.
+ Therefore, an extra case is not required anymore.
+
+ Change-Id: Ifd04e0994ce9f1e4ad29c3948a0398b91d1e97bc
+
+2018-03-05 10:17 +0000 [5b80e97fff] Alexander Traud <pabstraud@compuserve.com>
+
+ * BuildSystem: Enable Advanced Linux Sound Architecture (ALSA) in NetBSD.
+
+ In the script ./configure, AST_EXT_LIB_CHECK checks for external libraries. Some
+ libraries do not specify all their dependencies and require additional shared
+ libraries. In AST_EXT_LIB_CHECK, this is the fifth parameter. However, if a
+ library is specified there, it must exist on the platform, because ./configure
+ tries to compile/link/execute a small app using those statements. For example,
+ the library libdl.so is Linux specific and does not exist on BSD-like platforms.
+
+ Furthermore, no supported platform/version was found, which still (ever?)
+ requires those additional libraries. Therefore, they were simply removed.
+
+ Finally, this change adds the error code ESTRPIPE to the channel driver
+ chan_alsa for those platforms which lack it, again for example NetBSD.
+
+ ASTERISK-27720
+
+ Change-Id: I3b21f2135f6cbfac7590ccdc2df753257f426e0b
+
+2018-03-16 09:02 +0000 [d5af24bb14] George Joseph <gjoseph@digium.com>
+
+ * app_voicemail: Fix json blob errors
+
+ When app_voicemail calls ast_test_suite_notify with the results of
+ a user keypress, it formats the keypress as '%c'. If the user hung up
+ or some other error occurrs, the result of the keypress is a non
+ printable character. This ultimately causes json_vpack_ex to think
+ it's being passed a non utf-8 string and return an error.
+
+ * Keypress results passed to ast_test_suite_notify are now checked with
+ isprint() and a '?' is substituted if the check fails.
+
+ Change-Id: I78ee188916bbac840f3d03f40201b692347ea865
+
+2018-02-27 03:01 +0000 [69463c612d] Florian Floimair <f.floimair@commend.com>
+
+ * app_dial: Enable early-media video
+
+ Certain applications (e.g. door-phone) require that also video is transmitted
+ before a call is accepted.
+
+ Change-Id: I9842e1dc2f6e1c2c49dc33fe615255007d2f821e
+
+2018-03-15 09:32 +0000 [a7ebb9409d] Corey Farrell <git@cfware.com>
+
+ * main/cdr: Use ast_cli_completion_add for CDR channel completion.
+
+ Change-Id: Ie81830647a23aad61c1162583b6d50adbe6e7822
+
+2018-03-15 08:19 +0000 [5ac64a4464] Corey Farrell <git@cfware.com>
+
+ * main/ccss: Use ast_cli_completion_add for core id.
+
+ Change-Id: I44b25d6d24c7d9bc1bb38a50774b38883162f98f
+
+2018-03-12 10:24 +0000 [e04be32fc5] Alexander Traud <pabstraud@compuserve.com>
+
+ * install_prereq: Add Arch Linux.
+
+ ASTERISK-27738
+
+ Change-Id: I7ca620e3c4dfb4b064a19382c4915aeb42a2a09f
+
+2018-03-15 04:49 +0000 [eb699f3631] Corey Farrell <git@cfware.com>
+
+ * core: Backport compatible MALLOC_DEBUG changes.
+
+ * Add support for MALLOC_DEBUG and DEBUG_CHAOS to be used together.
+ * Add utils/astmm.c to .gitignore.
+ * Fix MALLOC_DEBUG variant of __ast_vasprintf. This function called
+ va_end(ap) upon allocation failure. This is incorrect since ap is
+ passed as an argument.
+
+ Change-Id: I9f27ced4ce3cbe4b39547a67f994fdff491978c0
+
+2018-03-15 07:29 +0000 [7e0c56f800] Corey Farrell <git@cfware.com>
+
+ * astobj2_container: Use ast_cli_completion_add for container names.
+
+ Change-Id: I4f0fc09e820eb8d8da2354a177dbcf503c56ddd1
+
+2017-12-09 04:52 +0000 [7e041d6233] Corey Farrell <git@cfware.com>
+
+ * main/channel: Use ast_cli_completion_add for channeltypes.
+
+ Change-Id: Ia845fae6a84801cc7d9996767b99efb2753cbb48
+
+2018-03-14 12:38 +0000 [6539b89254] Corey Farrell <git@cfware.com>
+
+ * cli: Enable ast_cli_completion_add on public completion generators.
+
+ * ast_cli_complete
+ * ast_complete_channels
+ * ast_complete_applications
+
+ These generators will now use ast_cli_completion_add if state == -1.
+
+ Change-Id: I7ff311f0873099be0e43a3dc5415c0cd06d15756
+
+2018-03-14 11:17 +0000 [96eaabd920] Ross Beer <ross.beer@voicehost.co.uk>
+
+ * res_pjsip_rfc3326.c: Account for more than one 'Reason' header
+
+ ASTERISK-27741
+
+ Change-Id: I0aa59a54735c6d20b95c54db1bd095dbf93e7adf
+
+2018-03-12 08:10 +0000 [b237ef7f27] Alexander Traud <pabstraud@compuserve.com>
+
+ * install_prereq: Add SUSE.
+
+ ASTERISK-27736
+
+ Change-Id: I4cafc8973349d50a7cb7919ddf0bb1aaef4bfc3e
+
+2018-03-13 16:37 +0000 [dc738b145f] Corey Farrell <git@cfware.com>
+
+ * core: Remove incorrect usage of attribute_malloc.
+
+ GCC documentation states that when __attribute__((malloc)) is used it
+ should not return storage which contains any valid pointers. It
+ specifically mentions that realloc functions should not have the malloc
+ attribute, but this also means that complex initializers which could
+ contain initialized pointers should not use this attribute.
+
+ Change-Id: If507f33ffb3ca3b83b702196eb0e8215d27fc7d2
+
+2018-03-12 05:19 +0000 [7533d25e8d] Alexander Traud <pabstraud@compuserve.com>
+
+ * BuildSystem: Enable IMAP storage on openSUSE and Arch Linux.
+
+ ASTERISK-27734
+
+ Change-Id: I8d6e6a1c08c031649764f5277fbbb85e57c3a9d4
+
+2018-03-12 04:22 +0000 [09c43fdc1a] Alexander Traud <pabstraud@compuserve.com>
+
+ * res_srtp: Add support for libsrtp2.x on openSUSE.
+
+ Since ASTERISK-26976, libSRTP 2.x can be used for sRTP. However, that change
+ added a private header which is not available on openSUSE for example. To
+ remain compatibility with very old libSRTP versions, the affected/missing
+ symbols AES_128_ICM and HMAC_SHA1 are defined manually.
+
+ ASTERISK-27733
+
+ Change-Id: I25c5cb8fa966043d1506ebef449e5a724412b4b6
+
+2018-03-10 03:33 +0000 [c09a10bb1b] Corey Farrell <git@cfware.com>
+
+ * core: Remove non-critical cleanup from startup aborts.
+
+ When built-in components of Asterisk fail to start they cause the
+ Asterisk startup to abort. In these cases only the most critical
+ cleanup should be performed - closing databases and terminating
+ proceses. These cleanups are registered using ast_register_atexit, all
+ other cleanups should not be run during startup abort.
+
+ The main reason for this change is that these cleanup procedures are
+ untestable from the partially initialized states, if they fail it could
+ prevent us from ever running the critical cleanup with ast_run_atexits.
+
+ Change-Id: Iecc2df98008b21509925ff16740bd5fa29527db3
+
+2018-03-08 09:14 +0000 [bd6e0b1a72] Alexander Traud <pabstraud@compuserve.com>
+
+ * BuildSystem: Add NetBSD.
+
+ Headers, libraries, and rpath.
+
+ ASTERISK-27728
+ ASTERISK-11015
+ Reported by: Curt Sampson
+
+ Change-Id: I50aa5fcd095937df32a2e33307caac7e79a8b5b7
+
+2018-03-09 03:23 +0000 [ba88af8a25] Alexander Traud <pabstraud@compuserve.com>
+
+ * BuildSystem: For consistency, avoid double-checking via if clauses.
+
+ In the script ./configure, AST_EXT_LIB_CHECK and AST_PKG_CONFIG_CHECK first test
+ whether parameter 1 was already found. Consequently, an if-test on PBX_ just a
+ line below is redundant, if exactly the same parameter 1 is used again.
+
+ No performance gain is expected by this change. However, because this strategy
+ is used all over in ./configure except for two places, this change aims to
+ create more consistency: Only do something different if there is a reason to do
+ so.
+
+ Change-Id: I4a6f48127b7af3a48168c917e888be1f70625027
+
+2018-03-09 02:44 +0000 [c227462370] Alexander Traud <pabstraud@compuserve.com>
+
+ * BuildSystem: Enable dladdr on non-Linux platforms like FreeBSD.
+
+ ASTERISK-27641
+
+ Change-Id: I587e8ba0123c70fc10cfd8b0ac3299551f61d84b
+
+2018-03-07 13:50 +0000 [9ae427c7fd] Richard Mudgett <rmudgett@digium.com>
+
+ * res_pjproject.c: Upgrade bundled PJPROJECT to 2.7.2
+
+ Update patches included in bundled PJPROJECT for the new version.
+
+ ASTERISK-27730
+
+ Change-Id: Id3c8c8ad82126846bcd9768bc3d0a18d89be8944
+
+2018-03-08 12:05 +0000 [57e8754a3a] Alexander Traud <pabstraud@compuserve.com>
+
+ * install_prereq: Add NetBSD.
+
+ ASTERISK-27729
+
+ Change-Id: I7a706d51375d54cf5e36d32397bfe09a48670804
+
+2018-03-08 09:04 +0000 [0d70a9a006] Alexander Traud <pabstraud@compuserve.com>
+
+ * BuildSystem: Re-check for another UUID library only when previous check failed.
+
+ As a side-effect, this avoids the ambiguous output:
+ checking for uuid_generate_random... no
+ which was printed always previously.
+
+ ASTERISK-25586
+ Reported by: John Nemeth
+
+ Change-Id: I6d541dfcf453932a9856c5e251aa22e0e6c233c9
+
+2018-03-08 05:32 +0000 [7b6b6b0a7e] Alexander Traud <pabstraud@compuserve.com>
+
+ * BuildSystem: Instead of $PJPROJECT_LIBS with s, use $PJPROJECT_LIB everywhere.
+
+ In the script ./configure,
+ xyz_LIB is set by AST_PKG_CONFIG_CHECK and
+ xyz_LIBS is set by PKG_CHECK_MODULES within
+ AST_PKG_CONFIG_CHECK. Both are the same. In Asterisk normally the former and
+ only three times the latter was used. Let us use xyz_LIB without s, for
+ consistency with AST_EXT_LIB_CHECK. That eases understanding because now readers
+ do not have to know that xyz_LIB equals xyz_LIBS.
+
+ Change-Id: I7359860a5d730cdc784c2c48e501a082196434d3
+
+2018-03-06 06:28 +0000 [54874eb44d] Alexander Traud <pabstraud@compuserve.com>
+
+ * BuildSystem: Enable PortAudio in NetBSD.
+
+ In NetBSD, PortAudio 1 is still the default version. PortAudio 2 can be
+ installed side by side but gets placed in a 'portaudio2' subdirectory. To
+ find PortAudio 2 even in a subdirectory, the tool pkg-config is queried via
+ AST_PKG_CONFIG_CHECK. For those platforms, which do not list PowerAudio 2
+ via pkg-config, the previous check remains and is executed thereafter.
+
+ ASTERISK-27721
+
+ Change-Id: I4175500126909ad1b181fff8e11bb4a3a6ae4fa9
+
+2018-03-07 00:29 +0000 [b81eadcefc] Corey Farrell <git@cfware.com>
+
+ * Replace direct checks of option_debug with DEBUG_ATLEAST macro.
+
+ Checking option_debug directly is incorrect as it ignores file/module
+ specific debug settings. This system-wide change replaces nearly all
+ direct checks for option_debug with the DEBUG_ATLEAST macro.
+
+ Change-Id: Ic342d4799a945dbc40ac085ac142681094a4ebf0
+
+2018-03-07 13:13 +0000 [342aec5980] Richard Mudgett <rmudgett@digium.com>
+
+ * BuildSystem regression: Fix errors reported by clean targets.
+
+ Doing a 'make clean', 'make distclean', or 'make dist-clean' gets errors
+ about an invalid shell option: "/bin/sh: 0: Illegal option -".
+
+ The clean targets do not include the makeopts file which defines GREP and
+ LDCONFIG because the file may not exist and the distclean/dist-clean
+ targets will delete it anyway.
+
+ ASTERISK-27715
+
+ Change-Id: I33d40acdb03862bc89aeb6fb1ff497894a8ea7f5
+
+2018-03-06 19:08 +0000 [0597e72e1d] Sungtae Kim <pchero21@gmail.com>
+
+ * voicemail: Fixed wrong voicemail message count
+
+ Fixed wrong voicemail mailbox reference for Action: VoicemailUsersList.
+
+ ASTERISK-27703
+
+ Change-Id: I99bfec14bd4ae475b0fa1fac5a7992f3e2e8d64a
+
+2018-02-14 07:33 +0000 [a35a654a52] Jean Aunis <jean.aunis@prescom.fr>
+
+ * chan_sip: Fix improper RTP framing on outgoing calls
+
+ The "ptime" SDP parameter received in a SIP response was not honoured.
+ Moreover, in the abscence of this "ptime" parameter, locally configured
+ framing was lost during response processing.
+
+ This patch systematically stores the framing information in the
+ ast_rtp_codecs structure, taking it from the response or from the
+ configuration as appropriate.
+
+ ASTERISK-27674
+
+ Change-Id: I828a6a98d27a45a8afd07236a2bd0aa3cbd3fb2c
+
+2018-03-06 13:31 +0000 [ecff05d51c] Ross Beer <ross.beer@voicehost.co.uk>
+
+ * res_pjsip_rfc3326: Order of 'Reason' headers break many endpoints
+
+ ASTERISK-27554
+
+ Change-Id: If61c7faab7d2fa1031c056ed6268fe928e2391cf
+
+2018-03-07 09:32 +0000 [725fd32428] Alexander Traud <pabstraud@compuserve.com>
+
+ * utils: In Solaris, avoid a warning about an unused variable.
+
+ When HAVE_GETHOSTBYNAME_R_5 was set by the script ./configure, GCC 7.3.0 found
+ an unused variable. Actually, the variable was used (set to a dummy value) but
+ the compiler optimization might have removed that. Instead, this change ensures
+ that the variable 'res' is only used when it is really required.
+
+ Change-Id: Ic3ea23ccf84ac4bc2d501b514985b989030abab5
+
+2018-03-05 08:01 +0000 [93df498f4e] Alexander Traud <pabstraud@compuserve.com>
+
+ * BuildSystem: Enable Lua in NetBSD.
+
+ luaL_openlib got removed with Lua 5.2.
+ luaL_newstate is available in all versions.
+
+ ASTERISK-27718
+
+ Change-Id: I9c8c8880315ee36ab740d7c40153306c0bfd6f71
+
+2018-03-06 07:33 +0000 [44dbb8251d] Alexander Traud <pabstraud@compuserve.com>
+
+ * BuildSystem: Depend not implicitly but explicitly on external libraries.
+
+ ASTERISK-27722
+
+ Change-Id: Ie7b8c30d86cb00a54d6ac4e09e6f28f42d2bd52c
+
+2018-03-05 08:15 +0000 [2d63c185f0] Alexander Traud <pabstraud@compuserve.com>
+
+ * res_http_post: Enable GMime in NetBSD.
+
+ ASTERISK-27719
+
+ Change-Id: I230c5f9f316b2e9465c093c13580f72ebbaf67a7
+
+2018-03-05 04:16 +0000 [0af1446d6e] Alexander Traud <pabstraud@compuserve.com>
+
+ * BuildSystem: Enable autotools in NetBSD.
+
+ ASTERISK-27716
+
+ Change-Id: I52525e35e1620341272219911d054a1e3d3ec01e
+
+2018-03-05 03:42 +0000 [95ecbaa6b8] Alexander Traud <pabstraud@compuserve.com>
+
+ * BuildSystem: AC_PATH_PROG sets to colon character when not found.
+
+ ASTERISK-27715
+ Reported by: Corey Farrell
+
+ Change-Id: I0d6d9572d1352dc7ad30c9917173f1e980d8c938
+
+2018-03-03 09:06 +0000 [7b5e0960ef] Alexander Traud <pabstraud@compuserve.com>
+
+ * chan_unistim: NetBSD has an incompatible struct in_pktinfo.
+
+ ASTERISK-27714
+ Reported by: John Nemeth
+
+ Change-Id: I1b84a89315a5f61222123d21bf35c59224da8990
+
+2018-03-03 08:30 +0000 [6b899b2849] Alexander Traud <pabstraud@compuserve.com>
+
+ * BuildSystem: Cast any intptr_t explicitly to its proposed type.
+
+ ASTERISK-27713
+
+ Change-Id: I90c769e3c7f8c26de8a3af11335862cec15a1b22
+
+2018-03-03 06:56 +0000 [98e8e849da] Alexander Traud <pabstraud@compuserve.com>
+
+ * BuildSystem: Detect whether uselocale(.) is available.
+
+ ASTERISK-27712
+ Reported by: Joerg Sonnenberger, D'Arcy Cain
+
+ Change-Id: Idf1c9d43617a3e13028b95b313415903d80ef807
+
+2018-03-03 03:53 +0000 [8348862103] Alexander Traud <pabstraud@compuserve.com>
+
+ * BuildSystem: Avoid re-defining of pthread_* on NetBSD.
+
+ ASTERISK-27711
+
+ Change-Id: Idc9194035b2958b99f6b01eb5b438d45a074565b
+
+2018-03-02 07:05 +0000 [47d45ba025] Alexander Traud <pabstraud@compuserve.com>
+
+ * BuildSystem: Install init scripts on openSUSE Tumbleweed.
+
+ ASTERISK-27710
+
+ Change-Id: I4c777e41b31d4415bbe21cb435ad47b43ebb5467
+
+2018-03-02 05:12 +0000 [4035582b64] Alexander Traud <pabstraud@compuserve.com>
+
+ * BuildSystem: Avoid == for comparison in ./configure.
+
+ ASTERISK-27709
+ Reported by: John Nemeth
+
+ Change-Id: I11b1ae8fd404c04066f1458f5d71f9536359d58d
+
+2018-02-27 15:40 +0000 [104468ad3a] Richard Mudgett <rmudgett@digium.com>
+
+ * pjproject: Add cache_pools debugging option.
+
+ The pool cache gets in the way of finding use after free errors of memory
+ pool contents. Tools like valgrind and MALLOC_DEBUG don't know when a
+ pool is released because it gets put into the cache instead of being
+ freed.
+
+ * Added the "cache_pools" option to pjproject.conf. Disabling the option
+ helps track down pool content mismanagement when using valgrind or
+ MALLOC_DEBUG. The cache gets in the way of determining if the pool
+ contents are used after free and who freed it.
+
+ To disable the pool caching simply disable the cache_pools option in
+ pjproject.conf and restart Asterisk.
+
+ Sample pjproject.conf setting:
+ [startup]
+ cache_pools=no
+
+ * Made current users of the caching pool factory initialization and
+ destruction calls call common routines to create and destroy cached pools.
+
+ ASTERISK-27704
+
+ Change-Id: I64d5befbaeed2532f93aa027a51eb52347d2b828
+
+2018-01-31 11:49 +0000 [41894965f2] Corey Farrell <git@cfware.com>
+
+ * gitreview: Reorder and add padding.
+
+ Change-Id: I459dc320a8c9452a01eed6f403d786741587c890
+
+2018-02-23 21:24 +0000 [bb973aeceb] Michael Cargile <mikec@vicidial.com>
+
+ * apps/app_amd.c: Fixed total time and silence calculations
+
+ Between Asterisk 11 and Asterisk 13 there was a significant increase
+ in the number of AST_FRAME_NULL frames being processed by app_amd.c's
+ main loop. Each AST_FRAME_NULL frame was being counted as 100ms
+ towards the total time and silence. This may have been accurate
+ when app_amd.c was orginally added, but it is not in Asterisk 13.
+ As such the total analysis time and silence calculations were way
+ off effectively breaking app_amd.c
+
+ * Additional debug messages were added
+ * AST_FRAME_NULL are now ignored
+
+ ASTERISK-27610
+
+ Change-Id: I18aca01af98f87c1e168e6ae0d85c136d1df5ea9
+
+2018-02-23 14:58 +0000 [68df9e609e] George Joseph <gjoseph@digium.com>
+
+ * ast_coredumper: Minor fixes
+
+ * Fix --tarball-config so the option doesn't cause an error.
+
+ * Allow for missing /etc/os-release.
+
+ * Add a sleep between tarballing the coredump and removing the
+ output directory to allow the filesystem to settle.
+
+ Change-Id: I73e03b13087978bcc7f6bc9f45753990f82d9d77
+
+2018-02-23 10:09 +0000 [caad0c09cd] Corey Farrell <git@cfware.com>
+
+ * core: Fix handling of maximum length lines in config files.
+
+ When a line is the maximum length "\n" is found at sizeof(buf) - 2 since
+ the last character is actually the null terminator. In addition if a
+ line was exactly 8190 plus a multiple of 8192 characters long the config
+ parser would skip the following line.
+
+ Additionally fix comment in voicemail.conf sample config. It previously
+ stated that emailbody can only contain up to 512 characters which is
+ always wrong. The buffer is normally 8192 characters unless LOW_MEMORY
+ is enabled then it is 512 characters. The updated comment states that
+ the line can be up to 8190 or 510 characters since the line feed and
+ NULL terminator each use a character.
+
+ ASTERISK-26688 #close
+
+ Change-Id: I80864a0d40d2e2d8cd79d72af52a8f0a3a99c015
+
+2018-02-22 13:53 +0000 [3e5864bcc8] Richard Mudgett <rmudgett@digium.com>
+
+ * res_pjsip_refer.c: Fix attended transfer race condition crash.
+
+ The transferrer's session channel was destroyed by the transferrer's
+ serializer thread in a race condition with the transfer target's
+ serializer thread during an attended transfer. The transfer target's
+ serializer was attempting to clean up a deferred end status on behalf of
+ the transferrer's channel when it should have passed the action to the
+ transferrer's serializer. When the transfer target's serializer lost the
+ race then both threads wind up trying to end the transferrer's session.
+
+ * Push the ast_sip_session_end_if_deferred() call onto the transferrer's
+ serializer to avoid a race condition that results in a crash. The
+ session_end() function that could be called by
+ ast_sip_session_end_if_deferred() really must be executed by the
+ transferrer's serializer to avoid this kind of crash.
+
+ ASTERISK-27568
+
+ Change-Id: Iacda724e7cb24d7520e49b2fd7e504aa398d7238
+
+2018-02-17 03:28 +0000 [05fc37bbc2] Alexander Traud <pabstraud@compuserve.com>
+
+ * install_prereq: Update FreeBSD libraries.
+
+ deleted
+ autoconf gcc libsamplerate sqlite
+
+ changed
+ binutils to libbfd
+ freetds-devel to freetds
+ gmime2 to gmime26
+ mysql55-client to mysql57-client
+
+ added
+ alsa-lib bison bzip2 cclient corosync doxygen libedit flex graphviz
+ libhoard libical libilbc libltdl lua neon newt net-snmp
+ openldap-client openssl patch pkgconf portaudio postgresql10-client
+ python radcli speexdsp subversion uriparser xmlstarlet libzip
+
+ ASTERISK-27686
+
+ Change-Id: Ibe88c9b26e59c30d26cdb313a3ef01c9f37ac80d
+
+2018-02-22 10:46 +0000 [220accb461] Sean Bright <sean.bright@gmail.com>
+
+ * modules: Set deprecated modules to not build by default
+
+ Change-Id: I09090f70224866aead6b3207fa784cfefea7d539
+
+2018-02-20 10:33 +0000 [4da0e19b89] Joshua Colp <jcolp@digium.com>
+
+ * chan_sip: Emit a second ringing event to ensure channel is found.
+
+ When constructing a dialog-info+xml NOTIFY message a ringing channel
+ is found if the state is ringing and further information is placed into
+ the message. Due to the migration to the Stasis message bus this did
+ not always work as expected.
+
+ This change raises a second ringing event in such a way to guarantee
+ that the event is received by chan_sip and another lookup is done to
+ find the ringing channel.
+
+ ASTERISK-24488
+
+ Change-Id: I547a458fc59721c918cb48be060cbfc3c88bcf9c
+
+2018-02-19 04:21 +0000 [9325de11f8] Thomas Guebels <tgu@escaux.com>
+
+ * res_rtp_asterisk: Fix ICE candidate nomination
+
+ If the ICE role is not set right away, we might have a role conflict
+ that stays undetected and ICE finishing with successful tests and no
+ candidate nominated. This was introduced by ASTERISK-27088.
+
+ To avoid this, we set the role as soon as before but only if the ICE
+ state permits it: still checking and not yet nominating candidates or
+ completed.
+
+ ASTERISK-27646
+
+ Change-Id: I5dbc69ad63cacbb067922850fbb113d479bd729c
+
+2017-12-04 05:27 +0000 [64942276d1] Alexander Traud <pabstraud@compuserve.com>
+
+ * chan_sip: Peers with distinct source ports don't match, regardless of transport.
+
+ Previously, peers connected via TCP (or TLS) were matched by ignoring their
+ source port. One cannot say anything when protocol:IP:port match, yes (see
+ <http://stackoverflow.com/q/3329641>). However, when the ports do not match, the
+ peers do not match as well.
+
+ This change allows two peers connected to an Asterisk server via TCP (or TLS)
+ behind a NAT (= same source IP address) to be differentiated via their port as
+ well.
+
+ ASTERISK-27457
+ Reported by: Stephane Chazelas
+
+ Change-Id: Id190428bf1d931f2dbfd4b293f53ff8f20d98efa
+
+2018-02-22 23:15 +0000 Asterisk Development Team <asteriskteam@digium.com>
+
+ * asterisk 13.20.0-rc1 Released.
+
+2018-02-22 11:11 +0000 [ffb15b2bc7] Kevin Harwell <kharwell@digium.com>
+
+ * AMI: Bumping AMI non-breaking number for Asterisk 13.20.0 release
+
+ A few changes were made to AMI:
+
+ * Fixed "(null):" header in AMI AsyncAGIEnd event
+ * A mute header was added to the ConfbridgeJoin AMI event
+ * ConfbridgeList action's ConfbridgeList events now output all
+ the standard channel snapshot headers
+
+ Change-Id: I94a82a44b02c91becae08d254e9a56abba5697cf
+
+2018-01-31 13:37 +0000 [05af43b240] Kevin Harwell <kharwell@digium.com>
+
+ * AST-2018-003: Crash with an invalid SDP fmtp attribute
+
+ pjproject's fmtp retrieval function failed to catch invalid fmtp attributes.
+ Because of this Asterisk would crash if given an SDP with an invalid fmtp
+ attribute.
+
+ When retrieving the format this patch now makes sure the fmtp attribute is
+ available. If not available it now returns an error status.
+
+ ASTERISK-27583 #close
+
+ Change-Id: I5cebe000ce2d846cae3af33b6d72c416e51caf2f
+
+2018-01-31 13:33 +0000 [c5dc2fb4ab] Kevin Harwell <kharwell@digium.com>
+
+ * AST-2018-002: Crash with an invalid SDP media format description
+
+ pjproject's media format parsing algorithm failed to catch invalid values.
+ Because of this Asterisk would crash if given an SDP with a invalid media
+ format description.
+
+ When parsing the media format description this patch now properly parses the
+ value and returns an error status if it can't successfully parse/convert the
+ value.
+
+ ASTERISK-27582 #close
+
+ Change-Id: I883b3a4ef85b6972397f7b56bf46c5779c55fdd6
+
+2018-02-06 12:07 +0000 [5947fd148b] George Joseph <gjoseph@digium.com>
+
+ * AST-2018-005: res_pjsip_transport_management: Move to core
+
+ Since res_pjsip_transport_management provides several attack
+ mitigation features, its functionality moved to res_pjsip and
+ this module has been removed. This way the features will always
+ be available if res_pjsip is loaded.
+
+ ASTERISK-27618
+ Reported By: Sandro Gauci
+
+ Change-Id: I21a2d33d9dda001452ea040d350d7a075f9acf0d
+
+2018-02-06 11:28 +0000 [a780386dbb] George Joseph <gjoseph@digium.com>
+
+ * AST-2018-005: Fix tdata leaks when calling pjsip_endpt_send_response(2)
+
+ pjsip_distributor:
+ authenticate() creates a tdata and uses it to send a challenge or
+ failure response. When pjsip_endpt_send_response2() succeeds, it
+ automatically decrements the tdata ref count but when it fails, it
+ doesn't. Since we weren't checking for a return status, we weren't
+ decrementing the count ourselves on error and were therefore leaking
+ tdatas.
+
+ res_pjsip_session:
+ session_reinvite_on_rx_request wasn't decrementing the ref count
+ if an error happened while sending a 491 response.
+ pre_session_setup wasn't decrementing the ref count if
+ while sending an error after a pjsip_inv_verify_request failure.
+
+ res_pjsip:
+ ast_sip_send_response wasn't decrementing the ref count on error.
+
+ ASTERISK-27618
+ Reported By: Sandro Gauci
+
+ Change-Id: Iab33a6c7b6fba96148ed465b690ba8534ac961bf
+
+2018-02-07 08:09 +0000 [de5df002a0] Joshua Colp <jcolp@digium.com>
+
+ * AST-2018-004: Restrict the number of Accept headers in a SUBSCRIBE.
+
+ When receiving a SUBSCRIBE request the Accept headers from it are
+ stored locally. This operation has a fixed limit of 32 Accept headers
+ but this limit was not enforced. As a result it was possible for
+ memory outside of the allocated space to get written to resulting
+ in a crash.
+
+ This change enforces the limit so only 32 Accept headers are
+ processed.
+
+ ASTERISK-27640
+ Reported By: Sandro Gauci
+
+ Change-Id: I99a814b10b554b13a6021ccf41111e5bc95e7301
+
+2018-02-20 04:31 +0000 [cacb72f5ae] Corey Farrell <git@cfware.com>
+
+ * doc/lang/language-criteria.txt: Link to wiki.
+
+ This document is out of date and is superseded by content on the
+ Asterisk wiki.
+
+ ASTERISK-24386 #close
+
+ Change-Id: Idbf95b27b096c205251e1bbb560c79224ba81822
+
+2018-02-18 10:27 +0000 [5ebc94da02] Sean Bright <sean.bright@gmail.com>
+
+ * res_http_websocket: Don't leak memory on read failure
+
+ Change-Id: Ic449ea832bc81a1671c0e910c5fbe8c683e3da89
+
+2018-02-19 03:57 +0000 [e532b982b3] Corey Farrell <git@cfware.com>
+
+ * core: Rename sounds_index.c to sounds.c.
+
+ This will make the source filename match the 'module reload sounds'
+ command. This will allow conversion to a built-in module in Asterisk 16
+ without needing to redefine AST_MODULE.
+
+ Change-Id: Ifb8e489575b27eb33d8c0b6a531f266670557f6e
+
+2018-02-19 02:49 +0000 [9c8763e4d2] Corey Farrell <git@cfware.com>
+
+ * config: Fix locking for extconfig reload.
+
+ Expand locking to include full reload process for extconfig to ensure
+ nothing can read the config mappings between clearing and reloading.
+
+ Change-Id: I378316bad04f1b599ea82d0fef62b8978a644b92
+
+2018-02-15 14:09 +0000 [1a7ad4c9cf] Sean Bright <sean.bright@gmail.com>
+
+ * res_pjsip_header_funcs: Various cleanups
+
+ * Prefer strcasecmp() over stricmp()
+ * Use a list with no lock since we never actually lock
+ * Minor cleanups to error messages
+
+ Change-Id: I8446f44795ee8f3072e1c1f9193c6912dfc0c42b
+
+2018-02-17 08:49 +0000 [6eb22964ba] Alexander Traud <pabstraud@compuserve.com>
+
+ * rtp_engine: Load format name / mime type in uppercase again.
+
+ This reverts a previous change partly.
+
+ ASTERISK-27689
+
+ Change-Id: Ia3d2f282db6995be8c1c253b5d52f6038761e8af
+
+2018-02-16 17:58 +0000 [27d28116d9] Corey Farrell <git@cfware.com>
+
+ * BuildSystem: Use single bootstrap.sh for Asterisk and menuselect.
+
+ This causes the root bootstrap.sh script to generate configure scripts
+ for both Asterisk and menuselect. This ensures that both configure
+ scripts are generated with the same version of autotools and avoids
+ situations where shared autoconf macros get modified without
+ regenerating the menuselect script.
+
+ Change-Id: I2bfd8537bbb63b3d46b11efabbb15eaaf9ef731a
+
+2018-02-16 13:33 +0000 [9ad9433257] Sean Bright <sean.bright@gmail.com>
+
+ * res_pjsip: Endpoint destruction does not free DTLS configuration
+
+ ASTERISK-27679 #close
+ Reported by: Mak Dee
+
+ Change-Id: I89a2783a11be0763bf123d1619ed176b6225cf42
+
+2018-02-16 12:44 +0000 [c5e34f0794] Alexander Traud <pabstraud@compuserve.com>
+
+ * install_prereq: Update OpenBSD libraries.
+
+ deleted
+ jack sqlite
+
+ renamed
+ freetds-0.63p1-msdblib to freetds
+ mysql-client to mariadb-client
+
+ added
+ bison bzip2 c-client doxygen e2fsprogs graphviz gsm libical jansson libltdl
+ lua neon net-snmp libsrtp portaudio-svn postgresql-client python speexdsp
+ subversion uriparser xmlstarlet
+
+ ASTERISK-27684
+
+ Change-Id: I26bdcb0a1d0e484a8dad1052da97f194aefd3370
+
+2018-02-16 12:30 +0000 [88ec9be78a] Alexander Traud <pabstraud@compuserve.com>
+
+ * BuildSystem: Allow newer autotools on OpenBSD.
+
+ ASTERISK-27683
+
+ Change-Id: I5ec9dafbb0c16b6f2740c641980bc2eaaf995624
+
+2018-02-16 07:52 +0000 [0ba6337d32] Alexander Traud <pabstraud@compuserve.com>
+
+ * BuildSystem: Fix a typo related to ./configure --prefix=<path> on OpenBSD.
+
+ Reported by: Stuart Henderson
+
+ Change-Id: Ieae8624f48b6ae78cf29930b9a45a3c842c7a764
+
+2018-02-16 06:41 +0000 [58aa0d1014] Alexander Traud <pabstraud@compuserve.com>
+
+ * BuildSystem: Enable IMAP storage on OpenBSD.
+
+ ASTERISK-27681
+ Reported by: Stuart Henderson
+
+ Change-Id: Ifb6b614acb251b695b9417d76510e73eb335b679
+
+2018-02-16 05:58 +0000 [139dd38193] Alexander Traud <pabstraud@compuserve.com>
+
+ * res_calendar: Specialized calendars depend on symbols of general calendar.
+
+ ASTERISK-27680
+
+ Change-Id: Ifb77912e424fe3710a025c18526fada673ec0b79
+
+2018-02-16 05:02 +0000 [94ff290361] Alexander Traud <pabstraud@compuserve.com>
+
+ * BuildSystem: Enable system provided libedit on OpenBSD.
+
+ ASTERISK-27677
+
+ Change-Id: I0854e3616d1361ae9b6907d3d3444a02784ac62b
+
+2018-02-15 14:30 +0000 [48acd5cd26] Sean Bright <sean.bright@gmail.com>
+
+ * bridge_roles: Use a non-locking linked list where appropriate
+
+ Also explicitly initialize with the AST_LIST_HEAD_NOLOCK_INIT macro for
+ clarity.
+
+ Change-Id: I4bc39ec33bc3ff77e1a971a01ace87deb965be3f
+
+2018-02-15 13:29 +0000 [54efc0c637] Sean Bright <sean.bright@gmail.com>
+
+ * res_pjsip: Use pjsip_sip_uri.user_param instead of other_param
+
+ There is a dedicated slot in the pjsip_sip_uri for the 'user'
+ parameter, so use that instead of adding to the list of generic URI
+ parameters.
+
+ Change-Id: I0a0ce8a60ecee27489735bf56fd707719d8c2ed6
+
+2018-02-12 07:48 +0000 [4a5221cd43] Alexander Traud <pabstraud@compuserve.com>
+
+ * BuildSystem: Remove chan_h323 leftovers.
+
+ ASTERISK-27670
+
+ Change-Id: I07a8ef8bbd6001e25711fa1bff152eb6c9efa729
+
+2018-01-17 08:17 +0000 [eabe72a679] Alexander Traud <pabstraud@compuserve.com>
+
+ * BuildSystem: Invoke ldconfig with previous path.
+
+ On OpenBSD, gmake uninstall{-all} registered only libraries from /usr/lib and
+ lost those from /usr/local/lib. Instead, invoke ldconfig on a path.
+
+ ASTERISK-27595
+
+ Change-Id: I4aa2c0b5e07119d1a556f8ff6349eaf09e986888
+
+2018-01-28 03:02 +0000 [c2283fca21] Alexander Traud <pabstraud@compuserve.com>
+
+ * BuildSystem: Do not warn when bash is not installed.
+
+ ASTERISK-27631
+
+ Change-Id: Iefdf268b0b98c3e7d8089ba87cf78136ac1d785b
+
+2017-11-16 12:57 +0000 [4e5d5b2ce2] Corey Farrell <git@cfware.com>
+
+ * main/asterisk.c: Remove silly usage of RAII_VAR.
+
+ Change-Id: I7e2996397fbd3c3a6a69dd805c38448ddfc34ae9
+
+2018-02-11 15:27 +0000 [ba63dad12d] Richard Mudgett <rmudgett@digium.com>
+
+ * chan_sip.c: Fix crash processing CANCEL.
+
+ Check if initreq data string exists before using it when processing a
+ CANCEL request.
+
+ ASTERISK-27666
+
+ Change-Id: Id1d0f0fa4ec94e81b332b2973d93e5a14bb4cc97
+
+2018-01-30 20:31 +0000 [6c72c22d51] Corey Farrell <git@cfware.com>
+
+ * json: Add conditionals to avoid locking if Jansson is thread safe.
+
+ Jansson is thread safe for all read-only functions and reference
+ counting starting v2.11. This allows simplification of our code and
+ removal of locking around reference counting and dumping.
+
+ Change-Id: Id985cb3ffa6681f9ac765642e20fcd187bd4aeee
+
+2018-02-12 06:16 +0000 [0ab97e9774] Alexander Traud <pabstraud@compuserve.com>
+
+ * pjproject_bundled: Disable G.729 from Belledonne Communications.
+
+ When <http://github.com/BelledonneCommunications/bcg729> is installed, PJProject
+ tries to link that. Support for this bcg729 was added with PJProject 2.7. The
+ issue happens, because Teluu enabled that new feature on default.
+
+ ASTERISK-27584
+ Reported by: Stuart Henderson
+
+ Change-Id: I88b6b18ad777bcfe2d8201187b4b90eec0a172a6
+
+2018-02-12 05:38 +0000 [81bec7c359] Alexander Traud <pabstraud@compuserve.com>
+
+ * codecs: Add support for WebRTC iLBC 2.0.
+
+ When the latest version of that library was installed, Asterisk did not build.
+
+ ASTERISK-27669
+ Reported by: Николай Михо
+
+ Change-Id: I27e09bb875fdd56423bd9fae1be85fddb428eb96
+
+2018-01-30 09:58 +0000 [b1c6a644d3] Alexander Traud <pabstraud@compuserve.com>
+
+ * backtrace: Avoid potential spurious output.
+
+ clang 4.0 found this via -Wlogical-not-parentheses.
+
+ ASTERISK-27642
+
+ Change-Id: I9ec3e144d425a976c02811bd23cd0c533d2eca4e
+
+2018-02-10 05:39 +0000 [21bd7421ef] Alexander Traud <pabstraud@compuserve.com>
+
+ * install_prereq: Update Debian/Ubuntu libraries.
+
+ ASTERISK-27555
+
+ Change-Id: Idc36e91db30c0163c560d04c5a82bca5d6ce92a8
+
+2018-02-09 12:06 +0000 [dcfcf310a1] Richard Mudgett <rmudgett@digium.com>
+
+ * cdr.c: Fix runtime leak of CDR records.
+
+ Need to remove all CDR's listed by a CDR object from the active_cdrs_all
+ container including the root/master record.
+
+ ASTERISK-27656
+
+ Change-Id: I48b4970663fea98baa262593d2204ef304aaf80e
+
+2017-12-19 02:52 +0000 [0fc3e831a7] Oron Peled <oron.peled@xorcom.com>
+
+ * chan_console: don't read and write at the same time
+
+ It seems that the ALSA backend of PortAudio doesn't know how to both
+ read and write at the same time by adding a per-device mutex.
+
+ FIXME: currently only a draft version. Need to either auto-detect
+ we work with the ALSA backend or add an extra configuration option
+ to use this mutex.
+
+ ASTERISK-27426 #close
+
+ Change-Id: I635eacee45f5413faa18f5a3b606af03b926dacb
+
+2018-02-02 17:20 +0000 [da987df122] Richard Mudgett <rmudgett@digium.com>
+
+ * res_pjsip/config_domain_aliases.c: Add check for missing domain.
+
+ What is the point of defining an alias and not saying what is being
+ aliased?
+
+ Change-Id: I98a892016ed61dcf5efeb6619fd748925103f0be
+
+2018-01-31 17:48 +0000 [1ff580bb25] Richard Mudgett <rmudgett@digium.com>
+
+ * app_confbridge: ConfbridgeList event has standard channel shapshot headers.
+
+ * Made the AMI ConfbridgeList action's ConfbridgeList events output all
+ the standard channel snapshot headers instead of a few hand-coded channel
+ snapshot headers. The benefit is that the CallerIDName gets disruptive
+ characters like CR, LF, Tab, and a few others escaped. However, an empty
+ CallerIDName is now output as "<unknown>" instead of "<no name>".
+
+ ASTERISK-27651
+
+ Change-Id: Iaf7d54a9d40194c2db060bc9b4979fab6720d977
+
+2018-01-31 15:45 +0000 [0cf7a9e0ca] Richard Mudgett <rmudgett@digium.com>
+
+ * app_confbridge: Add the Muted header to ConfbridgeJoin AMI event.
+
+ ASTERISK-27651
+
+ Change-Id: Idef2ca54d242d1b894efd3fc7b360bc6fd5bdc34
+
+2018-02-02 17:35 +0000 [1adf90320d] Richard Mudgett <rmudgett@digium.com>
+
+ * endpoint identifiers: Some code cleanup.
+
+ res_pjsip_endpoint_identifier_user.c:
+ * Fix copy/paste error in find_endpoint(). We were using a constant
+ "anonymous" string instead of the passed in endpoint_name when checking
+ the transport domain for an endpoint match.
+ * Eliminate RAII_VAR in find_endpoint().
+ * Remove always true check in find_transport_state_in_use().
+ * Remove useless CMD_STOP in find_transport_state_in_use().
+
+ res_pjsip_endpoint_identifier_anonymous.c:
+ * Eliminate RAII_VAR in anonymous_identify().
+ * Remove always true check in find_transport_state_in_use().
+ * Remove useless CMD_STOP in find_transport_state_in_use().
+
+ Change-Id: I86924c31db5bd225ca0c1219c761b668c6f91189
+
+2018-02-02 15:11 +0000 [93a1ffc834] Richard Mudgett <rmudgett@digium.com>
+
+ * res_pjsip.c: Fix documentation typos.
+
+ Change-Id: I82ae0b92bfa2ece84a5c684efd9eefdc83ebd068
+
+2018-02-02 15:43 +0000 [5d16cefd63] Richard Mudgett <rmudgett@digium.com>
+
+ * res_sorcery_realtime.c: Fix ref leak if object failed to apply.
+
+ Change-Id: I3c7106ff77009754725cee790eadf5da44154ab6
+
+2018-01-24 19:58 +0000 [dd9690f68c] Sungtae Kim <pchero21@gmail.com>
+
+ * manager.c: Fixed "(null):" header in AMI AsyncAGIEnd event
+
+ * Changed to create ami_event string only when the given blob is not
+ json_null().
+ * Fixed bad expression.
+
+ ASTERISK-27621
+
+ Change-Id: Ice58c16361f9d9e8648261c9ed5d6c8245fb0d8f
+
+2018-02-01 13:01 +0000 [8125b825d3] Joshua Elson <joshelson@gmail.com>
+
+ * res_pjsip_mwi.c: Fix null pointer crash
+
+ ASTERISK-27652 #close
+
+ Change-Id: I78a0d38bfd8d0d82830f3d53da04872d6b67284d
+
+2018-02-01 15:03 +0000 [09edcd93aa] Sean Bright <sean.bright@gmail.com>
+
+ * appdocsxml.xslt: Add Language to channel snapshot transformation
+
+ Change-Id: I8f494b0c895a69b8bc94656d0c6ceebecb0394d8
+
+2018-01-31 15:40 +0000 [665444b772] Richard Mudgett <rmudgett@digium.com>
+
+ * manager.c: Fix potential memory leak and corruption.
+
+ ast_str_append_event_header() could potentially leak and corrupt memory if
+ the ast_str needed to expand to add the AMI event header.
+
+ * Fixed to return error if the ast_str_append() failed.
+
+ Change-Id: I92f36b855540743b208d76e274152ee2d758176d
+
+2018-01-31 17:27 +0000 [ef1aeb9437] Richard Mudgett <rmudgett@digium.com>
+
+ * manager_channels.c: Reordered ast_manager_build_channel_state_string_prefix()
+
+ * Made not allocate memory if the channel snapshot is an internal channel.
+
+ * Free memory earlier when no longer needed.
+
+ Change-Id: Ia06e0c065f1bd095781aa3f4a626d58fa4d28b38
+
+2018-01-28 10:10 +0000 [7debdd285c] George Joseph <gjoseph@digium.com>
+
+ * res_pjsip_pubsub: Prune subs with reliable transports at startup
+
+ In an earlier release, inbound registrations on a reliable transport
+ were pruned on Asterisk restart since the TCP connection would have
+ been torn down and become unusable when Asterisk stopped. This same
+ process is now also applied to inbound subscriptions.
+
+ Also fixed issues in res_pjsip_registrar where it wasn't handling the
+ monitoring correctly when multiple registrations came in over the same
+ transport.
+
+ To accomplish this, the pjsip_transport_event feature needed to
+ be refactored to allow multiple monitors (multiple subcriptions or
+ registrations from the same endpoint) to exist on the same transport.
+ Since this changed the API, any external modules that may have used the
+ transport monitor feature (highly unlikey) will need to be changed.
+
+ ASTERISK-27612
+ Reported by: Ross Beer
+
+ Change-Id: Iee87cf4eb9b7b2b93d5739a72af52d6ca8fbbe36
+
+2018-01-31 15:15 +0000 [698b28e9c7] Corey Farrell <git@cfware.com>
+
+ * res_pjsip_registrar_expire: Mark module deprecated.
+
+ The functionality of this module was already moved to
+ res_pjsip_registrar, mark it deprecated and add message to CHANGES.
+
+ Change-Id: I90c7d52c7e15e85fde3389d5eaccb05b97848813
+
+2018-01-30 19:22 +0000 [6520489952] Richard Mudgett <rmudgett@digium.com>
+
+ * bridge_softmix.c: Report not talking immediately when muted.
+
+ Currently in app_confbridge if someone mutes a channel while that channel
+ is talking, the talk detection code is suspended while the channel is
+ muted. As far an an external observer is concerned, the muted channel's
+ talk status is still "talking" even though the channel is not contributing
+ audio to the conference bridge. When the channel is later unmuted, it
+ takes the usual 'dsp_silence_threshold' option time to clear the talking
+ status even though the channel may have stopped talking while the channel
+ was muted.
+
+ * In bridge_softmix.c, clear the talking status and report talking stopped
+ if the channel was talking when the channel is muted. When the channel is
+ unmuted and the channel is still talking then report the channel as
+ talking since it is contributing audio to the bridge again.
+
+ ASTERISK-27647
+
+ Change-Id: Ie4fdbc05a0bc7343c2972bab012e2567917b3d4e
+
+2018-01-30 15:00 +0000 [4a337b1a76] Richard Mudgett <rmudgett@digium.com>
+
+ * app_confbridge: Update dsp_silence_threshold and dsp_talking_threshold docs.
+
+ The dsp_talking_threshold does not represent time in milliseconds. It
+ represents the average magnitude per sample in the audio packets. This is
+ what the DSP uses to determine if a packet is silence or talking/noise.
+
+ Change-Id: If6f939c100eb92a5ac6c21236559018eeaf58443
+
+2018-01-31 11:00 +0000 [2c4dde0ed0] Richard Mudgett <rmudgett@digium.com>
+
+ * res_pjsip_registrar.c: Fix compiler error.
+
+ Need to include signal.h to define pthread_kill() and SIGURG.
+
+ Change-Id: I10ae3aa4bf8e7386ac29ade78c0f2caed8e674fa
+
+2018-01-30 23:05 +0000 [4c8c0e4c22] Corey Farrell <git@cfware.com>
+
+ * res_pjsip_session: Prevent crash during shutdown.
+
+ pjproject does not have a function to reverse pjsip_inv_usage_init.
+ This means we need to ignore any calls to the functions once shutdown is
+ final.
+
+ ASTERISK-27571 #close
+
+ Change-Id: Ia550fcba563e2328f03162d79fb185f16b7c9b9d
+
+2018-01-29 13:46 +0000 [5b699c812e] George Joseph <gjoseph@digium.com>
+
+ * res_pjsip_registrar_expire: Refactor into res_pjsip_register
+
+ res_pjsip_registrar_expire remains as an empty module for now.
+
+ Change-Id: Ib93698938bae548d2199cb542f3692d1a171239f
+
+2018-01-29 10:20 +0000 [967c70acb5] Alexander Traud <pabstraud@compuserve.com>
+
+ * BuildSystem: Enable autotools in FreeBSD.
+
+ In the current versions of FreeBSD, the apps of GNU autotools do not need to
+ be called with a version anymore. The latest version can be invoked directly.
+ Additionally, the script ./bootstrap.sh asked for autoconf 2.62 and
+ automake 1.9, versions which are not available as port anymore.
+
+ ASTERISK-27637
+
+ Change-Id: Id7b94b80e78cc943a40ba79b697e3f70019820a7
+
+2018-01-29 10:00 +0000 [dd6b8cd0b2] Alexander Traud <pabstraud@compuserve.com>
+
+ * app_voicemail: Avoid always true when using pointer address.
+
+ clang 4.0 warned about this.
+
+ ASTERISK-27635
+
+ Change-Id: I213f230607d7fbe97c0f5f2d60da9cbf5a2d8231
+
+2018-01-19 05:16 +0000 [8daed642c7] Alexander Traud <pabstraud@compuserve.com>
+
+ * install_prereq: Update RHEL/CentOS/Fedora libraries.
+
+ deleted
+ automake git ncurses-devel pjproject-devel sqlite2-devel libsqlite3x-devel
+
+ renamed
+ radiusclient-ng-devel to radcli-devel
+ gmime22-devel to gmime-dev
+
+ added
+ alsa-lib-devel bash binutils-devel bison doxygen flex hoard make pkgconfig
+ speexdsp-devel uriparser-devel uw-imap-devel wget xmlstarlet zlib-devel
+
+ ASTERISK-27599
+ Reported by: Said Masoud
+
+ Change-Id: I05bb0af98ae532b2d5f37478e38b8f0762b1c035
+
+2018-01-28 05:20 +0000 [f59fb7fec8] Alexander Traud <pabstraud@compuserve.com>
+
+ * BuildSystem: Remove unused variables.
+
+ Because of a copy-and-paste from the script build_tools/download_externals,
+ the script build_tools/list_valid_installed_externals got its local variables.
+ However in the latter, three variables were not used actually.
+
+ Change-Id: I252de5a98c17ea54459174875357c22c2eebe8d5
+
+2018-01-25 12:06 +0000 [154bccf147] Corey Farrell <git@cfware.com>
+
+ * loader: Use ast_cli_completion_add for 'module load' completion.
+
+ This addresses all performance issues with 'module load' completion. In
+ addition to using ast_cli_completion_add we stop using libedit's
+ filename_completion_function, instead using ast_file_read_dir. This
+ ensures all results are produced from a single call to opendir.
+
+ Change-Id: I8bf51ffaa7ef1606f3bd1b5bb13f1905d72c6134
+
+2018-01-27 09:44 +0000 [4bb38022ea] Alexander Traud <pabstraud@compuserve.com>
+
+ * core: Fix unused variable error in handle_show_sysinfo.
+
+ The previous fix broke the case
+ HAVE_SYSINFO = no
+ HAVE_SYSCTL = yes
+ HAVE_SWAPCTL = no
+ which occurs on FreeBSD 11.1 for example.
+
+ ASTERISK-26563
+
+ Change-Id: If77c39bc75f0b83a6c8a24ecb2fa69be8846160a
+
+2018-01-27 08:54 +0000 [021168f06f] Alexander Traud <pabstraud@compuserve.com>
+
+ * editline: Avoid shifting a negative signed value.
+
+ clang 4.0 warned about this.
+
+ ASTERISK-27630
+
+ Change-Id: Ie2725048c661c1792d8b1d498575144350b6e9ba
+
+2018-01-27 03:25 +0000 [e998c906a7] Alexander Traud <pabstraud@compuserve.com>
+
+ * headers: Consistent use of typeof and/or __typeof__.
+
+ Because of a copy-and-paste error, the Asterisk project was using __typeof
+ instead of typeof. It works because typeof, __typeof, and __typeof__ are
+ supported by GCC, but here the escaped variant was not intended. Therefore,
+ for consistence, we change this to typeof.
+
+ Change-Id: I2a962c3e596e882f691a19345445b14571a5f07c
+
+2018-01-24 18:25 +0000 [87f8459410] Richard Mudgett <rmudgett@digium.com>
+
+ * Update sounds release to fix siren7 and siren14 files.
+
+ ASTERISK-16172
+
+ Change-Id: I2fb564258cd4db0f35952ad48b8687355c2dcad3
+
+2018-01-15 11:08 +0000 [6b771e346b] Alexander Traud <pabstraud@compuserve.com>
+
+ * BuildSystem: Raise autoconf version requirement to 2.60a.
+
+ AC_COMPUTE_INT requires at least autoconf 2.60a.
+
+ This affects only those who contribute to Asterisk, only those who had to use
+ the script ./bootstrap.sh. Furthermore, this change just makes sure nobody is
+ using a too old autoconf.
+
+ ASTERISK-16951
+
+ Change-Id: Ibca850e2fe0e77d935207bd959bacf7197d7f637
+
+2018-01-26 06:48 +0000 [7ad6792011] Alexander Traud <pabstraud@compuserve.com>
+
+ * install_prereq: Download latest Jansson.
+
+ ASTERISK-27603
+
+ Change-Id: I65c587534c0ae364f063d68da1bed40bb3d5e8aa
+
+2018-01-18 20:19 +0000 [85b384728c] Richard Mudgett <rmudgett@digium.com>
+
+ * pbx_variables.c: Misc fixes in variable substitution.
+
+ * Copy more than one character at a time when there is nothing to
+ substitute.
+
+ * Fix off by one error if a '}' or ']' is missing.
+
+ * Eliminated the requirement that the "used" parameter had to point to a
+ variable. The current callers were always declaring a variable to meet
+ the requirement and discarding the value put into that variable. Now it
+ can be NULL.
+
+ * In ast_str_substitute_variables_full() fixed using the bogus channel to
+ evaluate a function. We were not using the bogus channel we just created
+ to help evaluate a subexpression.
+
+ Change-Id: Ia83d99f4f16abe47f329eb39b6ff2013ae7c9854
+
+2018-01-22 09:18 +0000 [420586beab] Alexander Traud <pabstraud@compuserve.com>
+
+ * res_config_mysql: Avoid the header mysql_version.h.
+
+ ASTERISK-27607
+
+ Change-Id: I23d00ded955c4afd5f2c3c9dc96dcb48b3f74eec
+
+2018-01-05 14:46 +0000 [d5a24cfdf7] Alexander Traud <pabstraud@compuserve.com>
+
+ * install_prereq: For PJProject, point users to configure script.
+
+ The installation script and the new configure option --with-pjproject-bundled
+ aimed to accomplish the same. However, the installation script was out of
+ date. Users should go for the maintained configure option, or the Wiki.
+
+ ASTERISK-24598
+
+ Change-Id: Icbf4b562f81f7c05bd24a3805bd46c0beb4ebd44
+
+2018-01-20 12:58 +0000 [31e5008b47] Alexander Traud <pabstraud@compuserve.com>
+
+ * BuildSystem: Remove AC_CONFIG_AUX_DIR.
+
+ ASTERISK-27602
+
+ Change-Id: I9f4d3d2bc1481748e39ad1e2b0a364d38e38978b
+
+2018-01-19 12:21 +0000 [ffb7b62019] Alexander Traud <pabstraud@compuserve.com>
+
+ * BuildSystem: Remove orphaned .PHONY targets.
+
+ Change-Id: Ic44d75141b9bf99e7d72fcc82ee111b5cf6989d2
+
+2018-01-19 12:14 +0000 [3b566fc8ec] Alexander Traud <pabstraud@compuserve.com>
+
+ * BuildSystem: Allow make clean all again.
+
+ ASTERISK-27600
+ Reported by: Hamid R. Hashmi
+
+ Change-Id: I683d14d024650be04074b037b6300464519409f4
+
+2018-01-19 06:19 +0000 [f20a522d43] Alexander Traud <pabstraud@compuserve.com>
+
+ * install_prereq: Update Debian/Ubuntu libraries.
+
+ ASTERISK-27555
+
+ Change-Id: Ieb41b0cbf968af12882b39454b819ebb48b9ea46
+
+2018-01-19 04:46 +0000 [1fbca9a40d] Alexander Traud <pabstraud@compuserve.com>
+
+ * install_prereq: Support package manager DNF and yum option strict=1.
+
+ This re-enables the script ./contrib/scripts/install_prereq on Fedora 22 and
+ newer, and on RHEL/CentOS when the option strict=1 was set for yum install.
+
+ ASTERISK-27598
+ Reported by: Hunter Stevens, Said Masoud
+
+ Change-Id: I40f9517122aaa6906e8fc0962b4b8008dfddb368
+
+2018-01-09 11:29 +0000 [d5bcbd460e] Benoît Dereck-Tricot <benoit.dereck-tricot@eyepea.eu>
+
+ * pbx: Reduce verbosity while loading extensions
+
+ Each time the dial plan is reloaded, a lot of logs like these are generated:
+ "Added extension 'XXXXX' priority 1 to YYYYYYYYYYY"
+ This patch changes the log level for those logs.
+
+ ASTERISK-27084
+
+ Change-Id: I5662902161c50890997ddc56835d4cafb456c529
+
+2018-01-18 14:55 +0000 [b353c90627] Sean Bright <sean.bright@gmail.com>
+
+ * res_pjsip: Document tlsv1_1 and tlsv1_2 methods
+
+ Change-Id: I67ed9039bf3f132fb20ee7a750e0aef0f704d7d3
+
+2018-01-08 23:50 +0000 [1488efb3a8] Igor Goncharovsky <igor.goncharovsky@gmail.com>
+
+ * chan_unistim: Fix hold function ability to lock/crash asterisk
+
+ This patch fix chan_unistim hold functions to correctly support
+ hold function in different states possible in case of multiple lines
+ established on the phone
+
+ ASTERISK-26596 #close
+
+ Change-Id: Ib1e04e482e7c8939607a42d7fddacc07e26e14d4
+
+2017-12-27 17:44 +0000 [0b399013c6] Graham Mainwaring <graham@mhn.org>
+
+ * app_followme: Add a prompt to be read when a call is connected
+
+ This patch adds the ability to configure a prompt which will be read
+ to the "winner" who pressed 1 (or the configured value) and received
+ the call.
+
+ ASTERISK-24372 #close
+
+ Change-Id: I6ec1c6c883347f7d1e1f597189544993c8d65272
+
+2018-01-17 00:28 +0000 [22edb10c44] Corey Farrell <git@cfware.com>
+
+ * loader: Miscellaneous fixes.
+
+ * Remove comment about lazy load.
+ * Improve message about module already being loaded and running.
+ * Handle allocation error in add_to_load_order.
+ * Dead code elimination from modules_shutdown.
+
+ Change-Id: I22261599c46d0f416e568910ec9502f45143197f
+
+2018-01-17 08:36 +0000 [9ffa1f4301] Alexander Traud <pabstraud@compuserve.com>
+
+ * BuildSystem: Use the detected name for MD5 everywhere.
+
+ Affacted the (automatic) download script for external modules:
+ ./build_tools/download_externals
+
+ ASTERISK-27596
+
+ Change-Id: If4c3176f7bf58df32fec6e02a659f1a78d57cf4b
+
+2018-01-17 07:11 +0000 [de65fd11fe] Alexander Traud <pabstraud@compuserve.com>
+
+ * BuildSystem: Invoke install not in GNU but POSIX style.
+
+ ASTERISK-27594
+
+ Change-Id: Iaaa6a19d2fe031dffcba441d0502a7ea65c93cb3
+
+2018-01-17 06:47 +0000 [72845d54f0] Alexander Traud <pabstraud@compuserve.com>
+
+ * BuildSystem: In OpenBSD, xmlstarlet is xml.
+
+ ASTERISK-27593
+
+ Change-Id: I1c7087f7f7582e40b3312c690d912c9a86466805
+
+2018-01-17 02:51 +0000 [985834607b] Alexander Traud <pabstraud@compuserve.com>
+
+ * BuildSystem: Detect external library Lua in version 5.3.
+
+ On some platforms, you decide to go for one specific version of Lua, for
+ example in OpenBSD. On other platforms, you are able to install several versions
+ side-by-side, for example in Ubuntu and Fedora. Asterisk already works with
+ Lua 5.3. Asterisk failed to detect Lua 5.3 on those platforms which allow
+ several versions.
+
+ ASTERISK-27592
+
+ Change-Id: If7a4b395d844a464e9a1f4f626c5bff4ee67eed8
+
+2018-01-16 08:32 +0000 [1bbd9f4a47] Richard Mudgett <rmudgett@digium.com>
+
+ * taskprocessor.c: Increase the number of tps_singletons container buckets.
+
+ Since v12 the number of taskprocessors in the system has increased a lot.
+ Small systems can easily have over a hundred and larger systems can have
+ thousands.
+
+ Most uses of the tps_singletons container deal with creating and
+ destroying the taskprocessors. However, the pjsip distributor looks up
+ taskprocessors/serializers by name frequently. It needs to find the
+ serializer for incoming SIP responses to distribute them to the
+ appropriate serializer.
+
+ Change-Id: Ice0603606614ba49f7c0c316c524735c064e7e43
+
+2018-01-16 08:20 +0000 [fbd0667c84] George Joseph <gjoseph@digium.com>
+
+ * pjproject_bundled: Prevent crash on bad outgoing header
+
+ We still need to figure out how a bad header is getting into the
+ outgoing message but this patch to pjproject prevents attempting
+ to print that header and causing a crash.
+
+ For several users, this crash happens when sending 183 progress
+ messages.
+
+ ASTERISK-26832
+ Reported by: Ross Beer, Jan Rozhon
+
+ Change-Id: Ie5c5a921c890c843587763e7f33f987dfe66bd16
+
+2018-01-16 06:34 +0000 [637bd26575] Alexander Traud <pabstraud@compuserve.com>
+
+ * BuildSystem: Avoid $EUID and use id -u instead.
+
+ Makefile included a call to ${EUID} which requires the shell bash. To keep
+ compatibility with other shells like dash or ksh, use id -u instead.
+
+ ASTERISK-27589
+
+ Change-Id: Ia6e74f5bc9aab4e6dc62b7439f647b7964e6f657
+
+2018-01-15 18:03 +0000 [b0a78bdc3e] Richard Mudgett <rmudgett@digium.com>
+
+ * cel_odbc.c: Fix menuslect module description display.
+
+ Asterisk's makefile for menuselect has a very simple source file parsing
+ script that looks for AST_MODULE_INFO lines to extract the quoted string
+ as a module description. If it does not find a quoted string it uses the
+ whole line as the description.
+
+ Change-Id: I80f13a63818e4e28d683639a94a4dfaea405c1d5
+
+2018-01-15 01:41 +0000 [c0a4a939cc] Yasuhiko Kamata <yasuhiko.kamata@nxtg.co.jp>
+
+ * chan_sip: 3PCC patch for AMI "SIPnotify"
+
+ A patch for sending in-dialog SIP NOTIFY message
+ with "SIPnotify" AMI action.
+
+ ASTERISK-27461
+
+ (created patch for 13 branch manually due to merge conflict)
+
+ Change-Id: I255067f02e2ce22c4b244f12134b9a48d210c22a
+
+2018-01-13 13:49 +0000 [948b852f48] George Joseph <gjoseph@digium.com>
+
+ * config_transport: Enable TCP_NODELAY on TLS transports
+
+ We did this for TCP transports already but I'm not sure why we
+ didn't do it for TLS transports.
+
+ ASTERISK_27474 #not_final_fix
+
+ Change-Id: I5b1ef4b882f7b859e718236686b7898751dbb262
+
+2018-01-12 18:37 +0000 [f01bac230d] Corey Farrell <git@cfware.com>
+
+ * res_stasis_recording: Allow symbolic links in configured recordings dir.
+
+ If any component of ast_config_AST_RECORDING_DIR is a symbolic link we
+ would incorrectly assume the ARI user was trying to escape the recording
+ path. Create additional check to check the recording directory's
+ realpath, only deny access if both do not match.
+
+ This is needed by the testsuite when run by 'run-local'.
+
+ Change-Id: I9145e841865edadcb5f75cead3471ad06bbb56c0
+
+2018-01-12 12:00 +0000 [97b574c927] Corey Farrell <git@cfware.com>
+
+ * menuselect: Remove unused dev-mode option TRACE_FRAMES.
+
+ ASTERISK-27575 #close
+
+ Change-Id: Ica3a522892afed7a96816a5ecf140e1671f46ad4
+
+2018-01-12 03:50 +0000 [f07b0df627] Alexander Traud <pabstraud@compuserve.com>
+
+ * res_config_pgsql: Avoid typecasting an int to unsigned char.
+
+ clang 5.0 warned about this.
+
+ ASTERISK-27576
+
+ Change-Id: If41f400a51973c06cdb9b75462e535b616bfe385
+
+2018-01-12 03:17 +0000 [659c44f5fb] Alexander Traud <pabstraud@compuserve.com>
+
+ * BuildSystem: Really do not pass unknown-warning options to the compiler.
+
+ When an older GCC version is called with a too new warning option, GCC exited
+ with an error and Asterisk was not built. Therefore, the configure script tests
+ the installed compiler whether it supports that warning option. If not, Asterisk
+ does not pass it to the installed compiler. However, some compilers (like clang)
+ do not exit (error) but give just a warning in such a case. Because the compiler
+ did not exit, Asterisk passed the unknown-warning option.
+
+ ASTERISK-27560
+
+ Change-Id: Ia9d148e689c173df4e91699113605dab2de36038
+
+2018-01-12 04:27 +0000 [45008c604d] Alexander Traud <pabstraud@compuserve.com>
+
+ * app_osplookup.c: Avoid two format truncations.
+
+ GCC 7 warned about this.
+
+ ASTERISK-27578
+
+ Change-Id: I4a00458dbe9b575ef04338b6a7852272745e1552
+
+2018-01-12 04:03 +0000 [d53a312a03] Alexander Traud <pabstraud@compuserve.com>
+
+ * chan_ooh323: Avoid typecasting an int to unsigned short.
+
+ clang 5.0 warned about this.
+
+ ASTERISK-27577
+
+ Change-Id: I898fe4255023138a9e8b579fe4482fcf582f2b78
+
+2018-01-05 15:17 +0000 [1d625a7428] Alexander Traud <pabstraud@compuserve.com>
+
+ * install_prereq: Update Debian/Ubuntu libraries.
+
+ ASTERISK-27555
+
+ Change-Id: I0818b6e42631be1b69237e2b41d3415275693e53
+
+2017-12-22 19:50 +0000 [f35960d55b] Richard Mudgett <rmudgett@digium.com>
+
+ * res_pjsip: Split type=identify to IP address and SIP header matching priorities
+
+ The type=identify endpoint identification method can match by IP address
+ and by SIP header. However, the SIP header matching has limited
+ usefulness because you cannot specify the SIP header matching priority
+ relative to the IP address matching. All the matching happens at the same
+ priority and the order of evaluating the identify sections is
+ indeterminate. e.g., If you had two type=identify sections where one
+ matches by IP address for endpoint alice and the other matches by SIP
+ header for endpoint bob then you couldn't predict which endpoint is
+ matched when a request comes in that matches both.
+
+ * Extract the SIP header matching criteria into its own "header" endpoint
+ identification method so the user can specify the relative priority of the
+ SIP header and the IP address matching criteria in the global
+ endpoint_identifier_order option. The "ip" endpoint identification method
+ now only matches by IP address.
+
+ ASTERISK-27491
+
+ Change-Id: I9df142a575b7e1e3471b7cda5d3ea156cef08095
+
+2018-01-11 08:09 +0000 [90b2dc1450] Tzafrir Cohen <tzafrir.cohen@xorcom.com>
+
+ * Ignore quilt .pc directory, used in deb packaging
+
+ Debian packaging uses quilt to manage patches. Book-keeping for them is
+ done using quilt (either directly, or in a compatible format), and
+ tracked in the directory .pc .
+
+ Change-Id: I22c90f3d7ab8918e6216e7b686de6fa0e1fdaa7b
+ Signed-off-by: Tzafrir Cohen <tzafrir.cohen@xorcom.com>
+
+2018-01-09 11:23 +0000 [608112ced3] Corey Farrell <git@cfware.com>
+
+ * stasis: Remove silly usage of RAII_VAR.
+
+ Change-Id: Ib11193531e797bcb16bba560a408eab155f706d1
+
+2018-01-09 11:16 +0000 [b7c25740fa] Corey Farrell <git@cfware.com>
+
+ * stasis_bridges: Remove silly usage of RAII_VAR.
+
+ Change-Id: I0fa7ab05454f183dc4ff10e26d18776d2b0fcf1f
+
+2018-01-03 17:26 +0000 [2e09ed3b18] Richard Mudgett <rmudgett@digium.com>
+
+ * res_pjsip.c: Update the endpoint identification documentation.
+
+ * Endpoint identify_by documentation.
+ * IP/Header endpoint identifier documentation.
+
+ Change-Id: Id92f00b495acca7be945daf749d2abd7f76a0b5a
+
+2018-01-03 15:20 +0000 [dd6dee7e50] Richard Mudgett <rmudgett@digium.com>
+
+ * res_pjsip_endpoint_identifier_ip.c: Remove unnecessary requirement.
+
+ The requirement that "ip" must be in the endpoint identify_by list to
+ allow the type=identify method to identify the endpoint is not necessary.
+ The "ip" identifier method can match one and only one endpoint. To even
+ work, the "ip" identifier method configuration must explicitly specify the
+ identified endpoint. Therefore, why bother configuring the type=identify
+ identifier in the first place? The requirement only adds the potential
+ for configuration errors for no benefit. Even worse, those configuration
+ errors cannot be detected when the configuration loads. The requirement
+ was introduced with the ASTERISK_27206 patch.
+
+ * Remove the code change that enforces the requiremnt. Listing the "ip"
+ method in the identify_by value is simply documentation.
+
+ Change-Id: Ia057f92a33fb5d9f51dc5d5692e3d5ee1a6f2c11
+
+2018-01-05 19:03 +0000 [96040fa6bb] Richard Mudgett <rmudgett@digium.com>
+
+ * res_pjsip.c: Fix ident_to_str() and refactor ident_handler().
+
+ * Extracted sip_endpoint_identifier_type2str() and
+ sip_endpoint_identifier_str2type() to simplify the calling functions.
+
+ * Fixed pjsip_configuration.c:ident_to_str() building the endpoint's
+ identify_by value string.
+
+ Change-Id: Ide876768a8d5d828b12052e2a75008b0563fc509
+
+2018-01-04 17:04 +0000 [a8a2f39f04] Richard Mudgett <rmudgett@digium.com>
+
+ * res_pjsip_endpoint_identifier_ip.c: Allow multiple IdentifyDetail AMI events.
+
+ The AMI PJSIPShowEndpoint action could only list one IdentifyDetail AMI
+ event per endpoint. However, there is no reason that multiple
+ type=identify sections cannot identify the same endpoint.
+
+ * Reworked format_ami_endpoint_identify() to generate as many
+ IdentifyDetail AMI events as there are matching identifiers.
+
+ Change-Id: Ie146792aef72d78e05416ab5b27bc552a30399db
+
+2018-01-09 11:10 +0000 [dedf0ff2bf] Corey Farrell <git@cfware.com>
+
+ * stasis_cache: Remove silly usage of RAII_VAR.
+
+ Change-Id: Ifa95e5801c949df296c7e4376347730fb0ed52ef
+
+2018-01-09 11:09 +0000 [8a6b3537b1] Corey Farrell <git@cfware.com>
+
+ * stasis_cache_pattern: Remove silly usage of RAII_VAR.
+
+ Change-Id: Ic98a51f555062cd863b6db3f8d76065943a9dea3
+
+2018-01-09 10:57 +0000 [909e642918] Corey Farrell <git@cfware.com>
+
+ * stasis_endpoints: Remove silly usage of RAII_VAR.
+
+ Change-Id: Ic099dc552f36c353c89783a4bcfd09f010432733
+
+2018-01-09 10:55 +0000 [bd11159dbc] Corey Farrell <git@cfware.com>
+
+ * stasis_message_router: Remove silly usage of RAII_VAR.
+
+ Change-Id: I50d6ae230920e0b878ed9cc8f79eef746e06701d
+
+2018-01-09 10:53 +0000 [975a38e524] Corey Farrell <git@cfware.com>
+
+ * stasis_system: Remove silly usage of RAII_VAR.
+
+ Change-Id: Iedbe5656cee68cd3a96a953558764aa02d4a0c3b
+
+2018-01-05 05:51 +0000 [b45fb3a6ec] Alexander Traud <pabstraud@compuserve.com>
+
+ * translate: Avoid absolute value on unsigned substraction.
+
+ ast_format_get_sample_rate(.) returns an unsigned type. The difference of a
+ substraction between two unsigned types does not get implicitly converted to a
+ signed type. Therefore, using abs(.) did not make sense.
+
+ ASTERISK-27549
+
+ Change-Id: Ib904d9ee0d46b6fdd1476fbc464fbbf813304017
+
+2018-01-09 08:22 +0000 [1da8846ca7] Sean Bright <sean.bright@gmail.com>
+
+ * Revert "codec_opus: Make libcurl a dependency in menuselect"
+
+ This reverts commit 028f4320de60a204e457ad606ab0a3318493b431.
+
+ Change-Id: Ieb91f825cb55202a937f5361c01d356e7662b70c
+
+2018-01-08 18:47 +0000 [c67eb7031b] Corey Farrell <git@cfware.com>
+
+ * app_confbridge: Fix NULL check in action_kick_last.
+
+ The check for last_user == NULL needs to happen before we dereference
+ the variable, previously it was possible for us to check flags of a NULL
+ last_user.
+
+ Change-Id: I274f737aa8af9d2d53e4a78cdd7ad57561003945
+
+2018-01-06 02:17 +0000 [17480f6ea4] Corey Farrell <git@cfware.com>
+
+ * res_stasis: Reduce RAII_VAR usage.
+
+ In addition to being a micro-optimization (RAII_VAR has overhead), this
+ change improves output of REF_DEBUG. Unfortunately when RAII_VAR calls
+ ao2_cleanup it does so from a generated _dtor_varname function. For
+ example this caused _dtor_app to release a reference instead of
+ __stasis_app_unregister.
+
+ Change-Id: I4ce67120583a446babf9adeec678b71d37fcd9e5
+
+2018-01-07 20:21 +0000 [c1acc4f364] Corey Farrell <git@cfware.com>
+
+ * res_stasis: Fix app_is_subscribed_bridge_id.
+
+ Instead of searching for bridge_id provided in an argument this function
+ always searched for BRIDGE_ALL first. Rewrite this function to work
+ like the similar functions for channel and endpoint functions.
+
+ Change-Id: Ib5caca69e11727c5c8a7284a1d00621f40f1e60a
+
+2018-01-05 07:58 +0000 [da1a9f392a] Alexander Traud <pabstraud@compuserve.com>
+
+ * General: Silence modules on (un)load.
+
+ Some (normally optional) modules created notices, warnings, and even errors
+ in normal situations like (un)load. This cluttered the command-line interface
+ (CLI) on start and while stopping gracefully. However, when an user went for
+ the script './contrib/scripts/install_prereq', those modules get compiled-in
+ because their prerequisites were met at compile time. Furthermore, because of
+ ASTERISK_27475, the former talkative module 'res_curl' is built as side-effect.
+
+ ASTERISK-27553
+
+ Change-Id: I9f105f46d72553994e820679bfde3478a551b281
+
+2018-01-06 15:40 +0000 [aa52c52b21] Alexander Traud <pabstraud@compuserve.com>
+
+ * BuildSystem: Really do not pass unknown-warning options to the compiler.
+
+ When an older GCC version is called with a too new warning option, GCC exited
+ with an error and Asterisk was not built. Therefore, the configure script tests
+ the installed compiler whether it supports that warning option. If not, Asterisk
+ does not pass it to the installed compiler. However, some compilers (like clang)
+ do not exit (error) but give just a warning in such a case. Because the compiler
+ did not exit, Asterisk passed the unknown-warning option.
+
+ ASTERISK-27560
+
+ Change-Id: Ia9b7747f649b27ff5e9f75c3db3fee4fe7a29621
+
+2018-01-06 01:42 +0000 [9865e689d2] Alexander Traud <pabstraud@compuserve.com>
+
+ * General: Avoid implicit conversion to char when changes value to negative.
+
+ clang 5.0 warned about this.
+
+ ASTERISK-27557
+
+ Change-Id: I7cceaa88e147cbdf81a3a7beec5c1c20210fa41e
+
+2018-01-06 06:45 +0000 [a68da30069] Alexander Traud <pabstraud@compuserve.com>
+
+ * editline: Avoid comparison between pointer and zero character constant.
+
+ gcc 7.2 warned about this.
+
+ ASTERISK-27559
+
+ Change-Id: I48960dda9cf0a11b6a9426f775e632363f8caa74
+
+2018-01-06 05:01 +0000 [e60135efd4] Alexander Traud <pabstraud@compuserve.com>
+
+ * codec_gsm: Avoid shifting a negative signed value.
+
+ clang 5.0 warned about this.
+
+ ASTERISK-27558
+
+ Change-Id: Icc452ecb0d86bbeba78dae768cc472ec540699df
+
+2018-01-04 12:23 +0000 [ba57c03740] Richard Mudgett <rmudgett@digium.com>
+
+ * res_pjsip_endpoint_identifier_ip.c: Fix apply identify validation.
+
+ The ip_identify_apply() did not validate the configuration for simple
+ static configuration errors or deal well with address resolution errors.
+
+ * Added missing configuration validation checks.
+ * Fixed address resolution error handling.
+ * Demoted an error message to a warning since it does not fail applying
+ the identify object configuration.
+
+ Change-Id: I8b519607263fe88e8ce964f526a45359fd362b6e
+
+2018-01-04 17:42 +0000 [0feca9bc18] Richard Mudgett <rmudgett@digium.com>
+
+ * res_pjsip.c: Fix endpoint identifier registration name search.
+
+ If an endpoint identifier name in the endpoint_identifier_order list is a
+ prefix to the identifier we are registering, we could install it in the
+ wrong position of the list.
+
+ Assuming
+ endpoint_identifier_order=username,ip,anonymous
+
+ then registering the "ip_only" identifier would put the identifier in the
+ wrong position of the priority list.
+
+ * Fix incorrect strncmp() string prefix matching.
+
+ Change-Id: Ib8819ec4b811da8a27419fd93528c54d34f01484
+
+2018-01-05 03:33 +0000 [440fb4d02b] Alexander Traud <pabstraud@compuserve.com>
+
+ * BuildSystem: Find ptlib-config on Debian/Ubuntu.
+
+ The current configure script requires that tool when libpt-dev is installed.
+ libpt-dev was installed by libopenh323-dev, bacause you wanted to go for H.323
+ based channel drivers.
+
+ ASTERISK-25329
+
+ Change-Id: I9c6ab78b7246c21536e1d252dcbffe682f63f83d
+
+2018-01-05 06:42 +0000 [dda0ab236d] Alexander Traud <pabstraud@compuserve.com>
+
+ * chan_ooh323: Limit outgoinglimit to positive values as intended.
+
+ ASTERISK-27552
+
+ Change-Id: Ifbf9d51e7374ca2e8b27ec568f6770050fc1a854
+
+2018-01-05 06:19 +0000 [c11999f140] Alexander Traud <pabstraud@compuserve.com>
+
+ * ooh323cDriver: Fix typo in header guard.
+
+ ASTERISK-27551
+
+ Change-Id: I39ff66031e3373e895e2bc47b23a5e860ea4e012
+
+2018-01-05 03:36 +0000 [cee6de4e63] Alexander Traud <pabstraud@compuserve.com>
+
+ * BuildSystem: Avoid obsolete warning with HELP_STRING on autoconf.
+
+ ASTERISK-26046
+
+ Change-Id: I48f05698c235f709225b92bec5aa260fb57d69d1
+
+2018-01-04 16:07 +0000 [0f141351f9] Corey Farrell <git@cfware.com>
+
+ * pbx: Prevent execution of NULL pointer.
+
+ pbx_extension_helper has a check for q->swo.exec == NULL but it doesn't
+ actually return so we would still run the function. Fix the return.
+ Move the 'int res' variable into the only scope which uses it.
+
+ Change-Id: I0693af921fdc7f56b6a72a21fb816ed08b960a69
+
+2018-01-04 09:30 +0000 [d73a3a1764] Corey Farrell <git@cfware.com>
+
+ * res_pjsip_history: Add missing unlock to CLI command.
+
+ Change-Id: I872060a30543776a176a316309602d924a23eb29
+
+2018-01-04 09:27 +0000 [ec74570598] Corey Farrell <git@cfware.com>
+
+ * aco: Fix NULL dereference in error path.
+
+ Change-Id: Id505167cf0f9414a3c144fa2c1e181a2cf288694
+
+2018-01-03 19:07 +0000 [74b6fafbe6] Corey Farrell <git@cfware.com>
+
+ * func_odbc: Add missing unlock's to acf_odbc_read.
+
+ Change-Id: I828329ecbd252ae8f27a369a046d2b03102b07c6
+
+2018-01-03 10:41 +0000 [d25a9bc7d3] Kevin Harwell <kharwell@digium.com>
+
+ * res_pjsip_session: Check if sequence header is missing
+
+ The pjsip_msg_find_hdr function can return NULL. This patch adds a check
+ when searching for the sequence header to make sure a NULL pointer is never
+ de-referenced.
+
+ Change-Id: I19af23aeeded65be016be92360e8cb7ffe51fad2
+
+2018-01-02 07:36 +0000 [00b0c67144] Tzafrir Cohen <tzafrir.cohen@xorcom.com>
+
+ * cdr: submit: fix logic of test for batch mode
+
+ ASTERISK-27539 #close
+
+ Change-Id: I33cdf329d2bb4486dcae975c450f6aae94c515f7
+
+2018-01-02 00:26 +0000 [dd528c53c0] Corey Farrell <git@cfware.com>
+
+ * aco: Add missing aco_option_type_string for OPT_TIMELEN_T.
+
+ ASTERISK-27117
+
+ Change-Id: I8f6c34bb30830be9f7a40823723eb4dcaaa91c61
+
+2017-12-29 22:59 +0000 [5b395a7b97] Corey Farrell <git@cfware.com>
+
+ * core: Use macros to generate ao2_container callbacks where possible.
+
+ This uses AO2_STRING_FIELD_HASH_FN and AO2_STRING_FIELD_CMP_FN where
+ possible in the Asterisk core.
+
+ This removes CMP_STOP from the result of CMP_FN callbacks for the
+ following structure types:
+ * ast_bucket_metadata
+ * ast_bucket_scheme
+ * generic_monitor_instance_list (ccss.c)
+ * named_acl
+
+ Change-Id: Ide4c1449a894bce70dea1fef664dade9b57578f1
+
+2017-12-31 10:26 +0000 [d2c836d24a] Sean Bright <sean.bright@gmail.com>
+
+ * ice: Increase foundation buffer size
+
+ Per RFC 5245, the foundation specified with an ICE candidate can be up
+ to 32 characters but we are only allowing for 31.
+
+ ASTERISK-27498 #close
+ Reported by: Michele Prà
+
+ Change-Id: I05ce7a5952721a76a2b4c90366168022558dc7cf
+
+2017-12-29 22:03 +0000 [b275b0a84f] Corey Farrell <git@cfware.com>
+
+ * astobj2: Create case-insensitive variants of container function macros.
+
+ * AO2_STRING_FIELD_CASE_HASH_FN
+ * AO2_STRING_FIELD_CASE_CMP_FN
+ * AO2_STRING_FIELD_CASE_SORT_FN
+
+ Change-Id: I11af8c6a0c43380a42732553f519c667abb842cf
+
+2017-12-28 13:27 +0000 [751fd9b628] Richard Mudgett <rmudgett@digium.com>
+
+ * stasis_channels.c: Misc cleanup.
+
+ * Use current OBJ_SEARCH_xxx defines instead of the deprecated versions.
+
+ * Fix hash_cb and cmp_cb container functions to correctly use the
+ OBJ_SEARCH_xxx values.
+
+ * Remove incorrect usage of CMP_STOP. Most uses in the system have no
+ effect. This allows the collapse of channel_role_single_cmp_cb() and
+ channel_role_multi_cmp_cb() into channel_role_cmp_cb().
+
+ * Remove unnecessary usage of RAII_VAR().
+
+ Change-Id: I02c405518cab22aa2a082b61e2353bf7cd629a70
+
+2017-12-13 15:43 +0000 [bae301c18c] Sean Bright <sean.bright@gmail.com>
+
+ * cdr_mysql: Make sure connection charset is always set
+
+ When the MYSQL_OPT_RECONNECT option is enabled, the MySQL client API
+ will transparently reconnect when it needs to. Ideally this simplifies
+ our code, but when this reconnection occurs all connection state is
+ lost. Because we are not notified that this has happened, we don't know
+ to set our character set again (with "SET NAMES 'xyz'").
+
+ Rather than calling SET NAMES, we instead set the MYSQL_SET_CHARSET_NAME
+ option which will do it for us under the hood on each connect. This
+ option has been present in the MySQL C API for at least 15 years, so it
+ should be safe for most installations.
+
+ I also snuck a few other changes into this patch:
+
+ * Default the MySQL port to MYSQL_PORT (3306) instead of 0 if it's not
+ defined.
+
+ * Fix some erroneous and/or silly checks on the contents of the
+ configuration ast_str values.
+
+ ASTERISK-27366 #close
+ Reported by: Halil İbrahim YILDIZ
+
+ Change-Id: I36bf8dc5d5f83584e803b3b1a151dea9396ab8f5
+
+2017-12-27 20:48 +0000 [5de8f49294] Richard Mudgett <rmudgett@digium.com>
+
+ * manager.c: Update AMI Status event documentation
+
+ The AMI Status event had linkedid listed twice and was missing the
+ effective connected line name and number headers.
+
+ NOTE: The linkedid and other standard channel snapshot fields in the XML
+ documentation are part of the <channel_snapshot/> XML template defined in
+ doc/appdocsxml.xslt.
+
+ * Cached the effective connected line party id so it doesn't get
+ calculated four times.
+
+ Change-Id: I004c4c4f9e7b40ef55035c831702721bec82496c
+
+2017-12-27 22:36 +0000 [9f1cfbafca] Richard Mudgett <rmudgett@digium.com>
+
+ * bridge_native_rtp.c: Fix reentrancy framehook crash.
+
+ If two channels enter different native rtp bridges at the same time it is
+ possible that the framehook interface data pointer can be corrupted
+ because the struct variable was declared static.
+
+ * Fixed the reentrancy corruption by changing the framehook interface
+ struct static variable to a stack local variable.
+
+ * Moved the hook.data assignment outside of the channel lock. It did not
+ need the lock's protection. It probably was giving a false sense of
+ security.
+
+ The testsuite
+ channels/pjsip/basic_calls/two_parties/nominal/alice_initiated/bob_hangs_up
+ test caught this with MALLOC_DEBUG and DO_CRASH enabled.
+
+ Change-Id: If9e35b97d19209b0f984941c1d8eb5f7c55eea91
+
+2017-12-27 20:22 +0000 [eead5d0c30] Richard Mudgett <rmudgett@digium.com>
+
+ * func_channel.c: Update MASTER_CHANNEL documentation
+
+ Be more explicit in what is meant by the master channel to eliminate
+ misunderstanding.
+
+ ASTERISK-23133
+
+ Change-Id: I453bcaf4b99404a5a3e345dbf093ac6c1afcfc72
+
+2017-12-27 19:27 +0000 [0bdddbe526] Corey Farrell <git@cfware.com>
+
+ * menuselect: Fix check for running configure.
+
+ menuselect/Makefile checks that autoconfig.h and makeopts were newer
+ than the '.in' files. Unfortunately running ./configure does not touch
+ autoconfig.h unless the contents will change.
+
+ Instead of looking at autoconfig.h we just need to ensure that makeopts
+ is newer than configure.
+
+ Also make change to configure.ac so bootstrap.sh doesn't re-add the
+ extra trailing line-feed.
+
+ Change-Id: Ief1f831d6717007f9cebb668c14e92782cd2b794
+
+2017-12-25 20:39 +0000 [d62c87bb8d] Corey Farrell <git@cfware.com>
+
+ * cdr: Missing NULL check and unlock.
+
+ * handle_dial_message: Missing a check for NULL peer.
+ * ast_cdr_register: Missing unlock on allocation failure.
+
+ ast_cdr_register is fixed by reordering so the new structure is
+ allocated and initialized before locking the list.
+
+ Change-Id: I5799b99270d1a7a716a555c31ac85f4b00ce8686
+
+2017-12-23 22:51 +0000 [92fb393cab] Corey Farrell <git@cfware.com>
+
+ * loader: Add volatile to resource_being_loaded.
+
+ Some compiler optimizers seem to assume that dlopen will not use
+ __attribute__((constructor)) functions to call back to the program.
+ This was causing resource_being_loaded to be optimized away completely.
+
+ ASTERISK-27531 #close
+ Tested By: abelbeck
+
+ Change-Id: If17a3b889e06811a0e7119f0539d052494d6ece9
+
+2017-12-20 16:17 +0000 [53799318bc] Kevin Harwell <kharwell@digium.com>
+
+ * AST-2017-014: res_pjsip - Missing contact header can cause crash
+
+ Those SIP messages that create dialogs require a contact header to be present.
+ If the contact header was missing from the message it could cause Asterisk to
+ crash.
+
+ This patch checks to make sure SIP messages that create a dialog contain the
+ contact header. If the message does not and it is required Asterisk now returns
+ a "400 Missing Contact header" response. Also added NULL checks when retrieving
+ the contact header that were missing as a "just in case".
+
+ ASTERISK-27480 #close
+
+ Change-Id: I1810db87683fc637a9e3e1384a746037fec20afe
+
+2017-12-22 08:14 +0000 [ce3d56920b] Sean Bright <sean.bright@gmail.com>
+
+ * Remove as much trailing whitespace as possible.
+
+ Change-Id: I873c1c6d00f447269bd841494459efccdd2c19c0
+
+2017-12-21 09:51 +0000 [b4ae112e3a] Sean Bright <sean.bright@gmail.com>
+
+ * Fix some invalid Unicode characters
+
+ configs/samples/minivm.conf.sample contains invalid UTF-8, but that
+ appears to be intentional.
+
+ Change-Id: I7b1e0d332f3380fd0425962a3c9c55f9b200c8cc
+
+2017-12-20 21:11 +0000 [719e8eee03] Corey Farrell <git@cfware.com>
+
+ * app_voicemail: Fix file copy error handling.
+
+ Fix error where input/output file descriptors would be closed multiple
+ times.
+
+ Change-Id: Iba5140b60cb7de79e3d5d92be3c256947aa99da9
+
+2017-12-20 14:54 +0000 [6892c13a2c] Sean Bright <sean.bright@gmail.com>
+
+ * docs: Remove old API changes documentation
+
+ Change-Id: I1bc7957121cc7ae27dca04acc3613f4e1858476a
+
+2017-12-20 11:14 +0000 [82b6ba976f] Corey Farrell <git@cfware.com>
+
+ * Fix Common Typo's.
+
+ Fix instances of:
+ * Retreive
+ * Recieve
+ * other then
+ * different then
+ * Repeated words ("the the", "an an", "and and", etc).
+ * othterwise, teh
+
+ ASTERISK-24198 #close
+
+ Change-Id: I3809a9c113b92fd9d0d9f9bac98e9c66dc8b2d31
+
+2017-12-20 00:53 +0000 [6b3188fb8c] Corey Farrell <git@cfware.com>
+
+ * app_festival: Fix fd leak on connection failure.
+
+ Change-Id: If5efaddcf735ff7d17e55c36cc1388946cee9e0f
+
+2017-12-20 10:23 +0000 [be3800c49d] Corey Farrell <git@cfware.com>
+
+ * bridge: Old channel video source not set to NULL after unref.
+
+ The bridge holds onto the old channel video source after it's been
+ released. This can lead to use after free errors.
+
+ ASTERISK-27229 #close
+
+ Change-Id: Ib2dab61677dd8a21f7ad53cdc9b8ca93297838b3
+
+2017-12-20 10:13 +0000 [d05ec48145] Corey Farrell <git@cfware.com>
+
+ * core: Fix unused variable error in handle_show_sysinfo.
+
+ Apparently in OSX it's possible for OSX to HAVE_SYSCTL but not
+ HAVE_SYSINFO or HAVE_SWAPCTL. In this case freeswap caused an unused
+ variable error.
+
+ ASTERISK-26563 #close
+
+ Change-Id: I8ec5b1897b786cc1abaf62264aa75039eea05510
+
+2017-10-16 07:36 +0000 [e7f8302d30] Torrey Searle <torrey@voxbone.com>
+
+ * contrib/script/sip_to_pjsip: add support for realtime
+
+ Add a new script that can read from legacy realtime peers & generate
+ an sql file for populating pjsip endpoints, identify, and aor records.
+
+ ASTERISK-27348 #close
+
+ Change-Id: Idd3d7968a3c9c3ee7936d21acbdaf001b429bf65
+
+2017-12-20 19:05 +0000 Asterisk Development Team <asteriskteam@digium.com>
+
+ * asterisk 13.19.0-rc1 Released.
+
+2017-12-20 11:30 +0000 [4f45748f52] Richard Mudgett <rmudgett@digium.com>
+
+ * manager.h: Bump AMI version
+
+ Change-Id: I62e6ddeb261ef012687e1fb6734c554e2499b6bf
+
+2017-12-18 20:12 +0000 [9adffca9c7] Corey Farrell <git@cfware.com>
+
+ * CLI: Address multiple issues.
+
+ * listen uses the variable `s` for the result from ast_poll() then
+ overwrites it with the result of accept(). Create a separate variable
+ poll_result to avoid confusion since ast_poll does not return a file
+ descriptor.
+ * Resolve fd leak that would occur if setsockopt failed in listen.
+ * Reserve an extra byte while processing completion results from remote
+ daemon. This fixes a bug where completion processing used strstr() on
+ a string that was not '\0' terminated. This was no risk to the Asterisk
+ daemon, the bug was only reachable the remote console process.
+ * Resolve leak in handle_showchan when the channel is not found.
+ * Multiple leaks and a deadlock in pbx_config CLI completion.
+ * Fix leaks in "manager show command".
+
+ Change-Id: I8f633ceb1714867ae30ef4e421858f77c14485a9
+
+2017-12-19 14:15 +0000 [c38b750810] Aaron An <anjb@ti-net.com.cn>
+
+ * res_rtp_asterisk: Avoid close the rtp/rtcp fd twice.
+
+ When RTCP-MUX enabled. rtp->s is the same as rtcp->s, check this before
+ close the file descriptor. Close the FD twice will hangs the asterisk
+ under heavy load.
+
+ ASTERISK-27299 #close
+ Reported-by: Aaron An
+ Tested-by: AaronAn
+
+ Change-Id: I870a072d73fd207463ac116ef97100addbc0820a
+
+2017-12-16 07:51 +0000 [fef23297b7] Ivan Poddubny <ivan.poddubny@gmail.com>
+
+ * bridge: Stop music on hold on adding an arbitrary channel to a bridge
+
+ When a channel that is on hold gets added to a bridge by
+ the Bridge AMI action or the dialplan application of the same name,
+ music continues to play, causing "robotic sound".
+
+ This commit adds a call to ast_moh_stop to stop the music.
+ Also, it makes the AMI Park action use the right MOH class when the
+ channel gets parked.
+
+ Reported by: Zane Conkle
+
+ ASTERISK-25079 #close
+
+ Change-Id: I4b129c5a20c15e63968842460ac5a1a85903cf9f
+
+2017-12-18 18:59 +0000 [0e5d8ad09b] Corey Farrell <git@cfware.com>
+
+ * chan_sip: Fix memory leaks.
+
+ In change_redirecting_information variables we use ast_strlen_zero to
+ see if a value should be saved. In the case where the value is not NULL
+ but is a zero length string we leaked.
+
+ handle_response_subscribe leaked a reference to the ccss monitor
+ instance.
+
+ Change-Id: Ib11444de69c3d5b2360a88ba2feb54d2c2e9f05f
+
+2017-12-19 02:50 +0000 [fc86e58a5a] Oron Peled <oron.peled@xorcom.com>
+
+ * chan_console: Use correct parameter for 'set active'
+
+ chan_console supports multiple devices but the CLI only works on a
+ single device. 'console set active' selects this device.
+
+ Sadly that CLI picks the wrong command-line parameter and will only
+ work for a device called 'active'.
+
+ ASTERISK-27490 #close
+
+ Change-Id: I2f0e5fe63db19845bee862575b739360797dc73d
+
+2017-12-18 15:36 +0000 [d6b2f457d9] Corey Farrell <git@cfware.com>
+
+ * Remove constant conditionals (dead-code).
+
+ Some variables are set and never changed, making them constant. This
+ means that code in the 'false' block of the conditional is unreachable.
+
+ In chan_skinny and res_config_ldap I used preprocessor directive `#if 0`
+ as I'm unsure if the unreachable code could be enabled in the future.
+
+ Change-Id: I62e2aac353d739fb3c983cf768933120f5fba059
+
+2017-12-18 23:17 +0000 [381ed4f1cc] Corey Farrell <git@cfware.com>
+
+ * core: Fix multiple trivial issues in the core.
+
+ * Fix small leaks in from error condition in translate.c.
+ * Check new file descriptor is less than 0, not less than or equal.
+
+ Change-Id: Id7782775486175c739e0c4bf3ea5e17e3f452a99
+
+2017-12-18 19:47 +0000 [67b5a4e616] Corey Farrell <git@cfware.com>
+
+ * main/app: Fix leaks.
+
+ * ast_linear_stream would leak a file descriptor if it failed to allocate
+ lin.
+ * ast_control_tone leaked zone and ts if ast_playtones_start failed.
+
+ Additionally added whitespace to ast_linear_stream, pulled assignments
+ out of conditionals for improved readability.
+
+ Change-Id: I6d1a10cf9161b1529d939b9b2d63ea36d395b657
+
+2017-12-18 19:19 +0000 [3782230e00] Corey Farrell <git@cfware.com>
+
+ * func_callerid: Initialize app argument structures.
+
+ This module uses AST_DEFINE_APP_ARGS_TYPE to define struct's instead of
+ directly using AST_DECLARE_APP_ARGS. Initialize the variables declared
+ in this way.
+
+ Change-Id: If97fbdd8d63a204e2efd498a192effc14e90fb31
+
+2017-12-18 18:04 +0000 [1d636f4afa] Corey Farrell <git@cfware.com>
+
+ * app_voicemail: Fix memory management issues.
+
+ * mwi_sub_event_cb: mwist leaked on separate_mailbox failure.
+ * add_email_attachment: A reference to sox_gain_tmpdir was used
+ after the storage was out of scope.
+
+ Change-Id: I6282c542ff7b82fa091177a912d11234a8b00a30
+
+2015-11-11 17:20 +0000 [5801917a75] Richard Mudgett <rmudgett@digium.com>
+
+ * ast_json_pack(): Use safer json ref mechanism.
+
+ Change-Id: I49204db2e57ae96eee43909c18ed007c09ac817e
+
+2015-11-11 16:52 +0000 [46ed7afdd9] Richard Mudgett <rmudgett@digium.com>
+
+ * rtp_engine.c: Eliminate rtcp_report_to_json() RAII_VAR usage.
+
+ Change-Id: I58a22c2ca82e91d7537409b7b3af2d735827a54d
+
+2017-12-18 12:23 +0000 [5cdc65cf1e] Corey Farrell <git@cfware.com>
+
+ * CLI: Fix 'core set debug channel' completion bug.
+
+ The completion generator is missing a return so typing "core set debug
+ all off <tab>" causes the command to actually execute.
+
+ Change-Id: Ibf6462088a74eee66967732b50445783ebefc20b
+
+2017-12-18 08:25 +0000 [7f2df9e277] Joshua Colp <jcolp@digium.com>
+
+ * confbridge: Clarify mute sound documentation.
+
+ The mute/unmute sounds are only played when the
+ action is initiated using the DTMF menu.
+
+ ASTERISK-24756
+
+ Change-Id: I55b3dd5bc166096bf5e2f547ddd0ce355f36e3dc
+
+2017-12-18 06:36 +0000 [4cda942ebd] Joshua Colp <jcolp@digium.com>
+
+ * app_transfer: Remove LOCAL from documentation.
+
+ The Local channel has never supported app_transfer
+ from what I can see so remove it from the documentation.
+
+ ASTERISK-25649
+
+ Change-Id: Icbcfe297f6f866285a26b3e9fd5c6d00fa22e0e9
+
+2017-12-15 19:01 +0000 [a368ad9229] Richard Mudgett <rmudgett@digium.com>
+
+ * chan_pjsip.c: Improve ast_request() diagnostic msgs.
+
+ Attempting to dial PJSIP/endpoint when the endpoint doesn't exist and
+ disable_multi_domain=no results in a misleading empty endpoint name
+ message. The message should say the endpoint was not found.
+
+ * Added missing endpoint not found message.
+
+ * Added more information to the empty endpoint name msgs if available.
+
+ * Eliminated RAII_VAR in request().
+
+ Change-Id: I21da85ebd62dcc32115b2ffcb5157416ebae51e4
+
+2017-12-15 10:26 +0000 [b3b7367e6b] Corey Farrell <git@cfware.com>
+
+ * cdr: Minor optimizations.
+
+ * bridge_candidate_process: remove SCOPED_AO2LOCK and return value.
+ * handle_standard_bridge_enter_message: replace recursive call with goto
+ statement.
+
+ ASTERISK-24297
+
+ Change-Id: Id2eaa0822fb8dc799f63422bb3aa89de9d4ee2a2
+
+2017-12-11 17:07 +0000 [8921b2581d] Corey Farrell <git@cfware.com>
+
+ * loader: Use vector to build apha sorted module lists.
+
+ Change-Id: I9c519f4dec3cda98b2f34d314255a31d49a6a467
+
+2017-11-21 00:28 +0000 [d5a7a98528] Corey Farrell <git@cfware.com>
+
+ * loader: Replace priority heap with vector.
+
+ This is needed for future changes which will require being able to
+ process the load priority out of order.
+
+ Change-Id: Ia23421197f09789940510b03ebbbf3bf24d51bea
+
+2017-11-20 23:10 +0000 [5e9d70ae5d] Corey Farrell <git@cfware.com>
+
+ * loader: Rework of load_dynamic_module.
+
+ * Split off load_dlopen to perform actual dlopen, check results and log
+ warnings when needed.
+ * Use flags which minimize number of calls to dlopen required. First
+ attempt always uses RTLD_GLOBAL when global_symbols_only is enabled,
+ RTLD_LOCAL when it is not.
+
+ This patch significantly reduces the number of dlopen's performed. With
+ 299 modules my system ran dlopen 857 times before this patch, 655 times
+ after this patch.
+
+ Change-Id: Ib2c9903cfddcc01aed3e01c1e7fe4a3fb9af0f8b
+
+2017-11-21 20:34 +0000 [4de95d4bf0] Corey Farrell <git@cfware.com>
+
+ * loader: Minor fix to module registration.
+
+ This protects the module loader itself against crashing if dlopen is
+ called on a module from outside loader.c.
+
+ * Expand scope of lock inside ast_module_register to include reading of
+ resource_being_loaded.
+ * NULL check resource_being_loaded.
+ * Set resource_being_loaded NULL as soon as dlopen returns. This fixes
+ some error paths where it was not NULL'ed.
+ * Create module_destroy function to deduplicate code from
+ ast_module_unregister and modules_shutdown.
+ * Resolve leak that occured if a module did not successfully register.
+ * Simplify checking for successful registration.
+
+ Change-Id: I40f07a315e55b92df4fc7faf525ed6d4f396e7d2
+
+2016-10-06 01:29 +0000 [e3bd95f55c] Corey Farrell <git@cfware.com>
+
+ * chan_sip: Add security event for calls to invalid extension.
+
+ Log a message to security events when an INVITE is received to an
+ invalid extension.
+
+ ASTERISK-25869 #close
+
+ Change-Id: I0da40cd7c2206c825c2f0d4e172275df331fcc8f
+
+2017-12-12 12:55 +0000 [501f4dcdd8] Corey Farrell <git@cfware.com>
+
+ * aco: Minimize use of regex.
+
+ Remove nearly all use of regex from ACO users. Still remaining:
+ * app_confbridge has a legitamate use of option name regex.
+ * ast_sorcery_object_fields_register is implemented with regex, all
+ callers use simple prefix based regex. I haven't decided the best
+ way to fix this in both 13/15 and master.
+
+ Change-Id: Ib5ed478218d8a661ace4d2eaaea98b59a897974b
+
+2017-12-12 12:36 +0000 [7413bcbeb5] Corey Farrell <git@cfware.com>
+
+ * aco: Create ways to minimize use of regex.
+
+ ACO uses regex in many situations where it is completely unneeded. In
+ some cases this doubles the total processing performed by
+ aco_process_config.
+
+ * Create ACO_IGNORE category type for use in place of skip_category
+ regex source string.
+ * Create additional aco_category_op values to allow specifying category
+ filter using either a single plain string or a NULL terminated array
+ of plain strings.
+ * Create ACO_PREFIX to allow matching option names to case insensitive
+ prefixes.
+
+ Change-Id: I66a920dcd8e2b0301f73f968016440a985e72821
+
+2017-12-15 07:56 +0000 [8165115faa] Corey Farrell <git@cfware.com>
+
+ * res_smdi: Fix shutdown ref.
+
+ When adding shutdown refs for OPTIONAL_API components I accidentally
+ added it to the unload_module function in res_smdi. Move it to
+ load_module.
+
+ Change-Id: I2b9da38fbc11ef78ea23dbb2df92b684be7f647c
+
+2017-12-14 18:55 +0000 [8338f3ec14] Sean Bright <sean.bright@gmail.com>
+
+ * res_hep: hepv3_is_loaded() should check if we are enabled
+
+ res_hep_pjsip.so and res_hep_rtcp.so will still load and do a lot of
+ unnecessary work even if 'enabled' is set to 'no' in hep.conf.
+
+ Change-Id: I3eddfeea09c6b5bc7c641952ee0ae487fd09b64b
+
+2017-12-14 15:27 +0000 [85dec2ae4f] Corey Farrell <git@cfware.com>
+
+ * res_clialiases: Fix completion pass-through.
+
+ Never ignore contents of line when generating completion options.
+
+ Change-Id: I74389efdfea154019d3b56a9f381610614c044c8
+
+2017-12-11 18:20 +0000 [61e81338d9] Richard Mudgett <rmudgett@digium.com>
+
+ * res_rtp_asterisk.c: Disable packet flood detection for video streams.
+
+ We should not do flood detection on video RTP streams. Video RTP streams
+ are very bursty by nature. They send out a burst of packets to update the
+ video frame then wait for the next video frame update. Really only audio
+ streams can be checked for flooding. The others are either bursty or
+ don't have a set rate.
+
+ * Added code to selectively disable packet flood detection for video RTP
+ streams.
+
+ ASTERISK-27440
+
+ Change-Id: I78031491a6e75c2d4b1e9c2462dc498fe9880a70
+
+2017-12-14 12:14 +0000 [62e743e6a7] Sean Bright <sean.bright@gmail.com>
+
+ * res_musiconhold: Start playlist after initial announcement
+
+ Reset the samples counter to zero when we are done playing an
+ announcement so that we don't skip into the middle of the first file in
+ the playlist.
+
+ Also add the selected annoucement to the output of 'moh show classes.'
+
+ ASTERISK-24329 #close
+ Reported by: Thomas Frederiksen
+
+ Change-Id: I2a5f986a31279c981592f49391409ebf38d6f6d0
+
+2017-12-14 10:51 +0000 [74073c395b] Sean Bright <sean.bright@gmail.com>
+
+ * coverity: Fix warnings in res_smdi
+
+ ASTERISK-19657 #close
+ Reported by: Matt Jordan III, Esq.
+
+ Change-Id: I59a5e6ef3e7d9e848bec1f4b40cb73321bc7956a
+
+2017-12-14 10:22 +0000 [a1fcb7b5a6] Sean Bright <sean.bright@gmail.com>
+
+ * configs: Comment out and change IP of iax.conf [demo]
+
+ This no longer appears to exist, so no sense in causing confusion.
+
+ ASTERISK-27175 #close
+ Reported by: Tzafrir Cohen
+
+ Change-Id: Idde967924c69f6a741dc9a5ab7dacb44d22cf100
+
+2017-12-13 14:26 +0000 [6d290f1880] George Joseph <gjoseph@digium.com>
+
+ * README: Remove outdated references to tex docs
+
+ Added links to the wiki to replace references to outdated
+ tex docs.
+
+ ASTERISK-27430
+ Reported by: Corey Farrell
+
+ Change-Id: I5007e732b30bc7b63d124c530ae8857c89991209
+
+2017-12-13 09:50 +0000 [dd72844e4d] Corey Farrell <git@cfware.com>
+
+ * CLI: Remove special handling of 'core set verbose' from rasterisk.
+
+ rasterisk does not need to handle setting verbose levels locally, it
+ should just tell the daemon what it wants and print what it is given.
+ Just max out the verbose level on the local client so all filtering
+ happens on the daemon.
+
+ ASTERISK-20281 #close
+
+ Change-Id: Ia305f75f1fc424a9169bfa30ef70d626ace2c8a8
+
+2017-11-30 10:12 +0000 [5705e8ae0e] Joshua Colp <jcolp@digium.com>
+
+ * AST-2017-012: Place single RTCP report block at beginning of report.
+
+ When the RTCP code was transitioned over to Stasis a code change
+ was made to keep track of how many reports are present. This count
+ controlled where report blocks were placed in the RTCP report.
+
+ If a compound RTCP packet was received this logic would incorrectly
+ place a report block in the wrong location resulting in a write
+ to an invalid location.
+
+ This change removes this counting logic and always places the report
+ block at the first position. If in the future multiple reports are
+ supported the logic can be extended but for now keeping a count
+ serves no purpose.
+
+ ASTERISK-27382
+ ASTERISK-27429
+
+ Change-Id: Iad6c8a9985c4b608ef493e19c421211615485116
+
+2017-12-06 08:24 +0000 [7a68faeb1d] Joshua Colp <jcolp@digium.com>
+
+ * pjsip: Ignore state changes from old transactions.
+
+ When we fail over to a new target we create a new transaction
+ and it becomes the current INVITE transaction. This does not
+ prevent the previous transaction from raising state changes
+ and causing the session to be prematurely disconnected if a
+ transport error occurs immediately.
+
+ This change backports a fix from PJSIP that eliminates the
+ incorrect state change and reduces when they would be raised
+ in the first place.
+
+ ASTERISK-27408
+
+ Change-Id: Id22d087591782eee31311753d11e7eca4b95ef34
+
+2017-12-12 15:38 +0000 [7ffc41d19f] Ivan Poddubny <ivan.poddubny@gmail.com>
+
+ * app_queue: Fix extension state subscriptions removed on dialplan reload
+
+ The approach with having a single global subscription to all extension
+ state changes has one issue: dynamically created hints don't have any
+ watchers and are therefore garbage collected on the first dialplan
+ reload.
+
+ This change creates a state subscription for every queue member with a
+ hint as state_interface, thus increasing the count of watches for
+ hints, so they are not destroyed prematurely anymore.
+
+ There are 2 side effects:
+ 1. The state change callback in app_queue is not executed when
+ there are no members referring to the extension.
+ 2. The callback is called multiple times for the same hint if it's
+ associated with more than one queue member.
+
+ Reported by: Steven T. Wheeler
+
+ ASTERISK-18411 #close
+
+ Change-Id: I4956af2136ea2a7f110ac9272eae5f6e676d8f89
+
+2017-12-12 15:28 +0000 [e1a358a6e4] Sean Bright <sean.bright@gmail.com>
+
+ * chan_sip: Don't send trailing \0 on keep alive packets
+
+ This is a partial fix for ASTERISK~25817 but does not address the
+ comments regarding RFC 5626.
+
+ Change-Id: I227e2d10c0035bbfa1c6e46ae2318fd1122d8420
+
+2017-12-12 15:19 +0000 [ce2c89ce68] Sean Bright <sean.bright@gmail.com>
+
+ * chan_sip: Don't crash in Dial on invalid destination
+
+ Stripping the DNID in a SIP dial string can result in attempting to call
+ the argument parsing macros on an empty string, causing a crash.
+
+ ASTERISK-26131 #close
+ Reported by: Dwayne Hubbard
+ Patches:
+ dw-asterisk-master-dnid-crash.patch (license #6257) patch
+ uploaded by Dwayne Hubbard
+
+ Change-Id: Ib84c1f740a9ec0539d582b09d847fc85ddca1c5e
+
+2017-12-12 15:16 +0000 [6632f61153] Corey Farrell <git@cfware.com>
+
+ * menuselect: Tweak check for recently run configure.
+
+ Recently menuselect has randomly produced an error stating that
+ configure was just run and make had to be restarted. I believe this is
+ due to an incorrect menuselect/Makefile rule. The original rule
+ produced an error if makeopts or autoconfig.h were older than
+ makeopts.in or autoconfig.h.in. I believe this can create an issue if
+ makeopts is older than autoconfig.h.in or if autoconfig.h is older than
+ makeopts.in. The new rules compare files independently.
+
+ Change-Id: Ibca155035fa1392c95e33cbf25f257902abba17b
+
+2017-12-07 17:51 +0000 [73b3390dbe] Richard Mudgett <rmudgett@digium.com>
+
+ * chan_pjsip/res_pjsip: Add CHANNEL(pjsip,request_uri)
+
+ This patch does three things associated with the initial incoming INVITE
+ request URI.
+
+ 1) Add access to the full initial incoming INVITE request URI.
+
+ 2) We were not setting DNID on incoming PJSIP channels. The DNID is the
+ user portion of the initial incoming INVITE Request-URI. The value is
+ accessed by reading CALLERID(dnid).
+
+ 3) Fix CHANNEL(pjsip,target_uri) documentation.
+
+ * The initial incoming INVITE request URI is now available using
+ CHANNEL(pjsip,request_uri).
+
+ * Set the DNID on PJSIP channel creation so CALLERID(dnid) can return the
+ initial incoming INVITE request URI user portion.
+
+ * CHANNEL(pjsip,target_uri) now correctly documents that the target URI is
+ the contact URI.
+
+ * Refactored print_escaped_uri() out of channel_read_pjsip() to handle
+ pjsip_uri_print() error condition when the buffer is too small.
+
+ ASTERISK-27478
+
+ Change-Id: I512e60d1f162395c946451becb37af3333337b33
+
+2017-12-12 09:28 +0000 [ca448bf150] Sean Bright <sean.bright@gmail.com>
+
+ * res_pjsip: Add TLSv1.1 and TLSv1.2 support
+
+ Support for these protocols was added in the same commit as the 'proto'
+ field, so we can safely use the same ./configure check.
+
+ For reference: https://trac.pjsip.org/repos/changeset/4968
+
+ Change-Id: Icf4975d785d6bfb8f30ac7ffa695a0adf9382dac
+
+2017-12-12 08:06 +0000 [d9b932a455] Sean Bright <sean.bright@gmail.com>
+
+ * res_pjsip: Assign support levels to a few modules
+
+ Change-Id: I51f6945c4023cb93fc7b87be5ab4c50e9e6ee27d
+
+2017-12-09 00:35 +0000 [4decf4e492] Corey Farrell <git@cfware.com>
+
+ * CLI: Fix 'core show sysinfo' function ordering.
+
+ Handle CLI initialization before any processing occurs.
+
+ Change-Id: I598b911d2e409214bbdfd0ba0882be1d602d221c
+
+2017-12-08 12:04 +0000 [28eddc7ea6] Richard Mudgett <rmudgett@digium.com>
+
+ * stasis_channels.c: Don't set channel snapshot caller_dnid twice.
+
+ Change-Id: Ib8d45bbdfbda81e65045f6dff874d189b74e5471
+
+2017-12-11 09:45 +0000 [028f4320de] Sean Bright <sean.bright@gmail.com>
+
+ * codec_opus: Make libcurl a dependency in menuselect
+
+ ASTERISK-27475 #close
+
+ Change-Id: If7384bc6ed002ef140dec69798d14c52b7cfd800
+
+2017-12-08 12:48 +0000 [4838557132] Sean Bright <sean.bright@gmail.com>
+
+ * pjsip: Improve CLI completion performance
+
+ Use the new ast_cli_completion_add() function to improve completion
+ performance for commands like 'pjsip show endpoint.'
+
+ Change-Id: I76d802294d2ac1766110dc75f7d117c8541ce348
+
+2017-12-07 14:19 +0000 [a4b291029f] Sean Bright <sean.bright@gmail.com>
+
+ * astdb: Improve prefix searches in astdb
+
+ Using the LIKE operator requires a full table scan of 'astdb', whereas a
+ comparison operation is able to use the primary key index.
+
+ This patch adds a new function to the AstDB API for quick prefix matches
+ and updates res_sorcery_astdb to utilize it. This showed substantial
+ performance improvement in my test environment.
+
+ Related to ASTERISK~26806, but does not completely resolve it.
+
+ Change-Id: I7d37f9ba2aea139dabf2ca72d31fbe34bd9b2fa1
+
+2017-12-08 18:19 +0000 [9fc4f10e0e] Corey Farrell <git@cfware.com>
+
+ * loader: Refactor resource_name_match.
+
+ Optimize resource_name_match. This change eliminates use of
+ ast_strdupa, instead verifying that both basename's are the same length,
+ then using strncasecmp.
+
+ Change-Id: I477275c0e954c99d74be5abfc8bb6545b04e5a3d
+
+2017-12-08 14:58 +0000 [c3bc44fa1b] Sean Bright <sean.bright@gmail.com>
+
+ * pjsip_configuration: Add correct file header
+
+ Change-Id: I25348c386a222bb704aff07f54375108a6402906
+
+2017-12-07 09:52 +0000 [f726f11974] Sean Bright <sean.bright@gmail.com>
+
+ * utils: Add convenience function for setting fd flags
+
+ There are many places in the code base where we ignore the return value
+ of fcntl() when getting/setting file descriptior flags. This patch
+ introduces a convenience function that allows setting or clearing file
+ descriptor flags and will also log an error on failure for later
+ analysis.
+
+ Change-Id: I8b81901e1b1bd537ca632567cdb408931c6eded7
+
+2017-12-07 19:41 +0000 [3d79c34350] Corey Farrell <git@cfware.com>
+
+ * res_stasis and res_speech: Fix load order.
+
+ res_stasis was missing AST_MODFLAG_LOAD_ORDER. Set res_stasis and
+ res_speech to start at (AST_MODPRI_APP_DEPEND - 1) so they are ready for
+ dependent modules.
+
+ Change-Id: I27f4f3810a95b6be8a5bfbf62be2ace6bfab6ff3
+
+2017-12-07 18:22 +0000 [ecdccb8071] Kevin Harwell <kharwell@digium.com>
+
+ * pjsip_options: contacts sometimes not being updated on reload
+
+ For both dynamic and static contacts it was possible that potential AOR
+ changes were not being applied to all contacts. This was because the qualify
+ and schedule code was only retrieving AOR's, and contacts with frequencies
+ greater than zero.
+
+ For instance the following could happen: and AOR/contact has a frequency of 5,
+ it then gets set to 0, and then a reload occurs. All scheduled OPTIONS are
+ stopped, a list of AOR's is retrieved with frequency > 0, but none are
+ selected since in this scenario all are 0. The contact for the one previously
+ set to 5 though does not get updated, so it's status remains "AVAILABLE".
+
+ This patch makes it so all contacts (static and dynamic) are selected, and
+ appropriately updated if need be.
+
+ ASTERISK-27467 #close
+
+ Change-Id: I7a920170f89c683af9505d4723a44fc6841decdb
+
+2017-12-07 18:18 +0000 [f20ab2b65f] Kevin Harwell <kharwell@digium.com>
+
+ * pjsip_options: dynamic contact's fields not updated on reload
+
+ Dynamic contacts were not being properly updated on reload. As a matter of
+ fact any changes to the AOR that a dynamic contact was associated with were
+ not being applied.
+
+ On reload, this patch makes it so for each dynamic contact, the associated
+ AOR is now retrieved and the AOR's fields are applied to the contact.
+
+ ASTERISK-27467
+
+ Change-Id: I8e3165dc6a745218c1c9db837f77fafa0516985d
+
+2017-12-07 10:35 +0000 [5a0dcd9275] Corey Farrell <git@cfware.com>
+
+ * CLI: Fix remote console completion.
+
+ Duplicate checking was done incorrectly when parsing completion options
+ from a remote console causing all options to be ignored as duplicates.
+ Once fixed I had to separate processing of the best match to ensure it
+ was not identified as a duplicate when it is the only match.
+
+ ASTERISK-27465
+
+ Change-Id: Ibbdb29f88211742071836c9b3f4d2aa1221cd0f9
+
+2017-12-06 23:35 +0000 [2691ee68ce] Corey Farrell <git@cfware.com>
+
+ * translate: Skip matrix_rebuild during shutdown.
+
+ Change-Id: I1e5eef4029cba56e33d786c5a5ade8091e531a1e
+
+2017-12-06 14:49 +0000 [db6602f6f7] Corey Farrell <git@cfware.com>
+
+ * sounds_index: Avoid repeatedly reindexing.
+
+ The sounds index is rebuilt each time a format is registered or
+ unregistered. This causes the index to be repeatedly rebuilt during
+ startup and shutdown.
+
+ This patch significantly reduces the work done by delaying sound index
+ initialization until after modules are loaded. This way a reindex only
+ occurs if a format module is loaded after startup. We also skip
+ reindexing when format modules are unloaded during shutdown.
+
+ Change-Id: I585fd6ee04200612ab1490dc804f76805f89cf0a
+
+2017-12-06 12:42 +0000 [289549d659] Corey Farrell <git@cfware.com>
+
+ * media_index: Improve startup.
+
+ This eliminates some wasteful operations in media_index startup.
+
+ * Replace statically set string-fields with char[0].
+ * Eliminate pointless RAII_VAR's.
+ * alloc_variant: Avoid pointless ao2_find on new info->variant.
+ * Stop trying find_variant before alloc_variant.
+ * process_media_file: replace ast_str with ast_asprintf. This avoids
+ reallocation of file_id_str.
+
+ Overall sounds_index.c is about 27% of Asterisk startup time when using
+ sample configs. This patch reduces it to 20%. This is a half-fix. The
+ real problem is that the media_index is regenerated repeatedly - 68
+ times in my test.
+
+ Change-Id: Ia50b752f8efb356f852b05c4be495a6631af8652
+
+2017-12-05 18:04 +0000 [f59a75c6fa] Richard Mudgett <rmudgett@digium.com>
+
+ * CDR: Fix deadlock setting some CDR values.
+
+ Setting channel variables with the AMI Originate action caused a deadlock
+ when you set CDR(amaflags) or CDR(accountcode). This path has the channel
+ locked when the CDR function is called. The CDR function then
+ synchronously passes the job to a stasis thread. The stasis handling
+ function then attempts to lock the channel. Deadlock results.
+
+ * Avoid deadlock by making the CDR function handle setting amaflags and
+ accountcode directly on the channel rather than passing it off to the CDR
+ processing code under a stasis thread to do it.
+
+ * Made the CHANNEL function and the CDR function process amaflags the same
+ way.
+
+ * Fixed referencing the wrong message type in cdr_prop_write().
+
+ ASTERISK-27460
+
+ Change-Id: I5eacb47586bc0b8f8ff76a19bd92d1dc38b75e8f
+
+2017-12-06 07:36 +0000 [93859f9aca] Richard Mudgett <rmudgett@digium.com>
+
+ * bridge_basic.c: Update transfer diagnostic messages addendum.
+
+ * Added start DTMF transfer verbose messages.
+ * Made associated transfer messages use a similar message format.
+ * Adjusted message verbose level as requested by initial reporter.
+
+ ASTERISK-27449
+
+ Change-Id: I2045714586414b3c5ef1f3cc56c1c4af4b31f551
+
+2017-11-29 06:21 +0000 [aacdbdcfd2] Niklas Larsson <niklas@tese.se>
+
+ * bridge_basic.c: Update transfer diagnostic messages.
+
+ * Add the channel name to diagnostic messages so you will know which
+ channel failed to transfer.
+
+ * Promoted some debug messages to verbose 4 messages.
+
+ ASTERISK-27449 #close
+
+ Change-Id: Idac66b7628c99379cc9269158377fd87dc97a880
+
+2017-12-01 13:54 +0000 [594faa192d] Richard Mudgett <rmudgett@digium.com>
+
+ * security-events: Fix SuccessfulAuth using_password declaration.
+
+ The SuccessfulAuth using_password field was declared as a pointer to a
+ uint32_t when the field was later read as a uint32_t value. This resulted
+ in unnecessary casts and a non-portable field value reinterpret in
+ main/security_events.c:add_json_object(). i.e., It would work on a 32 bit
+ architecture but not on a 64 bit big endian architecture.
+
+ Change-Id: Ia08bc797613a62f07e5473425f9ccd8d77c80935
+
+2017-12-04 03:40 +0000 [e7201c93cc] Sungtae Kim <pchero21@gmail.com>
+
+ * Add new object for VoicemailUserEntry
+
+ Currently, when the app_voicemail sending VoicemailUserEntry AMI event, there's
+ no OldMessageCount info for default.
+ To check the OldMessageCount info, it required IMAP_STORAGE define, but this is
+ not correct.
+ Added OldMessageCount item as a default.
+
+ ASTERISK-27456
+
+ Change-Id: I5c71521c2d1daf8b7b161e31c34d28cca6aea4c7
+
+2017-11-30 12:50 +0000 [9330eacc50] Richard Mudgett <rmudgett@digium.com>
+
+ * res_rtp_asterisk.c: Increase strictrtp learning timeout time.
+
+ More complicated direct media reinvite negotiations can result in longer
+ delays before direct media flows. The strictrtp learning timeout time
+ was too short. One log showed that the first RTP packet came in just
+ after three seconds.
+
+ * Increase the strictrtp learning timeout time from 1.5 to 5 seconds.
+
+ ASTERISK-27453
+
+ Change-Id: Ic5e711164cbb91b4d1c1e40c83697755640f138c
+
+2017-12-04 08:33 +0000 [e819cf7826] Alexander Traud <pabstraud@compuserve.com>
+
+ * res_rtp_asterisk: Correct default in sample configuration file.
+
+ With Asterisk 12 (commit 866d968), the default of "icesupport" changed to
+ - "yes" in the module "res_rtp_asterisk" and
+ - "no" in the module "chan_sip".
+ The latter was reflected in the sample configuration file for "sip.conf". The
+ former did not make it into "rtp.conf.sample".
+
+ ASTERISK-20643
+
+ Change-Id: I2a2e0a900455d0767a99ea576e30adc6d7608a36
+
+2017-12-03 18:49 +0000 [41c14fd807] Joshua Colp <jcolp@digium.com>
+
+ * pjproject: Clean up disabling of WebRTC support.
+
+ The definition in config_site.h and the argument to the
+ configure script are not necessary to disable WebRTC
+ support. The correct argument, --disable-libwebrtc, is
+ already passed.
+
+ ASTERISK-26980
+
+ Change-Id: I27da2c894f87914956a72710222e17462d8a44bc
+
+2017-12-02 15:55 +0000 [f5cfd87c4a] Corey Farrell <git@cfware.com>
+
+ * autoconf: Remove use of m4_ifblank.
+
+ The m4_ifblank macro is not available on CentOS 6, reverse conditionals
+ to allow use of m4_ifval instead. ./bootstrap.sh was run but this patch
+ does not result in any difference to the generated configure script.
+
+ Change-Id: I280785deb872ed8d3339d99cce63a2b54d5f1438
+
+2017-12-01 16:18 +0000 [ef25628b10] Corey Farrell <git@cfware.com>
+
+ * README-SERIOUSLY.bestpractices.txt: Convert to markdown
+
+ Follow-up to conversion of README.md.
+
+ Change-Id: I17ee7cf25bc027ece844efa2c1dfe613aff1e35b
+
+2017-11-30 14:38 +0000 [0cdd31ee10] George Joseph <gjoseph@digium.com>
+
+ * AST-2017-013: chan_skinny: Call pthread_detach when sess threads end
+
+ chan_skinny creates a new thread for each new session. In trying
+ to be a good cleanup citizen, the threads are joinable and the
+ unload_module function does a pthread_cancel() and a pthread_join()
+ on any sessions that are active at that time. This has an
+ unintended side effect though. Since you can call pthread_join on a
+ thread that's already terminated, pthreads keeps the thread's
+ storage around until you explicitly call pthread_join (or
+ pthread_detach()). Since only the module_unload function was
+ calling pthread_join, and even then only on the ones active at the
+ tme, the storage for every thread/session ever created sticks
+ around until asterisk exits.
+
+ * A thread can detach itself so the session_destroy() function
+ now calls pthread_detach() just before it frees the session
+ memory allocation. The module_unload function still takes care
+ of the ones that are still active should the module be unloaded.
+
+ ASTERISK-27452
+ Reported by: Juan Sacco
+
+ Change-Id: I9af7268eba14bf76960566f891320f97b974e6dd
+
+2017-12-01 10:01 +0000 [6635ddc819] Sean Bright <sean.bright@gmail.com>
+
+ * config: Speed up config template lookup
+
+ ast_category_get() has an (undocumented) implementation detail where it
+ tries to match the category name first by an explicit pointer comparison
+ and if that fails falls back to a normal match.
+
+ When initially building an ast_config during ast_config_load, this
+ pointer comparison can never succeed, but we will end up iterating all
+ categories twice. As the number of categories using a template
+ increases, this dual looping becomes quite expensive. So we pass a flag
+ to category_get_sep() indicating if a pointer match is even possible
+ before trying to do so, saving us a full pass over the list of current
+ categories.
+
+ In my tests, loading a file with 3 template categories and 12000
+ additional categories that use those 3 templates (this file configures
+ 4000 PJSIP endpoints with AOR & Auth) takes 1.2 seconds. After this
+ change, that drops to 22ms.
+
+ Change-Id: I59b95f288e11eb6bb34f31ce4cc772136b275e4a
+
+2017-12-01 08:29 +0000 [077ceacd48] Sean Bright <sean.bright@gmail.com>
+
+ * config: Speed up ACO & sorcery initialization
+
+ When starting Asterisk in the foreground, there is a perceptible delay
+ when loading modules that use the ACO and sorcery config frameworks.
+ For example, a lightly configured res_pjsip took 853ms to load on my
+ VM.
+
+ I tracked down the slowness to the XPath queries used to associate the
+ relevant documentation with the config options. One improvement was
+ adding a call to xmlXPathOrderDocElems after loading an XML document.
+ From the libxml2 docs:
+
+ Call this routine to speed up XPath computation on static documents.
+
+ The second change was to remove recursive descent and wildcard
+ operators from the XPath queries. After these changes, res_pjsip takes
+ 85ms to load on my VM and there is no longer a perceptible delay when
+ starting Asterisk in the foreground.
+
+ Change-Id: I45d457f1580e26bf5a2b0dab16e8e9ae46dcbd82
+
+2017-12-01 06:07 +0000 [dac70daf1b] Joshua Colp <jcolp@digium.com>
+
+ * res_http_post: Not all versions of gmime have GMIME_MAJOR_VERSION.
+
+ This change makes the presence of the GMIME_MAJOR_VERSION
+ definition optional, as not all versions of gmime actually
+ define it.
+
+ ASTERISK-27454
+
+ Change-Id: I01d99590045971ed6787899147170a5954077238
+
+2017-11-17 10:38 +0000 [6274e58a25] Corey Farrell <git@cfware.com>
+
+ * autoconf: Use m4 conditionals where possible.
+
+ Change-Id: I530c0a72f965437acef6a9a4fbfe5c487f078b65
+
+2017-11-17 09:15 +0000 [635fe8ec87] Corey Farrell <git@cfware.com>
+
+ * autoconf: Fix call to AC_CONFIG_AUX_DIR.
+
+ The `pwd` parameter to AC_CONFIG_AUX_DIR is unnecessary, the default
+ value is $srcdir.
+
+ Additionally remove the AC_REVISION call. It only added a comment and
+ is pointless without SVN tag replacements.
+
+ Change-Id: I99299a3217f095bddcb2edefb3b9af0ab147bc29
+
+2017-11-26 11:47 +0000 [c46cab49a3] Alexander Traud <pabstraud@compuserve.com>
+
+ * translate: Transcode siren14, speex32, silk24, and silk12 via slin16.
+
+ When a format has no pre-recorded sound files, Asterisk has to transcode between
+ formats. For this, Asterisk has a fixed translation table. If the pre-recorded
+ sound files are not available in the same sample rate, Asterisk has not only to
+ transcode but also to resample.
+
+ Asterisk has pre-recorded files for SLN (8000 kHz) and SLN16 (16000 kHz).
+ However before this change, Asterisk did not take the sample rate into account,
+ because the translation paths to SLN and SLN16 got the same score/weight in the
+ table. Consequently, you might have got narrow-band audio with siren14, speex32,
+ silk24, and silk12 although those are (ultra) wide-band audio codecs.
+
+ With this change, the distance in sample-rates is taken into account. Now on the
+ Command-Line interface (CLI) 'core show channels', you should see:
+ (slin@16000)->(slin@32000)->(speex@32000).
+
+ ASTERISK-23735
+ Reported by: Richard Kenner
+
+ Change-Id: I9448295c1978be26f8633b6066395e7bbbe2e213
+
+2017-11-26 09:44 +0000 [81e2d8aa9a] Richard Mudgett <rmudgett@digium.com>
+
+ * res_ari: Fix inverted test giving wrong error message.
+
+ The patch for ASTERISK_24560 inverted a test checking if the bridge name
+ is being updated to a different name.
+
+ * Fix the test to return "Changing bridge name is not implemented" when
+ someone attempts to change the bridge name.
+
+ ASTERISK-27445
+
+ Change-Id: I4b70bf08b0e02e016108b077ff75b345dec12fc9
+
+2017-11-25 04:09 +0000 [0f719aa051] Alexander Traud <pabstraud@compuserve.com>
+
+ * translate: Show sample rate for silk, speex, and slin in translation table.
+
+ ASTERISK-24662
+
+ Change-Id: I3822956984292c99c48bca8e97807e498ccc0e88
+
+2017-11-23 13:27 +0000 [8dd9a79e6e] Richard Mudgett <rmudgett@digium.com>
+
+ * features.conf.sample: Clarify ActivatedBy documentation wording.
+
+ Change-Id: Id2899331fe05d1909a862ea879742879d086bc64
+
+2017-11-22 18:37 +0000 [a78d747ee8] Corey Farrell <git@cfware.com>
+
+ * Add defaultbranch to .gitreview.
+
+ This will cause `git review` to post changes to the branch it is based
+ on instead of always using master. The defaultbranch setting should be
+ updated when new major branches are created.
+
+ Change-Id: I3db009217c5ae399fb84bee95076f4dbb7fa52d2
+
+2017-11-22 18:43 +0000 [d6568aa72a] Alexander Anikin <may213@yandex.ru>
+
+ * add cmd connection creation on creation ooh323 call data structure
+
+ ASTERISK-27353 #close
+
+ Reported by: Marco Giordani
+
+ Change-Id: I455096bd7da016b871afe09af86067c2c7c9f33f
+
+2017-11-22 10:42 +0000 [5abab0a34c] Kevin Harwell <kharwell@digium.com>
+
+ * pjsip: 183 without To tag does not negotiate media
+
+ If a 183 with sdp response is receive without a To tag the sdp is not
+ negotiated. According to RFC 3261 section 12.1.2 while a To tag is required,
+ the client needs to still be able to handle the missing tag case for
+ backwards compatibility.
+
+ This patch, accepted by and applied to pjproject, makes it so if an incoming
+ 180/183 with SDP comes in without a To tag it gets appropriately handled.
+
+ ASTERISK-27442 #close
+
+ Change-Id: Ic9d6b01e05e8f4874eebbd7adfe05d932025d203
+
+2017-11-21 06:39 +0000 [6ebe03d4b3] Alexander Traud <pabstraud@compuserve.com>
+
+ * res_rtp_asterisk: ICE server-reflexive candidates (srflx) with Dual-Stack.
+
+ Previously, Asterisk sent srflx only when configured exclusively for IPv4. Now,
+ srflx is gathered and sent via SDP, even when Asterisk is enabled for
+ Dual Stack (IPv4+IPv6) and an IPv4 interface is available/used.
+
+ ASTERISK-27437
+
+ Change-Id: Ie07d8e2bfa7b6fe06fcdc73d390a7a9a4d8c0bc1
+
+2017-11-20 13:05 +0000 [2bff38b8a8] Corey Farrell <git@cfware.com>
+
+ * res_parking: Make load_pri explicit.
+
+ res_parking has an implicit load_pri of 0 meaining it's one of the very
+ first modules loaded after modules with global symbols. Set it
+ explicitly in the AST_MODULE_INFO block.
+
+ Change-Id: I297b6fb3ff6993ec004e667b22a74f5925906259
+
+2017-11-21 09:16 +0000 [c6e1e6e968] Corey Farrell <git@cfware.com>
+
+ * README: Convert to README.md.
+
+ Convert the README file to markdown format, remove the old README. This
+ causes websites like github to display the README in a much nicer
+ format with live links. The raw file is still very readable from
+ plain text editors and terminals.
+
+ Change-Id: I7d13131764a9a9026e5f8a6ddb245a01bbd788e7
+
+2017-11-20 16:48 +0000 [e9ba6a6b88] Corey Farrell <git@cfware.com>
+
+ * CLI: Finish conversion of completion handling to vectors.
+
+ Change-Id: Ib81318f4ee52a5e73b003316e13fe9be1dd897a1
+
+2017-11-07 15:34 +0000 [26a400c67a] Corey Farrell <git@cfware.com>
+
+ * CLI: Refactor cli_complete.
+
+ * Stop using "_COMMAND NUMMATCHES" on remote consoles. Using this
+ command had doubled the amount of work needed from the Asterisk
+ daemon for each completion request.
+ * Fix code formatting.
+ * Remove static buffer used to send the command, use the same buffer
+ that will receive the results.
+ * Move sort from ast_cli_display_match_list.
+
+ Change-Id: Ie2211b519a3d4bec45bf46e0095bdd01d384cb69
+
+2017-11-07 14:13 +0000 [e723331f4f] Corey Farrell <git@cfware.com>
+
+ * CLI: Rewrite ast_el_strtoarr to use vector's internally.
+
+ This rewrites ast_el_strtoarr to use vector's internally, but still
+ return the original NULL terminated array of strings.
+
+ Change-Id: Ibfe776cbe14f750effa9ca360930acaccc02e957
+
+2017-11-07 14:47 +0000 [e07d94111d] Corey Farrell <git@cfware.com>
+
+ * CLI: Refactor ast_cli_display_match_list.
+
+ * Stop estimating line count, just print until we run out of matches.
+ * Stop freeing entries, the caller does that anyways.
+ * Stop calculating / returning numoutput, it was ignored.
+
+ Change-Id: I7f92afa8bea92241a95227587367424c8c32a5cb
+
+2017-11-08 23:42 +0000 [8a63f4e709] Corey Farrell <git@cfware.com>
+
+ * CLI: Create ast_cli_completion_add function.
+
+ Some completion generators are very inefficent due to the way CLI
+ requests matches one at a time. ast_cli_completion_add can be called
+ multiple times during one invokation of a CLI generator to add all
+ results without having to reinitialize the search state for each match.
+
+ Change-Id: I73d26d270bbbe1e3e6390799cfc1b639e39cceec
+
+2017-11-09 00:39 +0000 [115f53a0fb] Corey Farrell <git@cfware.com>
+
+ * CLI: Remove calls to ast_cli_generator.
+
+ The ability to add to localized storage cannot be supported by
+ ast_cli_generator. The only calls to ast_cli_generator should be by
+ functions that need to proxy the CLI generator, for example 'cli check
+ permissions' or 'core show help'.
+
+ * ast_cli_generatornummatches now retrieves the vector of matches and
+ reports the number of elements (not including 'best' match).
+ * test_substitution retrieves and iterates the vector.
+
+ Change-Id: I8cd6b93905363cf7a33a2d2b0e2a8f8446d9f248
+
+2017-11-20 09:13 +0000 [41498dcb5d] Alexander Traud <pabstraud@compuserve.com>
+
+ * chan_sip: ICE contained square brackets around IPv6 addresses.
+
+ ASTERISK-27434
+
+ Change-Id: Iaeed89b4fa05d94c5f0ec2d3b7cd6e93d2d5a8f7
+
+2017-11-19 21:23 +0000 [84fd41729e] Corey Farrell <git@cfware.com>
+
+ * loader: Fix comments in struct ast_module.
+
+ Make the comments follow doxygen format, move comments to the line
+ before each field they describe.
+
+ Change-Id: Ic445468398b5e88f13910f7c2f70bd15aad33a27
+
+2017-11-16 17:25 +0000 [df6161b70e] Corey Farrell <git@cfware.com>
+
+ * cli: Remove silly usage of RAII_VAR.
+
+ Change-Id: I81aacfee7cd26e4fc5eef07bca582700c2975bd7
+
+2017-11-16 13:19 +0000 [1e2b38adf5] Corey Farrell <git@cfware.com>
+
+ * ccss: Remove silly usage of RAII_VAR.
+
+ Change-Id: I5ce40035e0a940e4e56f6322c1dcd47fbd509b98
+
+2017-11-16 12:51 +0000 [ddc86ec664] Corey Farrell <git@cfware.com>
+
+ * app: Remove silly usage of RAII_VAR.
+
+ Change-Id: Ideb594f7aae134974fb78d5477ba0853b97b8625
+
+2017-11-16 12:19 +0000 [0e90d74604] Corey Farrell <git@cfware.com>
+
+ * aoc: Remove silly usage of RAII_VAR.
+
+ Change-Id: I07907f833b81aeb0128bc9442a2abb52679c7511
+
+2017-11-16 12:55 +0000 [746dd80eab] Corey Farrell <git@cfware.com>
+
+ * abstract_jb: Remove silly usage of RAII_VAR.
+
+ Change-Id: I9d56175369363d1dc735504cf78a3a5577069f49
+
+2017-11-20 12:54 +0000 [8971a7ff3c] Corey Farrell <git@cfware.com>
+
+ * Loader: Remove unneeded load_pri declarations.
+
+ Instead of specifying AST_MODFLAG_LOAD_ORDER with load_pri
+ AST_MODPRI_DEFAULT just use AST_MODFLAG_DEFAULT.
+
+ Change-Id: I0123258eafce324249433a69df15a85cc16e509f
+
+2017-11-20 13:08 +0000 [9d688cf12c] Corey Farrell <git@cfware.com>
+
+ * res_mwi_external_ami: Remove incorrect load priority.
+
+ res_mwi_external_ami specified AST_MODFLAG_LOAD_ORDER but didn't set
+ load_pri, resulting in an actual load priority of 0. This module only
+ provides AMI actions so it has no reason to load early.
+
+ Change-Id: I82987fcf10d3ea42716b2f9df915b16687fd5839
+
+2017-11-20 09:49 +0000 [50cb5199c1] Alexander Traud <pabstraud@compuserve.com>
+
+ * BuildSystem: pjsip_evsub_set_uas_timeout was not used.
+
+ ASTERISK-27435
+
+ Change-Id: Id318a7ae6d7d69b53f911d30bf3eece64852f15c
+
+2017-11-19 13:52 +0000 [6a5ab65c88] Corey Farrell <git@cfware.com>
+
+ * Build: Fix issues building without SSL.
+
+ * Fix conditional in libasteriskssl.
+ * Use variables produced by configure to link the SSL and uuid libraries
+ into libasteriskpj.so instead of hard-coding them.
+
+ ASTERISK-27431
+
+ Change-Id: I3977931fd3ef8c4e4376349ccddb354eb839b58d
+
+2017-11-19 13:28 +0000 [366cc259bc] Corey Farrell <git@cfware.com>
+
+ * res_pjsip: Fix warning by deferring implicit type cast.
+
+ Mac doesn't like the comparison of -1 to an enum, so store the result of
+ ast_sip_str_to_dtmf to an int so we can check for the negative return
+ value. ast_sip_str_to_dtmf returns an int so this is only delaying the
+ implicit type cast.
+
+ Change-Id: I0c262c1719ee951aae1f437d733a301cf5f8ad29
+
+2017-11-19 09:57 +0000 [69113388e9] Corey Farrell <git@cfware.com>
+
+ * Build: Fix OSX build issues.
+
+ OSX does not support 'readlink -f' or 'sed -r'. Replace readlink with
+ the GNU make macro 'realpath'. Replace sed with grep in one place, cut
+ in the other.
+
+ ASTERISK-27332
+
+ Change-Id: I5d34ecca905384decb22ead45c913ae5e8aff748
+
+2017-11-18 21:13 +0000 [5fe2e7bfdc] Corey Farrell <git@cfware.com>
+
+ * tests: Fix warnings found on Mac.
+
+ test_pbx used raise without explicitly including signal.h. On Mac for
+ some reason nothing else includes it.
+
+ test_logger checked if an unsigned int was negative. Switch the
+ variable to 'int' so that error check can be effective.
+
+ Change-Id: Ie1db5dd1818ac25cc2ae41b644f848b5865b1362
+
+2017-11-18 20:25 +0000 [d68e54b7ab] Corey Farrell <git@cfware.com>
+
+ * res_snmp: Declare RONLY if net-snmp headers do not.
+
+ Some net-snmp builds do not provide the RONLY declare, only
+ NETSNMP_OLDAPI_RONLY. Map RONLY to NETSNMP_OLDAPI_RONLY to get around
+ this error.
+
+ Change-Id: Ida5c7ad9406515825485c4d3b4a34fd6ad0da577
+
+2017-11-18 20:02 +0000 [0f270cbe9e] Corey Farrell <git@cfware.com>
+
+ * res_fax: Remove checks for unsigned values being >= 0.
+
+ It's impossible for gwtimeout or fdtimeout to be less than 0 because
+ they are unsigned int's. Remove checks and unreachable branches.
+
+ Change-Id: Ib2286960621e6ee245e40013c84986143302bc78
+
+2017-11-18 19:29 +0000 [3dca4c7742] Corey Farrell <git@cfware.com>
+
+ * app_minivm: Fix possible uninitialized return value.
+
+ Declare 'res' initialized to -1 to deal with earlier error paths that
+ could cause 'res' to be returned uninitialized.
+
+ Change-Id: I8ac2a5755bf4174d89ef893e924c940f702b104e
+
+2017-11-17 19:36 +0000 [5f0b4a1645] Corey Farrell <git@cfware.com>
+
+ * README: Send people to secure websites where available.
+
+ We should be sending people to secure web URL's where available.
+ Update README's and docs.
+
+ Change-Id: Id5b1e049b0b18b49a784f1254605aefa244ce19a
+
+2017-11-17 19:54 +0000 [a369bfc4b2] Corey Farrell <git@cfware.com>
+
+ * doxygen: Remove obsolete contents.
+
+ Remove doxygen contents that have nothing to do with the current state
+ of Asterisk.
+
+ Change-Id: Ic072cc8641f9533a202990ccf275ce87e3efd95c
+
+2017-11-16 02:47 +0000 [6b0963c42a] Pirmin Walthert <infos@nappsoft.ch>
+
+ * res_rtp_asterisk.c: Fix rtp source address learning for broken clients
+
+ Some clients do not send rtp packets every ptime ms. This can lead to
+ situations in which the rtp source learning algorithm will never learn
+ the address of the client. This has been discovered on a Mac mini with
+ a pjsip based softphone after updating to Sierra: as soon as USB
+ headsets are involved, the softphone will send the second packet 30ms
+ after the first, the third 30ms after the second and the fourth 1ms
+ after the third. So in the old implmentation the rtp source learning
+ algorithm was repeatedly reset on the fourth packet.
+
+ The patch changes the algorithm in a way that doesn't take the arrival
+ time between two consecutive packets into account but the time between
+ the first and the last packet of a learning sequence.
+
+ The patch also fixes a second problem: when a user was using a wrong
+ value for the probation setting there was a LOG_WARNING output stating
+ that the value had been set to the default value instead. However
+ the code for setting the value back to defaults was missing.
+
+ ASTERISK-27421 #close
+
+ Change-Id: If778fe07678a6fd2041eaca7cd78267d0ef4fc6c
+
+2017-11-17 09:57 +0000 [3c72064d3f] Sean Bright <sean.bright@gmail.com>
+
+ * res_pjsip: Use reasonable buffer lengths for endpoint identification
+
+ Domains themselves can be up to 255 characters long (per RFC 1035), so
+ our current buffer sizes are wholly inadequate for many use cases.
+
+ Change-Id: If3f30a68307f1365a1fe06bc4b854c62842c9292
+
+2017-11-11 10:09 +0000 [455b1bdeb0] Corey Farrell <git@cfware.com>
+
+ * menuselect: Remove ineffective weak attribute detection.
+
+ menuselect detects compiler support for multiple styles of weak
+ functions. This is a remnant from 2013 when OPTIONAL_API required weak
+ functions. It is no longer correct for menuselect to switch
+ dependencies from optional to required based on lack of weak function
+ support.
+
+ Note an issue remains - dependencies should switch from optional to
+ required based on OPTIONAL_API being enabled or disabled. I don't think
+ this is possible. menuselect needs to know at startup if OPTIONAL_API
+ is enabled or disabled, so the only way to fix this is to remove
+ OPTIONAL_API from menuselect and create a configure option. I've left
+ the code that switches in place but it's preprocessed out.
+
+ Additionally removed:
+ - WEAKREF variable from Asterisk makeopts.in.
+ - Related disabled code from test_utils.
+ - Pointless AC_REVISION call from menuselect/configure.ac.
+
+ Change-Id: Ifa702e5f98eb45f338b2f131a93354632a8fb389
+
+2017-11-16 09:48 +0000 [549542e50e] Corey Farrell <git@cfware.com>
+
+ * acl: Fix allocation related issues.
+
+ Add checks for allocation errors, cleanup and report failure when they
+ occur.
+
+ * ast_duplicate_acl_list: Replace log warnings with errors, add missing
+ line-feed.
+ * ast_append_acl: Add missing line-feed to logger message.
+ * ast_append_ha: Avoid ast_strdupa in loop by moving debug message to
+ separate function.
+ * ast_ha_join: Use two separate calls to ast_str_append to avoid using
+ ast_strdupa in a loop.
+
+ Change-Id: Ia19eaaeb0b139ff7ce7b971c7550e85c8b78ab76
+
+2017-11-16 11:02 +0000 [2852dac480] Corey Farrell <git@cfware.com>
+
+ * acl: Update logger message to match 15+.
+
+ This patch causes a logger message to be the same as it is in 15+. This
+ will allow a follow-up patch to be cherry-picked to all 3 branches.
+
+ Change-Id: Ic0665a3d49987e4eb6df28dcd9e90b1c3ca191e0
+
+2017-11-07 17:07 +0000 [0b8b153d3c] Corey Farrell <git@cfware.com>
+
+ * CLI: Create ast_cli_completion_vector.
+
+ This is a rewrite of ast_cli_completion_matches using a vector to build
+ the list. The original function calls the vector version, NULL
+ terminates the vector and extracts the elements array.
+
+ One change in behavior the results are now sorted and deduplicated. This
+ will solve bugs where some duplicate checking was done before the list
+ was sorted.
+
+ Change-Id: Iede20c5b4d965fa5ec71fda136ce9425eeb69519
+
+2017-11-16 09:04 +0000 [0a7bbb068b] Joshua Colp <jcolp@digium.com>
+
+ * bridge_basic: Ignore answer from transfer target when they've timed out.
+
+ This is a fun one.
+
+ Given the following attended transfer scenario:
+
+ 1. Transfer target is called
+ 2. Transferer hangs up
+ 3. Transfer target call attempt reaches timeout
+ 4. Transfer target is told to hang up
+ 5. Transfer target answers before channel is hung up
+ 6. Transferer recall target is called
+
+ A crash would occur. This is because the transfer target call
+ attempt, despite being told to hang up, would raise a recall
+ target answer before the recall target had been answered. As it
+ had not answered there would be no recall target channel and it
+ would implode.
+
+ This change makes it so that if the transfer target has been
+ hung up we don't tell the attended transfer code that it has
+ answered. We also clear out the stimulus that the recall target
+ has been answered after telling the transfer target to hang up,
+ in case it was able to raise the information before we told it
+ to hangup.
+
+ ASTERISK-27361
+
+ Change-Id: Ifb8b255a9c4d2c5c1b8ad77bf54f659ed286df99
+
+2017-11-16 19:39 +0000 [69055724ce] Corey Farrell <git@cfware.com>
+
+ * aoc: Fix memory management issues.
+
+ aoc_publish_blob failed to check for msg allocation error and never
+ released msg.
+
+ Change-Id: Ib31a9ffb81056a0d496a49d7eec795005a44bcd5
+
+2017-11-16 16:18 +0000 [60cfe00c4e] Sean Bright <sean.bright@gmail.com>
+
+ * res_pjsip_transport_websocket: Give transport a meaningful description
+
+ We were not \0 terminating this string, so any attempt to print it would
+ in the best case show an empty string and in the worst case potentially
+ crash.
+
+ Change-Id: I63d96ef8f7516ac02a0f91e22dfa8acdc615042c
+
+2017-11-16 15:00 +0000 [db2677133c] Sean Bright <sean.bright@gmail.com>
+
+ * res_pjsip: Use sorcery prefix operation for contact lookup
+
+ This improves performance for registrations assuming that
+ res_config_astdb is not in use.
+
+ Change-Id: I86f37aa9ef07a4fe63448cb881bbadd996834bb1
+
+2017-11-09 19:58 +0000 [8a7dd5cc44] Richard Mudgett <rmudgett@digium.com>
+
+ * chan_pjsip.c: Improve answer failure log messages.
+
+ * Balanced the session->inv_session refs on answer failure.
+
+ Change-Id: I33542d639d37e692cb46550b972a5fcfc3b804b8
+
+2017-11-14 18:00 +0000 [7f916d621a] Richard Mudgett <rmudgett@digium.com>
+
+ * audiohook.c: Fix freeing a frame and still using it.
+
+ Memory corruption happened to the media frame caches when an audio hook
+ freed a frame when it shouldn't. I think the freed frame was because a
+ jitter buffer interpolated a missing frame and the audio hook
+ unconditionally freed it.
+
+ * Made audiohook.c:audio_audiohook_write_list() not free an interpolated
+ frame if it is the same frame as what was passed into the routine.
+
+ * Made plc.c:normalise_history() use memmove() instead of memcpy() on a
+ memory block that could overlap. Found by valgrind investigating this
+ issue.
+
+ ASTERISK-27238
+ ASTERISK-27412
+
+ Change-Id: I548d86894281fc4529aefeb9f161f2131ecc6fde
+
+2017-11-15 12:10 +0000 [7e874eae7a] George Joseph <gjoseph@digium.com>
+
+ * app_record: Don't set RECORD_STATUS chan var until file is closed
+
+ We've been calling pbx_builtin_setvar_helper to set the
+ RECORD_STATUS variable before actually closing the recorded file.
+ If a client is watching VarSet events and tries to do something with
+ the file when a RECORD_STATUS event is seen, they might attempt to
+ do so while the file it's still open.
+
+ We now delay calling pbx_builtin_setvar_helper until after we close
+ the file.
+
+ ASTERISK-27423
+
+ Change-Id: I7fe9de99953e46b4bafa2b38cf151fe8f6488254
+
+2017-11-07 08:25 +0000 [062a4390ac] George Joseph <gjoseph@digium.com>
+
+ * ast_coredumper: Add ability to use directory other than /tmp
+
+ The OUTPUTDIR environment variable can now be set either in the
+ environment itself or in ast_debug_tools.conf. If set, it's used
+ for all work products instead of /tmp.
+
+ Also added the --tarball-config option that includes the contents
+ of /etc/asterisk when either --tarball-coredumps or --tarball-results
+ are used.
+
+ Change-Id: I66b2553319df61caea5b313d084f51978f730b4c
+
+2017-11-13 07:14 +0000 [c2dddb001a] Joshua Colp <jcolp@digium.com>
+
+ * pjsip / hep: Provide correct local address for Websockets.
+
+ Previously for PJSIP the local address of WebSocket connections
+ was set to the remote address. For logging purposes this is
+ not particularly useful.
+
+ The WebSocket API has been extended to allow the local
+ address to be queried and this is used in PJSIP to set the
+ local address to the correct value.
+
+ The PJSIP HEP support has also been tweaked so that reliable
+ transports always use the local address on the transport
+ and do not try to (wrongly) guess. As they are connection
+ based it is impossible for the source to be anything else.
+
+ ASTERISK-26758
+ ASTERISK-27363
+
+ Change-Id: Icd305fd038ad755e2682ab2786e381f6bf29e8ca
+
+2017-11-13 17:47 +0000 [b8209a1273] Corey Farrell <git@cfware.com>
+
+ * alertpipe: Correct documented return of ast_alertpipe_write.
+
+ Change-Id: I4ea49c441890a81384144479dc93ab5a3989486d
+
+2017-11-13 16:20 +0000 [9c6d4ec022] Corey Farrell <git@cfware.com>
+
+ * core: Fix configuration of remote console socket path.
+
+ The remote console socket path is the combination of asterisk.conf
+ settings astrundir from [directories] and astctl from [files].
+ Unconditionally combine the two strings after processing all values
+ to ensure we end up with the correct socket path.
+
+ ASTERISK-27415
+
+ Change-Id: Ib1e2805d55d6b0955c6430a1a2a93acbf9b091e8
+
+2017-11-10 10:37 +0000 [b5f2779a23] George Joseph <gjoseph@digium.com>
+
+ * bundled_pjproject: sip_parser: Fix return code in pjsip_find_msg
+
+ The default return code for pjsip_find_msg was PJ_SUCCESS so if
+ a Content-Length header wasn't found at all, pjsip_find_msg was
+ returning PJ_SUCCESS instead of PJSIP_EMISSINGHDR.
+
+ Also added the volatile keyword to a few variables that are used
+ both inside and outside the PJ_TRY/PJ_CATCH block.
+
+ Partial fix for ASTERISK_27408
+
+ Change-Id: If82ba9de921e3d57df9c68cf96ee45ccc1491f7a
+
+2017-11-13 14:35 +0000 [e6ada55430] Ben Ford <bford@digium.com>
+
+ * bundled_pjproject: Update to 2.7.1
+
+ Update from 2.7 to 2.7.1 for bundled pjproject. Changed version
+ and removed patch files included in the update.
+
+ Change-Id: I55cea8e734b318c2df9daf86aa0802c559ec8357
+
+2017-11-09 08:21 +0000 [cf062303e3] Sean Bright <sean.bright@gmail.com>
+
+ * sorcery: Add ast_sorcery_retrieve_by_prefix()
+
+ Some consumers of the sorcery API use ast_sorcery_retrieve_by_regex
+ only so that they can anchor the potential match as a prefix and not
+ because they truly need regular expressions.
+
+ Rather than using regular expressions for simple prefix lookups, add
+ a new operation - ast_sorcery_retrieve_by_prefix - that does them.
+
+ Patches against 13 and 15 have a compatibility layer needed to
+ maintain ABI that is not needed in master.
+
+ Change-Id: I56f4e20ba1154bd52281f995c27a429a854f6a79
+
+2017-11-07 14:00 +0000 [2ad6210dd7] Corey Farrell <git@cfware.com>
+
+ * vectors: Add new macro and a string vector definition.
+
+ * AST_VECTOR_STEAL_ELEMENTS - steal the array of elements for use
+ with non-vector code.
+ * struct ast_vector_string - a vector of 'char *'.
+
+ Change-Id: I104d1b204be03fccf67e02a195596adcb5ab1e42
+
+2017-10-30 22:09 +0000 [76e640bd53] Corey Farrell <git@cfware.com>
+
+ * Build: Make function constructor/destructor attributes mandatory.
+
+ This change causes the configure script to fail if the C compiler does
+ not support both function attributes constructor and destructor. These
+ were already required as modules cannot function without these attributes
+ and Asterisk requires modules.
+
+ This also has AST_GCC_ATTRIBUTE set a variable
+ ax_cv_have_func_attribute_$1. This is the same variable name used by
+ autoconf-archive's AX_GCC_FUNC_ATTRIBUTE, used for the same purpose.
+
+ Change-Id: Id68e8a1447f2a6d707c54b56350e7bfdb33fb663
+
+2017-11-10 22:04 +0000 [b03d389bec] Corey Farrell <git@cfware.com>
+
+ * menuselect: Delete and ignore aclocal.m4.
+
+ This file is temporary output from the bootstrap.sh command, it does not
+ need to be committed.
+
+ Change-Id: Ie0fd113aff6eac44924c0bd0c900833c6c86a6d9
+
+2017-11-11 13:01 +0000 [507d9b5f9e] Richard Mudgett <rmudgett@digium.com>
+
+ * core: Add cache_media_frames debugging option.
+
+ The media frame cache gets in the way of finding use after free errors of
+ media frames. Tools like valgrind and MALLOC_DEBUG don't know when a
+ frame is released because it gets put into the cache instead of being
+ freed.
+
+ * Added the "cache_media_frames" option to asterisk.conf. Disabling the
+ option helps track down media frame mismanagement when using valgrind or
+ MALLOC_DEBUG. The cache gets in the way of determining if the frame is
+ used after free and who freed it. NOTE: This option has no effect when
+ Asterisk is compiled with the LOW_MEMORY compile time option enabled
+ because the cache code does not exist.
+
+ To disable the media frame cache simply disable the cache_media_frames
+ option in asterisk.conf and restart Asterisk.
+
+ Sample asterisk.conf setting:
+ [options]
+ cache_media_frames=no
+
+ ASTERISK-27413
+
+ Change-Id: I0ab2ce0f4547cccf2eb214901835c2d951b78c00
+
+2017-11-11 09:42 +0000 [bb2173275a] Richard Mudgett <rmudgett@digium.com>
+
+ * frame.c: Make ast_frame_free()/ast_frfree() NULL tolerant
+
+ Change-Id: Ic49d821ef88ada38a31bdd835b9531443c55d793
+
+2017-11-10 07:06 +0000 [360d50d74c] Joshua Colp <jcolp@digium.com>
+
+ * pjsip: Add patch to allow all transports to be destroyed.
+
+ If a transport is created with the same transport type, source
+ IP address, and source port as one that already exists the old
+ transport is moved into a linked list called "tp_list".
+
+ If this old transport is later shutdown it will not be destroyed
+ as the process checks whether the transport is valid or not. This
+ check does not look at the "tp_list" when making the determination
+ causing the transport to not be destroyed.
+
+ This change updates the logic to query not just the main storage
+ method for transports but also the "tp_list".
+
+ Upstream issue https://trac.pjsip.org/repos/ticket/2061
+
+ ASTERISK-27411
+
+ Change-Id: Ic5c2bb60226df0ef1c8851359ed8d4cd64469429
+
+2017-11-09 20:34 +0000 [211f5d8dd4] Corey Farrell <git@cfware.com>
+
+ * core: Remove disabled code.
+
+ handle_quit has been disabled since 2003, remove it.
+
+ Change-Id: Idc3aaa6c81676160547078f9b71e8aa43de2db18
+
+2017-11-09 13:24 +0000 [d12be40750] Corey Farrell <git@cfware.com>
+
+ * Build System: Disable parallel make in the root Makefile.
+
+ This ensures that the root Makefile runs only a single target at a time.
+ SUBMAKE will still honor requested parallelism, so 'make -j8' will build
+ one directory at a time but allow 8 jobs at once when building a sub
+ directory.
+
+ This will fix some display glitches related to rebuild of XML
+ documentation. It will also prevent some edge case errors where
+ bundled pjproject needs to be rebuild before other parts of Asterisk.
+
+ Change-Id: I4f2ec6fbbec1ada0ccb1109a28ea303524239b1e
+
+2017-03-29 20:46 +0000 [32042c6c3c] Richard Mudgett <rmudgett@digium.com>
+
+ * chan_pjsip.c: Fix uninitialized cause value on failure.
+
+ Change-Id: I3f9dd3c31bd582e54a30381500077de2319d8cc3
+
+2017-10-19 13:35 +0000 [4b3e03ae87] Kevin Harwell <kharwell@digium.com>
+
+ * AST-2017-011 - res_pjsip_session: session leak when a call is rejected
+
+ A previous commit made it so when an invite session transitioned into a
+ disconnected state destruction of the Asterisk pjsip session object was
+ postponed until either a transport error occurred or the event timer
+ expired. However, if a call was rejected (for instance a 488) before the
+ session was fully established the event timer may not have been initiated,
+ or it was canceled without triggering either of the session finalizing states
+ mentioned above.
+
+ Really the only time destruction of the session should be delayed is when a
+ BYE is being transacted. This is because it's possible in some cases for the
+ session to be disconnected, but the BYE is still transacting.
+
+ This patch makes it so the session object always gets released (no more
+ memory leak) when the pjsip session is in a disconnected state. Except when
+ the method is a BYE. Then it waits until a transport error occurs or an event
+ timeout.
+
+ ASTERISK-27345 #close
+
+ Reported by: Corey Farrell
+
+ Change-Id: I1e724737b758c20ac76d19d3611e3d2876ae10ed
+
+2017-10-03 16:19 +0000 [2b85799512] Richard Mudgett <rmudgett@digium.com>
+
+ * AST-2017-010: Fix cdr_object_update_party_b_userfield_cb() buf overrun
+
+ cdr_object_update_party_b_userfield_cb() could overrun the fixed buffer if
+ the supplied string is too long. The long string could be supplied by
+ external means using the CDR(userfield) function.
+
+ This may seem reminiscent to AST-2017-001 (ASTERISK_26897) and it is. The
+ earlier patch fixed the buffer overrun for Party A's userfield while this
+ patch fixes the same thing for Party B's userfield.
+
+ ASTERISK-27337
+
+ Change-Id: I0fa767f65ecec7e676ca465306ff9e0edbf3b652
+
+2017-10-19 13:53 +0000 [2faa3e3bab] George Joseph <gjoseph@digium.com>
+
+ * AST-2017-009: pjproject: Add validation of numeric header values
+
+ Parsing the numeric header fields like cseq, ttl, port, etc. all
+ had the potential to overflow, either causing unintended values to
+ be captured or, if the values were subsequently converted back to
+ strings, a buffer overrun. To address this, new "strto" functions
+ have been created that do range checking and those functions are
+ used wherever possible in the parser.
+
+ * Created pjlib/include/limits.h and pjlib/include/compat/limits.h
+ to either include the system limits.h or define common numeric
+ limits if there is no system limits.h.
+
+ * Created strto*_validate functions in sip_parser that take bounds
+ and on failure call the on_str_parse_error function which prints
+ an error message and calls PJ_THROW.
+
+ * Updated sip_parser to validate the numeric fields.
+
+ * Fixed an issue in sip_transport that prevented error messages
+ from being properly displayed.
+
+ * Added "volatile" to some variables referenced in PJ_CATCH blocks
+ as the optimizer was sometimes optimizing them away.
+
+ * Fixed length calculation in sip_transaction/create_tsx_key_2543
+ to account for signed ints being 11 characters, not 9.
+
+ ASTERISK-27319
+ Reported by: Youngsung Kim at LINE Corporation
+
+ Change-Id: I48de2e4ccf196990906304e8d7061f4ffdd772ff
+
+2017-11-06 17:58 +0000 [16df0e9786] Corey Farrell <git@cfware.com>
+
+ * res_pjsip_pubsub: Fix multiple leaks on failure to append vectors.
+
+ Change-Id: I68ece0073ea79667ca41eb10405f516f1d30d482
+
+2017-11-06 18:12 +0000 [cf91dde509] Corey Farrell <git@cfware.com>
+
+ * res_pjsip_history: Fix multiple leaks on vector append failure.
+
+ Change-Id: I41e8d5183ace284095cc721f3b1fb32ade3f940f
+
+2017-11-06 16:37 +0000 [7ad4c19b20] Richard Mudgett <rmudgett@digium.com>
+
+ * res_pjsip_registrar.c: Fix named AOR and pjproject group deadlock.
+
+ One of the patches for ASTERISK_27147 introduced a deadlock regression.
+ When the connection oriented transport shut down, the code attempted to
+ remove the associated contact. However, that same transport had just
+ requested a registration that we hadn't responded to yet. Depending
+ upon timing we could deadlock.
+
+ * Made send the REGISTER response after we completed processing the
+ request contacts and released the named AOR lock to avoid the deadlock.
+
+ ASTERISK-27391
+
+ Change-Id: I89a90f87cb7a02facbafb44c75d8845f93417364
+
+2017-11-06 17:21 +0000 [c1a608f862] Corey Farrell <git@cfware.com>
+
+ * res_stasis: Fix multiple leaks.
+
+ * res/stasis/app.c JSON passed to app_send needs to be released.
+ * res/stasis_message.c: objects leak if vector append fails.
+
+ Change-Id: I8dd5385b9f50a5cadf2b1d16efecffd6ddb4db4a
+
+2017-11-05 22:06 +0000 [d95bfcd013] Aaron An <anjb@ti-net.com.cn>
+
+ * res_pjsip: Avoid crash when contact uri is empty string
+
+ Asterisk will crash if contact uri is invalid, so contact_apply_handler
+ should check if the uri is NULL or empty.
+
+ ASTERISK-27393 #close
+ Reported-by: Aaron An
+ Tested-by: AaronAn
+
+ Change-Id: Ia0309bdc6b697c73c9c736e1caec910b77ca69f5
+
+2017-11-07 06:56 +0000 [ec58521a48] Richard Mudgett <rmudgett@digium.com>
+
+ * res_pjproject.c: Fix ast_strdup() alloc failure.
+
+ Change-Id: I74688038e7afe3a279359cce53aadb28ade51ead
+
+2017-11-06 17:55 +0000 [69af7eb663] Corey Farrell <git@cfware.com>
+
+ * res_pjsip_outbound_registration: Fix leak on vector add failure.
+
+ Change-Id: I774b88b3c9da41edd4dc8d78f095481f52f2bd46
+
+2017-11-06 17:44 +0000 [4f75655cb6] Corey Farrell <git@cfware.com>
+
+ * res_pjsip_config_wizard: Fix leaks and add check for malloc failure.
+
+ wizard_apply_handler():
+ - Free host if we fail to add it to the vector.
+
+ wizard_mapped_observer():
+ - Check for otw allocation failure.
+ - Free otw if we fail to add it to the vector.
+
+ Change-Id: Ib5d3bcabbd9c24dd8a3c9cc692a794a5f60243ad
+
+2017-11-06 17:33 +0000 [8cdc0ef385] Corey Farrell <git@cfware.com>
+
+ * test_sorcery_memory_cache_thrash: Handle error from vector append.
+
+ Cleanup resources when we fail to append the vector and report test
+ failure.
+
+ Change-Id: I6eb41586fd11dee8c0dfe35e91cb465a4cab7298
+
+2017-11-06 17:28 +0000 [e4fba95022] Corey Farrell <git@cfware.com>
+
+ * res_pjsip: Fix leak on error in ast_sip_auth_vector_init.
+
+ Change-Id: Ib0fc7a18f3135ca8990c3984c9e15f6d26e556e8
+
+2017-11-06 17:17 +0000 [b96dd55add] Corey Farrell <git@cfware.com>
+
+ * res_pjproject: Handle error from adding to the buildopts vector.
+
+ Change-Id: I076c7bd207c7989a23005395ce1735392657be65
+
+2017-11-06 15:33 +0000 [3dc600ef84] Corey Farrell <git@cfware.com>
+
+ * stasis: Release object if vector append fails.
+
+ Change-Id: I3e5cc669169aab6175ddfaf7486edeaeb4fdcfb1
+
+2017-11-06 15:30 +0000 [fc041554c3] Corey Farrell <git@cfware.com>
+
+ * RTP Engine: Deal with errors returned from AST_VECTOR_REPLACE.
+
+ Check for errors from AST_VECTOR_REPLACE and clean memory if needed.
+
+ Change-Id: I124d15cc1d645f85a72a1279f623c1993b304b0b
+
+2017-11-06 15:10 +0000 [75539dbf2c] Corey Farrell <git@cfware.com>
+
+ * Messaging: Report error on failure to register tech or handler.
+
+ Message tech and handler registrations use a vector which could fail to
+ expand. If it does log and error and return error.
+
+ Change-Id: I593a8de81a07fb0452e9b0efd5d4018b77bca6f4
+
+2017-11-06 15:07 +0000 [b4240bea6c] Corey Farrell <git@cfware.com>
+
+ * format_cap: Fix leak on AST_VECTOR_APPEND error.
+
+ format_cap_framed_init can fail on AST_VECTOR_APPEND. This should
+ report failure to the caller and clean the newly allocated frame.
+
+ Change-Id: Ica0661235bf09497bf23d844ceb01f21b41a55b0
+
+2017-11-06 14:23 +0000 [803dc3dee5] Corey Farrell <git@cfware.com>
+
+ * stasis: Remove silly use of RAII_VAR in stasis_forward_all.
+
+ Change-Id: I46de4c968d40144d5b049966304ff66c1469fb65
+
+2017-11-06 12:51 +0000 [0a0e2c4253] Corey Farrell <git@cfware.com>
+
+ * CLI: Remove unused internal command.
+
+ The internal CLI command "_command complete" was last used by Asterisk
+ 0.2.0. Since then we've been using "_command nummatches" and "_command
+ matchesarray".
+
+ Change-Id: I682fe1e21a24a3bb5bd04146e639f1c5866bcfce
+
+2017-11-03 18:08 +0000 [593f789563] Richard Mudgett <rmudgett@digium.com>
+
+ * stasis_bridges.c: Fix off-nominal json memory leaks.
+
+ Change-Id: Ib1181a36b317c86bff1ef2e44a17a0b1c73cfdc8
+
+2017-11-06 10:29 +0000 [56e32ca355] Joshua Colp <jcolp@digium.com>
+
+ * res_pjsip_pubsub: Ensure remote URI contains URI only.
+
+ This change makes it so that any user of the pubsub
+ API that requests the remote URI receives only the URI.
+ Previously the entire string was returned, which could
+ contain a display name.
+
+ ASTERISK-27290
+
+ Change-Id: If1d0cd6630f0a264856d31d2a67933109187a017
+
+2017-11-03 17:43 +0000 [6bc8af2433] Richard Mudgett <rmudgett@digium.com>
+
+ * stasis_channels.c: Remove a very silly RAII_VAR().
+
+ Change-Id: I28b458b3c1a442c4ef0be7b4986a95ea4149e14f
+
+2017-11-03 16:14 +0000 [33d02f5090] Richard Mudgett <rmudgett@digium.com>
+
+ * stasis/app.c: Optimize stasis_app_get_debug_by_name()
+
+ * Eliminate RAII_VAR()
+ * Short circuit application name lookup if global debug enabled.
+
+ Change-Id: I5f78b7bd6ca7fd2c3b07cbbe036c6a93b4681123
+
+2017-11-02 18:40 +0000 [9013415593] Richard Mudgett <rmudgett@digium.com>
+
+ * Fix ast_(v)asprintf() malloc failure usage conditions.
+
+ When (v)asprintf() fails, the state of the allocated buffer is undefined.
+ The library had better not leave an allocated buffer as a result or no one
+ will know to free it. The most likely way it can return failure is for an
+ allocation failure. If the printf conversion fails then you actually have
+ a threading problem which is much worse because another thread modified
+ the parameter values.
+
+ * Made __ast_asprintf()/__ast_vasprintf() set the returned buffer to NULL
+ on failure. That is much more useful than either an uninitialized pointer
+ or a pointer that has already been freed. Many uses won't have to check
+ for failure to ensure that the buffer won't be double freed or prevent an
+ attempt to free an uninitialized pointer.
+
+ * stasis.c: Fixed memory leak in multi_object_blob_to_ami() allocated by
+ ast_asprintf().
+
+ * ari/resource_bridges.c:ari_bridges_play_helper(): Remove assignment to
+ the wrong thing which is now not needed even if assigning to the right
+ thing.
+
+ Change-Id: Ib5252fb8850ecf0f78ed0ee2ca0796bda7e91c23
+
+2017-11-06 08:05 +0000 [250c173cfb] Sean Bright <sean.bright@gmail.com>
+
+ * res_pjsip: Ignore empty TLS configuration
+
+ When using realtime, fields that are not explicitly set by an
+ administrator are still presented to sorcery as empty strings. Handle
+ this case explicitly.
+
+ In this particular case, if any of these fields are required for TLS
+ support, their existence should be validated in the 'apply' handler once
+ we have a complete transport definition.
+
+ ASTERISK-27032 #close
+ Reported by: seanchann.zhou
+
+ Change-Id: Ie3b5fb421977ccdb33e415d4ec52c3fd192601b7
+
+2017-11-06 03:18 +0000 [7dd2b18e32] Alexander Traud <pabstraud@compuserve.com>
+
+ * tcptls: Print notice when TLS is enabled but not configured.
+
+ Asterisk can be compiled without a SSL/TLS library, without the Development
+ Headers of OpenSSL. However, if TLS (SIP) or Secure-WebSockets (WebRTC) was
+ enabled in a configuration file, Asterisk did not notice the user. Asterisk
+ failed silently, only the corresponding TCP ports were not open.
+
+ ASTERISK-27394
+ Reported-by: mossley74
+
+ Change-Id: Ib8b7539a5b2af8154c22e5f7a40fc68f95d95b93
+
+2017-11-06 03:21 +0000 [b5331af53b] Corey Farrell <git@cfware.com>
+
+ * configure: Add autoconf check for libopusfile.
+
+ This check is being added to make it easier for end-users of third party
+ open source Opus modules. This was removed by ASTERISK-26426 but only
+ the module needed to be removed.
+
+ Change-Id: I62b9cd0c4fa8a77596ab0e042948a643a1152677
+
+2017-11-04 06:05 +0000 [5f4197735d] Alexander Traud <pabstraud@compuserve.com>
+
+ * install_prereq: Checkout of libSRTP 2.x.
+
+ Since Asterisk 13.17, libSRTP 2.x is supported. Therefore, its latest version
+ is installed again via the script install_prereq.
+
+ ASTERISK-27356
+
+ Change-Id: I13125839a79052356469e41edacbebff0a937d39
+
+2017-11-01 17:47 +0000 [3bce5a9dfa] Richard Mudgett <rmudgett@digium.com>
+
+ * Stasis/ARI: Fix off-nominal path json memory leaks.
+
+ Change-Id: Id569c624c426e3b22a99936473c730592d8b83fb
+
+2017-11-02 11:38 +0000 [675e50b903] Richard Mudgett <rmudgett@digium.com>
+
+ * AOC: Fix AOC-S json memory leak.
+
+ Change-Id: I3a1d40a41a8a7d00fa4a187de6a343a79155d3ef
+
+2017-11-01 18:04 +0000 [4ea61eef94] Richard Mudgett <rmudgett@digium.com>
+
+ * res_stasis_device_state.c: Optimize stasis_app_device_states_to_json()
+
+ * Eliminate RAII_VAR()
+ * Replace looped alloca with a char[] since that is how it is used anyway.
+
+ Change-Id: Ia27e64a884afa0f50b9ffdb1cf23da6bfa51ffdf
+
+2017-11-01 18:58 +0000 [8ec2db7084] Richard Mudgett <rmudgett@digium.com>
+
+ * res_stasis_mailbox.c: Fix leak of mailbox container.
+
+ Change-Id: I7d33c1635713047e7d1597c9d882f7dc006d94b4
+
+2017-11-03 10:35 +0000 [d3cfcc0da6] Corey Farrell <git@cfware.com>
+
+ * Build System: Fix build failure caused by recent CLI improvements.
+
+ We use the editline library to help with filename completion in our CLI
+ interface. Some systems failed to find the header when included from
+ loader.c. This is fixed by setting the proper CFLAGS for the build of
+ loader.o.
+
+ ASTERISK-27378
+
+ Change-Id: Ib7fd496f1d7ed48141a2eadd5dd61cab2f2308be
+
+2017-11-01 11:12 +0000 [ffcb7e2a25] Ben Ford <bford@digium.com>
+
+ * res_pjsip: Add to list of valid characters for from_user.
+
+ Fixes a regression where some characters were unable to be used in
+ the from_user field of an endpoint. Additionally, the backtick was
+ removed from the list of valid characters, since it is not valid,
+ and it was replaced with a single quote, which is a valid character.
+
+ ASTERISK-27387
+
+ Change-Id: Id80c10a644508365c87b3182e99ea49da11b0281
+
+2017-10-30 17:30 +0000 [bfb0f27c87] Corey Farrell <git@cfware.com>
+
+ * Modules: Additional improvements to CLI completion.
+
+ Replace 'needsreload' argument with a 'type' argument to specify which
+ type of modules you want completion. This provides more accurate CLI
+ completion for load and unload commands.
+
+ * 'module unload' now excludes modules that have active references or are
+ not running.
+ * 'module load' now excludes modules that are already running.
+ * 'core set debug [atleast] <level> [module]' shows running modules only.
+
+ ASTERISK-27378
+
+ Change-Id: Iea3e00054461484196c46f688f02635cc886bad1
+
+2017-11-02 02:11 +0000 [7c35740ba1] Corey Farrell <git@cfware.com>
+
+ * Add missing menuselect dependencies.
+
+ This adds menuselect dependencies for modules that use symbols of other
+ modules.
+
+ ASTERISK-27390
+
+ Change-Id: Ia2d2849f5b87a72af7324a82edc3f283eafb5385
+
+2017-11-01 19:46 +0000 [73a5e9f0e9] Corey Farrell <git@cfware.com>
+
+ * Prevent unload of modules which implement an Optional API.
+
+ Once an Optional API module is loaded it should stay loaded. Unloading
+ an optional API module runs the risk of a crash if something else is
+ using it. This patch causes all optional API providers to tell the
+ module loader not to unload except at shutdown.
+
+ ASTERISK-27389
+
+ Change-Id: Ia07786fe655681aec49cc8d3d96e06483b11f5e6
+
+2017-11-01 13:58 +0000 [d524ad523d] Sean Bright <sean.bright@gmail.com>
+
+ * pjsip_message_filter: Only do interface lookup for wildcard addresses.
+
+ Change-Id: Ie083987e69dc43b6861671c218cacacc11b2072f
+
+2017-10-31 15:08 +0000 [a7c00707a5] Kevin Harwell <kharwell@digium.com>
+
+ * features: Bridge application's BRIDGERESULT not appropriately set
+
+ The dialplan application "Bridge" was not setting the BRIDGERESULT to failure
+ when a failure did occur. Even worse if it did fail to join the bridge it would
+ still report success.
+
+ This patch now sets the BRIDGERESULT variable to an appropriate value for a
+ given condition state. Also, removed the value INCOMPATIBLE as a valid result
+ type since it is no longer used.
+
+ ASTERISK-27369 #close
+
+ Change-Id: I22588e7125a765edf35cff28c98ca143e9927554
+
+2017-10-30 09:20 +0000 [1b535d8457] Tzafrir Cohen <tzafrir.cohen@xorcom.com>
+
+ * ast_coredumper: allow setting asterisk binary explicitly
+
+ Adds an extra option, --asterisk-bin=<path> to ast_coredumper. If
+ provided, the binary given to gdb will be the parameter, rather than
+ asterisk from the PATH.
+
+ ASTERISK-27380 #close
+
+ Change-Id: I25f5b91eb75059b0fb2f142e468c26b283b0a9f3
+
+2017-10-30 00:32 +0000 [cee81b3c8b] Corey Farrell <git@cfware.com>
+
+ * Modules: Fix issues with CLI completion.
+
+ * Stop using ast_module_helper to check if a module is loaded, use
+ ast_module_check instead (app_confbridge and app_meetme).
+ * Stop ast_module_helper from listing reload classes when needsreload
+ was not requested.
+
+ ASTERISK-27378
+
+ Change-Id: Iaed8c1e4fcbeb242921dbac7929a0fe75ff4b239
+
+2017-10-28 19:18 +0000 [8436f1d35a] Igor Goncharovskiy <igorg@iqtek.ru>
+
+ * app_agent_spool: Fix typo in dtmf features usage desctiption
+
+ Fix typo, that specify usage wrong option 'dtmf-features' for CHANNEL() function
+ instead of correct 'dtmf_features'
+
+ ASTERISK-27377 #close
+
+ Change-Id: I15ecc829c1035b359584673e12cdb5c9291ac930
+
+2017-10-27 13:41 +0000 [987b16e8f9] Corey Farrell <git@cfware.com>
+
+ * res_pjsip_pubsub: Resolve potential crash in allocate_subscription.
+
+ When allocate_subscription fails to initialize fields of the new sub it
+ calls destroy_subscription.
+
+ Change-Id: I5b79c915ec216dc00c13c1e4172137864a4bec85
+
+2017-10-26 12:18 +0000 [2db97ee219] Richard Mudgett <rmudgett@digium.com>
+
+ * app_voicemail.c: Fix compiler warning with IMAP build.
+
+ ASTERISK-27181
+
+ Change-Id: Ic4468b49860bd7f67e922baf4c9e96828c184d17
+
+2017-10-25 14:38 +0000 [ca7f3d297b] Richard Mudgett <rmudgett@digium.com>
+
+ * codec.c: Defensively check the returned samples.
+
+ Earlier versions of the codec_opus samples_count callback can return
+ negative error values on undecodable frames. This resulted in a divide by
+ zero exception.
+
+ * Added a defensive check in ast_codec_samples_count() for a "negative"
+ samples count return value. Log the event and set the count to zero.
+
+ ASTERISK-27194
+
+ Change-Id: Icf69350307ecbbc80a3d74de46af9bd80ea17819
+
+2017-10-24 10:33 +0000 [7385d1e017] Joshua Colp <jcolp@digium.com>
+
+ * res_pjsip: Add 'ip' as a valid option to 'identify_by' on endpoint.
+
+ When the identify_by option on an endpoint is set to ip it will
+ only be identified using the res_pjsip_endpoint_identifier_ip module.
+ This ensures that it is not mistakenly matched using the username of
+ the From header. To ensure behavior has not changed the default has
+ been changed to "username,ip" for the identify_by option.
+
+ ASTERISK-27206
+
+ Change-Id: I2170b86a7f7e221b4f00bf14aa1ef1ac5b050bbd
+
+2017-10-25 12:26 +0000 [3f7ad66245] George Joseph <gjoseph@digium.com>
+
+ * ast_coredumper: Add gzipping of binaries and display of signal info
+
+ The --tarball-coredump option now creates a gzipped tarball of
+ coredumps processed, their results txt files and copies of
+ /etc/os-release, /usr/sbin/asterisk, /usr/lib(64)/libasterisk* and
+ /usr/lib(64)/asterisk as those files are needed to properly examine
+ the coredump. The file will be named
+ /tmp/asterisk.<timestamp>.coredumps.tar.gz or
+ /tmp/asterisk-<uniqueid>.coredumps.tar.gz if --tarball-uniqueid was
+ specified.
+
+ Added dumps of *_siginfo to the top of the txt files so you can
+ tell what signal was invoked.
+
+ Change-Id: Ib9ee6d83592d4b1bc90cb3419a05376a88d1ded9
+
+2017-03-30 09:51 +0000 [4772849016] Corey Farrell <git@cfware.com>
+
+ * Build System: Fix --disable-xmldoc option.
+
+ The configure option to disable XML documentation does not currently
+ work. This patch makes it effective, but also causes an ABI change by
+ removing the ast_xmldoc_* symbols. Disabling xmldoc also prevents docs
+ from being automatically generated, but they can still be manually
+ generated with 'make doc/core-en_US.xml'.
+
+ ASTERISK-26639
+
+ Change-Id: Ifac562340c09f80c83e0203de098fcac93bf8c44
+
+2017-10-23 13:42 +0000 [dfe00b80e7] Ben Ford <bford@digium.com>
+
+ * http.c: Fix http header send content.
+
+ Currently ast_http_send barricades a portion of the content that
+ needs to be sent in order to establish a connection for things
+ like the ARI client. The conditional and contents have been changed
+ to ensure that everything that needs to be sent, will be sent.
+
+ ASTERISK-27372
+
+ Change-Id: I8816d2d8f80f4fefc6dcae4b5fdfc97f1e46496d
+
+2017-10-07 12:14 +0000 [23d05ebc49] Corey Farrell <git@cfware.com>
+
+ * hashtab: Use ast_free.
+
+ A few places in hashtab use free instead of ast_free.
+
+ Change-Id: I2ff089bad71640c03c3ce97f1b00fc962ef79427
+
+2017-10-24 09:43 +0000 [c95ab4c1ce] Corey Farrell <git@cfware.com>
+
+ * chan_sip: Fix SUBSCRIBE with missing "Expires" header.
+
+ When chan_sip receives a SUBSCRIBE request with no "Expires" header it
+ processes the request as an unsubscribe. This is incorrect, per RFC3264
+ when the "Expires" header is missing a default expiry should be used.
+
+ ASTERISK-18140
+
+ Change-Id: Ibf6dcd4fdd07a32c2bc38be1dd557981f08188b5
+
+2017-10-24 07:24 +0000 [5351e862ee] Alexander Traud <pabstraud@compuserve.com>
+
+ * lpc10: Avoid compiler warning when DONT_OPTIMIZE/COMPILE_DOUBLE.
+
+ ASTERISK-23556
+ Reported by: Marcello Ceschia
+
+ Change-Id: Ic27e88e0336a0d83877dc857938659dc5560b93c
+
+2017-10-23 13:44 +0000 [ec278955a3] Corey Farrell <git@cfware.com>
+
+ * main/Makefile: Remove rule for non-existant testexpr2.
+
+ Change-Id: Ibb3e47f27a395d74d8c5263db015b05434f5969b
+
+2017-10-23 12:42 +0000 [6cec3149be] Corey Farrell <git@cfware.com>
+
+ * test_config: Fix failure and segfault when config_hook is run twice.
+
+ On second run the config_hook test was unexpectedly failing to load
+ test_config.conf because it was still unmodified since the last load.
+ This is fixed by not passing CONFIG_FLAG_FILEUNCHANGED for the initial
+ loads, only using it when we are tested that a reload of unmodified
+ files do not initiate the hook.
+
+ ASTERISK-25960
+
+ Change-Id: Ifd679509a23ed163e5cc647490bf7df4ae3cd856
+
+2017-10-23 12:23 +0000 [4a2575a107] George Joseph <gjoseph@digium.com>
+
+ * res_pjsip_sdp_rtp: Fix setting of address type for rtp_ipv6
+
+ create_outgoing_sdp_stream was setting "addr_type = STR_IP6" only
+ when an ipv6 media_address was specified on the endpoint. If
+ rtp_ipv6 was set and ast_sip_get_host_ip_string returned an ipv6
+ address, we were leaving the addr_type set at the default of
+ STR_IP4. This caused the address type to be set incorrectly on the
+ "o" and "c" SDP attributes even though the address was set
+ correctly. Some clients don't like the mismatch.
+
+ * Removed the test for endpoint/media_address and now check all
+ addresses for ipv6.
+
+ ASTERISK-27198
+ Reported by: Martin Cisárik
+
+ Change-Id: I5214fc31b728117842243807e7927a319cf77592
+
+2017-10-23 07:53 +0000 [b4cb0050bd] Richard Mudgett <rmudgett@digium.com>
+
+ * app_agent_pool.c: Fix online documentation typo.
+
+ Change-Id: Ib0bc95fd0ec288c78c313823254d7a84ebfc4429
+
+2017-10-22 17:32 +0000 [07e17fd04f] Joshua Colp <jcolp@digium.com>
+
+ * res_xmpp: Ensure the connection filter is available.
+
+ Users of the API that res_xmpp provides expect that a
+ filter be available on the client at all times. When
+ OAuth authentication support was added this requirement
+ was not maintained.
+
+ This change merely moves the OAuth authentication to
+ after the filter is created, ensuring users of res_xmpp
+ can add things to the filter as needed.
+
+ ASTERISK-27346
+
+ Change-Id: I4ac474afe220e833288ff574e32e2b9a23394886
+
+2017-10-21 03:44 +0000 [c7a9a6ef0c] Alexander Traud <pabstraud@compuserve.com>
+
+ * chan_sip: Crypto attribute not last but first on SDP media level.
+
+ This matches the behavior of the other SIP channel driver, chan_pjsip.
+
+ ASTERISK-27365
+
+ Change-Id: I8f23a51290a58b75816da2999ed1965441dfc5d6
+
+2017-10-17 10:53 +0000 [b57dcc8d9c] Richard Mudgett <rmudgett@digium.com>
+
+ * res_pjproject.c: Upgrade bundled PJPROJECT to 2.7
+
+ Update patches included in bundled PJPROJECT for the new version.
+
+ ASTERISK-27355
+
+ Change-Id: I9ac5dbbffaadca25ad24fac8b9ab615e5ace6083
+
+2017-10-18 13:41 +0000 [fb4ed70e62] Corey Farrell <git@cfware.com>
+
+ * res_pjsip_pubsub: Prevent unload except during shutdown.
+
+ Prevent unload of the module as certain pjsip initialization functions
+ cannot be reversed. This required a reorder of the module_load so that
+ the non-reversable pjsip functions are not called until all potential
+ errors have been ruled out.
+
+ ASTERISK-24483
+
+ Change-Id: Iee900f20bdd6ee1bfe23efdec0d87765eadce8a7
+
+2017-10-18 13:37 +0000 [216251abcb] Corey Farrell <git@cfware.com>
+
+ * res_pjsip_refer: Prevent unload except during shutdown.
+
+ Prevent unload of the module as certain pjsip initialization functions
+ cannot be reversed.
+
+ ASTERISK-24483
+
+ Change-Id: I94597ec8b8491f5af9c57bf66dbc3b078fe2d49d
+
+2017-10-18 12:04 +0000 [7dd7ca2858] Corey Farrell <git@cfware.com>
+
+ * chan_sip: Fix output of 'sip set debug off'.
+
+ When sip.conf contains 'sipdebug=yes' it is impossible to disable it
+ using CLI 'sip set debug off'. This corrects the output of that CLI
+ command to instruct the user to turn sipdebug off in the configuration
+ file.
+
+ ASTERISK-23462 #close
+
+ Change-Id: I1cceade9caa9578e1b060feb832e3495ef5ad318
+
+2017-10-06 10:51 +0000 [0a11097a22] Matt Jordan <mjordan@digium.com>
+
+ * res_corosync: Fix linking issue with Corosync 2.x
+
+ At some point in time in the history of Corosync (certainly within the
+ 2.x branch), the corosync_cfg_state_track function was removed.
+ Unfortunately, the cfg library is only linked if this function is
+ present. Without the cfg library being linked to res_corosync, loading
+ of res_corosync will fail.
+
+ This patch makes it so that detecting corosync's core libraries,
+ determined by the COROSYNC external library checks, links both the cpg
+ and cfg libraries with res_corosync.
+
+ Change-Id: I674e9e1c8fea11c3bf81154aaa7c1fd43f945465
+
+2017-10-06 15:55 +0000 [7f8c212e75] Richard Mudgett <rmudgett@digium.com>
+
+ * cdr.c: Rename the Party A CDR container.
+
+ * Rename the Party A CDR container from active_cdrs_by_channel to
+ active_cdrs_master.
+
+ * Renamed the support functions associated with active_cdrs_master
+ appropriately.
+
+ ASTERISK-27335
+
+ Change-Id: I6104bb3edc3a0b7243ce502e45e8832b0cff14f7
+
+2017-10-02 17:42 +0000 [85723a9e50] Richard Mudgett <rmudgett@digium.com>
+
+ * cdr.c: Add container to key off of Party B channel names.
+
+ The CDR performance gets worse the further it gets behind in processing
+ stasis messages. One of the reasons is because of a n*m loop used when
+ processing Party B information.
+
+ * Added a new CDR container that is keyed to Party B so we don't need such
+ a large loop when processing Party B information.
+
+ NOTE: To reduce the size of the patch I deferred to another patch the
+ renaming of the Party A active_cdrs_by_channel container to
+ active_cdrs_master and renaming the container's hash and cmp functions
+ appropriately.
+
+ ASTERISK-27335
+
+ Change-Id: I0bf66e8868f8adaa4b5dcf9e682e34951c350249
+
+2017-10-10 07:42 +0000 [944e500e95] Tzafrir Cohen <tzafrir.cohen@xorcom.com>
+
+ * declare optional openssl dependencies in moduleinfo
+
+ Declare optional openssl dependencies in:
+ * res_rtp_asterisk.c
+ * tcptls.c
+
+ ASTERISK-27328 #close
+
+ Change-Id: I2636f1c05b8104b4fe6f36cce0ebd9a98b9c78ab
+
+2017-10-13 09:43 +0000 [dcbf61a31e] Alexander Traud <pabstraud@compuserve.com>
+
+ * res_pjsip_session: Rewrite o= with external_media_address.
+
+ PJSIP allows a domain name as external_media_address. This allows chan_pjsip to
+ be used behind a NAT with changing IP addresses. The IP address of that domain
+ is resolved to the c= line already. This change sets also the o= line to that
+ domain.
+
+ ASTERISK-27341 #close
+
+ Change-Id: I690163b6e762042ec38b3995aa5c9bea909d8ec4
+
+2017-10-14 04:11 +0000 [85cada85d6] Guido Falsi <madpilot@freebsd.org>
+
+ * chan_dahdi: wrap include file which is not present on BSD systems in #ifdef
+
+ The sys/sysmacros.h include file does not exist in BSD systems and
+ is not required to build this module there.
+ Since an "#if defined(__NetBSD__) || defined(__FreeBSD__)" section
+ already exist I moved that include line inside it's #else branch.
+
+ ASTERISK-27343 #close
+
+ Change-Id: Ibfb64f4e9a0ce8b6eda7a7695cfe57916f175dc1
+
+2017-10-13 08:51 +0000 [89f11364f6] Corey Farrell <git@cfware.com>
+
+ * ast_bt_get_symbols: Prevent double-free.
+
+ It's possible for bfdobj to be created but syms not created. If syms
+ was not allocated in the current loop iteration but was allocated in the
+ previous iteration it would crash.
+
+ ASTERISK-27340
+
+ Change-Id: I5b110c609f6dfe91339f782a99a431bca5837363
+
+2017-10-13 08:12 +0000 [114ed320ea] Alexander Traud <pabstraud@compuserve.com>
+
+ * tcptls: NULL-check the parameter of ast_ssl_teardown before accessing it.
+
+ This avoids a crash on stopping a chan_sip which failed to start its TLS server.
+
+ ASTERISK-27339 #close
+
+ Change-Id: I327fc70db68eaaca5b50a15c7fd687fde79263d5
+
+2017-09-29 14:26 +0000 [a8c6c3bd7d] Richard Mudgett <rmudgett@digium.com>
+
+ * cdr.c: Eliminated many calls to ao2_global_obj_ref().
+
+ The CDR performance gets worse the further it gets behind in processing
+ stasis messages. One of the reasons is we were getting the global config
+ to determine if we needed to log a debugging message.
+
+ * Many calls to ao2_global_obj_ref() were just so we could determine if
+ debug mode is enabled. Made a global flag to check instead.
+
+ * Eliminated many RAII_VAR() usages associated with the remaining
+ ao2_global_obj_ref() calls.
+
+ * Added missing NULL checks for the returned ao2_global_obj_ref() value.
+
+ ASTERISK-27335
+
+ Change-Id: Iceaad93172862f610cad0188956634187bfcc7cd
+
+2017-10-06 13:45 +0000 [b56fa63db8] Richard Mudgett <rmudgett@digium.com>
+
+ * cdr.c: Defer getting ao2_global_obj_ref() until needed.
+
+ The CDR performance gets worse the further it gets behind in processing
+ stasis messages. One of the reasons is we were getting the global config
+ even if we didn't need it.
+
+ * Most uses of the global config were only needed on off nominal code
+ paths so it makes sense to not get it until absolutely needed.
+
+ ASTERISK-27335
+
+ Change-Id: I00c63b7ec233e5bfffd5d976f05568613d3c2365
+
+2017-10-05 18:08 +0000 [92c5cf3920] Richard Mudgett <rmudgett@digium.com>
+
+ * cdr.c: Set stringfields only if they are different.
+
+ The CDR performance gets worse the further it gets behind in processing
+ stasis messages. One of the reasons is we were repeatedly setting string
+ fields to potentially the same string in base_process_party_a(). Setting
+ a string field involves allocating room for the new string out of a memory
+ pool which may have to allocate even more memory.
+
+ * Check to see if the string field is already set to the desired string.
+
+ ASTERISK-27335
+
+ Change-Id: I3ccb7e23f1488417e08cafe477755033eed65a7c
+
+2017-10-05 18:03 +0000 [6393c106ca] Richard Mudgett <rmudgett@digium.com>
+
+ * cdr.c: Fix setting dnid, callingsubaddr, and calledsubaddr
+
+ The string comparisons for setting these CDR variables was inverted. We
+ were repeatedly setting these CDR variables only if the channel snapshots
+ had the same value.
+
+ ASTERISK-27335
+
+ Change-Id: I9482073524411e7ea6c03805b16de200cb1669ea
+
+2017-10-11 06:04 +0000 [407b78504d] Torrey Searle <torrey@voxbone.com>
+
+ * contrib/script/sip_to_pjsip: implement 'all' for allow/disallow
+
+ when 'all' is specified in an allow or disallow section, it should erase
+ all values from the inverse section in the default config. E.G.
+ allow=all should erase any deny values from default config &
+ vice-versa
+
+ ASTERISK-27333 #close
+
+ Change-Id: I99219478fb98f08751d769daaee0b7795118a5a6
+
+2017-10-13 17:46 +0000 Asterisk Development Team <asteriskteam@digium.com>
+
+ * asterisk 13.18.0-rc1 Released.
+
+2017-10-13 12:09 +0000 [4bc2aca9b7] Kevin Harwell <kharwell@digium.com>
+
+ * AMI: Increase version number
+
+ Bump the AMI patch number since the following new addition was made:
+
+ * Added a new CancelAtxfer action that cancels an attended transfer.
+
+ Change-Id: I9bac528791bd62ef0e99243903b6bc7a6c7ab182
+
+2017-08-25 08:19 +0000 [6d3ee9fb93] Thomas Sevestre <thomassevestre@free.fr>
+
+ * features, manager : Add CancelAtxfer AMI action
+
+ Add action to cancel feature attended transfer with AMI interface
+
+ ASTERISK-27215 #close
+
+ Change-Id: Iab8a81362b5a1757e2608f70b014ef863200cb42
+
+2017-10-06 04:55 +0000 [21d502818f] Daniel Tryba <daniel@tryba.nl>
+
+ * res_pjsip_session: Prevent user=phone being added to anonimized URIs.
+
+ Move ast_sip_add_usereqphone to be called after anonymization of URIs,
+ to prevent the user_eq_phone adding "user=phone" to URIs containing a
+ username that is not a phonenumber (RFC3261 19.1.1). An extra call to
+ ast_sip_add_usereqphone on the saved version before anonymization is
+ added to add user=phone" to the PAI.
+
+ ASTERISK-27047 #close
+
+ Change-Id: Ie5644bc66341b86dc08b1f7442210de2e6acdec6
+
+2017-10-06 05:14 +0000 [af09996178] Daniel Tryba <daniel@tryba.nl>
+
+ * res_pjsip: Prevent "user=phone" being added multiple times to header
+
+ ast_sip_add_usereqphone adds "user=phone" to the header every time is is
+ called without checking whether the param already exists. Preventing
+ this by searching to string representation of header for "user=phone".
+
+ ASTERISK-26988 #close
+
+ Change-Id: Ib84383b07254de357dc6a98d91fc1d2c2c3719e6
+
+2017-10-10 09:49 +0000 [8e05796e81] Tzafrir Cohen <tzafrir.cohen@xorcom.com>
+
+ * cdr_mysql: avoid releasing a config string
+
+ Fixes a memory corruption issue after a reload of cdr_mysql.
+
+ Issue was accidentally included in 747beb1ed159f89a3b58742e4257740b3d6d6bba .
+
+ ASTERISK-27270 #close
+
+ Change-Id: I90b6a9d18710c0f9009466370bd5f4bac5d5d12e
+
+2017-10-05 18:12 +0000 [5f6bad6733] Richard Mudgett <rmudgett@digium.com>
+
+ * cdr.c: Defer misc checks.
+
+ Try to defer some checks until needed in case there is an early exit.
+
+ Change-Id: Ibc6b34c38a4f60ad4f9b67984b7d070a07257064
+
+2017-10-11 07:03 +0000 [f3f141781c] George Joseph <gjoseph@digium.com>
+
+ * chan_vpb: Fix a gcc 7 out-of-bounds complaint
+
+ chan_vpb was trying to use sizeof(*p->play_dtmf), where
+ p->play_dtmf is defined as char[16], to get the length of the array
+ but since p->play_dtmf is an actual array, sizeof(*p->play_dtmf)
+ returns the size of the first array element, which is 1. gcc7
+ validly complains because the context in which it's used could
+ cause an out-of-bounds condition.
+
+ Change-Id: If9c4bfdb6b02fa72d39e0c09bf88900663c000ba
+
+2017-10-06 02:39 +0000 [416e35589e] Nathan Bruning <nathan@iperity.com>
+
+ * app_queue.c: clear moh field in init_queue
+
+ ASTERISK-27301 #close
+
+ Change-Id: Ic31361f34e2de3b6470e68fc37205a7711082eba
+
+2017-10-10 12:01 +0000 [e71a65a358] Sean Bright <sean.bright@gmail.com>
+
+ * app_originate: Set ORIGINATE_STATUS correctly on failure
+
+ We were ignoring the return value from ast_pbx_outgoing_exten() and
+ ast_pbx_outgoing_app() which could fail before setting the reason code.
+ This resulted in failures being reported as success.
+
+ ASTERISK-25266 #close
+ Reported by: Allen Ford
+
+ Change-Id: Idf16237b7e41b527d2c69c865829128686beeb3b
+
+2017-10-02 16:46 +0000 [42fdfffefc] Richard Mudgett <rmudgett@digium.com>
+
+ * cdr.c: Eliminated simple RAII_VAR usages.
+
+ Change-Id: I150505db307249a962987e7b941bdd369bb91f35
+
+2017-10-09 22:51 +0000 [48971e4d43] Corey Farrell <git@cfware.com>
+
+ * res_pjproject: Fix cleanup of buildopts vector.
+
+ ASTERISK-27306
+
+ Change-Id: I3bed0edf3f55b1d4adcbabb25ec14f11dc766c72
+
+2017-10-03 16:09 +0000 [128f7ffaa2] Richard Mudgett <rmudgett@digium.com>
+
+ * cdr.c: Replace redundant check with an ast_assert()
+
+ The only caller of cdr_object_fn_table.process_party_b() explicitly does
+ the check before calling.
+
+ Change-Id: Ib0c53cdf5048227842846e0df9d2c19117c45618
+
+2017-10-02 17:41 +0000 [3525081a7c] Richard Mudgett <rmudgett@digium.com>
+
+ * cdr.c: Replace inlined code with ao2_t_replace()
+
+ Change-Id: I9f424f5282ca7d833592f958d95f1b2bafb549b0
+
+2017-09-29 12:07 +0000 [7366657a9a] Richard Mudgett <rmudgett@digium.com>
+
+ * cdr.c: Use current ao2 flag names
+
+ Change-Id: Ib59d7d2f2a4a822754628f2c48a308d6791a6e6e
+
+2017-09-29 12:31 +0000 [34d55352a5] Richard Mudgett <rmudgett@digium.com>
+
+ * cdr.h: Fix doxygen comments.
+
+ * Also some misc formatting in cdr.c.
+
+ Change-Id: Ied89a28802a662c37c43326a1aafdce596e0df4a
+
+2017-09-20 18:36 +0000 [d388c18abf] Richard Mudgett <rmudgett@digium.com>
+
+ * res_pjsip_registrar.c: Update remove_existing AOR contact handling.
+
+ When "rewrite_contact" is enabled, the "max_contacts" count option can
+ block re-registrations because the source port from the endpoint can be
+ random. When the re-registration is blocked, the endpoint may give up
+ re-registering and require manual intervention.
+
+ * The "remove_existing" option now allows a registration to succeed by
+ displacing any existing contacts that now exceed the "max_contacts" count.
+ Any removed contacts are the next to expire. The behaviour change is
+ beneficial when "rewrite_contact" is enabled and "max_contacts" is greater
+ than one. The removed contact is likely the old contact created by
+ "rewrite_contact" that the device is refreshing.
+
+ ASTERISK-27192
+
+ Change-Id: I64c107a10b70db1697d17136051ae6bf22b5314b
+
+2017-10-04 10:46 +0000 [82592c3673] Corey Farrell <git@cfware.com>
+
+ * res_pjsip: Fix issues that prevented shutdown of modules.
+
+ res_pjsip and res_pjsip_session had circular references, preventing both
+ modules from shutting down.
+ * Move session supplement registration to res_pjsip.
+ * Use create internal functions for use by pjsip_message_filter.c.
+
+ ASTERISK-27306
+
+ Change-Id: Ifbd5c19ec848010111afeab2436f9699da06ba6b
+
+2017-10-09 08:15 +0000 [6b16fa12c8] Sean Bright <sean.bright@gmail.com>
+
+ * res_config_sqlite: Don't enable SQLite CDRs when running 'make samples'
+
+ Change-Id: I65a5190b2732b2246d67472db70dd37db64ddad4
+
+2017-10-08 14:05 +0000 [39b68a41f7] David Hajek <david.hajek@daktela.com>
+
+ * res/res_ari.c Fix: Memory leaks in ARI when using Content-Type: application/json
+
+ ASTERISK-27305
+ Reported by: David Hajek
+ Tested by: David Hajek
+
+ Change-Id: Ife3e289062e6cf7d0e7d342dbf79ed96feff441e
+
+2017-10-08 09:11 +0000 [209916981a] Alexander Traud <pabstraud@compuserve.com>
+
+ * tcptls: Do not re-bind to wildcard on client creation.
+
+ Since ASTERISK-26922, this issue affected only those chan_sip which were
+ * enabled for dual-stack (bindaddr=::), and
+ * enabled for TCP (tcpenable=yes) and/or TLS (tlsenable=yes), and
+ * tried to register and/or invite a IPv4-only service,
+ * via TCP and/or TLS.
+ Now, ast_tcptls_client_create does not re-bind to [::] anymore.
+
+ ASTERISK-27324 #close
+
+ Change-Id: I4b242837bdeb1ec7130dc82505c6180a946fd9b5
+
+2017-10-05 16:26 +0000 [f1163c0f6f] Corey Farrell <git@cfware.com>
+
+ * res_pjsip: Fix leak of persistent endpoint references.
+
+ Do not manually call sip_endpoint_apply_handler from load_all_endpoints.
+ This is not necessary and causes memory leaks.
+
+ Additionally reinitialize persistent->aors when we reuse a persistent
+ object with a new endpoint.
+
+ ASTERISK-27306
+
+ Change-Id: I59bbfc8da8a14d5f4af8c5bb1e71f8592ae823eb
+
+2017-10-05 17:59 +0000 [8bf4be1048] Corey Farrell <git@cfware.com>
+
+ * vector: multiple evaluation of elem in AST_VECTOR_ADD_SORTED.
+
+ Use temporary variable to prevent multiple evaluations of elem argument.
+ This resolves a memory leak in res_pjproject startup.
+
+ ASTERISK-27317 #close
+
+ Change-Id: Ib960d7f5576f9e1a3c478ecb48995582a574e06d
+
+2017-10-05 15:54 +0000 [5110600f1e] Corey Farrell <git@cfware.com>
+
+ * res_pjsip: Fix leak of fake_auth references.
+
+ pjsip_distributor leaks references to fake_auth when the default realm
+ has not changed.
+
+ ASTERISK-27306
+
+ Change-Id: I3fcf103b3680ad2d1d4610dcd6738eeaebf4d202
+
+2017-10-05 20:23 +0000 [462dd7c2de] Corey Farrell <git@cfware.com>
+
+ * main/strings: Fix uninitialized value.
+
+ ast_strings_match uses sscanf and checks for non-zero return to verify a
+ token was parsed. This is incorrect as sscanf returns EOF (-1) for errors.
+
+ ASTERISK-27318 #close
+
+ Change-Id: Ifcece92605f58116eff24c5a0a3b0ee08b3c87b1
+
+2017-09-28 02:56 +0000 [29c442b587] Benoît Dereck-Tricot <benoit.dereck-tricot@eyepea.eu>
+
+ * res_calendar_icalendar: Filter out occurrences superceded by another VEVENT
+
+ When we are loading the calendars, we call libical's
+ icalcomponent_foreach_recurrence method for each VEVENT component that
+ we have in our calendar.
+
+ That method has no knowledge concerning the existence of the other
+ VEVENT components and will feed our callback with all ocurrences
+ matching the requested time span.
+
+ The occurrences generated by icalcomponent_foreach_recurrence while
+ expanding a recurring VEVENT's RRULE and RDATE properties can be
+ superceded by an other VEVENT sharing the same UID.
+
+ I use an external iterator (in libical terminology) to avoid messing
+ with the internal ones from the calling function, and search for
+ VEVENTS which could supersede the current occurrence.
+
+ The event which can invalidate this occurence needs to have:
+
+ - the same UID as our recurrent component (comp)
+ - a RECURRENCE-ID property, which represents the start time of this
+ occurrence
+
+ If one component is found, just clean and return.
+
+ ASTERISK-27296 #close
+ Reported by: Benoît Dereck-Tricot
+
+ Change-Id: I8587ae3eaa765af7cb21eda3b6bf84e8a1c87af8
+
+2017-10-03 15:16 +0000 [6c30f4a2d1] Torrey Searle <torrey@voxbone.com>
+
+ * contrib/thirdparty/sip_to_pjsip: add additional flag mappings
+
+ add mappings for udptl redundancy, rtptimeout, and debug flags
+
+ Change-Id: Ie73cf5c83c05dee01eb9624ede76c1a30225d73a
+
+2017-10-02 07:48 +0000 [6dfe5b29b6] Daniel Tryba <daniel@pocos.nl>
+
+ * res_pjsip_caller_id chan_sip: Comply to RFC 3323 values for privacy
+
+ Currently privacy requests are only granted if the Privacy header
+ value is exactly "id" (defined in RFC 3325). It ignores any other
+ possible value (or a combination there of). This patch reverses the
+ logic from testing for "id" to grant privacy, to testing for "none" and
+ granting privacy for any other value. "none" must not be used in
+ combination with any other value (RFC 3323 section 4.2).
+
+ ASTERISK-27284 #close
+
+ Change-Id: If438a21f31a962da32d7a33ff33bdeb1e776fe56
+
+2017-09-28 17:37 +0000 [0945f10d3b] Richard Mudgett <rmudgett@digium.com>
+
+ * app_queue.c: Fix announcements when announce-to-first-user not enabled.
+
+ The previous patch for ASTERISK-27216 made it so you wouldn't get any
+ position or periodic announcements unless you had announce-to-first-user
+ enabled. The announce-to-first-user feature was added by ASTERISK_21782
+ as a result of the patch which introduced the redundant announcements that
+ ASTERISK-27216 removes.
+
+ * By noting that the makeannouncement variable is used to suppresses the
+ first user announcement, we set its initial value to the
+ announce-to-first-user enable setting.
+
+ ASTERISK-27216
+
+ Change-Id: Ieaeb7dbea8ae7073086b775fbafe0625b000b10a
+
+2017-09-21 14:43 +0000 [a433bb38b5] Richard Mudgett <rmudgett@digium.com>
+
+ * heap.c: No need to calloc heap pointer array.
+
+ Change-Id: I5ae2f316229f336eb90d99c7af7ed07a33097e68
+
+2017-09-27 13:45 +0000 [47620ea862] George Joseph <gjoseph@digium.com>
+
+ * logger: Bring back ability to turn debug on by source file
+
+ Somewhere along the way we lost the ability to debug individual
+ source files. For modules, this wasn't a big deal but all the
+ source files in ./main are in the one "core" module so debugging
+ individual core capabilities was almost impossible.
+
+ * Added a test to DEBUG_ATLEAST that also checks __FILE__ instead
+ of just module name. Any source file will work even if it's in
+ a module subdirectory.
+
+ Change-Id: Icc0af41837f3b1679dec7af21fa32cd1f7469f6e
+
+2017-09-26 11:01 +0000 [d70d7b2f5d] George Joseph <gjoseph@digium.com>
+
+ * pjsip_message_filter: Fix regression causing bad contact address
+
+ The "res_pjsip: Filter out non SIP(S) requests" commit moved the
+ filtering of messages to pjproject's PJSIP_MOD_PRIORITY_TRANSPORT_LAYER
+ in order to filter out incoming bad uri schemes as early as possible.
+ Since the change affected outgoing messages as well and the TRANSPORT
+ layer is the last to be run on outgoing messages, we were overwriting
+ the setting of external_signaling_address (which is set earlier by
+ res_pjsip_nat) with an internal address.
+
+ * pjsip_message_filter now registers itself as a pjproject module
+ twice. Once in the TSX layer for the outgoing messages (as it was
+ originally), then a second time in the TRANSPORT layer for the
+ incoming messages to catch the invalid uri schemes.
+
+ ASTERISK-27295
+ Reported by: Sean Bright
+
+ Change-Id: I2c90190c43370f8a9d1c4693a19fd65840689c8c
+
+2017-09-13 21:31 +0000 [221d8a5c24] Richard Mudgett <rmudgett@digium.com>
+
+ * res_rtp_asterisk.c: Fix bridge_p2p_rtp_write() reentrancy potential.
+
+ The bridge_p2p_rtp_write() has potential reentrancy problems.
+
+ * Accessing the bridged RTP members must be done with the instance1 lock
+ held. The DTMF and asymmetric codec checks must be split to be done with
+ the correct RTP instance struct locked. i.e., They must be done when
+ working on the appropriate side of the point to point bridge.
+
+ * Forcing the RTP mark bit was referencing the wrong side of the point to
+ point bridge. The set mark bit is used everywhere else to set the mark
+ bit when sending not receiving.
+
+ The patches for ASTERISK_26745 and ASTERISK_27158 did not take into
+ account that not everything carried by RTP uses a codec. The telephony
+ DTMF events are not exchanged with a codec. As a result when
+ RFC2833/RFC4733 sent digits you would crash if "core set debug 1" is
+ enabled, the DTMF digits would always get passed to the core even though
+ the local native RTP bridge is active, and the DTMF digits would go out
+ using the wrong SSRC id.
+
+ * Add protection for non-format payload types like DTMF when updating the
+ lastrxformat and lasttxformat. Also protect against non-format payload
+ types when checking for asymmetric codecs.
+
+ ASTERISK-27292
+
+ Change-Id: I6344ab7de21e26f84503c4d1fca1a41579364186
+
+2017-09-25 13:09 +0000 [f3b1b64d21] Sean Bright <sean.bright@gmail.com>
+
+ * pjproject: Patch to correct STUN FINGERPRINT usage
+
+ Change-Id: I0e453253dff1388b0186b36c754457c1d0d12db6
+
+2017-09-25 10:59 +0000 [8d2c3effc2] Richard Mudgett <rmudgett@digium.com>
+
+ * channel.c: Fix invalid reference in conditionaled out code.
+
+ ASTERISK-27289
+
+ Change-Id: I7a415948116493050614d9f4fa91ffbe0c21ec4c
+
+2017-09-25 07:25 +0000 [690f7f7c76] George Joseph <gjoseph@digium.com>
+
+ * build: A few gcc 7 error fixes
+
+ Change-Id: I7b5300fbf1af7d88d47129db13ad6dbdc9b553ec
+
+2017-09-22 10:02 +0000 [f39af4d36d] Sean Bright <sean.bright@gmail.com>
+
+ * res_pjsip: Use ast_sip_is_content_type() where appropriate
+
+ Change-Id: If3ab0d73d79ac4623308bd48508af2bfd554937d
+
+2017-09-19 05:22 +0000 [c98e980fff] Rodrigo Ramírez Norambuena <a@rodrigoramirez.com>
+
+ * res_config_pgsql: Fix removed support to previous for versions PostgreSQL 9.1
+
+ In PostgreSQL 9.1 the backslash are string literals and not the escape
+ of characters.
+
+ In previous issue ASTERISK_26057 was fixed the use of escape LIKE but the
+ support for old version of Postgresql than 9.1 was dropped. The sentence
+ before make was "ESCAPE '\'" but in version before than 9.1 need it to be
+ as follow "ESCAPE '\\'".
+
+ ASTERISK-27283
+
+ Change-Id: I96d9ee1ed7693ab17503cb36a9cd72847165f949
+
+2017-09-15 02:59 +0000 [0adf6f3bd9] Stefan Engström <stefanen@kth.se>
+
+ * app_queue: Only do announcement logic between ringing cycles
+
+ This patch reverts the change by patch 2263 from old reviewboard.
+ Note that reverting that 2263-patch still preserves the behaviour that
+ the commit log of the 2263-patch claimed to add. The reason for this is:
+
+ The function wait_for_answer is only called from try_calling which
+ in turn is only called from the main for loop in queue_exec, and
+ earlier in that loop we already check the things that's removed by
+ this patch. There's no need to check those things twice each loop
+ iteration, and I think the proper place to check it is before each
+ ringing cycle. By checking it in wait_for_answer, you allow the issue
+ explained in the jira - that the head caller hears announcements while
+ the agents' sip phones are actively ringing.
+
+ Reported-by: Stefan Engström
+ Tested-by: Stefan Engström
+ ASTERISK-27216 #close
+
+ Change-Id: Ic4290dc75256f9743900c6762ee1bb915f672db0
+
+2017-09-07 04:41 +0000 [da40976987] Jean Aunis <jean.aunis@prescom.fr>
+
+ * bridge : Fix one-way direct-media when early bridging with native_rtp
+
+ When two channels were early bridged in a native_rtp bridge, the RTP description
+ on one side was not updated when the other side answered.
+ This patch forbids non-answered channels to enter a native_rtp bridge, and
+ triggers a bridge reconfiguration when an ANSWER frame is received.
+
+ ASTERISK-27257
+
+ Change-Id: If1aaee1b4ed9658a1aa91ab715ee0a6413b878df
+
+2017-09-19 10:38 +0000 [828a0611bc] George Joseph <gjoseph@digium.com>
+
+ * res_pjsip_pubsub: Check for Content-Type header in rx_notify_request
+
+ pubsub_on_rx_notify_request wasn't checking for a null
+ Content-Type header before checking that it was
+ application/simple-message-summary.
+
+ ASTERISK-27279
+ Reported by: Ross Beer
+
+ Change-Id: Iec2a6c4d2e74af37ff779ecc9fd35644c5c4ea52
+
+2017-09-19 09:34 +0000 [94f616e5e2] David J. Pryke <david+extra.asterisk@pryke.us>
+
+ * chan_sip: Expose read-only access to the full SIP INVITE Request-URI
+
+ Provide a way to get the contents of the the Request URI from the initial SIP
+ INVITE in dial plan function call. (In this case "${CHANNEL(ruri)}")
+
+ ASTERISK-27278
+ Reported by: David J. Pryke
+ Tested by: David J. Pryke
+
+ Change-Id: I1dd4d6988eed1b6c98a9701e0e833a15ef0dac3e
+
+2017-09-18 10:27 +0000 [cfc0ca1fb5] Alexander Traud <pabstraud@compuserve.com>
+
+ * tcptls: Fixed a white space error.
+
+ ASTERISK-26606
+
+ Change-Id: I81a7268ef7ba012d4d80d44c70b6276d48e397fa
+
+2017-09-18 10:00 +0000 [99a08eb7ab] Alexander Traud <pabstraud@compuserve.com>
+
+ * res_srtp: lower log level of auth failures
+
+ Previously, sRTP authentication failures were reported on log level WARNING.
+ When such failures happen, each RT(C)P packet is affected, spamming the log.
+ Now, those failures are reported at log level VERBOSE 2. Furthermore, the
+ amount is further reduced (previously all two seconds, now all three seconds).
+ Additionally, the new log entry informs whether media (RTP) or statistics (RTCP)
+ are affected.
+
+ ASTERISK-16898 #close
+
+ Change-Id: I6c98d46b711f56e08655abeb01c951ab8e8d7fa0
+
+2017-09-13 03:46 +0000 [f1eb36ea51] alex <alexandr.revin@gmail.com>
+
+ * cdr_mysql.c: Apply cdrzone to start and answer
+
+ Change-Id: I7de0a5adc89824a5f2b696fc22c80fc22dff36b0
+
+2017-08-25 17:01 +0000 [6d4b801c83] Richard Mudgett <rmudgett@digium.com>
+
+ * AST-2017-008: Improve RTP and RTCP packet processing.
+
+ Validate RTCP packets before processing them.
+
+ * Validate that the received packet is of a minimum length and apply the
+ RFC3550 RTCP packet validation checks.
+
+ * Fixed potentially reading garbage beyond the received RTCP record data.
+
+ * Fixed rtp->themssrc only being set once when the remote could change
+ the SSRC. We would effectively stop handling the RTCP statistic records.
+
+ * Fixed rtp->themssrc to not treat a zero value as special by adding
+ rtp->themssrc_valid to indicate if rtp->themssrc is available.
+
+ ASTERISK-27274
+
+ Make strict RTP learning more flexible.
+
+ Direct media can cause strict RTP to attempt to learn a remote address
+ again before it has had a chance to learn the remote address the first
+ time. Because of the rapid relearn requests, strict RTP could latch onto
+ the first remote address and fail to latch onto the direct media remote
+ address. As a result, you have one way audio until the call is placed on
+ and off hold.
+
+ The new algorithm learns remote addresses for a set time (1.5 seconds)
+ before locking the remote address. In addition, we must see a configured
+ number of remote packets from the same address in a row before switching.
+
+ * Fixed strict RTP learning from always accepting the first new address
+ packet as the new stream.
+
+ * Fixed strict RTP to initialize the expected sequence number with the
+ last received sequence number instead of the last transmitted sequence
+ number.
+
+ * Fixed the predicted next sequence number calculation in
+ rtp_learning_rtp_seq_update() to handle overflow.
+
+ ASTERISK-27252
+
+ Change-Id: Ia2d3aa6e0f22906c25971e74f10027d96525f31c
+
+2017-09-13 14:14 +0000 [5075cc8eed] Sean Bright <sean.bright@gmail.com>
+
+ * res_calendar: On reload, update all configuration
+
+ This changes the behavior of res_calendar to drop all existing calendars
+ and re-create them whenever a reload is done. The Calendar API provides
+ no way for configuration information to be pushed down to calendar
+ 'techs' so updated settings would not take affect until a module
+ unload/load was done or Asterisk was restarted.
+
+ Asterisk 15+ already has a configuration option 'fetch_again_at_reload'
+ that performs a similar function.
+
+ Also fix a tiny memory leak in res_calendar_caldav while we're at it.
+
+ ASTERISK-25524 #close
+ Reported by: Jesper
+
+ Change-Id: Ib0f8057642e9d471960f1a79fd42e5a3ce587d3b
+
+2017-09-13 16:23 +0000 [63900374fa] George Joseph <gjoseph@digium.com>
+
+ * res_pjsip: Filter out non SIP(S) requests
+
+ Incoming requests with non sip(s) URIs in the Request, To, From
+ or Contact URIs are now rejected with
+ PJSIP_SC_UNSUPPORTED_URI_SCHEME (416). This is performed in
+ pjsip_message_filter (formerly pjsip_message_ip_updater) and is
+ done at pjproject's "TRANSPORT" layer before a request can even
+ reach the distributor.
+
+ URIs read by res_pjsip_outbound_publish from pjsip.conf are now
+ also checked for both length and sip(s) scheme. Those URIs read
+ by outbound registration and aor were already being checked for
+ scheme but their error messages needed to be updated to include
+ scheme failure as well as length failure.
+
+ Change-Id: Ibb2f9f1d2dc7549da562af4cbd9156c44ffdd460
+
+2017-09-13 14:08 +0000 [db785ddb92] Sean Bright <sean.bright@gmail.com>
+
+ * res_calendar: Various fixes
+
+ * The way that we were looking at XML elements for CalDAV was extremely
+ fragile, so use SAX2 for increased robustness.
+
+ * Don't complain about a 'channel' not be specified if autoreminder is
+ not set. Assume that if 'channel' is not set, we don't want to be
+ notified.
+
+ * Fix some truncated CLI output in 'calendar show calendar' and make the
+ 'Autoreminder' description a bit more clear
+
+ ASTERISK-24588 #close
+ Reported by: Stefan Gofferje
+
+ ASTERISK-25523 #close
+ Reported by: Jesper
+
+ Change-Id: I200d11afca6a47e7d97888f286977e2e69874b2c
+
+2017-09-13 09:38 +0000 [0688f61a01] Sean Bright <sean.bright@gmail.com>
+
+ * chan_rtp: Use μ-law by default instead of signed linear
+
+ Multicast/Unicast RTP do not use SDP so we need to use a format that
+ cleanly maps to one of the static RTP payload types. Without this
+ change, an Originate to a Multicast or Unicast channel without a format
+ specified would produce no audio on the receiving device.
+
+ ASTERISK-21399 #close
+ Reported by: Tzafrir Cohen
+
+ Change-Id: I97e332b566e85da04b0004b9b0daae746cfca0e3
+
+2017-09-11 05:46 +0000 [ed2a4ee81e] George Joseph <gjoseph@digium.com>
+
+ * res_pjsip: Add handling for incoming unsolicited MWI NOTIFY
+
+ A new endpoint parameter "incoming_mwi_mailbox" allows Asterisk to
+ receive unsolicited MWI NOTIFY requests and make them available to
+ other modules via the stasis message bus.
+
+ res_pjsip_pubsub has a new handler "pubsub_on_rx_mwi_notify_request"
+ that parses a simple-message-summary body and, if
+ endpoint->incoming_mwi_account is set, calls ast_publish_mwi_state
+ with the voice-message counts from the message.
+
+ Change-Id: I08bae3d16e77af48fcccc2c936acce8fc0ef0f3c
+
+2017-09-08 21:41 +0000 [044674c0cd] Richard Mudgett <rmudgett@digium.com>
+
+ * res_rtp_asterisk.c: Add doxygen to RTCP payload types.
+
+ Change-Id: I3f20ce428777cc4ce9c13b2f808d29ff8c873998
+
+2017-09-11 05:52 +0000 [5ff2d06aa6] George Joseph <gjoseph@digium.com>
+
+ * alembic: Fix typo in add_auto_info_to_endpoint_dtmf_mode
+
+ The downgrade function was missing "_v2" at the end of the
+ alter column type.
+
+ Change-Id: Iaa9bcef48d6f3590ce07a61342d8e66f00263d8e
+
+2017-09-10 06:17 +0000 [babb617f20] Walter Doekes <walter+asterisk@wjd.nu>
+
+ * res/res_pjsip: Fix localnet checks in pjsip, part 2.
+
+ In 45744fc53, I mistakenly broke SDP media address rewriting by
+ misinterpreting which address was checked in the localnet comparison.
+
+ Instead of checking the remote peer address to decide whether we need
+ media address rewriting, we check our local media address: if it's
+ local, then we rewrite. This feels awkward, but works and even made
+ directmedia work properly if you set local_net. (For the record: for
+ local peers, the SDP media rewrite code is not called, so the
+ comparison does no harm there.)
+
+ ASTERISK-27248 #close
+
+ Change-Id: I566be1c33f4d0a689567d451ed46bab9c3861d4f
+
+2017-09-05 11:13 +0000 [ad606844be] Florian Floimair <f.floimair@commend.com>
+
+ * alembic: Add support for MS-SQL
+
+ MS-SQL has no native Enum-type support and therefore
+ needs to work with constraints.
+ Since these constraints need unique names the suggested approach
+ referenced in the following alembic documentation has been applied:
+ http://bit.ly/2x9r8pb
+
+ ASTERISK-27255 #close
+
+ Change-Id: I4a399ba3eed41a33ce8cb294968ad340221580ee
+
+2017-09-05 07:31 +0000 [2aefc6e5fe] Jacek Konieczny <j.konieczny@eggsoft.pl>
+
+ * func_cdr: honour 'u' flag on dummy channel
+
+ Fixes ${CDR(...,u)} when used in cdr_custom.conf
+
+ ASTERISK-27165 #close
+
+ Change-Id: Ia4e0b6ba93e03d27886354c279737790e2cd6a83
+
+2017-09-06 16:05 +0000 [c0d4f1880e] Scott Griepentrog <scott@griepentrog.com>
+
+ * chan_sip: when getting sip pvt return failure if not found
+
+ In handle_request_invite, when processing a pickup, a call
+ is made to get_sip_pvt_from_replaces to locate the pvt for
+ the subscription. The pvt is assumed to be valid when zero
+ is returned indicating no error, and is dereferenced which
+ can cause a crash if it was not found.
+
+ This change checks the not found case and returns -1 which
+ allows the calling code to fail appropriately.
+
+ ASTERISK-27217 #close
+ Reported-by: Bryan Walters
+
+ Change-Id: I6bee92b8b8b85fcac3fd66f8c00ab18bc1765612
+
+2017-09-06 10:50 +0000 [e4797b2cbd] Sean Bright <sean.bright@gmail.com>
+
+ * app_waitforsilence: Cleanup & don't treat missing frames as 'noise'
+
+ * WaitForSilence completes successfully if it receives no media in the
+ specified timeout, but when acting as WaitForNoise that logic needs
+ to be reversed.
+
+ * Use standard argument parsing macros and add some error checking for
+ invalid values.
+
+ * The documentation indicated that the first argument to both
+ WaitForSilence and WaitForNoise was required when it was not. Update
+ the documentation to reflect that.
+
+ * Wrap up some behavior in structs to avoid boolean checks all over the
+ place.
+
+ ASTERISK-24066 #close
+ Reported by: M vd S
+
+ Change-Id: I01d40adc5b63342bb5018a1bea2081a0aa191ef9
+
+2017-09-01 05:17 +0000 [186ef1a657] George Joseph <gjoseph@digium.com>
+
+ * stasis/control: Fix possible deadlock with swap channel
+
+ If an error occurs during a bridge impart it's possible that
+ the "bridge_after" callback might try to run before
+ control_swap_channel_in_bridge has been signalled to continue.
+ Since control_swap_channel_in_bridge is holding the control lock
+ and the callback needs it, a deadlock will occur.
+
+ * control_swap_channel_in_bridge now only holds the control
+ lock while it's actually modifying the control structure and
+ releases it while the bridge impart is running.
+ * bridge_after_cb is now tolerant of impart failures.
+
+ Change-Id: Ifd239aa93955b3eb475521f61e284fcb0da2c3b3
+
+2017-09-06 05:23 +0000 [597d1f8951] Vitezslav Novy <a1@vnovy.net>
+
+ * chan_sip: Do not change IP address in SDP origin line (o=) in SIP reINVITE
+
+ If directmedia=yes is configured, when call is answered, Asterisk sends reINVITE
+ to both parties to set up media path directly between the endpoints.
+ In this reINVITE msg SDP origin line (o=) contains IP address of endpoint
+ instead of IP of asterisk. This behavior violates RFC3264, sec 8:
+ "When issuing an offer that modifies the session,
+ the "o=" line of the new SDP MUST be identical to that in the
+ previous SDP, except that the version in the origin field MUST
+ increment by one from the previous SDP."
+ This patch assures IP address of Asterisk is always sent in
+ SDP origin line.
+
+ ASTERISK-17540
+ Reported by: saghul
+
+ Change-Id: I533a047490c43dcff32eeca8378b2ba02345b64e
+
+2017-09-06 07:54 +0000 [15ddc9acb3] George Joseph <gjoseph@digium.com>
+
+ * alembic: Fix enum creation for dtls_fingerprint
+
+ Change-Id: Ic061c5066a146616a68376881c7e4cf6d6e7e7db
+
+2017-09-05 11:08 +0000 [2370469645] Florian Floimair <f.floimair@commend.com>
+
+ * alembic: fix erroneous commit for add_prune_on_boot
+
+ Added include for postgresql ENUM type and
+ redefined values in the same way as in the
+ other migration scripts.
+
+ ASTERISK-27254 #close
+
+ Change-Id: Id667304cdf3891b1c2f7d35fab3e2a84026159fa
+
+2017-09-06 03:15 +0000 [13aa1241c3] Alexander Traud <pabstraud@compuserve.com>
+
+ * res_srtp: Add support for libsrtp2.1.
+
+ Asterisk is able to use libSRTP 2.0.x. However since libSRTP 2.1.x, the macro
+ SRTP_AES_ICM got renamed to SRTP_AES_ICM_128. Beside to still compile with
+ previous versions of libSRTP, this change allows libSRTP 2.1.x as well.
+
+ ASTERISK-27253 #close
+
+ Change-Id: I2e6eb3c3bc844fee8a624060a2eb6f182dc70315
+
+2017-09-05 09:35 +0000 [598a18ffee] Ben Ford <bford@digium.com>
+
+ * chan_pjsip: Suppress frame warnings.
+
+ When rtp_keepalive is on for a PJSIP endpoint dialing to another
+ Asterisk instance also using PJSIP, Asterisk will continue to print
+ warning messages about not being able to send frames of a certain
+ type. This suppresses that warning message.
+
+ Change-Id: I0332a05519d7bda9cacfa26d433909ff1909be67
+
+2017-08-25 17:05 +0000 [6c922b3157] Richard Mudgett <rmudgett@digium.com>
+
+ * res_rtp_asterisk.c: Check RTP packet version earlier.
+
+ Change-Id: Ic6493a7d79683f3e5845dff1cee49445fd5a0adf
+
+2017-09-05 10:05 +0000 [3f7d0b63fc] Sean Bright <sean.bright@gmail.com>
+
+ * formats: Restore previous fread() behavior
+
+ Some formats are able to handle short reads while others are not, so
+ restore the previous behavior for the format modules so that we don't
+ have spurious errors when playing back files.
+
+ ASTERISK-27232 #close
+ Reported by: Jens T.
+
+ Change-Id: Iab7f52b25a394f277566c8a2a4b15a692280a300
+
+2017-09-05 09:16 +0000 [45744fc53d] Walter Doekes <walter+asterisk@wjd.nu>
+
+ * res/res_pjsip: Standardize/fix localnet checks across pjsip.
+
+ In 2dee95cc (ASTERISK-27024) and 776ffd77 (ASTERISK-26879) there was
+ confusion about whether the transport_state->localnet ACL has ALLOW or
+ DENY semantics.
+
+ For the record: the localnet has DENY semantics, meaning that "not in
+ the list" means ALLOW, and the local nets are in the list.
+
+ Therefore, checks like this look wrong, but are right:
+
+ /* See if where we are sending this request is local or not, and if
+ not that we can get a Contact URI to modify */
+ if (ast_apply_ha(transport_state->localnet, &addr) != AST_SENSE_ALLOW) {
+ ast_debug(5, "Request is being sent to local address, "
+ "skipping NAT manipulation\n");
+
+ (In the list == localnet == DENY == skip NAT manipulation.)
+
+ And conversely, other checks that looked right, were wrong.
+
+ This change adds two macro's to reduce the confusion and uses those
+ instead:
+
+ ast_sip_transport_is_nonlocal(transport_state, addr)
+ ast_sip_transport_is_local(transport_state, addr)
+
+ ASTERISK-27248 #close
+
+ Change-Id: Ie7767519eb5a822c4848e531a53c0fd054fae934
+
+2017-09-05 05:23 +0000 [786c4791f9] George Joseph <gjoseph@digium.com>
+
+ * res_pjsip_t38: Make t38_reinvite_response_cb tolerant of NULL channel
+
+ t38_reinvite_response_cb can get called by res_pjsip_session's
+ session_inv_on_tsx_state_changed in situations where session->channel
+ is NULL. If it is, the ast_log warning segfaults because it tries
+ to get the channel name from a NULL channel.
+
+ * Check session->channel and print "unknown channel" when it's NULL.
+
+ ASTERISK-27236
+ Reported by: Ross Beer
+
+ Change-Id: I4326e288d36327f6c79ab52226d54905cdc87dc7
+
+2017-09-01 16:17 +0000 [55f30c29fd] Sean Bright <sean.bright@gmail.com>
+
+ * rtp_engine: Prevent possible double free with DTLS config
+
+ ASTERISK-27225 #close
+ Reported by: Richard Kenner
+
+ Change-Id: I097b81734ef730f8603c0b972909d212a3a5cf89
+
+2017-09-01 13:15 +0000 [f36db2dbdc] Sean Bright <sean.bright@gmail.com>
+
+ * chan_ooh323: Fix confusing indentation warning
+
+ ASTERISK-27177 #close
+ Reported by: Tzafrir Cohen
+
+ Change-Id: I40311c404edb2302a7543ad5ca7a06b2a38f2d97
+
+2017-09-01 09:51 +0000 [5f4863d4f9] Sean Bright <sean.bright@gmail.com>
+
+ * app_directory: Handle a NULL mailbox without crashing
+
+ ASTERISK-27241 #close
+ Reported by: David Moore
+
+ Change-Id: Ibbbca85517b04c315406ebfe3b6f7e0763daedc6
+
+2017-07-24 10:48 +0000 [990b017668] George Joseph <gjoseph@digium.com>
+
+ * pjsip_message_ip_updater: Fix issue handling "tel" URIs
+
+ sanitize_tdata was assuming all URIs were SIP URIs so when a non
+ SIP uri was in the From, To or Contact headers, the unconditional
+ cast of a non-pjsip_sip_uri structure to pjsip_sip_uri caused
+ a segfault when trying to access uri->other_param.
+
+ * Added PJSIP_URI_SCHEME_IS_SIP(uri) || PJSIP_URI_SCHEME_IS_SIPS(uri)
+ checks before attempting to cast or use the returned uri.
+
+ ASTERISK-27152
+ Reported-by: Ross Beer
+
+ Change-Id: Id380df790e6622c8058a96035f8b8f4aa0b8551f
+
+2017-07-01 19:24 +0000 [04ee3eb774] Corey Farrell <git@cfware.com>
+
+ * AST-2017-006: Fix app_minivm application MinivmNotify command injection
+
+ An admin can configure app_minivm with an externnotify program to be run
+ when a voicemail is received. The app_minivm application MinivmNotify
+ uses ast_safe_system() for this purpose which is vulnerable to command
+ injection since the Caller-ID name and number values given to externnotify
+ can come from an external untrusted source.
+
+ * Add ast_safe_execvp() function. This gives modules the ability to run
+ external commands with greater safety compared to ast_safe_system().
+ Specifically when some parameters are filled by untrusted sources the new
+ function does not allow malicious input to break argument encoding. This
+ may be of particular concern where CALLERID(name) or CALLERID(num) may be
+ used as a parameter to a script run by ast_safe_system() which could
+ potentially allow arbitrary command execution.
+
+ * Changed app_minivm.c:run_externnotify() to use the new ast_safe_execvp()
+ instead of ast_safe_system() to avoid command injection.
+
+ * Document code injection potential from untrusted data sources for other
+ shell commands that are under user control.
+
+ ASTERISK-27103
+
+ Change-Id: I7552472247a84cde24e1358aaf64af160107aef1
+
+2017-05-22 10:36 +0000 [1a022285dd] Joshua Colp <jcolp@digium.com>
+
+ * res_rtp_asterisk: Only learn a new source in learn state.
+
+ This change moves the logic which learns a new source address
+ for RTP so it only occurs in the learning state. The learning
+ state is entered on initial allocation of RTP or if we are
+ told that the remote address for the media has changed. While
+ in the learning state if we continue to receive media from
+ the original source we restart the learning process. It is
+ only once we receive a sufficient number of RTP packets from
+ the new source that we will switch to it. Once this is done
+ the closed state is entered where all packets that do not
+ originate from the expected source are dropped.
+
+ The learning process has also been improved to take into
+ account the time between received packets so a flood of them
+ while in the learning state does not cause media to be switched.
+
+ Finally RTCP now drops packets which are not for the learned
+ SSRC if strict RTP is enabled.
+
+ ASTERISK-27013
+
+ Change-Id: I56a96e993700906355e79bc880ad9d4ad3ab129c
+
+2017-08-29 14:22 +0000 [4aaccb7795] Richard Mudgett <rmudgett@digium.com>
+
+ * bridge_native_rtp.c: Fixup native_rtp_framehook()
+
+ * Fix framehook to test frame type for control frame.
+ * Made framehook exit early if frame type is not a control frame.
+ * Eliminated RAII_VAR in framehook.
+ * Use switch instead of else-if ladder for control frame handling.
+
+ Change-Id: Ia555fc3600bd85470e3c0141147dbe3ad07c1d18
+
+2017-08-29 09:26 +0000 [d2ace23248] Sean Bright <sean.bright@gmail.com>
+
+ * confbridge: Handle user hangup during name recording
+
+ This prevents orphaned CBAnn channels from getting stuck in the bridge.
+
+ ASTERISK-26994 #close
+ Reported by: James Terhune
+
+ Change-Id: I5e43e832a9507ec3f2c59752cd900b41dab80457
+
+2017-08-25 21:06 +0000 [a45af32983] Andre Nazario <samoied@users.sourceforge.net>
+
+ * chan_pjsip: Add tag info in CHANNEL function
+
+ Create local_tag and remote_tag in CHANNEL info to get tag from From and
+ To headers of a SIP dialog.
+
+ ASTERISK-27220
+
+ Change-Id: I59b16c4b928896fcbde02ad88f0e98922b15d524
+
+2017-08-25 13:44 +0000 [9e6efcace5] Sean Bright <sean.bright@gmail.com>
+
+ * voicemail: Fix various abuses of mkstemp
+
+ mkstemp() returns a unique filename, but appending an extension to that
+ filename does not guarantee uniqueness. Instead, use mkdtemp() and we
+ can put whatever extension we want on the files that we create inside
+ the directory.
+
+ In the case of app_minivm, we also now properly clean up any temporary
+ files that we create.
+
+ ASTERISK-20858 #close
+ Reported by: Walter Doekes
+
+ Change-Id: I30ad04f0e115f0b11693ff678ba5184d8b938e43
+
+2017-08-25 12:20 +0000 [01b5913ce0] Sean Bright <sean.bright@gmail.com>
+
+ * app_record: Resolve some absolute vs. relative filename bugs
+
+ If the Record() application is called with a relative filename that
+ includes directories, we were not properly creating the intermediate
+ directories and Record() would fail.
+
+ Secondarily, updated the documentation for RECORDED_FILE to mention
+ that it does not include a filename extension.
+
+ Finally, rewrote the '%d' functionality to be a bit more straight
+ forward and less noisy.
+
+ ASTERISK-16777 #close
+ Reported by: klaus3000
+
+ Change-Id: Ibc2640cba3a8c7f17d97b02f76b7608b1e7ffde2
+
+2017-08-23 10:01 +0000 [bf178a0f4f] Florian Floimair <f.floimair@commend.com>
+
+ * alembic: Add dtls_fingerprint column in ps_endpoints table
+
+ The ps_endpoints table was missing the dtls_fingerprint column
+ introduced with commit adba2a8d7fd.
+
+ ASTERISK-27168 #close
+
+ Change-Id: I9cb5006f7f50718b5239919562773adabb334cfd
+
+2016-02-28 19:05 +0000 [fff2f68616] Matt Jordan <mjordan@digium.com>
+
+ * main/app: Only look to end of file if ':end' is specified, and not just ':'
+
+ There is a little known feature in app_controlplayback that will cause the
+ specified offset to be used relative to the end of a file if a ':end' is
+ detected within the filename.
+
+ This feature is pretty bad, but okay.
+
+ However, a bug exists in this code where a ':' detected in the filename
+ will cause the end pointer to be non-NULL, even if the full ':end' isn't
+ specified. This causes us to treat an unspecified offset (0) as being
+ "start playing from the end of the file", resulting in no file playback
+ occurring.
+
+ This patch fixes this bug by resetting the end pointer if ':end' is not
+ found in the filename.
+
+ ASTERISK-23608 #close
+ Reported by: Jonathan White
+
+ Change-Id: Ib4c7b1b45283e4effd622a970055c51146892f35
+ (cherry picked from commit 13efea24f7ce6ccc01d1a5a0603be2636d83a408)
+
+2017-08-24 09:42 +0000 [579d4593ac] Sean Bright <sean.bright@gmail.com>
+
+ * app_queue: Evaluate realtime queues when running dialplan functions
+
+ ASTERISK-19103 #close
+ Reported by: Jim Van Meggelen
+
+ Change-Id: I4bd32a9d1fcebb8ac56bff0e084d4f53e31b692b
+
+2017-08-23 09:19 +0000 [0af145de2d] Sean Bright <sean.bright@gmail.com>
+
+ * app_voicemail: Honor escape digits in "greeting only" mode
+
+ ASTERISK-21241 #close
+ Reported by: Eelco Brolman
+ Patches:
+ Patch uploaded by Eelco Brolman (License 6442)
+
+ Change-Id: Icbe39b5c82a49b46cf1d168dc17766f3d84f54fe
+
+2017-08-24 08:35 +0000 [d251a961ac] Sean Bright <sean.bright@gmail.com>
+
+ * res_smdi: Clean up memory leak
+
+ Change-Id: I1e33290929e1aa7c5b9cb513f8254f2884974de8
+
+2017-08-11 11:40 +0000 [3f22b53349] Richard Mudgett <rmudgett@digium.com>
+
+ * bridge_softmix.c: Remove always true test.
+
+ Change-Id: I26238df2ff0d0f6dfe95c3aa35da588f1ee71727
+
+2017-08-17 16:46 +0000 [b88c3a4209] Sungtae Kim <pchero21@gmail.com>
+
+ * app_queue: Fix initial hold time queue statistic
+
+ Fixed to use correct initial value and fixed to use the
+ correct queue info to check the first value.
+
+ ASTERISK-27204
+
+ Change-Id: Ia9e36c828e566e1cc25c66f73307566e4acb8e73
+
+2017-08-21 04:28 +0000 [8e99969000] Torrey Searle <torrey@voxbone.com>
+
+ * res/res_pjsip_session: allow SDP answer to be regenerated
+
+ If an SDP answer hasn't been sent yet, it's legal to change it.
+ This is required for PJSIP_DTMF_MODE to work correctly, and can
+ also have use in the future for updating codecs too.
+
+ ASTERISK-27209 #close
+
+ Change-Id: Idbbfb7cb3f72fbd96c94d10d93540f69bd51e7a1
+
+2017-08-20 08:15 +0000 [4faf77feec] Michael Kuron <m.kuron@gmx.de>
+
+ * res_xmpp: fix inverted return code check in OAuth
+
+ fetch_access_token calls func_curl via ast_func_read. The latter returns 0 upon
+ success and -1 if the function is not available.
+ This commit inverts the return code check so that an error is printed if the
+ module is not loaded and not if it is loaded.
+
+ ASTERISK-27207 #close
+
+ Change-Id: I9ef903f80702d1218e8701f65a4e5e918e6548fb
+
+2017-08-17 12:00 +0000 [a6251ec373] Sean Bright <sean.bright@gmail.com>
+
+ * res_calendar_icalendar: Properly handle recurring events
+
+ When looking for recurring events, use the correct end time based on the
+ configured 'timeframe.'
+
+ ASTERISK-27174 #close
+ Reported by: Mark Thompson
+
+ Change-Id: Id90c3cfc79d561a5521d79be176683e225f2edef
+
+2017-08-16 15:43 +0000 [572b5307e0] George Joseph <gjoseph@digium.com>
+
+ * Fix downloader not working with curl
+
+ The codec/dpma downloader wasn't handling curl correctly. The logic
+ that transforms makeopts into a bash-sourceable file wasn't
+ handling the make 'or' command in DOWNLOAD_TIMEOUT so bash was
+ looking for an 'or' command.
+
+ That logic has been eliminated. Instead of trying to transform
+ and source makeopts, the downloader now calls a make scriptlet
+ to print the value of a specific variable. This way, make handles
+ the ors (or any other make construct that happens to creep into
+ that file).
+
+ ASTERISK-27202
+ Reported by: Sean McCord
+
+ Change-Id: Iadfb6693528e4d4da7b8bb201fa66da2c71c7f99
+
+2017-08-15 15:15 +0000 [8594f73a81] Richard Mudgett <rmudgett@digium.com>
+
+ * configure: Check cache for valid pjproject tarball before downloading.
+
+ On a fresh Asterisk source directory, the bundled pjproject tarball is
+ unconditionally downloaded even if the tarball is already in a specified
+ cache directory.
+
+ * Made check if the pjproject tarball is valid in the cache directory
+ before downloading the tarball on a fresh source directory.
+
+ Change-Id: Ic7ec842d3c97ecd8dafbad6f056b7fdbce41cae5
+
+2017-08-15 11:14 +0000 [d08342b0cb] Richard Mudgett <rmudgett@digium.com>
+
+ * res_pjsip: Fix prune_on_boot to remove only contacts for the host.
+
+ * Check that the contact's reg_server matches the host's name before
+ deleting any prune_on_boot contacts. We don't want to delete reliable
+ transport contacts made with other servers if the ps_contacts database
+ table is shared with other servers.
+
+ Thanks to Ross Beer for pointing out that the original prune logic would
+ delete reliable transport contacts from other servers.
+
+ ASTERISK-27147
+
+ Change-Id: I8e439d0d1c266ffdfd7b73d1e5e466180a689bd0
+
+2017-08-04 09:25 +0000 [54e3ac402f] Andrey Egorov <andr06@gmail.com>
+
+ * res_xmpp: Google OAuth 2.0 protocol support for XMPP / Motif
+
+ Add ability to use tokens instead of passwords according to Google OAuth 2.0
+ protocol.
+
+ ASTERISK-27169
+ Reported by: Andrey Egorov
+ Tested by: Andrey Egorov
+
+ Change-Id: I07f7052a502457ab55010a4d3686653b60f4c8db
+
+2017-08-10 14:18 +0000 [bac3e8c08b] Richard Mudgett <rmudgett@digium.com>
+
+ * STUN/netsock2: Fix some valgrind uninitialized memory findings.
+
+ * netsock2.c: Test the addr->len member first as it may be the only member
+ initialized in the struct.
+
+ * stun.c:ast_stun_handle_packet(): The combinded[] local array could get
+ used uninitialized by ast_stun_request(). The uninitialized string gets
+ copied to another location and could overflow the destination memory
+ buffer.
+
+ These valgrind findings were found for ASTERISK_27150 but are not
+ necessarily a fix for the issue.
+
+ Change-Id: I55f8687ba4ffc0f69578fd850af006a56cbc9a57
+
+2017-08-02 18:44 +0000 [1cf2c79f37] Richard Mudgett <rmudgett@digium.com>
+
+ * res_pjsip_outbound_registration.c: Re-REGISTER on transport shutdown.
+
+ The fix for the issue is broken up into three parts.
+
+ This is part three which handles the client side of REGISTER requests.
+ The registered contact may no longer be valid on the server when the
+ transport used is reliable and the connection is broken.
+
+ * Re-REGISTER our contact if the reliable transport is broken after
+ registration completes. We attempt to re-REGISTER immediately to minimize
+ the time we are unreachable. Time may have already passed between the
+ connection being broken and the loss being detected.
+
+ * Reorder sip_outbound_registration_state_alloc() so the STATSD_GUAGE's
+ are still correct if an allocation failure happens.
+
+ ASTERISK-27147
+
+ Change-Id: I3668405b1ee75dfefb07c0d637826176f741ce83
+
+2017-07-31 14:21 +0000 [07d026b4cd] Richard Mudgett <rmudgett@digium.com>
+
+ * res_pjsip: Remove ephemeral registered contacts on transport shutdown.
+
+ The fix for the issue is broken up into three parts.
+
+ This is part two which handles the server side of REGISTER requests when
+ rewrite_contact is enabled. Any registered reliable transport contact
+ becomes invalid when the transport connection becomes disconnected.
+
+ * Monitor the rewrite_contact's reliable transport REGISTER contact for
+ shutdown. If it is shutdown then the contact must be removed because it
+ is no longer valid. Otherwise, when the client attempts to re-REGISTER it
+ may be blocked because the invalid contact is there. Also if we try to
+ send a call to the endpoint using the invalid contact then the endpoint is
+ not likely to see the request. The endpoint either won't be listening on
+ that port for new connections or a NAT/firewall will block it.
+
+ * Prune any rewrite_contact's registered reliable transport contacts on
+ boot. The reliable transport no longer exists so the contact is invalid.
+
+ * Websockets always rewrite the REGISTER contact address and the transport
+ needs to be monitored for shutdown.
+
+ * Made the websocket transport set a unique name since that is what we use
+ as the ao2 container key. Otherwise, we would not know which transport we
+ find when one of them shuts down. The names are also used for PJPROJECT
+ debug logging.
+
+ * Made the websocket transport post the PJSIP_TP_STATE_CONNECTED state
+ event. Now the global keep_alive_interval option, initially idle shutdown
+ timer, and the server REGISTER contact monitor can work on wetsocket
+ transports.
+
+ * Made the websocket transport set the PJSIP_TP_DIR_INCOMING direction.
+ Now initially idle websockets will automatically shutdown.
+
+ ASTERISK-27147
+
+ Change-Id: I397a5e7d18476830f7ffe1726adf9ee6c15964f4
+
+2017-07-28 18:26 +0000 [ca261d4b70] Richard Mudgett <rmudgett@digium.com>
+
+ * res_pjsip: PJSIP Transport state monitor refactor.
+
+ The fix for the issue is broken up into three parts.
+
+ This is part one which refactors the transport state monitor code to allow
+ more modules to be able to monitor transports.
+
+ * Pull the management of PJPROJECT's transport state callback code from
+ res_pjsip_transport_management.c into res_pjsip. Now other modules can
+ dynamically add and remove themselves from transport monitoring without
+ worrying about breaking PJPROJECT's callback chain.
+
+ * Add the ability for other modules to get a callback whenever a specific
+ transport is shutdown.
+
+ ASTERISK-27147
+
+ Change-Id: I7d9a31371eb1487c9b7050cf82a9af5180a57912
+
+2017-07-27 15:36 +0000 [162f6ab845] Richard Mudgett <rmudgett@digium.com>
+
+ * res_pjsip_transport_management.c: Rename some variables.
+
+ * Use monitored instead of the misleading keepalive name.
+
+ Change-Id: I9e5bcbb4ab2b82d49bcd0f06dfe85d15e0b552b6
+
+2017-08-10 09:09 +0000 [22575b6342] Scott Griepentrog <scott@griepentrog.com>
+
+ * res_pjsip_messaging: IPv6 receive address needs brackets
+
+ When handling an incoming SIP MESSAGE, PJSIP
+ attaches the IP address that the message was
+ received from to the message in the variable
+ PJSIP_RECVADDR. When the IP address is IPv6
+ the :PORT appended results in an unparseable
+ mess. By using an additional bit flag on the
+ pj_sockaddr_print call, the conventional use
+ of brackets around the address is achieved.
+
+ ASTERISK-27193 #close
+
+ Change-Id: I12342521f2ce87a5b6e4883d480a3fd957aa9fd9
+
+2017-08-09 08:01 +0000 [363d61ef58] George Joseph <gjoseph@digium.com>
+
+ * configure: Add --with-download-cache option
+
+ To make building without an internet connection easier, a new
+ ./configure option '--with-download-cache' was added that sets
+ the cache for externals (like pjproject, the codecs and the DPMA),
+ AND the sounds files. It can also be specified as an environment
+ variable named "AST_DOWNLOAD_CACHE". The existing
+ '--with-sounds-cache' option / SOUNDS_CACHE_DIR env variable and
+ '--with-externals-cache' option / EXTERNALS_CACHE_DIR env variable
+ remain and if specified, will override '--with-downloads-cache'.
+
+ Change-Id: I5c3cf15ee61e8fe191b52732303e969854f8d861
+
+2017-07-26 09:17 +0000 [3608f96ea3] Torrey Searle <torrey@voxbone.com>
+
+ * res_rtp_asterisk: enable rtcp & QOS stats on native bridge
+
+ Asterisk wasn't generating or forwarding RTCP packets when native
+ bridge was activated. Also the stats weren't available via
+ CHANNEL(qos). Now the RTCP stats are always calculated.
+
+ ASTERISK-27158 #close
+
+ Change-Id: I46fb8f61c95e836b9d2dda6054b0cf205c16037b
+
+2017-07-26 11:39 +0000 [0de7312fac] Joshua Colp <jcolp@digium.com>
+
+ * res_pjsip_session: Release media resources on session end quicker.
+
+ A change was made long ago where the session was kept around
+ until the underlying INVITE session had been destroyed. This
+ had the side effect of also keeping the underlying media resources
+ around for this time as well.
+
+ This change ensures that when we know the session is ending we
+ release the media resources immediately.
+
+ ASTERISK-27110
+
+ Change-Id: I643e431d5c3bf05cda220c1d39e824a505a29b82
+
+2017-08-02 16:08 +0000 [905c4ca3dc] Corey Farrell <git@cfware.com>
+
+ * app_privacy: remove unused header asterisk/image.h
+
+ Change-Id: I56ed530633a642633b18383821069e806c92ae82
+
+2017-08-03 13:13 +0000 [38dbc708e7] Tzafrir Cohen <tzafrir.cohen@xorcom.com>
+
+ * Support GMIME 3.0
+
+ Support building the Asterisk httpd with version 3.0 of gmime as
+ well as earlier versions of that library.
+
+ ASTERISK-27173
+
+ Change-Id: I7e13dd05a3083ccb0df2dabf83110223f6a9fa8f
+
+2017-07-28 07:53 +0000 [c4f201cd73] Torrey Searle <torrey@voxbone.com>
+
+ * res_rtp_asterisk: Make P2P bridge Asymmetric codec aware
+
+ Introduce a new property to rtp-engine to make it aware of
+ the desire for assymetric codecs or not. If asymmetric codecs
+ is not allowed, the bridge will compare read/write formats
+ and shut down the p2p bridge if needed
+
+ ASTERISK-26745 #close
+
+ Change-Id: I0d9c83e5356df81661e58d40a8db565833501a6f
+
+2017-08-03 21:30 +0000 [84b6a5efd7] Corey Farrell <git@cfware.com>
+
+ * Correct some leaks in unit tests.
+
+ * chan_sip: channel in test_sip_rtpqos_1.
+ * test_config: config hook, config info and global config holder.
+ * test_core_format: format in format_attribute_set_without_interface.
+ * test_stream: unneeded frame duplication.
+ * test_taskprocessor: task_data.
+
+ Change-Id: I94d364d195cf3b3b5de2bf3ad565343275c7ad31
+
+2017-07-26 17:49 +0000 [f9a823e9dc] Richard Mudgett <rmudgett@digium.com>
+
+ * res_pjsip_transport_websocket.c: Fix serializer ref leak.
+
+ Change-Id: Ib5a19bfd597f63d9021baeb645fc11153b3afa57
+
+2017-08-02 18:41 +0000 [631180a0c3] Richard Mudgett <rmudgett@digium.com>
+
+ * res_pjsip_outbound_registration.c: Misc fixes.
+
+ * Remove unnecessary CMP_STOP.
+
+ * In handle_client_registration() use DEBUG_ATLEAST() to only do work
+ needed for the debug log message when the debug log message is needed.
+
+ * In sip_outbound_registration_state_destroy() check state->registration
+ for NULL.
+
+ Change-Id: I656d0fa11dda0b00048103efb1558e67a426fd80
+
+2017-07-31 20:20 +0000 [7b84c6693e] Richard Mudgett <rmudgett@digium.com>
+
+ * res_pjsip_nat.c: Remove unnecessary CMP_STOP.
+
+ Change-Id: I6279b0d723bc3b75b8d65e81e02da9ea9bc0c3da
+
+2017-07-31 14:20 +0000 [a32614a2a8] Richard Mudgett <rmudgett@digium.com>
+
+ * res_pjsip_registrar.c: Remove unnecessary CMP_STOP.
+
+ Most uses of CMP_STOP are superfluous and are only respected when
+ OBJ_MULTIPLE is used to search the container.
+
+ Change-Id: I20571a202ec0aa1098bb2749eeba18de7ca110b8
+
+2017-08-03 11:30 +0000 [d066758a4c] Corey Farrell <git@cfware.com>
+
+ * Fix compile error for old versions of GCC.
+
+ Use -Wno-format-truncation only if supported by compiler.
+
+ ASTERISK-27171 #close
+
+ Change-Id: Iac0aed7a5bcaa16c21b7d62c4e4678d244c4ccb6
+
+2017-08-01 15:57 +0000 [ed1bce956e] George Joseph <gjoseph@digium.com>
+
+ * Revert "res_pjsip_session: Release media resources on session end quicker."
+
+ This reverts commit 98709642d640b490f327d220fdcdea6d45fd65d7.
+
+ See the 15 branch review.
+
+ Change-Id: I8476b3cdacaad5157fa36b6247d0e4cdf1e8d5c6
+
+2017-06-29 03:47 +0000 [9a09f7dd5d] Niklas Larsson <niklas@tese.se>
+
+ * app_queue: Add priority to AMI QueueStatus
+
+ Add priority to callers in AMI QueueStatus response
+
+ ASTERISK-27092 #close
+
+ Change-Id: I8d1f737a72c7c38f4cfe1a4ee3ecc0a4f85bd199
+
+2017-07-26 11:39 +0000 [3418d8d145] Joshua Colp <jcolp@digium.com>
+
+ * res_pjsip_session: Release media resources on session end quicker.
+
+ A change was made long ago where the session was kept around
+ until the underlying INVITE session had been destroyed. This
+ had the side effect of also keeping the underlying media resources
+ around for this time as well.
+
+ This change ensures that when we know the session is ending we
+ release the media resources immediately.
+
+ ASTERISK-27110
+
+ Change-Id: I3c6a82fe7d2c50b9dc9197cb12ef22f20d337501
+
+2017-07-26 08:48 +0000 [4d318cac68] Sean Bright <sean.bright@gmail.com>
+
+ * res_pjsip_pidf_eyebeam_body_supplement: Correct status presentation
+
+ This change fixes PIDF content generation when the underlying device
+ state is considered in use. Previously it was incorrectly marked
+ as closed meaning they were offline/unavailable. The code now
+ correctly marks them as open.
+
+ Additionally:
+
+ * Generate an XML element for our activity instead of a using a text
+ node.
+
+ * Consider every extension state other than "unavailable" to be 'open'
+ status.
+
+ * Update the XML namespaces and structure to reflect those
+ documented in RFC 4480
+
+ * Use 'on-the-phone' (defined in RFC 4880) instead of 'busy' as the
+ "in use" activity. This change results in eyeBeam using the
+ appropriate icon for the watched user.
+
+ This was tested on eyeBeam 1.5.20.2 build 59030 on Windows.
+
+ ASTERISK-26659 #close
+ Reported by: Abraham Liebsch
+ patches:
+ ASTERISK-26659.diff submitted by snuffy (license 5024)
+
+ Change-Id: I6e5ad450f91106029fb30517b8c0ea0c2058c810
+
+2017-07-23 18:34 +0000 [114602f434] Joshua Colp <jcolp@digium.com>
+
+ * res_pjsip: Add support for dnsmgr to external_media_address.
+
+ The "external_media_address" option on transports is now
+ resolved using dnsmgr. This allows it to be automatically
+ refreshed regularly if refreshes are enabled in dnsmgr.
+ If the system is using a dynamic IP address a dynamic DNS
+ hostname can be provided to keep the IP address up to
+ date.
+
+ Change-Id: Ia54771720dff0105bde55d5bbb81a3ba437e05b2
+
+2017-07-27 20:58 +0000 [0f49e6ee2e] Corey Farrell <git@cfware.com>
+
+ * Fix compiler warnings on Fedora 26 / GCC 7.
+
+ GCC 7 has added capability to produce warnings, this fixes most of those
+ warnings. The specific warnings are disabled in a few places:
+
+ * app_voicemail.c: truncation of paths more than 4096 chars in many places.
+ * chan_mgcp.c: callid truncated to 80 chars.
+ * cdr.c: two userfields are combined to cdr copy, fix would break ABI.
+ * tcptls.c: ignore use of deprecated method SSLv3_client_method().
+
+ ASTERISK-27156 #close
+
+ Change-Id: I65f280e7d3cfad279d16f41823a4d6fddcbc4c88
+
+2017-07-27 06:35 +0000 [0d58fefa30] George Joseph <gjoseph@digium.com>
+
+ * bundled_pjproject: Improve SSL/TLS error handling
+
+ OpenSSL has 2 levels or error processing. It's possible for the
+ top layer to return SSL_ERROR_SYSCALL but the lower layer return
+ no error, in which case processing should continue. Only the top
+ layer was being examined though so connections were being torn
+ down when they didn't need to be. This patch adds the examination
+ of the lower level codes, and if they return no errors, allows
+ processing to continue.
+
+ ASTERISK-27001
+ Reported-by: Ian Gilmour
+ patches:
+ pjproject-2.6.patch submitted by Ian Gilmour (license 6889)
+
+ Updated-by: George Joseph and Sauw Ming (Teluu)
+
+ Merged to upstream pjproject on 7/27/2017 (commit 5631)
+
+ Change-Id: I23844ca0c68ef1ee550f14d46f6dae57d33b7bd2
+
+2017-06-26 07:52 +0000 [423d01cf16] Torrey Searle <torrey@voxbone.com>
+
+ * chan_pjsip: add a new function PJSIP_DTMF_MODE
+
+ This function is a replica of SIPDtmfMode, allowing the DTMF mode of a
+ PJSIP call to be modified on a per-call basis
+
+ ASTERISK-27085 #close
+
+ Change-Id: I20eef5da3e5d1d3e58b304416bc79683f87e7612
+
+2017-07-25 15:17 +0000 [c16000f201] Sean Bright <sean.bright@gmail.com>
+
+ * res_rtp_asterisk: Fix mapping of pjsip's ICE roles to ours
+
+ Change-Id: Ia578ede1a55b21014581793992a429441903278b
+
+2017-07-20 08:08 +0000 [708cdc0b8e] Sergej Kasumovic <sergej@bicomsystems.com>
+
+ * res_stasis_device_state: Unsubscribe should remove old subscriptions
+
+ Case scenario with Applications ARI:
+
+ * Once you subscribe to deviceState with Applications REST API, it will be
+ added into subscription pool.
+
+ * When you unsubscribe it will remove from the device_state_subscription
+ hash table but not from the subscription pool.
+
+ * When you subscribe again, it will add it to pool again.
+
+ * Now you will have two subscriptions and you will receive same event
+ twice.
+
+ This fix should now remove deviceState subscription from pool and it
+ should fix unsubscribe on deviceState.
+
+ ASTERISK-27130 #close
+
+ Change-Id: I718b70d770a086e39b4ddba4f69a3c616d4476c4
+
+2017-07-24 13:30 +0000 [24bb5a8908] Joshua Colp <jcolp@digium.com>
+
+ * core: Add VP9 passthrough support.
+
+ This change adds VP9 as a known codec and creates a cached
+ "vp9" media format for use.
+
+ Change-Id: I025a93ed05cf96153d66f36db1839109cc24c5cc
+
+2017-07-21 15:57 +0000 [07f8e45a90] Matthew Fredrickson <creslin@digium.com>
+
+ * format.h: Fix a few minor errors in comments.
+
+ A few minor problems were found in comments in format.h. This patch fixes them.
+
+ Change-Id: I07f0bdb47b93359b361c4c3d8ecc87cd3199dd94
+
+2017-07-21 17:04 +0000 [7e9aa74daa] Rusty Newton <rnewton@digium.com>
+
+ * say.c: Fix file locations for second, seconds, minute, minutes files
+
+ The seconds and minutes files have always existed in the base language
+ directory of the Core package. So say.c has always been calling the wrong
+ location (under digits/) for those two files and in the case of second and
+ minute they didn't exist in the Core packages at all.
+
+ The 1.6 sounds release moves the second and minute files into Core from
+ Extra for the languages that already had them. A future release will include
+ the second and minute files for languages that didn't already have them.
+
+ This patch just changes all the target locations for second, seconds,
+ minute, and minutes that were under the digits subdir to be under the root of
+ sounds instead. Which is where the sounds will be for some languages after 1.6
+ sounds and for all languages after a future release.
+
+ ASTERISK-25810 #close
+
+ Change-Id: I05d9d4bee6a7237030530a46e7eb3df15f13f702
+ Reported-by: Nicolas Riendeau
+
+2017-07-19 18:11 +0000 [7ff9d8785d] Richard Mudgett <rmudgett@digium.com>
+
+ * app_voicemail.c: Allow mailbox entry on authentication retry prompt.
+
+ The following testsuite voicemail tests were failing to re-enter the
+ mailbox after the first login attempt.
+
+ tests/apps/voicemail/authenticate_invalid_mailbox
+ tests/apps/voicemail/authenticate_invalid_password
+
+ The tests were noting the start of the vm-incorrect-mailbox prompt and
+ immediately sending the mailbox for the next login attempt. Since the
+ invalid message playback had to complete before the digits were
+ recognized, the test passed for the wrong reason and added approximately
+ 20 seconds to the test times.
+
+ * Allow the vm-incorrect-mailbox prompt to get interrupted by the mailbox
+ digits like the initial vm-login prompt so the tests are able to enter the
+ intended mailbox.
+
+ Change-Id: I1dc53fe917bfe03a4587b2c4cd24c94696a69df8
+
+2017-07-21 14:20 +0000 [4f93f75e7e] Rusty Newton <rnewton@digium.com>
+
+ * Sounds: Update Makefile for Extra sounds 1.5.1 release
+
+ Incrementing version for the Extra sounds release. 1.5.1 Extra sounds
+ removes two prompts that were moved into the Core packages in the 1.6 Core
+ sounds release.
+
+ ASTERISK-27142 #close
+
+ Change-Id: I82f017812b0ea9599e19dd4635afd55611f13ee7
+
+2017-07-20 09:57 +0000 [cea4ce246d] Sean Bright <sean.bright@gmail.com>
+
+ * corosync: Fix corosync library name in configure.ac
+
+ Also add new corosync packages to install_prereq.
+
+ Reported by Travis Ryan in #asterisk-dev
+
+ Change-Id: Ib861c95ba630fed62dc54e56784ad8446ed9d2db
+
+2017-07-18 15:04 +0000 [9a47dd7113] Benjamin Keith Ford <bford@digium.com>
+
+ * pjsip: Increase maximum packet size.
+
+ The maximum packet size for PJSIP has been increased to handle the
+ multiple streams being added for WebRTC.
+
+ Change-Id: I9ea1e8d02668c544acadcb1c6200e1cc1bd588b3
+
+2017-07-11 04:48 +0000 [1c3e7df26e] Holger Hans Peter Freyther <holger@moiji-mobile.com>
+
+ * app_playback.c: Use the timezonename parameter
+
+ In say_date_generic the timezonename parameter is passed but never
+ used. Fix it by passing it to the ast_localtime function.
+
+ ASTERISK-27124
+
+ Change-Id: I6afa98f9163190043244b9f3ba91eb1874d1b586
+
+2017-07-16 12:18 +0000 [51761b759d] Joshua Colp <jcolp@digium.com>
+
+ * res_rtp_asterisk: Use RTP component for ICE if RTCP-MUX is in use.
+
+ This change makes it so that if an RTCP packet is being sent
+ the RTP ICE component is used for sending if RTCP-MUX is in use.
+
+ ASTERISK-27133
+
+ Change-Id: I6200f611ede709602ee9b89501720c29545ed68b
+
+2017-07-11 09:55 +0000 [a4c85309f0] Torrey Searle <torrey@voxbone.com>
+
+ * res/res_stasis_snoop: generate silence when audiohook returns null
+
+ Currently when rtp is paused, no packets are written to the
+ recorded audio file, causing the silence to be skipped and recording
+ not properly time aligned. The read handler as been adapted to
+ return a silence frame of the correct size.
+
+ ASTERISK-27128 #close
+
+ Change-Id: I2d7f60650457860b9c70907b14426756b058a844
+
+2017-07-14 01:25 +0000 [3858d99b73] Sergej Kasumovic <sergej@bicomsystems.com>
+
+ * app_confbridge: Make sure name recordings are always removed from the filesystem
+
+ This commit fixes two possible scenarios:
+
+ * When recording name and if during recording you hangup, file is never
+ removed. This is due to the fact file location is nulled.
+ * When recording name and if you hangup during thank-you prompt, file
+ is never removed.
+
+ ASTERISK-27123 #close
+
+ Change-Id: I39b7271408b4b54ce880c5111a886aa8f28c2625
+
+2017-07-14 01:11 +0000 [cdd6ca488a] Sergej Kasumovic <sergej@bicomsystems.com>
+
+ * chan_iax2: On reload make sure to check for existing MWI subscription
+
+ On every reload of chan_iax2 module, MWI subscription was added, which
+ results in additional taskprocessors being accumulated over time.
+
+ This commit fixes it by making sure we check for existing subscription
+ first.
+
+ This was verified with 'core show taskprocessors' CLI command.
+
+ ASTERISK-27122 #close
+
+ Change-Id: Ie2ef528fd5ca01b933eeb88188cc10967899cfb9
+
+2017-07-13 15:43 +0000 [9f66fb7901] Rusty Newton <rnewton@digium.com>
+
+ * Sounds: Update for core sounds 1.6 release
+
+ Added necessary lines to make the en_NZ language set selectable and to get
+ core sounds 1.6 pulled down.
+
+ ASTERISK-26807 #close
+ ASTERISK-25816 #close
+ ASTERISK-26274 #close
+
+ Change-Id: I84e4dd4696568cc1ba318d12ac4b075461d6eed4
+
+2017-07-10 14:04 +0000 [df49ad2528] Corey Farrell <git@cfware.com>
+
+ * core: Add PARSE_TIMELEN support to ast_parse_arg and ACO.
+
+ This adds support for parsing timelen values from config files. This
+ includes support for all flags which apply to PARSE_INT32. Support for
+ this parser is added to ACO via the OPT_TIMELEN_T option type.
+
+ Fixes an issue where extra characters provided to ast_app_parse_timelen
+ were ignored, they now cause an error.
+
+ Testing is included.
+
+ ASTERISK-27117 #close
+
+ Change-Id: I6b333feca7e3f83b4ef5bf2636fc0fd613742554
+
+2017-07-12 15:07 +0000 [6d0ff310c6] Sean Bright <sean.bright@gmail.com>
+
+ * basic-pbx: Remove res_pjsip_multihomed from sample config
+
+ ASTERISK-27127 #close
+ Reported by: HZMI8gkCvPpom0tM
+
+ Change-Id: I2b0c54570d58156e37166ac536728af3b6c01789
+
+2017-07-11 07:26 +0000 [4e555437dc] George Joseph <gjoseph@digium.com>
+
+ * res_musiconhold: Add kill_escalation_delay, kill_method to class
+
+ By default, when res_musiconhold reloads or unloads, it sends a HUP
+ signal to custom applications (and all descendants), waits 100ms,
+ then sends a TERM signal, waits 100ms, then finally sends a KILL
+ signal. An application which is interacting with an external
+ device and/or spawns children of its own may not be able to exit
+ cleanly in the default times, expecially if sent a KILL signal, or
+ if it's children are getting signals directly from
+ res_musiconhoild.
+
+ * To allow extra time, the 'kill_escalation_delay'
+ class option can be used to set the number of milliseconds
+ res_musiconhold waits before escalating kill signals, with the
+ default being the current 100ms.
+
+ * To control to whom the signals are sent, the "kill_method" class
+ option can be set to "process_group" (the default, existing
+ behavior), which sends signals to the application and its
+ descendants directly, or "process" which sends signals only to the
+ application itself.
+
+ Change-Id: Iff70a1a9405685a9021a68416830c0db5158603b
+
+2017-07-03 07:30 +0000 [4f2f3bfebf] Tzafrir Cohen <tzafrir.cohen@xorcom.com>
+
+ * Avoid setting maxfiles for a remote asterisk
+
+ Setting maxfiles (maximum number of open files) has no practical
+ effect on a remote asterisk (rasterisk, rasterisk -x).
+
+ It has an ill effect of printing an extra message, which
+ may be annoying in case of -x.
+
+ ASTERISK-27105 #close
+
+ Change-Id: Iaf9eb344e4b4b517df91b736b27ec55f6a6921a2
+
+2017-07-05 15:31 +0000 [32b98ad956] George Joseph <gjoseph@digium.com>
+
+ * http.c: Reduce log spam
+
+ Messages like "fwrite() failed: Connection reset by peer" are no
+ help whatsoever, especially since they can be caused simply by a
+ client disconnecting.
+
+ * Make those WARNINGs DEBUGs.
+ * Check the return of the headers fprintf.
+
+ Change-Id: I17bd5f3621514152a7b2b263c801324c5e96568b
+
+2017-07-07 11:19 +0000 [25e18bf514] Benjamin Keith Ford <bford@digium.com>
+
+ * res_pjsip: Fix crash with from_user containing invalid characters.
+
+ If the from_user field contains certain characters (like @, {, ^, etc.),
+ PJSIP will return a null value for the URI when attempting to parse it.
+ This causes a crash when trying to dial out through a trunk that contains
+ these invalid characters in its from_user field.
+
+ This change checks the configuration and ensures that an endpoint will
+ not be created if the from_user contains an invalid character. It also
+ adds a null check to the PJSIP URI parsing as a backup.
+
+ ASTERISK-27036 #close
+ Reported by: Maxim Vasilev
+
+ Change-Id: I0396fdb5080604e0bdf1277464d5c8a85db913d0
+
+2017-06-27 19:27 +0000 [8a803f75a0] Richard Mudgett <rmudgett@digium.com>
+
+ * json.c: Add backtrace log to find 'Invalid UTF-8 string' errors
+
+ Change-Id: I9020ff9f2b3749904317c0c173f47a1bbed6f929
+
+2017-07-05 13:39 +0000 [aa514f420b] Richard Mudgett <rmudgett@digium.com>
+
+ * res_rtp_asterisk.c: Fix TURN deadlock by using ICE session group lock.
+
+ When a message is received on the TURN socket, the code processing the
+ message needs to call into the ICE/STUN session for further processing.
+ This code path locks the TURN group lock then the ICE/STUN group lock. In
+ another thread an ICE/STUN timer can fire off to send a keep alive message
+ over the TURN socket. In this code path, the ICE/STUN group lock is
+ obtained then the TURN group lock is obtained to send the packet. A
+ classic deadlock case if the group locks are not the same.
+
+ * Made TURN get created using the ICE/STUN session's group lock.
+
+ NOTE: I was originally concerned that the ICE/STUN session can get
+ recreated by ice_reset_session() for an event like RTCP multiplexing
+ causing a change during SDP negotiation. In this case the TURN group lock
+ would become different. However, TURN is also recreated as part of the
+ ICE/STUN recreation in ice_create() when all known ICE candidates are
+ added to the new ICE session. While the ICE/STUN and TURN sessions are
+ being recreated there is a period where the group locks could be
+ different.
+
+ ASTERISK-27023 #close
+ Patches:
+ res_rtp_asterisk-turn-deadlock-fix.patch (license #6502)
+ patch uploaded by Michael Walton (modified)
+
+ Change-Id: Ic870edb99ce4988a8c8eb6e678ca7f19da1432b9
+
+2017-06-23 11:17 +0000 [22c4c1a0ba] Richard Mudgett <rmudgett@digium.com>
+
+ * bridge_native_rtp.c: Fix direct media video RTP instance ACL check.
+
+ The video stream was using the audio stream RTP instance addresses to
+ check if the video RTP gets directed to an allowed direct media Access
+ Control List (ACL) address. There is no guarantee that the video RTP
+ instance uses the same addresses as the audio RTP instance.
+
+ This looks like it has been a bug since v11 when direct media ACL was
+ first added to chan_sip and then faithfully reproduced through a couple
+ code refactorings into the new bridging architecture.
+
+ Change-Id: I8ddd56320e0eea769f3ceed3fa5b6bdfb51d681a
+
+2017-06-29 13:58 +0000 [194625c1de] Sean Bright <sean.bright@gmail.com>
+
+ * app_voicemail: Cleanup ODBC connection handling
+
+ The primary focus of this patch is adding a missing call to
+ ast_odbc_release_obj(), but is also a general cleanup of the ODBC
+ related code in app_voicemail.
+
+ ASTERISK-27093 #close
+
+ Change-Id: I8e285142eaeb3146b4287a928276b70db76c902b
+
+2017-06-22 07:47 +0000 [154d2914fa] Torrey Searle <torrey@voxbone.com>
+
+ * res/res_pjsip_t38 ensure t38 requests get rejected quickly
+
+ arm the t38 webhook always, so we can correctly reject a
+ T38 negotiation request when t38 is disabled on a channel
+
+ Change-Id: Ib1ffe35aee145d4e0fe61dd012580be11aae079d
+
+2017-07-06 11:52 +0000 Asterisk Development Team <asteriskteam@digium.com>
+
+ * asterisk 13.17.0-rc1 Released.
+
+2017-07-06 05:55 +0000 [379fe65831] George Joseph <gjoseph@digium.com>
+
+ * Fix alembic branches
+
+ Change-Id: I04f607f084bda9b1b7f626e8e9735c37dc751187
+
+2017-07-05 07:42 +0000 [6258de458b] Sean Bright <sean.bright@gmail.com>
+
+ * core: Fix segfault when invoking 'data get' CLI command
+
+ Invoking 'data get /asterisk/core/channeltypes' caused a crash because
+ of an assumption of a tech's capabilities to be non-NULL. The
+ 'Surrogate' tech, however, does have a NULL capabilities member,
+ resulting in a crash.
+
+ ASTERISK-27108 #close
+
+ Change-Id: I2fbe7715681f43d5565d1e1599269468c26b0e0a
+
+2017-07-03 10:59 +0000 [39d2ebbf56] Alexander Traud <pabstraud@compuserve.com>
+
+ * chan_sip: Only when different, add TCP|TLS in autodomain (SIP Domain Support).
+
+ When sip.conf contained tcpenable=yes and autodomain=yes, the TCP domain was
+ added in any case, because of a local Boolean-negation error of the return value
+ of ast_sockaddr_cmp. After fixing this error for TCP and TLS, the TLS domain was
+ still always added with tlsenable=yes, because the domains were not compared
+ just on the address but also on the port – and TLS is always on a different port
+ than UDP/TCP.
+
+ ASTERISK-27106
+
+ Change-Id: I14fe9e319e238320b094016980445ef3a5b3337c
+
+2017-07-03 10:38 +0000 [9f4b3b966e] Alexander Traud <pabstraud@compuserve.com>
+
+ * chan_sip: Fix a typo for tlsbindaddr in autodomain (SIP Domain Support).
+
+ Because of a copy-and-paste error when the struct ast_sockaddr changed,
+ tlsbindaddr was not added, when sip.conf contained autodomain=yes; see
+ "show sip domains" on the command-line interface (CLI) of Asterisk.
+
+ ASTERISK-27106
+
+ Change-Id: I3d0957150017c223136968ef1266f275d0d6695e
+
+2017-06-30 23:57 +0000 [73520e9f58] Corey Farrell <git@cfware.com>
+
+ * channel: Clear channel flag in error branch.
+
+ Clear channel flag AST_FLAG_END_DTMF_ONLY in ast_waitfordigit_full when
+ ast_read returns NULL.
+
+ ASTERISK-27100 #close
+
+ Change-Id: Id3039e9a4e74e0cb359f636c9fd0c9740ebf7d9d
+
+2017-06-29 18:27 +0000 [0d64cbde57] Richard Mudgett <rmudgett@digium.com>
+
+ * pjsip_distributor.c: Fix deadlock with TCP type transports.
+
+ When a SIP message comes in on a transport, pjproject obtains the lock on
+ the transport and pulls the data out of the socket. Unlike UDP, the TCP
+ transport does not allow concurrent access. Without concurrency the
+ transport lock is not released when the transport's message complete
+ callback is called. The processing continues and eventually Asterisk
+ starts processing the SIP message. The first thing Asterisk tries to do
+ is determine the associated dialog of the message to determine the
+ associated serializer. To get the associated serializer safely requires
+ us to get the dialog lock.
+
+ To send a request or response message for a dialog, pjproject obtains the
+ dialog lock and then obtains the transport lock. Deadlock can result
+ because of the opposite order the locks are obtained.
+
+ * Fix the deadlock by obtaining the serializer associated with the dialog
+ another way that doesn't involve obtaining the dialog lock. In this case,
+ we use an ao2 container to hold the associated endpoint and serializer.
+ The new locks are held a brief time and won't overlap other existing lock
+ times.
+
+ ASTERISK-27090 #close
+
+ Change-Id: I9ed63f4da9649e9db6ed4be29c360968917a89bd
+
+2017-06-29 18:22 +0000 [905d18e8bf] Richard Mudgett <rmudgett@digium.com>
+
+ * pjsip_distributor.c: Fix unidentified_requests hash functions.
+
+ The OBJ_SEARCH_xxx defines should not be used as if they were individual
+ bits. They represent a multi-bit enumeration value field.
+
+ Change-Id: I32abc9a475396dab02402a7014357dd94284e17b
+
+2017-06-30 08:31 +0000 [bbe68f139d] George Joseph <gjoseph@digium.com>
+
+ * pjproject_bundled: Allow passing configure options to bundled
+
+ There wasn't any good way to pass options like --host or --build
+ down to the pjproject configure which makes cross-compiling difficult.
+
+ * Added a new PJPROJECT_CONFIGURE_OPTS environment variable which
+ can be used to pass arbitrary options to pjproject configure.
+ * Automatically set the pjproject configure --host and --build
+ options to match those supplied for the asterisk configure.
+
+ ASTERISK-27097 #close
+ Reported-by: Kinsey Moore
+
+ Change-Id: I5fa776e110262851173002a26ffe1172e4c35b2e
+
+2017-06-29 14:50 +0000 [6bd7c0f37c] George Joseph <gjoseph@digium.com>
+
+ * chan_pjsip: Fix ability to send UPDATE on COLP
+
+ When connected_line_method is "invite", we're supposed to determine
+ if the client can support UPDATE and if it can, send UPDATE instead
+ of INVITE to avoid the SDP renegotiation. Not only was pjproject
+ not setting the PJSIP_INV_SUPPORT_UPDATE flag, we were testing
+ that invite_tsx wasn't NULL which isn't always the case.
+
+ * Updated chan_pjsip/update_connected_line_information to drop the
+ requirement that invite_tsx isn't NULL.
+ * Submitted patch to pjproject sip_inv.c that sets the
+ PJSIP_INV_SUPPORT_UPDATE flag correctly.
+ * Updated pjsip.conf.sample to clarify what happens when "invite"
+ is specified.
+
+ ASTERISK-27095
+
+ Change-Id: Ic2381b3567b8052c616d96fbe79564c530e81560
+
+2017-06-27 04:37 +0000 [2c43ca0ac5] Ivan Poddubny <ivan.poddubny@gmail.com>
+
+ * app_queue: Fix returning to dialplan when a queue is empty
+
+ The fix for ASTERISK-25665 introduced a regression.
+ The return value of queue_exec used to be 0 in case of leavewhenempty
+ but it was changed to -1 (returned from wait_our_turn and passed
+ transparently by queue_exec), thus leading to hangup instead of returning
+ back to dialplan.
+
+ This commit resets the value back to 0 in this case, restoring
+ original behavior.
+
+ ASTERISK-27065 #close
+ Reported by: Marek Cervenka
+
+ Change-Id: Id9c83b75aeda463250155e88c5004be52bbca5ac
+
+2017-06-28 09:03 +0000 [0426b1d88a] Joshua Colp <jcolp@digium.com>
+
+ * res_rtp_asterisk: Fix issues with ICE renegotiation.
+
+ When re-inviting to add more streams it is possible for
+ the role of existing ICE sessions to be changed to the
+ incorrect value. This results in subsequent refreshes
+ within the sessions getting a role conflict and the ICE
+ session breaking down. This change only sets the role to
+ be the new value if an ICE renegotiation is actually
+ going to happen, otherwise the existing role is preserved.
+
+ As well if we encounter a situation where a unidirectional
+ ICE negotiation happens and the other side does not send us
+ candidates we will not store any information for sending
+ traffic, even though we know where they are reachable. This
+ change fixes this by using the source of the ICE traffic
+ itself as the target if no candidates are known and we
+ receive some ICE traffic.
+
+ ASTERISK-27088
+
+ Change-Id: I71228181e358917fcefc3100fad21b2fc02a59a9
+
+2017-06-08 22:50 +0000 [eb48e99bd4] George Joseph <gjoseph@digium.com>
+
+ * bridge_native_rtp: Keep rtp instance refs on bridge_channel
+
+ There have been reports of deadlocks caused by an attempt to send a frame
+ to a channel's rtp instance after the channel has left the native bridge
+ and been destroyed. This patch effectively causes the bridge channel to
+ keep a reference to the glue and both the audio and video rtp instances
+ so what gets started will get stopped.
+
+ ASTERISK-26978 #close
+ Reported-by: Ross Beer
+
+ Change-Id: I9e1ac49fa4af68d64826ccccd152593cf8cdb21a
+
+2017-06-27 10:46 +0000 [1f59d08924] Torrey Searle <torrey@voxbone.com>
+
+ * res/res_pjsip_t38: fix incorrect increment of media_count
+
+ The T38 sdp callback incorrectly has a side effect of incrementing
+ the media_count. This can lead to core dumps.
+
+ Change-Id: I7bb2f4987de4046ec52cfc34e5ea0662dae32af8
+
+2017-06-15 03:12 +0000 [9fbc34d2bd] Torrey Searle <torrey@voxbone.com>
+
+ * res_pjsip: Add DTMF INFO Failback mode
+
+ The existing auto dtmf mode reverts to inband if 4733 fails to be
+ negotiated. This patch adds a new mode auto_info which will
+ switch to INFO instead of inband if 4733 is not available.
+
+ ASTERISK-27066 #close
+
+ Change-Id: Id185b11e84afd9191a2f269e8443019047765e91
+
+2017-06-21 17:57 +0000 [764d04fa87] Richard Mudgett <rmudgett@digium.com>
+
+ * res_pjsip_mwi.c: Eliminate RAII_VAR in contact delete observer
+
+ Change-Id: I0bc97c6608de1d1a4228826b3b3be43f162f05f3
+
+2017-06-16 18:08 +0000 [0f6a9617eb] Alexei Gradinari <alex2grad@gmail.com>
+
+ * res_pjsip_mwi: update unsolicited MWI subscriptions on updating contact
+
+ Do not need to unsubscribe/subscribe on creating the ednpoint's contact.
+ The modified function create_mwi_subscriptions_for_endpoint adds
+ the subscription only if it does not exist.
+
+ The subscriptions aren't added for active contacts
+ which are retrieved on startup from realtime
+ if mwi_disable_initial_unsolicited=yes.
+ Because the mwi_contact_added is not called.
+ So the subscriptions also should be created on updating contact.
+
+ ASTERISK-26230 #close
+
+ Change-Id: I47e265af9296ca09aa42a316fdacac104148cee4
+
+2017-06-20 15:41 +0000 [1f9913f272] Kevin Harwell <kharwell@digium.com>
+
+ * core_local: local channel data not being properly unref'ed and unlocked
+
+ In an earlier version of Asterisk a local channel [un]lock all functions were
+ added in order to keep a crash from occurring when a channel hung up too early
+ during an attended transfer. Unfortunately, when a transfer failure occurs and
+ depending on the timing, the local channels sometime do not get properly
+ unlocked and deref'ed after being locked and ref'ed. This happens because the
+ underlying local channel structure gets NULLed out before unlocking.
+
+ This patch reworks those [un]lock functions and makes sure the values that get
+ locked and ref'ed later get unlocked and deref'ed.
+
+ ASTERISK-27074 #close
+
+ Change-Id: Ice96653e29bd9d6674ed5f95feb6b448ab148b09
+
+2017-06-20 16:01 +0000 [67664fbf95] Kevin Harwell <kharwell@digium.com>
+
+ * bridge: stuck channel(s) after failed attended transfer
+
+ If an attended transfer failed it was possible for some of the channels
+ involved to get "stuck" because Asterisk was not hanging up the transfer target.
+
+ This patch ensures Asterisk hangs up the transfer target when an attended
+ transfer failure occurs.
+
+ ASTERISK-27075 #close
+
+ Change-Id: I98a6ecd92d3461ab98c36f0d9451d23adaf3e5f9
+
+2017-06-19 11:28 +0000 [cecf6540dc] Rodrigo Ramírez Norambuena <a@rodrigoramirez.com>
+
+ * cdr: fix mistake spelling of a word for Unanswered.
+
+ Change-Id: I7a610bef369924523a445c7e849ee88cc45dc5df
+
+2017-06-19 17:21 +0000 [8f356192d1] Alexei Gradinari <alex2grad@gmail.com>
+
+ * app_voicemail: IMAP connection control
+
+ A new global option "imap_poll_logout" was added to specify whether need to
+ disconnect from the IMAP server after polling of mailboxes.
+
+ ASTERISK-27068 #close
+
+ Closing IMAP connection after loading mailbox from voicemail.conf
+
+ ASTERISK-24052 #close
+
+ Change-Id: Ib7558ba04516240a32b65f42e9be64372a0ae12a
+
+2017-06-12 16:17 +0000 [8e749c8f51] Alexei Gradinari <alex2grad@gmail.com>
+
+ * res_pjsip_mwi: unsubscribe unsolicited MWI on deleting endpoint last contact
+
+ If the endpoint's last contact is deleted unsolicited MWI has to be
+ unsubscribed.
+
+ ASTERISK-27051 #close
+
+ Change-Id: I33e174e0b9dba0998927d16d6d100fda5c7254e0
+
+2017-06-16 09:31 +0000 [edfdb4dff5] George Joseph <gjoseph@digium.com>
+
+ * res_stasis: Plug reference leak on stolen channels
+
+ When a stasis channel is stolen by another app, the control
+ structure is unreffed but never unlinked from the app_controls
+ container. This causes the channel reference to leak.
+
+ Added OBJ_UNLINK to the callback in channel_stolen_cb.
+
+ Also added some additional channel lifecycle debug messages to
+ channel.c.
+
+ ASTERISK-27059 #close
+ Repoorted-by: George Joseph
+
+ Change-Id: Ib820936cd49453f20156971785e7f4f182c56e14
+
+2017-06-16 14:56 +0000 [0a40073750] Matthew Fredrickson <creslin@digium.com>
+
+ * formats/format_g729: Fix typo in comment
+
+ There was a typo in a comment. This commit is to fix the typo.
+
+ ASTERISK-27060 #close
+
+ Change-Id: Ic2699f8dbeaacd58ccb6ec3203e853e1babe3235
+
+2017-06-12 09:23 +0000 [a6e4899612] Alexei Gradinari <alex2grad@gmail.com>
+
+ * res_pjsip: New endpoint option "notify_early_inuse_ringing"
+
+ This option was added to control whether to notify dialog-info state
+ 'early' or 'confirmed' on Ringing when already INUSE.
+ The value "yes" is useful for some SIP phones (Cisco SPA)
+ to be able to indicate and pick up ringing devices.
+
+ ASTERISK-26919 #close
+
+ Change-Id: Ie050bc30023543c7dfb4365c5be3ce58c738c711
+
+2017-03-30 09:33 +0000 [005a4afa6b] Jan Friesse <jfriesse@redhat.com>
+
+ * res_corosync: Change thread stack size
+
+ In Corosync 2.x libraries were changed to use LibQB IPC.
+ Sadly LibQB IPC doesn't support copy-free access to received buffer, so
+ Corosync libraries were rewritten to use stack as buffer. Mostly the
+ needed stack size is quite small, but for all *_dispatch functions, 1MiB
+ is needed.
+
+ Asterisk function ast_pthread_create_background set stack size for new
+ thread to much smaller AST_BACKGROUND_STACKSIZE (~500KiB).
+
+ This results in Asterisk crash when running with Corosync 2.x.
+
+ Patch solves this issue by creating it's own version of
+ ast_pthread_create_background which sets stack size to much higher value
+ (actually it's AST_BACKGROUND_STACKSIZE + 3MiB).
+
+ Another problem may appear when "corosync show members" netconsole
+ command is executed. It is also executed in thread and also has only
+ 500KiB stack size. Sadly it calls corosync_cfg_get_node_addrs which
+ again needs at least 1MiB stack.
+
+ Solution is to use HAVE_COROSYNC_CFG_STATE_TRACK as a discriminator
+ between Corosync 1.x and 2.x. If 1.x is found, nothing changes. If 2.x
+ is found, NodeID is displayed instead of IP address.
+
+ ASTERISK-25370 #close
+ Reported by: mdu113
+
+ Change-Id: Id95b0d21ab6e708e7d74ad8786c587211676fa08
+
+2017-06-13 11:33 +0000 [7901b9853e] George Joseph <gjoseph@digium.com>
+
+ * res_ari: Add "module loaded" check to ari stubs
+
+ The recent change to make the use of LOAD_DECLINE more consistent
+ caused res_ari to unload itself before declining if the ari.conf
+ file wasn't found. The ari stubs though still tried to use the
+ configuration resulting in segfaults.
+
+ This patch creates a new CHECK_ARI_MODULE_LOADED macro which tests
+ to see if res_ari is actually loaded and causes the stubs to also
+ decline if it isn't. The macro was then added to the mustache
+ template's "load_module" function.
+
+ ASTERISK-27026 #close
+ Reported-by: Ronald Raikes
+
+ Change-Id: I263d56efa628ee3c411bdcd16d49af6260c6c91d
+
+2017-06-15 13:48 +0000 [3b6c327c51] Alexei Gradinari <alex2grad@gmail.com>
+
+ * app_voicemail: IMAP logout on reload/unload
+
+ Closing IMAP connection on module reload or unload.
+
+ ASTERISK-24052 #close
+
+ Change-Id: I2a40182aa9ef249fa6865d33570430e9ada68525
+
+2017-06-15 12:33 +0000 [b9a4ab8c8c] Richard Mudgett <rmudgett@digium.com>
+
+ * chan_pjsip: Fix PJSIP_MEDIA_OFFER dialplan function read.
+
+ The construction of the returned string assumed incorrectly that the
+ supplied buffer would always be initialized as an empty string. If it is
+ not an empty string we could overrun the supplied buffer by the length of
+ the non-empty buffer string plus one. It is also theoreticaly possible
+ for the supplied buffer to be overrun by a string terminator during a read
+ operation even if the supplied buffer is an empty string.
+
+ * Fix the assumption that the supplied buffer would already be an empty
+ string. The buffer is not guaranteed to contain an empty string by all
+ possible callers.
+
+ * Fix string terminator buffer overrun potential.
+
+ Change-Id: If6a0806806527678c8554b1dcb34fd7808aa95c9
+
+2017-06-15 07:32 +0000 [4910a3bf40] Joshua Colp <jcolp@digium.com>
+
+ * channel: Fix reference counting in ast_channel_suppress.
+
+ The ast_channel_suppress function wrongly decremented the
+ reference count of the underlying structure used to keep
+ track of what should be suppressed on a channel if the
+ function was called multiple times on the same channel.
+
+ This change cleans up the reference counting a bit so
+ this no longer occurs.
+
+ ASTERISK-27016
+
+ Change-Id: I2eed4077cb4916e6626f9f120b63b963acc5c136
+
+2017-06-14 12:34 +0000 [f1a209d5ac] Richard Mudgett <rmudgett@digium.com>
+
+ * app_voicemail.c: Fix compile error when IMAP enabled.
+
+ Change-Id: I2703f15b4099b4210c68eccf293105d1975c1fc1
+
+2017-06-08 12:28 +0000 [dc307af7f2] Frederic LE FOLL <frederic.lefoll@c-s.fr>
+
+ * Core/PBX: Deadlock between dialplan execution and application unregistration.
+
+ Not easy to reproduce, but we have noticed deadlocks when unloading a module
+ while dialplan is handling a request.
+
+ The deadlock is between :
+ 1) Dialplan execution: pbx_extension_helper() first taking conlock,
+ then pbx_findapp() [when called] asking for lock on apps list.
+ 2) Application unregistration: ast_unregister_application() first taking lock
+ on apps list, then unreference_cached_app() [when called] asking for conlock.
+
+ As a protection, I suggest to modify ast_unregister_application(), so that it
+ anticipates the need of conlock, before taking the lock on apps list.
+ The side effect is a longer unavailability of conlock when unregistering an
+ application.
+
+ ASTERISK-27041
+
+ Change-Id: I0db0f1eb320da6a5758cce3a47d765be1face8e2
+
+2017-06-14 11:12 +0000 [c2eea791e4] George Joseph <gjoseph@digium.com>
+
+ * res_pjsip_pubsub: Fix reference to released endpoint
+
+ destroy_subscription was attempting to get the id of the
+ subscription tree's endpoint after we'd already called ao2_cleanup
+ on it causing a segfault.
+
+ Moved the cleanup until after the debug statement and since
+ endpoint could also be NULL at this point, check for that as well.
+
+ ASTERISK-27057 #close
+ Reported-by: Ryan Smith
+
+ Change-Id: Ice0a7727f560cf204d870a774c6df71e159b1678
+
+2017-06-14 08:29 +0000 [2dee95cc7a] Florian Floimair (license 6892)
+
+ * res_pjsip_session: Correct inverted test in session_outgoing_nat_hook
+
+ There was a typo introduced in commit 776ffd77 which was preventing
+ the transport's external media address from being used.
+
+ ASTERISK-27024 #close
+ Reported-by: Christopher van de Sande
+ patches:
+ patch.diff submitted by Florian Floimair (license 6892)
+
+ Change-Id: I7ec617171eaa2d86d2680b00cf37d5088adafc27
+
+2017-06-08 17:31 +0000 [e16a669c70] Jørgen H <asterisk.org@hovland.cx>
+
+ * res_pjsip_transport_websocket: Add NULL check in get_write_timeout
+
+ Added check for NULL return value when calling
+ ast_sorcery_retrieve_by_id in function get_write_timeout
+
+ ASTERISK-27046
+
+ Change-Id: I9357717278da631c3a1cb502c412693929b0cb41
+
+2017-06-14 08:54 +0000 [7dafe82751] George Joseph <gjoseph@digium.com>
+
+ * res_rtp_asterisk: Fix ssrc change for rtcp srtp
+
+ It looks like there was a copy/paste error in ast_rtp_change_source
+ where if there was a rtcp srtp instance, instead of updating its
+ ssrc we were updating the srtp instance ssrc twice.
+
+ ASTERISK-27022 #close
+ Reported-by: Michael Walton
+
+ Change-Id: Ic88f3aee7227b401c58745ac265ff92c19620095
+
+2017-06-08 14:38 +0000 [e414833f6e] Joshua Colp <jcolp@digium.com>
+
+ * bridge: Add a deferred queue.
+
+ This change adds a deferred queue to bridging. If a bridge
+ technology determines that a frame can not be written and
+ should be deferred it can indicate back to bridging to do so.
+ Bridging will then requeue any deferred frames upon a new
+ channel joining the bridge.
+
+ This change has been leveraged for T.38 request negotiate
+ control frames. Without the deferred queue there is a race
+ condition between the bridge receiving the T.38 request
+ negotiate and the second channel joining and being in the
+ bridge. If the channel is not yet in the bridge then the T.38
+ negotiation fails.
+
+ A unit test has also been added that confirms that a T.38
+ request negotiate control frame is deferred when no other
+ channel is in the bridge and that it is requeued when a new
+ channel joins the bridge.
+
+ ASTERISK-26923
+
+ Change-Id: Ie05b08523f399eae579130f4a5f562a344d2e415
+
+2017-06-13 14:17 +0000 [6cdf3191d3] Kevin Harwell <kharwell@digium.com>
+
+ * res_pjsip_refer/session: Calls dropped during transfer
+
+ When doing an attended transfer it's possible for the transferer, after
+ receiving an accepted response from Asterisk, to send a BYE to Asterisk,
+ which can then be processed before Asterisk has time to start and/or
+ complete the transfer process. This of course causes the transfer to not
+ complete successfully, thus dropping the call.
+
+ This patch makes it so any BYEs received from the transferer, after the REFER,
+ that initiate a session end are deferred until the transfer is complete. This
+ allows the channel that would have otherwise been hung up by Asterisk to
+ remain available throughout the transfer process.
+
+ ASTERISK-27053 #close
+
+ Change-Id: I43586db79079457d92d71f1fd993be9a3b409d5a
+
+2017-06-13 10:47 +0000 [0bde568669] George Joseph <gjoseph@digium.com>
+
+ * pjproject_bundled: Use the asterisk github mirror for download
+
+ We now mirror the pjproject tarball and md5 at
+ https://github.com/asterisk/third-party/tree/master/pjproject
+
+ To improve download reliability, we now get the tarball from
+ our mirror instead of from pjsip.org.
+
+ ASTERISK-27052 #close
+ Reported-by: 'alex'
+
+ Change-Id: I60236587a8935bfa71fcc391f4e2ecb31918c08a
+
+2017-06-12 17:55 +0000 [08be5e01e8] Alexei Gradinari <alex2grad@gmail.com>
+
+ * app_voicemail: IMAP logout on MWI unsubscribe
+
+ Closing IMAP connection on MWI unsubscribe.
+
+ ASTERISK-24052 #close
+
+ Change-Id: I4ff964026002b2817b48c20fb4239f0a880228fd
+
+2017-06-12 09:57 +0000 [59c9bbe696] Alexei Gradinari <alex2grad@gmail.com>
+
+ * res_pjsip_mwi: don't create mwi subscriptions if initial unsolicited disabled
+
+ If sending unsolicited mwi to all endpoints on startup is disabled
+ (mwi_disable_initial_unsolicited=yes) do not need to create subscriptions.
+ If there are many (thousands) realtime endpoints configured with unsolicited mwi
+ and Vociemail Storage configured as ODBC or IMAP there will be huge number of
+ DB/IMAP requests on startup.
+
+ ASTERISK-26230 #close
+
+ Change-Id: I50ae909639e3ee298b931a54def4b2b9e0fb86c5
+
+2017-06-06 14:54 +0000 [68de35a6a0] David M. Lee <dlee@respoke.io>
+
+ * CFLAGS for BIND8 support
+
+ Some systems (like macOS) require BIND_8_COMPAT to be defined so that
+ the nameser libraries are, well, BIND8 compatible.
+
+ Change-Id: If79fc27a64f90de1835b5aa3aadfa9be22bd16b0
+
+2017-06-11 12:06 +0000 [da3312457e] Sean Bright <sean.bright@gmail.com>
+
+ * codecs.conf.sample: Fix max_bandwidth speling error
+
+ Reported by Sylvain Boily via asterisk-dev mailing list.
+
+ Change-Id: Idc7623f335aea3e144dd369ba383b9a757480a9d
+
+2017-06-08 10:54 +0000 [6a64f65fe6] Guido Falsi <madpilot@freebsd.org>
+
+ * BuildSystem: Add patches to allow building with recent LibreSSL
+
+ Add some #if defined checks which allow building against LibreSSL.
+ These patchess come from OpenBSD ports:
+ https://cvsweb.openbsd.org/cgi-bin/cvsweb/ports/telephony/asterisk/patches/
+
+ ASTERISK-27043 #close
+ Reported by: OpenBSD ports
+
+ Change-Id: I2f6c08a5840b85ad4d2b75370b947ddde7a9a572
+
+2017-06-08 10:36 +0000 [44cee2f4a1] Guido Falsi <madpilot@freebsd.org>
+
+ * BuildSystem: Fix build on FreeBSD due to missing crypt.h
+
+ FreeBSD does not include a crypt.h include file. Definitions for
+ crypt() and crypt_r() are in unistd.h
+
+ ASTERISK-27042 #close
+
+ Change-Id: Ib307ee5e384870c6af50efa89fb73722dd0c3a7e
+
+2017-06-07 15:19 +0000 [1f10c6b3b0] Joshua Colp <jcolp@digium.com>
+
+ * chan_pjsip: Update device state when in early media.
+
+ The chan_pjsip module uses a calculation approach for
+ determining device state. This means that in situations
+ where we would expect device state to change we need to
+ tell the core to query. A scenario that was missed is
+ when early media was signaled.
+
+ This change adds the notification for the core to
+ query device state when we are told that early media
+ is being provided.
+
+ ASTERISK-27039
+
+ Change-Id: Iafebfd152894966344ff2e950a3cee9f59a3eb6f
+
+2017-06-07 14:32 +0000 [590ffcaf0b] Sean Bright <sean.bright@gmail.com>
+
+ * eventfd: Disable during cross compilation
+
+ Reported by Lonnie Abelbeck <lonnie@abelbeck.com> via private e-mail.
+
+ Change-Id: Icc80f12b8d8d591e14a8e0ed9f1c02cbd193a89b
+
+2017-06-07 11:21 +0000 [5520b6c201] Alexei Gradinari <alex2grad@gmail.com>
+
+ * CHANGES: correct version for a new option 'refer_blind_progress'
+
+ Change-Id: If4817d26a8974610827624fb8a4e56d681d6bf97
+
+2017-06-06 07:04 +0000 [996a4791ff] Joshua Colp <jcolp@digium.com>
+
+ * pjsip: Extend 'asymmetric_rtp_codec' option to include us changing.
+
+ PJSIP support in Asterisk differs from chan_sip in that it
+ allows media to be sent as-is without transcoding provided
+ the codecs were negotiated in the SDP. This is allowed
+ according to the RFC. Support for this differs quite a lot
+ though and some endpoints do not handle it well.
+
+ This change extends the 'asymmetric_rtp_codec' option to
+ also cover this case. When set to no (the default) the code
+ behaves as chan_sip does - the best codec is selected and
+ we will only ever send that, unless we change what we are
+ sending if the remote side changes. When set to yes we
+ will send media as-is without transcoding if the codec
+ has been negotiated in the SDP.
+
+ ASTERISK-26996
+
+ Change-Id: Ib1647f6902a0843e8c435946f831c2159e8d1d51
+
+2017-06-06 10:04 +0000 [c093bf8072] Sean Bright <sean.bright@gmail.com>
+
+ * res_rtp_multicast: Use consistent timestamps when possible
+
+ When a frame destined for a MulticastRTP channel does not have timing
+ information (such as when an 'originate' is done), we generate the RTP
+ timestamps ourselves without regard to the number of samples we are
+ about to send.
+
+ Instead, use the same method as res_rtp_asterisk and 'predict' a
+ timestamp given the number of samples. If the difference between the
+ timestamp that we generate and the one we predict is within a specific
+ threshold, use the predicted timestamp so that we end up with timestamps
+ that are consistent with the number of samples we are actually sending.
+
+ Change-Id: I2bf0db3541b1573043330421cbb114ff0f22ec1f
+
+2017-05-31 10:41 +0000 [746c2c5745] Joshua Colp <jcolp@digium.com>
+
+ * res_pjsip: Add support for returning only reachable contacts and use it.
+
+ This introduces the ability for PJSIP code to specify filtering flags
+ when retrieving PJSIP contacts. The first flag for use causes the
+ query code to only retrieve contacts that are not unreachable. This
+ change has been leveraged by both the Dial() process and the
+ PJSIP_DIAL_CONTACTS dialplan function so they will now only attempt
+ calls to contacts which are not unreachable.
+
+ ASTERISK-26281
+
+ Change-Id: I8233b4faa21ba3db114f5a42e946e4b191446f6c
+
+2017-06-05 10:45 +0000 [adfb28882b] Kevin Harwell <kharwell@digium.com>
+
+ * channel: ast_write frame wrongly freed after call to audiohooks
+
+ ASTERISK-26419 introduced a bug when calling ast_audiohook_write_list in
+ ast_write. It would free the frame given to ast_write if the frame returned
+ by ast_audiohook_write_list was different than the given one. The frame
+ give to ast_write should never be freed within that function. It is the
+ caller's resposibility to free the frame after writing (or when it its done
+ with it). By freeing it within ast_write this of course led to some memory
+ corruption problems.
+
+ This patch makes it so the frame given to ast_write is no longer freed within
+ the function. The frame returned by ast_audiohook_write_list is now subsequently
+ used in ast_write and is freed later. It is freed either after translate if the
+ frame returned by translate is different, or near the end of ast_write prior
+ to function exit.
+
+ ASTERISK-26973 #close
+
+ Change-Id: I463d4ac3b736ced95de986ee74a489c7c7ab103b
+
+2017-05-31 11:45 +0000 [283cc59af7] Sean Bright <sean.bright@gmail.com>
+
+ * pbx_builtin: Properly handle hangup during Background
+
+ Before this patch, when a user hung up during a Background, we would
+ stuff 0xff into a char and attempt a dialplan lookup of it. This caused
+ problems for some realtime engines which interpreted the value as the
+ beginning of an invalid UTF-8 sequence.
+
+ ASTERISK-19291 #close
+ Reported by: Andrew Nowrot
+
+ Change-Id: I8ca6da93252d61c76ebdb46a4aa65e73ca985358
+
+2017-05-31 04:25 +0000 [dc05183f4b] Joshua Colp <jcolp@digium.com>
+
+ * channel / app_meetme: Fix parentheses.
+
+ ASTERISK-27025
+
+ Change-Id: Id736b0aa4ec6b6b0f04663d64fa8d151f81fdbed
+
+2017-05-30 16:07 +0000 [cf6cf59646] Sean Bright <sean.bright@gmail.com>
+
+ * stasis_recording: Correct ast_asprintf error checking
+
+ ASTERISK-27021 #close
+ Reported by: Tim Morgan
+
+ Change-Id: I0ac061f040093e806c3b1f4e2340864f3ce4dd75
+
+2017-05-28 15:43 +0000 [70e5887906] Sean Bright <sean.bright@gmail.com>
+
+ * format: Reintroduce smoother flags
+
+ In review 4843 (ASTERISK-24858), we added a hack that forced a smoother
+ creation when sending signed linear so that the byte order was adjusted
+ during transmission. This was needed because smoother flags were lost
+ during the new format work that was done in Asterisk 13.
+
+ Rather than rolling that same hack into res_rtp_multicast, re-introduce
+ smoother flags so that formats can dictate their own options.
+
+ Change-Id: I77b835fba0e539c6ce50014a984766f63cab2c16
+
+2017-05-30 09:34 +0000 [97b003f5e2] Sean Bright <sean.bright@gmail.com>
+
+ * format_mp3: Re-work menuselect/build issues
+
+ Rather than removing format_mp3 from ALL_C_MODS (which caused format_mp3
+ to not show up in menuselect), use .PHONY targets when the necessary
+ source files are not present.
+
+ ASTERISK-23951
+ Reported by: Tzafrir Cohen
+
+ Change-Id: I0a7512c51acc9e86043671795020b0de725bd9e8
+
+2017-05-30 09:43 +0000 [c10341646d] George Joseph <gjoseph@digium.com>
+
+ * test_json: Fix test names with reserved words
+
+ Some of the test names were actually reserved words (true, false,
+ int, null, string, bool). When the jenkins test results analyzer
+ does its thing it tries to create a map using the test names as
+ keys and fails because they're reserved words.
+
+ Added "type_" to those test names.
+
+ Change-Id: I90d809f46969c78a1c605b736ff0635196a2cf1b
+
+2017-05-26 11:41 +0000 [b07b216235] Joshua Colp <jcolp@digium.com>
+
+ * manager: Clear the flag on the other channel.
+
+ During the channel flag audit an incorrect change was
+ done. The flag should be cleared on the second channel.
+
+ ASTERISK-26469
+
+ Change-Id: I770c5a389550a2fb5a6ade942fccbb2e1d9199c8
+
+2017-05-26 11:06 +0000 [5e9cd1f20d] Sean Bright <sean.bright@gmail.com>
+
+ * res_srtp: Add support for libsrtp2
+
+ ASTERISK-25294 #close
+ Reported by: Tzafrir Cohen
+
+ ASTERISK-26976 #close
+ Reported by: Alex
+
+ Change-Id: I789b1c3d1ed31365bbd9339fa58ef36f48833c40
+
+2017-05-25 11:10 +0000 [72213c98e3] Sean Bright <sean.bright@gmail.com>
+
+ * format_mp3: Don't try to build format_mp3 if we don't have sources
+
+ ASTERISK-23951 #close
+ Reported by: Tzafrir Cohen
+
+ Change-Id: Iebf181d44bb735787fde4b5be863c4d7e2478a30
+
+2017-05-24 15:50 +0000 [65898c3af8] George Joseph <gjoseph@digium.com>
+
+ * unittests: Add a unit test that causes a SEGV and...
+
+ ...that can only be run by explicitly calling it with
+ 'test execute category /DO_NOT_RUN/ name RAISE_SEGV'
+
+ This allows us to more easily test CI and debugging tools that
+ should do certain things when asterisk coredumps.
+
+ To allow this a new member was added to the ast_test_info
+ structure named 'explicit_only'. If set by a test, the test
+ will be skipped during a 'test execute all' or
+ 'test execute category ...'.
+
+ Change-Id: Ia3a11856aae4887df9a02b6b081cc777b36eb6ed
+
+2017-05-23 15:42 +0000 [90237dca11] Sean Bright <sean.bright@gmail.com>
+
+ * res_agi: Allow configuration of audio format of EAGI pipe
+
+ This change allows the format of the EAGI audio pipe to be changed by
+ setting the dialplan variable 'EAGI_AUDIO_FORMAT' to the name of one of
+ the loaded formats.
+
+ ASTERISK-26124 #close
+
+ Change-Id: I7a10fad401ad2a21c68c2e7246fa357d5cee5bbd
+
+2017-05-23 13:33 +0000 [3eb7fbba72] Sean Bright <sean.bright@gmail.com>
+
+ * res_agi: Clarify 'RECORD FILE' documentation
+
+ Documented the 'beep' option in both the parameters list and the command
+ description.
+
+ ASTERISK-23839 #close
+
+ Change-Id: I4970395c922dbdce3f7cf0f56d5b065ec9aa53ea
+
+2017-05-23 13:06 +0000 [f306e451f6] Sean Bright <sean.bright@gmail.com>
+
+ * res_agi: Prevent crash when SET VARIABLE called without arguments
+
+ Explicitly check that the appropriate number of arguments were passed to
+ SET VARIABLE before attempting to reference them. Also initialize the
+ arguments array to zeroes before populating it.
+
+ ASTERISK-22432 #close
+
+ Change-Id: I5143607d80a2724f749c1674f3126b04ed32ea97
+
+2017-05-23 12:35 +0000 [a007e438c3] Sean Bright <sean.bright@gmail.com>
+
+ * res_agi: Fix malformed AGI usage response
+
+ If the generated XML documentation for a command does not end with a \n,
+ the postamble of the usage message does not appear on its own line.
+
+ ASTERISK-25662 #close
+
+ Change-Id: If190f1e9e37fe215fed95897d78d4a6e142b0020
+
+2017-05-23 12:00 +0000 [971a401ce9] Sean Bright <sean.bright@gmail.com>
+
+ * sip.conf.sample: Clarify where DTLS settings are permitted
+
+ ASTERISK-25101 #close
+
+ Change-Id: I09a97793e5577b4422d0ae883fadb3f0d86725cc
+
+2017-05-23 10:06 +0000 [700ef6861a] Sean Bright <sean.bright@gmail.com>
+
+ * res_format_attr_h26x: Trim blanks in fmtp attributes
+
+ Some devices separate format attributes with a semicolon followed by a
+ space, so trim blanks before trying to match them.
+
+ ASTERISK-27008 #close
+
+ Change-Id: Ia44cb2e4fef5c73dc541a29da79cb0e19c22d9cc
+
+2017-05-15 15:03 +0000 [6bfcb1acc7] Joshua Colp <jcolp@digium.com>
+
+ * app_queue: Fix members showing as being in call when not.
+
+ A change was done which added an 'in_call' flag to queue
+ members that was set to true while talking to an agent.
+ Unfortunately in practice this does not accurately reflect
+ whether they are talking to an agent or not. If a Local
+ channel is involved and a transfer is performed then the
+ app_queue application would incorrectly think the agent
+ was still in a call with the caller. This was done to
+ fix a race condition between an agent becoming available
+ by device state and the checking of the last call information
+ for the wrapup time. There was a small window where the
+ last call information would be the previous value instead
+ of the new one.
+
+ This change goes about fixing the original issue in a
+ different way by considering the call completed if device
+ state is received which would make the agent available
+ and if they are currently in a call. If this occurs the
+ last call information is updated before the agent becomes
+ available ensuring that old information is not present
+ when checking if the member should be called. This also
+ improves the transfer situation by actually updating
+ and enforcing the wrapup time.
+
+ ASTERISK-26399
+ ASTERISK-26400
+ ASTERISK-26715
+ ASTERISK-26975
+
+ Change-Id: Ife1cb686e3173b3a6d368601adef9aff69d4beea
+
+2017-05-23 05:45 +0000 [f1b32de2c5] Robert Mordec <r.mordec@slican.pl>
+
+ * app_confbridge: Race between removing and playing name recording while leaving
+
+ When user leaves a conference, its channel calls async_play_sound_file()
+ in order to play the name announcement and then unlinks the sound file.
+ The async_play_sound_file() function adds a task to conference playback queue,
+ which then runs playback_common() function in a different thread.
+
+ It leads to a race condition when, in some cases, channel thread may unlink
+ the sound file before playback_common() had a chance to open it.
+
+ This patch creates a file deletion task, that is queued after playback.
+
+ ASTERISK-27012 #close
+
+ Change-Id: I412f7922d412004b80917d4e892546c15bd70dd3
+
+2017-05-22 13:51 +0000 [e91efef2bb] Kevin Harwell <kharwell@digium.com>
+
+ * res_rtp_asterisk: rtcp mux using the wrong srtp unprotecting algorithm
+
+ When using rtcp mux if an rtcp payload came in it would still use the srtp
+ unprotect algorithm instead of the srtp unprotect rtcp method. Since rtcp
+ data was being passed to the rtp unprotect method this would result in an
+ error.
+
+ This patch ensures that the correct unprotect method is chosen by making
+ sure the passed in rtcp flag is appropriately set when rtcp mux is enabled
+ and an rtcp payload is received.
+
+ ASTERISK-26979 #close
+
+ Change-Id: Ic5409f9d1a267f1d4785fc5aed867daaecca6241
+
+2017-05-19 10:05 +0000 [4479038073] Sean Bright <sean.bright@gmail.com>
+
+ * chan_sip: Better ICE handling for RTCP-MUX
+
+ If we are offered or are offering RTCP-MUX, don't consider RTCP ICE
+ candidates. This confuses certain browsers (current Firefox for
+ example) and causes intial audio setup delays.
+
+ ASTERISK-26982 #close
+
+ Change-Id: Ifeaf47e83972fe8dbe58b7fb3d6d1823400cfb91
+
+2017-04-26 09:22 +0000 [36628cc9c4] Yasin CANER <yasin.caner@netgsm.com.tr>
+
+ * res_pjsip_session : fixed wrong From Header number On Re-invite
+
+ ASTERISK-26964 #close
+
+ Change-Id: I55a9caa7dc90e6c4c219cb09b5c2ec08af84a302
+
+2017-05-13 11:40 +0000 [1618203964] Joshua Colp <jcolp@digium.com>
+
+ * asterisk: Audit locking of channel when manipulating flags.
+
+ When manipulating flags on a channel the channel has to be
+ locked to guarantee that nothing else is also manipulating
+ the flags. This change introduces locking where necessary to
+ guarantee this. It also adds helper functions that manipulate
+ channel flags and lock to reduce repeated code.
+
+ ASTERISK-26789
+
+ Change-Id: I489280662dba0f4c50981bfc5b5a7073fef2db10
+
+2017-05-08 15:56 +0000 [6af2dd34af] Alexei Gradinari <alex2grad@gmail.com>
+
+ * res_pjsip: New endpoint option "refer_blind_progress"
+
+ This option was added to turn off notifying the progress details
+ on Blind Transfer. If this option is not set then the chan_pjsip
+ will send NOTIFY "200 OK" immediately after "202 Accepted".
+
+ Some SIP phones like Mitel/Aastra or Snom keep the line busy until
+ receive "200 OK".
+
+ ASTERISK-26333 #close
+
+ Change-Id: Id606fbff2e02e967c02138457badc399144720f2
+
+2017-05-22 20:20 +0000 Asterisk Development Team <asteriskteam@digium.com>
+
+ * asterisk 13.16.0-rc1 Released.
+
+2017-04-13 17:16 +0000 [919ccdb9ac] Mark Michelson <mmichelson@digium.com>
+
+ * AST-2017-002: Ensure transaction key buffer is large enough.
+
+ ASTERISK-26938 #close
+
+ Change-Id: I266490792fd8896a23be7cb92f316b7e69356413
+
+2017-04-13 17:17 +0000 [49c032abef] Mark Michelson <mmichelson@digium.com>
+
+ * AST-2017-003: Handle zero-length body parts correctly.
+
+ ASTERISK-26939 #close
+
+ Change-Id: I7ea235ab39833a187db4e078f0788bd0af0a24fd
+
+2017-04-13 11:14 +0000 [1cc18d4025] gtjoseph <gjoseph@digium.com>
+
+ * AST-2017-004: chan_skinny: Add EOF check in skinny_session
+
+ The while(1) loop in skinny_session wasn't checking for EOF so
+ a packet that was longer than a header but still truncated
+ would spin the while loop infinitely. Not only does this
+ permanently tie up a thread and drive a core to 100% utilization,
+ the call of ast_log() in such a tight loop eats all available
+ process memory.
+
+ Added poll with timeout to top of read loop
+
+ ASTERISK-26940 #close
+ Reported-by: Sandro Gauci
+
+ Change-Id: I2ce65f3c5cb24b4943a9f75b64d545a1e2cd2898
+
+2017-05-18 16:35 +0000 [c107ab4c04] Sean Bright <sean.bright@gmail.com>
+
+ * res_hep_rtcp: Add support level to module info
+
+ Change-Id: I5661478f9cf12d431f730e42be79323b62831e92
+
+2017-05-11 00:25 +0000 [cfeae52c0f] Ivan Poddubny <ivan.poddubny@gmail.com>
+
+ * app_queue: Fix duplicate queue_log entries for EXITEMPTY and ABANDON
+
+ There are 2 places in app_queue.c that log EXITEMPTY event: one in
+ wait_our_turn, and another one in queue_exec in the loop trying to
+ call an agent after wait_our_turn.
+
+ In most cases it leads to logging EXITEMPTY twice.
+
+ ABANDON is also logged on two places, and in the rare case when an agent
+ and caller hang up simultaneously it's also possible to get duplicates
+ in queue_log.
+
+ This commit changes wait_our_turn to return -1 ("the caller should exit
+ the queue") instead of 0 ("the caller's turn has arrived") in case of
+ leaving when empty, so queue_exec skips the agent calling loop.
+
+ Also, leave_queue is now executed only once in this case, because 2nd
+ time is just a noop when the queue entry has already been removed.
+
+ Also, it sets qe->handled to -1 to indicate that the call was not
+ answered by an agent, but the necessary handling has already been done
+ in order to avoid logging an extra ABANDON entry.
+
+ ASTERISK-25665 #close
+ Reported by: Ove Aursand
+
+ Change-Id: I4578dd383bf2ac41589cf167865e8aaebcd4c11e
+
+2017-05-14 00:37 +0000 [5da91c65be] Rodrigo Ramírez Norambuena <a@rodrigoramirez.com>
+
+ * Fix spelling queues.conf.sample file
+
+ Change-Id: Ie1c2d83af66f27a449da09a68d987e0992627fee
+
+2017-05-12 21:04 +0000 [b67363006f] Richard Mudgett <rmudgett@digium.com>
+
+ * res_pjsip_session.c: Process initial INVITE sooner. (key exists)
+
+ Retransmissions of an initial INVITE could be queued in the serializer
+ before we have processed the first INVITE message. If the first INVITE
+ message doesn't get completely processed before the retransmissions are
+ seen then we could try to setup the same call from the retransmissions. A
+ symptom of this is seeing a (key exists) message associated with an
+ INVITE. An earlier change attempted to address this kind of problem by
+ calculating a distributor serializer to use for unassociated messages.
+ Part of that change also made incoming calls keep using that distributor
+ serializer. (ASTERISK-26088) However, some leftover code was still
+ deferring the INVITE processing to the session's serializer even though we
+ were already in that serializer. This not only is unnecessary but would
+ cause the same call resetup problem.
+
+ * Removed the code to defer processing the initial INVITE to the session's
+ serializer because we are already running in that serializer.
+
+ ASTERISK-26998 #close
+
+ Change-Id: I1e822d82dcc650e508bc2d40d545d5de4f3421f6
+
+2017-05-08 13:40 +0000 [1bcce442d0] Vitezslav Novy <a1@vnovy.net>
+
+ * chan_sip: Change sip_get_codec() to return correct codec list
+
+ Return cahnnel nativeformats to fix bridge technology selection process.
+ Same approach as in pjsip module.
+
+ ASTERISK-26143
+ Reported-by: Henning Holtschneider
+
+ Change-Id: I64e863753954d6ad67a9e722df2ebc328705ad48
+
+2017-05-09 10:34 +0000 [6fba0a41f0] Joshua Colp <jcolp@digium.com>
+
+ * tcptls: Improve error messages for TLS connections.
+
+ This change uses the functions provided by OpenSSL to query
+ and better construct error messages for situations where
+ the connection encounters a problem.
+
+ ASTERISK-26606
+
+ Change-Id: I7ae40ce88c0dc4e185c4df1ceb3a6ccc198f075b
+
+2017-05-04 17:28 +0000 [8ec6e19c86] Joshua Elson <joshelson@gmail.com>
+
+ * Prevent Undefined Capath Crash
+
+ It is possible to initialize a valid config without a capath
+ or cafile definition. This will cause a crash on a reload.
+
+ This fix ensures capath is always allocated.
+
+ ASTERISK-26983 #close
+
+ Change-Id: I63ff715d9d9023427543a5b8a4ba7b0d82533c12
+
+2017-05-05 11:33 +0000 [d6325373ac] gtjoseph <gjoseph@digium.com>
+
+ * cel_odbc: Fix timestamp processing for microseconds
+
+ When a column is of type timestamp, the fraction part of the event
+ field's seconds was frequently parsed incorrectly especially if
+ there were leading zeros. For instance "2017-05-23 23:55:03.023"
+ would be parsed into an int as "23" then when the timestamp was
+ formatted again to be inserted into the database column it'd be
+ "2017-05-23 23:55:03.23" which is now 230 milliseconds instead of
+ 23 milliseconds. "03.000001" would be transformed to "03.1", etc.
+
+ * If the event field is 'eventtime' and the db column is timestamp,
+ then existing processing has already correctly formatted the
+ timestamp so now we simply use it rather than parsing it and
+ re-printing it. This is the most common use case anyway.
+
+ * If the event field is other than 'eventtime' and the db column
+ is timestamp, we now parse the seconds, including the fractional
+ part into a double rather than 2 ints. This preserves the
+ magnitude and precision of the fractional part. When we print
+ it, we now print it as a "%09.6lf" which correctly represents the
+ input.
+
+ To be honest, why we parse the string timestamp into components,
+ test the components, then print the components back into a string
+ timestamp is beyond me. We should use parse it, test it, then if
+ it passes, use the original string representation in the database
+ call. Maybe someone thought that some implementations wouldn't
+ take a partial timestamp string like "2017-05-06" and decided to
+ always produce a full timestamp string even if an abbreviated one
+ was supplied. Anyway, I'm leaving it as it is.
+
+ ASTERISK-25032 #close
+ Reported-by: Etienne Lessard
+
+ Change-Id: Id407e6221f79a5c1120e1a70bc7e893bbcaf1938
+
+2017-05-09 05:25 +0000 [10a49ab362] Joshua Colp <jcolp@digium.com>
+
+ * res_hep_rtcp: Provide chan_sip Call-ID for RTCP messages.
+
+ This change adds the required logic to allow the SIP
+ Call-ID to be placed into the HEP RTCP traffic if the
+ chan_sip module is used. In cases where the option is
+ enabled but the channel is not either SIP or PJSIP then
+ the code will fallback to the channel name as done
+ previously.
+
+ Based on the change on Nir's branch at:
+ team/nirs/hep-chan-sip-support
+
+ ASTERISK-26427
+
+ Change-Id: I09ffa5f6e2fdfd99ee999650ba4e0a7aad6dc40d
+
+2017-05-08 16:11 +0000 [7d4a22bf2e] gtjoseph <gjoseph@digium.com>
+
+ * logger: Added logger_queue_limit to the configuration options.
+
+ All log messages go to a queue serviced by a single thread
+ which does all the IO. This setting controls how big that
+ queue can get (and therefore how much memory is allocated)
+ before new messages are discarded. The default is 1000.
+ Should something go bezerk and log tons of messages in a tight
+ loop, this will prevent memory escalation.
+
+ When the limit is reached, a WARNING is logged to that effect
+ and messages are discarded until the queue is empty again. At
+ that time another WARNING will be logged with the count of
+ discarded messages. There's no "low water mark" for this queue
+ because the logger thread empties the entire queue and processes it
+ in 1 batch before going back and waiting on the queue again.
+ Implementing a low water mark would mean additional locking as
+ the thread processes each message and it's not worth it.
+
+ A "test" was added to test_logger.c but since the outcome is
+ non-deterministic, it's really just a cli command, not a unit
+ test.
+
+ Change-Id: Ib4520c95e1ca5325dbf584c7989ce391649836d1
+
+2017-05-04 17:32 +0000 [614eda785d] Richard Mudgett <rmudgett@digium.com>
+
+ * netsock2.c: Made get/set addr port avoid potential uninitialized memory.
+
+ Change-Id: I532052bd7cd95a4b3565485fc01e2a1ea07ee647
+
+2017-05-05 08:48 +0000 [c3ed63cb2c] Joshua Colp <jcolp@digium.com>
+
+ * func_cdr: Allow empty value for CDR dialplan function.
+
+ A regression was introduced in 12 where passing an empty value
+ to the CDR dialplan function was not longer allowed. This
+ change returns to the behavior of 11 where it is permitted.
+
+ ASTERISK-26173
+
+ Change-Id: I3f148203b54ec088007e29e30005a5de122e51c5
+
+2017-05-04 16:04 +0000 [bed6c0d04b] gtjoseph <gjoseph@digium.com>
+
+ * app_confbridge: Fix reference to cfg in menu_template_handler
+
+ menu_template_handler wasn't properly accounting for the fact that
+ it might be called both during a load/reload (which isn't really
+ valid but not prevented) and by a dialplan function. In both cases
+ it was attempting to use the "pending" config which wasn't valid in
+ the latter case. aco_process_config is also partly to blame because
+ it wasn't properly cleaning "pending" up when a reload was done and
+ no changes were made. Both of these contributed to a crash if
+ CONFBRIDGE(menu,template) was called in a dialplan after a reload.
+
+ * aco_process_config now sets info->internal->pending to NULL
+ after it unrefs it although this isn't strictly necessary in the
+ context of this fix.
+ * menu_template_handler now uses the "current" config and silently
+ ignores any attempt to be called as a result of someone uses the
+ "template" parameter in the conf file.
+
+ Luckily there's no other place in the codebase where
+ aco_pending_config is used outside of aco_process_config.
+
+ ASTERISK-25506 #close
+ Reported-by: Frederic LE FOLL
+
+ Change-Id: Ib349a17d3d088f092480b19addd7122fcaac21a7
+
+2017-04-30 16:40 +0000 [7ffd80cc04] Joshua Colp <jcolp@digium.com>
+
+ * bridge: Fix returning to dialplan when executing Bridge() from AMI.
+
+ When using the Bridge AMI action on the same channel multiple times
+ it was possible for the channel to return to the wrong location in
+ the dialplan if the other party hung up. This happened because the
+ priority of the channel was not preserved across each action
+ invocation and it would fail to move on to the next priority in
+ other cases.
+
+ This change makes it so that the priority of a channel is preserved
+ when taking control of it from another thread and it is incremented
+ as appropriate such that the priority reflects where the channel
+ should next be executed in the dialplan, not where it may or may not
+ currently be.
+
+ The Bridge AMI action was also changed to ensure that it too
+ starts the channels at the next location in the dialplan.
+
+ ASTERISK-24529
+
+ Change-Id: I52406669cf64208aef7252a65b63ade31fbf7a5a
+
+2017-05-01 13:04 +0000 [bbe90d6aed] Kevin Harwell <kharwell@digium.com>
+
+ * res_rtp_asterisk: Clearing the remote RTCP address causes RTCP failures
+
+ When a call gets put on hold RTP is temporarily stopped and Asterisk was
+ setting the remote RTCP address to NULL. Then when RTCP data was received
+ from the remote endpoint, Asterisk would be missing this information when
+ publishing the rtcp_message stasis event. Consequently, message subscribers
+ (in this case res_hep_rtcp) trying to parse the "from" field output the
+ following error:
+
+ "ast_sockaddr_split_hostport: Port missing in (null)"
+
+ This patch makes it so the remote RTCP address is no longer set to NULL when
+ stopping RTP. There was only one place that appeared to check if the remote
+ RTCP address was NULL as a way to tell if RTCP was running. This patch added
+ an additional check on the RTCP schedid for that case to make sure RTCP was
+ truly not running.
+
+ ASTERISK-26860 #close
+
+ Change-Id: I6be200fb20db647e48b5138ea4b81dfa7962974b
+
+2017-05-02 11:34 +0000 [526a0081a0] Sean Bright <sean.bright@gmail.com>
+
+ * cleanup: Change severity of fread short-read warning
+
+ Many sound files don't have a full frame's worth of data at EOF, so the
+ warning messages were a bit too noisy. So we demote them to debug
+ messages.
+
+ Change-Id: I6b617467d687658adca39170a81797a11cc766f6
+
+2017-04-26 07:58 +0000 [23db04ed93] Thierry Magnien <thierry.magnien@gmail.com>
+
+ * channels/chan_sip.c: use binding IP address for outgoing TCP SIP connections
+
+ For outgoing TCP connections, Asterisk uses the first IP address of the
+ interface instead of the IP address we asked him to bind to.
+
+ ASTERISK-26922 #close
+ Reported-by: Ksenia
+
+ Change-Id: I43c71ca89211dbf1838e5bcdb9be8d06d98e54eb
+
+2017-04-29 16:18 +0000 [02234e920c] Richard Mudgett <rmudgett@digium.com>
+
+ * rtp_engine.c: Fix deadlock potential copying RTP payload maps.
+
+ There is a theoretical potential to deadlock in
+ ast_rtp_codecs_payloads_copy() because it locks two different
+ ast_rtp_codecs locks. It is theoretical because the callers of the
+ function are either copying between a local ast_rtp_codecs struct and a
+ RTP instance of the ast_rtp_codecs struct. Or they are copying between
+ the caller and callee channel RTP instances before initiating the call to
+ the callee. Neither of these situations could actually result in a
+ deadlock because there cannot be another thread involved at the time.
+
+ * Add deadlock avoidance code to ast_rtp_codecs_payloads_copy() since it
+ locks two ast_rtp_codecs locks to perform a copy.
+
+ This only affects v13 since this deadlock avoidance code is already in
+ newer branches.
+
+ Change-Id: I1aa0b168f94049bd59bbd74a85bd1e78718f09e5
+
+2017-04-29 16:11 +0000 [9d5df48968] Richard Mudgett <rmudgett@digium.com>
+
+ * res_pjsip_t38.c: Fix deadlock in T.38 framehook.
+
+ A deadlock can happen between a channel lock and a pjsip session media
+ container lock. One thread is processing a reINVITE's SDP and walking
+ through the session's media container when it waits for the channel lock
+ to put the determined format capabilities onto the channel. The other
+ thread is writing a frame to the channel and processing the T.38 frame
+ hook. The T.38 frame hook then waits for the pjsip session's media
+ container lock. The two threads are now deadlocked.
+
+ * Made the T.38 frame hook release the channel lock before searching the
+ session's media container. This fix has been done to several other
+ frame hooks to fix deadlocks.
+
+ ASTERISK-26974 #close
+
+ Change-Id: Ie984a76ce00bef6ec9aa239010e51e8dd74c8186
+
+2017-04-28 10:56 +0000 [623832b94e] gtjoseph <gjoseph@digium.com>
+
+ * res_pjsip_outbound_authenticator_digest: Add context to log messages
+
+ There was no context info in this module's log messages so it was
+ impossible to toubleshoot.
+
+ Added endpoint or host to all messages and added the realms in the
+ challenge for the "No auth credentials for any realm" message.
+
+ Change-Id: Ifeed2786f35fbea7d141237ae15625e472acff9b
+
+2017-04-27 08:02 +0000 [c5b9ed20fd] gtjoseph <gjoseph@digium.com>
+
+ * res_pjsip_session: Add cleanup to ast_sip_session_terminate
+
+ If you use ast_request to create a PJSIP channel but then hang it
+ up without causing a transaction to be sent, the session will
+ never be destroyed. This is due ot the fact that it's pjproject
+ that triggers the session cleanup when the transaction ends.
+ app_chanisavail was doing this to get more granular channel state
+ and it's also possible for this to happen via ARI.
+
+ * ast_sip_session_terminate was modified to explicitly call the
+ cleanup tasks and unreference session if the invite state is NULL
+ AND invite_tsx is NULL (meaning we never sent a transaction).
+
+ * chan_pjsip/hangup was modified to bump session before it calls
+ ast_sip_session_terminate to insure that session stays valid
+ while it does its own cleanup.
+
+ * Added test events to session_destructor for a future testsuite
+ test.
+
+ ASTERISK-26908 #close
+ Reported-by: Richard Mudgett
+
+ Change-Id: I52daf6f757184e5544c261f64f6fe9602c4680a9
+
+2017-04-26 14:20 +0000 [c853cfdc7c] Kevin Harwell <kharwell@digium.com>
+
+ * res_pjsip/res_pjsip_callerid: NULL check on caller id name string
+
+ It's possible for a name in a party id structure to be marked as valid, but the
+ name string itself be NULL (for instance this is possible to do by using the
+ dialplan CALLERID function). There were a couple of places where the name was
+ validated, but the string itself was not checked before passing it to functions
+ like 'strlen'. This of course caused a crashed.
+
+ This patch adds in a NULL check before attempting to pass it into a function
+ that is not NULL tolerant.
+
+ ASTERISK-25823 #close
+
+ Change-Id: Iaa6ffe9d92f598fe9e3c8ae373fadbe3dfbf1d4a
+
+2017-04-25 11:43 +0000 [4d3b4fbf22] Kevin Harwell <kharwell@digium.com>
+
+ * vector: defaults and indexes
+
+ Added an pre-defined integer vector declaration. This makes integer vectors
+ easier to declare and pass around. Also, added the ability to default a vector
+ up to a given size with a default value. Lastly, added functionality that
+ returns the "nth" index of a matching value.
+
+ Also, updated a unit test to test these changes.
+
+ Change-Id: Iaf4b51b2540eda57cb43f67aa59cf1d96cdbcaa5
+
+2017-04-20 02:13 +0000 [566ad7c35d] Jean Aunis <jean.aunis@prescom.fr>
+
+ * chan_sip: Trigger reinvite if the SDP answer is included in the SIP ACK
+
+ Some equipments may send a re-INVITE containing an SDP in the final ACK
+ request. If this happens in the context of direct media, the remote end
+ should be updated with a re-INVITE.
+ This patch queues an "update RTP peer" frame to trigger the re-INVITE,
+ instead of the "source change" frame wich was used previously.
+
+ ASTERISK-26951
+
+ Change-Id: I3644d2025f20e086ea9f8f62b486172c52b5b2e6
+
+2017-04-26 08:45 +0000 [001dc2ade6] gtjoseph <gjoseph@digium.com>
+
+ * pjproject_bundled: Add --disable-libwebrtc to configure
+
+ Without the disable, pjproject tries to build it's internal
+ webrtc implementation which requires sse2. This fails on
+ platforms without sse2.
+
+ ASTERISK-26930 #close
+ Reported-by: abelbeck
+
+ Change-Id: I07231f9160c35cfa42b194d3aad4e7d51fd9a410
+
+2017-04-26 05:38 +0000 [ae696132a2] Joshua Colp <jcolp@digium.com>
+
+ * frame: Better handle interpolated frames.
+
+ Interpolated frames are frames which contain a number of
+ samples but have no actual data. Audiohooks did not
+ handle this case when translating an incoming frame into
+ signed linear. It assumed that a frame would always contain
+ media when it may not. If this occurs audiohooks will now
+ immediately return and not act on the frame.
+
+ As well for users of ast_trans_frameout the function has
+ been changed to be a bit more sane and ensure that the data
+ pointer on a frame is set to NULL if no data is actually
+ on the frame. This allows the various spots in Asterisk that
+ check for an interpolated frame based on the presence of a
+ data pointer to work as expected.
+
+ ASTERISK-26926
+
+ Change-Id: I7fa22f631fa28d540722ed789ce28e84c7f8662b
+
+2017-04-21 12:04 +0000 [1b50df78d0] Sean Bright <sean.bright@gmail.com>
+
+ * cleanup: Fix fread() and fwrite() error handling
+
+ Cleaned up some of the incorrect uses of fread() and fwrite(), mostly in
+ the format modules. Neither of these functions will ever return a value
+ less than 0, which we were checking for in some cases.
+
+ I've introduced a fair amount of duplication in the format modules, but
+ I plan to change how format modules work internally in a subsequent
+ patch set, so this is simply a stop-gap.
+
+ Change-Id: I8ca1cd47c20b2c0b72088bd13b9046f6977aa872
+
+2017-04-25 07:52 +0000 [c09b9dba90] Joshua Colp <jcolp@digium.com>
+
+ * alembic: Add table for 'resource_list' PJSIP RLS type.
+
+ This change adds an Alembic migration which adds a
+ ps_resource_list table that can contain resource_list
+ RLS configuration objects.
+
+ ASTERISK-26929
+
+ Change-Id: I7c888fafc67b3e87012de974f71ca7a5b8b1ec05
+
+2017-04-24 13:16 +0000 [1b88a3a4cf] Sean Bright <sean.bright@gmail.com>
+
+ * res_hep: Add additional config initialization and validation
+
+ * Initialize hepv3_runtime_data.sockfd to -1 so that our ao2 destructor
+ does not close fd 0
+
+ * Add logging output when the required option - capture_address - is not
+ specified.
+
+ * Remove a no longer relevant #define and correct related documentation
+
+ * Pass appropriate flags to aco_option_register so that capture_address
+ cannot be the empty string.
+
+ ASTERISK-26953 #close
+
+ Change-Id: Ief08441bc6596d6f1718fa810e54a5048124f076
+
+2017-04-17 19:06 +0000 [cea3742c54] Sean Bright <sean.bright@gmail.com>
+
+ * core: Use eventfd for alert pipes on Linux when possible
+
+ The primary win of switching to eventfd when possible is that it only
+ uses a single file descriptor while pipe() will use two. This means for
+ each bridge channel we're reducing the number of required file
+ descriptors by 1, and - if you're using timerfd - we also now have 1
+ less file descriptor per Asterisk channel.
+
+ The API is not ideal (passing int arrays), but this is the cleanest
+ approach I could come up with to maintain API/ABI.
+
+ I've also removed what I believe to be an erroneous code block that
+ checked the non-blocking flag on the pipe ends for each read. If the
+ file descriptor is 'losing' its non-blocking mode, it is because of a
+ bug somewhere else in our code.
+
+ In my testing I haven't seen any measurable difference in performance.
+
+ Change-Id: Iff0fb1573e7f7a187d5211ddc60aa8f3da3edb1d
+
+2017-04-21 12:33 +0000 [1213ac1ac5] Richard Mudgett <rmudgett@digium.com>
+
+ * res_pjsip_session.c: Send 100 Trying out earlier to prevent retransmissions.
+
+ If ICE is enabled and a STUN server does not respond then we will block
+ until we give up on the STUN response. This will take nine seconds. In
+ the mean time the peer that sent the INVITE will send retransmissions.
+
+ * Restructure res_pjsip_session.c:new_invite() to send a 100 Trying out
+ earlier to prevent these retransmissions.
+
+ ASTERISK-26890
+
+ Change-Id: Ie3fc611e53a0eff6586ad55e4aacad81cf6319a8
+
+2017-04-21 12:07 +0000 [80fd7fd908] Richard Mudgett <rmudgett@digium.com>
+
+ * res_pjsip_session.c: Restructure ast_sip_session_alloc()
+
+ * Restructure ast_sip_session_alloc() to need less cleanup on off nominal
+ error paths.
+
+ * Made ast_sip_session_alloc() and ast_sip_session_create_outgoing() avoid
+ unnecessary ref manipulation to return a session. This is faster than
+ calling a function. That function may do logging of the ref changes with
+ REF_DEBUG enabled.
+
+ Change-Id: I2a0affc4be51013d3f0485782c96b8fee3ddb00a
+
+2017-04-19 15:08 +0000 [98e38daf82] Sean Bright <sean.bright@gmail.com>
+
+ * pbx: Use same thread if AST_OUTGOING_WAIT_COMPLETE specified
+
+ Both ast_pbx_outgoing_app() and ast_pbx_outgoing_exten() cause the core
+ to spawn a new thread to perform the dial. When AST_OUTGOING_WAIT_COMPLETE
+ is passed to these functions, the calling thread will be blocked until
+ the newly created channel has been hung up.
+
+ After this patch, we run the dial on the current thread rather than
+ spawning a new one. The only in-tree code that passes
+ AST_OUTGOING_WAIT_COMPLETE is pbx_spool, so you should see reduced
+ thread usage if you are using .call files.
+
+ Change-Id: I512735d243f0a9da2bcc128f7a96dece71f2d913
+
+2017-04-19 13:23 +0000 [55f452884f] Richard Mudgett <rmudgett@digium.com>
+
+ * res_rtp_asterisk.c: Fix crash in RTCP DTLS operation.
+
+ Occasionally a crash happens when processing the RTCP DTLS timeout
+ handler. The RTCP DTLS timeout timer could be left running if we have not
+ completed the DTLS handshake before we place the call on hold or we
+ attempt direct media.
+
+ * Made ast_rtp_prop_set() stop the RTCP DTLS timer when disabling RTCP.
+
+ * Made some sanity tweaks to ast_rtp_prop_set() when switching from
+ standard RTCP mode to RTCP multiplexed mode.
+
+ ASTERISK-26692 #close
+
+ Change-Id: If6c64c79129961acfa4b3d63a864e8f6b664acc0
+
+2017-03-22 16:05 +0000 [f856cfbb51] Richard Mudgett <rmudgett@digium.com>
+
+ * rtp_engine/res_rtp_asterisk: Fix RTP struct reentrancy crashes.
+
+ The struct ast_rtp_instance has historically been indirectly protected
+ from reentrancy issues by the channel lock because early channel drivers
+ held the lock for really long times. Holding the channel lock for such a
+ long time has caused many deadlock problems in the past. Along comes
+ chan_pjsip/res_pjsip which doesn't necessarily hold the channel lock
+ because sometimes there may not be an associated channel created yet or
+ the channel pointer isn't available.
+
+ In the case of ASTERISK-26835 a pjsip serializer thread was processing a
+ message's SDP body while another thread was reading a RTP packet from the
+ socket. Both threads wound up changing the rtp->rtcp->local_addr_str
+ string and interfering with each other. The classic reentrancy problem
+ resulted in a crash.
+
+ In the case of ASTERISK-26853 a pjsip serializer thread was processing a
+ message's SDP body while another thread was reading a RTP packet from the
+ socket. Both threads wound up processing ICE candidates in PJPROJECT and
+ interfering with each other. The classic reentrancy problem resulted in a
+ crash.
+
+ * rtp_engine.c: Make the ast_rtp_instance_xxx() calls lock the RTP
+ instance struct.
+
+ * rtp_engine.c: Make ICE and DTLS wrapper functions to lock the RTP
+ instance struct for the API call.
+
+ * res_rtp_asterisk.c: Lock the RTP instance to prevent a reentrancy
+ problem with rtp->rtcp->local_addr_str in the scheduler thread running
+ ast_rtcp_write().
+
+ * res_rtp_asterisk.c: Avoid deadlock when local RTP bridging in
+ bridge_p2p_rtp_write() because there are two RTP instance structs
+ involved.
+
+ * res_rtp_asterisk.c: Avoid deadlock when trying to stop scheduler
+ callbacks. We cannot hold the instance lock when trying to stop a
+ scheduler callback.
+
+ * res_rtp_asterisk.c: Remove the lock in struct dtls_details and use the
+ struct ast_rtp_instance ao2 object lock instead. The lock was used to
+ synchronize two threads to prevent a race condition between starting and
+ stopping a timeout timer. The race condition is no longer present between
+ dtls_perform_handshake() and __rtp_recvfrom() because the instance lock
+ prevents these functions from overlapping each other with regards to the
+ timeout timer.
+
+ * res_rtp_asterisk.c: Remove the lock in struct ast_rtp and use the struct
+ ast_rtp_instance ao2 object lock instead. The lock was used to
+ synchronize two threads using a condition signal to know when TURN
+ negotiations complete.
+
+ * res_rtp_asterisk.c: Avoid deadlock when trying to stop the TURN
+ ioqueue_worker_thread(). We cannot hold the instance lock when trying to
+ create or shut down the worker thread without a risk of deadlock.
+
+ This patch exposed a race condition between a PJSIP serializer thread
+ setting up an ICE session in ice_create() and another thread reading RTP
+ packets.
+
+ * res_rtp_asterisk.c:ice_create(): Set the new rtp->ice pointer after we
+ have re-locked the RTP instance to prevent the other thread from trying to
+ process ICE packets on an incomplete ICE session setup.
+
+ A similar race condition is between a PJSIP serializer thread resetting up
+ an ICE session in ice_create() and the timer_worker_thread() processing
+ the completion of the previous ICE session.
+
+ * res_rtp_asterisk.c:ast_rtp_on_ice_complete(): Protect against an
+ uninitialized/null remote_address after calling
+ update_address_with_ice_candidate().
+
+ * res_rtp_asterisk.c: Eliminate the chance of ice_reset_session()
+ destroying and setting the rtp->ice pointer to NULL while other threads
+ are using it by adding an ao2 wrapper around the PJPROJECT ice pointer.
+ Now when we have to unlock the RTP instance object to call a PJPROJECT ICE
+ function we will hold a ref to the wrapper. Also added some rtp->ice NULL
+ checks after we relock the RTP instance and have to do something with the
+ ICE structure.
+
+ ASTERISK-26835 #close
+ ASTERISK-26853 #close
+
+ Change-Id: I780b39ec935dcefcce880d50c1a7261744f1d1b4
+
+2017-04-19 08:39 +0000 [dafcd97a77] Sean Bright <sean.bright@gmail.com>
+
+ * build: Update config.guess and config.sub
+
+ Change-Id: Id078a1df07a771808775e1053cdfe1d99c8fb172
+
+2017-04-14 13:52 +0000 [9bbfa6fda1] Sean Bright <sean.bright@gmail.com>
+
+ * format_wav: Read 16khz wav samples properly
+
+ When opening a PCM wave file for reading, we aren't tracking the
+ frequency of the opened file, so we treat 16khz files as 8khz and do
+ half reads.
+
+ This patch also cleans up some of the data types and an unnecessarily
+ complex `if` expression.
+
+ ASTERISK-26613 #close
+ Reported by: Vitaly K
+
+ Change-Id: I05f8b263058dc573ea8ffe0c62e7964506e11815
+
+2017-04-16 19:54 +0000 [4ccaffe644] gtjoseph <gjoseph@digium.com>
+
+ * make ari-stubs so doc periodic jobs can run
+
+ The periodic doc job does a make ari-stubs and checks that
+ there are no changes before generating the docs. Since I changed
+ the mustache template (and the generated code directly) recently
+ and forgot to regenerate the stubs, the doc job thinks they're out
+ of date.
+
+ Change-Id: Ibd4bc649556615ff714d44534c45b6c2f6aa449d
+
+2017-04-14 12:51 +0000 [90c630aaa1] Sean Bright <sean.bright@gmail.com>
+
+ * format_ogg_vorbis: Clear ogg/vorbis data structures on close
+
+ On filestream close, we need to clear out the ogg & vorbis data
+ structures to prevent a memory leak.
+
+ ASTERISK-26169 #close
+ Reported by: Ivan Myalkin
+
+ Change-Id: Iee94c5a5d5bdafbf8b181c5c064d15d90ace8274
+
+2017-04-14 17:31 +0000 [9084c85cb1] Richard Mudgett <rmudgett@digium.com>
+
+ * Revert "bridging: Ensure successful T.38 negotation"
+
+ This reverts commit 3e7c396a51b240088c475dd53e7bac9869376129.
+
+ Change-Id: I61d49d563babff788bb557345729b200d116bd88
+
+2017-04-14 16:50 +0000 [357d1fbdcc] Sean Bright <sean.bright@gmail.com>
+
+ * res_stun_monitor: Don't fail to load if DNS resolution fails
+
+ res_stun_monitor will fail to load if DNS resolution of the STUN server
+ fails. Instead, we continue without the STUN server being resolved and
+ we will re-attempt the resolution on the STUN refresh interval.
+
+ ASTERISK-21856 #close
+ Reported by: Jeremy Kister
+
+ Change-Id: I6334c54a1cc798f8a836b4b47948e0bb4ef59254
+
+2017-04-14 14:36 +0000 [ac15ebc379] Roman S.
+
+ * format_pcm: Track actual header size of .au files
+
+ Sun's Au file format has a minimum data offset 24 bytes, but this
+ offset is encoded in each .au file. Instead of assuming the minimum,
+ read the actual value and store it for later use.
+
+ ASTERISK-20984 #close
+ Reported by: Roman S.
+ Patches:
+ asterisk-1.8.20.0-au-clicks-2.diff (license #6474) patch
+ uploaded by Roman S.
+
+ Change-Id: I524022fb19ff2fd5af2cc2d669d27a780ab2057c
+
+2017-04-11 11:07 +0000 [f882ca2572] gtjoseph <gjoseph@digium.com>
+
+ * modules: change module LOAD_FAILUREs to LOAD_DECLINES
+
+ In all non-pbx modules, AST_MODULE_LOAD_FAILURE has been changed
+ to AST_MODULE_LOAD_DECLINE. This prevents asterisk from exiting
+ if a module can't be loaded. If the user wishes to retain the
+ FAILURE behavior for a specific module, they can use the "require"
+ or "preload-require" keyword in modules.conf.
+
+ A new API was added to logger: ast_is_logger_initialized(). This
+ allows asterisk.c/check_init() to print to the error log once the
+ logger subsystem is ready instead of just to stdout. If something
+ does fail before the logger is initialized, we now print to stderr
+ instead of stdout.
+
+ Change-Id: I5f4b50623d9b5a6cb7c5624a8c5c1274c13b2b25
+
+2017-04-07 16:14 +0000 [cd80af508e] Richard Mudgett <rmudgett@digium.com>
+
+ * res_rtp_asterisk.c: Add stun_blacklist option
+
+ Added the stun_blacklist option to rtp.conf. Some multihomed servers have
+ IP interfaces that cannot reach the STUN server specified by stunaddr.
+ Blacklist those interface subnets from trying to send a STUN packet to
+ find the external IP address. Attempting to send the STUN packet
+ needlessly delays processing incoming and outgoing SIP INVITEs because we
+ will wait for a response that can never come until we give up on the
+ response. Multiple subnets may be listed.
+
+ ASTERISK-26890 #close
+
+ Change-Id: I3ff4f729e787f00c3e6e670fe6435acce38be342
+
+2017-04-06 17:31 +0000 [f8219a2e12] Richard Mudgett <rmudgett@digium.com>
+
+ * stun.c: Fix ast_stun_request() erratic timeout.
+
+ If ast_stun_request() receives packets other than a STUN response then we
+ could conceivably never exit if we continue to receive packets with less
+ than three seconds between them.
+
+ * Fix poll timeout to keep track of the time when we sent the STUN
+ request. We will now send a STUN request every three seconds regardless
+ of how many other packets we receive while waiting for a response until we
+ have completed three STUN request transmission cycles.
+
+ Change-Id: Ib606cb08585e06eb50877f67b8d3bd385a85c266
+
+2017-04-06 18:30 +0000 [19b82a8644] Richard Mudgett <rmudgett@digium.com>
+
+ * sorcery.c: Speed up ast_sorcery_retrieve_by_id()
+
+ Return early if ast_sorcery_retrieve_by_id() is not passed an id to find.
+ Also eliminated the RAII_VAR() usage in the function.
+
+ Change-Id: I871dbe162a301b5ced8b4393cec27180c7c6b218
+
+2017-04-10 11:30 +0000 [aecf19e7d2] Richard Mudgett <rmudgett@digium.com>
+
+ * res_pjsip: Fix pointer use after unref.
+
+ Change-Id: I4b6e1b0070563eeaee223cb58326f1b962ed5bc1
+
+2017-04-06 18:18 +0000 [304f652cda] Richard Mudgett <rmudgett@digium.com>
+
+ * res_pjsip_sdp_rtp.c: Don't use deprecated transport struct member.
+
+ * create_rtp(): Eliminate use of deprecated transport struct member. That
+ member and several others in the transport structure were deprecated
+ because of an infinite loop created when using realtime configuration.
+ See 2451d4e4550336197ee2e482750cc53f30afa352
+
+ ASTERISK-26851
+
+ Change-Id: I0533aa13c9ce3c6cc394e0fd2b5bf1cd1b2ef3bc
+
+2017-04-10 17:45 +0000 [bb8cd2add7] Richard Mudgett <rmudgett@digium.com>
+
+ * tcptls.c: Cleanup TCP/TLS listener thread on abnormal exit.
+
+ Temporarily running out of file descriptors should not terminate the
+ listener thread. Otherwise, when there becomes more file descriptors
+ available, nothing is listening.
+
+ * Added EMFILE exception to abnormal thread exit.
+
+ * Added an abnormal TCP/TLS listener exit error message.
+
+ * Closed the TCP/TLS listener socket on abnormal exit so Asterisk does not
+ appear dead if something tries to connect to the socket.
+
+ ASTERISK-26903 #close
+
+ Change-Id: I10f2f784065136277f271159f0925927194581b5
+
+2017-04-07 08:58 +0000 [d8967ff2c0] Torrey Searle <torrey@voxbone.com>
+
+ * strings.h: Avoid overflows in the string hash functions
+
+ On 2's compliment machines abs(INT_MIN) behavior is undefined and
+ results in a negative value still being returnd. This results in
+ negative hash codes that can result in crashes.
+
+ ASTERISK-26528 #close
+
+ Change-Id: Idff550145ca2133792a61a2e212b4a3e82c6517b
+
+2017-04-08 03:05 +0000 [bbbd262ec0] Walter Doekes <walter+github@wjd.nu>
+
+ * samples: Undo removal of include from canonicalize-app-names commit.
+
+ This include was accidentally removed in changeset
+ Ia79aea64de89531362e993e34230c2044a70aa93. My bad.
+
+ Change-Id: I1d716c7f9590b4e97909fb8bca1f2ed9bd0e4082
+
+2017-04-07 08:35 +0000 [b3f4a6365e] Joshua Colp <jcolp@digium.com>
+
+ * pjsip: Add Alembic for PUBLISH support.
+
+ This change adds database tables for the PUBLISH support so it
+ can be configured using realtime. A minor fix to the
+ res_pjsip_publish_asterisk module was done so that it read the
+ sorcery configuration from the correct section. Finally the
+ sample configuration files have been updated.
+
+ ASTERISK-26928
+
+ Change-Id: I81991ae5c75af98d247f7eacd1c0b0a763675952
+
+2017-04-07 08:06 +0000 [e0e5a337fd] Alexander Traud <pabstraud@compuserve.com>
+
+ * pjproject_bundled: Crash on pj_ssl_get_info() while ioqueue_on_read_complete().
+
+ When the Asterisk channel driver res_pjsip offers SIP-over-TLS, sometimes, not
+ reproducible, Asterisk crashed in pj_ssl_sock_get_info() because a NULL pointer
+ was read. This change avoids this crash.
+
+ ASTERISK-26927 #close
+
+ Change-Id: I24a6011b44d1426d159742ff4421cf806a52938b
+
+2017-04-05 06:41 +0000 [3e7c396a51] Torrey Searle <torrey@voxbone.com>
+
+ * bridging: Ensure successful T.38 negotation
+
+ When a T.38 happens immediatly after call establishment, the control
+ frame can be lost because the other leg is not yet in the bridge.
+
+ This patch detects this case an makes sure T.38 negotation happens
+ when the 2nd leg is being made compatible with the negotating
+ first leg
+
+ ASTERISK-26923 #close
+
+ Change-Id: If334125ee61ed63550d242fc9efe7987e37e1d94
+
+2017-04-04 16:20 +0000 [4e6e069491] gtjoseph <gjoseph@digium.com>
+
+ * pjproject_bundled: Add 3 upstream patches
+
+ 0035-r5572-svn-backport-dialog-transaction-deadlock.patch
+ 0036-r5573-svn-backport-ua-pjsua-transaction-deadlock.patch
+ 0037-r5576-svn-backport-session-timer-crash.patch
+
+ Also removed the progress bar from wget download to stdout.
+
+ ASTERISK-26905 #close
+ Reported-by: Ross Beer
+
+ Change-Id: I268fb3cf71a3bb24283ff0d24bd8b03239d81256
+
+2017-04-05 14:50 +0000 [d2a33cdedc] gtjoseph <gjoseph@digium.com>
+
+ * sample_config: Add samples for pubsub to pjsip.conf.sample
+
+ Added:
+ * outbound-publish
+ * resource_list
+ * inbound-publication
+ * asterisk-publication
+
+ Change-Id: I65043a896c35483f30a92d30b5b118359af7ba5a
+
+2017-04-05 09:10 +0000 [ab9d2fc86d] Walter Doekes <walter+github@wjd.nu>
+
+ * samples: Canonicalize app names in extensions.conf.sample.
+
+ This takes care of warnings by ossobv/asterisklint.
+
+ Change-Id: Ia79aea64de89531362e993e34230c2044a70aa93
+
+2017-04-03 15:38 +0000 [6906765381] Richard Mudgett <rmudgett@digium.com>
+
+ * res_pjsip_sdp_rtp.c: Don't alter global addr variable.
+
+ * create_rtp(): Fix unexpected alteration of global address_rtp if a
+ transport is bound to an address.
+
+ * create_rtp(): Fix use of uninitialized memory if the endpoint RTP media
+ address is invalid or the transport has an invalid address.
+
+ ASTERISK-26851
+
+ Change-Id: Icde42e65164a88913cb5c2601b285eebcff397b7
+
+2017-03-27 09:03 +0000 [68bde0f07d] Corey Farrell <git@cfware.com>
+
+ * CDR: Protect from data overflow in ast_cdr_setuserfield.
+
+ ast_cdr_setuserfield wrote to a fixed length field using strcpy. This could
+ result in a buffer overrun when called from chan_sip or func_cdr. This patch
+ adds a maximum bytes written to the field by using ast_copy_string instead.
+
+ ASTERISK-26897 #close
+ patches:
+ 0001-CDR-Protect-from-data-overflow-in-ast_cdr_setuserfie.patch submitted
+ by Corey Farrell (license #5909)
+
+ Change-Id: Ib23ca77e9b9e2803a450e1206af45df2d2fdf65c
+
+2017-03-25 19:01 +0000 [70e5a2655d] Daniel Journo <dan@keshercommunications.com>
+
+ * Unused realtime MOH classes not purged on 'moh reload'
+
+ Purge Realtime MOH classes on 'moh reload' even when musiconhold.conf
+ hasn't changed.
+
+ ASTERISK-25974 #close
+
+ Change-Id: I42c78ea76528473a656f204595956c9eedcf3246
+
+2017-04-03 13:56 +0000 [27b556778d] Richard Mudgett <rmudgett@digium.com>
+
+ * res_pjsip: Fix transport ref leak.
+
+ We were leaking a transport ref in multihomed_on_rx_message() which
+ resulted in the FRACK about excessive ref counts.
+
+ ASTERISK-26916 #close
+
+ Change-Id: I7a96658a9614a060565bb9ad51cb1c9c11ee145f
+
+2017-04-03 02:30 +0000 [94bd529f9e] Alexander Traud <pabstraud@compuserve.com>
+
+ * chan_sip: Session Timers required but refused wrongly.
+
+ SIP user-agents indicate which protocol extensions are allowed in headers
+ like Supported and Required. Such protocol extensions are Session Timers
+ (RFC 4028) for example. Session Timers are supported since Mantis-10665.
+ Since ASTERISK-21721, not only the first but multiple Supported/Required
+ headers in a message are parsed. In that change, an existing variable was
+ re-used within a newly added do-loop. Currently, at the end of that loop,
+ that variable is an empty string always. Previously, that variable was used
+ within log output. However, the log output was not changed.
+
+ ASTERISK-26915 #close
+
+ Change-Id: I09315f31b4d78fb214bb2a9fb6c0f5e143eae990
+
+2017-03-31 16:31 +0000 [bca9685d39] Joshua Colp <jcolp@digium.com>
+
+ * res_pjsip_session: Allow BYE to be sent on disconnected session.
+
+ It is perfectly acceptable for a BYE to be sent on a disconnected
+ session. This occurs when we respond to a challenge to the BYE
+ for authentication credentials.
+
+ ASTERISK-26363
+
+ Change-Id: I6ef0ddece812fea6665a1dd2549ef44fb9d90045
+
+2017-03-30 18:28 +0000 [c701550803] Corey Farrell <git@cfware.com>
+
+ * Forward declare 'struct ast_json' in asterisk.h
+
+ The ast_json structure is used in many Asterisk headers and is often the
+ only part of json.h used. This adds a forward declaration to asterisk.h
+ and removes the include of json.h from many headers. The declaration
+ has been left in endpoints.h and stasis.h to avoid problems with source
+ files that use ast_json functions without directly including json.h.
+
+ ari.h continues to include json.h as it uses enum
+ ast_json_encoding_format.
+
+ Change-Id: Id766aabce6bed56626d27e8d29f559b5e687b769
+
+2017-03-30 08:11 +0000 [754e99d517] Sean Bright <sean.bright@gmail.com>
+
+ * cdr_pgsql: Fix buffer overflow calling libpq
+
+ Implement the same buffer size checking done in cel_pgsql.
+
+ ASTERISK-26896 #close
+ Reported by: twisted
+
+ Change-Id: Iaacfa1f1de7cb1e9414d121850d2d8c2888f3f48
+
+2017-03-28 13:01 +0000 [7954b39a50] Walter Doekes <walter+github@wjd.nu>
+
+ * build: Fix deb build issues with fakeroot
+
+ If DESTDIR is set, don't call ldconfig. Assume that DESTDIR is used to
+ create a binary archive. The ldconfig call should be delegated to the
+ archive postinst script. This fixes the case where fakeroot wraps 'make
+ install' causing $EUID to be 0 even though it doesn't have permission to
+ call ldconfig.
+
+ The previous logic in configure.ac to detect and correct libdir
+ has been removed as it was not completely accurate. CentOS 64-bit
+ users should again specifiy --libdir=/usr/lib64 when configuring
+ to prevent install to /usr/lib.
+
+ Updated Makefile:check-old-libdir to check for orphans in
+ lib64 when installing to lib as well as orphans in lib when installing
+ to lib64.
+
+ Updated Makefile and main/Makefile uninstall targets to remove the
+ orphans using the new logic.
+
+ ASTERISK-26705
+
+ Change-Id: I51739d4a03e60bff38be719b8d2ead0007afdd51
+
+2017-03-29 10:11 +0000 [c9648f4690] Sean Bright <sean.bright@gmail.com>
+
+ * astobj2: Prevent potential deadlocks with ao2_global_obj_release
+
+ The ao2_global_obj_release() function holds an exclusive lock on the
+ global object while it is being dereferenced. Any destructors that
+ run during this time that call ao2_global_obj_ref() will deadlock
+ because a read lock is required.
+
+ Instead, we make the global object inaccessible inside of the write
+ lock and only dereference it once we have released the lock. This
+ allows the affected destructors to fail gracefully.
+
+ While this doesn't completely solve the referenced issue (the error
+ message about not being able to create an IQ continues to be shown)
+ it does solve the backtrace spew that accompanied it.
+
+ ASTERISK-21009 #close
+ Reported by: Marcello Ceschia
+
+ Change-Id: Idf40ae136b5070dba22cb576ea8414fbc9939385
+
+2017-03-30 11:57 +0000 [1d1309b1ed] Joshua Colp <jcolp@digium.com>
+
+ * Revert "Update for 13.15.0-rc1"
+
+ This reverts commit 552cf009c0939c8b6597708135412bdc596df4bb.
+
+ Change-Id: Ie345bea481261b761c44079e9472622040fda302
+
+2017-03-30 10:18 +0000 [3c23ebdef4] Corey Farrell <git@cfware.com>
+
+ * CEL: Remove header declarations of non-existant functions.
+
+ ast_cel_alloc and ast_cel_destroy do not exist in code, remove them from
+ the headers.
+
+ Change-Id: I99ce848e2e109e7d61771559f559b9e57973e45c
+
+2017-03-29 08:27 +0000 [ef19db9261] Alexander Traud <pabstraud@compuserve.com>
+
+ * srtp: Allow zero as tag value for a sRTP Crypto Suite.
+
+ ASTERISK-25490 #close
+
+ Change-Id: I1c5fc0942c33c96d62b24203aad0f1e1a1a0131f
+
+2017-03-28 13:10 +0000 [a827892ff7] gtjoseph <gjoseph@digium.com>
+
+ * res_pjsip_config_wizard: Add 2 new parameters to help with proxy config
+
+ Two new parameters have been added to the pjsip config wizard.
+
+ * Setting 'sends_line_with_registrations' to true will cause the wizard
+ to skip the creation of an identify object to match incoming request
+ to the endpoint and instead add the line and endpoint parameters to
+ the outbound registration object.
+
+ * Setting 'outbound_proxy' is a shortcut for adding individual
+ endpoint/outbound_proxy, aor/outbound_proxy and
+ registration/outbound_proxy parameters.
+
+ Change-Id: I678e5f80765734c056620528a6d40d82736ceeb0
+
+2017-03-28 09:29 +0000 [864dda07f3] Sean Bright <sean.bright@gmail.com>
+
+ * alembic: Turn off execute bit on non-executable python scripts
+
+ Change-Id: I744c986da4a38aeff8c00837eb89de7841fbc86c
+
+2017-03-27 12:37 +0000 [a9529cbb21] Richard Mudgett <rmudgett@digium.com>
+
+ * Add DTLS sanity check.
+
+ Change-Id: Ib32612cf6c7ce9213a11b9cba82f630f8cd3564b
+
+2017-03-27 11:49 +0000 [bb68f57a03] Josh Roberson <josh@asteriasgi.com>
+
+ * cel_pgsql.c: Fix buffer overflow calling libpq
+
+ PQEscapeStringConn() expects the buffer passed in to be an
+ adequitely sized buffer to write out the escaped SQL value string
+ into. It is possible, for large values (such as large values to
+ Dial with a lot of devices) to have more than our 512+1 byte
+ allocation and thus cause libpq to create a buffer overrun.
+
+ glibc will nicely ABRT asterisk for you, citing a stack smash.
+
+ Let's only allocate it to be as large as needed:
+ If we have a value, then (strlen(value) * 2) + 1 (as recommended
+ by libpq), and if we have none, just one byte to hold our null
+ will do.
+
+ ASTERISK-26896 #close
+
+ Change-Id: If611c734292618ed68dde17816d09dd16667dea2
+
+2017-03-24 07:43 +0000 [79a2c26c03] Sean Bright <sean.bright@gmail.com>
+
+ * core: Remove embedded module support
+
+ This has not worked for some time and is no longer actively maintained.
+
+ Change-Id: I5110b0db69c152761b58fa025cb0a53b0e544d99
+
+2017-03-27 09:35 +0000 [2c28f7a922] Sean Bright <sean.bright@gmail.com>
+
+ * res_musiconhold: Document the 'format' option
+
+ ASTERISK-26086 #close
+ Reported by: Jens Bürger
+
+ Change-Id: I6aab666c0bf01fd0c64d7a5bcb22fa7f5d41335e
+
+2017-03-27 08:58 +0000 [61fd70c250] Sean Bright <sean.bright@gmail.com>
+
+ * res_musiconhold: Don't chdir() when scanning MoH files
+
+ There doesn't appear to be any reason that we are chdir'ing in
+ moh_scan_files, and in the event of an Asterisk crash, the core files
+ may not get written because we have changed into a read-only directory.
+
+ ASTERISK-23996 #close
+ Reported by: Walter Doekes
+
+ Change-Id: Iac806dce01b3335963fbd62d4b4da9a65c614354
+
+2017-03-23 09:48 +0000 [73bb08fd6a] Sean Bright <sean.bright@gmail.com>
+
+ * res_xmpp: Use incremental backoff when a read error occurs
+
+ If a read error occurs, we immediately attempt a reconnect without any
+ delay. Instead, let's sleep and backoff up to 60 seconds before we try
+ again.
+
+ ASTERISK-24712 #close
+ Reported by: Matthias Urlichs
+
+ Change-Id: I6fe10ef4734837727437beab715e336777f13f48
+
+2017-03-23 05:19 +0000 [55693383e2] Sean Bright <sean.bright@gmail.com>
+
+ * res_xmpp: Fix ref counting issue
+
+ The only remaining reference to the endpoint is in the endpoints
+ container, and because it is unlinked in ast_endpoint_shutdown, we don't
+ have to explicitly cleanup the endpoint ourselves.
+
+ Change-Id: I912a2692e52d3e2ed445b32d8ae3f9004bc2f2e8
+
+2017-03-23 09:45 +0000 [1966265562] Sean Bright <sean.bright@gmail.com>
+
+ * res_xmpp: Try to provide useful errors messages from OpenSSL
+
+ If any errors occur during the TLS connection setup, we currently dump a
+ fairly generic error message. So instead we try to pull in something
+ useful from OpenSSL to report instead.
+
+ ASTERISK-24712
+ Reported by: Matthias Urlichs
+
+ Change-Id: I288500991a9681f447d92913b11fedaf426087f4
+
+2017-03-23 09:30 +0000 [03b99ae3d2] Sean Bright <sean.bright@gmail.com>
+
+ * res_xmpp: Correctly check return value of SSL_connect
+
+ SSL_connect returns non-zero for both success and some error conditions
+ so simply negating is inadequate.
+
+ Change-Id: Ifbf882896e598703b6c615407fa456d3199f95b1
+
+2017-03-24 11:29 +0000 [d9d2beba1c] Sean Bright <sean.bright@gmail.com>
+
+ * res_pjsip_sdp_rtp: Set hangup cause for RTP timeouts
+
+ chan_sip sets the hangup cause code to AST_CAUSE_REQUESTED_CHAN_UNAVAIL
+ (44) when a channel is hung up due to an RTP timeout. So do the same
+ when it happens with PJSIP for parity.
+
+ Change-Id: I3546ebbde6460c22a27c9da1bf321711b5961ab8
+
+2017-03-23 12:07 +0000 [e6aeeabddf] Kevin Harwell <kharwell@digium.com>
+
+ * pjproject_bundled: raise timeout value used when downloading
+
+ After configuring Asterisk with '--with-pjproject-bundled' the configure/build
+ process attempts to download pjproject from its download site. Currently, a
+ timeout of 10 seconds is used that will stop the download process if pjproject
+ has not been fully downloaded in that time. For some systems this was not enough
+ time and the process was timing out too early.
+
+ This patch raises the download timeout value to '60'. Also, this patch fixes
+ another bug where the DOWNLOAD_TIMEOUT variable was not being properly exported
+ due to a naming error. DOWNLOAD_MAX_TIMEOUT is now properly renamed to
+ DOWNLOAD_TIMEOUT.
+
+ ASTERISK-26814 #close
+
+ Change-Id: Ia56e4e8a3d39db76bc8a1852b2cf07ec10b39842
+
+2017-03-22 20:33 +0000 [0939a19cff] Sean Bright <sean.bright@gmail.com>
+
+ * res_xmpp: Correct implementation of JABBER_STATUS & JabberStatus
+
+ The documentation for JABBER_STATUS (and the deprecated JabberStatus
+ app) indicate that a return value of 7 indicates that the specified
+ buddy was not in the roster. It also indicates that you can specify a
+ "bare" JID (one without a resource). Unfortunately the actual behavior
+ does not match the documented behavior.
+
+ Assuming that our roster includes the buddy online and available
+ "valid@example.org/Valid" and does *not* include the buddy
+ "invalid@example.org", the JABBER_STATUS() function returns the
+ following before this patch:
+
+ +------------------------------+------------+--------------------------+
+ | Buddy | Status | Result |
+ +------------------------------+------------+--------------------------+
+ | valid@example.org | Online | 7 (Not in roster) |
+ | valid@example.org/Valid | Online | 1 (Online) |
+ | valid@example.org/Invalid | N/A | 7 (Not in roster) |
+ | invalid@example.org | N/A | Error logged, no return |
+ | invalid@example.org/Valid | N/A | Error logged, no return |
+ +------------------------------+------------+--------------------------+
+
+ And after this patch:
+
+ +------------------------------+------------+--------------------------+
+ | Buddy | Status | Result |
+ +------------------------------+------------+--------------------------+
+ | valid@example.org | Online | 1 (Online) |
+ | valid@example.org/Valid | Online | 1 (Online) |
+ | valid@example.org/Invalid | N/A | 6 (Offline) |
+ | invalid@example.org | N/A | 7 (Not in roster) |
+ | invalid@example.org/Valid | N/A | 7 (Not in roster) |
+ +------------------------------+------------+--------------------------+
+
+ This brings the behavior in line with the documentation.
+
+ ASTERISK-23510 #close
+ Reported by: Anthony Critelli
+
+ Change-Id: I9c3241035363ef4a6bdc21fabfd8ffcd9ec657bf
+
+2017-03-22 17:32 +0000 [a487f6fb97] Sean Bright <sean.bright@gmail.com>
+
+ * res_xmpp: Don't crash when trying to send a message without a connection
+
+ If we never establish a connection to our Jabber server, iksemel never sets up
+ its internal transport pointer, so attempting to send a message dereferences a
+ NULL pointer and causes a crash.
+
+ ASTERISK-21855 #close
+ Reported by: Jeremy Kister
+
+ Change-Id: I204a568894e4a53ab929783ecc594a000f04d79c
+
+2017-03-22 15:40 +0000 [90fb1fca41] Sean Bright <sean.bright@gmail.com>
+
+ * res_xmpp: Include client name in connection related error messages
+
+ ASTERISK-25622 #close
+ Reported by: Sean Darcy
+
+ Change-Id: I8472cb7bfb58d411a3cfbd482da98cae2d94d1e9
+
+2017-03-21 12:32 +0000 [e196190f11] Sebastian Gutierrez <sgutierrez@integraccs.com>
+
+ * cdr: Allow setting of user field from 'h' extension
+
+ The CDR code previously did not allow the user field to be set
+ from the 'h' extension in the dialplan. This change removes that
+ limitation and allows it to be set.
+
+ ASTERISK-26818
+
+ Change-Id: I0fed8a79b5e408bac4e30542b8f33a61c5ed9aa6
+
+2017-03-14 23:49 +0000 [d5b480afca] Aaron An <anjb@ti-net.com.cn>
+
+ * audiohook.c: Lost RTP packets lead to out-of-sync MixMonitor.
+
+ Fixed a bug in function "ast_audiohook_write_frame" that checked the
+ variable other_factory_samples and only flushed the factories, so they
+ would be in sync, when other_factory_samples > 0. When there is not any
+ rtp incoming the variable other_factory_samples will be 0, and although
+ the result of "our_factory_ms - other_factory_ms" may be very large,
+ this led to the record file not syncing.
+
+ ASTERISK-26875 #close
+ Reported-by: Aaron An
+ Tested-by: Aaron An
+
+ Change-Id: Ia4d890fb8fc1636a7188502bab35f555685aea22
+
+2017-03-23 20:33 +0000 Asterisk Development Team <asteriskteam@digium.com>
+
+ * asterisk 13.15.0-rc1 Released.
+
+2017-03-23 14:03 +0000 [f1b34e6eb4] Kevin Harwell <kharwell@digium.com>
+
+ * AMI: Updated version
+
+ Updated the AMI version for the following reason (see CHANGES for more details):
+
+ The 'PJSIPShowEndpoint' command's response event of 'IdentifyDetail' now
+ contains a new optional parameter, 'MatchHeader'.
+
+ Change-Id: I9aeac4decc89f9b464b3f026e97c7ef1acc79242
+
+2017-03-14 16:45 +0000 [398e5ec16c] Richard Begg <asterisk@meric.id.au>
+
+ * res_pjsip_session: Enable RFC3578 overlap dialing support.
+
+ Support for RFC3578 overlap dialling (i.e. 484 Response to partially matched
+ destinations) as currently provided by chan_sip is missing from res_pjsip.
+ This patch adds a new endpoint attribute (allow_overlap) [defaults to yes]
+ which when set to yes enables 484 responses to partial destination
+ matches rather than the current 404.
+
+ ASTERISK-26864
+
+ Change-Id: Iea444da3ee7c7d4f1fde1d01d138a3d7b0fe40f6
+
+2017-03-21 06:59 +0000 [218f618095] Sean Bright <sean.bright@gmail.com>
+
+ * res_hep: Capture actual transport type in use
+
+ Rather than hard-coding UDP, allow consumers of the HEP API to specify
+ which protocol is in use. Update the PJSIP provider to pass in the
+ current protocol type.
+
+ ASTERISK-26850 #close
+
+ Change-Id: I54bbb0a001cfe4c6a87ad4b6f2014af233349978
+
+2017-03-21 09:57 +0000 [1c8b81a2a4] Sean Bright <sean.bright@gmail.com>
+
+ * Revert "app_queue: Handle the caller being redirected out of a queue bridge"
+
+ This reverts commit 163e9e53dc7d84dd42721e733b7706c8147bdd27.
+
+ Change-Id: Ief28479c77a298879dfe2c56be7ee92dc465da4b
+
+2017-03-21 08:26 +0000 [b3cc20799b] Sean Bright <sean.bright@gmail.com>
+
+ * res_pjsip_messaging: Check URI type before dereferencing
+
+ We aren't validating that the URI we just parsed is a SIP/SIPS one before
+ trying to access the user, host, and port members of a possibly uninitialized
+ structure.
+
+ Also update the MessageSend documentation to indicate what 'from' formats are
+ accepted.
+
+ ASTERISK-26484 #close
+ Reported by: Vinod Dharashive
+
+ Change-Id: I476b5cc5f18a7713d0ee945374f2a1c164857d30
+
+2017-03-13 15:21 +0000 [91c97b5da5] Joshua Elson <joshelson@gmail.com>
+
+ * pjsip: prevent memory corruption on creation of xml bodies
+
+ ASTERISK-26776 #close
+
+ Change-Id: I884b6f4e8233a355d0be687ec78d41bc0e4d3fd2
+
+2017-03-20 16:27 +0000 [7f34c11b6a] Sean Bright <sean.bright@gmail.com>
+
+ * bridge_softmix: Ignore non-voice frames from translator
+
+ Some codecs - codec_speex specifically - take voice frames and return
+ other types of frames, like CNG. If we subsequently treat those as
+ voice frames, we'll run into trouble when destroying the frame because
+ of the requirement that each voice frame have an associated format.
+
+ ASTERISK-26880 #close
+ Reported by: Kirsty Tyerman
+
+ Change-Id: I43f8450c48fb276ad8b99db8512be82949c1ca7c
+
+2017-03-18 12:30 +0000 [38cebc73a3] Sean Bright <sean.bright@gmail.com>
+
+ * thread safety: Don't use getprotobyname()
+
+ POSIX does not require getprotobyname() to be thread safe and some
+ implementations use static memory which causes issues when multiple
+ threads are used.
+
+ Further, our usage of it today is just to ultimately get IPPROTO_TCP
+ for calls to setsockopt(). So instead we just use IPPROTO_TCP directly.
+
+ Change-Id: I2e14e58674808f7ce99b2f5e900d0f90d0d8da48
+
+2017-03-19 13:26 +0000 [265455bc2d] Sean Bright <sean.bright@gmail.com>
+
+ * res_rtp_asterisk: Pass correct data length to ast_rtcp_interpret
+
+ We are currently passing in the capacity of the read buffer instead of the
+ number of bytes that we actually read off the wire.
+
+ Change-Id: I60465049727d955c7f9a5e529e6f2aaff04cda36
+
+2017-03-14 09:27 +0000 [76afb9e18a] Robert Mordec <r.mordec@slican.pl>
+
+ * app_queue: Member stuck as pending after forwarding previous call from queue
+
+ Queue member will get stuck in pending_members if queue calls a device
+ that is different from the one observed for state changes.
+
+ This patch removes members from pending_members as a result of channel stasis
+ events such as blind or attended transfers and hangup.
+
+ ASTERISK-26862 #close
+
+ Change-Id: I8bf6df487b9bb35726c08049ff25cdad5e357727
+
+2017-02-22 23:26 +0000 [60b372a883] Richard Mudgett <rmudgett@digium.com>
+
+ * CHANNEL(callid): Give dialplan access to the callid.
+
+ * Added CHANNEL(callid) to retrieve the call identifier log tag associated
+ with the channel. Dialplan now has access to the call log search key
+ associated with the channel so it can be saved in case there is a problem
+ with the call.
+
+ ASTERISK-26878
+
+ Change-Id: I2c97ebd928b6f3c5bc80c5729e4d3c07f453049f
+
+2017-03-16 08:42 +0000 [9a57b24e17] Sean Bright <sean.bright@gmail.com>
+
+ * app_queue: Fix locking behavior in stasis message handlers
+
+ The queue_stasis_data structure contains various mutable fields that require
+ appropriate locking. Specifically, the 'dying,' 'member_uniqueid,' and
+ 'caller_uniqueid' fields need to be locked when read from or written to.
+
+ Change-Id: I246b7dbff8447acc957a1299f6ad0ebd0fd39088
+
+2017-03-07 19:28 +0000 [8721d0bf1b] Sean Bright <sean.bright@gmail.com>
+
+ * chan_sip: Add rtcp-mux support
+
+ ASTERISK-26846 #close
+
+ Change-Id: I541a1602ff55ab73684e9f8002edb9e0e745d639
+
+2017-03-16 16:50 +0000 [792171ea9e] Richard Mudgett <rmudgett@digium.com>
+
+ * app_confbridge: Fix ConfbridgeTalking AMI event description.
+
+ Thanks to Chris Howard for pointing this out on the wiki.
+
+ Change-Id: I18e56de09a70e736b5d04719d45ef29cf0636705
+
+2017-03-16 16:37 +0000 [047fb7f11e] Richard Mudgett <rmudgett@digium.com>
+
+ * res_pjsip_asterisk.c: Fix compile error if libsrtp is not installed.
+
+ struct ast_rtcp does not define the dtls member if SRTP is not enabled.
+
+ ASTERISK-26732
+
+ Change-Id: Id15ea212e04490e012f2cf4a56818b4dd948875e
+
+2017-03-16 15:45 +0000 [a75f02c089] Richard Mudgett <rmudgett@digium.com>
+
+ * res_pjsip_sdp_rtp.c: Fix cut-n-paste error
+
+ We were inadvertenly referencing the cos_video option to determine if we
+ should set the tos_audio and cos_audio value on the RTP instance.
+
+ Change-Id: Ia7964f486801d39dc6f5dae570baff079e1595b0
+
+2017-03-16 10:39 +0000 [776ffd7724] Matt Jordan <mjordan@digium.com>
+
+ * res/res_pjsip_session: Only check localnet if it is defined
+
+ If local_net is not defined on a transport, transport_state->localnet
+ will be NULL. ast_apply_ha will, be default, return AST_SENSE_ALLOW in
+ this case, causing the external_media_address, if set, to be skipped.
+
+ This patch causes us to only check if we are sending within a network if
+ local_net is defined.
+
+ ASTERISK-26879 #close
+
+ Change-Id: Ib661c31a954cabc9c99f1f25c9c9a5c5b82cbbfb
+
+2017-03-14 16:22 +0000 [139bc3495f] Richard Begg <asterisk@meric.id.au>
+
+ * res_pjsip_sdp_rtp: RTP instance does not use same IP as explicit transport
+
+ Currently a wildcard address is used for the local RTP socket, which
+ will not always result in the same address as used by the SIP socket
+ (e.g. if explicit transport addresses are configured).
+ Use the transport's host address when binding new local RTP sockets if
+ available.
+
+ ASTERISK-26851
+
+ Change-Id: I098c29c9d1f79a4f970d72ba894874ac75954f1a
+
+2017-03-16 09:07 +0000 [7ea7797e12] Joshua Colp <jcolp@digium.com>
+
+ * res_rtp_asterisk: Fix crash when RTCP is not present when DTLS is stopped.
+
+ This change removes an assumption that when DTLS is stopped
+ an RTCP session will be present on the RTP session. This is not
+ always the case.
+
+ ASTERISK-26732
+
+ Change-Id: Ib9f7c09ce0b005efe362dbcc8795202b18f94611
+
+2017-03-07 08:33 +0000 [9b756662a8] gtjoseph <gjoseph@digium.com>
+
+ * res_pjsip: Symmetric transports
+
+ A new transport parameter 'symmetric_transport' has been added.
+
+ When a request from a dynamic contact comes in on a transport with
+ this option set to 'yes', the transport name will be saved and used
+ for subsequent outgoing requests like OPTIONS, NOTIFY and INVITE.
+ It's saved as a contact uri parameter named 'x-ast-txp' and will
+ display with the contact uri in CLI, AMI, and ARI output. On the
+ outgoing request, if a transport wasn't explicitly set on the
+ endpoint AND the request URI is not a hostname, the saved transport
+ will be used and the 'x-ast-txp' parameter stripped from the
+ outgoing packet.
+
+ * config_transport was modified to accept and store the new parameter.
+
+ * config_transport/transport_apply was updated to store the transport
+ name in the pjsip_transport->info field using the pjsip_transport->pool
+ on UDP transports.
+
+ * A 'multihomed_on_rx_message' function was added to
+ pjsip_message_ip_updater that, for incoming requests, retrieves the
+ transport name from pjsip_transport->info and retrieves the transport.
+ If transport->symmetric_transport is set, an 'x-ast-txp' uri parameter
+ containing the transport name is added to the incoming Contact header.
+
+ * An 'ast_sip_get_transport_name' function was added to res_pjsip.
+ It takes an ast_sip_endpoint and a pjsip_sip_uri and returns a
+ transport name if endpoint->transport is set or if there's an
+ 'x-ast-txp' parameter on the uri and the uri host is an ipv4 or
+ ipv6 address. Otherwise it returns NULL.
+
+ * An 'ast_sip_dlg_set_transport' function was added to res_pjsip
+ which takes an ast_sip_endpoint, a pjsip_dialog, and an optional
+ pjsip_tpselector. It calls ast_sip_get_transport_name() and if
+ a non-NULL is returned, sets the selector and sets the transport
+ on the dialog. If a selector was passed in, it's updated.
+
+ * res_pjsip/ast_sip_create_dialog_uac and ast_sip_create_dialog_uas
+ were modified to call ast_sip_dlg_set_transport() instead of their
+ original logic.
+
+ * res_pjsip/create_out_of_dialog_request was modified to call
+ ast_sip_get_transport_name() and pjsip_tx_data_set_transport()
+ instead of its original logic.
+
+ * Existing transport logic was removed from endpt_send_request
+ since that can only be called after a create_out_of_dialog_request.
+
+ * res_pjsip/ast_sip_create_rdata was converted to a wrapper around
+ a new 'ast_sip_create_rdata_with_contact' function which allows
+ a contact_uri to be specified in addition to the existing
+ parameters. (See below)
+
+ * res_pjsip_pubsub/internal_pjsip_evsub_send_request was eliminated
+ since all it did was transport selection and that is now done in
+ ast_sip_create_dialog_uac and ast_sip_create_dialog_uas.
+
+ * 'contact_uri' was added to subscription_persistence. This was
+ necessary because although the parsed rdata contact header has the
+ x-ast-txp parameter added (if appropriate),
+ subscription_persistence_update stores the raw packet which
+ doesn't have it. subscription_persistence_recreate was then
+ updated to call ast_sip_create_rdata_with_contact with the
+ persisted contact_uri so the recreated subscription has the
+ correct transport info to send the NOTIFYs.
+
+ * res_pjsip_session/internal_pjsip_inv_send_msg was eliminated since
+ all it did was transport selection and that is now done in
+ ast_sip_create_dialog_uac.
+
+ * pjsip_message_ip_updater/multihomed_on_tx_message was updated
+ to remove all traces of the x-ast-txp parameter from the
+ outgoing headers.
+
+ NOTE: This change does NOT modify the behavior of permanent
+ contacts specified on an aor. To do so would require that the
+ permanent contact's contact uri be updated with the x-ast-txp
+ parameter and the aor sorcery object updated. If we need to
+ persue this, we need to think about cloning permanent contacts into
+ the same store as the dynamic ones on an aor load so they can be
+ updated without disturbing the originally configured value.
+
+ You CAN add the x-ast-txp parameter to a permanent contact's uri
+ but it would be much simpler to just set endpoint->transport.
+
+ Change-Id: I4ee1f51473da32ca54b877cd158523efcef9655f
+
+2017-03-15 13:24 +0000 [adad6020be] Richard Mudgett <rmudgett@digium.com>
+
+ * autochan/mixmonitor/chanspy: Fix unsafe channel locking and references.
+
+ Dereferencing struct ast_autochan.chan without first calling
+ ast_autochan_channel_lock() is unsafe because the pointer could change at
+ any time due to a masquerade. Unfortunately, ast_autochan_channel_lock()
+ itself uses struct ast_autochan.chan unsafely and can result in a deadlock
+ if the original channel happens to get destroyed after a masquerade in
+ addition to the pointer getting changed.
+
+ The problem is more likely to happen with v11 and earlier because
+ masquerades are used to optimize out local channels on those versions.
+ However, it could still happen on newer versions if the channel is
+ executing a dialplan application when the channel is transferred or
+ redirected. In this situation a masquerade still must be used.
+
+ * Added a lock to struct ast_autochan to safely be able to use
+ ast_autochan.chan while trying to get the channel lock in
+ ast_autochan_channel_lock(). The locking order is the channel lock then
+ the autochan lock. Locking in the other direction requires deadlock
+ avoidance.
+
+ * Fix unsafe ast_autochan.chan usages in app_mixmonitor.c.
+
+ * Fix unsafe ast_autochan.chan usages in app_chanspy.c.
+
+ * app_chanspy.c: Removed unused autochan parameter from next_channel().
+
+ ASTERISK-26867
+
+ Change-Id: Id29dd22bc0f369b44e23ca423d2f3657187cc592
+
+2017-03-07 14:13 +0000 [7bc69753bc] Mark Michelson <mmichelson@digium.com>
+
+ * Add rtcp-mux support
+
+ This commit adds support for RFC 5761: Multiplexing RTP Data and Control
+ Packets on a Single Port. Specifically, it enables the feature when
+ using chan_pjsip.
+
+ A new option, "rtcp_mux" has been added to endpoint configuration in
+ pjsip.conf. If set, then Asterisk will attempt to use rtcp-mux with
+ whatever it communicates with. Asterisk follows the rules set forth in
+ RFC 5761 with regards to falling back to standard RTCP behavior if the
+ far end does not indicate support for rtcp-mux.
+
+ The lion's share of the changes in this commit are in
+ res_rtp_asterisk.c. This is because it was pretty much hard wired to
+ have an RTP and an RTCP transport. The strategy used here is that when
+ rtcp-mux is enabled, the current RTCP transport and its trappings (such
+ as DTLS SSL session) are freed, and the RTCP session instead just
+ mooches off the RTP session. This leads to a lot of specialized if
+ statements throughout.
+
+ ASTERISK-26732 #close
+ Reported by Dan Jenkins
+
+ Change-Id: If46a93ba1282418d2803e3fd7869374da8b77ab5
+
+2017-03-09 11:05 +0000 [163e9e53dc] Sean Bright <sean.bright@gmail.com>
+
+ * app_queue: Handle the caller being redirected out of a queue bridge
+
+ A caller can leave the Queue() application after being bridged with a
+ member in a few ways:
+
+ * Caller or member hangup
+ * Caller is transferred somewhere else (blind or atx)
+ * Caller is externally redirected elsewhere
+
+ The first 2 scenarios are currently handled by subscribing to stasis
+ messages, but the 3rd is not explicitly covered. If a caller is
+ redirected away from the Queue() application, the member who was last
+ bridged with that caller will remain in an "In use" state until the
+ caller hangs up.
+
+ This patch adds handling of the caller leaving the queue via
+ redirection. We monitor the caller-member bridge, and if the caller is
+ the one that leaves, we treat it the same as we would a caller hangup.
+
+ ASTERISK-26400 #close
+ Reported by: Etienne Lessard
+
+ Change-Id: Iba160907770de5a6c9efeffc9df5a13e9ea75334
+
+2017-03-15 08:44 +0000 [7612601964] Joshua Colp <jcolp@digium.com>
+
+ * res_pjsip_endpoint_identifier_ip: Don't output error if no header_match.
+
+ This change ensures that if no header_match option is set on an
+ identify an error message is not output stating the option is set
+ to an invalid value.
+
+ ASTERISK-26863
+
+ Change-Id: I239bc6d2319dd3da24ba96a38d4d6e9b5526d62a
+
+2017-03-14 08:49 +0000 [48447313b6] Torrey Searle <torrey@voxbone.com>
+
+ * res/res_pjsip_refer: call xfer w/o extension
+
+ When transfering to a URI without an extension, ensure that the
+ s extension of the dialplan is entered
+
+ ASTERISK-26869 #close
+
+ Change-Id: I07403df66cf93f09e00a40ab5b41bfc6f72b1525
+
+2017-03-14 16:16 +0000 [9fd9b39e8b] Richard Mudgett <rmudgett@digium.com>
+
+ * pbx.c: Fix crash from malformed exten pattern.
+
+ Forgetting to indicate an exten is a pattern can cause a crash if the
+ "pattern" has a character set range. e.g., "9999[3-5]" The crash is due
+ to a buffer overwrite because the '-' exten eye-candy wasn't removed as
+ expected and overran the allocated space.
+
+ The buffer overwrite is fixed two ways in this patch.
+
+ 1) Fix ext_strncpy() to distinguish between pattern and non-pattern
+ extens. Now '-' characters are removed when they are eye-candy and not
+ when they are part of a pattern character set. Since the function is
+ private to pbx.c, the return value now returns the number of bytes written
+ to the destination buffer instead of the strlen() of the final buffer so
+ the callers that care don't need to add one.
+
+ 2) Fix callers to ext_strncpy() to supply the correct available buffer
+ size of the destination buffer.
+
+ ASTERISK-26668
+
+ Change-Id: I555d97411140e47e0522684062d174fbe32aa84a
+
+2017-03-14 16:51 +0000 [5389666d6f] Richard Begg <asterisk@meric.id.au>
+
+ * chan_iax2: Reload of iax peer results in loss of host address/port
+
+ When using a non-dynamic peer address, build_peer() invalidates the
+ peer address structure by setting the address family to unspecified.
+ However, if dnsmgr is enabled, the subsequent call to ast_dnsmgr_lookup()
+ will not amend the peer address if the cache is still valid, resulting
+ in peer connectivity failures.
+ To fix this, we call ast_dnsmgr_refresh() instead.
+
+ ASTERISK-26865
+
+ Change-Id: Id8a89a2f771ebbaf32255a35fe596a6dcb97a082
+
+2017-03-14 15:12 +0000 [658d59c683] Matt Jordan <mjordan@digium.com>
+
+ * configure: Don't use the progress bar with curl when downloading to stdout
+
+ In some scenarios, such as when there may not be a terminal (such as
+ inside a Docker container), curl will apparently direct the progress bar
+ to stdout. This can cause extra data to be appended to a file curl'd
+ down to stdout, resulting in md5 verification failures.
+
+ This patch removes the progress bar, and tells curl to download the file
+ silently.
+
+ ASTERISK-26872 #close
+
+ Change-Id: Ie860b020f627d4372b3e7ce9453de5faafeebe6c
+
+2017-03-14 07:50 +0000 [b3c2c996f1] Matt Jordan <mjordan@digium.com>
+
+ * res_pjsip_endpoint_identifier_ip: Add an option to match requests by header
+
+ This patch adds a new features to the endpoint identifier module,
+ 'match_header'. When set, inbound requests are matched by a provided SIP
+ header: value pair. This option works in conjunction with the existing
+ 'match' configuration option, such that if any 'match*' attribute
+ matches an inbound request, the request is associated with the specified
+ endpoint.
+
+ Since this module now identifies by more than just IP address,
+ appropriate renaming of the module and/or variables can be done in a
+ non-release branch.
+
+ ASTERISK-26863 #close
+
+ Change-Id: Icfc14835c962f92e35e67bbdb235cf0589de5453
+ (cherry picked from commit 30f52d79d7fc9ab0b628bef2b61ea515413795a2)
+
+2017-03-14 09:55 +0000 [51985565ef] Matt Jordan <mjordan@digium.com>
+
+ * configs/samples/hep.conf.sample: Clarify how the HEP stack works
+
+ This patch updates the documenation in hep.conf.sample to better specify
+ how the various HEP modules interact.
+
+ ASTERISK-26717 #close
+
+ Change-Id: I337fb742a89e3ec5edc7fc7a7a0295218d841124
+
+2017-03-14 09:59 +0000 [f9b791debe] Roman Bedros (License 6842)
+
+ * funcs/func_devstate: Remove new line in Device field of during module load
+
+ During module loading of func_devstate, Asterisk emits the current
+ device state of all Custom device states currently stored in the AstDB.
+ This was erroneously including a new line character ('\n') to the end of
+ the device state, causing two new lines to be emitted in
+ DeviceStateChange AMI events.
+
+ Note that this only happened for those device state changes that
+ occurred during startup. Regular device state changes for Custom device
+ states are handled elsewhere, and did not have the newline.
+
+ ASTERISK-26643 #close
+ Reported by: Roman Bedros
+ Tested by: Matt Jordan
+ patches:
+ ami_devstate.diff uploaded by Roman Bedros (License 6842)
+
+ Change-Id: I1f4c02fc79c448d43bf725f5039c83d9611d7d93
+
+2017-03-14 09:37 +0000 [216e28aa95] Matt Jordan <mjordan@digium.com>
+
+ * main/stasis_cache: Demote the ERROR message when removing a nonexistent item
+
+ This patch demotes the ERROR message that is displayed when a
+ nonexistent item is removed from the Stasis cache. The genesis of this
+ demotion is due to chan_sip's realtime peers and their interaction with
+ Asterisk's core ast_endpoint code, but ostensibly it could happen from
+ other channel drivers as well.
+
+ Since Mark Michelson already did an excellent job of explaining on this
+ issue, it is quoted here for posterity:
+
+ "Internally, when a realtime peer is retrieved, Asterisk creates an
+ ast_endpoint structure. When that peer is destroyed, the ast_endpoint is
+ destroyed as well. Part of the destruction of the ast_endpoint involves
+ clearing the Stasis cache of all information about that endpoint. The
+ problem here is that the act of creating the ast_endpoint is not enough
+ to actually put any information in the Stasis cache. Instead, something
+ has to happen, such as a state change, in order for the Stasis cache to
+ have any information about that endpoint. When a device registers,
+ chan_sip creates an ast_endpoint structure, processes the REGISTER, and
+ then destroys the ast_endpoint. When the ast_endpoint is destroyed,
+ there is nothing to destroy in the Stasis cache, so an error message is
+ emitted. When you use rtcachefriends, ast_endpoint structures persist
+ for the lifetime of the module and so you do not see this error
+ message."
+
+ ASTERISK-25237 #close
+
+ Change-Id: I53cebc6b4a897a1ab9564182b75c177780feff70
+
+2017-03-12 09:21 +0000 [c8d1b915d7] Joshua Colp <jcolp@digium.com>
+
+ * chan_pjsip: Don't assume a session will have a channel.
+
+ When querying for PJSIP specific information using the dialplan
+ function CHANNEL() it is possible that the underlying session
+ will no longer have a channel associated with it. This is
+ most likely to occur when the RTCP HEP module attempts to get
+ the channel name. If this happens then a crash will occur.
+
+ This change just adds a check that the channel exists on the
+ session before querying it.
+
+ ASTERISK-26857
+
+ Change-Id: I113479cffff6ae64cf8ed089e9e1565223426f01
+
+2017-03-13 10:45 +0000 [6d1eb880c2] gtjoseph <gjoseph@digium.com>
+
+ * menuselect: Add a new 'options' support type
+
+ The Binaural Rendering patches in the master branch required
+ menuselect to be updated with a new support type called 'option'.
+ This allows binaural rendering to be turned on or off when
+ bridge_softmix is built. This patch backports the 'option'
+ functionality to the 13 and 14 branches.
+
+ Here's what it looks like in menuselect:
+
+ [*] bridge_simple
+ [*] bridge_softmix
+ --- Module Options ---
+ [ ] binaural_rendering_in_bridge_softmix
+
+ To create an option for a module, you can create (or update) the
+ menuselect-tree xml snippet in the directory where the module
+ resides and add a member element with an 'option' support_level.
+
+ Example (abbreviated) from bridges/bridges.xml:
+
+ <member name="binaural_rendering_in_bridge_softmix"
+ displayname="Enable binaural rendering in bridge_softmix"
+ remove_on_change="bridges/bridge_softmix.o bridges/bridge_softmix.so">
+ <support_level>option</support_level>
+ <depend>bridge_softmix</depend>
+ <depend>fftw3</depend>
+ <defaultenabled>no</defaultenabled>
+ </member>
+
+ The 'name' will be added or removed from the MENUSELECT_<dir>
+ make variable following the standard module "missing means yes"
+ rules.
+
+ Example (abbreviated) from bridges/Makefile:
+
+ ifeq ($(findstring binaural_rendering,$(MENUSELECT_BRIDGES)),)
+ bridge_softmix.o: _ASTCFLAGS+=-DBINAURAL_RENDERING
+ bridge_softmix.so: LIBS+=$(FFTW3_LIB)
+ endif
+
+ Change-Id: I66d23755ed6e81f8d439cad410f2ffa7c30f25ad
+
+2017-03-10 20:29 +0000 [523de8eb8e] gtjoseph <gjoseph@digium.com>
+
+ * pjproject_bundled: Reduce the need for rebuilds
+
+ Bundled pjproject should now only rebuild if one of the menuselect
+ "Compiler Flags" options changes.
+
+ Change-Id: If114a2e16b9e77af371a600d6a5e197bbf28fe43
+
+2017-03-07 08:12 +0000 [d3ef833b3b] Jean Aunis <jean.aunis@prescom.fr>
+
+ * chan_sip: Call not cancelled after receiving a 422 response
+
+ When receiving a 422 response, the invitestate variable must be reset to
+ INV_CALLING.
+
+ ASTERISK-26841
+
+ Change-Id: Ia0502d6b02192664cefa4e75bafdd2645ce56099
+
+2017-03-05 15:26 +0000 [67c989ce78] Daniel Journo <dan@keshercommunications.com>
+
+ * pjsip/cli_commands: pjsip show channelstats shows wrong codec
+
+ * cli_commands.c Fixed CLI output
+
+ ASTERISK-26822 #close
+
+ Change-Id: I3889ef6a8f6738fc312fab42db5efacd6e452b01
+
+2017-03-07 07:37 +0000 [2a85888262] Joshua Colp <jcolp@digium.com>
+
+ * res_pjsip_transport_websocket: Add support for IPv6.
+
+ This change adds a PJSIP patch (which has been contributed upstream)
+ to allow the registration of IPv6 transport types.
+
+ Using this the res_pjsip_transport_websocket module now registers
+ an IPv6 Websocket transport and uses it for the corresponding
+ traffic.
+
+ ASTERISK-26685
+
+ Change-Id: Id1f9126f995b31dc38db8fdb58afd289b4ad1647
+
+2017-03-08 08:16 +0000 [bc6eeab822] Daniel Journo <dan@keshercommunications.com>
+
+ * app_voicemail: Cannot set fromstring on a per-mailbox basis
+
+ * apps/app_voicemail.c fromstring field added to mailbox which will
+ override the global fromstring if set.
+
+ ASTERISK-24562 #close
+
+ Change-Id: I5e90e3a1ec2b2d5340b49a0db825e4bbb158b2fe
+
+2017-03-06 15:54 +0000 [d9972423d1] Daniel Journo <dan@keshercommunications.com>
+
+ * Saynumber is trying to get "and" from "digits/" subfolder
+
+ * say.c Changed 'digits/and' to 'vm-and' for en_GB
+
+ ASTERISK-26598 #close
+
+ Change-Id: If1b713e5daea6f952b339f139178d292a6c4fcfe
+
+2017-03-06 13:15 +0000 [77901a58ca] Sean Bright <sean.bright@gmail.com>
+
+ * pbx_spool: Gracefully handle long lines in call files
+
+ Per the linked issue, we aren't checking the buffer filled by fgets()
+ to determine if it contains a newline, so we will fail to correctly
+ parse the trailing portion of a long line.
+
+ This patch increases the buffer size from 256 to 1024, and skips any
+ line that exceeds that length, logging a warning in the process.
+
+ ASTERISK-17067 #close
+ Reported by: Dave Olszewski
+
+ Change-Id: I51bcf270c1b4347ba05b43f18dc2094c76f5d7b0
+
+2017-03-02 21:27 +0000 [4271c700f7] Richard Mudgett <rmudgett@digium.com>
+
+ * core: Cleanup ast_get_hint() usage.
+
+ * manager.c:manager_state_cb() Fix potential use of uninitialized hint[]
+ if a hint does not exist for the requested extension. Ran into this when
+ developing a testsuite test. The AMI event ExtensionStatus came out with
+ the hint header value containing garbage. The AMI event PresenceStatus
+ also had the same issue.
+
+ * manager.c:action_extensionstate() no need to completely initialize the
+ hint[]. Only initialize the first element.
+
+ * pbx.c:ast_add_hint() Remove unnecessary assignment.
+
+ * chan_sip.c: Eliminate an unneeded hint[] local variable. We only care
+ about the return value of ast_get_hint() there.
+
+ Change-Id: Ia9a8786f01f93f1f917200f0a50bead0319af97b
+
+2017-02-16 04:22 +0000 [e510595c86] Jørgen H <asterisk.org@hovland.cx>
+
+ * res_pjsip WebRTC/websockets: Fix usage of WS vs WSS.
+
+ According to the RFC[1] WSS should only be used in the Via header
+ for secure Websockets.
+
+ * Use WSS in Via for secure transport.
+
+ * Only register one transport with the WS name because it would be
+ ambiguous. Outgoing requests may try to find the transport by name and
+ pjproject only finds the first one registered. This may mess up unsecure
+ websockets but the impact should be minimal. Firefox and Chrome do not
+ support anything other than secure websockets anymore.
+
+ * Added and updated some debug messages concerning websockets.
+
+ * security_events.c: Relax case restriction when determining security
+ transport type.
+
+ * The res_pjsip_nat module has been updated to not touch the transport
+ on Websocket originating messages.
+
+ [1] https://tools.ietf.org/html/rfc7118
+
+ ASTERISK-26796 #close
+
+ Change-Id: Ie3a0fb1a41101a4c1e49d875a8aa87b189e7ab12
+
+2017-03-01 07:23 +0000 [76971d4c4a] Sean Bright <sean.bright@gmail.com>
+
+ * res_config_pgsql: Make 'require' return consistent with other backends
+
+ res_config_pgsql should match the behavior of other realtime backend
+ drivers so that queue_log can disable adaptive logging.
+
+ ASTERISK-25628 #close
+ Reported by: Dmitry Wagin
+
+ Change-Id: Ic1fb1600c7ce10fdfb1bcdc43c5576b7e0014372
+
+2017-02-28 09:41 +0000 [fa8f6c2fc4] Sean Bright <sean.bright@gmail.com>
+
+ * res_config_pgsql: Release table locks where appropriate
+
+ The find_table() functions NULL or a locked table pointer. We are
+ not consistently calling release_table() in failure paths.
+
+ Change-Id: I6f665b455799c84b036e5b34904b82b05eab9544
+
+2017-02-28 05:41 +0000 [5b34b751a0] Tzafrir Cohen <tzafrir.cohen@xorcom.com>
+
+ * pjsip.conf.sample: user_agent: not a specific version
+
+ Use the description of useragent from sip.conf here.
+
+ ASTERISK-26825 #close
+
+ Change-Id: I5b33a4aaa0ae1d793289d05e3bc09521affbf755
+
+2017-02-27 20:07 +0000 [8e6ecdade2] gtjoseph <gjoseph@digium.com>
+
+ * res_pjsip_pubsub: Remove unneeded endpoint unref
+
+ When a subscription was being recreated and the endpoint wasn't
+ found, we were trying to unref the endpoint. This was causing
+ FRACKs. Removed the unref.
+
+ ASTERISK-26823 #close
+
+ Change-Id: If86d2aecff8fe853c7f38a1bfde721fcef3cd164
+
+2017-02-16 04:16 +0000 [0595c31da7] Jørgen H <asterisk.org@hovland.cx>
+
+ * res_pjsip: Fix crash when contact has no status
+
+ This change fixes an assumption in res_pjsip that a contact will
+ always have a status. There is a race condition where this is
+ not true and would crash. The status will now be unknown when
+ this situation occurs.
+
+ ASTERISK-26623 #close
+
+ Change-Id: Id52d3ca4d788562d236da49990a319118f8d22b5
+
+2017-02-21 18:06 +0000 [c07bcca87e] gtjoseph <gjoseph@digium.com>
+
+ * res_pjsip_outbound_registration: Subscribe to network change events
+
+ Outbound registration now subscribes to network change events
+ published by res_stun_monitor and refreshes all registrations
+ when an event happens.
+
+ The 'pjsip send (un)register' CLI commands were updated to accept
+ '*all' as an argument to operate on all registrations.
+
+ The 'PJSIP(Un)Register' AMI commands were also updated to
+ accept '*all'.
+
+ ASTERISK-26808 #close
+
+ Change-Id: Iad58a9e0aa5d340477fca200bf293187a6ca5a25
+
+2017-02-26 10:09 +0000 [d91f61f0b5] Vitezslav Novy <a1@vnovy.net>
+
+ * chan_sip: Allow DTLS to be disabled when reloading.
+
+ This change fixes a problem where removing the DTLS configuration
+ options and reloading would not disable DTLS. This occurred
+ because the DTLS configuration was not reset to an unconfigured
+ state on reload.
+
+ ASTERISK-26313
+
+ Change-Id: I10952709cc4a7727fb50534b042bce9d64894b39
+
+2017-02-27 12:25 +0000 [3d2c119778] gtjoseph <gjoseph@digium.com>
+
+ * build: Warn if asterisk is installed in both 32 and 64 bit sys dirs
+
+ ... and clean them both up on uninstall.
+
+ We've fixed the issue where 'make install' was installing to
+ /usr/lib on 64-bit systems that use /usr/lib64. Now we need
+ to clean up the remnants in /usr/lib.
+
+ * 'make install' now prints a warning if DESTDIR/ASTLIBDIR
+ contains 'lib64' and libasterisk* shared libraries or modules
+ are also found in DESTDIR/ASTLIBDIR with 'lib64' transformed
+ to 'lib'.
+
+ * 'make uninstall' ALWAYS cleans up both DESTDIR/ASTLIBDIR and
+ DESTDIR/ASTLIBDIR with 'lib64' transformed to 'lib'.
+
+ ASTERISK-26705
+
+ Change-Id: I6edddeb3c07a51e7c7ba7cac3c05e4bf3ec3f01f
+
+2017-02-27 07:02 +0000 [eac818801b] Joshua Colp <jcolp@digium.com>
+
+ * bridge_native_rtp: Handle case where channel joins already suspended.
+
+ The bridge_native_rtp module did not properly handle the case where
+ a smart bridge operation occurs while a channel is suspended. In this
+ scenario the module would incorrectly set up local or remote RTP
+ bridging despite the media having to flow through Asterisk. The remote
+ endpoint would see two media streams and experience wonky audio.
+
+ The module has been changed so that it ensures both channels are
+ not suspended when performing the native RTP bridging and this
+ requirement has been documented in the bridge technology.
+
+ ASTERISK-26781
+
+ Change-Id: Id4022d73ace837d4a293106445e3ade10dbc7c7c
+
+2017-02-24 11:49 +0000 [d49af061bc] Joshua Colp <jcolp@digium.com>
+
+ * config: Improve documentation and behavior of outbound_proxy option.
+
+ This change updates the documentation for the outbound_proxy option
+ to ensure it is consistently stated that a full SIP URI must be
+ provided for the option.
+
+ The res_pjsip_outbound_registration module has also been changed so
+ that the provided outbound_proxy value is checked to ensure it is a
+ URI and if not an error is output stating so.
+
+ ASTERISK-26782
+
+ Change-Id: I6c239a32274846fd44e65b44ad9bf6373479b593
+
+2017-02-09 18:05 +0000 [9c05ddbddd] gtjoseph <gjoseph@digium.com>
+
+ * pjproject_bundled: Update for pjproject 2.6
+
+ * Removed all 2.5.5 functional patches.
+ * Updated usages of pj_release_pool to be "safe".
+ * Updated configure options to disable webrtc.
+ * Updated config_site.h to disable webrtc in pjmedia.
+ * Added Richard Mudgett's recent resolver patches.
+
+ Change-Id: Ib400cc4dfca68b3d07ce14d314e829bfddc252c7
+
+2017-02-23 15:49 +0000 [bee55aaf2c] gtjoseph <gjoseph@digium.com>
+
+ * build: Execute ldconfig to build cache. (take two)
+
+ On some platforms a multiarch approach is used for libraries.
+ The build system does not take this into account and still
+ places libraries into the lib directory if no --libdir is
+ specified to configure. On initial startup this results in
+ libasteriskssl.so not being found, as it is not in the multiarch
+ lib directory. To make matters worse, options were being passed
+ to ldconfig on both Linux and FreeBSD that actually prevented
+ the rebuild of the cache.
+
+ * Fedora has a /usr/share/config.site that automatically tells
+ autoconf to use /usr/lib64 but CentOS does not. This logic was
+ copied to configure.ac and modified so systems like Ubuntu,
+ which still use /usr/lib for 64-bit systems, aren't affected.
+
+ Now that we have them in the correct directory...
+
+ In order for the system loader to find libasteriskssl and
+ libasteriskpj, one of 3 things has to happen...
+
+ - The linker cache must be rebuilt including the directory
+ where the libasterisk* libraries were installed. Only root
+ can rebuild the cache. This was busted.
+ - We have to link the asterisk binary with an rpath pointing
+ to the directrory where the libasterisk* libraries were
+ installed. This makes things very complicated and will happen
+ over the collective dead bodies of everyone who's had to
+ package a distribution with an rpath.
+ - Finally, you can start asterisk with LD_LIBRARY_PATH set to the
+ directrory where the libasterisk* libraries were installed.
+
+ There are no other options. So...
+
+ * The invokation of ldconfig has been moved from main/Makefile
+ to ASTTOPDIR/Makefile, the options have been removed, and
+ DESTDIR/ASTLIBDIR appended. If you aren't root, you will be
+ warned after the "Asterisk Installation Compete" banner that
+ you must re-run 'make install' as root, manually run
+ 'ldconfig DESTDIR/ASTLIBDIR' as root, or run asterisk with
+ LD_LIBRARY_PATH.
+
+ ASTERISK-26705
+
+ Change-Id: I2a64b7c33a7d3e9bde20f47e3d3ab771977af982
+
+2017-02-23 14:48 +0000 [da0cadd100] Sean Bright <sean.bright@gmail.com>
+
+ * res_config_pgsql: Fix thread safety problems
+
+ * A missing AST_LIST_UNLOCK() in find_table()
+
+ * The ESCAPE_STRING() macro uses pgsqlConn under the hood and we were
+ not consistently locking before calling it.
+
+ * There were a handful of other places where pgsqlConn was accessed
+ directly without appropriate locking.
+
+ Change-Id: Iea63f0728f76985a01e95b9912c3c5c6065836ed
+
+2017-02-22 08:53 +0000 [f1963c5b8d] Sean Bright <sean.bright@gmail.com>
+
+ * res_config_ldap: Various code improvements
+
+ The initial motivation for this patch was to properly handle memory
+ allocation failures - we weren't checking the return values from the
+ various LDAP library allocation functions.
+
+ In the process, because update_ldap() and update2_ldap() were
+ substantially the same code, they've been consolidated.
+
+ Change-Id: Iebcfe404177cc6860ee5087976fe97812221b822
+
+2017-02-22 13:08 +0000 [1ec796ce18] Michael L. Young <elgueromexicano@gmail.com>
+
+ * build_tools: Fix download_externals to allow the use of curl or wget
+
+ Not sure if this is really a bug versus an improvement. I can see it being
+ viewed as a bug though by some.
+
+ The current build_tools/download_externals file depends on wget in order to
+ download external modules. The current build system is able to discover
+ which tool to use for fetching remote files - either wget or curl.
+
+ This patch takes advantage of this capability by modifying the two calls to
+ the wget binary to instead use what was discovered by the build system.
+
+ ASTERISK-26812 #close
+
+ Change-Id: If9411a2554f009274d377445613ae91192d948a1
+
+2017-02-22 11:13 +0000 [5c9c097d17] Joshua Colp <jcolp@digium.com>
+
+ * Revert "build: Execute ldconfig to build cache."
+
+ This reverts commit d90430953c508670a67de68de400fef44f5e9fba.
+
+ Change-Id: I758fe7ea0408f83a6df8e1774310d69f482700f6
+
+2017-02-21 10:47 +0000 [ca6d001144] Sean Bright <sean.bright@gmail.com>
+
+ * pbx_realtime: Prevent premature extension matching
+
+ The patterns provided by pbx_realtime were checked in the order in
+ which they were returned from the realtime backend. If there was
+ overlap between multiple patterns, the first one to correctly match was
+ chosen even though it may not have been the best match.
+
+ We now sort the patterns descending by their length and compare in that
+ order. There may be cases where this still results in a sub-optimal
+ match, but this patch should improve the overall behavior.
+
+ ASTERISK-18271 #close
+ Reported by: Charlie Smurthwaite
+
+ Change-Id: I56d9ac15810eb1775966b669c3028e32cc7bd809
+
+2017-02-21 15:09 +0000 [0654bf637c] Peter Racz
+
+ * pbx_dundi: DUNDi weight parameter not processed correctly
+
+ The DUNDi weight field is not always converted from network byte order
+ to host byte order. This can result in incorrect weight values and
+ incorrect selection of DUNDi destinations.
+
+ ASTERISK-18731 #close
+ Reported by: Peter Racz
+ Patches:
+ dundi_weight.patch (license #6290) patch uploaded by Peter Racz
+
+ Change-Id: Iba3e1a700ff539db57211a7bbc26f7b22ea9a1be
+
+2017-02-21 10:47 +0000 [d5522de597] Sean Bright <sean.bright@gmail.com>
+
+ * realtime: Fix ast_load_realtime_multientry handling
+
+ ast_load_realtime_multientry() returns an ast_config structure whose
+ ast_categorys are keyed with the empty strings. Several modules were
+ giving semantic meaning to the category names causing problems at
+ runtime.
+
+ * app_directory: Treated the category name as the mailbox name, and
+ would fail to direct calls to the appropriate extension after an
+ entry was chosen.
+
+ * app_queue: Queues, queue members, and queue rules were all affected
+ and needed to be updated.
+
+ * pbx_realtime: Pattern matching would never succeed because the
+ extension entered by the user was always compared to the empty
+ string.
+
+ Change-Id: Ie7e44986344b0b76ea8f6ddb5879f5040c6ca8a7
+
+2017-02-21 08:56 +0000 [5eb7875243] Sean Bright <sean.bright@gmail.com>
+
+ * realtime: Centralize some common realtime backend code
+
+ All of the realtime backends create artificial ast_categorys to pass
+ back into the core as query results. These categories have no filename
+ or line number information associated with them and the backends differ
+ slightly on how they create them. So create a couple helper macros to
+ help make things more consistent.
+
+ Also updated the call sites to remove redundant error messages about
+ memory allocation failure.
+
+ Note that res_config_ldap sets the category filename to the 'table name'
+ but that is not read by anything in the core, so I've dropped it.
+
+ Change-Id: I3a1fd91e0c807dea1ce3b643b0a6fe5be9002897
+
+2017-02-16 10:30 +0000 [d90430953c] Joshua Colp <jcolp@digium.com>
+
+ * build: Execute ldconfig to build cache.
+
+ On some platforms a multiarch approach is used for libraries.
+ The build system does not take this into account and still
+ places libraries into the lib directory if no --libdir is
+ specified to configure. On initial startup this results in
+ libasteriskssl.so not being found, as it is not in the multiarch
+ lib directory.
+
+ This change does the minimally invasive thing and executes
+ ldconfig so that the libraries in the lib directory are found
+ and their location cached. By doing so Asterisk starts up fine.
+
+ If DESTDIR is specified, however, the old logic is executed as
+ the install process may not have permission to alter the ldconfig
+ cache.
+
+ ASTERISK-26705
+
+ Change-Id: If4eca46ac510c6fea5568256280ffdb3888d7bb4
+
+2017-01-08 20:32 +0000 [3b606093d3] Richard Mudgett <rmudgett@digium.com>
+
+ * res_pjsip_authenticator_digest.c: Fix sorcery's immutable contract violation.
+
+ The inbound authentication object is supposed to be immutable when it is
+ stored in sorcery. However, the immutable property is violated if the
+ authentication object does not have a realm set.
+
+ The immutable contract violation has a different effect depending upon
+ what sorcery back end is used. If it is the config file back end you
+ would get the same object back until res_pjsip is reloaded. If it is the
+ real-time or AstDB back end you would get a new object on each query. If
+ it is cached you would get the same object back until it is refreshed from
+ the database.
+
+ Once an inbound authentication object has its realm set it may or may not
+ get updated again if the default_realm changes.
+
+ If the same authentication object is used for inbound and outbound
+ authentication then the immutable violation can make it very hard to
+ determine why the outbound authentication now fails. The only diagnostic
+ message is a complaint about no realms matching when it had worked
+ earlier. It fails because of the difference in behaviour for an empty
+ realm setting between inbound and outbound authentication objects.
+
+ * Fixed the sorcery object immutable violation by creating a new object
+ and setting the default_realm on it instead. The new object is a shallow
+ copy for speed.
+
+ * The auth_store thread storage no longer holds an auth ref. It
+ interferes with the shallow copy and never needed a ref anyway.
+
+ ASTERISK-26799 #close
+
+ Change-Id: I2328a52f61b78ed5fbba38180b7f183ee7e08956
+
+2017-02-04 20:17 +0000 [6208962b00] Richard Mudgett <rmudgett@digium.com>
+
+ * res_pjsip: Update artificial auth whenever default_realm changes.
+
+ There was code attempting to update the artificial authentication object
+ whenever the default_realm changed. However, once the artificial
+ authentication object was created it would never get updated. The
+ artificial authentication object would require a system restart for a
+ change to the default_realm to take effect.
+
+ ASTERISK-26799
+
+ Change-Id: Id59036e9529c2d3ed728af2ed904dc36e7094802
+
+2017-01-01 08:02 +0000 [9f11da85a2] Richard Mudgett <rmudgett@digium.com>
+
+ * res_pjsip: Update authentication realm documentation.
+
+ Using the same auth section for inbound and outbound authentication is not
+ recommended. There is a difference in meaning for an empty realm setting
+ between inbound and outbound authentication uses.
+
+ An empty inbound auth realm represents the global section's default_realm
+ value when the authentication object is used to challenge an incoming
+ request. An empty outgoing auth realm is treated as a don't care wildcard
+ when the authentication object is used to respond to an incoming
+ authentication challenge.
+
+ ASTERISK-26799
+
+ Change-Id: Id3952f7cfa1b6683b9954f2c5d2352d2f11059ce
+
+2017-02-13 17:11 +0000 [473813311b] Richard Mudgett <rmudgett@digium.com>
+
+ * pjproject: Fixes to resolve DNS SRV crashes.
+
+ * Re #1945 (misc): Don't trigger SRV complete callback when there is a
+ parse error.
+
+ * srv_resolver.c: Don't try to send query if already considered resolved.
+
+ ** In resolve_hostnames() don't try to resolve a query that is already
+ considered resolved.
+
+ ** In resolve_hostnames() fix DNS typo in comments.
+
+ ** In build_server_entries() move a common expression assigning to cnt
+ earlier.
+
+ * sip_transport.c: Fix tdata object name to actually contain the pointer.
+
+ It helps if the logs referencing a tdata object buffer actually have a
+ name that includes the correct pointer as part of the name. Also since
+ the tdata has its own pool it helps if any logs referencing the pool have
+ the same name as the tdata object. This change brings tdata logging in
+ line with how tsx objects are named.
+
+ ASTERISK-26669 #close
+ ASTERISK-26738 #close
+
+ Change-Id: I56af2ded25476b3e870ca586ee69ed6954ef75af
+
+2017-02-06 14:26 +0000 [d58fdae811] Richard Mudgett <rmudgett@digium.com>
+
+ * pjsip_distributor.c: Update some debug messages to get transaction name.
+
+ * Removed overloaded unmatched response ignore. We obviously sent the
+ request so we shouldn't ignore it because it isn't new work.
+
+ ASTERISK-26669
+ ASTERISK-26738
+
+ Change-Id: I55fb5cadc83a8e6699b347c6dc7fa32c5a617d37
+
+2017-02-04 16:00 +0000 [eb9ae4f7cb] Richard Mudgett <rmudgett@digium.com>
+
+ * res_pjsip: Record the serializer earlier on the tdata.
+
+ When PJPROJECT needs to do a DNS resolution and there is not a cached
+ entry available, the SIP request message goes out on the PJSIP monitor
+ thread instead of the original serializer thread. Thus when the response
+ comes back it does not get processed by the original sending serializer.
+
+ This patch records the serializer on tdata before passing a request
+ message to PJPROJECT where it can in Asterisk code. There are several
+ places in PJPROJECT for outbound registration and publishing support that
+ would need to record the serializer. Unfortunately, without replacing the
+ PJPROJECT DNS resolver as was done in v14 we cannot fix those without
+ modifying PJPROJECT.
+
+ Even if we backported the DNS resolver from v14, the outbound registration
+ refresh timer does not go out on a serializer thread but the PJSIP monitor
+ thread. Fortunately, Asterisk's outbound publish support doesn't use the
+ auto refresh timer that would also not go out under the serializer thread.
+
+ This patch is v13 only.
+
+ ASTERISK-26669
+ ASTERISK-26738
+
+ Change-Id: I9997b9ed6dbcebd2c37d6a67dc6dcee9c78914a4
+
+2017-02-20 13:38 +0000 [57f19d6efb] Richard Mudgett <rmudgett@digium.com>
+
+ * pjproject: Increase SENDER_WIDTH column size for 64-bit system logs.
+
+ ASTERISK-26669
+ ASTERISK-26738
+
+ Change-Id: Ibae6fc8cae69a1f04df0c577c4c11200499d6fe0
+
+2017-02-20 06:28 +0000 [47daca8a2b] Sean Bright <sean.bright@gmail.com>
+
+ * app_voicemail: vm_authenticate accesses uninitialized memory
+
+ vm_authenticate doesn't always set the passed ast_vm_user argument, so
+ we initialize to 0 before passing it in.
+
+ ASTERISK-25893 #close
+ Reported by: Filip Jenicek
+
+ Change-Id: Ia3cc0128f93d352ed9add8d5c2f0f7232c2cbe4a
+
+2017-02-20 11:19 +0000 [06214173a9] Joshua Colp <jcolp@digium.com>
+
+ * Revert "build: Execute ldconfig to build cache."
+
+ This reverts commit e910dbab90ef3d628955c49f441b2c9dda1f222c.
+
+ Change-Id: I242aa0a965a79738dc898299959c6d2e020c86bd
+
+2017-02-20 08:04 +0000 [c9ea98f9bf] gtjoseph <gjoseph@digium.com>
+
+ * pjproject cli: Add object count after object lists
+
+ When listing a container, we now print the number of objects
+ in the container at the end of the list.
+
+ Change-Id: I791cbc3ee9da9a2af9adc655164b5d32953df812
+
+2017-02-20 05:53 +0000 [d8972f50f4] Sean Bright <sean.bright@gmail.com>
+
+ * res_config_ldap: Don't try to delete non-existent attributes
+
+ OpenLDAP will raise an error when we try to delete an LDAP attribute
+ that doesn't exist. We need to filter out LDAP_MOD_DELETE requests
+ based on which attributes the current LDAP entry actually has. There
+ is of course a small window of opportunity for this to still fail,
+ but it is much less likely now.
+
+ Change-Id: I3fe1b04472733e43151563aaf9f8b49980273e6b
+
+2017-02-20 05:49 +0000 [b980cae1f7] Sean Bright <sean.bright@gmail.com>
+
+ * res_config_ldap: Remove extraneous line numbers from log messages
+
+ Extraneous line numbers were being output in many log messages. These
+ have been removed.
+
+ Change-Id: Ice9efa3d252ee87f37fa8f5ea852fda482675431
+
+2017-02-20 05:45 +0000 [011b7be62a] Sean Bright <sean.bright@gmail.com>
+
+ * res_config_ldap: Make memory allocation more consistent
+
+ The code in update_ldap() and update2_ldap() was using both Asterisk's
+ memory allocation routines as well as OpenLDAP's. I've changed it so
+ that everything that is passed to OpenLDAP's functions are allocated
+ with their routines.
+
+ Change-Id: Iafec9c1fd8ea49ccc496d6316769a6a426daa804
+
+2017-02-20 05:30 +0000 [b2836dde7e] Sean Bright <sean.bright@gmail.com>
+
+ * res_config_ldap: Fix configuration inheritance from _general
+
+ The "_general" configuration section allows administrators to provide
+ both general configuration options (host, port, url, etc.) as well as a
+ global realtime-to-LDAP-attribute mapping that is a fallback if one of
+ the later sections do not override it. This neglected to exclude the
+ general configuration options from the mapping. As an example, during
+ my testing, chan_sip requested 'port' from realtime, and because I did
+ not have it defined, it pulled in the 'port' configuration option from
+ "_general." We now filter those out explicitly.
+
+ Change-Id: I1fc61560bf96b8ba623063cfb7e0a49c4690d778
+
+2017-02-20 05:27 +0000 [6d5e9993b2] Sean Bright <sean.bright@gmail.com>
+
+ * res_config_ldap: Fix erroneous LDAP_MOD_REPLACE in LDAP modify
+
+ We always treat the first change of our modification batch as a
+ replacement when it sometimes is actually a delete. So we have to pass
+ the correct arguments to the OpenLDAP library.
+
+ ASTERISK-26580 #close
+ Reported by: Nicholas John Koch
+ Patches:
+ res_config_ldap.c-11.24.1.patch (license #6833) patch uploaded
+ by Nicholas John Koch
+
+ Change-Id: I0741d25de07c9539f1edc6eff3696165dfb64fbe
+
+2017-02-15 11:55 +0000 [5b7c6678ae] Sean Bright <sean.bright@gmail.com>
+
+ * res_config_sqlite3: Fix crash when loading with invalid config
+
+ When ast_config_load() fails with CONFIG_STATUS_FILEINVALID, it has
+ already destroyed the ast_config struct for us. Trying to do it again
+ results in a crash.
+
+ Change-Id: If6a5c0ca718ad428e01a1fb25beb209a9ac18bc6
+
+2017-02-17 16:57 +0000 [096496e13e] Richard Mudgett <rmudgett@digium.com>
+
+ * tcptls.c: Add some missing allocation failure checks.
+
+ Change-Id: I0ddf01cd3c10d3b6666d7bf68d4e206a37f4fbdb
+
+2017-02-17 17:06 +0000 [047a1e7dcc] Sean Bright <sean.bright@gmail.com>
+
+ * pjproject-bundled: Fix checksum verification when using cURL
+
+ ASTERISK-26802 #close
+ Reported by: Michael L. Young
+
+ Change-Id: Iad293080f55d4d69ab615717a15211d916eed613
+
+2017-02-16 08:38 +0000 [2cd75fe311] Sean Bright <sean.bright@gmail.com>
+
+ * realtime: Fix LIKE escaping in SQL backends
+
+ The realtime framework allows for components to look up values using a
+ LIKE clause with similar syntax to SQL's. pbx_realtime uses this
+ functionality to search for pattern matching extensions that start with
+ an underscore (_).
+
+ When passing an underscore to SQL's LIKE clause, it will be interpreted
+ as a wildcard matching a single character and therefore needs to be
+ escaped. It is (for better or for worse) the responsibility of the
+ component that is querying realtime to escape it with a backslash before
+ passing it in. Some RDBMs support escape characters by default, but the
+ SQL92 standard explicitly says that there are no escape characters
+ unless they are specified with an ESCAPE clause, e.g.
+
+ SELECT * FROM table WHERE column LIKE '\_%' ESCAPE '\'
+
+ This patch instructs 3 backends - res_config_mysql, res_config_pgsql,
+ and res_config_sqlite3 - to use the ESCAPE clause where appropriate.
+
+ Looking through documentation and source tarballs, I was able to
+ determine that the ESCAPE clause is supported in:
+
+ MySQL 5.0.15 (released 2005-10-22 - earliest version available from
+ archives)
+ PostgreSQL 7.1 (released 2001-04-13)
+ SQLite 3.1.0 (released 2005-01-21)
+
+ The versions of the relevant libraries that we depend on to access MySQL
+ and PostgreSQL will not work on versions that old, and I've added an
+ explicit check in res_config_sqlite3 to only use the ESCAPE clause when
+ we have a sufficiently new version of SQLite3.
+
+ res_config_odbc already handles the escape characters appropriately, so
+ no changes were required there.
+
+ ASTERISK-15858 #close
+ Reported by: Humberto Figuera
+
+ ASTERISK-26057 #close
+ Reported by: Stepan
+
+ Change-Id: I93117fbb874189ae819f4a31222df7c82cd20efa
+
+2017-02-16 10:30 +0000 [e910dbab90] Joshua Colp <jcolp@digium.com>
+
+ * build: Execute ldconfig to build cache.
+
+ On some platforms a multiarch approach is used for libraries.
+ The build system does not take this into account and still
+ places libraries into the lib directory if no --libdir is
+ specified to configure. On initial startup this results in
+ libasteriskssl.so not being found, as it is not in the multiarch
+ lib directory.
+
+ This change does the minimally invasive thing and executes
+ ldconfig so that the libraries in the lib directory are found
+ and their location cached. By doing so Asterisk starts up fine.
+
+ ASTERISK-26705
+
+ Change-Id: I6d30b6427e9d5e69470e11327c7ff203fa7da519
+
+2017-02-16 05:46 +0000 [9b02bbfa88] Sean Bright <sean.bright@gmail.com>
+
+ * res_config_sqlite3: Properly create missing columns when necessary
+
+ There were two specific issues resolved here:
+
+ 1) The code that iterated over the required fields
+ (via ast_realtime_require) was broken for the RQ_INTEGER1 field
+ type. Iteration would stop when the first RQ_INTEGER1 (0) field
+ was encountered.
+
+ 2) sqlite3_changes() was used to try and count the number of rows
+ returned by a SELECT statement. sqlite3_changes() only counts
+ affected rows, so this was always returning the value from the
+ most recent data modification statement. We now separate read-only
+ queries from data modification queries and count rows appropriately
+ in both cases.
+
+ ASTERISK-23457 #close
+ Reported by: Scott Griepentrog
+
+ Change-Id: I91ed20494efc3fcfbc2a96ac7646999a49814884
+
+2017-02-15 14:44 +0000 [0fc27fa364] Joshua Elson <joshelson@gmail.com>
+
+ * http: Ensure capath is defined on all http creations
+
+ ASTERISK-26794 #close
+
+ Change-Id: I9cbc3b6b6a8aab590f5ccde9c262a98e4d5253a1
+
+2017-02-15 23:09 +0000 [7aa731c1c7] Igor Goncharovsky <igor.goncharovsky@gmail.com>
+
+ * chan_unistim: fix char type to have consistent behavior on ARM
+
+ There is difference exists in behaviour of char type on x86 and ARM.
+ On x86 by default char variable type means signed char, but in ARM
+ unsigned char used. This make binary calculations and negative values
+ works wrong on ARM.
+
+ This patch change type of char variables used for store negative
+ values and binary calculations to signed char.
+
+ ASTERISK-26714
+
+ Change-Id: Id78716dee9568a58419d4ef63c038affc3dfc7ab
+
+2017-02-07 13:17 +0000 [be77b845d9] gtjoseph <gjoseph@digium.com>
+
+ * res_pjsip_pubsub: Correctly implement persisted subscriptions
+
+ This patch fixes 2 original issues and more that those 2 exposed.
+
+ * When we send a NOTIFY, and the client either doesn't respond or
+ responds with a non OK, pjproject only calls our
+ pubsub_on_evsub_state callback, no others. Since
+ pubsub_on_evsub_state (which does the sub_tree cleanup) does not
+ expect to be called back without the other callbacks being called
+ first, it just returns leaving the sub_tree orphaned. Now
+ pubsub_on_evsub_state checks the event for PJSIP_EVENT_TSX_STATE
+ which is what pjproject will set to tell us that it was the
+ transaction that timed out or failed and not the subscription
+ itself timing our or being terminated by the client. If is
+ TSX_STATE, pubsub_on_evsub_state now does the proper cleanup
+ regardless of the state of the subscription.
+
+ * When a client renews a subscription, we don't update the
+ persisted subscription with the new expires timestamp. This causes
+ subscription_persistence_recreate to prune the subscription if/when
+ asterisk restarts. Now, pubsub_on_rx_refresh calls
+ subscription_persistence_update to apply the new expires timestamp.
+ This exposed other issues however...
+
+ * When creating a dialog from rdata (which sub_persistence_recreate
+ does from the packet buffer) there must NOT be a tag on the To
+ header (which there will be when a client refreshes a
+ subscription). If there is one, pjsip_dlg_create_uas will fail.
+ To address this, subscription_persistence_update now accepts a flag
+ that indicates that the original packet buffer must not be updated.
+ New subscribes don't set the flag and renews do. This makes sure
+ that when the rdata is recreated on asterisk startup, it's done
+ from the original subscribe packet which won't have the tag on To.
+
+ * When creating a dialog from rdata, we were setting the dialog's
+ remote (SUBSCRIBE) cseq to be the same as the local (NOTIFY) cseq.
+ When the client tried to resubscribe after a restart with the
+ correct cseq, we'd reject the request with an Invalid CSeq error.
+
+ * The acts of creating a dialog and evsub by themselves when
+ recreating a subscription does NOT restart pjproject's subscription
+ timer. The result was that even if we did correctly recreate the
+ subscription, we never removed it if the client happened to go away
+ or send a non-OK response to a NOTIFY. However, there is no
+ pjproject function exposed to just set the timer on an evsub that
+ wasn't created by an incoming subscribe request. To address this,
+ we create our own timer using ast_sip_schedule_task. This timer is
+ used only for re-establishing subscriptions after a restart.
+
+ An earlier approach was to add support for setting pjproject's
+ timer (via a pjproject patch) and while that patch is still included
+ here, we don't use that call at the moment.
+
+ While addressing these issues, additional debugging was added and
+ some existing messages made more useful. A few formatting changes
+ were also made to 'pjsip show scheduled tasks' to make displaying
+ the subscription timers a little more friendly.
+
+ ASTERISK-26696
+ ASTERISK-26756
+
+ Change-Id: I8c605fc1e3923f466a74db087d5ab6f90abce68e
+
+2017-02-15 11:03 +0000 [73133d5354] Sean Bright <sean.bright@gmail.com>
+
+ * res_rtp_asterisk: Use PJ_ICE_MAX_CAND instead of hard-coding 16
+
+ pjsip limits the total number of ICE candidates to PJ_ICE_MAX_CAND,
+ which is a compile-time constant. Instead of hard-coding 16 when we
+ enumerate local interfaces, use PJ_ICE_MAX_CAND so that we can
+ potentially collect more interfaces if the compile time options are
+ changed.
+
+ Tangentially related to ASTERISK~24464
+
+ Change-Id: I1b85509e39e33b1fed63c86261fc229ba14bbabd
+
+2017-02-03 02:25 +0000 [99b40e72ae] Tzafrir Cohen <tzafrir.cohen@xorcom.com>
+
+ * libasteriskssl: do nothing with OpenSSL >= 1.1
+
+ OpenSSL 1.1 requires no explicit initialization. The hacks in the
+ library are not needed. They also happen to fail running Asterisk.
+
+ ASTERISK-26109 #close
+
+ Change-Id: I3b3efd5d80234a4c45a8ee58dcfe25b15d9ad100
+
+2017-02-13 16:50 +0000 [4c31e03e80] Sean Bright <sean.bright@gmail.com>
+
+ * app_voicemail: Allow 'Comedian Mail' branding to be overriden
+
+ Original patch by John Covert, slight modifications by me.
+
+ ASTERISK-17428 #close
+ Reported by: John Covert
+ Patches:
+ app_voicemail.c.patch (license #5512) patch uploaded by
+ John Covert
+
+ Change-Id: Ic3361b0782e5a5397a19ab18eb8550923a9bd6a6
+
+2017-01-20 23:59 +0000 [e97e50b68b] Tzafrir Cohen <tzafrir.cohen@xorcom.com>
+
+ * tcptls: use TLS_client_method with OpenSSL 1.1
+
+ OpenSSL 1.1 introduced TLS_client_method() and deprecated the previous
+ version-specific methods (such as TLSv1_client_method(). Other than
+ being simpler to use and more correct (gain support for TLS newer that
+ TLS1, in our case), the older ones produce a deprecation warning that
+ fails the build in dev-mode.
+
+ ASTERISK-26109 #close
+
+ Change-Id: I257b1c8afd09dcb0d96cda3a41cb9f7a15d0ba07
+
+2017-01-20 23:57 +0000 [0d555f0d81] Tzafrir Cohen <tzafrir.cohen@xorcom.com>
+
+ * openssl 1.1 support: use OPENSSL_VERSION_NUMBER
+
+ Use OPENSSL_VERSION_NUMBER instead of OPENSSL_API_COMPAT to detect
+ the openssl 1.1 API.
+
+ ASTERISK-26109 #close
+
+ Change-Id: I4e448f55ef516aedf6ad154037c35577a421a458
+
+2017-01-25 16:25 +0000 [9d34df9a5e] Ryan Rittgarn <rrittgarn@techpro.com>
+
+ * app_voicemail: VoiceMailPlayMsg did not play database stored messages
+
+ When attempting to use VoiceMailPlayMsg with a realtime data backend
+ the message is located, but never retrieved. This patch adds the
+ required RETRIEVE and DISPOSE calls that will fetch the message from
+ the database (and IMAP storage as well for that matter).
+
+ Also, removed extraneous make_file call.
+
+ ASTERISK-26723 #close
+
+ Change-Id: I1e122dd53c0f3d7faa10f3c2b7e7e76a47d51b8c
+
+2017-02-14 08:12 +0000 [f99e5f4de4] var <cbrunker@appenbutlerhill.com>
+
+ * app_record: Add option to prevent silence from being truncated
+
+ When using Record() with the silence detection feature, the stream is
+ written out to the given file. However, if only 'silence' is detected,
+ this file is then truncated to the first second of the recording.
+
+ This patch adds the 'u' option to Record() to override that behavior.
+
+ ASTERISK-18286 #close
+ Reported by: var
+ Patches:
+ app_record-1.8.7.1.diff (license #6184) patch uploaded by var
+
+ Change-Id: Ia1cd163483235efe2db05e52f39054288553b957
+
+2017-02-11 09:57 +0000 [ea8a610776] Sean Bright <sean.bright@gmail.com>
+
+ * cli: Fix various CLI documentation and completion issues
+
+ * app_minivm: Use built-in completion facilities to complete optional
+ arguments.
+
+ * app_voicemail: Use built-in completion facilities to complete
+ optional arguments.
+
+ * app_confbridge: Add missing colons after 'Usage' text.
+
+ * chan_alsa: Use built-in completion facilities to complete optional
+ arguments.
+
+ * chan_sip: Use built-in completion facilities to complete optional
+ arguments. Add completions for 'load' for 'sip show user', 'sip show
+ peer', and 'sip qualify peer.'
+
+ * chan_skinny: Correct and extend completions for 'skinny reset' and
+ 'skinny show line.'
+
+ * func_odbc: Correct completions for 'odbc read' and 'odbc write'
+
+ * main/asterisk: Correct and extend completions for 'core show file
+ version.'
+
+ * main/astmm: Use built-in completion facilities to complete arguments
+ for 'memory' commands.
+
+ * main/bridge: Correct completions for 'bridge kick.'
+
+ * main/ccss: Use built-in completion facilities to complete arguments
+ for 'cc cancel' command.
+
+ * main/cli: Add 'all' completion for 'channel request hangup.' Correct
+ completions for 'core set debug channel.' Correct completions for 'core
+ show calls.'
+
+ * main/pbx_app: Remove redundant completions for 'core show
+ applications.'
+
+ * main/pbx_hangup_handler: Remove unused completions for 'core show
+ hanguphandlers all.'
+
+ * res_sorcery_memory_cache: Add completion for 'reload' argument of
+ 'sorcery memory cache stale' and properly implement.
+
+ Change-Id: Iee58c7392f6fec34ad9d596109117af87697bbca
+
+2017-01-13 11:21 +0000 [17030100ca] Norbert Varga <vnorbix@gmail.com>
+
+ * chan_pjsip: Multidomain endpoint finding on call
+
+ When PJSIP tries to call an endpoint with a domain (e.g. 1000@test.com),
+ the user part is stripped down as it would be a trunk with a specified user,
+ and only the host part is called as a PJSIP endpoint and can't be found.
+ This is not correct in the case of a multidomain SIP account, so the stripping
+ after the @ sign is done only if the whole endpoint (in multidomain case
+ 1000@test.com) can't be found.
+
+ ASTERISK-26248
+
+ Change-Id: I3a2dd6f57f3bd042df46b961eccd81d31ab202e6
+
+2017-02-13 05:05 +0000 [18f1b52601] Joshua Colp <jcolp@digium.com>
+
+ * channel: Protect flags in ast_waitfor_nandfds operation.
+
+ The ast_waitfor_nandfds operation will manipulate the flags
+ of channels passed in. This was previously done without
+ the channel lock being held. This could result in incorrect
+ values existing for the flags if another thread manipulated
+ the flags at the same time.
+
+ This change locks the channel during flag manipulation.
+
+ ASTERISK-26788
+
+ Change-Id: I2c5c8edec17c9bdad4a93291576838cb552ca5ed
+
+2017-02-11 11:25 +0000 [a46a21642e] Richard Mudgett <rmudgett@digium.com>
+
+ * res_pjsip.c: Fix inconsistency between warning and action.
+
+ The original return value corresponded to AST_SIP_AUTHENTICATION_CHALLENGE
+ but we have no authenticator registered to create the challenge.
+
+ Change-Id: I62368180d774b497411b80fbaabd0c80841f8512
+
+2017-02-11 11:26 +0000 [67b21dc63a] Richard Mudgett <rmudgett@digium.com>
+
+ * pjsip_distributor.c: Fix off-nominal tdata ref leak.
+
+ Change-Id: I571f371d0956a8039b197b4dbd8af6b18843598d
+
+2017-02-09 10:01 +0000 [8936568515] Sean Bright <sean.bright@gmail.com>
+
+ * manager: Restore Originate failure behavior from Asterisk 11
+
+ In Asterisk 11, if the 'Originate' AMI command failed to connect the provided
+ Channel while in extension mode, a 'failed' extension would be looked up and
+ run. This was, I believe, unintentionally removed in 51b6c49. This patch
+ restores that behavior.
+
+ This also adds an enum for the various 'synchronous' modes in an attempt to
+ make them meaningful.
+
+ ASTERISK-26115 #close
+ Reported by: Nasir Iqbal
+
+ Change-Id: I8afbd06725e99610e02adb529137d4800c05345d
+
+2017-02-08 14:27 +0000 [2817f87d27] Richard Mudgett <rmudgett@digium.com>
+
+ * core: Cleanup some channel snapshot staging anomalies.
+
+ We shouldn't unlock the channel after starting a snapshot staging because
+ another thread may interfere and do its own snapshot staging.
+
+ * app_dial.c:dial_exec_full() made hold the channel lock while setting up
+ the outgoing channel staging. Made hold the channel lock after the called
+ party answers while updating the caller channel staging.
+
+ * chan_sip.c:sip_new() completed the channel staging on off-nominal exit.
+ Also we need to use ast_hangup() instead of ast_channel_unref() at that
+ location.
+
+ * channel.c:__ast_channel_alloc_ap() added a comment about not needing to
+ complete the channel snapshot staging on off-nominal exit paths.
+
+ * rtp_engine.c:ast_rtp_instance_set_stats_vars() made hold the channel
+ locks while staging the channels for the stats channel variables.
+
+ Change-Id: Iefb6336893163f6447bad65568722ad5d5d8212a
+
+2017-02-10 09:35 +0000 [c7fcc4468f] gtjoseph <gjoseph@digium.com>
+
+ * configs/samples: Fix placement of 'identify' entry in sorcery.conf
+
+ The entry for 'identify' was incorrectly placed in the
+ res_pjsip section when it should be in
+ res_pjsip_endpoint_identifier_ip.
+
+ ASTERISK-26785 #close
+
+ Change-Id: Ia1372b12a952bfe2df6b1b1e0e725ca306a5d41a
+
+2017-02-08 11:50 +0000 [cbc23c31cf] Mark Michelson <mmichelson@digium.com>
+
+ * Revert "Update qualifies when AOR configuration changes."
+
+ This reverts commit 6492e91392b8fd394193e411c6eb64b45486093f.
+
+ The change in question was intended to prevent the need to reload in
+ order to update qualifies on contacts when an AOR changes. However, this
+ ended up causing a deadlock instead.
+
+ Change-Id: I1a835c90a5bb65b6dc3a1e94cddc12a4afc3d71e
+
+2017-02-07 12:01 +0000 [7e14e086cf] nappsoft <infos@nappsoft.com> (license 6822)
+
+ * srv: Fix crash when ast_srv_lookup is used and 0 records are returned.
+
+ When performing an SRV lookup using the ast_srv_lookup function it
+ did not properly handle the situation where 0 records are returned.
+ If this happened it would wrongly assume that at least one record
+ was present.
+
+ This change fixes the code so it will exit early if an error occurs
+ or if 0 records are returned.
+
+ ASTERISK-26772
+ patches:
+ srv_lookup.patch submitted by nappsoft (license 6822)
+
+ Change-Id: I09b19081c74e0ad11c12bf54a257243b1bcb2351
+
+2017-02-06 11:40 +0000 [7b39d6901a] Joshua Colp <jcolp@digium.com>
+
+ * res_stasis_device_state: Protect the adding/removing of subscriptions.
+
+ The adding and removing of device state subscriptions did not protect
+ fully against simultaneous manipulation. In particular the subscribe
+ case allowed a small window where two subscriptions could be added for
+ the same device state instead of just one.
+
+ This change makes the code hold the subscriptions lock for the entirety
+ of each operation to ensure that two are not occurring at the same time.
+
+ ASTERISK-26770
+
+ Change-Id: I3e7f8eb9d09de440c9024d2dd52029f6f20e725b
+
+2017-02-01 17:56 +0000 [c384dfd6b0] Richard Mudgett <rmudgett@digium.com>
+
+ * res_pjsip: Fix some off nominal tdata leaks.
+
+ Change-Id: I243a4be5e7fbfe604923764969c4ee04eee89b9d
+
+2017-02-06 16:27 +0000 Asterisk Development Team <asteriskteam@digium.com>
+
+ * asterisk 13.14.0-rc1 Released.
+
+2017-02-02 11:26 +0000 [70aff89e5d] Sean Bright <sean.bright@gmail.com>
+
+ * res_odbc: Remove deprecated settings from sample configuration file
+
+ ASTERISK-26704 #close
+ Reported by: Anthony Messina
+
+ Change-Id: I976a1f94cf79c5f31e76174c61f5c6a65fd6354f
+
+2017-02-01 15:56 +0000 [3aee199913] Sean Bright <sean.bright@gmail.com>
+
+ * audiohooks: Muting a hook can mute underlying frames
+
+ If an audiohook is placed on a channel that does not require transcoding,
+ muting that hook will cause the underlying frames to be muted as well.
+
+ The original patch is from David Woolley but I have modified slightly.
+
+ ASTERISK-21094 #close
+ Reported by: David Woolley
+ Patches:
+ ASTERISK-21094-Patch-1.8-1.txt (license #5737) patch uploaded
+ by David Woolley
+
+ Change-Id: Ib2b68c6283e227cbeb5fa478b2d0f625dae338ed
+
+2017-02-01 13:54 +0000 [6492e91392] Mark Michelson <mmichelson@digium.com>
+
+ * Update qualifies when AOR configuration changes.
+
+ Prior to this change, qualifies would only update in the following
+ cases:
+ * A reload of res_pjsip.so was issued.
+ * A dynamic contact was re-registered after its AOR's qualify_frequency
+ had been changed
+ This does not work well if you are using realtime for your AORs. You can
+ update your database to have a new qualify_frequency, but the permanent
+ contacts on that AOR will not have their qualifies updated. And the
+ dynamic contacts on that AOR will not have their qualifies updated until
+ the next registration, which could be a long time.
+
+ This change seeks to fix this problem by making it so that whenever AOR
+ configuration is applied, the contacts pertaining to that AOR have their
+ qualifies updated.
+
+ Additions from this patch:
+ * AOR sorcery objects now have an apply handler that calls into a newly
+ added function in the OPTIONS code. This causes all contacts
+ associated with that AOR to re-schedule qualifies.
+ * When it is time to qualify a contact, the OPTIONS code checks to see
+ if the AOR can still be retrieved. If not, then qualification is
+ canceled on the contact.
+
+ Alterations from this patch:
+ * The registrar code no longer updates contact's qualify_frequence and
+ qualify_timeout. There is no point to this since those values already
+ get updated when the AOR changes.
+ * Reloading res_pjsip.so no longer calls the OPTIONS initialization
+ function. Reloading res_pjsip.so results in re-loading AORs, which
+ results in re-scheduling qualifies.
+
+ Change-Id: I2e7c3316da28f389c45954f24c4e9389abac1121
+
+2017-01-31 18:28 +0000 [43f0ff4b69] Richard Mudgett <rmudgett@digium.com>
+
+ * channel.c: Fix unbalanced read queue deadlocking local channels.
+
+ Using the timerfd timing module can cause channel freezing, lingering, or
+ deadlock issues. The problem is because this is the only timing module
+ that uses an associated alert-pipe. When the alert-pipe becomes
+ unbalanced with respect to the number of frames in the read queue bad
+ things can happen. If the alert-pipe has fewer alerts queued than the
+ read queue then nothing might wake up the thread to handle received frames
+ from the channel driver. For local channels this is the only way to wake
+ up the thread to handle received frames. Being unbalanced in the other
+ direction is less of an issue as it will cause unnecessary reads into the
+ channel driver.
+
+ ASTERISK-26716 is an example of this deadlock which was indirectly fixed
+ by the change that found the need for this patch.
+
+ * In channel.c:__ast_queue_frame(): Adding frame lists to the read queue
+ did not add the same number of alerts to the alert-pipe. Correspondingly,
+ when there is an exceptionally long queue event, any removed frames did
+ not also remove the corresponding number of alerts from the alert-pipe.
+
+ ASTERISK-26632 #close
+
+ Change-Id: Ia98137c5bf6e9d6d202ce0eb36441851875863f6
+
+2017-01-31 16:38 +0000 [a199f94908] Richard Mudgett <rmudgett@digium.com>
+
+ * res_agi: Prevent an AGI from eating frames it should not. (Re-do)
+
+ A dialplan intercept routine is equivalent to an interrupt routine. As
+ such, the routine must be done quickly and you do not have access to the
+ media stream. These restrictions are necessary because the media stream
+ is the responsibility of some other code and interfering with or delaying
+ that processing is bad. A possible future dialplan processing
+ architecture change may allow the interception routine to run in a
+ different thread from the main thread handling the media and remove the
+ execution time restriction.
+
+ * Made res_agi.c:run_agi() running an AGI in an interception routine run
+ in DeadAGI mode. No touchy channel frames.
+
+ ASTERISK-25951
+
+ ASTERISK-26343
+
+ ASTERISK-26716
+
+ Change-Id: I638f147ca7a7f2590d7194a8ef4090eb191e4e43
+
+2017-01-31 16:32 +0000 [6bed318a66] Richard Mudgett <rmudgett@digium.com>
+
+ * Frame deferral: Revert API refactoring.
+
+ There are several issues with deferring frames that are caused by the
+ refactoring.
+
+ 1) The code deferring frames mishandles adding a deferred frame to the
+ deferred queue. As a result the deferred queue can only be one frame
+ long.
+
+ 2) Deferrable frames can come directly from the channel driver as well as
+ the read queue. These frames need to be added to the deferred queue.
+
+ 3) Whoever is deferring frames is really only doing the __ast_read() to
+ collect deferred frames and doesn't care about the returned frames except
+ to detect a hangup event. When frame deferral is completed we must make
+ the normal frame processing see the hangup as a frame anyway. As such,
+ there is no need to have varying hangup frame deferral methods. We also
+ need to be aware of the AST_SOFTHANGUP_ASYNCGOTO hangup that isn't real.
+ That fake hangup is to cause the PBX thread to break out of loops to go
+ execute a new dialplan location.
+
+ 4) To properly deal with deferrable frames from the channel driver as
+ pointed out by (2) above, means that it is possible to process a dialplan
+ interception routine while frames are deferred because of the
+ AST_CONTROL_READ_ACTION control frame. Deferring frames is not
+ implemented as a re-entrant operation so you could have the unsupported
+ case of two sections of code thinking they have control of the media
+ stream.
+
+ A worse problem is because of the bad implementation of the AMI PlayDTMF
+ action. It can cause two threads to be deferring frames on the same
+ channel at the same time. (ASTERISK_25940)
+
+ * Rather than fix all these problems simply revert the API refactoring as
+ there is going to be only autoservice and safe_sleep deferring frames
+ anyway.
+
+ ASTERISK-26343
+
+ ASTERISK-26716 #close
+
+ Change-Id: I45069c779aa3a35b6c863f65245a6df2c7865496
+
+2017-01-31 11:17 +0000 [e371e13b9e] Joshua Colp <jcolp@digium.com>
+
+ * res_pjsip: Handle invocation of callback on outgoing request when error occurs.
+
+ There are some error cases in PJSIP when sending a request that will
+ result in the callback for the request being invoked. The code did not
+ handle this case and assumed on every error case that the callback was not
+ invoked.
+
+ The code has been changed to check whether the callback has been invoked
+ and if so to absorb the error and treat it as a success.
+
+ ASTERISK-26679
+ ASTERISK-26699
+
+ Change-Id: I563982ba204da5aa1428989a11c06dd9087fea91
+
+2017-01-30 09:02 +0000 [339c30f2b6] Sean Bright <sean.bright@gmail.com>
+
+ * res_rtp_asterisk: Swap byte-order when sending signed linear
+
+ Before Asterisk 13, signed linear was converted into network byte order by a
+ smoother before being sent over the network. We restore this behavior by
+ forcing the creation of a smoother when slinear is in use and setting the
+ appropriate flags so that the byte order conversion is always done.
+
+ ASTERISK-24858 #close
+ Reported-by: Frankie Chin
+
+ Change-Id: I868449617d1a7819578f218c8c6b2111ad84f5a9
+
+2017-01-31 12:46 +0000 [7fd28cefdb] gtjoseph <gjoseph@digium.com>
+
+ * debug_utilities: Install ast_logescalator to /var/lib/asterisk/scripts
+
+ Forgot to install it with the original patch
+
+ Change-Id: I8bdb540a6694971ae5fe21f48d532332c6482e4c
+
+2017-01-25 06:50 +0000 [456bc3c704] gtjoseph <gjoseph@digium.com>
+
+ * debug_utilities: Add ast_logescalator
+
+ The escalator works by creating a set of startup commands in cli.conf
+ that set up logger channels and issue the debug commands for the
+ subsystems specified. If asterisk is running when it is executed,
+ the same commands will be issued to the running instance. The original
+ cli.conf is saved before any changes are made and can be restored by
+ executing '$prog --reset'.
+
+ The log output will be stored in...
+ $astlogdir/message.$uniqueid
+ $astlogdir/debug.$uniqueid
+ $astlogdir/dtmf.$uniqueid
+ $astlogdir/fax.$uniqueid
+ $astlogdir/security.$uniqueid
+ $astlogdir/pjsip_history.$uniqueid
+ $astlogdir/sip_history.$uniqueid
+
+ Some minor tweaks were made to chan_sip, and res_pjsip_history
+ so their history output could be send to a log channel as packets
+ are captured.
+
+ A minor tweak was also made to manager so events are output to verbose
+ when "manager set debug on" is issued.
+
+ Change-Id: I799f8e5013b86dc5282961b27383d134bf09e543
+
+2017-01-23 09:35 +0000 [54b027916a] Torrey Searle <torrey@voxbone.com>
+
+ * libastssl/pj: libastssl/pj should have an so_version
+
+ Issue introduced in b59956a87. In the non-darwin case libastssl/pj
+ should be versioned. This causes the symbol file for this lib
+ to not be generated.
+
+ Change-Id: Ib07ae8c40252813c488e2c1ac6204fd42816dd4c
+
+2017-01-24 19:51 +0000 [3c8f84786e] Kirill Katsnelson <kkm@smartaction.com>
+
+ * make_build_h: handle backslashes in external strings
+
+ LikewiseOpen creates user names with a backslash in them. A gentle
+ massage with sed(1) allows such strings to be inserted into build.h
+ properly quoted. I am also adding the same for host name and other
+ strings used in the script that are more or less user-controlled.
+
+ ASTERISK-26754
+
+ Change-Id: Iac5ef2b67a68ee58f35ddbf86bb818ba6eabecae
+
+2017-01-17 20:46 +0000 [555e8cd2ba] Kirill Katsnelson <kkm@smartaction.com>
+
+ * ast_careful_fwrite to support EPIPE gracefully
+
+ When a reading end of the network socket is closed by an AMI manager,
+ the EPIPE is signaled when writing to our end, resulting in the
+ spurious log error message
+
+ ast_careful_fwrite: fwrite() returned error: Broken pipe
+
+ Previously EPIPE was handled in ast_carefulwrite() a few lines above,
+ but not in this function.
+
+ ASTERISK-26753
+
+ Change-Id: I6a67335cd6526608bb9b78f796c626b1677664b8
+
+2017-01-24 22:31 +0000 [be92f10a16] Kirill Katsnelson <kkm@smartaction.com>
+
+ * app_queue: Fix queues randomly disappearing on reload
+
+ With 500+ queues and a reload every minute, a random queue disappears
+ upon reload. The cause is mususe of the 'dead' flag. Namely, all queues
+ were marked dead up front, and then "resurrected" by dropping this flag
+ for those found in the configuration. But a queue marked dead can be
+ removed also when control leaves the app entry point on a PBX thread.
+
+ With this change, the queue is marked only not found, and at the end of
+ reload only the queues that are still not found are actually marked as
+ dead, so the dead flag is never reset, and set only on positively dead
+ queues.
+
+ ASTERISK-26755
+
+ Change-Id: I3a4537aec9eb8d8aeeaa0193407e3523feb004bf
+
+2017-01-26 07:57 +0000 [aae9df0643] Joshua Colp <jcolp@digium.com>
+
+ * res_pjsip_endpoint_identifier_ip: Fix memory leak of hosts when resolving.
+
+ This change adds a missing unreference of the hostname when resolving and
+ also cleans up the iterator.
+
+ ASTERISK-26735
+
+ Change-Id: Ic012ebaf3d89e714eec340b7b0c5e63c66af857a
+
+2017-01-25 15:26 +0000 [9e3150b98d] Mark Michelson <mmichelson@digium.com>
+
+ * Add reload options to CLI/AMI stale object commands.
+
+ Marking an object as stale in a memory cache is supposed to prime the
+ cache so that the next time the item is retrieved, the stale item is
+ deleted from the cache and a background task is run to re-populate the
+ cache with a fresh version of the object.
+
+ The problem is, there are some object types out there for which there is
+ no natural reason that they would be retrieved from the backend with any
+ regularity. Outbound PJSIP registrations are a good example of this. At
+ startup, they are read, and an object-specific state is created that
+ refers to the initially-retrieved object for all time.
+
+ Adding the "reload" option to the CLI/AMI commands gives the cache the
+ opportunity to manually re-retrieve the object from the backend, both
+ storing the new object in the cache and applying the new object's
+ configuration to the module that uses that object.
+
+ Change-Id: Ieb1fe7270ceed491f057ec5cbf0e097bde96c5c8
+
+2017-01-10 17:39 +0000 [c54f9d2bf0] Richard Mudgett <rmudgett@digium.com>
+
+ * T.140: Fix format ref and memory leaks.
+
+ * channel.c:ast_sendtext(): Fix T.140 SendText memory leak.
+
+ * format_compatibility.c: T.140 RED and T.140 were swapped.
+
+ * res_rtp_asterisk.c:rtp_red_init(): Fix ast_format_t140_red ref leak.
+
+ * res_rtp_asterisk.c:rtp_red_init(): Fix data race after starting periodic
+ scheduled red_write().
+
+ * res_rtp_asterisk.c: Some other minor misc tweaks.
+
+ Change-Id: Ifa27a2e0f8a966b1cf628607c86fc4374b0b88cb
+
+2017-01-24 15:39 +0000 [a2f0adccbd] Joshua Colp <jcolp@digium.com>
+
+ * res_pjsip_endpoint_identifier_ip: Ensure error defaults to 0.
+
+ When configuring a match using a netmask the error variable was
+ not defaulting to 0. For some people this would cause the code
+ to think an error occurred when adding the match when in reality
+ it added perfectly fine.
+
+ ASTERISK-26693
+
+ Change-Id: I850c250813742bddde65c84e739093c9e01dfe56
+
+2017-01-10 17:37 +0000 [607b3ac736] Richard Mudgett <rmudgett@digium.com>
+
+ * astobj2.c: Add excessive ref count trap.
+
+ Change-Id: I32e6a589cf9009450e4ff7cb85c07c9d9ef7fe4a
+
+2017-01-10 13:11 +0000 [ab8cb5a7ce] Richard Mudgett <rmudgett@digium.com>
+
+ * main/app.c: Memory corruption from early format destruction.
+
+ * make_silence() created a malloced silence slin frame without adding a
+ slin format ref. When the frame is destroyed it will unref the slin
+ format that never had a ref added. Memory corruption is expected to
+ follow.
+
+ * Simplified and fixed counting the number of samples in a frame list for
+ make_silence().
+
+ * Eliminated an unnecessary RAII_VAR associated with the make_silence()
+ frame.
+
+ Change-Id: I47de3f9b92635b7f8b4d72309444d6c0aee6f747
+
+2017-01-11 14:59 +0000 [dcd8e4b1a0] Richard Mudgett <rmudgett@digium.com>
+
+ * frame.c: Fix off-nominal format ref leaks.
+
+ * ast_frisolate() could leak frame format refs on allocation
+ failures.
+
+ * Similified code in ast_frisolate() and code used by
+ ast_frisolate().
+
+ Change-Id: I79566d4d36b3d7801bf0c8294fcd3e9a86a2ed6d
+
+2017-01-13 19:08 +0000 [00a227e93d] Richard Mudgett <rmudgett@digium.com>
+
+ * stasis_bridge.c: Fix off-nominal stasis control ref leak.
+
+ Change-Id: Ib17218343a6596832060180e19386da9df150ac8
+
+2017-01-10 12:30 +0000 [38a2021c68] Richard Mudgett <rmudgett@digium.com>
+
+ * res_musiconhold.c: Fix format ref leak when parsing MOH config class.
+
+ Change-Id: Ica8e8e2ce7604c2c61ec55bef07dc675361d2ea5
+
+2017-01-10 14:03 +0000 [ab7a9fc5b2] Richard Mudgett <rmudgett@digium.com>
+
+ * chan_oss.c: Fix format ref leak in oss_read().
+
+ Change-Id: I0a5d56c7dcf327d60f86a4c25a23571733709fd0
+
+2017-01-10 17:48 +0000 [1484a991e1] Richard Mudgett <rmudgett@digium.com>
+
+ * Add notes about embedded ast_frame structs holding a format ref.
+
+ mod_format.h: Note ast_filestream.fr holds a format ref.
+
+ translate.h: Note ast_trans_pvt.f holds a format ref.
+
+ Change-Id: I86bda354d725207b41e08920355d7c31b2d7f749
+
+2017-01-19 09:05 +0000 [17f4989d49] gtjoseph <gjoseph@digium.com>
+
+ * ari: Implement 'debug all' and request/response logging
+
+ The 'ari set debug' command has been enhanced to accept 'all' as an
+ application name. This allows dumping of all apps even if an app
+ hasn't registered yet. To accomplish this, a new global_debug global
+ variable was added to res/stasis/app.c and new APIs were added to
+ set and query the value.
+
+ 'ari set debug' now displays requests and responses as well as events.
+ This required refactoring the existing debug code.
+
+ * The implementation for 'ari set debug' was moved from stasis/cli.{c,h}
+ to ari/cli.{c,h}, and stasis/cli.{c,h} were deleted.
+ * In order to print the body of incoming requests even if a request
+ failed, the consumption of the body was moved from the ari stubs
+ to ast_ari_callback in res_ari.c and the moustache templates were
+ then regenerated. The body is now passed to ast_ari_invoke and then
+ on to the handlers. This results in code savings since that template
+ was inserted multiple times into all the stubs.
+
+ An additional change was made to the ao2_str_container implementation
+ to add partial key searching and a sort function. The existing cli
+ code assumed it was already there when it wasn't so the tab completion
+ was never working.
+
+ Change-Id: Ief936f747ce47f1fb14035fbe61152cf766406bf
+
+2017-01-20 21:13 +0000 [30cb4eb57f] Richard Mudgett <rmudgett@digium.com>
+
+ * PJPROJECT logging: Fix detection of max supported log level.
+
+ The mechanism used for detecting the maximum log level compiled into the
+ linked pjproject did not work. The API call simply stores the requested
+ level into an integer and does no range checking. Asterisk was assuming
+ that there was range checking and limited the new value to the allowable
+ range. To get the actual maximum log level compiled into the linked
+ pjproject we need to get and save off the initial set log level from
+ pjproject. This is the maximum log level supported.
+
+ * Get and save off the initial log level setting before altering it to the
+ desired level on startup. This has to be done by a macro rather than
+ calling a core function to avoid incorrectly linking pjproject.
+
+ * Split the initial log level warning messages to warn if the linked
+ pjproject cannot support the requested startup level and if it is too low
+ to get the pjproject buildopts for "pjproject show buildopts".
+
+ * Adjust the CLI "pjproject set log level" to check the saved max log
+ level and to generate normal output messages instead of a warning message.
+
+ ASTERISK-26743 #close
+
+ Change-Id: I40aa76653e2a1dece66c3f8734594b4f0471cfb4
+
+2017-01-21 14:43 +0000 [cd2677f966] Tzafrir Cohen <tzafrir.cohen@xorcom.com>
+
+ * tests: use datadir for sound files
+
+ Some (voicemail-related) tests API symlinks beep.gsm and other files
+ from ast_config_AST_VAR_DIR. It should use ast_config_AST_DATA_DIR.
+
+ ASTERISK-26740 #close
+
+ Change-Id: Id49c56fb9e16df64b1a2b829693ca7601252df89
+
+2017-01-20 23:41 +0000 [b62f84bfb1] Tzafrir Cohen <tzafrir.cohen@xorcom.com>
+
+ * test_voicemail_api: order of params to VERIFY macros
+
+ Fix order of parameters in calls to VM_API_INT_VERIFY and
+ VM_API_STRING_VERIFY
+
+ ASTERISK-26739 #close
+
+ Change-Id: I30dc6b36893aadad6012be3f16f93aa5720870d6
+ Note: status: builds. Not tested any further.
+
+2017-01-05 13:21 +0000 [e3dcb9ddd9] Richard Mudgett <rmudgett@digium.com>
+
+ * res_pjsip_pubsub.c: Implement "pjsip show subscriptions" commands.
+
+ ASTERISK-23828 #close
+
+ Change-Id: Ifb8a3b61f447aedc58a8e6b36a810f7566018567
+
+2017-01-23 16:18 +0000 [75497c33ea] Mark Michelson <mmichelson@digium.com>
+
+ * Free endpoint ACLs when destroying PJSIP endpoints.
+
+ If endpoint ACLs were specified, they were not being freed
+ when endpoints were destroyed. On systems with realtime endpoints, this
+ could add up quickly since each DB lookup would allocate the ACL without
+ freeing it.
+
+ ASTERISK-26731 #close
+ Reported by Ustinov Artem
+
+ Change-Id: Ie1f8bf5b7a0de628c975beba01e69c56893331ad
+
+2017-01-23 09:10 +0000 [177e81ee47] gtjoseph <gjoseph@digium.com>
+
+ * pjproject_bundled: Fix setting max log level
+
+ An earlier attempt to prevent pjsua from spitting out an extra 6795
+ lines of debug output every time the testsuite called it was also
+ turning off the ability for asterisk to output debug info when it
+ needed to. This patch reverts the earlier fix and instead adds
+ a pjproject patch that sets the startup log level to 1 for pjsua
+ pjsystest and the pjsua python binding. This is an asterisk-only
+ patch that does not affect pjproject functionality and will not be
+ submitted upstream.
+
+ Change-Id: I347a8b58b2626f2906ccfc1d339e907627a0c9e8
+
+2017-01-23 10:08 +0000 [6d23b2e360] Joshua Colp <jcolp@digium.com>
+
+ * res_pjsip_endpoint_identifier_ip: Read settings before resolving.
+
+ An option has been added, srv_lookups, which controls whether
+ SRV lookups are performed on the provided match hosts or not.
+ It was possible for this option to be applied after resolution
+ had already happened.
+
+ This change makes it so hosts are stored away, settings are read
+ and applied, and then resolution is done. This ensures that no
+ matter the ordering the srv_lookups option is in effect.
+
+ ASTERISK-26735
+
+ Change-Id: I750378cb277be0140f8c5539450270afbfc43388
+
+2017-01-22 17:25 +0000 [a969bf3577] Richard Mudgett <rmudgett@digium.com>
+
+ * LISTFILTER: Remove outdated ERROR message.
+
+ Feeding LISTFILTER an empty variable results in an invalid ERROR message.
+ Earlier changes made the message useless because we can no longer tell if
+ the variable is empty or does not exist. It is valid to try to remove a
+ value from an empty list just as it is valid to try to remove a value that
+ is not in a non-empty list.
+
+ * Removed the outdated ERROR message.
+
+ * Added more test cases to the LISTFILTER unit test.
+
+ Change-Id: Ided9040e6359c44a335ef54e02ef5950a1863134
+
+2017-01-05 15:11 +0000 [3890337e7a] Richard Mudgett <rmudgett@digium.com>
+
+ * res_pjsip_pubsub.c: Fix AMI event list counts.
+
+ Fix the AMI PJSIPShowSubscriptionsInbound, PJSIPShowSubscriptionsOutbound,
+ and PJSIPShowResourceLists actions event counts. The reported counts may
+ not necessarily be accurate depending on what happens.
+
+ The subscriptions count would be wrong if Asterisk ever has outbound
+ subscriptions.
+
+ The resource list count could be wrong if a list were added or removed
+ during the AMI action being processed.
+
+ Change-Id: I4344301827523fa174960a42c413fd19abe4aed5
+
+2017-01-05 13:02 +0000 [fe4801c4f9] Richard Mudgett <rmudgett@digium.com>
+
+ * res_pjsip_pubsub.c: Fix incorrect message string wrapping.
+
+ Change-Id: Id771e6fe56d89ce365ddcbb423f820af97211120
+
+2017-01-05 13:01 +0000 [46484b8730] Richard Mudgett <rmudgett@digium.com>
+
+ * res_pjsip_pubsub.c: Eliminate trivial SCOPED_LOCK usage.
+
+ Change-Id: Ie0b69a830385452042fa19e7d267c6790ec6b6be
+
+2017-01-05 12:58 +0000 [8160474d7d] Richard Mudgett <rmudgett@digium.com>
+
+ * res_pjsip: alloca can never fail.
+
+ Change-Id: Ia2a6158e5fdf311bc2a1c0c43417978de504b1f1
+
+2017-01-13 11:03 +0000 [c628a7acac] gtjoseph <gjoseph@digium.com>
+
+ * debug_utilities: Create ast_loggrabber
+
+ ast_loggrabber gathers log files from customizable search patterns,
+ optionally converts POSIX timestamps to a readable format and
+ tarballs the results.
+
+ Also a few tweaks were made to ast_coredumper.
+
+ Change-Id: I8bfe1468ada24c1344ce4abab7b002a59a659495
+ (cherry picked from commit 5fa1c56d7e76999aa14f133a33f6b168e7c3b99c)
+
+2017-01-01 03:47 +0000 [e335b706ee] Richard Mudgett <rmudgett@digium.com>
+
+ * res_pjsip_outbound_authenticator_digest.c: Fix spacing in warning messages.
+
+ Change-Id: I573f0343c0c63a785cd4da60d57cc9f8b9ce7f49
+
+2017-01-12 15:58 +0000 [883e7fde31] Kevin Harwell <kharwell@digium.com>
+
+ * abstract/fixed/adpative jitter buffer: disallow frame re-inserts
+
+ It was possible for a frame to be re-inserted into a jitter buffer after it
+ had been removed from it. A case when this happened was if a frame was read
+ out of the jitterbuffer, passed to the translation core, and then multiple
+ frames were returned from said translation core. Upon multiple frames being
+ returned the first is passed on, but sebsequently "chained" frames are put
+ back into the read queue. Thus it was possible for a frame to go back into
+ the jitter buffer where this would cause problems.
+
+ This patch adds a flag to frames that are inserted into the channel's read
+ queue after translation. The abstract jitter buffer code then checks for this
+ flag and ignores any frames marked as such.
+
+ Change-Id: I276c44edc9dcff61e606242f71274265c7779587
+
+2017-01-13 21:23 +0000 [473330983b] Richard Mudgett <rmudgett@digium.com>
+
+ * taskprocessor.c: Change when high water warning logged.
+
+ The task processor queue reached X scheduled tasks message was originally
+ intended to get logged only once per task processor to prevent spamming
+ the log. This is no longer necessary since high and low water thresholds
+ can better control when the message is logged.
+
+ It is beneficial to generate the warning each time a task processor
+ reaches the high water level because PJSIP stops processing new requests
+ while any high water alert is active. Without this change you would have
+ to enable at least debug level 3 logging to know about a repeated alert
+ trigger.
+
+ * Made generate the warning message whenever a task is pushed into the
+ task processor that triggers the high water alert.
+
+ * Appended 'again' to the warning for a repeated high water alert trigger.
+
+ Change-Id: Iabf75a004f7edaf1e5e8c323099418e667cac999
+
+2017-01-10 05:54 +0000 [0047b1bc49] Aaron An <anjb@ti-net.com.cn>
+
+ * res_rtp_asterisk: Fix bug in function CHANNEL(rtcp, all_rtt)
+
+ Function CHANNEL(rtcp,all_rtt) CHANNEL(rtcp,all_loss) CHANNEL(rtcp,all_jitter)
+ always return 0.0 due to wrong define of macro "AST_RTP_SATA_SET" and
+ "AST_RTP_STAT_STRCPY".
+ It should compare "combined" with "stat" not "current_stat".
+
+ ASTERISK-26710 #close
+ Reported-by: Aaron An
+ Tested-by: AaronAn
+
+ Change-Id: Id4140fafbf92e2db689dac5b17d9caa009028a15
+
+2017-01-10 18:10 +0000 [47474cfd54] gtjoseph <gjoseph@digium.com>
+
+ * debug_utilities: Create the ast_coredumper utility
+
+ This utility allows easy manipulation of asterisk coredumps.
+
+ * Configurable search paths and patterns for existing coredumps
+ * Can generate a consistent coredump from the running instance
+ * Can dump the lock_infos table from a coredump
+ * Dumps backtraces to separate files...
+ - thread apply 1 bt full -> <coredump>.thread1.txt
+ - thread apply all bt -> <coredump>.brief.txt
+ - thread apply all bt full -> <coredump>.full.txt
+ - lock_infos table -> <coredump>.locks.txt
+ * Can tarball corefiles and optionally delete them after processing
+ * Can tarball results files and optionally delete them after processing
+ * Converts ':' in coredump and results file names '-' to facilitate
+ uploading. Jira for instance, won't accept file names with colons
+ in them.
+
+ Tested on Fedora24+, Ubuntu14+, Debian6+, CentOS6+ and FreeBSD9+[1].
+
+ [1] For *BSDs, the "devel/gdb" package might have to be installed to
+ get a recent gdb. The utility will check all instances of gdb
+ it finds in $PATH and if one isn't found that can run python, it
+ prints a friendly error.
+
+ Change-Id: I935d37ab9db85ef923f32b05579897f0893d33cd
+
+2017-01-08 10:29 +0000 [f8cd73ec3c] gtjoseph <gjoseph@digium.com>
+
+ * pjproject_bundled: Fix compilation with MALLOC_DEBUG
+
+ When MALLOC_DEBUG was specified, make was failing. Immediately
+ remaking would work. The issues was in the ordering of the make
+ dependencies.
+
+ Change-Id: If6030b54fc693f3179f32bfd20c6b5d5f1b3f7cd
+
+2017-01-05 06:11 +0000 [37aaaa2da2] Joshua Colp <jcolp@digium.com>
+
+ * res_pjsip_endpoint_identifier_ip: Add support for SRV lookups.
+
+ This change implements SRV support for the IP based endpoint
+ identifier module. All possible addresses through SRV are looked
+ up and added as matches. If no SRV records are available a
+ fallback to normal host resolution is done. If an IP address
+ is provided then no SRV lookup occurs.
+
+ This is configured using the "srv_lookups" option on the
+ identify section and defaults to "yes".
+
+ ASTERISK-26693
+
+ Change-Id: I6b641e275bf96629320efa8b479737062aed82ac
+
+2016-12-22 09:13 +0000 [569dac8e50] Alexander Traud <pabstraud@compuserve.com>
+
+ * res_pjsip_session: Access SIPDOMAIN via Dialplan.
+
+ This feature was available in the SIP channel driver chan_sip. For example,
+ Asterisk is the outbound proxy and has to handle all SIP-URIs, even domains not
+ local to Asterisk. In that case, SIPDOMAIN is used in the Dialplan, to detect
+ and dial remote SIP-URIs. This change here sets the SIP destination domain of
+ an inbound call (SIPDOMAIN) in the SIP channel driver res_pjsip as well.
+
+ ASTERISK-26670 #close
+
+ Change-Id: I27c880dc404a3c1c6792e1ba3545475339577243
+
+2017-01-04 05:50 +0000 [367128e70b] Alexander Traud <pabstraud@compuserve.com>
+
+ * chan_sip: Remember SDP negotiation on SIP_CODEC_INBOUND.
+
+ After a SIP_CODEC_INBOUND in the dialplan, do not continue with cached formats
+ but remember the joint format. Cached formats contain default parameters,
+ often create an empty fmtp line. However, a joint format might have passed
+ format_get_joint(.) in a res_format_attr_* module (like Opus Codec) and
+ contain the resulting format parameters from a SDP negotiation.
+
+ ASTERISK-26691 #close
+
+ Change-Id: I35712d98a793d4c3efdd156cec57deab9014b1dc
+
+2017-01-03 15:14 +0000 [d7e5a747c3] gtjoseph <gjoseph@digium.com>
+
+ * pjproject_bundled: Compile pjsua with max log level = 2
+
+ A while back, we changed config_site.h to set PJ_LOG_MAX_LEVEL = 6.
+ This allowed us to control the log level better from inside Asterisk.
+ An unfortunate side effect of this was that the pjsua binary and
+ python bindings were also compiled with log level set to 6 so whenever
+ a testsuite test that uses pjsua runs, it spits out 6795 lines of
+ debug in an instant even before the test starts. I believe this
+ overruns the Jenkins capture buffer and prevents the test from
+ properly terminating. In turn, this results in the testsuite just
+ hanging until the job is killed. It's more frequent on the higher
+ end agents because they can spit out the messages faster.
+
+ Unfortunately, the messages are all spit out before we have control
+ of the python pj.Lib instance where we can set logging levels so the
+ only alternative was to actually compile pjsua and _pjsua.so with an
+ overridden PJ_LOG_MAX_LEVEL. Although defining a lower max level was
+ done in the Makefile, the define in config_site.h had to be wrapped
+ with "#ifndef" so the change would take effect.
+
+ Change-Id: I2af9e7d48dde1927279c586c9c725d868fe6f3ff
+
+2016-12-22 16:00 +0000 [34e728cfb9] Joshua Colp <jcolp@digium.com>
+
+ * chan_pjsip: Use session for retrieving CHANNEL() information.
+
+ The CHANNEL() dialplan function implementation for PJSIP allows
+ querying of PJSIP specific information. This used the channel
+ passed in to get the PJSIP session and associated information.
+ It is possible for this channel to be masqueraded and end
+ up as a different channel type by the time the information
+ request is actually acted upon.
+
+ This change retrieves the PJSIP session safely and accesses
+ data from it (including channel). This provides a guarantee
+ that the session and channel will not be altered when the
+ request is being acted upon.
+
+ ASTERISK-26673
+
+ Change-Id: I335e12b89e1820cafdd92b3e7526b8ba649eb7e6
+
+2016-12-31 19:56 +0000 [a398f98b08] Joshua Elson <joshelson@gmail.com>
+
+ * res_pjsip: Fix known compact header issues
+
+ ASTERISK-26684 #close
+
+ Change-Id: Ifd7e401c45015119dd5e8421dbfe3afa6381744a
+
+2016-12-30 09:10 +0000 [0ab9d103f6] JoshE (license 6075)
+
+ * res_pjsip_refer: Handle compact Refer-To header.
+
+ refer_incoming_refer_request needed to look for the "r" header as well
+ as the "Refer-To" header.
+
+ ASTERISK-26655 #close
+ patches:
+ refer_compact_fix.diff submitted by JoshE (license 6075)
+
+ Change-Id: I610410a99b02427ea5db887aeb454d5f12c2259f
+
+2016-12-23 12:11 +0000 [21151408f7] Richard Mudgett <rmudgett@digium.com>
+
+ * bridge_native_rtp.c: Minor code cleanups.
+
+ In native_rtp_bridge_compatible_check()
+
+ * Made one variable declaration per line.
+
+ * Extracted if test assignment to make the test easier to see.
+
+ * Made long if tests easier to see the combinatorial logic.
+
+ * Added bridge id to a couple debug messages.
+
+ Change-Id: I65bc5732aa7c9a2537f062f106fbea711cf2daad
+
+2016-12-23 12:10 +0000 [9dcf9e9cea] Richard Mudgett <rmudgett@digium.com>
+
+ * bridge_native_rtp.c: Fix native rtp bridge data race.
+
+ native_rtp_bridge_compatible() didn't lock the bridge channels before
+ checking the channels for native bridging ability. As a result, one of
+ the channel's native format capabilities structure got replaced out from
+ under the native bridge check. Use of a stale pointer to freed memory
+ causes bad things to happen.
+
+ MALLOC_DEBUG, DO_CRASH, and the
+ tests/channels/pjsip/transfers/blind_transfer/caller_direct_media
+ testsuite test caught this.
+
+ * Add missing channel locking in native_rtp_bridge_compatible().
+
+ Change-Id: If25fdb3ac8e85563c4857fb8216b3d9dc3d0fa53
+
+2016-12-21 16:28 +0000 [a9e459f8ac] Richard Mudgett <rmudgett@digium.com>
+
+ * res_rtp_asterisk.c: Fix uninitialized memory crash.
+
+ ast_rtp_remote_address_set() could pass an uninitialized 'us' parameter to
+ ast_ouraddrfor(). If ast_ouraddrfor() returns an error then the 'us'
+ parameter may not get initialized. Thus when the code tries to save the
+ 'us' parameter to the local address we could try to copy a ridiculous
+ sized memory buffer and segfault.
+
+ * Made pass an initialized 'us' parameter to ast_ouraddrfor().
+
+ * Optimized out the 'us' struct variable.
+
+ ASTERISK-26672 #close
+
+ Change-Id: I4acea5dcdf0813da2c7d3e11c2d6067d160d17dc
+
+2016-12-21 17:55 +0000 [bcdd282ada] Richard Mudgett <rmudgett@digium.com>
+
+ * res_rtp_asterisk.c: Initialize ourip passed to ast_find_ourip().
+
+ We access uninitialized memory when the 'ourip' parameter does not
+ have an initial guess to our IP address.
+
+ ASTERISK-26672
+
+ Change-Id: I35507ea1ad7455d2be188f6ccdd4add7bd150e15
+
+2016-12-21 16:25 +0000 [ac31233dbe] Richard Mudgett <rmudgett@digium.com>
+
+ * acl.c: Improve ast_ouraddrfor() diagnostic messages.
+
+ * Made not generate strings unless they will actually be used.
+
+ ASTERISK-26672
+
+ Change-Id: I155fbe7fdff5ce47dfe5326f3baf5446849702c3
+
+2016-12-21 17:54 +0000 [0aa5db4b38] Richard Mudgett <rmudgett@digium.com>
+
+ * chan_rtp.c: Fix uninitialized memory crash.
+
+ unicast_rtp_request() could pass an uninitialized 'us' parameter to
+ ast_ouraddrfor(). If ast_ouraddrfor() returns an error then the 'us'
+ parameter may not get initialized. Thus when the code tries to save the
+ 'us' parameter to the local address we could try to copy a ridiculous
+ sized memory buffer and segfault.
+
+ * Made pass an initialized 'us' parameter to ast_ouraddrfor() and abort
+ the UnicastRTP channel request if it fails.
+
+ ASTERISK-26672
+
+ Change-Id: I1ef7a7c09f4da4f15dcb6de660d2bcac5f2a95c0
+
+2016-12-07 15:23 +0000 [e2fa3c7eda] Richard Mudgett <rmudgett@digium.com>
+
+ * res_rtp_asterisk.c: Fix off nominal memory leak.
+
+ Change-Id: I95b1088d11244a2edae6607c12fbf33b38658a75
+
+2016-12-09 12:23 +0000 [d13be4eff6] Martin Tomec <tomec@ipex.cz>
+
+ * app_queue: Ensure member is removed from pending when hanging up.
+
+ In some cases member is added to pending_members, and the channel
+ is hung up before any extension state change. So the member would
+ stay in pending_members forever. So when we call do_hang, we
+ should also remove member from pending.
+
+ ASTERISK-26621 #close
+
+ Change-Id: Iae476b5c06481db18ebe0fa594b3e80fdc9a7d54
+
+2016-12-18 15:23 +0000 [815f755155] gtjoseph <gjoseph@digium.com>
+
+ * pjproject_bundled: Make build single threaded
+
+ There were just too many issues in various environments with
+ multi threaded building of pjproject. It doesn't really speed
+ things up anyway since asterisk is already being compiled in
+ parallel.
+
+ Change-Id: Ie5648fb91bb89b4224b6bf43a0daa1af793c4ce1
+
+2016-12-08 20:00 +0000 [493849dcd7] Corey Farrell <git@cfware.com>
+
+ * chan_sip: Reorder unload_module to deal with stuck TCP threads.
+
+ In some situations TCP threads may become frozen. This creates the
+ possibility that Asterisk could segfault if they become unfrozen after
+ chan_sip has been dlclose'd. This reorders the unload_module process to
+ allow abort if threads do not exit within 5 seconds.
+
+ High level order as follows:
+ 1) Unregister from the core to stop new requests.
+ 2) Signal threads to stop
+ 3) Clear config based tables (but do not free the table itself).
+ 4) Verify that threads have shutdown, cancel unload if not.
+ 5) Clean all remaining resources.
+
+ ASTERISK-26586
+
+ Change-Id: Ie23692041d838fbd35ece61868f4c640960ff882
+
+2016-12-16 01:32 +0000 [ab447f8a6a] David M. Lee <dlee@respoke.io>
+
+ * configure: fix with-pjproject-bundled
+
+ The AC_ARG_WITH macro's shell variable is withval; not enableval. Purely
+ coincidentally, the option would work when --enable-dev-mode is given.
+
+ Also fixed a portability problem with bootstrap.sh, since -printf is not
+ a portable option for find.
+
+ Change-Id: I0f0e5b1a934b5af5737713834361e9c95b96b376
+
+2016-12-15 13:25 +0000 [35736d419a] Richard Mudgett <rmudgett@digium.com>
+
+ * autosupport: Add 'pjproject show buildopts'
+
+ Change-Id: I8aa55a7c3fb175235ddc7f85e9457d5102d06fa7
+
+2016-12-14 14:21 +0000 [4b285d226d] Richard Mudgett <rmudgett@digium.com>
+
+ * chan_dahdi.c: Fix bounds check regression.
+
+ Caused by ASTERISK-25494
+
+ Change-Id: I1fc408c1a083745ff59da5c4113041bbfce54bcb
+
+2016-12-13 14:34 +0000 [9114574188] Richard Mudgett <rmudgett@digium.com>
+
+ * res_pjsip: Add/update ERROR msg if invalid URI.
+
+ ASTERISK-24499
+
+ Change-Id: Ie305153e47e922233b2ff24715e0e326e5fa3a6c
+
+2016-12-12 18:38 +0000 [75a6afbec5] Richard Mudgett <rmudgett@digium.com>
+
+ * MESSAGE: Flush Message/ast_msg_queue channel alert pipe.
+
+ ASTERISK-25083
+
+ Change-Id: Id54baa57a8dbca84e29f28bcd2ffc0a5ac12d8b2
+
+2016-12-13 14:06 +0000 [91485734a4] gtjoseph <gjoseph@digium.com>
+
+ * res_sorcery_memory_cache: Change an error to a debug message
+
+ When a sorcery user calls ast_sorcery_delete on an object that
+ may have already expired from the cache, res_sorcery_memory_cache
+ spits out an ERROR. Since this can happen frequently and validly when
+ an inbound registration expires after the cache entry expired, the
+ errors are unnecessary and misleading. Changed to a debug/1.
+
+ Change-Id: Idf3a67038c16e3da814cf612ff4d6d18ad29ecd7
+
+2016-12-09 08:14 +0000 [cd46e86491] gtjoseph <gjoseph@digium.com>
+
+ * pjproject_bundled: Retry download if previously saved tarball is bad
+
+ If a tarball is corrupted during download, the makefile will attempt to
+ download it again. If the tarball somehow gets corrupted after it's
+ downloaded however, the makefile was just failing. We now
+ retry the download.
+
+ ASTERISK-26653 #close
+
+ Change-Id: I1b24d454852d80186f60c5a65dc4624ea8a1c359
+
+2016-12-08 12:54 +0000 [22820e10fe] Badalyan Vyacheslav <v.badalyan@open-bs.ru>
+
+ * chan_sip: Delete unneeded check
+
+ P is always true. We check it before
+
+ Change-Id: Iee61cda002a9f61aee26b9f66c5f9b59e3389efb
+
+2016-12-08 12:58 +0000 [6aa2c5e5f9] Badalyan Vyacheslav <v.badalyan@open-bs.ru>
+
+ * Small code cleanup in chan_sip
+
+ The conditional expressions of the 'if' operators situated
+ alongside each other are identical.
+
+ Change-Id: I2cf7c317b106ec14440c7f1b5dcfbf03639f748a
+
+2016-12-08 12:43 +0000 [b596fac838] Badalyan Vyacheslav <v.badalyan@open-bs.ru>
+
+ * Fix typo in chan_sip
+
+ The conditional expressions of the 'if' operators
+ situated alongside each other are identical.
+
+ Change-Id: I652b6dcddb3be007e669a6aa8107edb31a1ddafb
+
+2016-12-08 12:30 +0000 [483ed9f1aa] Badalyan Vyacheslav <v.badalyan@open-bs.ru>
+
+ * res_pjsip: Fix 'A = B != C' kind.
+
+ Consider reviewing the expression of the 'A = B != C' kind.
+ The expression is calculated as following: 'A = (B != C)'
+
+ Change-Id: Ibaa637dfda47d51a20e26069d3103e05ce80003d
+
+2016-11-30 09:31 +0000 [41c6319c4e] Walter Doekes <walter+asterisk@wjd.nu>
+
+ * chan_sip: Do not allow non-SP/HTAB between header key and colon.
+
+ RFC says SIP headers look like:
+
+ HCOLON = *( SP / HTAB ) ":" SWS
+ SWS = [LWS] ; sep whitespace
+ LWS = [*WSP CRLF] 1*WSP ; linear whitespace
+ WSP = SP / HTAB ; from rfc2234
+
+ chan_sip implemented this:
+
+ HCOLON = *( LOWCTL / SP ) ":" SWS
+ LOWCTL = %x00-1F ; CTL without DEL
+
+ This discrepancy meant that SIP proxies in front of Asterisk with
+ chan_sip could pass on unknown headers with \x00-\x1F in them, which
+ would be treated by Asterisk as a different (known) header. For
+ example, the "To\x01:" header would gladly be forwarded by some proxies
+ as irrelevant, but chan_sip would treat it as the relevant "To:" header.
+
+ Those relying on a SIP proxy to scrub certain headers could mistakenly
+ get unexpected and unvalidated data fed to Asterisk.
+
+ This change fixes so chan_sip only considers SP/HTAB as valid tokens
+ before the colon, making it agree on the headers with other speakers of
+ SIP.
+
+ ASTERISK-26433 #close
+ AST-2016-009
+
+ Change-Id: I78086fbc524ac733b8f7f78cb423c91075fd489b
+
+2016-11-14 18:18 +0000 [888142e891] Joshua Colp <jcolp@digium.com>
+
+ * res_format_attr_opus: Fix crash when fmtp contains spaces.
+
+ When an opus offer or answer was received that contained an
+ fmtp line with spaces between the attributes the module would
+ fail to properly parse it and crash due to recursion.
+
+ This change makes the module handle the space properly and
+ also removes the recursion requirement.
+
+ ASTERISK-26579
+
+ Change-Id: I01f53e5d9fa9f1925a7365f8d25071b5b3ac2dc3
+
+2016-12-06 14:54 +0000 [ebc67d3053] gtjoseph <gjoseph@digium.com>
+
+ * res_pjsip_registrar: AMI Add RegistrationInboundContactStatuses command
+
+ The PJSIPShowRegistrationsInbound AMI command was just dumping out
+ all AORs which was pretty useless and resource heavy since it had
+ to get all endpoints, then all aors for each endpoint, then all
+ contacts for each aor.
+
+ PJSIPShowRegistrationInboundContactStatuses sends ContactStatusDetail
+ events which meets the intended purpose of the other command and has
+ significantly less overhead. Also, some additional fields that were
+ added to Contact since the original creation of the ContactStatusDetail
+ event have been added to the end of the event.
+
+ For compatibility purposes, PJSIPShowRegistrationsInbound is left
+ intact.
+
+ ASTERISK-26644 #close
+
+ Change-Id: I326f12c9ecb52bf37ba03f0748749de4da01490a
+
+2016-12-06 16:45 +0000 [d506874477] Richard Mudgett <rmudgett@digium.com>
+
+ * Bundled pjproject: Fix finding SIP transactions.
+
+ Occasionally SIP message transactions are not found when they should be.
+ In the particular case an incoming INVITE transaction is CANCELed but the
+ INVITE transaction cannot be found so a 481 response is returned for the
+ CANCEL. The problematic calls have a '_' character in the Via branch
+ parameter.
+
+ The problem is in the pjproject PJ_HASH_USE_OWN_TOLOWER feature's code.
+ The problem with the "own tolower" code is that it does not calculate the
+ same hash value as when the pj_tolower() function is used. The "own
+ tolower" code will erroneously modify the ASCII characters '@', '[', '\\',
+ ']', '^', and '_'. Calls to pj_hash_calc_tolower() can use the
+ PJ_HASH_USE_OWN_TOLOWER substitute algorithm when enabled. Calls to
+ pj_hash_get_lower(), pj_hash_set_lower(), and pj_hash_set_np_lower() call
+ find_entry() which never uses the PJ_HASH_USE_OWN_TOLOWER algorithm. As a
+ result you may not be able to find a hash tabled entry because the
+ calculated hash values would differ.
+
+ * Simply disable PJ_HASH_USE_OWN_TOLOWER.
+
+ ASTERISK-26490 #close
+
+ Change-Id: If89bfdb5f301b8b685881a9a2a6e0c3c5af32253
+
+2016-12-06 12:06 +0000 [4b233675d8] gtjoseph <gjoseph@digium.com>
+
+ * pjproject_bundled: Fix missing inclusion of symbols
+
+ Added back in a -g3, and an -O3 when DONT_OPTIMIZE is not set, to
+ the CFLAGS. Not sure how they went missing.
+
+ Also fixed an uninstall problem where we weren't removing the
+ symlink from libasteriskpj.so.2 to libasteriskpj.so. While I was
+ there, I fixed it for libasteriskssl as well.
+
+ Change-Id: I9e00873b1e9082d05b5549d974534b48a2142556
+
+2016-12-02 12:04 +0000 [580f83dac7] Richard Mudgett <rmudgett@digium.com>
+
+ * Remove files that got merged in error somehow to the 13 branch.
+
+ Change-Id: Id79e2226c31084f9252d5aede9050d3cf13322c8
+
+2016-11-30 18:25 +0000 [61ba2a014a] Richard Mudgett <rmudgett@digium.com>
+
+ * res_pjsip_outbound_registration.c: Filter redundant statsd reporting.
+
+ Increasing the testsuite shutdown timeout before forcibly killing
+ Asterisk allowed more events to be sent out. Some tests failed as
+ a result. The tests/channels/pjsip/statsd/registrations failed
+ because we now get the statsd events that a comment in the test
+ configuration stated couldn't be intercepted. Unfortunately, we
+ get a variable number of events because of internal status state
+ transition races generating redundant statsd events.
+
+ We were reporting redundant statsd PJSIP.registrations.state changes
+ for internal state changes that equated to the same thing publicly.
+
+ * Made update_client_state_status() filter out redundant statsd
+ updates.
+
+ ASTERISK-26527
+
+ Change-Id: If851c7d514bb530d9226e4941ba97dcf52000646
+
+2016-11-22 11:20 +0000 [2ceb609edb] Guido Falsi <mad@madpilot.net>
+
+ * res_rtp: Fix regression when IPv6 is not available.
+
+ The latest Release candidate fails to create RTP streams when IPv6
+ is not available. Due to the changes made in September the ast_sockaddr
+ structure passed around to create these streams is always of AF_INET6
+ type, causing failure when used for IPv4. This patch adds a utility
+ function to check for availability of IPv6 and applies such check
+ at startup to determine how to create the ast_sockaddr structures.
+
+ ASTERISK-26617 #close
+
+ Change-Id: I627a4e91795e821111e1cda523f083a40d0e0c3e
+
+2016-11-28 19:43 +0000 [53459cdaa9] Eduardo S. Libardi <eslibardi@gmail.com>
+
+ * res_calendar_caldav: Add support reading gmail calendar
+
+ The response from gmail calendar includes the string name
+ "caldav:calendar-data". res_calendar_caldav implements
+ the example included in RFC 4791: string "C:calendar-data".
+ When reading the calendar, res_calendar_caldav compare the
+ string and if does not match just discards the event.
+ This commit compares the response to both strings,
+ successfully loading gmail calendar events.
+ Writing to gmail calendar is working prior to this fix.
+
+ ASTERISK-26624
+ Reported by: Eduardo S. Libardi
+
+ Change-Id: Ia1eef10552ae616efb645d390f5ffe81260d7d4a
+
+2016-11-23 18:27 +0000 [44fe4a5769] Richard Mudgett <rmudgett@digium.com>
+
+ * PJPROJECT logging: Made easier to get available logging levels.
+
+ Use of the new logging is as simple as issuing the new CLI command or
+ setting the new pjproject.conf option.
+
+ Other options that can affect the logging are how you have the pjproject
+ log levels mapped to Asterisk log types in pjproject.conf and if you have
+ configured Asterisk to log the DEBUG type messages. Altering the
+ pjproject.conf level mapping shouldn't be necessary for most installations
+ as the default mapping is sensible. Configuring Asterisk to log the DEBUG
+ message type is standard practice for collecting debug information.
+
+ * Added CLI "pjproject set log level" command to dynamically adjust the
+ maximum pjproject log message level.
+
+ * Added CLI "pjproject show log level" command to see the currently set
+ maximum pjproject log message level.
+
+ * Added pjproject.conf startup section "log_level" option to set the
+ initial maximum pjproject log message level so all messages could be
+ captured from initialization.
+
+ * Set PJ_LOG_MAX_LEVEL to 6 to compile in all defined logging levels into
+ bundled pjproject. Pjproject will use the currently set run time log
+ level to determine if a log message is generated just like Asterisk
+ verbose and debug logging levels.
+
+ * In log_forwarder(), made always log enabled and mapped pjproject log
+ messages. DEBUG mapped log messages are no longer gated by the current
+ Asterisk debug logging level.
+
+ * Removed RAII_VAR() from res_pjproject.c:get_log_level().
+
+ ASTERISK-26630 #close
+
+ Change-Id: I6dca12979f482ffb0450aaf58db0fe0f6d2e5389
+
+2016-11-30 10:48 +0000 [17b0b91afa] Mark Michelson <mmichelson@digium.com>
+
+ * Frame deferral: Re-queue deferred frames one-at-a-time.
+
+ The recent change that made frame deferral into an API had a behavior
+ change to it. When frame deferral was completed, we would take all of
+ the deferred frames and queue them all onto the channel in one call to
+ ast_queue_frame_head(). Before frame deferral was API-ized, places that
+ performed manual frame deferral would actually take each deferred frame
+ and queue them onto the channel.
+
+ This change in behavior caused the confbridge_recording test to start
+ failing consistently. Without going too crazily deep into the details,
+ a channel was getting "stuck" in an ast_safe_sleep(). An AMI redirect
+ was attempting to break it out of the sleep, but because there were more
+ frames in the channel read queue than expected, the channel ended up
+ being unable to break from its sleep loop.
+
+ By restoring the behavior of individual frame queuing after deferral,
+ the test starts passing again.
+
+ Note, this points to a potential underlying issue pointing to an
+ "unbalance" that can occur when queuing multiple frames at once,
+ and so a follow-up issue is being created to investigate that
+ possibility.
+
+ Change-Id: Ied5dacacda06d343dea751ed5814a03364fe5a7d
+
+2016-06-28 16:26 +0000 [b0c9f07f04] Tzafrir Cohen <tzafrir.cohen@xorcom.com>
+
+ * OpenSSL 1.1.0 support
+
+ OpenSSL 1.1.0 includes some major changes in the interface. See
+ https://wiki.openssl.org/index.php/1.1_API_Changes .
+
+ Status: Right now there are still a few deprecation notes with OpenSSL
+ 1.1.0. But it's a start.
+
+ Changes:
+ * CRYPTO_LOCK is no longer available. Replace it with its value for now.
+ I don't completely understand what it is used for there.
+ * Remove several functions from libasteriskssl that seem to no longer be
+ needed.
+ * Structures have become opaque and are accesses with accessors.
+ * ERR_remove_thread_state() no longer needed.
+ * SSLv2 code now could no longer be used in 1.1.
+
+ ASTERISK-26109 #close
+
+ Change-Id: I5e29d477d486ca29b6aae0dc2f5dff960c1cb82b
+
+2016-11-28 15:12 +0000 [a33ed3327a] Matt Jordan <mjordan@digium.com>
+
+ * res/res_pjsip: Fix documentation whitespace issues
+
+ Tabs > Spaces.
+
+ Change-Id: If1e43a71822615a898e958e0f8b2e882606f0bd0
+
+2016-11-22 10:27 +0000 [09c36a6535] Matt Jordan <mjordan@digium.com>
+
+ * res_pjsip/chan_sip: Advertise 'ws' in the SIP URI transport parameter
+
+ Per RFC 7118 5.2, the SIP URI 'transport' parameter should advertise
+ 'ws' when WebSockets are to be used as the transport. This applies to
+ both secure and insecure WebSockets.
+
+ There were two bugs in Asterisk with respect to this:
+
+ (1) The most egregious occurs in res_pjsip. There, we advertise 'ws' for
+ insecure websockets and 'wss' for secure websockets. While this
+ would seem to make sense - since 'WS' and 'WSS' are used for the Via
+ Transport parameter - this is not the case for the SIP URI. This
+ patch corrects that by registering the secure websockets with
+ pjproject using the shorthand 'WS', and by returning 'ws' when asked
+ for the transport parameter. Note that in pjproject, it is perfectly
+ valid to have multiple transports use the same shorthand.
+
+ (2) In chan_sip, we return an upper-case version of the transport 'WS'
+ instead of 'ws'. Since we should be strict in what we send and
+ liberal in what we accept (within reason), this patch lower-cases
+ the transport before appending it to the parameter.
+
+ ASTERISK-24330 #close
+ Reported by: cervajs, Inaki Baz Castillo
+
+ Change-Id: Iff77b645f8cc3b7cd35168a6676c26b147f22f42
+
+2016-11-28 11:03 +0000 [29e887e9e1] gtjoseph <gjoseph@digium.com>
+
+ * build_tools: Fix download_externals to handle certified branches
+
+ download_externals wasn't handling the "certified/13.x" version
+ correctly.
+
+ Change-Id: I124d195bb117ca36fd7bf1150c630f3b474a9d9a
+
+2016-11-02 05:05 +0000 [bfb8c962c4] Tzafrir Cohen <tzafrir.cohen@xorcom.com>
+
+ * autoconf: more variants for OSARCH linux-gnu
+
+ There are quite a few odd GNU/Linux platforms. Just call all of them
+ linux-gnu.
+
+ Specifically this fixes building the Debian platforms mips64el and x32.
+ And maybe also others.
+
+ ASTERISK-26546 #close
+
+ Change-Id: I06ec4bd7f0ee1c84b6b24d81538223b07c4174b1
+
+2016-11-17 08:25 +0000 [a1fa909033] Timo Teräs <timo.teras@iki.fi>
+
+ * codec_dahdi: Fix poll.h include.
+
+ POSIX defines poll.h. sys/poll.h should not be used as it is c-library
+ internal header which may or may not exist. Notably in musl including
+ sys/poll.h generates warning of being incorrect.
+
+ Change-Id: Ib318c1c7142a737bcf3caa4d8d72560bebe39252
+
+2016-11-26 10:57 +0000 [0cc8351484] Michael Kuron <m.kuron@gmx.de>
+
+ * chan_sip: Fix segfault during module unload
+
+ If a TCP/TLS connection was pending (not accepted and not timed out) during
+ unload of chan_sip, Asterisk would segfault when trying to send a signal to
+ a thread whose thread ID hadn't been recorded yet. This commit fixes that by
+ recording the thread ID before calling the blocking connect() syscall.
+ This was a regression introduced by 776a14386a55b5425c7e9617eff8af8b45427144.
+
+ The above wasn't enough to fix the segfault, which was now delayed to the
+ point where connect() timed out. Therefore, it was necessary to also remove
+ the SA_RESTART flag from the SIGURG sigaction so that pthread_kill() could be
+ used to interruput the connect() syscall.
+ This was a regression introduced by 5d313f51b982a18f7321adcf7c7a4e822d8b2714.
+
+ ASTERISK-26586 #close
+
+ Change-Id: I76fd9d47d56e4264e2629bce8ec15fecba673e7b
+
+2016-11-11 08:16 +0000 [8756ce64b7] gestoip2 <gestoip2@ull.edu.es>
+
+ * res_rtp_asterisk: RTT miscalculation in RTCP
+
+ When retrieving RTCP stats for PJSIP channels, RTT values are unreliable.
+ RTT calculation is correct, but the data representation isn't. RTT is
+ represented by a 32-bit fixed-point number with the integer part in the
+ first 16 bits and the fractional part in the last 16 bits. In order to
+ get the RTT value, the fractional part is miscalculated, there is an
+ unnecessary 16 bit shift that causes overflow. Besides this there is
+ another mistake, when transforming the integer value to the fixed point
+ fractional part via bitwise operation, that loses precision.
+
+ * RTT fractional part is no longer shifted, avoiding overflow.
+
+ * RTT fractional part is transformed to its fixed-point value more
+ precisely.
+
+ * Fixed timeval2ntp() and ntp2timeval() second fraction conversions.
+
+ * Fixed NTP timestamp report logging. The usec was inexplicably
+ multiplied by 4096.
+
+ ASTERISK-26566 #close
+ Reported by Hector Royo Concepcion
+
+ Change-Id: Ie09bdabfee75afb3f1b8ddfd963e5219ada3b96f
+
+2016-11-15 13:44 +0000 [8e77d6f520] Michael Kuron <m.kuron@gmx.de>
+
+ * tcptls: Use new certificate upon sip reload
+
+ Previously, a TLS server socket would only be restarted upon sip reload if the
+ bind address had changed. This commit adds checking for changes to TLS
+ parameters like certificate, ciphers, etc. so they get picked up without
+ requiring a reload of the entire chan_sip module. This does not affect open
+ connections in any way, but new connections will use the new TLS parameters.
+ The changes also apply to HTTP and Manager.
+
+ ASTERISK-26604 #close
+
+ Change-Id: I169e86cefc6dcd627c915134015a6a1ab1aadbe6
+2016-11-11 00:29 +0000 [86d824b7ff] Timo Teräs <timo.teras@iki.fi>
+
+ * addons/chan_mobile: do not use strerror_r
+
+ The two reasons why it might be used are that some systems do not
+ implement strerror in thread safe manner, and that strerror_r returns
+ the error code in the string in case there's no error message.
+
+ However, all of asterisk elsewhere uses strerror() and assumes it
+ to be thread safe. And in chan_mobile the errno is also explicitly
+ printed so neither of the above reasons are valid.
+
+ The reasoning to remove usage is that there are actually two versions
+ of strerror_r: XSI and GNU. They are incompatible in their return
+ value, and there's no easy way to figure out which one is being
+ used. glibc gives you the GNU version if _GNU_SOURCE is defined,
+ but the same feature test macro is needed for other symbols. On
+ all other systems you assumedly get XSI symbol, and compilation warnings
+ as well as non-working error printing.
+
+ Thus the easiest solution is to just remove strerror_r and use
+ strerror as rest of the code. Alternative is to introduce ast_strerror
+ in separate translation unit so it can request the XSI symbol in
+ glibc case, and replace all usage of strerror.
+
+ Change-Id: I84d35225b5642d85d48bc35fdf399afbae28a91d
+
+2016-11-21 09:40 +0000 [425da14927] gtjoseph <gjoseph@digium.com>
+
+ * build: Backport addition of librt check to configure.ac
+
+ A while back, a master-only change was made to check for librt which
+ should probably have been cherry-picked to 13 at that time. Sometime
+ between then and now, part of that change did make it into 13 but it
+ was incomplete and non-functional. This patch backports the rest
+ of the librt check and allows the link of libasteriskpj to use the
+ results.
+
+ Change-Id: I1424008fd8c90f389dda53162ec4a340b253a3c1
+
+2016-11-16 12:05 +0000 [2a40c3a867] gtjoseph <gjoseph@digium.com>
+
+ * pjproject_bundled: Improve reliability of pjproject download
+
+ The download process now has a timeout which will cause wget to retry
+ if it stops retrieving data for 5 seconds and fetch and curl to timeout
+ if the whole retrieval take smore than 30 seconds.
+
+ If the tarball retrieval works, the MD5SUM file is retrieved from
+ the downloads site and the md5 checksum is verified.
+
+ If either the tarball retrieval or MD5SUM retrieval fails, or the
+ checksums don't match, the entire process is retried once. If it
+ fails again, any incomplete tarball is deleted.
+
+ .DELETE_ON_ERROR: was also added to the Makefile. Not only does
+ this delete the tarball on failure, it till also delete corrupted
+ library files from the pjproject source directory should they
+ fail to build correctly.
+
+ Tested all the way back to FreeBSD 9, CentOS 6, Debian 6 and
+ Ubuntu 14.
+
+ Change-Id: Iea7d33b96a31622ab1b6e54baebaf271959514e1
+
+2016-11-11 07:13 +0000 [12c4e664bc] Mikheili Dautashvili <mishadaut@gmail.com>
+
+ * main/app.c: Transmit Silence on ControlPlayback pause
+
+ ASTERISK-26562 #close
+
+ Change-Id: Ie6cb0ffc2b8c775639ce7784fe96f4ea00cfa2f8
+
+2016-11-15 15:01 +0000 [cf6d13180e] Alexei Gradinari <alex2grad@gmail.com>
+
+ * chan_pjsip: fix switching sending codec when asymmetric_rtp_codec=no
+
+ The sending codec is switched to the receiving codec and then
+ is switched back to the best native codec on EVERY receiving RTP packets.
+ This is because after call of ast_channel_set_rawwriteformat there is call
+ of ast_set_write_format which calls set_format which sets rawwriteformat
+ to the best native format.
+
+ This patch adds a new function ast_set_write_format_path which set
+ specific write path on channel and uses this function to switch
+ the sending codec.
+
+ ASTERISK-26603 #close
+
+ Change-Id: I5b7d098f8b254ce8f45546e6c36e5d324737f71d
+
+2016-11-10 13:34 +0000 [ee73af1d88] gtjoseph <gjoseph@digium.com>
+
+ * Update for 13.12.2
+
+2016-11-04 10:57 +0000 [a3614d75f6] Kevin Harwell <kharwell@digium.com>
+
+ * Revert "chan_sip: Fix lastrtprx always updated"
+
+ This reverts commit 93332cb1d0eea18021ea6538237297e627d6e2fc.
+
+ Unfortunately, the aforementioned commit caused a regression (incoming calls
+ would eventually disconnect). Thus it is being removed.
+
+ ASTERISK-26523 #close
+ ASTERISK-25270
+
+ Change-Id: Ibf5586adc303073a8eac667a4cbfdb6be184a64d
+
+2016-10-27 13:48 +0000 [7d7b52c434] Mark Michelson <mmichelson@digium.com>
+
+ * Update for 13.12.1
+
+2016-10-26 07:51 +0000 [9c761b8f45] Joshua Colp <jcolp@digium.com>
+
+ * app_voicemail: Clear voice mailbox in MailboxExists and MAILBOX_EXISTS.
+
+ When executing the MailboxExists dialplan application and
+ MAILBOX_EXISTS dialplan function the passed in temporary voice
+ mailbox was not cleared, causing it to try to free garbage.
+
+ ASTERISK-26503 #close
+
+ Change-Id: Ie21ccfa1b80b9c59318e596f6b8e17da2b5a7cb3
+
+2016-10-25 14:13 +0000 [226a7e36c5] Mark Michelson <mmichelson@digium.com>
+
+ * Update for 13.12.0
+
+2016-10-17 14:08 +0000 [df75b647da] Mark Michelson <mmichelson@digium.com>
+
+ * Update for 13.12.0-rc1
+
+2016-11-18 18:59 +0000 Asterisk Development Team <asteriskteam@digium.com>
+
+ * asterisk 13.13.0-rc1 Released.
+
+2016-11-18 09:45 +0000 [cb624b10ae] Mark Michelson <mmichelson@digium.com>
+
+ * Bump ARI version to 1.10.0
+
+ The video-related bridge changes mean that the version needs to be
+ bumped.
+
+ Change-Id: I41c4495068562bef03aa76728f188b8ac4bd393d
+
+2016-11-17 10:50 +0000 [bde3d022a3] Mark Michelson <mmichelson@digium.com>
+
+ * manager: update minor version
+
+ Based on bridge video AMI event changes, bump the minor version of AMI.
+
+ Change-Id: I02586bd6cafc0baa33ea98c2f75356c0f5e03435
+
+2016-11-16 20:24 +0000 [b213045fe4] gtjoseph <gjoseph@digium.com>
+
+ * build: Various OpenBSD issues
+
+ OpenBSD's 'find' doesn't take the -delete argument so you have to pipe
+ through 'xargs rm -rf'.
+
+ 'echo -e' doesn't like \t starting a line. It just prints 't' which
+ causes the libasteriskpj.exports file to be garbage. They were just
+ cosmetic so they were removed.
+
+ librt doesn't exist so the link of libasteriskpj.so fails. It's not
+ actually needed for linux anyway so -lrt was removed from the link.
+
+ res_rtp_asterisk was failing to load because of an undefined
+ DTLS_method. '|| defined(LIBRESSL_VERSION_NUMBER)' was added to the #if
+ so DTLSv1_method is used instead.
+
+ ASTERISK-26608
+
+ Change-Id: I926ec95b0b69633231e3ad1d6e803b977272c49c
+
+2016-11-14 18:45 +0000 [404596b790] gtjoseph <gjoseph@digium.com>
+
+ * channel: Fix issues in hangup scenarios caused by frame deferral
+
+ ASTERISK-26343
+
+ Change-Id: I06dbf7366e26028251964143454a77d017bb61c8
+
+2016-11-16 15:42 +0000 [2c031b67d3] Mark Michelson <mmichelson@digium.com>
+
+ * res_format_attr_opus: Fix fmtp generation.
+
+ res_format_attr_opus assumed that the string being passed into it was
+ empty. It tried to determine if the only thing it had written was
+
+ a=fmtp:<num>
+
+ And if it had, it would reset the string. Its calculation was off when
+ working with chan_sip, though. chan_sip passes the entire built SDP
+ rather than an empty string. This resulted in always putting an empty
+ fmtp line in the SDP.
+
+ ASTERISK-26520 #close
+ Reported by scgm11
+
+ Change-Id: Ib2e8712d26a47067e5f36d5973577added01dbb5
+
+2016-11-15 16:23 +0000 [ed0f1afc8c] Richard Mudgett <rmudgett@digium.com>
+
+ * codec_opus: Fix warning when Opus negotiated but codec_opus not loaded.
+
+ When Opus is negotiated but not loaded, the log is spammed with messages
+ because the system does not know how to calculate the number of samples in
+ a frame.
+
+ * Suppress the warning by supplying a function that assumes 20ms of
+ samples in the frame. For pass through support it doesn't really seem to
+ matter what number of samples is returned anyway.
+
+ ASTERISK-26605 #close
+
+ Change-Id: Icf2273692f040dc2c45b01e72a790d11092f9e0f
+
+2016-11-14 14:36 +0000 [e632222bc4] Richard Mudgett <rmudgett@digium.com>
+
+ * res_pjsip_outbound_authenticator_digest.c: Fix memory pool leak.
+
+ Responding to authentication challenges leaks PJSIP memory pools.
+
+ The leak was introduced with a pjproject 2.5.5 API change.
+ https://trac.pjsip.org/repos/ticket/1929 changed the API usage of
+ pjsip_auth_clt_init() to require the new API pjsip_auth_clt_deinit() to
+ clean up cached authentication allocations that get allocated with
+ pjsip_auth_clt_reinit_req().
+
+ ASTERISK-26516 #close
+
+ Change-Id: I4473141b8c3961d0dc91c382beb3876b3efb45c8
+
+2016-11-15 12:01 +0000 [c92dcc76da] gtjoseph <gjoseph@digium.com>
+
+ * file.c/__ast_file_read_dirs: Fix issues on filesystems without d_type
+
+ One of the code paths in __ast_file_read_dirs will only get executed if
+ the OS doesn't support dirent->d_type OR if the filesystem the
+ particular file is on doesn't support it. So, while standard Linux
+ systems support the field, some filesystems like XFS do not. In this
+ case, we need to call stat() to determine whether the directory entry
+ is a file or directory so we append the filename to the supplied
+ directory path and call stat. We forgot to truncate path back to just
+ the directory afterwards though so we were passing a complete file name
+ to the callback in the dir_name parameter instead of just the directory
+ name.
+
+ The logic has been re-written to only create a full_path if we need to
+ call stat() or if we need to descend into another directory.
+
+ Change-Id: I54e4228bd8355fad65200c6df3ec4c9c8a98dfba
+
+2015-05-14 17:12 +0000 [7b96e8cc3d] Maciej Szmigiero <mail@maciej.szmigiero.name>
+
+ * Add X.509 subject alternative name support to TLS certificate
+ verification.
+
+ This way one X.509 certificate can be used for hosts that
+ can be reached under multiple DNS names or for multiple hosts.
+
+ Signed-off-by: Maciej Szmigiero <mail@maciej.szmigiero.name>
+
+ ASTERISK-25063 #close
+
+ Change-Id: I13302c80490a0b44c43f1b45376c9bd7b15a538f
+
+2016-11-14 15:57 +0000 [0790aa528a] Matt Jordan <mjordan@digium.com>
+
+ * pjproject: Use a much higher limit for PJ_ICE_MAX_CHECKS
+
+ The PJ_ICE_MAX_CHECKS constant is used by pjproject to determine how
+ many pairs of local/remote candidates will be made. If for some reason
+ we reach this upper bound, ICE will generally fail and no media will
+ flow between the browser and Asterisk.
+
+ This patch makes PJ_ICE_MAX_CHECKS set to the total possible number of
+ pairs of candidates we'd theoretically allow, which is
+ PJ_ICE_MAX_CAND^2. Prior to this patch, we simply multiplied
+ PJ_ICE_MAX_CAND by two; on systems with multiple interfaces (I blame
+ Docker), this is far too low to allow WebRTC calls to succeed.
+
+ Setting this to be PJ_ICE_MAX_CAND^2 allowed WebRTC calls to succeed
+ even when the system Asterisk was running on had quite a few virtual
+ interfaces.
+
+ Change-Id: Icd4f17de0ac9d3a83dddfc8bf1cb7616bc107d55
+
+2016-11-14 15:32 +0000 [993a6f96c7] Matt Jordan <mjordan@digium.com>
+
+ * apps/app_echo: Only relay a single video source change frame
+
+ In 9785e8d0, app_echo was updated to relay video source updates to the
+ channel for the purposes of displaying video in WebRTC tests.
+ Unfortunately, this can cause a Kafkaesque nightmare if two or more
+ Local channels are in a bridge together where their ends are in
+ app_echo. When this situation occurs, a video update sent into app_echo
+ will cause the video update to be relayed to the other Local channels,
+ causing another round of video updates, etc. In not much time at all,
+ the channel length queues will be overwhelmed, channel alert pipes will
+ fail, and all hell will break loose as Asterisk merrily continues to
+ throw more video update requests onto the channels.
+
+ This patch updates app_echo to *only* relay a single video update. Once
+ a video update has been made, all further video updates are dropped.
+ This meets the intended purpose of the original patch: if we get a video
+ update and we're in app_echo, go ahead and ask the sender to update
+ themselves. However, once we've got that video stream sync'd up, don't
+ keep spamming the world.
+
+ Change-Id: I9210780b08d4c17ddb38599d1c64453adfc34f74
+
+2016-11-08 10:11 +0000 [d23b4af477] Matt Jordan <mjordan@digium.com>
+
+ * res/ari/resource_bridges: Add the ability to manipulate the video source
+
+ In multi-party bridges, Asterisk currently supports two video modes:
+ * Follow the talker, in which the speaker with the most energy is shown
+ to all participants but the speaker, and the speaker sees the
+ previous video source
+ * Explicitly set video sources, in which all participants see a locked
+ video source
+
+ Prior to this patch, ARI had no ability to manipulate the video source.
+ This isn't important for two-party bridges, in which Asterisk merely
+ relays the video between the participants. However, in a multi-party
+ bridge, it can be advantageous to allow an external application to
+ manipulate the video source.
+
+ This patch provides two new routes to accomplish this:
+ (1) setVideoSource: POST /bridges/{bridgeId}/videoSource/{channelId}
+ Sets a video source to an explicit channel
+ (2) clearVideoSource: DELETE /bridges/{bridgeId}/videoSource
+ Removes any explicit video source, and sets the video mode to talk
+ detection
+
+ ASTERISK-26595 #close
+
+ Change-Id: I98e455d5bffc08ea5e8d6b84ccaf063c714e6621
+
+2016-11-14 14:22 +0000 [404a62eeee] gtjoseph <gjoseph@digium.com>
+
+ * Revert "Revert "channel: Use frame deferral API for safe sleep.""
+
+ This reverts commit 58c88cfbaa80cb43419cde9186d643d1c5d24baf.
+
+ Change-Id: I72692e2b2e83ef6da9390075ff20b138b2c374b6
+
+2016-11-14 14:22 +0000 [09d8febc91] gtjoseph <gjoseph@digium.com>
+
+ * Revert "Revert "autoservice: Use frame deferral API""
+
+ This reverts commit 1df434e2b4bd7cc34b9b4addf405a3caa7ac16b8.
+
+ Change-Id: Id2b8a8bccbb4bbdd82b792275d4cd6f32563e401
+
+2016-11-14 14:21 +0000 [ffad2b44df] gtjoseph <gjoseph@digium.com>
+
+ * Revert "Revert "AGI: Only defer frames when in an interception routine.""
+
+ This reverts commit 6be5d8de0da7e804544507f70382425af9a07b3f.
+
+ Change-Id: I4b548137f52ae0686d8f09e21496b778d1c6a797
+
+2016-11-14 14:21 +0000 [2fefb6187f] gtjoseph <gjoseph@digium.com>
+
+ * Revert "Revert "Add API for channel frame deferral.""
+
+ This reverts commit 6b5a7ced136b7178ae0b2ba39221eba1cd2e37c9.
+
+ Change-Id: I61d1dbb2e69e1977f684b7dfc8e98211024e1cd1
+
+2016-11-14 12:16 +0000 [5e0c224043] gtjoseph <gjoseph@digium.com>
+
+ * cli: Fix ast_el_read_char to work with libedit >= 3.1
+
+ Libedit 3.1 is not build with unicode on as a default and so the
+ prototype for the el_gets callback changed from expecting a char buffer
+ to accepting a wchar buffer. If ast_el_read_char isn't changed,
+ the cli reads garbage from teh terminal.
+
+ Added a configure test for (*el_rfunc_t)(EditLine *, wchar_t *) and
+ updated ast_el_read_char to use the HAVE_ define to detemrine whether
+ to use char or wchar.
+
+ ASTERISK-26592 #close
+
+ Change-Id: I9099b46f68e06d0202ff80e53022a2b68b08871a
+
+2016-11-11 02:41 +0000 [3faca1d4ff] Igor Goncharovskiy <igor.goncharovsky@gmail.com>
+
+ * Fix closing rtp ports after call finished in chan_unistim.
+
+ Fix ASTERISK-26565 by adding ast_rtp_instance_stop before
+ rtp instance destroy for chan_unistim. Also several fixes
+ for displayed text translation.
+
+ Change-Id: If42a03eea09bd1633471406bdc829cf98bf6affc
+
+2016-09-23 17:54 +0000 [412d43fa21] Richard Mudgett <rmudgett@digium.com>
+
+ * res_pjsip.c: Rework endpt_send_request() req_wrapper code.
+
+ * Don't hold the req_wrapper lock too long in endpt_send_request(). We
+ could block the PJSIP monitor thread if the timeout timer expires.
+ sip_get_tpselector_from_endpoint() does a sorcery access that could take
+ awhile accessing a database. pjsip_endpt_send_request() might take awhile
+ if selecting a transport.
+
+ * Shorten the time that the req_wrapper lock is held in the callback
+ functions.
+
+ * Simplify endpt_send_request() req_wrapper->timeout code.
+
+ * Removed some redundant req_wrapper->timeout_timer->id assignments.
+
+ Change-Id: I3195e3a8e0207bb8e7f49060ad2742cf21a6e4c9
+
+2016-09-21 15:10 +0000 [2e7fc56d3c] Richard Mudgett <rmudgett@digium.com>
+
+ * res_pjsip: Fix tdata leaks in off nominal paths.
+
+ Change-Id: Ie83e06e88c2d60157775263b07e40b61718ac97b
+
+2016-10-24 12:41 +0000 [da68b185b3] Richard Mudgett <rmudgett@digium.com>
+
+ * res_pjsip_registrar_expire.c: Remove extra linefeed in debug message.
+
+ Change-Id: I1f9adb911f23376503396ec8867e8005b755eb94
+
+2016-11-10 10:57 +0000 [b70eb07c53] Joshua Colp <jcolp@digium.com>
+
+ * res_pjsip_sdp_rtp: Reject offer of required SRTP without res_srtp.
+
+ When optimistic SRTP was on it was possible for us to still
+ set up a call without an audio stream if an offer was received
+ with required SRTP.
+
+ This change makes it so this scenario will now fail with a 488
+ response.
+
+ ASTERISK-26575
+
+ Change-Id: I7d14187037681f48879bd20319ac79d0877318f3
+
+2016-11-10 08:33 +0000 [71dc333565] Joshua Colp <jcolp@digium.com>
+
+ * app_queue: Add mention of 'ABANDON' variable to CHANGES.
+
+ ASTERISK-26558
+
+ Change-Id: I1127010181e79c8ac291f72f036cb8e430dc7f7e
+
+2016-11-10 07:41 +0000 [6b5a7ced13] gtjoseph <gjoseph@digium.com>
+
+ * Revert "Add API for channel frame deferral."
+
+ This reverts commit 9231a56cf3d6f5eca1bf2d37d827453400690773.
+ Multiple testsuite failures were detected after the fact.
+
+ Change-Id: I3bac8d7c3ddb69a4ddf6c5d6de0ffa5ff7ff3af7
+
+2016-11-10 07:41 +0000 [6be5d8de0d] gtjoseph <gjoseph@digium.com>
+
+ * Revert "AGI: Only defer frames when in an interception routine."
+
+ This reverts commit 5c10091f3d1430c6fc04015226f8c3e3aa9d8282.
+ Multiple testsuite failures were detected after the fact.
+
+ Change-Id: I397a841acc17ae230c512449cd6bed89d2ef3b73
+
+2016-11-10 07:41 +0000 [1df434e2b4] gtjoseph <gjoseph@digium.com>
+
+ * Revert "autoservice: Use frame deferral API"
+
+ This reverts commit 2e3a3545754749de21873bfdc6d1a40ec7d8893f.
+ Multiple testsuite failures were detected after the fact.
+
+ Change-Id: Ia45fa4633fae74dca345b24bb6722737c63035de
+
+2016-11-10 07:40 +0000 [58c88cfbaa] gtjoseph <gjoseph@digium.com>
+
+ * Revert "channel: Use frame deferral API for safe sleep."
+
+ This reverts commit 44f7e252397fd87420b3374df26941d7436401b3.
+ Multiple testsuite failures were detected after the fact.
+
+ Change-Id: I56299087da22128a95f0c8f3955f740890d7ca65
+
+2016-11-09 18:18 +0000 [a562fbe618] gtjoseph <gjoseph@digium.com>
+
+ * build: Fix default values for some SANITIZER options
+
+ 2 of the sanitizers didn't have default values so in systems that
+ don't support sanitizers menuselect would spit out warnings. They
+ were harmless but confusing. They've now been set to "0".
+
+ Change-Id: I08dc495e3b83f1feac3160b421f538c375fc5d58
+
+2016-11-06 06:04 +0000 [7fd5031c1c] Sebastian Gutierrez <sgutierrez@integraccs.com>
+
+ * app_queue: new variable set when abandoned
+
+ sets the variable ABANDONED to TRUE if the call was not answered.
+
+ ASTERISK-26558
+
+ Change-Id: I4729af9bff4eba436d8a776afd3374065d0036d3
+
+2016-11-08 10:48 +0000 [e043d1a55c] Mark Michelson <mmichelson@digium.com>
+
+ * res_pjsip_session: Do not call session supplements when it's too late.
+
+ res_pjsip_sesssion was hooking into transaction and invite state
+ changes. One of the reasons for doing so was due to the
+ PJSIP_EVENT_TX_MSG event. The idea was that we were hooking into the
+ message sending process, and so we should call session supplements to
+ alter the outgoing message.
+
+ In reality, this event was meant to indicate that the message either
+ a) had already been sent, or
+ b) required a DNS lookup and would be sent when the DNS query
+ completed.
+
+ In case (a), this meant we were altering an already-sent
+ request/response for no reason. In case (b), this potentially meant we
+ could be trying to alter a request/response at the same time that the
+ DNS resolution completed. In this case, it meant we might be stomping on
+ memory being used by the thread actually sending the message. This
+ caused potential crashes and memory corruption.
+
+ This patch removes the calls to session supplements from the case where
+ the PJSIP_EVENT_TX_MSG event occurs. In all of these cases, trying to
+ alter the message at this point is too late, and it can cause nothing
+ but harm to try to do it. Because there were no longer any calls to the
+ handle_outgoing() function, it has been removed.
+
+ Change-Id: Ibcc223fb1c3a237927f38754e0429e80ee301e92
+
+2016-11-03 16:46 +0000 [44f7e25239] Mark Michelson <mmichelson@digium.com>
+
+ * channel: Use frame deferral API for safe sleep.
+
+ This is another case where manual frame deferral can be replaced with
+ centralized routines instead.
+
+ Change-Id: I42cdf205f8f29a7977e599751a57efbaac07c30e
+
+2016-11-03 16:46 +0000 [2e3a354575] Mark Michelson <mmichelson@digium.com>
+
+ * autoservice: Use frame deferral API
+
+ Rather than use manual frame deferral, just let the channel API do it
+ for us.
+
+ ASTERISK-26343
+
+ Change-Id: I688386f36e765dbc07be863943a43f26bd5eac49
+
+2016-11-03 16:42 +0000 [5c10091f3d] Mark Michelson <mmichelson@digium.com>
+
+ * AGI: Only defer frames when in an interception routine.
+
+ AGI recently was modified to defer important frames. This was because
+ when AGI was used in a connected line interception routine, the
+ resulting connected line frame would end up getting discarded by the
+ AGI.
+
+ However, this caused bad behavior in other cases. Specifically, during a
+ transfer, if someone attempted to manually set the Caller ID on a
+ channel in an AGI, the deferred connected line frame would end up
+ overwriting what had been manually set in the AGI.
+
+ Since the initial issue was specific to interception routines, this
+ change removes the manual frame deferral from AGI and instead uses the
+ new frame deferral API in interception routines.
+
+ ASTERISK-26343 #close
+ Reported by Morton Tryfoss
+
+ Change-Id: Iab7d39436d0ee99bfe32ad55ef91e9bd88db4208
+
+2016-11-03 16:36 +0000 [9231a56cf3] Mark Michelson <mmichelson@digium.com>
+
+ * Add API for channel frame deferral.
+
+ There are several places in Asterisk that have duplicated logic
+ for deferring important frames until later.
+
+ This commit adds a couple of API calls to facilitate this automatically.
+
+ ast_channel_start_defer_frames(): Future reads of deferrable frames on
+ this channel will be deferred until later.
+
+ ast_channel_stop_defer_frames(): Any frames that have been deferred get
+ requeued onto the channel.
+
+ ASTERISK-26343
+
+ Change-Id: I3e1b87bc6796f222442fa6f7d1b6a4706fb33641
+
+2016-11-03 07:42 +0000 [a9ac1f5de4] Alexander Anikin <may213@yandex.ru>
+
+ * chan_ooh323: Fixes to work right with Cisco devices
+
+ Changed output packets queue processing algo to one read-one write
+ instead of all read-all send
+
+ Remove h.245 tunneling parameter from ReleaseComplete packet
+
+ ASTERISK-24400 #close
+ Reported by: Dmitry Melekhov
+ Tested by: Dmitry Melekhov
+
+ Change-Id: I0b31933b062a21011dbac9a82b8bcfe345f406f6
+
+2016-11-03 13:10 +0000 [0ee249075a] Alexander Anikin <may213@yandex.ru>
+
+ * chan_ooh323: reset rrq count on gk registration
+
+ reset registration attempts count on success registration on gatekeeper
+
+ Change-Id: I5f47351852e0ca76c9ac78421659600e0f106336
+
+2016-11-06 03:46 +0000 [59c23e1768] Michael Kuron <m.kuron@gmx.de>
+
+ * automon: restore mixing of the both channels after recording stops
+
+ This is a regression over Asterisk 11, introduced by
+ 2dc8a060064f359a17f5ebcd515d85fe5203c019. Previously, recordings started via
+ the automon DTMF code would automatically be mixed together using sox because
+ app_monitor would be called with the m option. This commit restores this
+ behavior.
+
+ Change-Id: Ibaf58684285c3f1b6ca3714524e6d638ae3b3759
+
+2016-11-04 15:42 +0000 [e79acaeb75] Matt Jordan <mjordan@digium.com>
+
+ * res_http_websocket: Increase the buffer size for non-LOW_MEMORY systems
+
+ Not surprisingly, using Respoke (and possibly other systems) it is
+ possible to blow past the 16k limit for a WebSocket packet size. This
+ patch bumps it up to 32k, which, at least for Respoke, is sufficient.
+ For now.
+
+ Because 32k is laughable on a LOW_MEMORY system (as is 16k, for that
+ matter), this patch adds a LOW_MEMORY directive that sets the buffer to
+ 8k for systems who have asked for their reduced memory availability to
+ be considered.
+
+ Change-Id: Id235902537091b58608196844dc4b045e383cd2e
+
+2016-11-04 15:40 +0000 [7a83196985] Matt Jordan <mjordan@digium.com>
+
+ * res_stasis: Set a video source mode on Stasis created bridges
+
+ When a bridge is created via ARI (through res_stasis), no video source
+ mode is set by default. As a result, any endpoint sending video media
+ won't ever see any video reflected back to it.
+
+ This patch defaults a bridge to a 'follow the talker' video mode.
+ Further work can be done to add routes that allow for the video mode to
+ be controlled through the /bridges resource.
+
+ Change-Id: I7e9d530a5d7a97a4524a9ee4e468e1a6b3443866
+
+2016-11-04 15:37 +0000 [e7dc536b7a] Matt Jordan <mjordan@digium.com>
+
+ * main/bridge_channel: Fix channel reference leak on video source
+
+ When a channel is made the video source, the bridge holds a reference to
+ it. Whenever the video source changes, that reference is released.
+ However, a ref leak does occur if the channel leaves the bridge (such as
+ being hung up) while it is the video source, as the bridge never
+ releases the ref in such a case.
+
+ This patch adds a line to the bridge_channel_internal_join routine such
+ that, when a channel finishes its time in the bridge, it notifies the
+ bridge via ast_bridge_remove_video_src that if it is a video source its
+ reference should be released.
+
+ ASTERISK-26555 #close
+
+ Change-Id: I3a2f5238a9d2fc49c591f0e65199d782ab0be76a
+
+2016-11-04 15:36 +0000 [7c824b955d] Matt Jordan <mjordan@digium.com>
+
+ * main/bridge: Add some verbose logging for video source changes
+
+ It's actually quite useful to see the source of a video stream change.
+ This doesn't happen terribly often, even with talk detection - but when
+ it does, it's nice to know which channel is now providing your video
+ stream.
+
+ As a verbose 5 level message, it shouldn't be terribly spammy or costly
+ to have, and is 'lower level' then most other verbose messages that the
+ bridge system emits.
+
+ ASTERISK-26555
+
+ Change-Id: Ia1c20ecafa9670171fd38bddcf3beccae47fb15c
+
+2016-11-04 15:33 +0000 [fd6af2dee8] Matt Jordan <mjordan@digium.com>
+
+ * bridges/bridge_softmix: Remove SSRC changes on join/leave; update video source
+
+ WebRTC clients really, really want to know the SSRC of the media they're
+ getting. Changing the SSRC is generally not a good thing.
+
+ bridge_softmix, starting in Asterisk 12, started changing the SSRC of
+ parties as they joined or left the bridge. With most phones, this isn't
+ a problem: phones just play back the stream they're getting. With WebRTC
+ clients, however, the SSRC is tied to a media stream that may be
+ negotiated. When a new SSRC just shows up, the media can be dropped.
+
+ As it turns out, the SSRC change shouldn't even be necessary. From the
+ perspective of the client, it's still talking to Asterisk with the same
+ media stream: why indicate that the far party has suddenly changed to a
+ different source of media?
+
+ This patch opts to just remove the SSRC changes. With this patch, video
+ clients that join/leave a softmix bridge actually get the video stream
+ instead of freaking out.
+
+ ASTERISK-26555
+
+ Change-Id: I27fec098b32e7c8718b4b65f3fd5fa73527968bf
+
+2016-10-28 15:11 +0000 [bd4d7d8ad0] Kevin Harwell <kharwell@digium.com>
+
+ * stasis_recording/stored: remove calls to deprecated readdir_r function.
+
+ The readdir_r function has been deprecated and should no longer be used. This
+ patch removes the readdir_r dependency (replaced it with readdir) and also moves
+ the directory search code to a more centralized spot (file.c)
+
+ Also removed a strict dependency on the dirent structure's d_type field as it
+ is not portable. The code now checks to see if the value is available. If so,
+ it tries to use it, but defaults back to using the stats function if necessary.
+
+ Lastly, for most implementations of readdir it *should* be thread-safe to make
+ concurrent calls to it as long as different directory streams are specified.
+ glibc falls into this category. However, since it is possible that there exist
+ some implementations that are not safe, locking has been added for those other
+ than glibc.
+
+ ASTERISK-26412
+ ASTERISK-26509 #close
+
+ Change-Id: Id8f54689b1e2873e82a09d0d0d2faf41964e80ba
+
+2016-11-04 10:57 +0000 [cb30963d22] Kevin Harwell <kharwell@digium.com>
+
+ * Revert "chan_sip: Fix lastrtprx always updated"
+
+ This reverts commit 93332cb1d0eea18021ea6538237297e627d6e2fc.
+
+ Unfortunately, the aforementioned commit caused a regression (incoming calls
+ would eventually disconnect). Thus it is being removed.
+
+ ASTERISK-26523 #close
+ ASTERISK-25270
+
+ Change-Id: Ibf5586adc303073a8eac667a4cbfdb6be184a64d
+
+2016-11-02 10:52 +0000 [3a1f9c5dab] Joshua Colp <jcolp@digium.com>
+
+ * res_stasis: Don't unsubscribe from a NULL bridge.
+
+ A NULL bridge has special meaning in res_stasis for
+ unsubscribing. It means that a subscription to ALL
+ bridges should be removed. This should not be done
+ as part of the normal subscription management in
+ the res_stasis channel loop.
+
+ ASTERISK-26468
+
+ Change-Id: I6d5bea8246dd13a22ef86b736aefbf2a39c15af0
+
+2016-11-03 13:45 +0000 [eceab15f33] Alexander Anikin <may213@yandex.ru>
+
+ * chan_ooh323: Fix infinite loop on read second part of H.225 packet
+
+ Fix logic on read second part of H.225 packet. There was infinite loop on
+ wrong connections due to read before poll.
+
+ Change-Id: I42b4bf75c46e4a5c5df5c5ca1f0bd74b8944e7ff
+
+2016-11-03 11:55 +0000 [a9992da4aa] gtjoseph <gjoseph@digium.com>
+
+ * pjproject_bundled: Fix issue with libasteriskpj needing libresample
+
+ libresample is only needed by pjproject if we're building pjsua, which
+ we only do if TEST_FRAMEWORK is selected. It's required by pjsua to
+ process audio which is needed by some testsuite tests. Unfortunately,
+ pjproject relies on a newer version of libresample than the version
+ that ships by most distros so we need to compile the version that's
+ bundled with pjproject. Since we only need it for pjsua, we DON'T want
+ it's symbols exposed when we actually build asterisk.
+
+ There was a problem however... TEST_FRAMEWORK is only known AFTER we've
+ already run ./configure on both asterisk and pjproject but pjproject's
+ ./configure needs to test it to know whether to set up to build
+ libresample or not. The previous way of figuring this out was to
+ always tell ./configure "yes" but not actually build the library. This
+ caused an issue where building libasteriskpj was being told to include
+ libresample but it wasn't actually there.
+
+ The solution is to still do a default pjproject configure during an
+ asterisk ./configure but if makeopts or menuselect.makeopts changes
+ subsequently, we now reconfigure pjproject, taking into account the
+ current state of TEST_FRAMEWORK. Previously, if makeopts or
+ menuselect.makeopts changed, only a recompile of pjproject was done.
+
+ Change-Id: I9b5d84c61384a3ae07fe30e85c49698378cc4685
+
+2016-11-01 19:48 +0000 [714412f6c4] Sebastian Gutierrez <sgutierrez@integraccs.com>
+
+ * chan_sip: add missing account code
+
+ Added missing account to AMI event of sip show peers
+
+ ASTERISK-26176 #close
+
+ Change-Id: Ieb6c2c80a838a1b59c82103eba4c63ba238dc482
+
+2016-09-13 04:08 +0000 [0cf1778eed] Alexander Traud <pabstraud@compuserve.com>
+
+ * rtp_engine: Allow more than 32 dynamic payload types.
+
+ The dynamic range (96-127) allows 32 RTP Payload Types. RFC 3551 section 3
+ allows to reassign other ranges. Consequently, when the dynamic range is
+ exhausted, you can go for "rtp_pt_dynamic = 35" (or 0) in asterisk.conf. This
+ enables the range 35-63 (or 0-63) giving room for another 29 (or 64) payload
+ types.
+
+ ASTERISK-26311 #close
+
+ Change-Id: I7bc96ab764bc30098a178b841cbf7146f9d64964
+ (cherry picked from commit 9ac53877f688c06acaa7c377f15da8770e4ee88b)
+
+2016-11-02 09:15 +0000 [d971647949] Joshua Colp <jcolp@digium.com>
+
+ * app_dial: Fix incorrect device state when channel is picked up.
+
+ Given the scenario where multiple channels are dialed using Dial()
+ but the caller is picked up using PickupChan() all outgoing channels
+ except the channel specified to PickupChan() would be marked
+ as ringing until the call had been hung up.
+
+ When using the PickupChan application the channel executing the
+ application is swapped into place of another channel. As part
+ of this process the channel is answered. The Dial application
+ has explicit logic which checks if the channel is answered,
+ cancels all other outgoing channels, and bridges. This logic is
+ different than the normal logic that is executed when an outgoing
+ channel is answered. This different logic failed to publish dial
+ events stating that the other outgoing channels had been canceled.
+ As a result references to the outgoing channels were held onto by
+ the dial masquerade process until the call had been ended and
+ the channels had gone away. This would result in the channels
+ appearing in the "core show channels" list despite not being present
+ anymore and would also result in incorrect device state.
+
+ This change makes it so that this logic also publishes
+ dial events stating that the other outgoing channels have been
+ canceled.
+
+ ASTERISK-26549
+
+ Change-Id: Iea7168e6e82f7d4609ec0366153804e4f55ea64f
+
+2016-11-01 13:13 +0000 [afecb2cfc0] Richard Mudgett <rmudgett@digium.com>
+
+ * bundled pjproject: Fix DNS write to freed memory.
+
+ PJPROJECT 2.5.5 introduced a race condition with the -r5349 IPv6 DNS
+ patch.
+
+ The patch below fixes a write to freed memory under cartain DNS lookup
+ conditions.
+
+ 0006-r5477-svn-backport-Fix-DNS-write-on-freed-memory.patch
+
+ ASTERISK-26516
+ Reported by: Richard Mudgett
+
+ Change-Id: Ifdfae9ecf1e41b53080f33aab44ce1a220f349c5
+
+2016-11-01 06:56 +0000 [5f188bb7a8] Joshua Colp <jcolp@digium.com>
+
+ * res_pjsip_sdp_rtp: Limit number of formats to defined maximum.
+
+ The res_pjsip_sdp_rtp module did not restrict the number of
+ formats added to a media stream in the SDP to the defined
+ limit. If allow=all was used with additional loaded codecs this
+ could result in the next media stream being overwritten some.
+
+ This change restricts the module to limit it to the defined
+ maximum and also increases the maximum in our bundled pjproject.
+
+ ASTERISK-26541 #close
+
+ Change-Id: I0dc5f59d3891246cafa2f3df5ec406f088559ee8
+
+2016-11-01 04:18 +0000 [94c9496ed5] Tzafrir Cohen <tzafrir.cohen@xorcom.com>
+
+ * netsock.c: fix includes for HURD
+
+ ASTERISK-25070
+
+ Change-Id: I43bf94d2d36d3d8a8d0df40cd6c027d65a462814
+
+2016-11-01 04:00 +0000 [c1c9487375] Tzafrir Cohen <tzafrir.cohen@xorcom.com>
+
+ * define PATH_MAX for HURD
+
+ PATH_MAX is not guaranteed to be defined. In parctice, all but the HURD
+ define it to a constant. It is indeed not safe to assume there won't be
+ longer paths and Asterisk generally does err safely on such cases.
+
+ So even for HURD we'll just pretend PATH_MAX is 4096.
+
+ ASTERISK-25070 #close
+
+ Change-Id: I53d10ba18c34c132bcb640a5fd8e0da1d9b22db3
+
+2016-10-31 17:35 +0000 [50fa868ab8] Kevin Harwell <kharwell@digium.com>
+
+ * codecs.conf.sample: Add sample and option descriptions for codec_opus
+
+ codecs.conf.sample was missing codec opus's configuration options, descriptions,
+ and examples. This patch adds the configuration options and examples to
+ codecs.conf.sample that can be used with codec_opus.
+
+ ASTERISK-26538 #close
+
+ Change-Id: I1d89bb5e01d3e3b5bd78951b8dd0ff077a83dc8b
+
+2016-11-01 08:32 +0000 [b3f10b7b94] Grachev Sergey <grachev@mcn.ru>
+
+ * chan_sip: Incorrect display option Outbound reg. retry 403
+
+ If in sip.conf (general section) set option register_retry_403=no,
+ the command "sip show settings" return value:
+ Outbound reg. retry 403:0
+ If in sip.conf (general section) set option register_retry_403=yes,
+ the command "sip show settings" return value:
+ Outbound reg. retry 403:-1
+
+ * In static char "sip show settings" for "Outbound.reg. retry 403"
+ option use AST_CLI_YESNO
+
+ ASTERISK-26476 #close
+
+ Change-Id: I3c14272f05f1067bd2aeaa8b3ef9cf8fcb12dcf9
+
+2016-10-20 07:27 +0000 [29692d4aa4] Matt Jordan <mjordan@digium.com>
+
+ * res/stasis: Add CLI commands for displaying/debugging ARI apps
+
+ This patch adds three new CLI commands:
+ - ari show apps: list the registered ARI applications
+ - ari show app: show detailed information about an ARI application
+ - ari set debug: dump events being sent to an ARI application
+
+ Note that while these CLI commands live in the res_stasis module, we use
+ the 'ari' family for these commands. This was done as most users of
+ Asterisk aren't aware of the semantic differences between ARI and
+ res_stasis, and some 'ari' CLI commands already exist.
+
+ ASTERISK-26488 #close
+
+ Change-Id: I51ad6ff0cabee0d69db06858c13f18b1c513c9f5
+
+2016-10-31 16:12 +0000 [a36a7d0cf4] gtjoseph <gjoseph@digium.com>
+
+ * pjproject_bundled: Fix compile of pjsua so it handles audio
+
+ In order for pjsua and its python binding to actually negotiate
+ audio for the testsuite tests, it needs g711 and resample. The
+ pj* libraries themselves do not. Unfortunately, pjproject relies
+ on a brand new libresample that most distros don't ship so we need
+ to use the libresample already bundled with pjproject. Only the pjsua
+ executable and the _pjsua.so python library are linked with it so it
+ shouldn't interfere with asterisk itself.
+
+ Also it was pointed out that apply_patches couldn't handle multiple
+ patches that depended on each other during the dry-run, so the
+ dry-run was removed.
+
+ Change-Id: I24f397462b486dcdde0dcafe40e6c55a6593f098
+
+2016-10-31 13:46 +0000 [42bd70b29f] Etienne Lessard <elessard@proformatique.com>
+
+ * manager: Add documentation for NewConnectedLine event.
+
+ The NewConnectedLine event has been added by commit fe7671f, but the
+ documentation was missing.
+
+ ASTERISK-26537 #close
+
+ Change-Id: I7fc331f18caa28492da9303e576f70884ca8c9e6
+
+2016-10-30 13:33 +0000 [30b1bc77d2] Corey Farrell <git@cfware.com>
+
+ * vector: Prevent NULL argument to memcpy.
+
+ Headers declare that memcpy does not accept NULL argument for the first
+ two parameters. Add a conditional block to prevent memcpy and ast_free
+ from running on vectors with NULL element array.
+
+ ASTERISK-26526 #close
+
+ Change-Id: I988a476bb5fcfcbd3f6d6c6b3e7769e4f9629b71
+
+2016-10-29 10:31 +0000 [b96f18560b] Corey Farrell <git@cfware.com>
+
+ * astobj2: Declare private variable data_size for AO2_DEBUG only.
+
+ Every ao2 object contains storage for a private variable data_size,
+ though the value is never read if AO2_DEBUG is disabled. This change
+ makes the variable conditional, reducing memory usage.
+
+ ASTERISK-26524 #close
+
+ Change-Id: If859929e507676ebc58b0f84247a4231e11da07f
+
+2016-10-28 16:59 +0000 [6b1c55dc9b] gtjoseph <gjoseph@digium.com>
+
+ * pjproject_bundled: Fix issue where "/version.mak" wasn't found
+
+ main/Makefile includes third-party/pjproject/build.mak but
+ doesn't set PJDIR beforehand so "include $(PJDIR)/version.mak"
+ evaluates to "/version.mak". Fix is to set PJDIR in main/Makefile
+ before the include.
+
+ Change-Id: I0f7c67d60209049056fe9c4b041bf0463aa95604
+
+2016-10-28 14:55 +0000 [d7f457e4c1] Richard Mudgett <rmudgett@digium.com>
+
+ * bundled pjproject: Crashes while resolving DNS names.
+
+ PJPROJECT 2.5.5 introduced a race condition with the -r5349 IPv6 DNS
+ patch.
+
+ The patches below fix the DNS lookup race condition crash caused by
+ attempting to send the same message twice for the single DNS lookup.
+
+ 0006-r5471-svn-backport-Various-fixes-for-DNS-IPv6.patch
+ 0006-r5473-svn-backport-Fix-pending-query.patch
+
+ The patch below removes a cached DNS response from the hash table when
+ another thread is referencing the old entry. The table still contained
+ the entry when it was destroyed which can result in inexplicable crashes.
+
+ 0006-r5475-svn-backport-Remove-DNS-cache-entry.patch
+
+ ASTERISK-26344 #close
+ Reported by: Ian Gilmour
+
+ ASTERISK-26387 #close
+ Reported by: Harley Peters
+
+ Change-Id: I17fde80359e66f65a91341ceca58d914d0f61cc4
+
+2016-10-28 09:50 +0000 [87903a6848] Rusty Newton <rnewton@digium.com>
+
+ * SAC documentation: don't specify transports for endpoints and registrations
+
+ Removing explicit transport definition for endpoints and registrations. It
+ isn't necessary and isn't generally advised.
+
+ ASTERISK-26514 #close
+
+ Change-Id: Ifdec5e631962438a4683600968dfa4bfd15909fb
+
+2016-10-27 21:49 +0000 [f373de3020] Corey Farrell <git@cfware.com>
+
+ * Fix shutdown crash caused by modules being left open.
+
+ It is only safe to run ast_register_cleanup callbacks when all modules
+ have been unloaded. Previously these callbacks were run during graceful
+ shutdown, making it possible to crash during shutdown.
+
+ ASTERISK-26513 #close
+
+ Change-Id: Ibfa635bb688d1227ec54aa211d90d6bd45052e21
+
+2016-10-26 18:48 +0000 [61a5c3460e] gtjoseph <gjoseph@digium.com>
+
+ * pjproject_bundled: Remove usage of tar's --strip-components option
+
+ Older versions of tar don't support the --strip-components option so
+ instead of doing 'tar --strip-components=1 -C source', we now just
+ untar to the tarball's root directory (pjproject-<version>) and
+ rename that directory to 'source'.
+
+ Also fixed an issue where the pjproject source directory is a hard
+ coded absolute pathname.
+
+ ASTERISK-26510 #close
+ ASTERISK-22480 #close
+
+ Change-Id: I9ec92952507a91ff4e4d01e0149e09fd8e8f32b0
+
+2016-10-27 08:07 +0000 [675c71ae8c] Joshua Colp <jcolp@digium.com>
+
+ * res_pjsip_caller_id: Fix crash on session timers UPDATE on inbound calls.
+
+ The res_pjsip_caller_id module wrongly assumed that a
+ saved From header would always exist on sessions. This
+ is true until an inbound call is received and a session
+ timer causes an UPDATE to be sent. In this case there will
+ be no saved From header and a crash will occur. This change
+ makes it fall back to the From header of the outgoing request
+ if no saved From header is present.
+
+ ASTERISK-26307 #close
+
+ Change-Id: Iccc3bc8d243b5ede9b81abf960292930c908d4fa
+
+2016-10-26 07:51 +0000 [14496ce1e5] Joshua Colp <jcolp@digium.com>
+
+ * app_voicemail: Clear voice mailbox in MailboxExists and MAILBOX_EXISTS.
+
+ When executing the MailboxExists dialplan application and
+ MAILBOX_EXISTS dialplan function the passed in temporary voice
+ mailbox was not cleared, causing it to try to free garbage.
+
+ ASTERISK-26503 #close
+
+ Change-Id: Ie21ccfa1b80b9c59318e596f6b8e17da2b5a7cb3
+
+2016-10-23 07:38 +0000 [e0bc17edff] Joshua Colp <jcolp@digium.com>
+
+ * pjsip: Fix a few media bugs with reinvites and asymmetric payloads.
+
+ When channel format changes occurred as a result of an RTP
+ re-negotiation the bridge was not informed this had happened.
+ As a result the bridge technology was not re-evaluated and the
+ channel may have been in a bridge technology that was incompatible
+ with its formats. The bridge is now unbridged and the technology
+ re-evaluated when this occurs.
+
+ The chan_pjsip module also allowed asymmetric codecs for sending
+ and receiving. This did not work with all devices and caused one
+ way audio problems. The default has been changed to NOT do this
+ but to match the sending codec to the receiving codec. For users
+ who want asymmetric codecs an option has been added, asymmetric_rtp_codec,
+ which will return chan_pjsip to the previous behavior.
+
+ The codecs returned by the chan_pjsip module when queried by
+ the bridge_native_rtp module were also not reflective of the
+ actual negotiated codecs. The nativeformats are now returned as
+ they reflect the actual negotiated codecs.
+
+ ASTERISK-26423 #close
+
+ Change-Id: I6ec88c6e3912f52c334f1a26983ccb8f267020dc
+
+2016-10-26 06:32 +0000 [f534f67f52] Joshua Colp <jcolp@digium.com>
+
+ * res_pjsip_sdp_rtp: Fix address family of explicit media_address.
+
+ When an explicit media_address is provided the address family
+ in the SDP needs to be set to reflect it.
+
+ ASTERISK-26309
+
+ Change-Id: Ib9350cc91c120eb2f96f0623d3907d12af67eb79
+
+2016-10-25 11:20 +0000 [3a2092b722] gtjoseph <gjoseph@digium.com>
+
+ * test_astobj2_thrash: Fix multithreaded issues
+
+ The test uses 4 threads to grow, count, lookup and shrink 15K objects
+ in a container. If there's only 1 execution engine available, the test
+ will complete in <50ms. If each threads gets its own execution engine,
+ the test may timeout after 60 seconds because the count thread does a
+ locked ao2_callback on the whole container in a tight loop with only
+ a sched_yield to give up time. The lock contention makes the test
+ execution times wildly variable and mostly timeout. 2 execution
+ engines are OK, 3 results in about 33% failure rate and >=4 causes
+ a 80% failure rate.
+
+ To fix, the sched_yield was changed to a usleep(500).
+
+ Also, the number of buckets specified for the container was an even
+ number so that was changed to the next prime number greater than
+ (MAX_HASH_ENTRIES / 100). That's 151 currently.
+
+ Change-Id: I50cd2344161ea61bfe4b96d2a29a6ccf88385c77
+
+2016-10-24 14:13 +0000 [640203802e] Pascal Cadotte Michaud <pcadotte@proformatique.com>
+
+ * typo: s/paranthesis/parenthesis/ in a comment
+
+ Change-Id: I7c1f4eb051177ee22cbe97e063d4a3effe29be30
+
+2016-10-24 10:55 +0000 [9b3557e054] gtjoseph <gjoseph@digium.com>
+
+ * pjproject_bundled: Fixed various build issues
+
+ * CFLAGS is now properly set when using older gcc.
+ * All third-party pjproject targets have been removed. This fixes
+ an issue with older libsrtp in some distros.
+ * Manually removing the source directory now causes a rebuild.
+ * EXTERNALS_CACHE_DIR is now properly checked.
+ * Whitespace fixes.
+
+ Change-Id: I98fec6847efc5602a9f41cb95096fd660a49fa60
+
+2016-09-19 06:13 +0000 [bb982480d8] Joshua Colp <jcolp@digium.com>
+
+ * pjsip: Support dual stack automatically.
+
+ This change adds support for dual stack automatically. No
+ configuration is required and the IP address and version
+ in the SIP messages and SDP will be automatically changed
+ based on the transport over which the message is being
+ sent. RTP usage has also been changed to listen on both
+ IPv4 and IPv6 simultaneously to allow media to flow, and
+ to allow ICE support on both simultaneously. This also
+ allows failover between IPv6 and IPv4 to work as expected.
+
+ ASTERISK-26309 #close
+
+ Change-Id: I235a421d8f9a326606d861b449fa6fe3a030572d
+
+2016-10-17 14:18 +0000 [eff97808fb] Mark Michelson <mmichelson@digium.com>
+
+ * ARI: Detect duplicate channel IDs
+
+ ARI and AMI allow for an explicit channel ID to be specified
+ when originating channels. Unfortunately, there is nothing in
+ place to prevent someone from using the same ID for multiple
+ channels. Further complicating things, adding ID validation to channel
+ allocation makes it impossible for ARI to discern why channel allocation
+ failed, resulting in a vague error code being returned.
+
+ The fix for this is to institute a new method for channel errors to be
+ discerned. The method mirrors errno, in that when an error occurs, the
+ caller can consult the channel errno value to determine what the error
+ was. This initial iteration of the feature only introduces "unknown" and
+ "channel ID exists" errors. However, it's possible to add more errors as
+ needed.
+
+ ARI uses this feature to determine why channel allocation failed and can
+ return a 409 error during origination to show that a channel with the
+ given ID already exists.
+
+ ASTERISK-26421
+
+ Change-Id: Ibba7ae68842dab6df0c2e9c45559208bc89d3d06
+
+2016-10-19 17:53 +0000 [c2036c827c] snuffy <snuffy22@gmail.com>
+
+ * Fix issue with CLI not returning to prompt after running "features show"
+
+ ASTERISK-26444 #close
+
+ Change-Id: I91d645b7e6e5dba35f8c410df2be77a8c0e3acb8
+
+2016-10-04 18:24 +0000 [3c62b60e56] Michael Walton <mike@farsouthnet.com>
+
+ * res_rtp_asterisk: Add ice_blacklist option
+
+ Introduces ice_blacklist configuration in rtp.conf. Subnets listed in the
+ form ice_blacklist = <subnet spec>, e.g. ice_blacklist =
+ 192.168.1.0/255.255.255.0, are excluded from ICE host, srflx and relay
+ discovery. This is useful for optimizing the ICE process where a system
+ has multiple host address ranges and/or physical interfaces and certain
+ of them are not expected to be used for RTP. Multiple ice_blacklist
+ configuration lines may be used. If left unconfigured, all discovered
+ host addresses are used, as per previous behavior.
+
+ Documention in rtp.conf.sample.
+
+ ASTERISK-26418 #close
+
+ Change-Id: Ibee88f80d7693874fda1cceaef94a03bd86012c9
+
+2016-10-18 16:30 +0000 [012fda29d2] Mark Michelson <mmichelson@digium.com>
+
+ * CDR: Alter destruction pattern for CDR chains.
+
+ CDRs form chains. When the root of the chain is destroyed, it then
+ unreferences the next CDR in the chain. That CDR is destroyed, and it
+ then unreferences the next CDR in the chain. This repeats until the end
+ of the chain is reached. While this typically does not cause any sort of
+ problems, it is possible in strange scenarios for the CDR chain to grow
+ way longer than expected. In such a scenario, the destruction pattern
+ can result in a stack overflow.
+
+ This patch fixes the problem by switching from a recursive pattern to an
+ iterative pattern for destruction. When the root CDR is destroyed, it is
+ responsible for iterating over the rest of the CDRs and unreferencing
+ each one. Other CDRs in the chain, since they are not the root, will
+ simply destroy themselves and be done. This causes the stack depth not
+ to increase.
+
+ ASTERISK-26421 #close
+ Reported by Andrew Nagy
+
+ Change-Id: I3ca90c2b8051f3b7ead2e0e43f60d2c18fb204b8
+
+2016-10-18 09:04 +0000 [6d462b9eaf] Alexei Gradinari <alex2grad@gmail.com>
+
+ * chan_pjsip: segfault on already disconnected session
+
+ On heavy loaded system the TCP/TLS incoming calls could be
+ disconnected by pjproject while these calls are being
+ processed by asterisk.
+
+ This patch uses functions pjsip_inv_add_ref/pjsip_inv_dec_ref
+ to inform pjproject that an INVITE session is in use.
+
+ ASTERISK-26482 #close
+
+ Change-Id: Ia2e3e2f75358cdb530252a9ce158af3d5d9fdf33
+
+2016-10-18 03:01 +0000 [662b560c35] Alexander Traud <pabstraud@compuserve.com>
+
+ * cli: Auto-complete File not Module for core set debug.
+
+ Since Asterisk 1.8, the command "core set debug" on the command-line interface
+ asks not for a file (.c) but a module name. This change shows modules (.so) on
+ the auto-completion via a tabulator or the question mark. Now, when you
+ partially type a module name, TAB or ?, you get the correct candidiates.
+
+ ASTERISK-26480
+
+ Change-Id: I1213f1dd409bd4ff8de08ad80cb0c73cafb1bae0
+
+2016-09-11 10:13 +0000 [6f5880913f] Tzafrir Cohen <tzafrir.cohen@xorcom.com>
+
+ * menuselect: invalid test for GTK2
+
+ configuire.ac was only checking for the existence of pkg-config
+ and not the gtk2 package itself. Now it calls AST_PKG_CONFIG_CHECK
+ for gtk+-2.0.
+
+ ASTERISK-26356 #close
+
+ Change-Id: I8079d515d6ea99f9ab320a7eaa71c2aaa101ccd5
+
+2016-10-13 02:06 +0000 [644fad7477] Moises Silva <moises.silva@gmail.com>
+
+ * chan_rtp: Set a sane default rtp engine for unicast.
+
+ ASTERISK-26439
+
+ Change-Id: I7f5ee2eeba8906e9ecb3293dbe3a747770bb5011
+
+2016-10-15 20:05 +0000 [42cfdcd1b7] Matt Jordan <mjordan@digium.com>
+
+ * res/ari: Add the Asterisk EID field to outgoing events
+
+ This patch adds the Asterisk EID field to all outgoing ARI events.
+ Because this field should be added to all events as they are
+ transmitted, it is appended to the JSON message just prior to it being
+ handed off to the application message handler. This makes it somewhat
+ resilient to both new events being added to ARI, as well as other
+ potential event transport mechanisms.
+
+ ASTERISK-26470 #close
+
+ Change-Id: Ieff0ecc24464e83f3f44e9c3e7bd9a5d70b87a1d
+
+2016-10-16 17:25 +0000 [74d9385273] gtjoseph <gjoseph@digium.com>
+
+ * utils.c: Fix ast_set_default_eid for multiple platforms
+
+ ast_set_default_eid was searching for ethX, emX, enoX, ensX and even
+ pciD#U interface names. While this was a good attempt, it wasn't
+ inclusive enough to capture interfaces like enp6s0 or ens6d1, etc.
+
+ Rather than relying on interface names, we now simply find the first
+ interface returned by the OS that has a hardware address and that
+ address isn't all 0x00 or all 0xff. The code IS different for BSD,
+ Solaris and Linux based on what method is available for enumerating
+ interfaces.
+
+ Tested on:
+ FreeBSD9
+ CentOS6
+ Ubuntu14
+ Fedora24
+
+ I was unable to test on Solaris at this time but the code for Solaris
+ is used elsewhere at Digium.
+
+ Change-Id: Iaa6db87ca78a9a375e47d70e043ae08c1448cb72
+
+2016-10-13 14:09 +0000 [0306869399] Leandro Dardini <ldardini@gmail.com>
+
+ * app_queue: Added initialization for "context" parameter
+
+ When using Asterisk Realtime Architecture, empty fields are skipped and the
+ default values are used. If the "context" parameter in queue was set and then
+ cleared from the database, the old value remains in memory and it continues
+ to be used. This change initialize the "context" parameter with an empty value,
+ allowing clearing the parameter.
+
+ ASTERISK-26462 #close
+
+ Change-Id: I64be73d5044ce38dd02408bd0e53de965ef65905
+
+2016-10-11 06:55 +0000 [a859bcb49c] Alexander Traud <pabstraud@compuserve.com>
+
+ * chan_sip: Support nat=auto_comedia or nat=force_rport,auto_comedia.
+
+ In the SIP channel driver chan_sip, auto_comedia was expected to be used in
+ tandem with auto_force_rport. Or stated differently: Only when auto_force_rport
+ was chosen (the default), auto_comedia worked. This change allows auto_comedia
+ to be set independently of the state of (auto_)force_rport. For example,
+ nat=force_rport,auto_comedia is useful for IPv4/IPv6 Dual Stack deployments
+ when IPv6 clients are behind a Firewall.
+
+ ASTERISK-26457 #close
+
+ Change-Id: Ib29d66c6dbb61648e371e01fc36c6978ddae5bc2
+
+2016-10-17 19:08 +0000 Asterisk Development Team <asteriskteam@digium.com>
+
+ * asterisk 13.12.0-rc1 Released.
+
+2016-10-17 11:39 +0000 [546ec4b038] gtjoseph <gjoseph@digium.com>
+
+ * pjproject_bundled: Add patch to address SSL crash
+
+ Addresses crashes when an attempt is made to operate on an SSL socket
+ after the socket has been closed.
+
+ ASTERISK-26477 #close
+
+ Change-Id: I421305b357558b4f9e690210dc0f4831ef4b3002
+
+2016-10-15 04:58 +0000 [f1fd873df0] Michael Kuron <m.kuron@gmx.de>
+
+ * chan_sip: Only send video on outgoing channel if incoming channel supports it
+
+ Previously, the settings videosupport=always and videosupport=yes behaved
+ identically and unconditionally caused a video offer to be sent in the SDP on
+ an outgoing call. This was a regression introduced with commit
+ 5a1d90e1fbfc4b48927aad55311f3b38efbf1f54 in Asterisk 1.6.1.
+
+ This commit restores correct behavior: videosupport=always causes a video offer
+ to be sent unconditionally, while videosupport=yes will only offer video on an
+ outbound channel if the incoming channel it is bridged to also supports video.
+ That way, the device receiving the outgoing call can display the correct user
+ interface elements for audio or video and will not unnecessarily show a blank
+ video window on an audio-only call.
+
+ ASTERISK-17470 #close
+
+ Change-Id: I782f4409d436114dbc97061c3570c0cd24f7c3ae
+
+2016-10-14 00:18 +0000 [ce4cfd2eca] Corey Farrell <git@cfware.com>
+
+ * Fix issues with bundled pjproject cached download.
+
+ Previously when testing I had a preexisting makeopts in ASTTOPDIR. The
+ ordering of configure.ac causes --with-externals-cache to be processed
+ after third-party configure. In cases where the Asterisk clone is
+ cleaned it would cause pjproject to be downloaded to /tmp. This
+ moves processing of the externals cache and sounds cache to happen
+ before third-party configure.
+
+ This also addresses a possible issue with the third-party Makefile. If
+ TMPDIR is set by the environment it would override the path given to
+ --with-externals-cache.
+
+ ASTERISK-26416
+
+ Change-Id: Ifab7f35bfcd5a31a31a3a4353cc26a68c8c6592d
+
+2016-10-12 16:24 +0000 [3c54328c57] Richard Mudgett <rmudgett@digium.com>
+
+ * Audit ast_json_pack() calls for needed UTF-8 checks.
+
+ Added needed UTF-8 checks before constructing json objects in various
+ files for strings obtained outside the system. In this case string values
+ from a channel driver's peer and not from the user setting channel
+ variables.
+
+ * aoc.c: Fixed type mismatch in s_to_json() for time and granularity json
+ object construction.
+
+ ASTERISK-26466
+ Reported by: Richard Mudgett
+
+ Change-Id: Iac2d867fa598daba5c5dbc619b5464625a7f2096
+
+2016-10-12 16:20 +0000 [7f8f125738] Richard Mudgett <rmudgett@digium.com>
+
+ * json: Check party id name, number, subaddresses for UTF-8.
+
+ * Updated unit test as ast_json_name_number() is now NULL tolerant.
+
+ ASTERISK-26466 #close
+ Reported by: Richard Mudgett
+
+ Change-Id: I7d4e14194f8f81f24a1dc34d1b8602c0950265a6
+
+2016-10-11 18:14 +0000 [9621c9bcbc] Richard Mudgett <rmudgett@digium.com>
+
+ * json: Add UTF-8 check call.
+
+ Since the json library does not make the check function public we
+ recreate/copy the function in our interface module.
+
+ ASTERISK-26466
+ Reported by: Richard Mudgett
+
+ Change-Id: I36d3d750b6f5f1a110bc69ea92b435ecdeeb2a99
+
+2016-10-12 17:42 +0000 [e4bb9f9a37] Richard Mudgett <rmudgett@digium.com>
+
+ * aoc.c: Whitespace cleanup
+
+ * In s_to_json() removed unnecessary ast_json_ref() to ast_json_null()
+ when creating the type json object. The ref is a noop.
+
+ Change-Id: I2be8b836876fc2e34a27c161f8b1c53b58a3889a
+
+2016-10-12 17:27 +0000 [bcac905bd3] Richard Mudgett <rmudgett@digium.com>
+
+ * app_queue.c: Fix clearing of pause reason string.
+
+ The pause reason is not always cleared when it should be cleared.
+
+ * Made set_queue_member_pause() always clear pause reason if not pausing
+ with a reason string.
+
+ Change-Id: I993dad19626ec017478a230e980989438b778c53
+
+2016-10-12 16:22 +0000 [ee4ae2b648] Richard Mudgett <rmudgett@digium.com>
+
+ * app_minivm.c: Fix malformed ast_json_pack() call.
+
+ Change-Id: I082b239022fac462666e52a14a44304748908dc0
+
+2016-10-12 16:30 +0000 [90ae4e4337] gtjoseph <gjoseph@digium.com>
+
+ * res_config_mysql: Fix several issues related to recent table changes
+
+ Unlike any of the other database drivers, res_config_mysql checks that
+ the table definition matches the requirements for every insert and
+ update statement. Since all requirements are forced to 'char', any
+ column that isn't a char, like ps_contacts' expiration_time,
+ qualify_timeout, etc., will throw a warning. It's kinda harmless but
+ very misleading. Since no other driver does those checks on insert
+ or update, they've been removed from res_config_mysql. Also, all
+ the logic that actually attempted to ALTER the table to fix the issue
+ has been removed. With the move to alembic, the auto-alter
+ functionality is not only unnecessary, it's also dangerous.
+
+ The other issue is that res_config_mysql calls the mysql_insert_id
+ function inside store_mysql. Presumably the intention was to return
+ the number of rows inserted DESPITE A NOTE IN THE CODE THAT THE VALUE
+ IS NON_PORTABLE AND MAY CHANGE. That value is then returned to
+ config realtime as the number of rows inserted. Guess what? The value
+ changed. It now only returns the number of rows inserted if there's an
+ auto increment column on the table, which ps_contacts doesn't have.
+ Otherwise it returns 0. So now, the insert worked but we tell config
+ realtime and sorcery that no rows were inserted. That call to
+ mysql_insert_id was removed and we now always return 1 if the insert
+ succeeded. We're only inserting 1 row at a time anyway. If the insert
+ fails, we still return -1.
+
+ ASTERISK-26362 #close
+ Reported-by: Carlos Chavez
+
+ Change-Id: I83ce633efdb477b03c8399946994ee16fefceaf4
+
+2016-09-29 13:08 +0000 [86c15db6a1] Torrey Searle <torrey@voxbone.com>
+
+ * res_fax: Fix a tight race condition causing fax to crash in audio fallback
+
+ When T.38 gets rejected and G711 failback occurs there is a period of
+ time where neither AST_FAX_TECH_T38 nor AST_FAX_TECH_AUDIO is set,
+ leading to a crash.
+
+ Change-Id: Icc3f457b2292d48a9d7843dac0028347420cc982
+
+2016-09-30 16:29 +0000 [29b7a5b00f] Rodrigo Ramírez Norambuena <a@rodrigoramirez.com>
+
+ * Add text of cdr directory into README.md for ast-db-manage
+
+ Change-Id: I68321c4bea50730c39fdb486e5f23aeadd1ad636
+
+2016-10-06 09:58 +0000 [f919edc4e2] gtjoseph <gjoseph@digium.com>
+
+ * app_dial: Add the "Q" option to set the cause on unanswered channels
+
+ The "Q" option will set the cause on the unanswered channels when
+ another channel answers. It overrides the default of
+ ANSWERED_ELSEWHERE.
+
+ NOTE: chan_sip does not support setting the cause on a CANCEL to
+ anything other than ANSWERED_ELSEWHERE.
+
+ ASTERISK-26446 #close
+
+ Change-Id: I71742e0919aaa16784c30a2b2e73fbeed7672e47
+
+2016-10-10 16:59 +0000 [a884b26392] Badalyan Vyacheslav <v.badalyan@open-bs.ru>
+
+ * vector: After remove element recheck index
+
+ Small fix. It is necessary to double-check
+ the index that we just removed because there
+ is a new element.
+
+ ASTERISK-26453 #close
+
+ Change-Id: Ib947fa94dc91dcd9341f357f1084782c64434eb7
+
+2016-09-29 12:52 +0000 [349c34f72a] Torrey Searle <torrey@voxbone.com>
+
+ * res_rtp_asterisk: Fix infinite DTMF issue when switching to P2P bridge
+
+ If a bridge switched to P2P when a DTMF was in progress it
+ was possible for the DTMF to continue being sent indefinitely.
+
+ Change-Id: I7e2a3efe0d59d4b214ed50cd0b5d0317e2d92e29
+
+2016-10-10 10:59 +0000 [9da3489d24] Badalyan Vyacheslav <v.badalyan@open-bs.ru>
+
+ * res_pjsip_config_wizard: Memory leak in module_unload
+
+ Fixed a memory leak. It removes only the first element.
+ Added a useful feature in vector.h to remove all items
+ under the CMP through a callback function / macro.
+
+ ASTERISK-26453 #close
+
+ Change-Id: I84508353463456d2495678f125738e20052da950
+
+2016-10-09 21:53 +0000 [fa2885b3ff] Badalyan Vyacheslav <v.badalyan@open-bs.ru>
+
+ * cel_odbc: Fix memory leak on module unload
+
+ Change-Id: Ic7a1236eba2408090fdabb5f717b5fa455ead715
+
+2016-10-03 11:30 +0000 [e6b0053d75] gtjoseph <gjoseph@digium.com>
+
+ * bundled_pjproject: Add tests for programs used by the Makefile, et al.
+
+ Added tests for bzip2, tar, patch, sed and nm to configure.ac.
+
+ Set DOWNLOAD_TO_STDOUT to a working command line regardless of
+ whether the download program is wget, curl or fetch.
+
+ Added a 'configure.m4' file to the third-party directory which takes
+ care of calling any third-party project setup. Had to move some
+ pjproject_bundled stuff up in configure.ac so it was called before
+ the third-party configure macro.
+
+ The pjproject tarball is now downloaded to the externals_cache_dir if
+ it was specified on the ./configure command line
+
+ Removed regeneration of the pjproject aconfigure file. It was only
+ needed for an old patch that no longer applies.
+
+ Converted the tests for symbols to explicit tests since we know that
+ they're now available in the bundled version. Saves a little time
+ during configure.
+
+ ASTERISK-26416 #close
+ Reported-by: Corey Farrell
+
+ Change-Id: Id1d94251c0155f8dd41b7de7067f35cfbaafbb9b
+
+2016-10-05 14:53 +0000 [0dc0356e39] gtjoseph <gjoseph@digium.com>
+
+ * pjproject_bundled: Add MALLOC_DEBUG capability
+
+ pjproject_bundled will now use the asterisk memory debugging APIs
+ if MALLOC_DEBUG is turned on in menuselect.
+
+ Because this required stubs for the executable programs and the python
+ bindings, some Makefile reorganization was needed to properly handle
+ the dependencies. As a result, the makefile now individually makes
+ each of the pjproject libraries separately instead of making them all
+ in 1 shot. The only visible change is that there are separate status
+ lines printed for each library instead oif 1 for all libs. Also, the
+ making of the pjproject dependency files was eliminated. They're not
+ needed for building unless you're actively modifying pjproject source
+ files and it makes the build process faster. Finally, any issues with
+ parallel builds should be resolved again making the build faster.
+
+ Change-Id: Icc5e3d658fbfb00e0a46b44c66dcc2522d5171b0
+
+2016-10-07 17:32 +0000 [dd873bcada] Corey Farrell <git@cfware.com>
+
+ * astobj2: Add backtrace to log_bad_ao2.
+
+ * Compile __ast_assert_failed unconditionally.
+ * Use __ast_assert_failed to log messages from log_bad_ao2
+ * Remove calls to ast_assert(0) that happen after log_bad_ao2 was run.
+
+ Change-Id: I48f1af44b2718ad74a421ff75cb6397b924a9751
+
+2016-10-04 16:59 +0000 [86550f9c17] gtjoseph <gjoseph@digium.com>
+
+ * alembic: Allow cdr, config and voicemail to exist in the same schema
+
+ cdr, config and voicemail are all separate alembic trees. Because
+ alembic's default is to use a table named 'alembic_version' to store
+ the current tree revision, the 3 trees can't exist in the same schema
+ without stepping on each other.
+
+ Now each tree uses 'alembic_version_<tree_name>' as the version table.
+ Each tree's env.py script now first checks for 'alembic_version'. If
+ it finds it AND its revision is in the tree's history, the script
+ renames it to 'alembic_version_<tree_name>'. Regardless, the script
+ then continues with the migration using 'alembic_version_<tree_name>'
+ and creates that table if it's not found. The result is that if an
+ existing 'alembic_version' table was found but it didn't belong to this
+ tree, it's left alone and 'alembic_version_<tree_name>' is used or
+ created.
+
+ WARNING: If multiple trees are using the same schema, they MUST NOT
+ CRU or D any objects with names that might exist in the other trees.
+ An example would be 'yesno_values' type. If two trees perform
+ operations on it, one tree could pull it out from under the other.
+ Thankfully we currently don't share any names among cdr, config and
+ voicemail.
+
+ NOTE: Since the env.py scripts in each tree were identical, a common
+ env.py has been placed in the ast-db-manage directory and a symlink
+ to it has been placed in each tree directory.
+
+ ASTERISK-24311 #close
+ Reported-by: Dafi Ni
+
+ Change-Id: I4d593f000350deb5d21a14fa1e9bc3896844d898
+
+2016-10-05 04:25 +0000 [f166681c12] Alexander Traud <pabstraud@compuserve.com>
+
+ * chan_sip: Honor support of Symmetric Response (rport) for SIP requests.
+
+ In the SIP channel driver chan_sip, the default is "auto_force_rport". When no
+ NAT was detected, for example in case of IPv6, Asterisk uses the IP address
+ from the headers within the SIP-REGISTER for subsequent SIP signaling. When
+ the remote party specifies support for Symmetric Response (RFC 3581) via the
+ parameter "rport", Asterisk should not extract the port from the SIP headers
+ but reuse the port of the transport. This did not happen because of a typo.
+
+ ASTERISK-26438 #close
+
+ Change-Id: If6e7891848aaf96666dee5305695f7c6667cd5a6
+
+2016-10-04 20:46 +0000 [430f6e5388] Michael Walton <mike@farsouthnet.com>
+
+ * audiohooks: Remove redundant codec translations when using audiohooks
+
+ The main frame read and write handlers in main/channel.c don't use the
+ optimum placement in the processing flow for calling audiohooks
+ callbacks, as far as codec translation is concerned. This change places
+ the audiohooks callback code:
+ * After the channel read translation if the frame is not linear before
+ the translation, thereby increasing the chance that the frame is linear
+ as required by audiohooks
+ * Before the channel write translation if the frame is linear at this
+ point
+ This prevents the audiohooks code from instantiating additional
+ translation paths to/from linear where a linear frame format is already
+ available, saving valuable CPU cycles
+
+ ASTERISK-26419
+
+ Change-Id: I6edd5771f0740e758e7eb42558b953f046c01f8f
+
+2016-09-29 14:02 +0000 [2449d2877c] Kevin Harwell <kharwell@digium.com>
+
+ * Remove "format_ogg_opus: New format"
+
+ This reverts commit 40aa28131bc30b4516da2b20eb1a1e043920169c.
+
+ ASTERISK-26426 #close
+
+ Change-Id: I81e55c3c512f1dd6f49896f0c6b97a07d74fd8f5
+
+2016-09-27 16:10 +0000 [f0a2e628d6] gtjoseph <gjoseph@digium.com>
+
+ * download_externals: Fix issue with re-install
+
+ Needed to ignore an xmlstarlet return code for optional element.
+
+ Change-Id: I6a96f709b4b38c9a3f3dda4e8b07903787e16873
+ Reported-by: Dan Jenkins
+
+2016-09-22 09:49 +0000 [5258c067ae] gtjoseph <gjoseph@digium.com>
+
+ * codec_opus: Add download ability to menuselect
+
+ Updated codecs/codecs.xml to add codec_opus to the external
+ download list.
+
+ ASTERISK-26409
+
+ Change-Id: Ia07b36539f30e852125fb2b94147dc9774df31a4
+
+2016-07-23 14:50 +0000 [a5af8709c8] gtjoseph <gjoseph@digium.com>
+
+ * codec_opus: Replace res_format_attr_opus with the one from codec_opus
+
+ Preparation
+
+ ASTERISK-26409
+
+ Change-Id: I9f20e7cce00c32464d9a180e81283d49d199d0a3
+ (cherry picked from commit 59f7662a93bf9c07204fb50e1020a0f5bfbbd5c9)
+
+2016-07-23 15:56 +0000 [44c0c51cf1] gtjoseph <gjoseph@digium.com>
+
+ * format_ogg_opus: New format
+
+ Add Ogg/Opus playback support.
+
+ This uses libopusfile in order to be able to read .opus files and play
+ them back.
+
+ Writing/recording support is not present at this time.
+
+ ASTERISK-26409
+
+ Change-Id: I8815d23345108d8ca7c0bd640f6a1ce6b4f56955
+
+2016-09-24 19:05 +0000 [0ab443007b] gtjoseph <gjoseph@digium.com>
+
+ * build_tools: Add ability to download variants to download_externals
+
+ Some external packages have multiple variants that apply to different
+ builds of asterisk. The DPMA for instance has a "bundled" variant that
+ needs to be downloaded if asterisk was configured with
+ --with-pjproject-bundled.
+
+ There are 2 ways to specify variants:
+
+ If you need the user to make the decision about which variant to
+ download, simply create multiple menuselect "member" entries like so...
+
+ <member name="res_digium_phone" displayname="..snipped..">
+ <support_level>external</support_level>
+ <depend>xmlstarlet</depend>
+ <depend>bash</depend>
+ <defaultenabled>no</defaultenabled>
+ </member>
+
+ <member name="res_digium_phone-bundled" displayname="..snipped..">
+ <support_level>external</support_level>
+ <depend>xmlstarlet</depend>
+ <depend>bash</depend>
+ <defaultenabled>no</defaultenabled>
+ </member>
+
+ Note that the second entry has "-<variant>" appended to the name.
+ You can then use the existing menuselect facilities to restrict which
+ members to enable or disable. Youy probably don't want the user to
+ enable multiple at the same time.
+
+ If you want to hide the details of the variants, the better way to
+ do it is to create 1 member with "variant" elements.
+
+ <member name="res_digium_phone" displayname="..snipped..">
+ <support_level>external</support_level>
+ <depend>xmlstarlet</depend>
+ <depend>bash</depend>
+ <defaultenabled>no</defaultenabled>
+ <member_data>
+ <downloader>
+ <variants>
+ <variant tag="bundled"
+ condition='[[ "$PJPROJECT_BUNDLED" = "yes" ]]'/>
+ </variants>
+ </downloader>
+ </member_data>
+ </member>
+
+ The condition must be a bash expression suitable for use with an "if"
+ statement. Any environment variable can be used plus those available
+ in makeopts.
+
+ In this case, if asterisk was configured with --with-pjproject-bundled
+ the bundled variant will be automatically downloaded. Otherwise the
+ normal version will be downloaded.
+
+ Change-Id: I4de23e06d4492b0a65e105c8369966547d0faa3e
+
+2016-09-22 01:40 +0000 [a0a17a8c6f] Aaron An <anjb@ti-net.com.cn>
+
+ * channels/chan_pjsip: fix HANGUPCAUSE function bug.
+
+ HANGUPCAUSE not return 'SIP 200 Ok' when dialed channel answered.
+ This patch change the call order of ast_queue_control_data
+ and ast_queue_control in chan_pjsip_incoming_response.
+
+ ASTERISK-26396 #close
+ Reported by: AaronAn
+ Tested by: AaronAn
+
+ Change-Id: Ide2d31723d8d425961e985de7de625694580be61
+
+2016-09-23 09:54 +0000 [0502675e5c] Alessandro Crespi
+
+ * chan_sip: Resolve externhost not to IPv6; instead go for IPv4.
+
+ For the channel driver chan_sip, you specify externhost=example.com in sip.conf
+ when your Asterisk is behind a NAT and your IP address is assigned dynamically.
+ Or stated differently: You do not have a static IP address to use "externaddr"
+ directly. This NAT support is quite handy but just about IPv4. Previously,
+ Asterisk resolved "externhost" to any IP version. When the first DNS answer
+ resolved to an IPv6, Asterisk sent an IPv6 in SIP/SDP for origin (o=) and
+ connection (c=). This happened in outgoing SIP-REGISTER and while answering
+ SIP-INVITE. If the remote peer is IPv4-only, it might not handle o=/c= with an
+ IPv6. This change makes sure, no IPv6 is resolved anymore for "externhost".
+
+ ASTERISK-18232 #close
+ Reported by: Jacek Kowalski
+ Tested by: Alexander Traud
+ patches:
+ changes.patch submitted by Alessandro Crespi
+
+ Change-Id: If68eedbeff65bd1c1d8a9ed921c02ba464b32dac
+
+2016-09-20 09:42 +0000 [0056bcaebd] gtjoseph <gjoseph@digium.com>
+
+ * chan_sip: Address runaway when realtime peers subscribe to mailboxes
+
+ Users upgrading from asterisk 13.5 to a later version and who use
+ realtime with peers that have mailboxes were experiencing runaway
+ situations that manifested as a continuous stream of taskprocessor
+ congestion errors, memory leaks and an unresponsive chan_sip.
+
+ A related issue was that setting rtcachefriends=no NEVER worked in
+ asterisk 13 (since the move to stasis). In 13.5 and earlier, when a
+ peer tried to register, all of the stasis threads would block and
+ chan_sip would again become unresponsive. After 13.5, the runaway
+ would happen.
+
+ There were a number of causes...
+ * mwi_event_cb was (indirectly) calling build_peer even though calls to
+ mwi_event_cb are often caused by build_peer.
+ * In an effort to prevent chan_sip from being unloaded while messages
+ were still in flight, destroy_mailboxes was calling
+ stasis_unsubscribe_and_join but in some cases waited forever for the
+ final message.
+ * add_peer_mailboxes wasn't properly marking the existing mailboxes
+ on a peer as "keep" so build_peer would always delete them all.
+ * add_peer_mwi_subs was unsubscribing existing mailbox subscriptions
+ then just creating them again.
+
+ All of this was causing a flood of subscribes and unsubscribes on
+ multiple threads all for the same peer and mailbox.
+
+ Fixes...
+ * add_peer_mailboxes now marks mailboxes correctly and build_peer only
+ deletes the ones that really are no longer needed by the peer.
+ * add_peer_mwi_subs now only adds subscriptions marked as "new" instead
+ of unsubscribing and resubscribing everything. It also adds the peer
+ object's address to the mailbox instead of its name to the subscription
+ userdata so mwi_event_cb doesn't have to call build_peer.
+
+ With these changes, with rtcachefriends=yes (the most common setting),
+ there are no leaks, locks, loops or crashes at shutdown.
+
+ rtcachefriends=no still causes leaks but at least it doesn't lock, loop
+ or crash. Since making rtcachefriends=no work wasnt in scope for this
+ issue, further work will have to be deferred to a separate patch.
+
+ Side fixes...
+ * The ast_lock_track structure had a member named "thread" which gdb
+ doesn't like since it conflicts with it's "thread" command. That
+ member was renamed to "thread_id".
+
+ ASTERISK-25468 #close
+
+ Change-Id: I07519ef7f092629e1e844f855abd279d6475cdd0
+
+2016-09-21 15:03 +0000 [323aff3a09] Joshua Colp <jcolp@digium.com>
+
+ * core: Ensure presencestate subtype and message are NULL.
+
+ When retrieving presence state information there is no
+ guarantee that the subtype and message passed in are
+ set to NULL. This change ensures they are.
+
+ ASTERISK-26397 #close
+
+ Change-Id: I61f8187972d5d8bbd7d6b7f4daa4f4f7e8237b23
+
+2016-09-21 10:48 +0000 [10c180760c] Joshua Colp <jcolp@digium.com>
+
+ * res_odbc: Make pooling option deprecation notice more useful.
+
+ This changes the notice for the deprecation of the old
+ pooling options to point to the new option for doing
+ pooling. This gives a clearer direction as to what to
+ look into.
+
+ ASTERISK-26389 #close
+
+ Change-Id: I2ca9cdfdcd75aec170a7db9d5ff69a4cd25b7c10
+
+2016-09-12 07:37 +0000 [42cc267016] Tzafrir Cohen <tzafrir.cohen@xorcom.com>
+
+ * cdr_mysql: fix UTC support
+
+ * Make 'cdrzone=UTC' work properly.
+ * Fix the documentation of cdr_mysql.conf: it's cdrzone and not timezone
+
+ ASTERISK-26359 #close
+
+ Change-Id: I2a6f67b71bbbe77cac31a34d0bbfb1d67c933778
+
+2016-09-21 08:46 +0000 [f16ab19292] Joshua Colp <jcolp@digium.com>
+
+ * odbc: Remove options that are no longer applicable.
+
+ The pooling, shared_connection, limit, and idlecheck options
+ are no longer used in res_odbc.
+
+ ASTERISK-26389
+
+ Change-Id: I2fde7b467d01f9d1c82cc0a339bb4f7e1dd6bbe6
+
+2016-09-20 15:17 +0000 [c9ce299b64] Corey Farrell <git@cfware.com>
+
+ * core: Fix LOW_MEMORY missing symbol ast_pbx_uuid_get.
+
+ Move the function outside the conditional block that excludes
+ LOW_MEMORY.
+
+ ASTERISK-26273 #close
+
+ Change-Id: Ic290fa128222c410c3531107e30efacabc8493b4
+
+2016-09-20 10:05 +0000 [610eb4c189] Corey Farrell <git@cfware.com>
+
+ * logger: Fix default console settings.
+
+ When logger.conf is missing or invalid we should be printing notices,
+ warnings and errors to the console. The logmask was incorrectly
+ calculated.
+
+ Change-Id: Ibaa9465a8682854bc1a5e9ba07079bea1bfb6bb3
+
+2016-06-27 14:26 +0000 [36092ee3a0] Tzafrir Cohen <tzafrir.cohen@xorcom.com>
+
+ * sd_notify (systemd status notifications) support
+
+ sd_notify() is used to notify systemd of changes to the status of the
+ process. This allows the systemd daemon to know when the process
+ finished loading (and thus only start another program after Asterisk has
+ finished loading).
+
+ To use this, use a systemd unit with 'Type=notify' for Asterisk.
+
+ This commit also adds the function ast_sd_notify(), a wrapper around
+ sd_notify that does nothing if not built with systemd support.
+
+ Also adds support for libsystemd detection in the configure script.
+
+ Change-Id: Ied6a59dafd5ef331c5c7ae8f3ccd2dfc94be7811
+ (cherry picked from commit 07b95f7c65b7c083724f1af2b26f93cc22cad58c)
+
+2016-09-19 14:21 +0000 [9372d32100] Walter Doekes <walter+github@wjd.nu>
+
+ * asterisk.c: Non-root users also get the astcanary after core restart.
+
+ Without this change, a 'core restart' would kill the astcanary forever
+ if you're not running as root. Both with and without this patch, the
+ scheduling priority was still SCHED_RR after restart.
+
+ Additionally, the astcanary is now spawned if you start with high
+ priority and Asterisk doesn't get a chance to lower it. For example
+ through: `chrt -r 10 sudo -u asterisk asterisk -c`
+
+ Also reap killed astcanary processes on core restart.
+
+ ASTERISK-26352 #close
+
+ Change-Id: Iacb49f26491a0717084ad46ed96b0bea5f627a55
+
+2016-09-19 09:40 +0000 [e96448e991] Walter Doekes <walter+github@wjd.nu>
+
+ * asterisk.c: When astcanary dies on linux, reset priority on all threads.
+
+ Previously only the canary checking thread itself had its priority set
+ to SCHED_OTHER. Now all threads are traversed and adjusted.
+
+ ASTERISK-19867 #close
+ Reported by: Xavier Hienne
+
+ Change-Id: Ie0dd02a3ec42f66a78303e9c1aac28f7ed9aae39
+
+2016-09-09 06:35 +0000 [01884a7af6] Timo Teräs <timo.teras@iki.fi>
+
+ * Fix showing of swap details when sysinfo() is available
+
+ If sysinfo() is available, but not sysctl() or swapctl() the
+ printing code for swap buffer sizes is incorrectly omitted.
+ The above condition happens with musl c-library.
+
+ Fix #if rule to consider defined(HAVE_SYSINFO). And also
+ remove the redundant || defined(HAVE_SYSCTL) which was
+ incorrectly there to start with. Now swap information is
+ displayed only if an actual libc function to get it is
+ available.
+
+ This also fixes warnings previously seen with musl libc:
+
+ [CC] asterisk.c -> asterisk.o
+ asterisk.c: In function 'handle_show_sysinfo':
+ asterisk.c:773:6: warning: variable 'totalswap' set but not used
+ [-Wunused-but-set-variable]
+ int totalswap = 0;
+ ^~~~~~~~~
+ asterisk.c:770:11: warning: variable 'freeswap' set but not used
+ [-Wunused-but-set-variable]
+ uint64_t freeswap = 0;
+ ^~~~~~~~
+
+ Change-Id: I1fb21dad8f27e416c60f138c6f2bff03fb626eca
+
+2016-09-12 18:00 +0000 [cdbad152c7] Richard Mudgett <rmudgett@digium.com>
+
+ * res_config_odbc.c: Fix buffer size limitation creating invalid SQL.
+
+ Creating ODBC SQL queries resulted in queries too large to fit into the
+ supplied buffer. The resulting truncated buffer contained an invalid SQL
+ query.
+
+ * Made SQL query generation code use a thread storage buffer that can
+ increase in size as needed.
+
+ * Fixed bad multi-line warning messages.
+
+ ASTERISK-26263 #close
+ Reported by: Jeppe Ryskov Larsen
+
+ Change-Id: I23f3cdd43c2dac80bed3ded4dd77d18cb17f21ae
+
+2016-09-14 08:42 +0000 [449719be00] Joshua Colp <jcolp@digium.com>
+
+ * res_pjsip_multihomed: Change Contact port to listening port.
+
+ The res_pjsip_multihomed module determines what interface and transport
+ a request is going out on and updates the SIP message accordingly with
+ the address information. This currently incorrectly updates the Contact
+ header for connectionful protocols to the ephemeral connection port,
+ instead of the bound address for the listening socket which can actually
+ accept the connection back. If the remote side attempts to connect back on
+ the epehemeral port it will fail.
+
+ This change makes it so the port is updated to the bound port on
+ connectionful protocols and is maintained on UDP (as there can be
+ multiple of those).
+
+ ASTERISK-26374 #close
+
+ Change-Id: I50f8dab65b9f75117d73ba5f6bbcf6c9871854ab
+
+2016-09-07 14:48 +0000 [4d64b176eb] gtjoseph <gjoseph@digium.com>
+
+ * pjproject_bundled: Prevent SERVFAIL from marking name server bad
+
+ A name server that returns "Server Failure" is indicating only that
+ the server couldn't process that particular request. We should NOT
+ assume that the name server is incapable of serving other requests.
+
+ Here's the scenario we've been encountering...
+
+ * 2 local name servers configured in resolv.conf.
+ * An OPTIONS request causes a request for A and AAAA records to go out
+ to both nameservers.
+ * The A responses both come back successfully resolved.
+ * Because of an issue at some upstream nameserver, the AAAA responses
+ for that particular query come back as "SERVFAIL" from both local
+ name servers.
+ * Both local servers are marked as bad and no further queries can be
+ sent until the 60 second ttl expires. Only previously cached results
+ can be used.
+ * In this case, 60 seconds is just enough time for another OPTIONS
+ request to go out to the same host so the cycle repeats.
+
+ We could set the bad ttl really low but that also affects REFUSED and
+ NOTAUTH which probably DO signal a real server issue. Besides, even
+ a really low bad ttl would be an issue on a pbx.
+
+ Although we use our own resolver in 14 and master and don't have this
+ issue there, Teluu has merged this patch upstream so it's appropriate
+ to cherry-pick to 14 and master to keep pjproject consistent.
+
+
+ Change-Id: Ie03ba902288e274aff23f9b9bb2786e1e8be09e0
+
+2016-09-14 07:59 +0000 [1cac856e17] Joshua Colp <jcolp@digium.com>
+
+ * rtp: Preserve timestamps on video frames.
+
+ Currently when receiving video over RTP we store only
+ a calculated samples on the frame. When starting the video
+ it can take some time for this calculation to actually yield
+ a value as it requires constant changing timestamps. As well
+ if a video frame passes over multiple RTP packets this calculation
+ will fail as the timestamp is the same as the previous RTP
+ packet and the number of samples calculated will be 0.
+
+ This change preserves the timestamp on the frame and allows
+ it to pass through the core. When sending the video this timestamp
+ is used instead of a new one being calculated.
+
+ ASTERISK-26367 #close
+
+ Change-Id: Iba8179fb5c14c9443aee4baf670d2185da3ecfbd
+
+2016-09-14 09:51 +0000 [9df4056d70] Joshua Colp <jcolp@digium.com>
+
+ * res_pjsip_transport_management: Convert time in log message to seconds.
+
+ ASTERISK-26375 #close
+
+ Change-Id: I46496af5cae41413e76d44d2068a7431279f09dc
+
+2016-09-13 05:34 +0000 [98e42cc662] Steve Davies <steve@one47.co.uk>
+
+ * chan_sip: Fix session timeout on retransmit of non-UDP packets
+
+ Change-Id I1cd33453c77c56c8e1394cd60a6f17bb61c1d957 Enable Session-Timers for
+ SIP over TCP (and TLS) also disables SIP retransmits in chan_sip for non-UDP
+ connections, allowing the TCP layer to handle the retransmits. Unfortunately,
+ this caused sessions to be terminated with a retransmit timeout becasue it
+ stopped at the point of the first retrans call.
+
+ This patch waits for the 64*T1 timer to expire instead.
+
+ ASTERISK-19968
+
+ Change-Id: I844f26801aada10bc94e9bebe6e151f0a8443204
+
+2016-09-12 12:25 +0000 [0388882cdb] Richard Mudgett <rmudgett@digium.com>
+
+ * app_queue: Fix CLI "queue show" and AMI Queues action output truncation.
+
+ The output of CLI "queue show" and AMI Queues action is truncated and
+ "failed to extend from 240 to 327" messages are generated if the queue
+ member and interface names are lengthy.
+
+ * Increase the string buffer size from 240 to 512 in order to accommodate
+ for more information fields added to the output since v1.8.
+
+ ASTERISK-26360 #close
+ Reported by: Richard Mudgett
+
+ Change-Id: Id99c03cf5362453b80491a4b3b0434cb67aa966d
+
+2016-09-12 03:28 +0000 [da8ba990d1] Walter Doekes <walter+github@wjd.nu>
+
+ * chan_sip: Allow target refresh (Contact update) on re-INVITE.
+
+ Previously, the Contact was stored only on initial INVITE and on any
+ 18X and 200. That meant that after re-INVITEs from *us* the Contact
+ could get updated, but after re-INVITEs from the *peer*, it did not.
+
+ This changeset fixes this inconsistency, properly allowing target
+ refreshes through re-INVITES (RFC3261, 12.2).
+
+ If your strictrtp setting allows it, this change allows you to switch
+ the source IP of a connected/calling device mid-call with a simple
+ re-INVITE from the new IP.
+
+ ASTERISK-26358 #close
+
+ Change-Id: Ibb8512054ab27c8c3d2514022568fde943bf2435
+
+2016-08-31 15:22 +0000 [e9ddab4685] Richard Mudgett <rmudgett@digium.com>
+
+ * sip_to_pjsip.py: Map legacy_useroption_parsing.
+
+ Map the sip.conf general section legacy_useroption_parsing to the
+ new pjsip.conf global ignore_uri_user_options.
+
+ ASTERISK-26316
+ Reported by: Kevin Harwell
+
+ Change-Id: I78108a31995db19d41f4e1a07b3324692c5363fc
+
+2016-08-29 18:08 +0000 [30af92e78d] Richard Mudgett <rmudgett@digium.com>
+
+ * res_pjsip: Add ignore_uri_user_options option.
+
+ This implements the chan_sip legacy_useroption_parsing option but with a
+ better name.
+
+ * Made the caller-id number and redirecting number strings obtained from
+ incoming SIP URI user fields always truncated at the first semicolon.
+ People don't care about anything after the semicolon showing up on their
+ displays even though the RFC allows the semicolon.
+
+ ASTERISK-26316 #close
+ Reported by: Kevin Harwell
+
+ Change-Id: Ib42b0e940dd34d84c7b14bc2e90d1ba392624f62
+
+2016-09-09 06:26 +0000 [7ed5dc2c58] Walter Doekes <walter+github@wjd.nu>
+
+ * contrib: Let safe_asterisk script continue without /dev/tty9.
+
+ If you use the safe_asterisk script, it uses hardcoded defaults before
+ running configurable values from /etc/asterisk/startup.d. The hardcoded
+ default has TTY=9. Some containerized environments don't have such a
+ TTY, and safe_asterisk would stop.
+
+ The custom configuration from /etc/asterisk/startup.d/* isn't read until
+ after it stopped, so changing TTY in a custom config did not help.
+
+ This changeset changes safe_asterisk to continue if the TTY setting was
+ untouched and /dev/tty9 and /dev/vc/9 aren't found.
+
+ Change-Id: I2c7cdba549b77f418a0af4cb1227e8e6fe4148fc
+
+2016-09-09 05:39 +0000 [7580a736bb] Joshua Colp <jcolp@digium.com>
+
+ * res_pjsip: Only invoke unidentified endpoint logic when unidentified.
+
+ The code was incorrectly invoking the unidentified logic when
+ an endpoint had actually been identified, causing log messages
+ to be output.
+
+ ASTERISK-26349 #close
+
+ Change-Id: Id8104fc9e3d138d5e8b6f6977ecc08765fd17d4f
+
+2016-08-23 06:35 +0000 [efcfc4c1ee] Corey Farrell <git@cfware.com> (license 5909)
+
+ * chan_sip: Don't allocate new RTP instances on top of old ones.
+
+ In some scenarios dialog_initialize_rtp can be called multiple times on
+ the same dialog. This can cause RTP instances to be leaked along with
+ multiple file descriptors for each instance.
+
+ This change makes it so the existing RTP instances are destroyed and
+ not overwritten, stopping the memory leak.
+
+ ASTERISK-26272 #close
+ patches:
+ ASTERISK-26272-13.patch submitted by Corey Farrell (license 5909)
+
+ Change-Id: Id529de1184c68f2f4d254ab41a1f458dafdb5f73
+
+2016-08-16 15:34 +0000 [f1ffc22933] Mark Michelson <mmichelson@digium.com>
+
+ * res_pjsip: Do not crash on ACKs from unknown endpoints.
+
+ The endpoint identification PJSIP module is intended to identify which
+ endpoint an incoming request is from. If an endpoint is not identified,
+ then an artificial endpoint is used in its place when proceeding.
+
+ The problem is that the ACK request type is an exception to the rule.
+ The artificial endpoint is not used when processing an ACK. This results
+ in the possibility of having a NULL endpoint being used further on.
+
+ The reason ACK is an exception is an attempt not to spam security logs
+ with unidentified requests. Presumably, you've already logged the
+ unidentified request on the preceeding INVITE.
+
+ Up until Asterisk 13.10, retrieving a NULL endpoint in this fashion
+ didn't cause an issue. A new change in 13.10 added endpoint ACL checking
+ shortly after endpoint identification. Because we are accessing a NULL
+ endpoint, this ACL check resulted in a crash.
+
+ The fix here is to be sure to retrieve the artificial endpoint for all
+ request types. ACKs still do not generate unidentified request security
+ events.
+
+ ASTERISK-26264 #close
+ Reported by nappsoft
+
+ AST-2016-006
+
+ Change-Id: Ie0c795ae2d72273decb972dd74b6a1489fb6b703
+
+2016-09-06 11:46 +0000 [23d6ec7417] Richard Mudgett <rmudgett@digium.com>
+
+ * res_pjsip_messaging.c: Misc cleanups and fixes.
+
+ * Eliminated RAII_VAR in get_outbound_endpoint().
+
+ * Simplify update_to() coding. However, this function can only be a NoOp
+ because the To string can only be a URI and not a name-address formatted
+ string.
+
+ * Simplify update_from() coding. Also fixed a code path modifying the
+ from string when the caller could still want to use the original string.
+
+ * Fixed msg_data_create() incompletely removing the "pjsip:" to then add
+ back the "sip:" string if needed. The code didn't handle the "pjsip:sip:"
+ case because it left the colon after pjsip in the string.
+
+ Change-Id: I68a09a665f6d4daa9eaa59069045ab69122e28db
+
+2016-09-07 16:00 +0000 [5f19657710] Joshua Colp <jcolp@digium.com>
+
+ * res_pjsip: Allow global headers to be overridden.
+
+ Currently when you add global headers from the dialplan both
+ the header in the dialplan and the globally configured header
+ are added to the resulting SIP INVITE. This change makes it
+ so the headers in the dialplan take precedence and are the
+ only ones added.
+
+ Change-Id: I36f864298f38db3632ad503edc11267cb8ffb3ad
+
+2016-08-11 12:10 +0000 [206d4f57dc] Tzafrir Cohen <tzafrir.cohen@xorcom.com>
+
+ * followme: initialize all config items on reload
+
+ Some configuration directives were not initialized on reload, and hence
+ were not reset to default if they were removed from followme.conf.
+
+ ASTERISK-26288 #close
+
+ Change-Id: Ief829e16374ad1e0ecfd63e6ee4923b5a1d1c150
+
+2016-08-01 20:55 +0000 [117a7741c8] gtjoseph <gjoseph@digium.com>
+
+ * build: Add download capability for external packages
+
+ The DPMA and g729a, silk, siren7 and siren14 codecs hosted at
+ http://downloads.digium.com/pub/telephony/ are now listed in the
+ "External" sections of the "Resource Modules" and "Codec Translators"
+ pages in menuselect. Any that are selected will automatically be
+ downloaded and installed when "make install" is run. Their LICENSE and
+ README (if avaialble) files will be installed to
+ ASTVARLIBDIR/documentation/thirdparty/<product_name>.
+
+ Example use with codecs:
+
+ The codecs/codecs.xml file is a menuselect style xml file that lists
+ the codecs to be included. Their support levels are 'external', which
+ triggers the download and install, and defaultenabled is no. Also
+ because codec_g729a is actually in a directory named codec_g729 on the
+ download server, the newly added 'member_data' element is used to
+ override the default of the directory name being the package name. You
+ can use the 'directory_name' attribute to keep default base URL
+ (http://downloads.digium.com/pub/telephony/) but use the new directory,
+ or you use the 'remote_url' attribute to specify a full URL to the
+ download directory. In this case, you must still follow the same
+ subdirectory naming conventions as that used for the packages located
+ at 'http://downloads.digium.com/pub/telephony'.
+
+ A new configure option '--with-externals-cache' was added and like
+ '--with-sounds-cache' it allows the installer to cache tarballs so
+ they're not downloaded every time.
+
+ To assist with the download and install process, each external package
+ now has a manifest.xml file that, among other things, contains a package
+ version and checksums for each file in the tarball. The manifest is
+ saved to both the cache directory and ASTMODDIR and together with the
+ manifest.xml on the downloads site, tells the install scripts whether
+ a download and/or update is needed.
+
+ bash and xmlstarlet are required for downloader operation. If they're
+ not installed, the external items in menuselect will be unavailable.
+
+ Change-Id: Id3dcf1289ffd3cb0bbd7dfab3cafbb87be60323a
+
+2016-09-06 02:41 +0000 [d04ae7d1d8] Walter Doekes <walter+github@wjd.nu>
+
+ * chan_sip: Don't refuse calls with "optional crypto"; fall back to RTP.
+
+ Certain SNOM phones send so-called "optional crypto" in their SDP body.
+ Regular SRTP setup looks like this:
+
+ m=audio 64620 RTP/SAVP 8 0 9 99 3 18 4 101
+ a=crypto:1 AES_CM_128_HMAC_SHA1_32 inline:...
+
+ SNOM-style "optional crypto" looks like this:
+
+ m=audio 61438 RTP/AVP 8 0 9 99 3 18 4 101
+ a=crypto:1 AES_CM_128_HMAC_SHA1_32 inline:...
+
+ A crypto line is supplied, but the m-line does not have SAVP.
+
+ When res_srtp.so is *not* loaded, then chan_sip.so treats the optional
+ crypto as regular RTP, but when res_srtp.so *is* loaded, it refuses the
+ incoming call with the following message:
+
+ WARNING: process_sdp: Failed to receive SDP offer/answer with
+ required SRTP crypto attributes for audio
+
+ For platforms that want to start providing SRTP this presents a
+ compatibility problem.
+
+ This changeset lets chan_sip handle the SDP as if no crypto-line was
+ supplied: i.e. accept the call as regular RTP, just like it did before
+ res_srtp was loaded.
+
+ Now you'll get this informative warning instead:
+
+ WARNING: Ignoring crypto attribute in SDP because RTP transport is
+ insecure
+
+ ASTERISK-23989 #close
+ Reported by: Olle Johansson
+
+ Change-Id: I91a15ae05a0296e398d6b65f53bb11afde1d80e2
+
+2016-09-03 16:04 +0000 [df3d0188e4] Matt Jordan <mjordan@digium.com>
+
+ * apps/app_dial: Fix crash on non-connect call paths for Privacy/Screening option
+
+ In any scenario in which the callee is not connected to the caller, the
+ current code in app_dial will crash due to raising a Dial End Stasis
+ Message after the callee channel has been hung up. This patch corrects
+ the error by simply moving the explicit hangup of the callee (peer)
+ channel until after the dial end message.
+
+ ASTERISK-25691 #close
+
+ Change-Id: I816a414014424d0d8c80e2a3cbef13ef8c63798d
+
+2016-09-03 16:02 +0000 [a64063cc97] Matt Jordan <mjordan@digium.com>
+
+ * apps/app_dial: Set the DIALSTATUS to NOANSWER on privacy option 5
+
+ If the callee selects option '5' using the Dial application's privacy
+ (P) option, the DIALSTATUS is erroneously set to ANSWER. This option
+ reflects the callee sending the caller to VoiceMail one time; the call
+ is definitely *not* ANSWERed in such a scenario. With this patch, the
+ DIALSTATUS is instead set to NOANSWER, which is the same DIALSTATUS that
+ is set when the 'send to VoiceMail every time' option is set.
+
+ ASTERISK-25691
+
+ Change-Id: Iaf0c9f0fa00545e7366443875e2bb7d9a89a1358
+
+2016-08-30 16:40 +0000 [03fc438f6e] Richard Mudgett <rmudgett@digium.com>
+
+ * res_pjsip_registrar.c: Reduce stack usage in find_aor_name().
+
+ Change-Id: I8aebad1fdcf303bd115b59a4b57fbbd5b2267f09
+
+2016-08-29 18:06 +0000 [b5e753227d] Richard Mudgett <rmudgett@digium.com>
+
+ * pjsip_configuration.c: Ignore repeated identify by methods.
+
+ Change-Id: Ied0c06043d1dfef8fdc9c9a808cf89b118119838
+
+2016-08-30 17:26 +0000 [9b7501b6ad] Richard Mudgett <rmudgett@digium.com>
+
+ * config_global.c: Comments and a default expression adjustment.
+
+ Change-Id: Ia6a58f8c73a30da6874b3f94364dce162d6f1ad3
+
+2016-08-31 15:14 +0000 [3314e1cec2] Richard Mudgett <rmudgett@digium.com>
+
+ * sip_to_pjsip.py: Map canreinvite as directmedia alias.
+
+ Change-Id: I48b8e150f96a3d2a24d8fc25fbe4f5aff9f4a6b2
+
+2016-08-31 15:37 +0000 [6372f40ba0] Richard Mudgett <rmudgett@digium.com>
+
+ * sip_to_pjsip.py: Fix typo converting outboundproxy registration.
+
+ Change-Id: I6f30e5f9fcf8469ba0079fbf884047d54c2c0b15
+
+2016-08-31 15:13 +0000 [11eb1afd2d] Richard Mudgett <rmudgett@digium.com>
+
+ * sip_to_pjsip.py: Fix comment typo and tabs.
+
+ Change-Id: If35174614545727817d329c60ba4456c028941b5
+
+2016-08-31 15:56 +0000 [0f9b144c1a] Richard Mudgett <rmudgett@digium.com>
+
+ * Sample configs: Eliminate false multiline comment block starts.
+
+ Change-Id: Ie627def9604ae30abd80754f9e6f09874825aec6
+
+2016-09-02 11:36 +0000 [8d1c535bd6] Richard Mudgett <rmudgett@digium.com>
+
+ * format_cap.c: Fix CLI "core show channeltype Surrogate" crash.
+
+ * Make ast_format_cap_get_names() NULL tolerant.
+
+ ASTERISK-26331 #close
+ Reported by: CGI.NET
+
+ Change-Id: Id67e93936dc8ec2a33a9d33655843d43b59285a3
+
+2016-08-18 14:45 +0000 [9bca895469] Alexei Gradinari <alex2grad@gmail.com>
+
+ * res_pjsip_session: segfault on already disconnected session
+
+ On heavy loaded system the TCP/TLS incoming calls could be
+ disconnected by pjproject while these calls are being
+ processed by asterisk which could use the session's memory pools.
+ If the session in the disconnected state then the session memory
+ pools were already freed, so we get segfault.
+
+ This patch adds a lifetime control on an INVITE session to pjproject.
+ The lifetime of the session is manipulated by calling
+ pjsip_inv_add_ref/pjsip_inv_dec_ref.
+ This patch uses these functions to inform pjproject that the
+ session is in use.
+
+ This patch adds check if the session state is not disconnected
+ and also checks if the memory pool is not NULL.
+
+ This patch also places tasks 'session_end' and 'session_end_completion'
+ into session's serializer to avoid race condition.
+
+ ASTERISK-26291 #close
+
+ Change-Id: I4d28b1fb3b91f0492a911d110049d670fdc3c8d7
+
+2016-08-10 15:14 +0000 [63feffa126] Mark Michelson <mmichelson@digium.com>
+
+ * ConfBridge: Make some announcements asynchronous.
+
+ Confbridge announcements tend to block a channel while they are being
+ played. In some circumstances, this is warranted since you want that
+ particular channel not to hear the announcement (Example: "John Doe has
+ entered the conference"). For others it makes less sense.
+
+ This change first introduces methods for playing sounds asynchronously
+ into the conference. This is very similar to how synchronous sounds are
+ played, except the channel initiating the playback does not wait for the
+ sound to complete before moving on.
+
+ Asynchronous announcements are used for two circumstances:
+ * Sounds played for a user after they have left the bridge
+ * Sounds that play first to a single user and then the rest of the
+ conference (if the channel and conference use the same language)
+
+ ASTERISK-26289 #close
+ Reported by Mark Michelson
+
+ Change-Id: Ie486bb3de1646d50894489030326a423e594ab0a
+
+2016-08-31 12:23 +0000 [a002a4d2db] Michael Kuron <m.kuron@gmx.de>
+
+ * app_mp3: Use correct buffer size and the same sample rate as the channel
+
+ Previously, the buffer used for MP3 streamed from HTTP servers had a size of
+ 1 MB. For 8 kHz mono audio at 16 bit resolution, such a buffer covers about 1
+ minute. Only when the buffer is full does audio start to play.
+ For MP3 files streamed from a server, that is usually not a big deal as long as
+ the connection to the server is fast enough to supply that much data within a
+ second or two. For MP3 live streams however, it takes 1 minute to download 1
+ minute of audio, so without this change, app_mp3 wasn't really usable for MP3
+ live streams.
+ This commit changes the buffer size so that it covers 6 seconds of an MP3 file
+ streamed from a server and 0.5 seconds of an MP3 live stream. The latter is
+ identified by the use of a .m3u file extension.
+
+ app_mp3 so far only supported 8 kHz audio.
+ Now it always runs at the sample rate of the channel.
+
+ ASTERISK-26085 #close
+
+ Change-Id: Id1ee274733cd804a0edecf7450329b72f1235af0
+
+2016-08-26 10:39 +0000 [308a65fe6c] Alexei Gradinari <alex2grad@gmail.com>
+
+ * res_pjsip: qualify/unqualify added/deleted realtime endpoints
+
+ If the PJSIP endpoint's AOR with the permanent contact
+ was deleted from the realtime storage the res_pjsip module
+ continues trying to qualify this contact.
+ The error 'Unable to find an endpoint to qualify contact'
+ appeares every 'qualify_frequency' seconds.
+ This patch deletes this contact in this case.
+
+ The PJSIP endpoint's AOR with the permanent contact
+ is never qualified if it is added to realtime storage
+ after asterisk started.
+ This patch adds qualifying for the AOR's permanent contacts
+ on the first handling of this AOR.
+
+ ASTERISK-26319 #close
+
+ Change-Id: Ib93dded9121edb113076903d1aa95402f799f8fe
+
+2016-08-17 02:51 +0000 [2fa168348e] chris de rock <chris@derock.de>
+
+ * app_macro: Consider '~~s~~' as a macro start extension.
+
+ As described in issue ASTERISK-26282 the AEL parser creates macros with
+ extension '~~s~~'. app_macro searches only for extension 's' so the
+ created extension cannot be found. with this patch app_macro searches for
+ both extensions and performs the right extension.
+
+ ASTERISK-26282 #close
+
+ Change-Id: I939aa2a694148cc1054dd75ec0c47c47f47c90fb
+
+2016-08-29 07:10 +0000 [27951792c4] Etienne Lessard <elessard@proformatique.com>
+
+ * pbx.c: Prevent infinite recursion in manager_show_dialplan_helper.
+
+ Previously, if context A was including context B and context B was including
+ context A, i.e. if there was a circular dependency between contexts, then
+ calling manager_show_dialplan_helper could lead to an infinite recursion,
+ resulting in a crash.
+
+ This commit applies the same solution as the one implemented in the
+ show_dialplan_helper function. The manager_show_dialplan_helper and
+ show_dialplan_helper functions contain lots of code in common, but the former
+ was missing the "infinite recursion avoidance" code.
+
+ ASTERISK-26226 #close
+
+ Change-Id: I1aea85133c21787226f4f8442253a93000aa0897
+
+2016-08-26 14:34 +0000 [fb82fdb013] gtjoseph <gjoseph@digium.com>
+
+ * pjproject_bundled: Disable srtp use by pjmedia
+
+ The reason for the disable is that while Asterisk works fine with older
+ libsrtp versions, newer versions of pjproject won't compile with them.
+ Debian 6 for instance, has libsrtp 1.4.4 which is older than what
+ pjproject is expecting.
+
+ We don't use most of pjmedia but we DO use it for SDP negotiation.
+ Luckily disabling srtp in pjmedia doesn't interfere with it's ability
+ to negitiate a secure channel. The proper crypto attributes are
+ negotiated in both directions.
+
+ ASTERISK-26279 #close
+
+ Change-Id: Id25a92cdf3df97a26c53cffae65b6b82de33c8e2
+
+2016-08-26 08:41 +0000 [847bd47ff0] Alexander Traud <pabstraud@compuserve.com>
+
+ * channel: No hung-up on failing security requirements.
+
+ In your Diaplan, if you specify
+ same => n,Set(CHANNEL(secure_bridge_media)=1)
+ same => n,Set(CHANNEL(secure_bridge_signaling)=1)
+ only the SIP channel driver chan_sip supports this. All other channels drivers
+ like res_pjsip fail. In case of failure, the original sRTP source code released
+ the whole channel, even if not hung-up, yet. This change does not release the
+ channel but instead hangs-up the channel.
+
+ ASTERISK-26306
+
+ Change-Id: I0489f0cb660fab6673b0db8af027d116e70a66db
+
+2016-08-20 09:04 +0000 [b59d3b48d0] Alexander Traud <pabstraud@compuserve.com>
+
+ * sip_to_pjsip: Migrate IPv4/IPv6 (Dual Stack) configurations.
+
+ When using the migration script sip_to_pjsip.py, and your sip.conf is
+ configured with bindaddr=::, two transports are written to pjsip.conf, one for
+ 0.0.0.0 (IPv4) and one for [::] (IPv6). That way, PJProject listens on the IPv4
+ and IPv6 wildcards; a IPv4/IPv6 Dual Stack configuration on a single interface
+ like in chan_sip.
+
+ Furthermore, the script internal functions "build_host" and "split_hostport"
+ did not parse Literal IPv6 addresses as expected (like [::1]:5060). This change
+ makes sure, even such addresses are parsed correctly.
+
+ ASTERISK-26309
+
+ Change-Id: Ia4799a0f80fc30c0550fc373efc207c3330aeb48
+
+2016-08-25 07:06 +0000 [f69f5cd3c4] Joshua Colp <jcolp@digium.com>
+
+ * app_queue: Ensure member is removed from pending when hanging up.
+
+ When dialing channels it is possible that they may not ever
+ leave the not in use state (Local channels in particular) by
+ the time we cancel them. If this occurs but we know they were
+ dialed we explicitly remove them from the pending members
+ container so that subsequent call attempts occur.
+
+ ASTERISK-26299 #close
+
+ Change-Id: I6ad0d17c36480c92cebf840626228ce3f7e4bd65
+
+2016-08-04 20:11 +0000 [5cd583d7a2] Richard Mudgett <rmudgett@digium.com>
+
+ * res_pjsip: Cache global config options.
+
+ We may check a global config option hundreds of times a second or more.
+ Asking sorcery for the global configuration from the config files backend
+ involves several allocations and container traversals. Using realtime
+ without a memory cache is a lot worse because you have to lookup in the
+ realtime database each time to reconstitute the sorcery object. With a
+ memory cache for realtime, there is about the same amount of overhead as
+ for config files. Either way, it is still fairly expensive to access the
+ sorcery object that much.
+
+ * Cache the global config options so we can access them faster. You must
+ now always perform a res_pjsip reload to change the global options.
+
+ Change-Id: Ice16c7a4cbca4614da344aaea21a072b86263ef7
+
+2016-08-23 11:02 +0000 [8b4b2500ee] Richard Mudgett <rmudgett@digium.com>
+
+ * res_fax: Fix deadlock in ast_channel_get_t38_state().
+
+ ast_channel_get_t38_state() calls ast_channel_queryoption() with
+ AST_OPTION_T38_STATE. If the passed in channel is a local channel then a
+ deadlock can happen if a channel lock is held when called.
+
+ * Made ast_channel_get_t38_state() callers not hold a channel lock before
+ calling.
+
+ * Update ast_channel_get_t38_state() doxygen to note that no channel locks
+ can be held when calling the function.
+
+ ASTERISK-26203 #close
+ Reported by: Etienne Lessard
+
+ ASTERISK-24822 #close
+ Reported by: David Brillert
+
+ ASTERISK-22732 #close
+ Reported by: Richard Mudgett
+
+ Change-Id: I49fd76fa9af628b4198009b5c0b82c8b03681214
+
+2016-08-23 10:39 +0000 [e8d4f40022] Richard Mudgett <rmudgett@digium.com>
+
+ * res_fax: Fix deadlock setting FAXMODE channel variable.
+
+ ASTERISK-25980 added the FAXMODE channel variable to res_fax.c.
+ Unfortunately, it also introduced a deadlock potential because
+ set_channel_variables() which sets FAXMODE can be called during a
+ masquerade. The ast_channel_get_t38_state() which gets the value used to
+ set FAXMODE cannot be called with the channel locked. As a result, local
+ channels can deadlock because of how they must acquire the locks necessary
+ to operate.
+
+ The intent of FAXMODE is for dialplan to know how a fax was transferred
+ after the fax completes. However, the previous patch sets FAXMODE to the
+ channel's current T.38 state AFTER the fax has completed and where T.38
+ may have already disconnected.
+
+ * Set FAXMODE based upon T.38 negotiations exchanged either with the fax
+ applications or the fax framehooks.
+
+ ASTERISK-26203
+ Reported by: Etienne Lessard
+
+ ASTERISK-24822
+ Reported by: David Brillert
+
+ ASTERISK-22732
+ Reported by: Richard Mudgett
+
+ Change-Id: Id525747254b64c1efe8b1b5973d52ff9719c2ae1
+
+2016-08-22 12:31 +0000 [35cf6c7702] Richard Mudgett <rmudgett@digium.com>
+
+ * res_fax.c: Fix deadlock in fax_gateway_indicate_t38().
+
+ fax_gateway_indicate_t38() calls ast_indicate_data() which cannot be
+ called with any channel locks already held. A deadlock can happen if the
+ function is operating on a local channel.
+
+ * Made fax_gateway_indicate_t38() unlock the channel before calling
+ ast_indicate_data() since fax_gateway_indicate_t38() is always called with
+ the channel locked.
+
+ * Made fax_gateway_indicate_t38() return void since nothing cared about
+ its return value.
+
+ ASTERISK-26203
+ Reported by: Etienne Lessard
+
+ ASTERISK-24822
+ Reported by: David Brillert
+
+ ASTERISK-22732
+ Reported by: Richard Mudgett
+
+ Change-Id: I701ff2d26c5fc23e0d5a48a3fd98759a9fd09407
+
+2016-08-23 11:16 +0000 [50b2aa506f] Richard Mudgett <rmudgett@digium.com>
+
+ * res_fax.c: Add chan locked precondition comments.
+
+ Change-Id: Ic10ae434536bbf7fb7055d6ab36cc50b8748a4e7
+
+2016-08-23 10:42 +0000 [038cbc0215] Richard Mudgett <rmudgett@digium.com>
+
+ * ast_framehook_detach() must be called with the channel locked.
+
+ The framehook container could become corrupted if the channel lock is not
+ held before calling.
+
+ Change-Id: If0a1c7ba0484ed3a191106a7516526b905952584
+
+2016-08-22 15:01 +0000 [88e9d05ef7] Richard Mudgett <rmudgett@digium.com>
+
+ * ast_framehook_attach() must be called with the channel locked.
+
+ The framehook container could become corrupted if the channel lock is not
+ held before calling.
+
+ Change-Id: I1a6b957a1f7b899eb29a186915f8cccab886a438
+
+2016-08-24 14:42 +0000 [c9e83f6d0b] gtjoseph <gjoseph@digium.com>
+
+ * res_rtp_multicast: Fix SEGV in ast_multicast_rtp_create_options
+
+ ast_multicast_rtp_create_options now checks for NULL or empty options
+
+ Change-Id: Ib845eae46a67a9787e89a87ebd1027344e5e0362
+
+2016-08-19 18:19 +0000 [cb8fd610e2] Corey Farrell <git@cfware.com>
+
+ * Fix checks for allocation debugging.
+
+ MALLOC_DEBUG should not be used to check if debugging is actually
+ enabled, __AST_DEBUG_MALLOC should be used instead. MALLOC_DEBUG only
+ indicates that debugging is requested, __AST_DEBUG_MALLOC indicates it
+ is active.
+
+ Change-Id: I3ce9cdb6ec91b74ee1302941328462231be1ea53
+
+2016-08-10 15:14 +0000 [b8b5d52b5e] Mark Michelson <mmichelson@digium.com>
+
+ * ConfBridge: Rework announcer channel methodology
+
+ NOTE: This patch was submitted earlier and reverted because of a failing
+ test. The test has been patched so that it adjusts for the changes here,
+ so this is being resubmitted for review.
+
+ One feature that confbridge has is the ability to play sounds to all
+ participants in the conference. Prior to this commit, the algorithm for
+ this was as follows:
+
+ * Grab the playback lock
+ * Push the conference announcer channel into the bridge
+ * Play back the sound
+ * Pull the conference announcer channel from the bridge
+ * Release the playback lock
+
+ The issue here is that the act of adding the playback channel to the
+ bridge and removing it for each announcement is expensive. Amongst the
+ expenses:
+
+ * The announcer channel is imparted into the bridge, meaning a new
+ thread is spun up for each playback.
+ * When the announcer is added or removed from the bridge, it results
+ in the BRIDGEPEER channel variable being set on all channels in the
+ bridge. This requires keeping the bridge locked and locking each
+ individual channel in order to set it.
+ * There's also just the general overhead of adding the channel and
+ removing it from the bridge. The bridge potentially has to reconfigure
+ every single time
+
+ With this commit, the paradigm for playing back announcements has
+ shifted.
+
+ * The announcer channel is now added to the bridge when the conference
+ is allocated, and it is hung up when the conference is destroyed.
+ * A taskprocessor is used to queue playbacks onto the announcer channel.
+ This keeps the behavior from before where playbacks do not overlap.
+ * The announcer channel is no longer placed into the bridge as
+ departable. Since we are not constantly removing the channel from
+ the bridge, it is safe to add the channel using an independent thread
+ and simply hang the channel up when it is time for the conference to
+ be destroyed.
+
+ The use of the taskprocessor for playbacks opens up the interesting
+ possibility of having asynchronous announcements played. In this commit,
+ however, the behavior is still exactly the same as it previously was.
+
+ ASTERISK-26289
+ Reported by Mark Michelson
+
+ Change-Id: Ica9fa4907c2f3728cdd1cf0bc564ef4eb40754a0
+
+2016-08-23 05:54 +0000 [d5d7cbfcfb] Joshua Colp <jcolp@digium.com>
+
+ * Revert "ConfBridge: Rework announcer channel methodology"
+
+ This reverts commit 0cdeb2bfb0f4203384c08858951af3c77be8b9b3.
+
+ Change-Id: I18ba73b6d4dc0b994f4ffb01ae0b6cfad36ac636
+
+2016-08-22 17:08 +0000 [c16ef02318] Mark Michelson <mmichelson@digium.com>
+
+ * res_pjsip: Default endpoints to the "offline" status.
+
+ A recent change attempted to optimize startup by not updating contact
+ status. Instead, code responsible for qualifying contacts updates the
+ status as it becomes known. The code even accounts for contacts/AORs
+ that are not set to be qualified.
+
+ The problem, though, is when there are no contacts associated with an
+ endpoint. A common case is when an endpoint is set to register its
+ contacts but has not done so yet. In this case, prior to registration,
+ the endpoint's device state will appear to be "not in use" and hints
+ associated with that device will appear to be "idle". In actuality, the
+ device state and hint should both appear as "unavailable". The reason
+ for the failure is that the optimization change made all persistent
+ endpoint states set to "unknown".
+
+ The fix here is to change the hard-coded "unknown" to be "offline"
+ instead. The default state will be offline until the qualifying code
+ determines that the contact is actually online. This way, if there are
+ no contacts at all, then the state stays as offline, and device state
+ and hints appear correctly.
+
+ ASTERISK-26269 #close
+ Reported by nappsoft
+
+ Change-Id: Ie99b84169393983453076f5e9c0d35ff313a456a
+
+2016-08-20 14:51 +0000 [e54dcf4fd5] David M. Lee <dlee@respoke.io>
+
+ * res_odbc_transaction: add dep on generic_odbc
+
+ When res_odbc_transaction depended on res_odbc, it got the generic_odbc
+ headers and libs implicitly. Now that it no longer depends on res_odbc,
+ its dependency on generic_odbc must be explicit.
+
+ Change-Id: I9db88f7af7388437f49903d3008ba8d4890d5911
+
+2016-08-20 11:18 +0000 [be38c95def] Alexander Traud <pabstraud@compuserve.com>
+
+ * pjproject_bundled: Allow IPv4/IPv6 (Dual Stack) configurations.
+
+ PJProject supports a lot of platforms even Windows, some with different defaults
+ when it comes to IPv6. In many Linux platforms like Ubuntu 16.04 LTS,
+ "/proc/sys/net/ipv6/bindv6only" is set to 0 (false). Different than in Windows.
+
+ Because of this, if configured with just an IPv6 address/transport, PJProject
+ listens to both IPv4 and IPv6. However, this is not supported by the PJProject
+ team. As consequence, you end-up with IPv4-mapped IPv6 addresses in SDP,
+ incompatible with IPv4-only clients. Technically, you end-up with an IPv6-only
+ server which accepts incoming connections on IPv4.
+
+ If you try to configure two transports, one with IPv4 and one with IPv6 on the
+ same interface, as expected by the PJProject team, the IPv4 transport is not
+ able to bind because the IPv6 transport listens to both already.
+
+ One solution would be to change "/proc/sys/net/ipv6/bindv6only" system-wide.
+ Then, you are able to configure two transports, one for each IP version on the
+ same interface. That way, you get a server which works with IPv4 clients and
+ IPv6 clients at the same time over the same interface.
+
+ Here, this change sets this parameter directly within PJProject to match the
+ expectations of the PJProject team in any case. This allows IPv4/IPv6 Dual Stack
+ servers out of the box like in chan_sip. This change was accepted by the
+ PJProject team as <http://trac.pjsip.org/repos/changeset/5403> and is expected
+ to arrive in the next version, PJProject 2.6.0. Until then, this change is
+ incorporated in the bundled PJProject of Asterisk.
+
+ ASTERISK-26309
+
+ Change-Id: I3335d8718f79f4b2feae91b5b005a3ce684a63ae
+
+2016-08-10 15:14 +0000 [0cdeb2bfb0] Mark Michelson <mmichelson@digium.com>
+
+ * ConfBridge: Rework announcer channel methodology
+
+ One feature that confbridge has is the ability to play sounds to all
+ participants in the conference. Prior to this commit, the algorithm for
+ this was as follows:
+
+ * Grab the playback lock
+ * Push the conference announcer channel into the bridge
+ * Play back the sound
+ * Pull the conference announcer channel from the bridge
+ * Release the playback lock
+
+ The issue here is that the act of adding the playback channel to the
+ bridge and removing it for each announcement is expensive. Amongst the
+ expenses:
+
+ * The announcer channel is imparted into the bridge, meaning a new
+ thread is spun up for each playback.
+ * When the announcer is added or removed from the bridge, it results
+ in the BRIDGEPEER channel variable being set on all channels in the
+ bridge. This requires keeping the bridge locked and locking each
+ individual channel in order to set it.
+ * There's also just the general overhead of adding the channel and
+ removing it from the bridge. The bridge potentially has to reconfigure
+ every single time
+
+ With this commit, the paradigm for playing back announcements has
+ shifted.
+
+ * The announcer channel is now added to the bridge when the conference
+ is allocated, and it is hung up when the conference is destroyed.
+ * A taskprocessor is used to queue playbacks onto the announcer channel.
+ This keeps the behavior from before where playbacks do not overlap.
+ * The announcer channel is no longer placed into the bridge as
+ departable. Since we are not constantly removing the channel from
+ the bridge, it is safe to add the channel using an independent thread
+ and simply hang the channel up when it is time for the conference to
+ be destroyed.
+
+ The use of the taskprocessor for playbacks opens up the interesting
+ possibility of having asynchronous announcements played. In this commit,
+ however, the behavior is still exactly the same as it previously was.
+
+ ASTERISK-26289
+ Reported by Mark Michelson
+
+ Change-Id: Ic5cd2c4b98a1eaa1715eb7a5b35d62f1a76d78a5
+
+2016-08-19 10:21 +0000 [b494b9f88c] Alexei Gradinari <alex2grad@gmail.com>
+
+ * compilation failed with -Werror=maybe-uninitialized
+
+ The compilation failed for devmode
+ --enable DONT_OPTIMIZE
+ --enable BETTER_BACKTRACES
+ --enable DO_CRASH
+ --enable TEST_FRAMEWORK
+
+ res_pjsip/pjsip_configuration.c: In function dtls_handler:
+ res_pjsip/pjsip_configuration.c:974:20: error:
+ back may be used uninitialized in this function [-Werror=maybe-uninitialized]
+ int size = strlen(front);
+ ^
+ cc1: all warnings being treated as errors
+
+ Change-Id: I7f082ead0312792a577ec7c73015ba64dabca580
+
+2016-08-19 03:59 +0000 [a628009eb9] Alexander Traud <pabstraud@compuserve.com>
+
+ * sip_to_pjsip: Add cert_file.
+
+ When using the migration script sip_to_pjsip.py, cert_file was not migrated to
+ pjsip.conf. A previous change regarding this contained a copy/paste error.
+
+ ASTERISK-22374
+
+ Change-Id: I0fa72e9412117d53b4284fc6b83fa5b2b95ba03b
+
+2016-08-18 09:21 +0000 [b1fe070d0b] Alexander Traud <pabstraud@compuserve.com>
+
+ * sip.conf: tlsclientmethod is using sslv23 as default.
+
+ When 'tlsclientmethod' is not specified in sip.conf, chan_sip uses the OpenSSL
+ SSLv23_method. This was documented incorrectly in the file sip.conf.sample.
+
+ SSLv23_method got its name in the 90s. Today, with OpenSSL 1.0.2, this method
+ enables (just) the secure TLSv1.0 and TLSv1.2. Or stated differently, that
+ function should have been called 'secure_method' or 'automatic_method' back in
+ the 90s.
+
+ Consequently please, specify 'tlsclientmethod=tlsv1' in your sip.conf only if
+ you face a server which has problems like not falling back to TLSv1.0
+ automatically.
+
+ ASTERISK-24425
+
+ Change-Id: I502ce6146b4504cadfd3973af8d6ec3994f54fa3
+
+2016-08-18 17:16 +0000 [ff2378c735] Kevin Harwell <kharwell@digium.com>
+
+ * rest-api: Swagger scripts were not replacing format variable in file brief
+
+ Given resource paths did not have 'json' substituted in for the '{format}'. For
+ some auto generated documentation/comment strings it resulted in something like
+ the following:
+
+ "... REST handler for /api-docs/sounds.{format}"
+
+ This patch makes sure the resource api's path is properly substituted.
+
+ ASTERISK-25472 #close
+
+ Change-Id: Ie3e950a35db4043e284019d6c9061f3b03922e23
+
+2016-08-16 15:57 +0000 [43f400ef95] Jason Parker (license 4993)
+
+ * res_format_attr_g729: Add annexb=no format parameter to SDPs
+
+ Historically, Asterisk has always specified annexb=no for the g729 format.
+ However, when using res_pjsip no format attribute was specified. This patch
+ makes it so the SDP now contains a format attribute line with annexb=no.
+
+ Note, that this means only g729a is negotiated. Even for pass through support.
+ According to rfc7261 the type of annex used (a or b) is dependent upon the
+ answerer. However, Asterisk being a back to back user agent makes this tricky
+ to support at this time, thus we only allow annex 'a' for now.
+
+ ASTERISK-26228 #close
+ patches:
+ res_format_attr_g729.c submitted by Jason Parker (license 4993)
+
+ Change-Id: I76bc20cc0a01af01536e9915afef319c269c22d0
+
+2016-08-18 15:15 +0000 [4c1ae07d51] gtjoseph <gjoseph@digium.com>
+
+ * res_odbc: Correct the dependency relationship with res_odbc_transaction
+
+ The MODULEINFO dependencies between these 2 modules was reversed.
+ res_odbc should depend on res_odbc_transaction, not the other way
+ around.
+
+ ASTERISK-25984 #close
+
+ Change-Id: Ifcfbb49c0b51cf6640a5446d47cd6c48caf1331f
+
+2016-08-18 12:04 +0000 [cab6975b02] Kevin Harwell <kharwell@digium.com>
+
+ * sip_to_pjsip: Set correct tls transport method
+
+ A recent update had a copy/paste error where the unused variable 'val' was
+ being passed to the set_value function instead of the 'method' value itself.
+
+ This patch passes in the right variable.
+
+ ASTERISK-22374
+
+ Change-Id: I895b7b3779ce4442bc58b8ec40d59dd29bb43f06
+
+2016-08-18 08:19 +0000 [2381ddde63] Alexander Traud <pabstraud@compuserve.com>
+
+ * sip_to_pjsip: Map the TLS method correctly.
+
+ When using the migration script sip_to_pjsip.py and tlsclientmethod is not set
+ in sip.conf, the default value of chan_sip (sslv23) is copied to pjsip.conf, to
+ overwrite the default of the PJProject (tlsv1). This makes sure, res_pjsip is
+ offering/using not just TLSv1.0 but TLSv1.2 as well.
+
+ ASTERISK-22374
+
+ Change-Id: Ie530a3dae9926ae14f3920a21be1e2edb15bda4f
+
+2016-08-18 08:17 +0000 [6500f5e138] Alexander Traud <pabstraud@compuserve.com>
+
+ * sip_to_pjsip: Add compactheaders, timerb, timert1, and useragent.
+
+ When using the migration script sip_to_pjsip.py, no section of type=system or
+ type=general were created. Therefore the keys compactheaders, timerb, timert1,
+ and useragent were not migrated to pjsip.conf.
+
+ ASTERISK-22374
+
+ Change-Id: I318a453843227ea36bf130d392d4abd7bd26b5a1
+
+2016-08-18 08:16 +0000 [21e9c69e56] Alexander Traud <pabstraud@compuserve.com>
+
+ * sip_to_pjsip: Map (session-)timers correctly.
+
+ When using the migration script sip_to_pjsip.py, session-timers=accept and
+ session-timers=refuse were mapped to wrong values.
+
+ ASTERISK-22374
+
+ Change-Id: Ie4e90d5f6a29aff07837b7fe5bc8aea5fb6fc092
+
+2016-08-18 08:15 +0000 [c9a97398f7] Alexander Traud <pabstraud@compuserve.com>
+
+ * sip_to_pjsip: Write username even without authname.
+
+ When using the migration script sip_to_pjsip.py, now the (mandatory) username is
+ written to pjsip.conf, even if there was no (optional) authname in the register
+ string in sip.conf.
+
+ ASTERISK-22374
+
+ Change-Id: Ie53e1997104cd2674821688b8a8247249f5e156f
+
+2016-08-18 08:14 +0000 [60275359bc] Alexander Traud <pabstraud@compuserve.com>
+
+ * sip_to_pjsip: Parse register even with transport.
+
+ When using the migration script sip_to_pjsip.py and the register string
+ started with a transport in sip.conf - like tls://... - register was not parsed
+ correctly and therefore not migrated correctly to pjsip.conf.
+
+ ASTERISK-22374
+
+ Change-Id: I44c12104eea2bd8558ada6d25d77edfecd92edd2
+
+2016-08-18 08:13 +0000 [0d479232eb] Alexander Traud <pabstraud@compuserve.com>
+
+ * sip_to_pjsip: Write local_net, contact_acl, contact_deny, and contact_permit.
+
+ When using the migration script sip_to_pjsip.py, those keys got missing. These
+ keys might appear several times and the function "merge_value" tried to collect
+ those. However, because these keys have different names in sip.conf and
+ pjsip.conf, "merge_value" was not able to find the new key name in sip.conf.
+ This change lets "merge_value" search with the old key name in sip.conf and
+ write with the new key name in pjsip.conf.
+
+ ASTERISK-22374
+
+ Change-Id: Ie53c5278ae6f1cb8fa7e96c5289877d46981d9d2
+
+2016-08-18 08:11 +0000 [cbc1b2d020] Alexander Traud <pabstraud@compuserve.com>
+
+ * sip_to_pjsip: Map externhost/ip to Transports.
+
+ When using the migration script sip_to_pjsip.py, the externhost or externip of
+ sip.conf were erroneously written to Endpoints instead to Transports.
+
+ ASTERISK-22374
+
+ Change-Id: I2c5873386cfc388899fa9cf2368639dd12f1b8e4
+
+2016-08-18 08:04 +0000 [5f33e99534] Alexander Traud <pabstraud@compuserve.com>
+
+ * sip_to_pjsip: Add defaultexpiry, maxexpiry, and minexpiry.
+
+ When using the migration script sip_to_pjsip.py, defaultexpiry, maxexpiry, and
+ minexpiry were not migrated to pjsip.conf.
+
+ ASTERISK-22374
+
+ Change-Id: I007fbf543dcadc96fc3ed71c54da502bcb209b7b
+
+2016-08-18 08:03 +0000 [231ea0350d] Alexander Traud <pabstraud@compuserve.com>
+
+ * sip_to_pjsip: Write media_encryption.
+
+ When using the migration script sip_to_pjsip.py, encryption=yes got missing and
+ media_encryption=sdes was not written to pjsip.conf, because of a typo.
+
+ ASTERISK-22374
+
+ Change-Id: I0fc3e55dc512a57603ae0fef41baacccf2a35c05
+
+2016-08-18 08:02 +0000 [23eb065121] Alexander Traud <pabstraud@compuserve.com>
+
+ * sip_to_pjsip: Write cos and tos.
+
+ When using the migration script sip_to_pjsip.py, both tos_sip and cos_sip got
+ missed, because of a typo. Therefore, cos and tos were not written to
+ pjsip.conf. Furthermore, that revealed a misuse of an internal function, caused
+ by a copy-and-paste error.
+
+ ASTERISK-22374
+
+ Change-Id: Id245ebadf70ab9776eb280c026288540af3af5c2
+
+2016-08-18 07:55 +0000 [0b675a208b] Alexander Traud <pabstraud@compuserve.com>
+
+ * sip_to_pjsip: Add cert_file and ca_list_path.
+
+ When using the migration script sip_to_pjsip.py, cert_file and ca_list_path were
+ not migrated to pjsip.conf.
+
+ ASTERISK-22374
+
+ Change-Id: I4612877d190b7f86a48698cefbf5c4db6c265825
+
+2016-08-17 14:13 +0000 [1cd12d73a6] Richard Mudgett <rmudgett@digium.com>
+
+ * res_pjsip_session.c: Fix unbound srv failover tests.
+
+ Commit 1b666549f33d69dc080b212bf92126f3bc3a18b2 broke the srv failover
+ functionality if a TCP connection gets disconnected. Under these
+ conditions, session_inv_on_state_changed() gets a
+ PJSIP_EVENT_TRANSPORT_ERROR and restarts the INVITE transaction on a new
+ transport. Unfortunately, session_inv_on_tsx_state_changed() also gets
+ the same PJSIP_EVENT_TRANSPORT_ERROR event and unconditionally terminates
+ the session.
+
+ * Made session_inv_on_tsx_state_changed() complete terminating the session
+ on PJSIP_EVENT_TRANSPORT_ERROR only if the session state is still
+ PJSIP_INV_STATE_DISCONNECTED.
+
+ ASTERISK-26305 #close
+ Reported by: Richard Mudgett
+
+ Change-Id: If736e766b5c55b970fa38ca6c8a885caf27b897d
+
+2016-08-16 15:36 +0000 [329507fe20] gtjoseph <gjoseph@digium.com>
+
+ * res_pjsip: Add contact_user to endpoint
+
+ contact_user, when specified on an endpoint, will override the user
+ portion of the Contact header on outgoing requests.
+
+ Change-Id: Icd4ebfda2f2e44d3ac749d0b4066630e988407d4
+
+2016-08-17 08:10 +0000 [6f448f32fe] Torrey Searle <torrey@voxbone.com>
+
+ * res_ari: Add http prefix to generated docs
+
+ updated the uri handler to include the url prefix of the http server
+ this enables res_ari to add it to the uris when generating docs
+
+ Change-Id: I279335a2625261a8492206c37219698f42591c2e
+
+2016-08-17 06:12 +0000 [56e0aed177] Alexander Traud <pabstraud@compuserve.com>
+
+ * BuildSystem: Detect ca_list_path capabilities in external PJProject.
+
+ Since Asterisk 13.8, pj_ssl_cert_load_from_files2 got detected only in the
+ bundled PJProject but not in an external PJProject. Therefore, ca_list_path
+ could not be used in pjsip.conf. With this change, pj_ssl_cert_load_from_files2
+ is detected again to enable ca_list_path again.
+
+ ASTERISK-26303 #close
+
+ Change-Id: I4a4a0cdc5cdff33730911fb4cfc0498c069043d0
+
+2016-08-16 12:24 +0000 [2edcfcf1eb] gtjoseph <gjoseph@digium.com>
+
+ * ari: Add documentation that path parameters are case-sensitive
+
+ Added to api.wiki.mustache so that the generated object pages
+ have the notation in the table header as well as under each method
+ that has path parameters.
+
+ ASTERISK-25492 #close
+
+ Change-Id: I36c46c6dc0c9ac350470394a999a1b19ef3fcdaf
+
+2016-08-15 15:29 +0000 [f4e28b3a09] Corey Farrell <git@cfware.com>
+
+ * Refactor usage pattern of xmldoc info tag.
+
+ This updates func_channel.c and main/message.c to use a generic xpointer
+ include instead of including info from each channel driver. Now the
+ name attribute of info is CHANNEL or CHANNEL_EXAMPLES to be included in
+ documentation for func_channel. Setting the name attribute of info to
+ MessageToInfo or MessageFromInfo causes it to be included in the
+ MessageSend application and AMI action.
+
+ Change-Id: I89fd8276a3250824241a618009714267d3a8d1ea
+
+2016-08-04 20:00 +0000 [a8d9a53bae] Richard Mudgett <rmudgett@digium.com>
+
+ * res_sorcery_config.c: Cleanup ao2 container usage idioms.
+
+ Change-Id: Iad24b335fb121a2bc7f1d048ab7420569edcba5a
+
+2016-08-04 15:57 +0000 [74a91b9ee5] Richard Mudgett <rmudgett@digium.com>
+
+ * sorcery.c: Minor optimizations.
+
+ * Remove some unused parameters from internal functions:
+ sorcery_wizard_create()
+ sorcery_wizard_update()
+ sorcery_wizard_delete()
+
+ * Created the struct sorcery_observer_invocation ao2 object without a lock
+ since it is not needed in sorcery_observer_invocation_alloc().
+
+ * Cleanup generic ao2 container sorcery object id hash, sort, and cmp
+ functions.
+
+ Change-Id: Iff71d75f52bc1b8cee955456838c149faaa4f92e
+
+2016-08-01 11:04 +0000 [29beb2890c] Richard Mudgett <rmudgett@digium.com>
+
+ * sorcery.c: Tweak some container declaration formatting.
+
+ * Tweak sorcery_object_type_alloc() formatting.
+ * Tweak ast_sorcery_init() formatting.
+
+ Change-Id: Ib02430023f15268cd7a2ea53f2c331213e4d3944
+
+2016-08-11 23:30 +0000 [9b822293bd] Corey Farrell <git@cfware.com>
+
+ * pbx.c: Additional fixes to ast_context_remove_extension_callerid2.
+
+ Do not check registrar of the first extension head. We should only check
+ the registrar when we match the priority.
+
+ Additionally fix a couple calls to strcmp which used the input callerid
+ instead of the clean version ex.cidmatch.
+
+ ASTERISK-26233
+
+ Change-Id: I17ea6881a18f40840ae9c1f5394aab1fbb3769f1
+
+2016-08-10 14:41 +0000 [403c794684] Alexei Gradinari <alex2grad@gmail.com>
+
+ * core: Entity ID is not set or invalid
+
+ The Exchanging Device and Mailbox States could not working
+ if the Entity ID (EID) is not set manually and can't be obtained
+ from ethernet interface.
+
+ This patch replaces debug message to warning
+ and addes missing description about option 'entityid' to
+ asterisk.conf.sample.
+
+ With this patch the asterisk also:
+ (1) decline loading the modules which won't work without EID:
+ res_corosync and res_pjsip_publish_asterisk.
+ (2) warn if EID is empty on loading next modules:
+ pbx_dundi, res_xmpp
+
+ Starting with v197 systemd/udev will automatically assign "predictable"
+ names for all local Ethernet interfaces.
+ This patch also addes some new ethernet prefixes "eno" and "ens".
+
+ ASTERISK-26164 #close
+
+ Change-Id: I72d712f1ad5b6f64571bb179c5cb12461e7c58c6
+
+2016-06-15 17:10 +0000 [93332cb1d0] Evgeniy Tsybra <cjack@yandex.ru>
+
+ * chan_sip: Fix lastrtprx always updated
+
+ Packets are read regulary, when there is no data in buffer fr->frametype
+ is AST_FRAME_NULL. There was no check of frametype and lastrtprx always
+ updated and, therefore, rtptimeout did not work at all.
+
+ ASTERISK-25270 #close
+
+ Change-Id: If3b5ca0dbb822582a86eb7d01dcae4e83448c41d
+
+2016-08-15 07:17 +0000 [2735ec899a] Joshua Colp <jcolp@digium.com>
+
+ * manager: Clarify that dialplan manipulation actions are under system class.
+
+ ASTERISK-26246 #close
+
+ Change-Id: Id673b9786389f9d2a87f638ce1a25161f5f31657
+
+2016-08-13 22:02 +0000 [f59bd47ed3] Matt Jordan <mjordan@digium.com>
+
+ * app_dial: Improve documentation
+
+ * Add some helpful <literal> and other embedded paragraph tags
+
+ * Document some of the lesser known channel variables set by Dial
+
+ * Add examples for some common Dial uses, along with some more
+ challenging but useful options
+
+ Change-Id: Ib2fb9301e8e044d14fbb2815ec64161f19bbfbc1
+
+2016-08-13 20:16 +0000 [4facaac408] Matt Jordan <mjordan@digium.com>
+
+ * manager: Add <see-also> tags to relate interrelated events/actions together
+
+ Change-Id: Idbac539205aa732bf786c4f765577d8e9ff28ba4
+
+2016-08-13 20:15 +0000 [232d4fe24f] Matt Jordan <mjordan@digium.com>
+
+ * manager: Add <see-also> tags to relate Bridge related events,actions, and apps
+
+ Change-Id: I67e6b79fa3102e494b5fe6cc7510472249080e85
+
+2016-08-13 20:14 +0000 [63c0b2f7c9] Matt Jordan <mjordan@digium.com>
+
+ * manager: Add <see-also> tags to relate AoC events and actions
+
+ Change-Id: Iea89a36222712148c1775c05ed0ad1049d67a70e
+
+2016-08-13 20:13 +0000 [0422667d6c] Matt Jordan <mjordan@digium.com>
+
+ * manager: Add <see-also> tags to relate UserEvent actions/apps/events
+
+ Change-Id: I80f8a981f62f50e74609c69c49edcaca6c95efa4
+
+2016-08-12 15:53 +0000 [f9e734974b] Matt Jordan <mjordan@digium.com>
+
+ * res_agi: Improve documentation
+
+ * Groups of AGI commands that have similar functionality now reference
+ each other, and all reference the AGI application for ease of wiki
+ reference.
+
+ * The documentation for the AGI application has been improved, in
+ particular noting the various AGI types and how they are invoked.
+
+ * A warning message has been added to DeadAGI, noting that it is
+ deprecated.
+
+ Change-Id: I479ccdee8a7393f01b18692c3d4ab7e6bdd1875d
+
+2016-08-12 13:53 +0000 [781bb410d0] Matt Jordan <mjordan@digium.com>
+
+ * manager: Add <see-also> links between related events
+
+ This patch adds some see-also references between related AMI events. It
+ focuses primarily on those events that are guaranteed to come in pairs,
+ such as DTMFBegin/DTMFEnd, as well as those that occur during the life
+ cycle of an Asterisk channel, such as Newchannel/Hangup.
+
+ Change-Id: Iaab600477052018d0f8c03d0c624c0856e9ff1f3
+
+2016-08-12 11:15 +0000 [cfd6852d39] Matt Jordan <mjordan@digium.com>
+
+ * func_channel: Reorganize documentation
+
+ * Following the example of the PJSIP channel driver, the channel
+ technology specific documentation has been moved to the respective
+ channel drivers that provide that functionality. This has the benefit
+ of locating the documentation of items with those modules that provide
+ it.
+
+ * Examples of using the CHANNEL function for both standard items as well
+ as for PJSIP have been added.
+
+ * The 'max_forwards' standard item has been documented.
+
+ Change-Id: Ifaa79a232c8ac99cf8da6ef6cc7815d398b1b79b
+
+2016-08-11 22:11 +0000 [cb043249b6] Corey Farrell <git@cfware.com>
+
+ * Run mandatory cleanup when startup fails.
+
+ Errors during startup result in an exit. These error branches should be
+ calling ast_run_atexit(0) to ensure mandatory cleanup is run.
+
+ ASTERISK-26267 #close
+
+ Change-Id: If226f2326ae2df7add20040696132214cf2bb680
+
+2016-08-11 11:24 +0000 [4d5e96ab53] gtjoseph <gjoseph@digium.com>
+
+ * res_pjsip_caller_id: Copy header name to short header name
+
+ When compact_headers was set, we were sending a zero-length header name
+ for PAI and RPID because we always forced the short header name length
+ to 0. We did this because we cloned the header from "From" and wanted
+ to clear "f" from the sname. By cloning however, we bypass pjproject's
+ automatic logic that sets sname to name if there's no compact form of
+ the header, which there isn't for PAI and RPID. So now we force sname
+ to be the same as name right after we set name.
+
+ res_pjsip_diversion needed the same treatment for the Diversion header.
+
+ ASTERISK-26241 #close
+
+ Change-Id: I633ec139630cd83809aae00336cee4a10077e467
+
+2016-08-11 12:18 +0000 [143df33110] gtjoseph <gjoseph@digium.com>
+
+ * res_pjsip: Fail global load if debug or default_from_user are empty
+
+ If debug was specified in the global configuration but left blank,
+ the logger would treat it as a wildcard and log all hosts. If
+ default_from_user was empty, a crash would result.
+
+ The global apply handler now checks for empty strings.
+
+ ASTERISK-26239 #close
+ ASTERISK-26238 #close
+
+ Change-Id: Ie75727f5cd5808845d92cc81f5713842fb203336
+
+2016-08-01 15:07 +0000 [1fc5c90014] Richard Mudgett <rmudgett@digium.com>
+
+ * res_pjsip res_pjsip_mwi: Misc fixes and cleanups.
+
+ * Eliminated RAII_VAR() usage in
+ ast_sip_persistent_endpoint_update_state().
+
+ * Added a missing allocation failure check to
+ persistent_endpoint_find_or_create().
+
+ * Made persistent_endpoint_find_or_create() create the new object without
+ a lock as it isn't needed.
+
+ * Cleaned up some ao2 container allocation idioms.
+
+ * Reordered res_pjsip_mwi.c load_module() and unload_module()
+
+ Change-Id: If8ce88fbd82a0c72a37a2388f74f77237a6a36a8
+
+2016-08-04 18:03 +0000 [73052e5732] Richard Mudgett <rmudgett@digium.com>
+
+ * location.c: Misc fixes and cleanups.
+
+ * Eliminated most RAII_VAR() usage.
+
+ * Added several missing allocation failure checks.
+
+ * Made ast_sip_for_each_contact() allocate the wrapper ao2 object without
+ a lock as it is not needed.
+
+ Change-Id: Ie20913365156c95dd79e5d471cfd25e99ae880bc
+
+2016-08-02 13:53 +0000 [9d4bd3d763] Richard Mudgett <rmudgett@digium.com>
+
+ * taskprocessor.c: Tweak high water checks.
+
+ * The high water check in ast_taskprocessor_alert_set_levels() would
+ trigger immediately if the new high water level is zero and the queue was
+ empty.
+
+ * The high water check in taskprocessor_push() was off by one.
+
+ Change-Id: I687729fb4efa6a0ba38ec9c1c133c4d407bc3d5d
+
+2016-08-03 16:24 +0000 [e1248c3075] Richard Mudgett <rmudgett@digium.com>
+
+ * res_pjsip: Make aor named lock a mutex.
+
+ The named aor lock was always being locked for writes so a rwlock adds no
+ benefit and may be slower because rwlocks are biased toward read locking.
+
+ Change-Id: I8c5c2c780eb30ce5441832257beeb3506fd12b28
+
+2016-07-29 17:41 +0000 [6e40334d89] Richard Mudgett <rmudgett@digium.com>
+
+ * pjsip_distributor.c: Add missing allocation failure check.
+
+ Change-Id: I932ab2cea845e534d9ff318035b6de39972d3b28
+
+2016-08-11 11:13 +0000 [a3c5488ff4] Matt Jordan <mjordan@digium.com>
+
+ * app_queue: Prevent crash when a call is forwarded to an invalid location
+
+ When a call forward attempt is made from a Queue member, the current
+ code will hang up the forwarding channel in an off-nominal condition
+ prior to raising the Stasis events informing the rest of Asterisk that
+ the call was forwarded. This will result in a slew of dreaded FRACKs,
+ most likely leading to a crash.
+
+ This patch modifies the code such that we don't hang up the forwarding
+ channel even in an off-nominal condition until we've safely raised the
+ Stasis messages.
+
+ ASTERISK-25797 #close
+
+ Change-Id: Ife5abed351691fd79105321636eaa8ea8dcdba38
+
+2016-08-11 10:50 +0000 [5913929d31] Kevin Harwell <kharwell@digium.com>
+
+ * alembic: add auth_username to endpoint's identify_by enum
+
+ A new identify_by option was added recently, auth_username. However, this
+ setting was not added as an allowable choice in the database enumeration
+ value.
+
+ This patch updates the current enumeration, adding in the new setting.
+
+ ASTERISK-26268 #close
+
+ Change-Id: Ib4788e8485e4cd40172ec0abbf5810a147ab8bf8
+
+2016-08-06 10:57 +0000 [1589452fdc] Alexei Gradinari <alex2grad@gmail.com>
+
+ * pjsip: Fix deadlock with suspend taskprocessor on masquerade
+
+ If both channels which should be masqueraded
+ are in the same serializer:
+ 1st channel will be locked waiting condition 'complete'
+ 2nd channel will be locked waiting condition 'suspended'
+
+ On heavy load system a chance that both channels will be in
+ the same serializer 'pjsip/distibutor' is very high.
+
+ To reproduce compile res_pjsip/pjsip_distributor.c with
+ DISTRIBUTOR_POOL_SIZE=1
+
+ Steps to reproduce:
+ 1. Party A calls Party B (bridged call 'AB')
+ 2. Party B places Party A on hold
+ 3. Party B calls Voicemail app (non-bridged call 'BV')
+ 4. Party B attended transfers Party A to voicemail using REFER.
+ 5. When asterisk masquerades calls 'AB' and 'BV',
+ a deadlock is happened.
+
+ This patch adds a suspension indicator to the taskprocessor.
+ When a session suspends/unsuspends the serializer
+ it sets the indicator to the appropriate state.
+ The session checks the suspension indicator before
+ suspend the serializer.
+
+ ASTERISK-26145 #close
+
+ Change-Id: Iaaebee60013a58c942ba47b1b4930a63e686663b
+
+2016-08-09 12:07 +0000 [f6ec94cca6] Kevin Harwell <kharwell@digium.com>
+
+ * alembic/sqlalchemy: auto increment only allowed on a single column
+
+ The extensions table defined two columns (id and priority) as primary key
+ autoincrement columns. However only one is allowed when defining the primary
+ key.
+
+ This patch removes the autoincrement attribute from the priority column since
+ it does not need to be as such and really should not have been on there in the
+ first place.
+
+ This patch also removes 'context', 'exten', and 'priority' from the primary key
+ index and creates a new combined unique contraint index on them.
+
+ ASTERISK-26183 #close
+
+ Change-Id: Ib9c712c612a4d7ec1edb0dcb77f1bae0905a470b
+
+2016-08-07 09:58 +0000 [5f815f9dba] Matt Jordan <mjordan@digium.com>
+
+ * channels/chan_pjsip: Add PJSIP_SEND_SESSION_REFRESH
+
+ This patch adds a new PJSIP specific dialplan function,
+ PJSIP_SEND_SESSION_REFRESH. When invoked on a PJSIP channel, the media
+ session will be refreshed via either an UPDATE or re-INVITE request.
+ When used in conjunction with the PJSIP_MEDIA_OFFER dialplan function,
+ the formats in use on a PJSIP channel can be re-negotiated and changed
+ dynamically after call setup.
+
+ ASTERISK-26277 #close
+
+ Change-Id: Ib98fe09ba889aafe26d58d32f0fd1323f8fd9b1b
+
+2016-08-09 16:19 +0000 [a119bab6a6] Mark Michelson <mmichelson@digium.com>
+
+ * res_rtp_asterisk: Cache local RTCP address.
+
+ When an RTCP packet is sent or received, res_rtp_asterisk generates a
+ Stasis event that contains the RTCP report as well as the local and
+ remote addresses that the report pertains to.
+
+ The addresses are determined using ast_find_ourip(). For the local
+ address, this will typically result in a lookup of the hostname of the
+ server, and then a DNS lookup of that hostname. If you do not have the
+ host in /etc/hosts, then this results in a full DNS lookup, which can
+ potentially block for some time.
+
+ This is especially problematic when performing RTCP reads, since those
+ are done on the same thread responsible for reading and writing media.
+
+ This patch addresses the issue by performing a lookup of the local
+ address when RTCP is allocated. We then use this cached local address
+ for the Stasis events when necessary.
+
+ ASTERISK-26280 #close
+ Reported by Mark Michelson
+
+ Change-Id: I3dd61882c2e57036f09f0c390cf38f7c87e9b556
+
+2016-08-08 12:53 +0000 [a06a1af0eb] Alexei Gradinari <alex2grad@gmail.com>
+
+ * res_pjsip_mwi: fix unsolicited mwi blocks PJSIP stack
+
+ The PJSIP taskprocessors could be overflowed on startup
+ if there are many (thousands) realtime endpoints
+ configured with unsolicited mwi.
+ The PJSIP stack could be totally unresponsive for a few minutes
+ after boot completed.
+
+ This patch creates a separate PJSIP serializers pool for mwi
+ and makes unsolicited mwi use serializers from this pool.
+ This patch also adds 2 new global options to tune taskprocessor
+ alert levels: 'mwi_tps_queue_high' and 'mwi_tps_queue_low'.
+
+ This patch also adds new global option 'mwi_disable_initial_unsolicited'
+ to disable sending unsolicited mwi to all endpoints on startup.
+ If disabled then unsolicited mwi will start processing
+ on next endpoint's contact update.
+
+ ASTERISK-26230 #close
+
+ Change-Id: I4c8ecb82c249eb887930980a800c9f87f28f861a
+
+2016-08-04 10:16 +0000 [485fd27f7c] Joshua Colp <jcolp@digium.com>
+
+ * res_pjsip_outbound_publish: Use a serializer shutdown group for unload.
+
+ This change replaces the custom unload process for the outbound
+ publish module with the common serializer shutdown group.
+
+ ASTERISK-25217 #close
+
+ Change-Id: I280a0384d860c486202d87d2d674394cca77ffb6
+
+2016-08-03 15:39 +0000 [805f105f88] Corey Farrell <git@cfware.com>
+
+ * Add missing checks during startup.
+
+ This ensures startup is canceled due to allocation failures from the
+ following initializations.
+ * channel.c: ast_channels_init
+ * config_options.c: aco_init
+
+ ASTERISK-26265 #close
+
+ Change-Id: I911ed08fa2a3be35de55903e0225957bcdbe9611
+
+2016-07-22 16:37 +0000 [ea71bd6e3e] Alexei Gradinari <alex2grad@gmail.com>
+
+ * app_voicemail: Add taskprocessor alert level options.
+
+ On heavy loaded system with IMAP or DB storage,
+ 'app_voicemail' taskprocessor queue could reach 500 scheduled tasks.
+ It could happen when the IMAP or DB server dies or is unreachable.
+ It could happen on startup when there are many (thousands)
+ realtime endpoints configured with unsolicited mwi.
+ If the taskprocessor queue reaches the high water level
+ then the alert is triggered and pjsip stops processing new requests
+ until the queue reaches the low water level to clear the alert.
+
+ This patch adds 2 new 'general' configuration options
+ to tune taskprocessor alert levels:
+ 'tps_queue_high' - Taskprocessor high water alert trigger level.
+ 'tps_queue_low' - Taskprocessor low water clear alert level
+
+ ASTERISK-26229 #close
+
+ Change-Id: I766294fbffedf64053c0d9ac0bedd3109f043ee8
+
+2016-08-03 09:47 +0000 [9dc8cfabd5] Joshua Colp <jcolp@digium.com>
+
+ * astconfigparser: Really handle case where line is simply a comment.
+
+ The regular expression would match causing the code that handled
+ the line if it was merely a comment to never get executed.
+
+ Change-Id: I3e4022481037ebcba9905587fe8c764b4ce21819
+
+2016-07-23 08:51 +0000 [ad3e65433c] gtjoseph <gjoseph@digium.com>
+
+ * asterisk.c: Add auto generation and persistence of UUID
+
+ Upcoming features will require the generation and persistence
+ of a UUID.
+
+ Change-Id: I3ec0062427e133217db6ef496a4216f427c3b92d
+
+2016-08-02 12:55 +0000 [efc4034d72] Kevin Harwell <kharwell@digium.com>
+
+ * rest-api: Code out of sync with the model
+
+ Change-Id: Idccaa26fd4a423d47d013ee592b8fa6a0349c006
+
+2016-07-29 13:13 +0000 [f6821fbaec] Mark Michelson <mmichelson@digium.com>
+
+ * Remove SILK payload mappings from Asterisk core.
+
+ SILK is a bit of a hog when it comes to using up our limited number of
+ dynamic payload types in the RTP engine. By freeing up four slots, it
+ allows for other codecs to potentially take the place.
+
+ Now, codec_silk.so will dynamically use the payload slots in the RTP
+ engine when it loads.
+
+ A better fix would be make RTP dynamic payload types actually
+ dynamic. However, at this stage of Asterisk 14 development, this is a
+ risky move that would be imprudent.
+
+ Change-Id: I5774e09408f9a203db189529eabdc0d3f4c1e612
+ (cherry picked from commit d50895c7b04036aeaad58990089399e46db4c817)
+
+2016-08-01 11:08 +0000 [102d28c11a] Joshua Colp <jcolp@digium.com>
+
+ * sorcery: Use more compatible regex for local expressions.
+
+ This changes the use of an empty regex for both res_sorcery_config
+ and res_sorcery_memory to "." instead. This is a more compatible
+ regular expression which also works on FreeBSD.
+
+ ASTERISK-26206 #close
+
+ Change-Id: Ia9166dd176f1597555ba22b6931180d0626c1388
+
+2016-08-02 03:08 +0000 [b78d10a2df] Alexander Traud <pabstraud@compuserve.com>
+
+ * res_pjsip: SIP/SDP origin (o=) contained square brackets on IP6 transports.
+
+ ASTERISK-26256 #close
+
+ Change-Id: I3fd68df561f81fdb8c6c497d465b50c12422f058
+
+2016-08-01 16:13 +0000 [1f95c011c7] gtjoseph <gjoseph@digium.com>
+
+ * menuselect: Add an opaque "member_data" string to the acceptable xml
+
+ Change-Id: Id5ac43b95c8d7395f3be37f983632169db3d1afe
+
+2016-07-27 09:56 +0000 [df42f64d62] David M. Lee <dlee@respoke.io>
+
+ * Replace strdupa with more portable ast_strdupa
+
+ The strdupa function is a GNU extension, and not widely portable. We
+ have an ast_strdupa function used within Asterisk which is preferred.
+ I pulled the definition up from menuselect.c into the menuselect.h
+ header file so it can be shared across menuselect.
+
+ Change-Id: I9593c97f78386b47dc1e83201e80cb2f62b36c2e
+
+2016-07-24 18:27 +0000 [56a07fbab9] gtjoseph <gjoseph@digium.com>
+
+ * menuselect: Various menuselect enhancements
+
+ * Add 'external' as a support level.
+ * Add ability for module directories to add entries to the menu
+ by adding members to the <module_prefix>/<module_prefix>.xml file.
+ * Expand the description field to 3 lines in the ncurses implementation.
+ * Allow the description field to wrap in the newt implementation.
+ * Add description field to the gtk implementation.
+
+ Change-Id: I7f9600a1984a42ce0696db574c1051bc9ad7c808
+ (cherry picked from commit 90f445729d5d86050d9d379485ff0a99f4a006c1)
+
+2016-07-29 04:48 +0000 [7f9369c1b6] Joshua Colp <jcolp@digium.com>
+
+ * astconfigparser: Handle case where line is simply a comment.
+
+ Change-Id: I2dea5815363f4d787d709228a04f33baee383ef5
+
+2016-07-28 14:10 +0000 [57e9c66819] Corey Farrell <git@cfware.com>
+
+ * pbx.c: Fix handling of '-' in extension name and callerid
+
+ This adds a two strings to ast_exten. name to go with exten and
+ cidmatch_display to go with cidmatch. The new fields contain input used
+ to add the extension in the first place. The existing fields now
+ contain stripped input that excludes insignificant spaces and dashes.
+ These stripped fields should always be used for comparisons. The
+ unstripped fields should normally be used for display, but displaying
+ stripped values will not cause runtime errors.
+
+ Note the actual string is only stored twice if it contains dashes. If
+ no dashes are found then both 'char *' fields point to the same memory.
+ So this change has a minimum effect on memory usage.
+
+ The existing functions ast_get_extension_name and
+ ast_get_extension_cidmatch return unstripped values as they did before
+ this change. Other similar bugs likely still exist where unstripped
+ extensions are saved outside pbx.c then passed back in.
+
+ ASTERISK-26233 #close
+
+ Change-Id: I6cd61ce57acc1570ca6cc14960c4c3b0a9eb837f
+
+2016-07-27 17:17 +0000 [873fc0fda5] Richard Mudgett <rmudgett@digium.com>
+
+ * pbx.c: Allow dangerous functions when adding a hint to dialplan.
+
+ We can allow dangerous functions when adding a hint since altering
+ dialplan is itself a privileged activity. Otherwise, we could never
+ execute dangerous functions.
+
+ ASTERISK-25996 #close
+ Reported by: Andrew Nagy
+
+ Change-Id: I4929ff100ad1200a0198262d069a34f2296e77ba
+
+2016-07-21 10:36 +0000 [f00525a6f6] Alexei Gradinari <alex2grad@gmail.com>
+
+ * pjproject: fixed a few bugs
+
+ This patch fixes the issue in pjsip_tx_data_dec_ref()
+ when tx_data_destroy can be called more than once,
+ and checks if invalid value (e.g. NULL) is passed to.
+
+ This patch updates array limit checks and docs
+ in pjsip_evsub_register_pkg() and pjsip_endpt_add_capability().
+
+ Change-Id: I4c7a132b9664afaecbd6bf5ea4c951e43e273e40
+
+2016-07-17 18:28 +0000 [972cee2e4c] gtjoseph <gjoseph@digium.com>
+
+ * pjproject_bundled: Update for pjproject 2.5.5
+
+ Add more --disable-* switches to Makefile.rules including
+ --disable-opus which was causing bundled pjproject to fail with
+ "undefined reference" errors in libasteriskpj.
+
+ Changed PJ_ENABLE_EXTRA_CHECK to 1.
+
+ Removed 2 obsolete patches and added a new one.
+ The new one was merged by Teluu on 6/27/2016.
+
+ ASTERISK-26148 #close
+
+ Change-Id: Ib8af6c6a9d31f7238ce65b336134c2efdc855063
+
+2016-07-27 10:33 +0000 [8902a51d59] David M. Lee <dlee@respoke.io>
+
+ * Portably sscanf tv_usec
+
+ In a timeval, tv_usec is defined as a suseconds_t, which could be
+ different underlying types on different platforms. Instead of trying to
+ scanf directly into the timeval, scanf into a long int, then copy that
+ into the timeval.
+
+ Change-Id: I29f22d049d3f7746b6c0cc23fbf4293bdaa5eb95
+
+2016-07-27 12:36 +0000 [852e763571] Kevin Harwell <kharwell@digium.com>
+
+ * rtp_engine: Failed assertion and wrong name given for codec
+
+ Fixed an assert check that would trigger when the passed in value was negative.
+ The negative value was being cast to an unsigned value. This resulted in the
+ check failing.
+
+ Also fixed another problem when loading formats in the engine. When setting the
+ mime type the format's name was being passed in instead of the codec's name.
+
+ Change-Id: I1a201cd419ba4d8e9a40d337e36b6fbe1737192c
+
+2016-07-21 22:44 +0000 [e8c34680ca] Richard Mudgett <rmudgett@digium.com>
+
+ * dsp.c: Add fax and DTMF detection unit tests.
+
+ * Add fax amplitude and frequency sweep tests.
+ * Add DTMF amplitude and twist unit tests.
+
+ Change-Id: I8d77c9a1eec89e440d715f998c928687e870c3f7
+
+2016-07-21 11:56 +0000 [c1f240b818] Richard Mudgett <rmudgett@digium.com>
+
+ * dsp.c: Added descriptive comments to Goertzel calculations.
+
+ * Added doxygen to describe some struct members and what is going on in
+ the code.
+
+ Change-Id: I2ec706a33b52aee42b16dcc356c2bd916a45190d
+
+2016-07-13 13:48 +0000 [003a52fd62] Richard Mudgett <rmudgett@digium.com>
+
+ * dsp.c: Fix incorrect format reference typo.
+
+ Change-Id: Ia131da3ec29acf385cb43a586a29ecc975eb3896
+
+2016-07-25 21:18 +0000 [4c0a0cbe02] Richard Mudgett <rmudgett@digium.com>
+
+ * dsp.c: Correct DTMF twist dsp.conf documentation.
+
+ Change-Id: Idf97e3a72f1edc5fca58f2fa7b20785922be0cae
+
+2016-07-22 04:43 +0000 [87433c2566] Joshua Colp <jcolp@digium.com>
+
+ * astconfigparser.py: Update with realtime fixes.
+
+ When configuring SIP URIs in the pjsip.conf file it is
+ necessary to escape the semicolon so the parser does not
+ treat it as a comment. This change allows this to work in
+ the astconfigparser implementation.
+
+ A secondary bug where some data was lost if a configuration
+ option included a "=" in its value was also fixed.
+
+ A bug where sections would be considered equal despite
+ being different has also been fixed.
+
+ Change-Id: If229f656ef22050b50e7b34e90c4bffe796431f8
+
+2016-07-28 14:32 +0000 Asterisk Development Team <asteriskteam@digium.com>
+
+ * asterisk 13.11.0-rc1 Released.
+
+2016-07-28 09:29 +0000 [3bfaf6b172] Mark Michelson <mmichelson@digium.com>
+
+ * Release summaries: Add summaries for 13.11.0-rc1
+
+2016-07-28 09:27 +0000 [ca145e1807] Mark Michelson <mmichelson@digium.com>
+
+ * .version: Update for 13.11.0-rc1
+
+2016-07-28 09:27 +0000 [918ebf79ff] Mark Michelson <mmichelson@digium.com>
+
+ * .lastclean: Update for 13.11.0-rc1
+
+2016-07-28 09:27 +0000 [d7afc1cf9d] Mark Michelson <mmichelson@digium.com>
+
+ * realtime: Add database scripts for 13.11.0-rc1
+
+2016-07-21 22:28 +0000 [159e437e5a] Richard Mudgett <rmudgett@digium.com>
+
+ * dsp.c: Fix erroneous fax tone detection.
+
+ The Goertzel calculations get less accurate the lower the signal level
+ being worked with becomes because there is less resolution remaining.
+ If it is too low we can erroneously detect a tone where none really
+ exists. The searched for fax frequencies not only need to be so much
+ stronger than the background noise they must also be a minimum strength.
+
+ * Add needed minimum threshold test to tone_detect().
+
+ * Set TONE_THRESHOLD to allow low volume frequency spread detection.
+
+ ASTERISK-26237 #close
+ Reported by: Richard Mudgett
+
+ Change-Id: I84dbba7f7628fa13720add6a88eae3b129e066fc
+
+2016-07-22 14:44 +0000 [eda95236d1] Mark Michelson <mmichelson@digium.com>
+
+ * Fix sqlalchemy error regarding identifier length.
+
+ sqlalchemy was complaining:
+
+ sqlalchemy.exc.IdentifierError: Identifier
+ 'ps_contacts_qualifyfreq_exptime' exceeds maximum length of 30
+ characters
+
+ This fixes the problem by changing the index name to be
+ "ps_contacts_qualifyfreq_exp" instead.
+
+ ASTERISK-26227 #close
+ Reported by Mark Michelson
+
+ Change-Id: I0ed784f87504be2a59ee8d3242ef6f625d5ed1a9
+
+2016-07-22 05:46 +0000 [66c9dfb272] Alexander Traud <pabstraud@compuserve.com>
+
+ * chan_sip: Enable Session-Timers for SIP over TCP (and TLS).
+
+ Asterisk defaults to timers=accept/refresher=uas. In that scenario, only in that
+ scenario, Sessions-Timers (RFC 4028) had no effect via TCP. This change enables
+ Session-Timers for SIP over TCP (and for SIP over TLS).
+
+ However with longer international calls via TCP, the SIP channel might break,
+ because all hops on the Internet route must stay online (have not a single power
+ outage, for example). Therefore with Session-Timers enabled (which are enabled
+ at default), you might see dropped calls. Consequently even with this change,
+ you might be better-off going for session-timers=refuse in your sip.conf.
+
+ ASTERISK-19968 #close
+
+ Change-Id: I1cd33453c77c56c8e1394cd60a6f17bb61c1d957
+
+2016-07-15 16:16 +0000 [33716106e0] Richard Mudgett <rmudgett@digium.com>
+
+ * res_pjsip: Whitespace and comment cleanup.
+
+ Change-Id: I11139a4a95df34e223ba622aa6227e33ab8f6c38
+
+2016-07-21 09:05 +0000 [52ab0bf258] gtjoseph <gjoseph@digium.com>
+
+ * chan_sip: Prevent deadlock when issuing "sip show channels"
+
+ sip_show_channels locks the dialogs container first then locks each
+ sip_pvt so it can spit out the details. The rest of sip dialog
+ processing locks the sip_pvt first then locks the dialogs container
+ if it needs to. Both lock in the order they need but deadlocks can
+ result. To fix, sip_show_channels and sip_show_channelstats have
+ been converted to use an iterator rather than ao2_callback. This way
+ the container is locked only while getting the next entry and is
+ unlocked when the callback is called.
+
+ ASTERISK-23013 #close
+
+ Change-Id: Id9980419909e811f89484950ed46ef117b9eb990
+
+2016-07-19 15:22 +0000 [5997ec7c9e] Alexei Gradinari <alex2grad@gmail.com>
+
+ * res_pjsip_pubsub: fixed a bug when pjsip_tx_data_dec_ref is called twice.
+
+ This patch removed call of pjsip_tx_data_dec_ref in send_notify
+ if send_request failed.
+ The pjsip_dlg_send_request deletes the message on error by itself.
+
+ It seems this patch fixes next issues:
+ ASTERISK-26199
+ ASTERISK-26166
+ ASTERISK-26174
+
+ Change-Id: I8b05917c93d993f95d604c042ace5f1a5500f59a
+
+2016-07-18 22:46 +0000 [7fdf7c3d4c] Corey Farrell <git@cfware.com>
+
+ * Add conditional support for noreturn functions.
+
+ This adds support for tagging functions with the noreturn attribute.
+ If DO_CRASH is enabled then ast_do_crash never returns. If AST_DEVMODE
+ and DO_CRASH are enabled then failed assertions never return. This can
+ resolve a large number of false positives with static analyzers.
+
+ ASTERISK-26220 #close
+
+ Change-Id: Icfb61e5fe54574eced4c3e88b317244f467ec753
+
+2016-07-19 13:18 +0000 [dcb8aa8c1c] Richard Mudgett <rmudgett@digium.com>
+
+ * chan_dahdi.c: Fix deadlock potential in fax redirection.
+
+ The dahdi_handle_dtmf() and my_handle_dtmf() have the potential to
+ deadlock if an incoming fax happens during the Playback or similar
+ application.
+
+ * Fixed the potential deadlock by not calling ast_async_goto() with the
+ channel lock held.
+
+ ASTERISK-26216 #close
+ Reported by: Richard Mudgett
+
+ Change-Id: I9144b84ade5f96690996624ec8a2d40c56af40aa
+
+2016-07-13 18:49 +0000 [fa91cf3eec] Richard Mudgett <rmudgett@digium.com>
+
+ * chan_sip.c: Fix deadlock potential in fax redirection.
+
+ The sip_read() has the potential to deadlock if an incoming fax happens
+ during the Playback or similar application.
+
+ * Fixed the potential deadlock by not calling ast_async_goto() with the
+ channel lock held.
+
+ * Made always eat the fax detection frame whether there is a fax extension
+ or not.
+
+ ASTERISK-26216
+ Reported by: Richard Mudgett
+
+ Change-Id: I6d3f5cccd4b77c3aa6ffc1a54c0f6bde61c9278e
+
+2016-07-13 18:48 +0000 [2e1bdc3775] Richard Mudgett <rmudgett@digium.com>
+
+ * chan_pjsip.c: Fix deadlock potential in fax redirection.
+
+ The chan_pjsip_cng_tone_detected() has the potential to deadlock if an
+ incoming fax happens during the Playback or similar application.
+
+ * Fixed the potential deadlock by not calling ast_async_goto() with the
+ channel lock held.
+
+ * Made always eat the fax detection frame whether there is a fax extension
+ or not.
+
+ ASTERISK-26216
+ Reported by: Richard Mudgett
+
+ Change-Id: I32aecbb4818af646dc5a619f0dc040e9b1f222e5
+
+2016-07-12 17:33 +0000 [628e8c91d5] Richard Mudgett <rmudgett@digium.com>
+
+ * res_fax.c: Fix deadlock potential in FAXOPT(faxdetect) framehook.
+
+ The fax_detect_framehook() has the potential to deadlock if an incoming
+ fax happens during the Playback or similar application.
+
+ * Fixed the potential deadlock by not calling ast_async_goto() with the
+ channel lock held.
+
+ * Made always eat the fax detection frame whether there is a fax extension
+ or not.
+
+ * Made only detach the framehook if we detected a fax and not on other
+ possible frames.
+
+ ASTERISK-26216
+ Reported by: Richard Mudgett
+
+ Change-Id: I99da35c26d1cd802626ffb4c1b4eb5b015581b6d
+
+2016-07-12 17:24 +0000 [676aeede36] Richard Mudgett <rmudgett@digium.com>
+
+ * res_fax: Fix FAXOPT(faxdetect) timeout option.
+
+ The fax detection timeout option did not work because basically the wrong
+ variable was checked in fax_detect_framehook(). As a result, the timer
+ would timeout immediately and disable fax detection.
+
+ * Fixed ignoring negative timeout values. We'd complain and then go right
+ on using the negative value.
+
+ * Fixed destroy_faxdetect() in the off-nominal case of an incomplete
+ object creation.
+
+ * Added more range checking to FAXOPT(gateway) timeout parameter.
+
+ ASTERISK-26214 #close
+ Reported by: Richard Mudgett
+
+ Change-Id: Idc5e698dfe33572de9840bc68cd9fc043cbad976
+
+2016-07-18 16:16 +0000 [652130feb2] Richard Mudgett <rmudgett@digium.com>
+
+ * chan_dahdi: Add faxdetect_timeout option.
+
+ The new option allows the channel driver's faxdetect option to timeout on
+ a call after the specified number of seconds into a call. The new feature
+ is disabled if the timeout is set to zero. The option is disabled by
+ default.
+
+ * Don't clear dsp_features after passing them to the dsp code in
+ my_pri_ss7_open_media(). We should still remember them especially for the
+ new faxdetect_timeout option.
+
+ ASTERISK-26214
+ Reported by: Richard Mudgett
+
+ Change-Id: Ieffd3fe788788d56282844774365546dce8ac810
+
+2016-07-15 20:44 +0000 [851b1c3a17] Richard Mudgett <rmudgett@digium.com>
+
+ * res_pjsip: Add fax_detect_timeout endpoint option.
+
+ The new endpoint option allows the PJSIP channel driver's fax_detect
+ endpoint option to timeout on a call after the specified number of
+ seconds into a call. The new feature is disabled if the timeout is set
+ to zero. The option is disabled by default.
+
+ ASTERISK-26214
+ Reported by: Richard Mudgett
+
+ Change-Id: Id5a87375fb2c4f9dc1d4b44c78ec8735ba65453d
+
+2016-07-19 04:48 +0000 [021d4892cd] Alexander Traud <pabstraud@compuserve.com>
+
+ * Makefile: Retain XML Declaration and DTD in docs.
+
+ Since Asterisk 12, the documentation got an XML Stylesheet. Because of a typo,
+ the XML Declaration and DTD were overwritten by this.
+
+ ASTERISK-26212 #close
+
+ Change-Id: If5ee4625068042e98ab3fcb22a25e2f15d0c68bd
+
+2016-07-18 18:39 +0000 [c8e41d14a1] Corey Farrell <git@cfware.com>
+
+ * Unit tests: Use AST_TEST_DEFINE in conditional code only.
+
+ If AST_TEST_DEFINE is not conditional to TEST_FRAMEWORK it produces dead
+ code. This places all existing unit tests into a conditional block if
+ they weren't already.
+
+ ASTERISK-26211 #close
+
+ Change-Id: I8ef83ee11cbc991b07b7a37ecb41433e8c734686
+
+2016-07-18 05:13 +0000 [e404f51b42] Alexander Traud <pabstraud@compuserve.com>
+
+ * res_rtp_asterisk: Count a roll-over of the sequence number even on lost packets.
+
+ With this change, the initial RTP sequence number is randomly chosen not between
+ 0 and 65535 (0xffff) but 0 and 32767 (0x7fff). This assures, the roll-over
+ counter (ROC) synchronization is not lost for sRTP, when the very first RTP
+ packets get lost; see http://srtp.sourceforge.net/faq.html#Q6
+
+ ASTERISK-26207 #close
+
+ Change-Id: I9a527e3aa3ce8f3becc5131d7ba32b57b5845464
+
+2016-07-18 04:14 +0000 [5f24874ebb] Alexander Traud <pabstraud@compuserve.com>
+
+ * Makefile: Suppress echoing of target 'config' again.
+
+ ASTERISK-26038 #close
+
+ Change-Id: I5746cf639f3fdc6332e8a97cf01f979e30bf403f
+
+2016-07-14 03:25 +0000 [76d4983c15] Corey Farrell <git@cfware.com>
+
+ * features.c: Remove unneeded adsi.h include.
+
+ adsi.h is no longer used by features.c since parking was moved to a
+ module.
+
+ Change-Id: I2248b8a455225a17cb6ddaafd6c20c511a1eaf59
+
+2016-07-14 18:06 +0000 [cb58f853e1] Alexei Gradinari <alex2grad@gmail.com>
+
+ * res_pjsip_mwi: remove unneeded check on endpoint's contacts.
+
+ The function create_mwi_subscriptions_for_endpoint checks
+ if there is active contacts by retrieving aors and contacts.
+
+ This function is used to create all unsolicited mwi subscriptions
+ on startup and is used when contact added.
+
+ In both cases it's not necessary to check if there are contacts.
+ The contacts are needed when asterisk sends mwi.
+
+ ASTERISK-26200 #close
+
+ Change-Id: I98e43bdc97f3c0829951cd9bf5f3c6348c6ac1fa
+
+2016-06-30 15:58 +0000 [28501051b4] Mark Michelson <mmichelson@digium.com>
+
+ * Update support for SILK format.
+
+ This commit adds scaffolding in order to support the SILK audio format
+ on calls. Roughly, this is what is added:
+
+ * Cached silk formats. One for each possible sample rate.
+ * ast_codec structures for each possible sample rate.
+ * RTP payload mappings for "SILK".
+
+ In addition, this change overhauls the res_format_attr_silk file in the
+ following ways:
+
+ * The "samplerate" attribute is scrapped. That's native to the format.
+ * There are far more checks to ensure that attributes have been
+ allocated before attempting to reference them.
+ * We do not SDP fmtp lines for attributes set to 0.
+
+ These changes make way to be able to install a codec_silk module and
+ have it actually work. It also should allow for passthrough silk calls
+ in Asterisk.
+
+ Change-Id: Ieeb39c95a9fecc9246bcfd3c45a6c9b51c59380e
+
+2016-07-14 07:45 +0000 [43b5f8d57b] Richard Miller (license 5685)
+
+ * app_queue: Only remove queue member from pending when state changes.
+
+ It is possible for a not in use state change to occur multiple
+ times causing a queue member to be removed from the pending call
+ container prematurely.
+
+ The first not in use state change will remove the queue member
+ from the container. At this moment the member may be called and
+ placed in the pending container. After this another not in use
+ state change can be received which will remove it from the
+ container. Despite being called at this point the code will
+ incorrectly see that there are no pending calls to it.
+
+ This change only removes it from the pending container if the
+ state has actually changed.
+
+ ASTERISK-26133 #close
+ patches:
+ app_queue.diff submitted by Richard Miller (license 5685)
+
+ Change-Id: Ie5a7f17a44f98e9159e9b85009ce3f8393aa78c0
+
+2016-07-14 02:40 +0000 [a17b071e36] Corey Farrell <git@cfware.com>
+
+ * pbx: Fix leak of timezone for time based includes.
+
+ Create include_free to run ast_destroy_timing and ast_free, use that in
+ all places that freed an ast_include structure. This fixes a couple of
+ paths that previously did not run ast_destroy_timing.
+
+ ASTERISK-26196 #close
+
+ Change-Id: I1671bd111bef0dc113e8bf8f77f89fcfc395d838
+
+2016-07-13 17:45 +0000 [8cef8f35e7] Kevin Harwell <kharwell@digium.com>
+
+ * translate: explicit format destination not properly set
+
+ If the destination format's name differed from the codec name then the
+ translator's explict_dst field would be improperly set. In some circumstances
+ it would end up setting it to a newly created format that has the same name
+ as the codec when it actually needed to be the given destination codec.
+
+ This could cause the translation path to use the wrong format. For instance,
+ if an endpoint had specified 'myulaw' as a format the translator could end up
+ using a 'ulaw' format (with whatever/default settings) instead. If the format
+ attribute settings differed between the two then there may unexpected results
+ during processing.
+
+ This patch removes the name check when building the translation path. This
+ should make it always set the translator's explicit_dst to the given destination
+ format as long as the sample rate and types match.
+
+ Change-Id: Iaf8a03831d68e657d89569d54b505074efbefab5
+
+2016-07-08 11:46 +0000 [afbd10b0c5] Richard Mudgett <rmudgett@digium.com>
+
+ * stasis_endpoint.c: Fix contactstatus_to_json().
+
+ The roundtrip_usec json member is optional. If it isn't present then
+ don't put it into the converted json structure where ast_json_pack()
+ will choke on it.
+
+ Change-Id: I39bb2f86154ef54591270c58bfda8635070f9ea0
+
+2016-07-13 13:45 +0000 [2be13d62fd] Corey Farrell <git@cfware.com>
+
+ * chan_sip: Fix reference leak in mwi_event_cb
+
+ Cleanup the peer reference when stasis_subscription_final_message is
+ true. Also free peer_name even if peer exists, after reload a new
+ peer_name will be allocated.
+
+ ASTERISK-26193 #close
+
+ Change-Id: If7ecd52facdc5c227f701c760841e3f6ca53cc69
+
+2016-06-22 07:13 +0000 [332beb27d8] Eugene Voityuk <eugene@thirdlane.com>,Alexander Traud <pabstraud@compuserve.com>
+
+ * res_rtp_asterisk: Enable Forward Secrecy (PFS) for DTLS.
+
+ Since July 2014, TLS based protocols (SIP over TLS, Secure WebSockets, HTTPS)
+ support PFS thanks to ASTERISK-23905. In July 2015, the same feature was added
+ for DTLS. The source code from main/tcptls.c should have been re-used to ease
+ security audits. Therefore, this change rolls back the change from July 2015 and
+ re-uses the code from July 2014. This has the additional benefits to work under
+ CentOS 7 and enabling not just ECDHE but DHE based cipher suites as well.
+
+ ASTERISK-25659 #close
+ Reported by: StefanEng86, urbaniak, pay123
+ Tested by: sarumjanuch, traud
+ patches:
+ res_rtp_asterisk.patch submitted by sarumjanuch
+ dtls_centos_step_1.patch submitted by traud
+ dtls_centos_step_2.patch submitted by traud
+
+ Change-Id: I537cadf4421f092a613146b230f2c0ee1be28d5c
+
+2016-07-13 11:30 +0000 [672a64bda3] Corey Farrell <git@cfware.com>
+
+ * threadpool: Fix leak in ast_threadpool_serializer_group error path.
+
+ ast_threadpool_serializer_group leaks a reference to ser when listener
+ is allocated but tps is not. Although listener takes the reference to
+ ser cleanup functions are not run without tps.
+
+ ASTERISK-26191 #close
+
+ Change-Id: Ie3ccf69a3f1e676c2ef62a77067c0cb57dc9a585
+
+2016-07-11 10:22 +0000 [fea201f7e6] Richard Mudgett <rmudgett@digium.com>
+
+ * pjsip_options.c: Fix container operation.
+
+ aor_observer_deleted() needs to operate on all contacts found for the
+ deleted AOR instead of only the first one found. This is really only a
+ problem if there is more than one contact for the AOR.
+
+ Change-Id: Id24ac0d5e8c931330231fb45dd2a331a84339dc1
+
+2016-07-11 10:21 +0000 [02877b4b4f] Richard Mudgett <rmudgett@digium.com>
+
+ * pjsip_configuration.c: Misc cleanups.
+
+ * Fix some whitespace in various routines.
+
+ * Rename i to iter in persistent_endpoint_update_state().
+
+ * Fix off-nominal copy/paste message wording in
+ persistent_endpoint_contact_deleted_observer()
+
+ Change-Id: Id8e34f5d09e7eebac3af22501c44c1110a3e29d8
+
+2016-07-13 08:57 +0000 [148cd1b319] Alexander Traud <pabstraud@compuserve.com>
+
+ * BuildSystem: Avoid obsolete warning with pthread.m4 on autoconf.
+
+ Updated the macro-set autoconf/ax_pthread.m4 to its latest upstream version.
+
+ ASTERISK-26046 #close
+
+ Change-Id: I11abc11d17acd2b6a8a5a5be8ae8e0949dab9cc7
+
+2016-07-11 10:25 +0000 [97b4c7a5b4] Richard Mudgett <rmudgett@digium.com>
+
+ * res_pjsip: Fix statsd regression.
+
+ The ASTERISK-25904 change-id I8fad8aae9305481469c38d2146e1ba3a56d3108f
+ patch introduced several regressions when the newly created "Updated"
+ state goes out for each endpoint registration refresh.
+
+ 1) It restarted any OPTIONS RTT ping cycle.
+
+ 2) It would interfere with a currently active ping and throw off that
+ ping's resulting RTT calculation.
+
+ 3) It cleared the RTT time each time the endpoint was refreshed.
+
+ 4) The cleared RTT time was sent out as a statsd update each time.
+
+ 5) It created two AMI events for each update.
+
+ * Revert the original patch and reimplement it. Now the current contact
+ status state is re-sent instead of the state being momentarily toggled
+ every time the endpoint refreshes its registration. The statsd events are
+ not created for the re-sent refresh because they are sent after every
+ OPTIONS ping.
+
+ ASTERISK-26160 #close
+ Reported by: Matt Jordan
+
+ Change-Id: Ie072be790fbb2a8f5c1c874266e4143fa31f66d1
+
+2016-07-12 03:50 +0000 [3be6fa1e4b] Alexander Traud <pabstraud@compuserve.com>
+
+ * BuildSystem: Allow own CFLAGS on ./configure.
+
+ Before this change, make failed with the error
+ Unknown value '' found in build_tools/menuselect-deps for NATIVE_ARCH
+ when CFLAGS were supplied to the configure script. This was introduced with
+ <https://reviewboard.asterisk.org/r/1852/> which disabled BUILD_NATIVE when
+ CFLAGS were supplied. Those who need different -march= values, please, go for
+ ./configure
+ make menuselect.makeopts or make menuselect
+ ./menuselect/menuselect --disable BUILD_NATIVE
+
+ ASTERISK-25289 #close
+
+ Change-Id: Ic6365d5a97bb9b3556858f06432a8d1cfa83eebc
+
+2016-07-11 13:42 +0000 [5ee205d8bb] Richard Mudgett <rmudgett@digium.com>
+
+ * ast_expr2: Fix off-nominal memory leak.
+
+ Thanks to ibercom for pointing out a memory leak that was missed
+ in the earlier patch for the issue.
+
+ ASTERISK-26119
+ Reported by: Alexei Gradinari
+
+ Change-Id: I9a151f5c4725d97fb82a9e938bc73dc659532b71
+
+2016-07-11 10:17 +0000 [f5e9872016] Alexander Traud <pabstraud@compuserve.com>
+
+ * install_prereq: Checkout of libSRTP 1.5.x.
+
+ Since 5th November 2014, the master branch of libSRTP changed the prefix of
+ several member names and is not compatible with the source code in Asterisk
+ anymore. Therefore instead, this change checks out the latest version of the
+ libSRTP 1.5.x branch. Furthermore now, libSRTP is compiled with OpenSSL as
+ backend. This makes AES-GCM and AES-IN possible.
+
+ ASTERISK-22131 #close
+
+ Change-Id: I2e396cdc01da0ff610686e398ed210ca7408f7d6
+
+2016-07-10 19:08 +0000 [17efed6cf7] Joshua Colp <jcolp@digium.com>
+
+ * func_odbc: Fix connection deadlock.
+
+ The func_odbc module was modified to ensure that the
+ previous behavior of using a single database connection
+ was maintained. This was done by getting a single database
+ connection and holding on to it. With the new multiple
+ connection support in res_odbc this will actually starve
+ every other thread from getting access to the database as
+ it also maintains the previous behavior of having only
+ a single database connection.
+
+ This change disables the func_odbc specific behavior if
+ the res_odbc module is running with only a single database
+ connection active. The connection is only kept for the
+ duration of the request.
+
+ ASTERISK-26177 #close
+
+ Change-Id: I9bdbd8a300fb3233877735ad3fd07bce38115b7f
+
+2016-07-09 13:32 +0000 [06ba533bc7] Corey Farrell <git@cfware.com>
+
+ * chan_sip: Fix reference leaks in error paths.
+
+ * get_sip_pvt_from_replaces leaks sip_pvt_ptr on any error.
+ * build_peer leaks peer on failure to allocate the endpoint.
+
+ This patch fixes get_sip_pvt by using an RAII_VAR, build_peer is fixed
+ with an unref in the appropriate place.
+
+ ASTERISK-26184 #close
+
+ Change-Id: I728b424648ad041409f7d90880f4c28b3ce2ca12
+
+2016-07-07 12:41 +0000 [9d4e664f62] Corey Farrell <git@cfware.com>
+
+ * REF_DEBUG: Prevent logging of container node objects.
+
+ Using AO2_CONTAINER_ALLOC_OPT_DUPS_REPLACE can result in an unref being
+ recorded to the refs log for the node being replaced. This prevents
+ logging of those unrefs since they would produce errors in
+ refcounter.py.
+
+ ASTERISK-26181 #close
+
+ Change-Id: Ie4fded84e8a1a58b3a59ce59dfd7eb0da3ddc5d4
+
+2016-07-07 10:55 +0000 [e26bd15e7a] Scott Griepentrog <scott@griepentrog.com>
+
+ * PJSIP: provide valid tcp nodelay option for reuse
+
+ When using TCP transport with chan_pjsip, the TCP_NODELAY
+ option value was allocated on the stack, then passed as a
+ pointer to the tcp transport configuration structure, and
+ later re-used on subsequently created sockets when it was
+ no longer valid. This patch changes the allocation to be
+ a static.
+
+ ASTERISK-26180 #close
+ Reported by: Scott Griepentrog
+
+ Change-Id: I3251164c7f710dbdab031282f00e30a9770626a0
+
+2016-07-07 10:38 +0000 [77b0145a25] Joshua Colp <jcolp@digium.com>
+
+ * chan_sip/res_pjsip_t38: Handle a request to negotiate T.38 after it is enabled.
+
+ Some T.38 implementations may send another re-invite after the initial
+ one which adds additional negotiation details (such as the max bitrate).
+ Currently this will fail when passthrough is being done in chan_sip as we
+ do nothing if T.38 is already active.
+
+ Other handlers of T.38 inside of Asterisk (such as res_fax) handle this
+ scenario so this change adds support for it to chan_sip and res_pjsip_t38.
+ If a request to negotiate is received while T.38 is already enabled a
+ new re-INVITE is sent and negotiation is done again.
+
+ ASTERISK-26179 #close
+
+ Change-Id: I0298494d3da6df3219bbfa4be9aa04015043145c
+
+2016-07-04 16:38 +0000 [b4a9fa2c9e] Alexei Gradinari <alex2grad@gmail.com>
+
+ * res_sorcery_realtime: fix bug when successful UPDATE is treated as failed
+
+ If the SQL UPDATE statement changes nothing then SQLRowCount returns 0.
+ This value should be treated as success.
+ But the function sorcery_realtime_update treats it as failed.
+
+ This bug was found using stress tests on PJSIP.
+ If there are 2 consecutive SIP REGISTER requests with the same contact data
+ during 1 second then res_pjsip_registrar adds contact location on 1st request
+ and tries to update contact location on 2nd.
+ The update fails and res_pjsip_registrar even removes correct contact location.
+
+ The test "object_update_uncreated" was removed from test_sorcery_realtime.c
+ because it's now a valid situation.
+
+ This patch also adds missing debug of extra SQL parameter.
+
+ ASTERISK-26172 #close
+
+ Change-Id: I05a7f3051455336c9dda29efc229decf86071303
+
+2016-06-24 19:55 +0000 [1dfd3fc995] Matt Jordan <mjordan@digium.com>
+
+ * res/res_pjsip_session: Check for presence of an active negotiator
+
+ It is possible in a hypothetical situation for a session refresh to be
+ invoked on a PJSIP when the negotiatior on the INVITE session has not
+ yet been established. While this shouldn't occur with existing uses of
+ ast_sip_session_refresh, the crashes that occur due to improperly
+ calling PJSIP functions that expect a non-NULL negotiatior are
+ avoidable. PJSIP will create the negotiator in pjsip_inv_reinvite; this
+ means that simply checking for the presence of the negotiator before
+ passing it to other PJSIP functions that use it is allowable. As such,
+ this patch adds checks for the presence of the negotiator before calling
+ PJSIP functions that assume it is non-NULL.
+
+ Change-Id: I1028323e7e01b0a531865e5412a71b6f6ec4276d
+
+2015-10-19 18:55 +0000 [9dd0aeeb44] Matt Jordan <mjordan@digium.com>
+
+ * res/res_pjsip_pubsub: Add additional debug statements
+
+ When something very sad and wrong occurs, it's challenging sometimes to
+ figure out why. This patch adds some additional debug statements on
+ off-nominal paths to try and make debugging easier.
+
+ Change-Id: I7bffb73cc733b6f80193a23340881db4a102b640
+
+2015-10-19 18:55 +0000 [1ec4f8dd00] Matt Jordan <mjordan@digium.com>
+
+ * res/res_corosync: Raise a Stasis message on node join/leave events
+
+ When res_corosync detects that a node leaves or joins, it currently is
+ informed of this via Corosync callbacks. However, there are a few
+ limitations with the information presented:
+ (1) While we have information that Corosync is aware of - such as the
+ Corosync nodeid - that information is really only useful inside of
+ Corosync or res_corosync. There's no way to translate a Corosync
+ nodeid to some other internally useful unique identifier for the
+ Asterisk instance that just joined or left the cluster.
+ (2) While res_corosync is notified of the instance joining or leaving
+ the cluster, it has no mechanism to inform the Asterisk core or
+ other modules of this event. This limits the usefulness of res_corosync
+ as a heartbeat mechanism for other modules.
+
+ This patch addresses both issues.
+
+ First, it adds the notion of a cluster discovery message both within the
+ Stasis message bus, as well as the binary event messages that
+ res_corosync uses to transmit data back and forth within the cluster.
+ When Asterisk joins the cluster, it sends a discovery message to the other
+ nodes in the cluster, which correlates the Corosync nodeid along with
+ the Asterisk EID. res_corosync now maintains a hash of Corosync nodeids
+ to Asterisk EIDs, such that it can map changes in cluster state with the
+ Asterisk instance that has that nodeid. Likewise, when an Asterisk
+ instance receives a discovery message from a node in the cluster, it now
+ sends its own discovery message back to the originating node with the
+ local Asterisk EID. This lets Asterisk instances within the cluster
+ build a complete picture of the other Asterisk instances within the
+ cluster.
+
+ Second, it publishes the discovery messages onto the Stasis message bus.
+ Said messages are published whenever a node joins or leaves the cluster.
+ Interested modules can subscribe for the ast_cluster_discovery_type()
+ message under the ast_system_topic() and be notified when changes in
+ cluster state occur.
+
+ Change-Id: I9015f418d6ae7f47e4994e04e18948df4d49b465
+
+2016-07-04 13:54 +0000 [2c16a81dd5] Alexei Gradinari <alex2grad@gmail.com>
+
+ * res_pjsip: Added "subscribe_context" to endpoint
+
+ If specified, incoming SUBSCRIBE requests will be searched for the matching
+ extension in the indicated context. If no "subscribe_context" is specified,
+ then the "context" setting is used.
+
+ ASTERISK-25471 #close
+
+ Change-Id: I3fb7a15f5bc154079bd348c08b7ad1cdd2d5e514
+
+2016-07-04 05:58 +0000 [a1bd57884d] Alexander Traud <pabstraud@compuserve.com>
+
+ * BuildSystem: Avoid obsolete warning with libcurl.m4 on autoconf.
+
+ Updated the macro-set autoconf/libcurl.m4 to its latest upstream version. This
+ avoids a warning about an obsolete macro on AC_HELP_STRING, because Asterisk is
+ using AS_HELP_STRING everywhere else already.
+
+ ASTERISK-26046
+
+ Change-Id: I8299faf504ceaeee3e39930c59293809e116c631
+
+2016-06-30 15:17 +0000 [640fbbbe28] Richard Mudgett <rmudgett@digium.com>
+
+ * features: Fix channel datastore access.
+
+ Found as a result of the testsuite tests/callparking test crashing.
+
+ Several calls to ast_get_chan_featuremap_config() and
+ ast_get_chan_features_xfer_config() did not lock the channel before
+ calling so the channel's datastore list was accessed without the lock's
+ protection. Apparently another thread deleted a datastore on the
+ channel's list while the crashing thread was walking the list. Crash at
+ 0xdeaddead due to MALLOC_DEBUG's memory filler value as a result.
+
+ * Add missing channel locks to calls that were not already protected
+ as the doxygen for those calls indicates.
+
+ Change-Id: Id273b3d305cc616406c353cbc841b2b7655efaa1
+
+2016-06-22 17:26 +0000 [359134c8d3] Richard Mudgett <rmudgett@digium.com>
+
+ * res_pjsip_session.c: Don't send extra BYE if SDP invalid.
+
+ When an answer SDP is invalid we were disconnecting the outgoing call and
+ sending two BYE requests. The first BYE was sent by PJPROJECT because of
+ the invalid SDP answer. The second BYE was sent by Asterisk because it
+ thought the canceled call was the result of the RFC5407 section 3.1.2 race
+ condition.
+
+ * Made not send the BYE on a canceled session if the SDP negotiation is
+ incomplete because PJPROJECT has already sent a BYE for the failed
+ negotiation.
+
+ ASTERISK-25772 #close
+ Reported by: Dmitriy Serov
+
+ Change-Id: I44ad0bd0605e8eeb7035c890d6f97a1331f1a836
+
+2016-06-27 17:19 +0000 [5fabcf2ca1] Richard Mudgett <rmudgett@digium.com>
+
+ * res_pjsip_session.c: End call on initial invalid SDP negotiation.
+
+ When an incoming call defers SDP negotiation and then sends us an invalid
+ SDP in the ACK, we need to send a BYE to disconnect the call. In this
+ case SDP negotiation has failed and we don't have valid media streams
+ negotiated.
+
+ ASTERISK-25772
+
+ Change-Id: Ia358516b0fc1e6c4c139b78246f10b9da7a2dfb8
+
+2016-06-23 15:13 +0000 [38a4e983dc] Richard Mudgett <rmudgett@digium.com>
+
+ * res_pjsip.c: Register PJMEDIA error code decoder.
+
+ Registering the PJMEDIA error codes allows errors found when parsing an
+ incoming SDP to be easier to figure out.
+
+ "Missing SDP rtpmap for dynamic payload type (PJMEDIA_SDP_EMISSINGRTPMAP)"
+ is much easier to understand than "Unknown error 220030".
+
+ ASTERISK-25772
+
+ Change-Id: I44b2dcea656fedd7593171be9e845880a2c70ca0
+
+2016-06-27 16:56 +0000 [1952434df5] Richard Mudgett <rmudgett@digium.com>
+
+ * res_pjsip_session.c: Remove unused parameter from handle_incoming().
+
+ Change-Id: Iedd182d189ec947c42edc2c66c4bda3c22060daa
+
+2016-06-22 18:02 +0000 [28928ba5c4] Richard Mudgett <rmudgett@digium.com>
+
+ * res_pjsip: Add missing NULL checks when using pjsip_inv_end_session().
+
+ pjsip_inv_end_session() is documented as being able to return the
+ passed in tdata parameter set to NULL on success.
+
+ Change-Id: I09d53725c49b7183c41bfa1be3ff225f3a8d3047
+
+2016-06-30 08:25 +0000 [43a78100c0] gtjoseph <gjoseph@digium.com>
+
+ * configure: Fix HAVE_PJSIP_EVSUB_GRP_LOCK not set with external pjproject
+
+ There was a typo in configure.ac preventing HAVE_PJSIP_EVSUB_GRP_LOCK
+ from getting set when using an external pjproject.
+
+ ASTERISK-26099 #close
+ Reported-by: Ross Beer
+
+ Change-Id: I709af70428e125fb5ccd44b171d25dd29141f0ae
+
+2016-06-29 15:31 +0000 [99eff80e76] Matt Jordan <mjordan@digium.com>
+
+ * hep.conf.sample: Default 'enabled' to 'no'
+
+ Following the principle of least surprise, we should not be sending
+ massive numbers of PJSIP and RTCP HEP packets out into the ether to some
+ only-slightly-random IP address. Having 'enabled' set to 'no' in the
+ sample configuration file should prevent this from happening for those
+ who run 'make samples'.
+
+ ASTERISK-26159 #close
+
+ Change-Id: I1753a64ca83a3442a6ebdc31061f8185c062d9b1
+
+2016-06-29 15:09 +0000 [78960975f2] Matt Jordan <mjordan@digium.com>
+
+ * pjproject/patches/config_site: Increase the max number of ICE candidates
+
+ When negotiating ICE candidates with WebRTC capable endpoints, many
+ networks will result in a browser offering ICE candidates that exceeds
+ the default number of max candidates, 16. This patch bumps the max
+ candidates to 32, with the max checks at twice the number of candidates.
+ In practice, this has shown to be sufficient for browser/WebRTC
+ negotiation.
+
+ Change-Id: Ifd8da8b315f5ae14814d4ce20e10d2e6355020e5
+
+2016-06-28 09:00 +0000 [d07c8a0504] gtjoseph <gjoseph@digium.com>
+
+ * codecs: Fix ABI incompatibility created by adding format_name to ast_codec
+
+ Adding format_name even to the end of ast_codec caused issued with
+ binary codec modules because the pointer would be garbage in asterisk
+ when they registered. So, the ast_codec structure was reverted and an
+ internal_ast_codec structure was created just for use in codec.c. A new
+ internal-only API was also added (__ast_codec_register_with_format) so
+ that codec_builtin could register codecs with the format_name in a
+ separate parameter rather than in the ast_codec structure.
+
+ ASTERISK-26144 #close
+ Reported-by: Alexei Gradinari
+
+ Change-Id: I6df1b08f6a6ae089db23adfe1ebc8636330265ba
+
+2016-06-28 08:22 +0000 [f3d236ca7f] gtjoseph <gjoseph@digium.com>
+
+ * BuildSystem: Fix a few issues hightlighted by gcc 6.x
+
+ gcc 6.1.1 caught a few more issues.
+ Made sure the unit tests still pass for the func_env and stdtime
+ issues.
+
+ ASTERISK-26157 #close
+
+ Change-Id: I6664d8f34a45bc1481d2a854481c7878b0c1cf8e
+
+2016-06-28 10:33 +0000 [9d5b0934d9] Matt Jordan <mjordan@digium.com>
+
+ * configs/basic-pbx/modules.conf: Remove 'bad' modules
+
+ This patch removes the following modules:
+ - pbx_functions: It never existed.
+ - res_pjsip_log_forwarder: It no longer exists.
+ - res_hep_pjsip: The base HEP module wasn't loaded, and most basic PBXs
+ aren't going to be installing HOMER
+ - res_pjsip_phoneprov_provider: The basic res_phoneprov module isn't
+ loaded, and we aren't configured to make use of the
+ module
+
+ Change-Id: Id91f68cae7c9c8c3d370029fe1268cb51e4ff5a5
+
+2016-06-22 11:19 +0000 [1dfc286418] Joshua Colp <jcolp@digium.com>
+
+ * siren: Add format attribute modules for Siren7 and Siren14.
+
+ This change removes hardcoded SDP parsing and generation for
+ Siren7 and Siren14 from chan_sip and moves it to format attribute
+ modules so it can also be used by chan_pjsip.
+
+ With this the fmtp lines for both are added with the bitrate
+ information.
+
+ ASTERISK-26021
+
+ Change-Id: Ibb004eda37a14c0a35ef0613f6237977fc800037
+
+2016-06-23 04:33 +0000 [5f0a098243] Alexander Traud <pabstraud@compuserve.com>
+
+ * BuildSystem: Avoid obsolete warning with AC_TYPE_SIGNAL on autoconf.
+
+ Removed the obsolete macro AC_TYPE_SIGNAL because Asterisk does not use K&R C
+ but requires ANSI C anyway.
+
+ ASTERISK-26046
+
+ Change-Id: I914c014385e1862102d90fe7650621def78db02e
+
+2016-06-02 17:26 +0000 [b3c787d1dd] Alexei Gradinari <alex2grad@gmail.com>
+
+ * res_pjsip: improve realtime performance #2
+
+ The patch removes updating all Endpoints' status on startup.
+ Instead, only non-qualified aors with static contact
+ and non-qualified non-expired contacts are retrieved from the realtime to
+ update the endpoint status to ONLINE.
+ The endpoint name was added to the contact object to simply find the endpoint
+ that created this contact.
+
+ The status of endpoints with qualified aors will be updated by 'qualify'
+ functions.
+
+ ASTERISK-26061 #close
+
+ Change-Id: Id324c1776fa55d3741e0c5457ecac0304cb1a0df
+
+2016-06-23 13:47 +0000 Asterisk Development Team <asteriskteam@digium.com>
+
+ * asterisk 13.10.0-rc1 Released.
+
+2016-06-23 08:42 +0000 [62349ac1b4] Mark Michelson <mmichelson@digium.com>
+
+ * Release summaries: Add summaries for 13.10.0-rc1
+
+2016-06-23 08:38 +0000 [8da6ba4328] Mark Michelson <mmichelson@digium.com>
+
+ * .version: Update for 13.10.0-rc1
+
+2016-06-23 08:38 +0000 [170b85e3ae] Mark Michelson <mmichelson@digium.com>
+
+ * .lastclean: Update for 13.10.0-rc1
+
+2016-06-23 08:38 +0000 [4af7049b8f] Mark Michelson <mmichelson@digium.com>
+
+ * realtime: Add database scripts for 13.10.0-rc1
+
+2016-06-22 15:04 +0000 [3d904659ec] Corey Farrell <git@cfware.com>
+
+ * res_fax: Fix reference leak in fax_v21_session_new.
+
+ fax_v21_session_new created a session details object but only released
+ the allocation reference during error conditions. fax_session_new adds
+ it's own reference to details if needed so the caller is always
+ responsible for cleaning it's own reference.
+
+ ASTERISK-26141 #close
+
+ Change-Id: Ie7fc52a83b6596ce9ce2d5a2bd9f3e204f48fc88
+
+2016-06-22 13:41 +0000 [48db4c2159] gtjoseph <gjoseph@digium.com>
+
+ * res_rtp_asterisk: Fix a self-comparison identified by gcc 6
+
+ gcc 6 caught a previously unidentified self-comparison in
+ ice_candidate_cmp. Fixed it and re-ordered the predicates for better
+ short-circuiting.
+
+ ASTERISK-26140 #close
+
+ Change-Id: I3da713c568e24064430257b3502fbdafd35af7a7
+
+2016-06-22 10:37 +0000 [bc69b03316] gtjoseph <gjoseph@digium.com>
+
+ * chan_unistim: Fix memcpy in get_to_address
+
+ A code block only enabled when HAVE_PKTINFO is not defined (FreeBSD)
+ was using a pointer to a pointer as the destination of a memcpy and a
+ '&' instead of '*' in the sizeof.
+
+ ASTERISK-26138 #close
+
+ Change-Id: Id4927ff256c0e470bdf7bcfc025146a2f656e708
+
+2016-06-20 13:18 +0000 [1b79e2deff] Mark Michelson <mmichelson@digium.com>
+
+ * Fix Alembic upgrades.
+
+ A non-existent constraint was being referenced in the upgrade script.
+ This patch corrects the problem by removing the reference.
+
+ This patch fixes another realtime problem as well. Our Alembic scripts
+ store booleans as yes or no values. However, Sorcery tries to insert
+ "true" or "false" instead. This patch updates Sorcery to use "yes" and
+ "no"
+
+ ASTERISK-26128 #close
+
+ Change-Id: I366dbbf91418a9cb160b3ca74b0e59b5ac284bec
+
+2016-06-22 10:55 +0000 [e30602587c] Alexander Traud <pabstraud@compuserve.com>
+
+ * BuildSystem: Avoid obsolete warning with AC_FUNC_SETVBUF_REVERSED on autoconf.
+
+ Removed the obsolete macro AC_FUNC_SETVBUF_REVERSED because Asterisk does not
+ support the platform SVR2 from the year 1987 anymore.
+
+ ASTERISK-26046
+
+ Change-Id: I28161b037feb2d29ab46ed20e785928460226c22
+
+2016-06-22 10:51 +0000 [77da168e58] gtjoseph <gjoseph@digium.com>
+
+ * test_res_pjsip_scheduler: Add 'depends' on pjproject in MODULEINFO
+
+ Since the file was missing the depends on pjproject, it wasn't
+ picking up the pjproject related include path. If there was no
+ system installed pjproject and pjproject-bundled was used, a compile
+ would fail because pjsip.h wasn't found.
+
+ ASTERISK-26139 #close
+
+ Change-Id: I2ee64a999051452bc198c4e2c168c70769cd3757
+
+2016-06-21 06:52 +0000 [dfcd466bf0] Torrey Searle <torrey@voxbone.com>
+
+ * res_rtp_asterisk: fix memory leak in dtls
+
+ ensure that cert bios get freed after creating the fingerprint
+
+ ASTERISK-26129 #close
+
+ Change-Id: I44d23aea07dce80176ca1ff877c5ace9452ef451
+
+2016-06-21 17:42 +0000 [c982da0641] Richard Mudgett <rmudgett@digium.com>
+
+ * res_pjproject.c: Replace inlined DEBUG_ATLEAST() with macro.
+
+ Change-Id: I8799fb0a347ad76e747dafd0eacf1ea1086b9a8c
+
+2016-06-12 11:19 +0000 [6a568bcc66] gtjoseph <gjoseph@digium.com>
+
+ * res_pjsip_pubsub: Address SEGV when attempting to terminate a subscription
+
+ Occasionally under load we'll attempt to send a final NOTIFY on a
+ subscription that's already been terminated and a SEGV will occur
+ down in pjproject's evsub_destroy function. This is a result of a
+ race condition between all the paths that can generate a notify
+ and/or destroy the underlying pjproject evsub object:
+
+ * The client can send a SUBSCRIBE with Expires: 0.
+ * The client can send a SUBSCRIBE/refresh.
+ * The subscription timer can expire.
+ * An extension state can change.
+ * An MWI event can be generated.
+ * The pjproject transaction timer (timer_b) can expire.
+
+ Normally when our pubsub_on_evsub_state is called with a terminate,
+ we push a task to the serializer and return at which point the dialog
+ is unlocked. This is usually not a problem because the task runs
+ immediately and locks the dialog again. When the system is heavily
+ loaded though, there may be a delay between the unlock and relock
+ during which another event may occur such as the subscription timer
+ or timer_b expiring, an extension state change, etc. These may also
+ cause a terminate to be processed and if so, we could cause pjproject
+ to try to destroy the evsub structure twice. There's no way for us to
+ tell that the evsub was already destroyed and the evsub's group lock
+ can't tolerate this and SEGVs.
+
+ The remedy is twofold.
+
+ * A patch has been submitted to Teluu and added to the bundled
+ pjproject which adds add/decrement operations on evsub's group lock.
+
+ * In res_pjsip_pubsub:
+ * configure.ac and pjproject-bundled's configure.m4 were updated
+ to check for the new evsub group lock APIs.
+ * We now add a reference to the evsub group lock when we create
+ the subscription and remove the reference when we clean up the
+ subscription. This prevents evsub from being destroyed before
+ we're done with it.
+ * A state has been added to the subscription tree structure so
+ termination progress can be tracked through the asyncronous tasks.
+ * The pubsub_on_evsub_state callback has been split so it's not doing
+ double duty. It now only handles the final cleanup of the
+ subscription tree. pubsub_on_rx_refresh now handles both client
+ refreshes and client terminates. It was always being called for
+ both anyway.
+ * The serialized_on_server_timeout task was removed since
+ serialized_pubsub_on_rx_refresh was almost identical.
+ * Missing state checks and ao2_cleanups were added.
+ * Some debug levels were adjusted to make seeing only off-nominal
+ things at level 1 and nominal or progress things at level 2+.
+
+ ASTERISK-26099 #close
+ Reported-by: Ross Beer.
+
+ Change-Id: I779d11802cf672a51392e62a74a1216596075ba1
+
+2016-06-21 07:05 +0000 [ef97911a1c] Alexander Traud <pabstraud@compuserve.com>
+
+ * res_rtp_asterisk: Use latest DTLS version available by underlying platform.
+
+ Do not use DTLSv1_method() but DTLS_method() when available in OpenSSL of the
+ underlying platform. This change enables DTLS 1.2 since OpenSSL 1.0.2, for
+ WebRTC (DTLS-SRTP via SIP-over-WebSockets). This change enables AEAD-based
+ cipher-suites.
+
+ ASTERISK-26130 #close
+
+ Change-Id: I41f24448d6d2953e8bdb97c9f4a6bc8a8f055fd0
+
+2016-06-21 10:53 +0000 [69d58a1e37] Scott Griepentrog <scott@griepentrog.com>
+
+ * PJSIP: provide transport type with received messages
+
+ The receipt of a SIP MESSAGE may occur over any transport including TCP
+ and TLS. When the message is received, the original URI is added to the
+ message in the field PJSIP_RECVADDR, but this is insufficient to ensure
+ a reply message can reach the originating endpoint. This patch adds the
+ PJSIP_TRANSPORT field populated with the transport type.
+
+ ASTERISK-26132 #close
+
+ Change-Id: I28c4b1e40d573a056c81deb213ecf53e968f725e
+
+2016-06-21 08:01 +0000 [cbfa9f771e] Alexander Traud <pabstraud@compuserve.com>
+
+ * BuildSystem: Avoid obsolete warning with HELP_STRING on autoconf.
+
+ Some configure scripts used both AC_HELP_STRING and its replacement
+ AS_HELP_STRING. For consistency and to avoid obsolete warnings, those were
+ changed to AS_HELP_STRING.
+
+ ASTERISK-26046
+
+ Change-Id: I8aad4fd2bdee40aa2a31ce3339a1eb33ff4f5b0f
+
+2016-06-20 10:29 +0000 [ba0d9e7f7a] Joshua Colp <jcolp@digium.com>
+
+ * res_pjsip_session: Handle race condition at shutdown with timer.
+
+ When shutting down res_pjsip_session will get unloaded before res_pjsip.
+ The act of unloading unregisters all the PJSIP services and sets
+ their module IDs to -1. In some cases it is possible for a timer to
+ occur after this happens which calls into res_pjsip_session. The
+ res_pjsip_session module can then try to get the session from the
+ INVITE session using the module ID. Since the module ID is now -1
+ this fails.
+
+ This change stores a copy of the module ID and uses it for the timer
+ callback scenario. If the module ID is -1 the callback immediately
+ returns but if the module ID is valid then it continues as normal.
+
+ This works as the original ID of the module is guaranteed to still
+ be valid when used with the INVITE session.
+
+ ASTERISK-26127 #close
+
+ Change-Id: I88df72525c4e9ef9f19c13aedddd3ac4a335c573
+
+2016-06-20 12:13 +0000 [c1512f4108] Richard Mudgett <rmudgett@digium.com>
+
+ * app_voicemail.c: Fix IMAP compile error.
+
+ Fix compile error introduced by the patch for
+ ASTERISK-26045
+
+ Change-Id: I5b02876266f2824f4cec2b54d6ff4db5de5778d3
+
+2016-06-16 15:56 +0000 [5134a8043a] Alexei Gradinari <alex2grad@gmail.com>
+
+ * fix: memory leaks, resource leaks, out of bounds and bugs
+
+ ASTERISK-26119 #close
+
+ Change-Id: Iecbf7d0f360a021147344c4e83ab242fd1e7512c
+
+2016-06-13 17:40 +0000 [cfebe3b94a] Mark Michelson <mmichelson@digium.com>
+
+ * ARI: Ensure announcer channels are destroyed.
+
+ Announcer channels were not being destroyed because the
+ stasis_app_control structure that referenced them was not being
+ destroyed. The control structure was not being destroyed because it was
+ not being unlinked from its container. It was not being unlinked from
+ its container because the after bridge callback for the announcer
+ channel was not being run. The after bridge callback was not being run
+ because the after bridge datastore was not being removed from the
+ channel on destruction. The channel was not being destroyed because the
+ hangup that used to destroy the channel was now only reducing the
+ reference count to one. The reference count of the channel was only
+ being reduced to one because the stasis_app_control structure was
+ holding the final reference...
+
+ The control structure used to not keep a reference to the channel, so
+ that loop described above did not happen.
+
+ The solution is to manually remove the control structure from its
+ container when the playback on a bridge is complete.
+
+ ASTERISK-26083 #close
+ Reported by Joshua Colp
+
+ Change-Id: I0ddc0f64484ea0016245800b409b567dfe85cfb4
+
+2016-06-20 08:05 +0000 [76516bd79d] Alexander Traud <pabstraud@compuserve.com>
+
+ * http: leverage 'bindaddr' for TLS in http.conf
+
+ The internal HTTP/WebSocket server supports both TCP and TLS, which can be
+ activated separately via the file http.conf. The source code intends to re-use
+ the TCP parameter 'bindaddr' for TLS, even if 'tlsbindaddr' is not specified
+ explicitly. This did not work because of a typo. This change resolves this typo.
+
+ ASTERISK-26126 #close
+
+ Change-Id: I5efb0409ae12044dfb3495b6b97b6d40a8c9c51f
+
+2016-05-31 09:10 +0000 [89cc86fc38] Vasil Kolev <vasil.kolev@securax.org>
+
+ * chan_sip: bigger buffers for headers, better failure mode
+
+ Currently chan_sip can give weird messages if the contacts don't
+ fit in the From: or To: headers. This fix changes the from,to and
+ invite variables to use ast_str, allocates and deallocates them and
+ resizes them if needed.
+
+ ASTERISK-26069 #close
+
+ Change-Id: I1b68fcbddca6f6cc7d7a92fe1cb0d5430282b2b3
+
+2016-05-18 17:37 +0000 [d53a36ff33] Richard Mudgett <rmudgett@digium.com>
+
+ * res_pjsip_transport_management.c: Misc cleanups to survive shutdown.
+
+ * In unload_module(), reordered destroying things to minimize the window
+ that the global transports container could be used by other threads on
+ shutdown. When shutting down you need to stop things in the opposite
+ order of creation.
+
+ * Put the global transports container into an AO2_GLOBAL_OBJ_STATIC to
+ eliminate the crash potential by other threads using the container on
+ shutdown.
+
+ * Made struct monitored_transport.sip_received not use
+ ast_atomic_fetchadd_int() since it is used as a boolean value that is only
+ set TRUE. It was previously incremented for every received SIP message
+ and could theoretically overflow.
+
+ * In monitored_transport_state_callback(), allocated the monitored
+ transport object without a lock since the lock was unused.
+
+ * In keepalive_global_loaded(), removed releasing the transports container
+ if the keepalive_thread could not be started. I set it up to be tried
+ again if the user reloads the configuration.
+
+ Change-Id: I8d12d16ef564290fa6d25a32334bb5ce8fdf87ff
+
+2016-01-05 19:08 +0000 [03953d8034] Richard Mudgett <rmudgett@digium.com>
+
+ * res_pjsip.c: Add check that timer actually got scheduled.
+
+ Change-Id: Iabaa2e5dccf0762c258101ea0eb1487cf6959ad1
+
+2016-06-13 13:33 +0000 [32ab98116e] Richard Mudgett <rmudgett@digium.com>
+
+ * res_rtp_multicast.c: Fix warning message typo.
+
+ Change-Id: Ic9928208b9957e09866abe3d9649030942ec52b3
+
+2016-02-11 18:15 +0000 [0429c53368] Richard Mudgett <rmudgett@digium.com>
+
+ * res_pjsip_session.c: Reorganize ast_sip_session_terminate().
+
+ Change-Id: I68a2128bcba4830985d2d441e70dfd1ac5bd712b
+
+2016-06-10 12:35 +0000 [5823f279f3] Richard Mudgett <rmudgett@digium.com>
+
+ * chan_rtp: Backport changes from master.
+
+ * Deprecate chan_multicast_rtp.
+
+ Change-Id: Ib5a45e58c75ee8abd0b4f9575379b5321feb853e
+
+2016-06-10 16:13 +0000 [dde58df318] Richard Mudgett <rmudgett@digium.com>
+
+ * chan_rtp.c: Copy file from chan_multicast_rtp.c
+
+ Change-Id: I1119b53f2152ab1cbec74b5be7ea44844dbda8ef
+
+2016-06-08 06:15 +0000 [ca38a3cbb4] Alexander Traud <pabstraud@compuserve.com>
+
+ * core: Not the configured but granted number of possible file descriptors.
+
+ With CLI "core show settings", simply the parameter maxfiles of the file
+ asterisk.conf was shown. If that parameter was not set, nothing was displayed
+ although the environment might have set a default number itself. Or if maxfiles
+ were not granted (completely), still maxfiles was shown. Now, the maximum number
+ of possible file descriptors in the environment is shown.
+
+ ASTERISK-26097
+
+ Change-Id: I2df5c58863b5007b34b77adbe28b885dfcdf7e0b
+
+2016-06-07 18:45 +0000 [caf6cccc5c] Joshua Colp <jcolp@digium.com>
+
+ * cel: Ensure only one dial status per channel exists.
+
+ CEL wrongly assumed that a channel would only have a single dial
+ event on it. This is incorrect. Particularly in a queue each
+ call attempt to a member will result in a dial event, adding
+ a new dial status in CEL without removing the old one. This
+ would cause the container to grow with only one dial status
+ being removed when the channel went away. The other dial status
+ entries would remain leaking memory.
+
+ This change fixes the memory leak by ensuring that only one dial
+ status will only ever exist for each channel.
+
+ The behavior during the scenario where multiple events are received
+ has also been improved. For failure cases the first failure will
+ be the dial status. If an answer dial status is received, though,
+ it will take priority and the dial status for the channel will be
+ answer.
+
+ Memory usage has also been decreased by storing the minimal
+ amount of information and the code has been cleaned up slightly.
+
+ ASTERISK-25262 #close
+
+ Change-Id: I5944eb923db17b6a0faa7317ff6abc9307c009fe
+
+2016-06-09 10:37 +0000 [715ef071a1] Mark Michelson <mmichelson@digium.com>
+
+ * chan_pjsip: Lock channel when checking for RTP changes.
+
+ bridge_native_rtp can call into an RTP-capable channel driver in order
+ for the driver to update information about who the channel is
+ communicating with. For SIP channel drivers, this means deactivating
+ RTCP and sending a reinvite so that the endpoints can communicate
+ directly.
+
+ bridge_native_rtp does the right thing and has the channel locked when
+ calling into the channel driver. chan_pjsip can't alter session
+ properties in this thread, though. chan_pjsip queues a task on the
+ session serializer in order to update properties there.
+
+ The problem is that this queued task was not locking the channel. This
+ meant that the queued task could attempt to deactivate RTCP at the same
+ time that the channel thread was attempting to process an incoming RTCP
+ packet. This could lead to a crash.
+
+ This patch fixes the issue by locking the channel in the queued task
+ when altering RTP properties.
+
+ ASTERISK-26092 #close
+ Reported by Niklas Larsson
+
+ Change-Id: I3464e226a3c41f6b915f97891e07fa1599e2a159
+
+2016-06-09 09:20 +0000 [a99ddc6a0d] gtjoseph <gjoseph@digium.com>
+
+ * build: Fix ast_sockaddr initialization to be more portable
+
+ A change to glibc 2.22 changed the order of the sockadddr_storage
+ members which caused the places where we do an initialization of
+ ast_sockaddr with '{ { 0, 0, } }' to fail compilation. Those
+ initializers (which we shouldn't have been using anyway) have been
+ replaced with memsets.
+
+ Change-Id: Idd1b3b320903d8771bfe221f0b015685de628fa4
+
+2016-06-08 12:26 +0000 [eabb398d71] Matt Jordan <mjordan@digium.com>
+
+ * res_hep_{pjsip|rtcp}: Decline module loads if res_hep had not loaded
+
+ A crash can occur in res_hep_pjsip or res_hep_rtcp if res_hep has not
+ loaded and does not have a configuration file. Previously when this
+ occurred, checks were put in to see if the configuration was loaded
+ successfully. While this is a good idea - and has been added to the
+ offending function in res_hep - the reality is res_hep_pjsip and
+ res_hep_rtcp have no business running if res_hep isn't also running.
+
+ As such, this patch also adds a function to res_hep that returns whether
+ or not it successfully loaded. Oddly enough, ast_module_check returns
+ "everything is peachy" even if a module declined its load - so it cannot
+ be solely relied on. res_hep_pjsip and res_hep_rtcp now also check this
+ function to see if they should continue to load; if it fails, they
+ decline their load as well.
+
+ ASTERISK-26096 #close
+
+ Change-Id: I007e535fcc2e51c2ca48534f48c5fc2ac38935ea
+
+2016-06-08 05:58 +0000 [0d84421f93] Alexander Traud <pabstraud@compuserve.com>
+
+ * astfd: Not maximum size of a single file but maximum file descriptors.
+
+ With menuselect "DEBUG_FD_LEAKS" and CLI "core show fd", the maximum size of a
+ single file was shown. Now, the maximum number of possible file descriptors is
+ shown.
+
+ ASTERISK-26097
+
+ Change-Id: Icf98d145774b38cac144ca76d19eaef42ce659a3
+
+2016-06-02 14:53 +0000 [9c5a0b814b] Timo Teräs <timo.teras@iki.fi>
+
+ * Fix #include poll.h and sys/cdefs.h
+
+ POSIX defines poll.h, sys/poll.h should not be used at is c-library
+ internal header which may or may not exist. Notable in musl it
+ generates warning of being incorrect. And add explict include of
+ sys/cdefs.h where needed.
+
+ Change-Id: I142930df53fe7585a06b854b6faddc5301e024be
+
+2016-06-03 22:44 +0000 [9c35f34301] Richard Mudgett <rmudgett@digium.com>
+
+ * res_pjsip_registrar.c: Eliminate rx REGISTER request race condition.
+
+ This patch fixes a race condition processing received REGISTER requests
+ and their retransmissions caused by REGISTER requests being processed by
+ two threads. The "sip_transaction Unable to register REGISTER transaction
+ (key exists)" message is a notable symptom of this issue.
+
+ This issue was more likely to happen before the pjsip/distributor
+ serializers were created. Instead of steps one and two below placing the
+ REGISTER messages into the same pjsip/distributor they were placed in
+ random pjsip/default serializers.
+
+ 1) REGISTER requests come in and get placed on the pjsip/distributor
+ serializer.
+
+ 2) Before the first request is processed a retransmission comes in and is
+ placed on the same pjsip/distributor serializer.
+
+ 3) The first request goes up the pjsip stack and is then shunted off to
+ the pjsip/aor/<aor> serializer.
+
+ 4) Before the first request is completed processing in the pjsip/aor/<aor>
+ serializer, the second request goes up the pjsip stack and is also shunted
+ off to the pjsip/aor/<aor> serializer.
+
+ 5) The first request completes processing and sends out its response.
+
+ 6) The second request completes processing and tries to send out its
+ response but pjlib complains that the REGISTER transaction key already
+ exists.
+
+ 7) Sadness ensues.
+
+ * The race is eliminated by removing the pjsip/aor/<aor> serializer and
+ continuing the processing in the pjsip/distributor serializer. Now any
+ retransmissions queued in the pjsip/distributor serializer will be
+ processed after the first message is completely processed.
+
+ ASTERISK-26088 #close
+ Reported by: Richard Mudgett
+
+ Change-Id: I842d714346088bf717ea27437f1dd85bff0bab5a
+
+2016-06-03 11:35 +0000 [557333ea4c] Richard Mudgett <rmudgett@digium.com>
+
+ * stasis: Add setting subscription congestion levels.
+
+ Stasis subscriptions and message routers create taskprocessors to process
+ the event messages. API calls are needed to be able to set the congestion
+ levels of these taskprocessors for selected subscriptions and message
+ routers.
+
+ * Updated CDR, CEL, and manager's stasis subscription congestion levels
+ based upon stress testing. Increased the congestion levels to reduce the
+ potential for bursty call setup/teardown activity from triggering the
+ taskprocessor overload alert. CDRs in particular need an extra high
+ congestion level because they can take awhile to process the stasis
+ messages.
+
+ ASTERISK-26088
+ Reported by: Richard Mudgett
+
+ Change-Id: Id0a716394b4eee746dd158acc63d703902450244
+
+2016-06-02 18:19 +0000 [110d772467] Richard Mudgett <rmudgett@digium.com>
+
+ * sorcery: Add setting object type congestion levels.
+
+ Sorcery creates taskprocessors for object types to process object observer
+ callbacks. An API call is needed to be able to set the congestion levels
+ of these taskprocessors for selected object types.
+
+ * Updated PJSIP's contact and contact_status sorcery object type observer
+ default congestion levels based upon stress testing. Increased the
+ congestion levels to reduce the potential for bursty register/unregister
+ and subscribe/unsubscribe activity from triggering the taskprocessor
+ overload alert.
+
+ ASTERISK-26088
+ Reported by: Richard Mudgett
+
+ Change-Id: I4542e83b556f0714009bfeff89505c801f1218c6
+
+2016-06-02 16:08 +0000 [610eee2a36] Richard Mudgett <rmudgett@digium.com>
+
+ * taskprocessors: Implement high/low water mark alerts.
+
+ When taskprocessors get backed up, there is a good chance that we are
+ being overloaded and need to defer adding new work to the system.
+
+ * Implemented a high/low water alert mechanism for modules to check if the
+ system is being overloaded and take appropriate action. When a
+ taskprocessor is created it has default congestion levels set. A
+ taskprocessor can later have those congestion levels altered for specific
+ needs if stress testing shows that the taskprocessor is a symptom of
+ overloading or needs to handle bursty activity without triggering an
+ overload alert.
+
+ * Add CLI "core show taskprocessor" low/high water columns.
+
+ * Fixed __allocate_taskprocessor() to not use RAII_VAR(). RAII_VAR() was
+ never a good thing to use when creating a taskprocessor because of the
+ nature of how its references needed to be cleaned up on a partial
+ creation.
+
+ * Made res_pjsip's distributor check if the taskprocessor overload alert
+ is active before placing a message representing brand new work onto a
+ distributor serializer.
+
+ ASTERISK-26088
+ Reported by: Richard Mudgett
+
+ Change-Id: I182f1be603529cd665958661c4c05ff9901825fa
+
+2016-05-27 17:31 +0000 [26e3492246] Richard Mudgett <rmudgett@digium.com>
+
+ * res_pjsip_session: Use distributor serializer for incoming calls.
+
+ We must continue using the serializer that the original INVITE came in on
+ for the dialog. There may be retransmissions already enqueued in the
+ original serializer that can result in reentrancy and message sequencing
+ problems.
+
+ Outgoing call legs create the pjsip/outsess/<endpoint> serializers for
+ their dialogs.
+
+ ASTERISK-26088
+ Reported by: Richard Mudgett
+
+ Change-Id: I24d7948749c582b8045d5389ba3f6588508adbbc
+
+2016-05-27 16:28 +0000 [ceb1007ed7] Richard Mudgett <rmudgett@digium.com>
+
+ * res_pjsip_pubsub.c: Recreate subscriptions using distributor serializer.
+
+ * Resolves potential reentrancy problems if system restarted in the middle
+ of subscription message transactions.
+
+ * Fixes memory leak recreating persistent subscriptions when the
+ subscription resource tree could not be created.
+
+ ASTERISK-26088
+ Reported by: Richard Mudgett
+
+ Change-Id: I71e34d7ae8ed35a694f1030e820e2548c48697be
+
+2016-05-27 12:50 +0000 [27bafc3a8b] Richard Mudgett <rmudgett@digium.com>
+
+ * res_pjsip_pubsub.c: Use distributor serializer for incoming subscriptions.
+
+ We must continue using the serializer that the original SUBSCRIBE came in
+ on for the dialog. There may be retransmissions already enqueued in the
+ original serializer that can result in reentrancy and message sequencing
+ problems. The "sip_transaction Unable to register SUBSCRIBE transaction
+ (key exists)" message is a notable symptom of this issue.
+
+ Outgoing subscriptions still create the pjsip/pubsub/<endpoint>
+ serializers for their dialogs.
+
+ ASTERISK-26088
+ Reported by: Richard Mudgett
+
+ Change-Id: I18b00bb74a56747b2c8c29543a82440b110bf0b0
+
+2016-05-26 17:35 +0000 [16b08444da] Richard Mudgett <rmudgett@digium.com>
+
+ * pjsip_distributor.c: Consistently pick a serializer for messages.
+
+ Incoming messages that are not part of a dialog or a recognized response
+ to one of our requests need to be sent to a consistent serializer. Under
+ load we may be queueing retransmissions before we can process the original
+ message. We don't need to throw these messages onto random serializers
+ and cause reentrancy and message sequencing problems.
+
+ * Created a pool of pjsip/distributor serializers that get picked by
+ hashing the call-id and remote tag strings of the received messages.
+
+ * Made ast_sip_destroy_distributor() destroy items in the reverse order of
+ creation.
+
+ ASTERISK-26088
+ Reported by: Richard Mudgett
+
+ Change-Id: I2ce769389fc060d9f379977f559026fbcb632407
+
+2016-06-02 12:51 +0000 [993b769524] Richard Mudgett <rmudgett@digium.com>
+
+ * pjsip_distributor.c: Ignore messages until fully booted.
+
+ We should not be processing any incoming messages until we are fully
+ booted. We may not have dialplan or other needed configuration loaded
+ yet.
+
+ ASTERISK-26089 #close
+ Reported by: Scott Griepentrog
+
+ ASTERISK-26088
+ Reported by: Richard Mudgett
+
+ Change-Id: I584aefb4f34b885a8927e1f13a2c64babd606264
+
+2016-06-02 12:04 +0000 [321a9b128f] Joshua Colp <jcolp@digium.com>
+
+ * res_odbc: Implement a connection pool.
+
+ Testing has shown that our usage of UnixODBC is problematic
+ due to bugs within UnixODBC itself as well as the heavy weight
+ cost of connecting and disconnecting database connections, even
+ when pooling is enabled.
+
+ For users of UnixODBC 2.3.1 and earlier crashes would occur due
+ to insufficient protection of the disconnect operation. This was
+ fixed in UnixODBC 2.3.2 and above.
+
+ For users of UnixODBC 2.3.3 and higher a slow-down would occur
+ under heavy database use due to repeated connection establishment.
+ A regression is present where on each connection the database
+ configuration is cached again, with the cache growing out of
+ control.
+
+ The connection pool implementation present in this change helps
+ to mitigate these issues by reducing how much we connect and
+ disconnect database connections. We also solve the issue of
+ crashes under UnixODBC 2.3.1 by defaulting the maximum number of
+ connections to 1, returning us to the previous working behavior.
+ For users who may have a fixed version the maximum concurrent
+ connection limit can be increased helping with performance.
+
+ The connection pool works by keeping a list of active connections.
+ If the connection limit has not been reached a new connection is
+ established. If the connection limit has been reached then the
+ request waits until a connection becomes available before
+ continuing.
+
+ ASTERISK-26074 #close
+ ASTERISK-26054 #close
+
+ Change-Id: I6774bf4bac49a0b30242c76a09c403d2e856ecff
+
+2016-06-07 05:45 +0000 [c6ee4a0f44] Alexander Traud <pabstraud@compuserve.com>
+
+ * res_srtp: Instead of libSRTP use OpenSSL as random source.
+
+ Since libSRTP 1.5, its Random Number Generator (RNG) is not maintained anymore.
+ Therefore, the symbol RAND_bytes is used instead of crypto_get_random.
+
+ ASTERISK-24436 #close
+
+ Change-Id: Iea0bae4d4e3c9aa0926ea442b6484b5159789d96
+
+2016-06-07 02:16 +0000 [d38b8e6399] Alexander Traud <pabstraud@compuserve.com>
+
+ * BuildSystem: Avoid 'ar cru' and use 'ar cr' instead.
+
+ In several internal library projects, the files are archived with the help of
+ 'ar cr'. Only the projects editline and the Objective Open H.323 stack
+ implementation in C (ooh323c) use 'ar cru' instead. Recently, some platforms
+ changed the default parameters of AR which creates "/usr/bin/ar: `u' modifier
+ ignored since `D' is the default (see `U')". For consistency and to avoid this
+ message all projects use 'ar cr' now.
+
+ ASTERISK-26091 #close
+
+ Change-Id: I710a9b1c01c1b5a1931a646098c044c8161ead40
+
+2016-05-27 14:49 +0000 [c27c232057] gtjoseph <gjoseph@digium.com>
+
+ * ari/resource_channels: Add 'formats' to channel create/originate
+
+ If you create a local channel and don't specify an originator channel
+ to take capabilities from, we automatically add all audio formats to
+ the new channel's capabilities. When we try to make the channel
+ compatible with another, the "best format" functions pick the best
+ format available, which in this case will be slin192. While this is
+ great for preserving quality, it's the worst for performance and
+ overkill for the vast majority of applications.
+
+ In the absense of any other information, adding all formats is the
+ correct thing to do and it's not always possible to supply an
+ originator so a new parameter 'formats' has been added to the channel
+ create/originate functions. It's just a comma separated list of formats
+ to make availalble for the channel. Example: "ulaw,slin,slin16".
+ 'formats' and 'originator' are mutually exclusive.
+
+ To facilitate determination of format names, the format name has been
+ added to "core show codecs".
+
+ ASTERISK-26070 #close
+
+ Change-Id: I091b23ecd41c1b4128d85028209772ee139f604b
+
+2016-06-02 04:59 +0000 [cda3385409] Joshua Colp <jcolp@digium.com>
+
+ * alembic: Fix migration.
+
+ The 81b01a191a46_pjsip_add_contact_reg_server.py script was attempting
+ to use UniqueConstraint and failing. It was not imported and after
+ importing it also continued to fail.
+
+ I've changed the script to use the explicit name of the constraint
+ instead.
+
+ Change-Id: I2438b0be90b7ce583b47dd27983c0c1a02cea5b9
+
+2016-06-01 13:57 +0000 [e2132dd358] Richard Mudgett <rmudgett@digium.com>
+
+ * logging,cdr,cel: Fix stringfield memory leak.
+
+ The stringfields refactor to allow adding stringfields to the end of a
+ structure (f6f4cf459f43f072604927209b39646f84aaa2e2) exposed some
+ incomplete cleanup code by some stringfield users.
+
+ The most noticeable leaker is the logging system where there is a leak for
+ every log message generated.
+
+ ASTERISK-26078 #close
+ Reported by: Etienne Lessard
+ Patches:
+ jira_asterisk_26078_v13.patch (license #5621) patch uploaded
+ by Richard Mudgett
+
+ Change-Id: If6a08b31336b492c3de6f9dfd07c447f8d5a8782
+
+2016-05-25 10:34 +0000 [2de58c6d01] Alexei Gradinari <alex2grad@gmail.com>
+
+ * core/dial: New channel variable FORWARDERNAME
+
+ Added a new channel variable FORWARDERNAME which indicates which
+ channel was responsible for a forwarding requests received on dial attempt.
+
+ Fixed a bug in the app_queue: FORWARD_CONTEXT is not used.
+
+ ASTERISK-26059 #close
+
+ Change-Id: I34e93e8c1b5e17776a77b319703c48c8ca48e7b2
+
+2016-05-31 13:02 +0000 [b2ce0e354b] Richard Mudgett <rmudgett@digium.com>
+
+ * pjsip_distributor.c: Use correct rdata info access method (Part 2).
+
+ The pjproject doxygen for rdata->msg_info.info says to call
+ pjsip_rx_data_get_info() instead of accessing the struct member directly.
+ You need to call the function mostly because the function will generate
+ the struct member value if it is not already setup.
+
+ Change-Id: I4d519385a577f3e9d9193a88125e493cf17fa799
+
+2016-05-30 19:27 +0000 [fe305ccf01] gtjoseph <gjoseph@digium.com>
+
+ * res_pjsip_mwi_body_generator: Re-order the body items
+
+ Re-ordered the body items so Message-Account is second.
+
+ Messages-Waiting: no
+ Message-Account: sip:1571@<IP Removed>:5060
+ Voice-Message: 0/0 (0/0)
+
+ ASTERISK-26065 #close
+ Reported-by: Ross Beer
+
+ Change-Id: If5d35a64656eac98c2dd5e490cc0b2807bed80c3
+
+2016-05-30 10:58 +0000 [e8abfdcdc5] gtjoseph <gjoseph@digium.com>
+
+ * pjproject_bundled: Move to pjproject 2.5
+
+ Although all the patches we had against 2.4.5 were applied by Teluu,
+ a new bug was introduced preventing re-use of tcp and tls transports
+ This patch removes all the previous patches against 2.4.5, updates
+ the version to 2.5, and adds a new patch to correct the transport
+ re-use problem.
+
+ Change-Id: I0dc6c438c3910f7887418a5832ca186aea23d068
+
+2016-05-27 12:25 +0000 [37d039fdf3] Rusty Newton <rnewton@digium.com>
+
+ * res_pjsip: Add clarifying documentation to PJSIP_HEADER help text
+
+ Added notes about when you can read or write headers. Specifically
+ about being able to read on the inbound channel and write on an
+ outbound channel.
+
+ ASTERISK-26063 #close
+ Reported by: Private Name
+ Tested by: Rusty Newton
+
+ Change-Id: Ibeb64af17d1f6451028b3c29855a3f151a01d8c5
+
+2016-05-25 18:30 +0000 [03d5b3ce5c] Richard Mudgett <rmudgett@digium.com>
+
+ * pjsip_distributor.c: Use correct rdata info access method.
+
+ The pjproject doxygen for rdata->msg_info.info says to call
+ pjsip_rx_data_get_info() instead of accessing the struct member directly.
+ You need to call the function mostly because the function will generate
+ the struct member value if it is not already setup.
+
+ Change-Id: Iafe8b01242b7deb0ebfdc36685e21374a43936d2
+
+2016-05-20 13:56 +0000 [859bbec09b] Alexei Gradinari <alex2grad@gmail.com>
+
+ * app_voicemail: fix bugs, imap mm_status log change to debug
+
+ Fixed some bugs:
+ - create dirpath when save downloading message from IMAP storage.
+ - create IMAP folder if not exists when saving to IMAP storage
+ - check if file successfully opened before write to it
+ - some IMAP checks
+ - remove non-standard flag 'Unseen'
+ etc
+
+ Change to debug IMAP mm_status log instead of verbose.
+
+ Remove unused X-Asterisk-VM-Caller-channel message header
+ for security reason. The clients should not know name of peer/endpoint.
+
+ ASTERISK-26045 #close
+
+ Change-Id: I7f83d88b69b36934e2539c114b9fb612deed971b
+
+2016-05-19 14:56 +0000 [230686f4ec] Alexei Gradinari <alex2grad@gmail.com>
+
+ * res_pjsip: add "via_addr", "via_port", "call_id" to contact
+
+ As res_pjsip_nat rewrites contact's address, only the last Via header
+ can contain the source address of registered endpoint.
+ Also Call-Id header may contain the source address of registered
+ endpoint.
+
+ Added "via_addr", "via_port", "call_id" to contact.
+ Added new fields ViaAddress, CallID to AMI event ContactStatus.
+
+ ASTERISK-26011
+
+ Change-Id: I36bcc0bf422b3e0623680152d80486aeafe4c576
+
+2016-05-24 16:56 +0000 [04c12561a7] Alexei Gradinari <alex2grad@gmail.com>
+
+ * res_pjsip: chatty verbose messages
+
+ There are a lot of verbose messages about Endpoint and Contact status
+ changes if there are many dynamic endpoints.
+ The patch sets verbose level 2 for Endpoint status changes
+ and verbose level 3 for Contact status changes.
+
+ ASTERISK-26055 #close
+
+ Change-Id: Ie64e261ddbbc41bfff0f0190241152cc123fe6d7
+
+2016-02-12 09:59 +0000 [a42bea3314] Corey Farrell <git@cfware.com>
+
+ * threadpool: Fix potential data race.
+
+ worker_start checked for ZOMBIE status without holding a lock. All
+ other read/write of worker status are performed with a lock, so this
+ check should do the same.
+
+ ASTERISK-25777 #close
+
+ Change-Id: I5e33685a5c26fdb300851989a3b82be8c4e03781
+
+2016-05-18 10:58 +0000 [a32616d60c] Tzafrir Cohen <tzafrir.cohen@xorcom.com>
+
+ * Makefile: remove OSARCH check for init install
+
+ There are more specific checks for the platform.
+
+ Specifically this allows installing OS/X init scripts.
+
+ ASTERISK-26038 #close
+
+ Change-Id: If08933621145b10362a0cfe73c079301d9c13f50
+ Signed-off-by: Tzafrir Cohen <tzafrir.cohen@xorcom.com>
+
+2016-05-21 05:42 +0000 [9ddaab789e] Jesper (License 5518)
+
+ * func_curl: Don't trim response text on non-ASCII characters
+
+ The characters 0x80-0xFF were trimmed as well as 0x00-0x20 because of
+ a signed comparison.
+
+ ASTERISK-25669 #close
+ Reported by: Jesper
+ patches:
+ strings.curl.trim.patch submitted by Jesper (License 5518)
+
+ Change-Id: Ia51e169f24e3252a7ebbaab3728630138ec6f60a
+
+2016-05-20 16:59 +0000 [9453d1187a] Richard Mudgett <rmudgett@digium.com>
+
+ * parking.h: Update ast_parking_park_call() doxygen to reality.
+
+ ASTERISK-26029
+
+ Change-Id: I2db14d102a48d3224010e6d1c69e856373cc1260
+
+2016-05-10 14:30 +0000 [cd89501d48] Alexei Gradinari <alex2grad@gmail.com>
+
+ * func_odbc: single database connection should be optional
+
+ func_odbc was changed in Asterisk 13.9.0
+ to make func_odbc use a single database connection per DSN
+ because of reported bug ASTERISK-25938
+ with MySQL/MariaDB LAST_INSERT_ID().
+
+ This is drawback in performance when func_odbc is used
+ very often in dialplan.
+
+ Single database connection should be optional.
+
+ ASTERISK-26010
+
+ Change-Id: I57d990616c957dabf7597dea5d5c3148f459dfb6
+
+2016-05-20 09:39 +0000 [c0b190dd9a] Mark Michelson <mmichelson@digium.com>
+
+ * res_pjsip: Match dialogs on responses better.
+
+ When receiving an incoming response to a dialog-starting INVITE, we were
+ not matching the response to the INVITE dialog. Since we had not
+ recorded the to-tag to the dialog structure, the PJSIP-provided method
+ to find the dialog did not match.
+
+ Most of the time, this was not a problem, because there is a fall-back
+ that makes the response get routed to the same serializer that the
+ request was sent on. However, in cases where an asynchronous DNS lookup
+ occurs in the PJSIP core, the thread that sends the INVITE is not
+ actually a threadpool serializer thread. This means we are unable to
+ record a serializer to handle the incoming response.
+
+ Now, imagine what happens when an INVITE is sent on a non-serialized
+ thread, and an error response (such as a 486) arrives. The 486 ends up
+ getting put on some random threadpool thread. Eventually, a hangup task
+ gets queued on the INVITE dialog serializer. Since the 486 is being
+ handled on a different thread, the hangup task can execute at the same
+ time that the 486 is being handled. The hangup task assumes that it is
+ the sole owner of the INVITE session and channel, so it ends up
+ potentially freeing the channel and NULLing the session's channel
+ pointer. The thread handling the 486 can crash as a result.
+
+ This change has the incoming response match the INVITE transaction, and
+ then get the dialog from that transaction. It's the same method we had
+ been using for matching incoming CANCEL requests. By doing this, we get
+ the INVITE dialog and can ensure that the 486 response ends up being
+ handled by the same thread as the hangup, ensuring that the hangup runs
+ after the 486 has been completely handled.
+
+ ASTERISK-25941 #close
+ Reported by Javier Riveros
+
+ Change-Id: I0d4cc5d07e2a8d03e9db704d34bdef2ba60794a0
+
+2016-05-19 11:41 +0000 [ddcf983e39] Joshua Colp <jcolp@digium.com>
+
+ * res_sorcery_astdb: Filter fields to only the registered ones.
+
+ This change introduces the same filtering that is done in res_sorcery_realtime
+ to the res_sorcery_astdb module. This allows persisted sorcery objects
+ that may contain unknown fields to still be read in from the AstDB
+ and used. This is particularly useful when switching between different
+ versions of Asterisk that may have introduced additional fields.
+
+ ASTERISK-26014 #close
+
+ Change-Id: Ib655130485a3ccfd635b7ed5546010ca14690fb2
+
+2016-05-09 21:40 +0000 [39fedfa423] snuffy <snuffy22@gmail.com>
+
+ * res_pjsip_empty_info: Respond to empty SIP INFO packets
+
+ Some SBCs require responses to empty SIP INFO packets
+ after establishing call via INVITE, if not responded to
+ they may drop your call after unspecified timeout of X minutes.
+
+ They are identified by having no Content-Type, check for this
+ and respond with 200 - OK message.
+
+ ASTERISK-24986 #close
+ Reported-by: Ilya Trikoz, Federico Santulli
+
+ Change-Id: Ib27e4f07151e5aef28fa587e4ead36c5b87c43e0
+
+2016-05-18 07:54 +0000 [935e0496c4] gtjoseph <gjoseph@digium.com>
+
+ * udptl: Don't eat sequence numbers until OK is received
+
+ Scenario:
+ Local fax -> Asterisk w/ firewall -> Provider -> Remote fax
+
+ * Local fax starts rtp call to remote fax
+ * Remote fax starts t38 call back to local fax.
+ * Local fax sends t38 no-signal to Asterisk before sending an OK.
+ * udptl processes the frame and increments the expected sequence number.
+ * chan_sip drops the frame because the call isn't up so nothing goes out
+ the external interface to open the port for incoming packets.
+ * Local fax sends OK and Asterisk sends OK to the remote fax.
+ * Remote fax sends t38 packets which are dropped by the firewall.
+ * Local fax re-sends t38 no-signal with the same sequence number.
+ * udptl drops the frame because it thinks it's a dup.
+ * Still no outgoing packets to open the firewall.
+ * t38 negotiation fails.
+
+ The patch drops frames t38 received before udptl sequence processing
+ when the call hasn't been answered yet. The second no-signal frame
+ is then seen as new and is relayed out the external interface which
+ opens the port and allows negotiation to continue.
+
+ ASTERISK-26034 #close
+
+ Change-Id: I11744b39748bd2ecbbe8ea84cdb4f3c5943c5af9
+
+2016-05-17 11:14 +0000 [77e8ec162b] gtjoseph <gjoseph@digium.com>
+
+ * chan_sip: Prevent extra Session-Expires headers from being added
+
+ When chan_sip does a re-INVITE to refresh a session and authentication
+ is required, the INVITE with the Authorization header containes a
+ second Session-Expires header without the ";refersher=" parameter.
+ This is causing some proxies to return a 400. Also, when Asterisk is
+ the uas and the refresher, it is including the Session-Expires and
+ Min-SE headers in OPTIONS messages which is not allowed per RFC4028.
+
+ This patch (based on the reporter's) Checks to see if a Session-Expires
+ header is already in the message before adding another one. It also
+ checks that the method is INVITE or UPDATE.
+
+ ASTERISK-26030 #close
+
+ Change-Id: I58a7b07bab5a3177748d8a7034fb8ad8e11ce1d9
+
+2016-05-16 15:29 +0000 [3f6ef63099] gtjoseph <gjoseph@digium.com>
+
+ * res_pjsip_outbound_registration: Clean up state when registration is deleted
+
+ Nothing was cleaning up the registration state object when ast_sorcery_delete
+ was called on a registration. So, the registration was deleted from sorcery
+ but the state object went right on refreshing the registration (or failing
+ to refresh the registration) with the peer.
+
+ * Added a 'deleted' observer on registration that removes the state object.
+
+ ASTERISK-25964 #close
+ Reported-by Matt Jordan
+
+ Change-Id: I2db792145cdb1f72ebbf57dd9099596dbbf12c23
+
+2016-05-15 19:05 +0000 [b6f9392a12] gtjoseph <gjoseph@digium.com>
+
+ * res_pjsip: Set TCP_NODELAY on TCP transports
+
+ Although it's perfectly legal to place multiple SIP messages in the same packet,
+ it can cause problems because the Linux default is to enable Path MTU Discovery
+ which sets the Don't Fragment bit on the packets. If adding a second message to
+ the packet causes the MTU to be exceeded, and the destination isn't equipped to
+ send a FRAGMENTATION NEEDED response to a large packet, the packet will just be
+ dropped.
+
+ We can't specifically tell the stack to send only 1 message per packet, but we
+ can turn on TCP_NODELAY when we create the transport. This will at least tell
+ the stack to send packets as soon as possible.
+
+ ASTERISK-26005 #close
+ Reported-by: Ross Beer
+
+ Change-Id: I820f23227183f2416ca5e393bec510e8fe1c8fbd
+
+2016-05-14 21:48 +0000 [361a16f316] Matt Jordan <mjordan@digium.com>
+
+ * configs/samples/pjsip.conf.sample: Fix typo
+
+ A ':' is not a valid token for starting a comment.
+
+ Change-Id: I123592d93a83d1bdde3e352822881eb9da85e5ad
+
+2016-05-12 07:08 +0000 [f91a7dc993] Matt Jordan <mjordan@digium.com>
+
+ * res/res_hep_pjsip: Fix reported local IP address when bound to 'any'
+
+ When bound to an 'any' address, e.g., 0.0.0.0, PJSIP reports as its
+ local address the 'any' address, as opposed to the IP address we
+ actually received the packet on. This can cause some confusion in Homer,
+ as it will dutifully report what we send it.
+
+ This patch uses the PJSIP inspection routines to determine which IP
+ address we probably received the packet on based on the remote party's
+ IP address. In the event that this fails, it falls back to the IP
+ address natively reported by the transport.
+
+ Change-Id: I076f835d2aef489e1ee1d01595b211eb2ce62da3
+
+2016-05-14 12:29 +0000 [9de5cd209e] Sean Bright <sean.bright@gmail.com>
+
+ * res_ari: Correct Location headers returned by some ARI resources
+
+ The Location headers returned by:
+
+ * /bridges/{bridgeId}/play
+ * /bridges/{bridgeId}/record
+ * /channels/{channelId}/play
+ * /channels/{channelId}/record
+
+ Did not have the '/ari' prefix, and in the case of the 'play' resources, were
+ using 'playback' instead of 'playbacks.'
+
+ Change-Id: I957c58a3a1471bf477dae7c67faa1b74fcd9241c
+
+2016-05-13 11:38 +0000 [524a302974] Alexei Gradinari <alex2grad@gmail.com>
+
+ * res_pjsip: Endpoint IP Access Controls
+
+ With the old SIP module we can use IP access controls per peer.
+ PJSIP module missing this feature.
+
+ This patch added next configuration Endpoint options:
+ "acl" - list of IP ACL section names in acl.conf
+ "deny" - List of IP addresses to deny access from
+ "permit" - List of IP addresses to permit access from
+ "contact_acl" - List of Contact ACL section names in acl.conf
+ "contact_deny" - List of Contact header addresses to deny
+ "contact_permit" - List of Contact header addresses to permit
+
+ This patch also better logging failed request:
+ add custom message instead of "No matching endpoint found"
+ add SIP method to logging
+
+ ASTERISK-25900
+
+ Change-Id: I456dea3909d929d413864fb347d28578415ebf02
+
+2016-05-11 20:17 +0000 [89ae4466ea] Matt Jordan <mjordan@digium.com>
+
+ * res_hep: Provide an option to pick the UUID type
+
+ At one point in time, it seemed like a good idea to use the Asterisk
+ channel name as the HEP correlation UUID. In particular, it felt like
+ this would be a useful identifier to tie PJSIP messages and RTCP
+ messages together, along with whatever other data we may eventually send
+ to Homer. This also had the benefit of keeping the correlation UUID
+ channel technology agnostic.
+
+ In practice, it isn't as useful as hoped, for two reasons:
+ 1) The first INVITE request received doesn't have a channel. As a
+ result, there is always an 'odd message out', leading it to be
+ potentially uncorrelated in Homer.
+ 2) Other systems sending capture packets (Kamailio) use the SIP Call-ID.
+ This causes RTCP information to be uncorrelated to the SIP message
+ traffic seen by those capture nodes.
+
+ In order to support both (in case someone is trying to use res_hep_rtcp
+ with a non-PJSIP channel), this patch adds a new option, uuid_type, with
+ two valid values - 'call-id' and 'channel'. The uuid_type option is used
+ by a module to determine the preferred UUID type. When available, that
+ source of a correlation UUID is used; when not, the more readily available
+ source is used.
+
+ For res_hep_pjsip:
+ - uuid_type = call-id: the module uses the SIP Call-ID header value
+ - uuid_type = channel: the module uses the channel name if available,
+ falling back to SIP Call-ID if not
+ For res_hep_rtcp:
+ - uuid_type = call-id: the module uses the SIP Call-ID header if the
+ channel type is PJSIP and we have a channel,
+ falling back to the Stasis event provided
+ channel name if not
+ - uuid_type = channel: the module uses the channel name
+
+ ASTERISK-25352 #close
+
+ Change-Id: Ide67e59a52d9c806e3cc0a797ea1a4b88a00122c
+
+2016-05-10 02:56 +0000 [a73d79c22f] Tzafrir Cohen <tzafrir.cohen@xorcom.com>
+
+ * basic-cfg: asterisk.conf: remove [directories]
+
+ A minimal configuration does not need to explicitly spell out the
+ directories. The built-in defaults will do just fine. In many cases
+ they are wrong.
+
+ Change-Id: Id1a671e5c5e9923765a4156b57f9f7e263fdd26c
+ Signed-off-by: Tzafrir Cohen <tzafrir.cohen@xorcom.com>
+
+2016-05-10 03:06 +0000 [1c56de9453] Tzafrir Cohen <tzafrir.cohen@xorcom.com>
+
+ * basic-cfg: asterisk.conf: defaults of options
+
+ Note the default of remmed-out options. To clarify that those values are
+ not the defaults.
+
+ Change-Id: I849c29b7a710f0abc37355fcb5bfee335ae30738
+ Signed-off-by: Tzafrir Cohen <tzafrir.cohen@xorcom.com>
+
+2016-05-10 03:08 +0000 [d7af591c59] Tzafrir Cohen <tzafrir.cohen@xorcom.com>
+
+ * basic-cfg: asterisk.conf: debug level 5 spams
+
+ Don't suggest users to use debug level 5, which spews (usually
+ non-useful) debug information. Reduce the suggestion to (an
+ arbitrarily-selected) level 2.
+
+ Change-Id: Ib53195f78945970956ff59ef13fa89b90e0fcd60
+ Signed-off-by: Tzafrir Cohen <tzafrir.cohen@xorcom.com>
+
+2016-05-10 03:10 +0000 [9b7db18fc1] Tzafrir Cohen <tzafrir.cohen@xorcom.com>
+
+ * basic-cfg: asterisk.conf: don't set languages
+
+ * No need to set language in a miniml configuration. 'en' will do just
+ fine.
+ * It would be useful to have an example of setting it to a different
+ language.
+ * Setting the documentation language explicitly is likewise not
+ required. Setting it to a different value is not common. At least
+ until there is a set of translated documentation.
+
+ Change-Id: I94d91ea34e129925f25af81ef8dc0906fb568cb7
+ Signed-off-by: Tzafrir Cohen <tzafrir.cohen@xorcom.com>
+
+2016-05-10 08:17 +0000 [eec539a46e] Tzafrir Cohen <tzafrir.cohen@xorcom.com>
+
+ * followme: delete the right recorded name file
+
+ FollowMe with the option a records the name of the caller and plays it
+ to the callee. However it has failed to clean up that recorded file
+ as it tried to delete the file name without the '.sln' extension.
+
+ ASTERISK-26008 #close
+
+ Change-Id: I79d7b1be7d5cde57bf076d9389e2a8a4422776ec
+ Signed-off-by: Tzafrir Cohen <tzafrir.cohen@xorcom.com>
+
+2016-05-12 14:36 +0000 [02d30e171e] Mark Michelson <mmichelson@digium.com>
+
+ * Use doubles instead of floats for conversions when comparing strings.
+
+ In 13.9.0, there was an issue where PJSIP contacts added to an AOR would
+ be deleted at seemingly random times.
+
+ One reason this was happening was because of an operation to retrieve
+ the contacts whose expiration time was less than or equal to the current
+ time. When retrieving existing contacts, the contact's expiration time
+ and the current time were converted from a string to a float, and those
+ two floats were compared.
+
+ On some systems, including mine, this conversion was horribly off. For
+ instance, I could regularly see the string "1463079214" get converted
+ into 1463079168.000000. When switching from using a float to using a
+ double, the conversion was as expected.
+
+ Why was the conversion to float off? My best guess is that the
+ conversion to float was attempting to store the entire value in the 23
+ bit significand of the IEEE-754 floating point number. In particular, if
+ you take only the 23 most significant bits of 1463079214, you get the
+ messed up 1463079168 that we were seeing in the conversion. It likely
+ was possible to get a more precise value by composing the number using
+ an exponent, but the conversion did not work that way. With a double,
+ you have a 52 bit significand, allowing the entire value to fit there,
+ and thereby allowing an accurate conversion.
+
+ ASTERISK-26007 #close
+ Reported by Greg Siemon
+
+ Change-Id: I83ca7944aae8b7cd994b254c78ec02411d321070
+
+2016-05-12 09:13 +0000 [e2df15bae9] gtjoseph <gjoseph@digium.com>
+
+ * pjsip_distributor: Add missing newline to NOTICE
+
+ There was a newline missing from the end of the "no matching endpoint" notice.
+
+ Change-Id: Idc11fe5bc0354072291663dbffe648c471e39181
+
+2016-05-10 10:19 +0000 [a94a12bbf7] Sebastian Damm <damm@sipgate.de>
+
+ * res_pjsip_outbound_registration: generate correct Contact URI for TLS
+
+ There are two types of SIP URIs indicating a secure transport:
+ * sips:user@example.org
+ * sip:user@example.org;transport=tls
+
+ When using a sips URI, Asterisk checks incoming INVITEs and answers from
+ the other side for sips URIs, and rejects the packet if there are only
+ sip URIs. So Asterisk should only generate a sips Contact URI if the
+ other side supports it.
+
+ This patch makes Asterisk generate either a sip or sips Contact URI
+ depending on the format of the server URI.
+
+ If you want a sip URI, use:
+ server_uri=sip:example.org\;transport=tls
+
+ If you want a sips URI, use:
+ server_uri=sips:example.org
+
+ ASTERISK-25990 #close
+ Reported-by: Sebastian Damm
+
+ Change-Id: I5ae57d6531ce940b5fc64d5cd2673e60db0f9ba2
+
+2016-05-05 16:41 +0000 [36d66a23e0] Alexei Gradinari <alex2grad@gmail.com>
+
+ * logger: Add PID to syslog messages.
+
+ During refactoring of this support the addition of
+ the PID to messages was removed. This change adds it
+ back in.
+
+ ASTERISK-25538 #close
+
+ Change-Id: Ie2d43b0652e59b7ac319a7dba94501540d70ba36
+
+2016-05-11 14:07 +0000 [37214b0bdf] Matt Jordan <mjordan@digium.com>
+
+ * configure: Fix errors with AST_UNDEFINED_SANITIZER/AST_LEAK_SANITIZER
+
+ When running on a system that does not support or use AST_UNDEFINED_SANITIZER
+ or AST_LEAK_SANITIZER, the configure script would incorrectly set those
+ constants to a blank value, e.g., 'AST_UNDEFINED_SANITIZER='. This would
+ cause menuselect to error out, complaining that a blank value is not a
+ valid option. This patch corrects the issue by setting the value to 0 if
+ the options that those constants enable/disable is not found.
+
+ Change-Id: Ib39814aaf940f308d500c1e026edb3d70de47fba
+
+2016-05-03 15:43 +0000 [49b25a0956] Kevin Harwell <kharwell@digium.com>
+
+ * res_pjsip_outbound_publish: state potential dropped on reloads/realtime fetches
+
+ When reloading, or fetching realtime data, if the "apply" failed for any
+ numerous reasons the current state object would not be maintained. This
+ potentially resulted in publishes being stopped for some states/clients when
+ they should not have been.
+
+ This patch makes it so the current state object is kept upon any type of reload/
+ fetch failures.
+
+ Change-Id: Iab6020c116d628ed2ae81183e987e2eaa3c90b30
+
+2016-05-03 15:31 +0000 [1b5c91b7be] Kevin Harwell <kharwell@digium.com>
+
+ * res_pjsip_outbound_publish: Potential crash due to off nominal path
+
+ It was possible for the explicit publish destroy function to be called without
+ the pjsip client ever being initialized. This fix checks to make sure there is
+ a client to destroy before attempting.
+
+ Change-Id: I8eea1bfa3bd472149bfc255310be2a6248688f5c
+
+2016-05-03 15:35 +0000 [10de553c9d] Kevin Harwell <kharwell@digium.com>
+
+ * res_pjsip_outbound_publishing: After unloading the library won't load again
+
+ The same thing was happening in res_pjsip_publish_asterisk. When the library
+ was unloaded it did not unregister the object type from sorcery. Subsequent
+ loads resulted in a failed load due to the sorcery type already existing.
+
+ Change-Id: Ifdc25e94e4cd40bc5a19eb4d0a00b86c2e9fedc9
+
+2016-05-03 14:59 +0000 [1a833b9739] Kevin Harwell <kharwell@digium.com>
+
+ * res_pjsip_outbound_publish: Ref leak in off nominal callback paths
+
+ There were a few spots where the client object's reference was being leaked in
+ sip_outbound_publish_callback. This patch cleans up those leaks.
+
+ Change-Id: I485d0bc9335090f373026f77c548042e258461df
+
+2016-05-03 15:39 +0000 [4752ef02e0] Kevin Harwell <kharwell@digium.com>
+
+ * res_pjsip_outbound_publish: Won't unload if condition wait times out
+
+ When res_pjsip_outbound_publish unloads it has to wait for all current
+ publishing objects to get done. However if the wait condition times out
+ then it does not fail the unload. This sometimes results in an infinite
+ loop check while unloading. This patch now fails the unload operation if
+ the condition times out.
+
+ Change-Id: Id57b8cbed9d61222690fcba1e4f18e259df4c7ec
+
+2016-05-05 11:37 +0000 [4d063814ba] Kevin Harwell <kharwell@digium.com>
+
+ * res_pjsip_authenticator_digest: Don't use source port in nonce verification
+
+ From the issue reporter:
+ "res_pjsip_outbound_authenticator_digest builds a nonce that is a hash of
+ the timestamp, the source address, the source port, a server UUID that is
+ calculated at startup, and the authentication realm.
+
+ Rather than caching nonces that we create, we instead attempt to re-calculate
+ the nonce when receiving an incoming request with authentication. We then
+ compare the re-calculated nonce to the incoming nonce, and if they don't match,
+ then authentication has failed early.
+
+ The problem is that it is possible, especially when using TCP, to receive two
+ requests from the same endpoint but have differing source ports for those
+ requests. Asterisk itself commonly will use different source ports for
+ outbound TCP requests."
+
+ This patch removes the source port dependency when building the nonce.
+
+ ASTERISK-25978 #close
+
+ Change-Id: I871b5f4adce102df1c4988066283095ec509dffe
+
+2016-05-07 14:39 +0000 [fb6227a372] gtjoseph <gjoseph@digium.com>
+
+ * config_transport: Tell pjproject to allow all SSL/TLS protocols
+
+ The default tls settings for pjproject only allow TLS 1, TLS 1.1 and TLS 1.2.
+ SSL is not allowed. So, even if you specify "sslv3" for a transport method,
+ it's silently ignored and one of the TLS protocols is used. This was a new
+ behavior of pjsip_tls_setting_default() in 2.4 (when tls.proto was added) that
+ we never caught.
+
+ Now we need to set tls.proto = 0 after we call pjsip_tls_setting_default().
+ This tells pjproject to set the socket protocol to match the method.
+
+ ASTERISK-26004 #close
+
+ Change-Id: Icfb55c1ebe921298dedb4b1a1d3bdc3ca41dd078
+
+2016-05-04 02:40 +0000 [2db17a793c] Jaco Kroon <jaco@uls.co.za>
+
+ * app_confbridge: Add a regcontext option for confbridge bridge profiles.
+
+ This patch allows for having app_confbridge register the name of the
+ conference as an extension into a specific context, similar to
+ regcontext for chan_sip. This variant is not quite as involved as the
+ one in chan_sip and doesn't allow for multiple contexts or custom
+ extensions, you can only specify the context and the conference name
+ will always be used as the extension to register.
+
+ ASTERISK-25989 #close
+
+ Change-Id: Icacf94d9f2b5dfd31ef36f6cb702392619a7902f
+
+2016-05-08 20:19 +0000 [2a7130b8b0] gtjoseph <gjoseph@digium.com>
+
+ * pjproject_bundled: Check for python-dev and TEST_FRAMEWORK
+
+ The pjsua and pjsystest apps are now built only if TEST_FRAMEWORK is set.
+ The python bindings are now built only if TEST_FRAMEWORK is set and a
+ python development package is installed.
+
+ libresample was also disabled.
+
+ ASTERISK-25993 #close
+ Reported-by: Joshua Colp
+
+ Change-Id: If4e91c503a02f113d5b71bc8b972081fa3ff6f03
+
+2016-05-04 15:16 +0000 [72eb7c8301] Alexei Gradinari <alex2grad@gmail.com>
+
+ * res_pjsip: module load priority
+
+ The res_pjsip_authenticator_digest, res_pjsip_endpoint_identifier_*
+ and res_pjsip_registrar modules should load ASAP
+ to avoid "No matching endpoint found" for legitimate endpoint.
+
+ ASTERISK-25994
+
+ Change-Id: Iac95d95ad031e0be104189d29e923a2ad7c24a1b
+
+2016-05-04 03:17 +0000 [dd00c71aae] Chris Trobridge <christ.trobridge@ultra-aep.com>
+
+ * config_options.c: Expand #ifdef to contain whole if statement.
+
+ ASTERISK-25956 #close
+
+ Change-Id: If6961ec54be276d5ab4f012ee7e7b420cb45de38
+
+2016-05-05 15:16 +0000 [e6eb17efd9] Alexei Gradinari <alex2grad@gmail.com>
+
+ * stasis_endpoints: Add new Status and Headers to ContactStatus
+
+ ASTERISK-25903 added a new headers to AMI Event ContactStatusDetail.
+ ASTERISK-25904 added a new Status to AMI Event ContactStatusDetail.
+ These additions should be also in stasis_endpoints
+ to include in command "manager show event ContactStatus"
+
+ Change-Id: I7610ad02a998e1f26c20caa27aa50279d0164f6a
+
+2016-05-05 05:07 +0000 [fa11f4c920] Joshua Colp <jcolp@digium.com>
+
+ * file: Ensure nativeformats remains valid for lifetime of use.
+
+ It is possible for the nativeformats of a channel to change
+ throughout its lifetime. As a result a user of it needs to either
+ ensure the channel is locked when accessing the formats or keep
+ a reference to the nativeformats themselves.
+
+ This change fixes the file playback support so it keeps a
+ reference to the nativeformats when accessing things.
+
+ ASTERISK-25998 #close
+
+ Change-Id: Ie45b65475e1481ddf05b874ee48f63e39fff8915
+
+2016-04-15 09:32 +0000 [9c2032240e] Alexei Gradinari <alex2grad@gmail.com>
+
+ * res_pjsip: improve realtime performance
+
+ This patch modified pjsip_options to retrieve only
+ permament contacts for aor if the qualify_frequency is > 0
+ and persisted contacts if the qualify_frequency is > 0.
+
+ This patch also fixed a bug in res_sorcery_astdb.
+ res_sorcery_astdb doesn't save object data retrived from astdb.
+
+ ASTERISK-25826
+
+ Change-Id: I1831fa46c4578eae5a3e574ee3362fddf08a1f05
+
+2016-05-04 16:11 +0000 [fe38d21c2a] Alexei Gradinari <alex2grad@gmail.com>
+
+ * pjsip: Added "reg_server" to contacts (fixed alembic)
+
+ ASTERISK-25931
+
+ Change-Id: Icc4321a88f5c93ff809da3f372eebbf69c6a8549
+
+2016-04-07 16:33 +0000 [7a14e669f0] Alexei Gradinari <alex2grad@gmail.com>
+
+ * res_pjsip/AMI: add contact.updated event
+
+ With the old SIP module AMI sends PeerStatus event on every
+ successfully REGISTER requests, ie, on start registration,
+ update registration and stop registration.
+
+ With PJSIP AMI sends ContactStatus only when status is changed.
+ Regarding registration:
+ on start registration - Created
+ on stop registration - Removed
+ but on update registration nothing
+
+ This patch added contact.updated event.
+
+ ASTERISK-25904
+
+ Change-Id: I8fad8aae9305481469c38d2146e1ba3a56d3108f
+
+2016-05-02 16:08 +0000 [06d4ac0355] Alexei Gradinari <alex2grad@gmail.com>
+
+ * res_fax: add FAXMODE variable
+
+ The app_fax set FAXMODE variable, but res_fax missing this feature.
+ This patch add FAXMODE variable which is set to either "audio" or "T38".
+
+ ASTERISK-25980
+
+ Change-Id: Ie3dcbfb72cc681e9e267a60202f7fb8723a51b6b
+
+2016-05-02 16:52 +0000 [2d17fe06c5] Alexei Gradinari <alex2grad@gmail.com>
+
+ * res_fax/t38_gateway: Peer V.21 session is created on wrong channel
+
+ The channel and peer V.21 sessions are created on the same channel now.
+ The peer V.21 session should be created only on peer channel
+ when one of channel can handle T.38.
+
+ Also this patch enable debug for T.38 gateway session
+ if global fax debug enabled.
+
+ ASTERISK-25982
+
+ Change-Id: I78387156ea521a77eb0faf170179ddd37a50430e
+
+2016-05-01 02:21 +0000 [a2f19d82a8] Diederik de Groot <dkgroot@talon.nl>
+
+ * configs/basic-pbx/asterisk.conf: contains incorrect path separator
+
+ Note: When packagers use these files (as an example) the paths are never
+ really used when they are split using '='.
+
+ Note: Thirdparty applications will also have trouble parsing the file when
+ expecting '=>'.
+
+ Change-Id: I0ada647f588e81f023fb1333ca15a1a333fd6004
+
+2016-04-30 17:52 +0000 [f39089f17c] gtjoseph <gjoseph@digium.com>
+
+ * pjproject_bundled: Various fixes discovered during testing of OSes
+
+ For all OSes:
+ * Disabled third-party codecs in pjproject and added
+ '--disable-speex-codec --disable-speex-aec --disable-gsm-codec' to the
+ configure options since we don't use the pjsip codec capability.
+
+ FreeBSD:
+ * Added FreeBSD support to install_prereq.
+ * Changed pjproject/configure.m4 to use $GNU_MAKE instead of hardcoding "make".
+ * Added __progname and environ to asterisk.exports.in.
+ * Reverted the use of ldconfig to create shared library symlinks to ln.
+ * Only enable epoll in pjproject if `uname -s` is Linux.
+ * Added a patch to pjproject to take the name of the 'make' command from
+ an environment variable if supplied. This is needed for the python bindings.
+ (merged by Teluu into pjproject trunk 5/3/2016)
+ FreeBSD support isn't complete. Still some general issues regarding
+ make/gmake having nothing to do with pjproject. With some handholding it DOES
+ build successfully.
+
+ CentOS:
+ Added 'patch' and 'bzip2' to install_prereq PACKAGES_RH.
+ CentOS 6/7 32/64 build and run the pjsip testsuite successfully.
+
+ Ubuntu:
+ No changes required.
+ Ubuntu 15/16 32/64 build and run the pjsip testsuite successfully.
+
+ Debian:
+ No changes required.
+ Debian 6/7/8 32/64 build and run the pjsip testsuite successfully.
+
+ There will utimately be a follow-up patch to create an install_prereq for
+ the testsuite as I've discovered a few missing requirements.
+
+ ASTERISK-25968 #close
+
+ Change-Id: I5756a07facfc63798115a5e73a8709382fe9259c
+
+2016-03-17 14:29 +0000 [8028fc7585] Andrew Nagy <andrew.nagy@the159.com>
+
+ * app_voicemail: always copy dynamic struct to avoid race condition
+
+ Voicemail email addresses can be corrupt or voicemail
+ emails can end up being sent to the wrong email address if asterisk is
+ reading voicemail.conf during a reload and processing an email at the
+ same time. This patch always copies the struct that would otherwise only
+ be copied once.
+
+ ASTERISK-24463 #close
+ Reported by: John Campbell
+ Tested by: Etienne Lessard
+ Tested by: Andrew Nagy
+ Change-Id: I3a0643813116da84e2617291903d0d489b7425fb
+
+2016-04-15 14:26 +0000 [3cb8934de0] Alexei Gradinari <alex2grad@gmail.com>
+
+ * pjsip: Added "reg_server" to contacts.
+
+ If the Asterisk system name is set in asterisk.conf, it will be stored
+ into the "reg_server" field in the ps_contacts table to facilitate
+ multi-server setups.
+
+ ASTERISK-25931
+
+ Change-Id: Ia8f6bd2267809c78753b52bcf21835b9b59f4cb8
+
+2016-04-28 11:35 +0000 [7992923c70] Richard Mudgett <rmudgett@digium.com>
+
+ * res_pjsip: Start body generator users after suppliers.
+
+ Change-Id: I8f0b57841feaab56c8a4e821b5ccb4e05e5fbadb
+
+2016-04-28 16:06 +0000 [5dc0e082b2] Richard Mudgett <rmudgett@digium.com>
+
+ * res_pjsip_pubsub.c: Add useful information to some messages.
+
+ Change-Id: Ia0b2e15773894c599e5c5748bbc70e99f434192a
+
+2016-04-26 15:58 +0000 [f9e416f053] Richard Mudgett <rmudgett@digium.com>
+
+ * res_pjsip_pubsub.c: Fix body generator registration race.
+
+ Change-Id: Id8752073ef06472a2fd96080f4009fac42843e67
+
+2016-04-26 15:13 +0000 [b1b2019046] Richard Mudgett <rmudgett@digium.com>
+
+ * res_pjsip_pubsub.h: Fix doxygen association.
+
+ Change-Id: I110d3e3572598289fcd4215d966cf0c858f98632
+
+2016-04-25 16:00 +0000 [b7f07fdff5] Richard Mudgett <rmudgett@digium.com>
+
+ * res_pjsip_outbound_publish.c: Remove redundant flag check.
+
+ Change-Id: I0da80a3c3e0eae0c52ff27e7412ba027d6f52353
+
+2016-04-28 16:54 +0000 [719ece5659] gtjoseph <gjoseph@digium.com>
+
+ * pjproject_bundled: Disable PJSIP_UNESCAPE_IN_PLACE
+
+ When pjsip_parse_uri is called with PJSIP_UNESCAPE_IN_PLACE enabled,
+ the input uri string will become corrupted if it contains escape sequences.
+ It's not possible to automatically strdup or strdupa the input string because
+ the output uri pj_str_t's will have pointers to chunks of the input string.
+ Getting around this would require more memory management code and wouldn't
+ be worth the savings of doing the unescape in place.
+
+ ASTERISK-25970 #close
+ Reported-by: Dmitriy Serov
+
+ Change-Id: I28dc0e599b5108f7959b9c46dc8278371b372f88
+
+2016-03-07 18:34 +0000 [38bed4515d] gtjoseph <george.joseph@fairview5.com>
+
+ * res_pjsip: Add ability to identify by Authorization username
+
+ A feature of chan_sip that service providers relied upon was the ability to
+ identify by the Authorization username. This is most often used when customers
+ have a PBX that needs to register rather than identify by IP address. From my
+ own experiance, this is pretty common with small businesses who otherwise
+ don't need a static IP.
+
+ In this scenario, a register from the customer's PBX may succeed because From
+ will usually contain the PBXs account id but an INVITE will contain the caller
+ id. With nothing recognizable in From, the service provider's Asterisk can
+ never match to an endpoint and the INVITE just stays unauthorized.
+
+ The fixes:
+
+ A new value "auth_username" has been added to endpoint/identify_by that
+ will use the username and digest fields in the Authorization header
+ instead of username and domain in the the From header to match an endpoint,
+ or the To header to match an aor. This code as added to
+ res_pjsip_endpoint_identifier_user rather than creating a new module.
+
+ Although identify_by was always a comma-separated list, there was only
+ 1 choice so order wasn't preserved. So to keep the order, a vector was added
+ to the end of ast_sip_endpoint. This is only used by res_pjsip_registrar
+ to find the aor. The res_pjsip_endpoint_identifier_* modules are called in
+ globals/endpoint_identifier_order.
+
+ Along the way, the logic in res_pjsip_registrar was corrected to match
+ most-specific to least-specific as res_pjsip_endpoint_identifier_user does.
+
+ The order is:
+
+ username@domain
+ username@domain_alias
+ username
+
+ Auth by username does present 1 problem however, the first INVITE won't have
+ an Authorization header so the distributor, not finding a match on anything,
+ sends a securty_alert. It still sends a 401 with a challenge so the next
+ INVITE will have the Authorization header and presumably succeed. As a result
+ though, that first security alert is actually a false alarm.
+
+ To address this, a new feature has been added to pjsip_distributor that keeps
+ track of unidentified requests and only sends the security alert if a
+ configurable number of unidentified requests come from the same IP in a
+ configurable amout of time. Those configuration options have been added to
+ the global config object. This feature is only used when auth_username
+ is enabled.
+
+ Finally, default_realm was added to the globals object to replace the hard
+ coded "asterisk" used when an endpoint is not yet identified.
+
+ The testsuite tests all pass but new tests are forthcoming for this new
+ feature.
+
+ ASTERISK-25835 #close
+ Reported-by: Ross Beer
+
+ Change-Id: I30ba62d208e6f63439600916fcd1c08a365ed69d
+
+2016-04-27 13:23 +0000 [677d5b5151] Mark Michelson <mmichelson@digium.com>
+
+ * func_odbc: Check connection status before executing queries.
+
+ A recent change to func_odbc made it so that a single connection was
+ maintained per DSN. The problem was that the code was optimistic about
+ the health of the connection after initially opening it and did nothing
+ to re-connect in case the connection had died.
+
+ This change adds a check before executing a query to ensure that the
+ connection to the database is still up and running.
+
+ ASTERISK-25963 #close
+ Reported by Ross Beer
+
+ Change-Id: Id33c86eb04ff48ca088bb2e3086c27b3b683491d
+
+2016-04-15 11:59 +0000 [df3639700a] Alexei Gradinari <alex2grad@gmail.com>
+
+ * res_pjsip: disable multi domain to improve realtime performace
+
+ This patch added new global pjsip option 'disable_multi_domain'.
+ Disabling Multi Domain can improve Realtime performance by reducing
+ number of database requests.
+
+ ASTERISK-25930 #close
+
+ Change-Id: I2e7160f3aae68475d52742107949a799aa2c7dc7
+
+2016-04-26 11:13 +0000 [949bf6b282] Joshua Colp <jcolp@digium.com>
+
+ * chan_sip: Give more time for TCP/TLS threads to stop.
+
+ The unload process currently tells each TCP/TLS to terminate but
+ does not wait for them to do so. This introduces a race condition
+ where the container holding the threads may be destroyed before
+ the threads are able to remove themselves from it. When they
+ finally do the container is invalid and can't be used causing a
+ crash.
+
+ A previous change existed which waited a bit to wait for any
+ stranglers to finish. This change extends this and waits longer.
+
+ ASTERISK-25961 #close
+
+ Change-Id: Idc6262b670ca49ede32061159e323b7b63c6f3c6
+
+2016-04-26 05:48 +0000 [6959f5484b] Joshua Colp <jcolp@digium.com>
+
+ * app_queue: Fix crash when unloading module.
+
+ When unloading the app_queue module the members in each queue are
+ destroyed and as part of this they are removed from the pending
+ members container. Unfortunately a crash would occur as the container
+ was destroyed before the members were removed.
+
+ This change tweaks ordering so the container destruction occurs
+ after the members are destroyed.
+
+ ASTERISK-16115
+
+ Change-Id: I48c728668c55aee3d05b751a5d450fb57e87f44b
+
+2016-04-24 22:51 +0000 [b38f1146e5] gtjoseph <gjoseph@digium.com>
+
+ * config: Fix ast_config_text_file_save2 writability check for missing files
+
+ A patch I did back in 2014 modified ast_config_text_file_save2 to check the
+ writability of the main file and include files before truncating and re-writing
+ them. An unintended side-effect of this was that if a file doesn't exist,
+ the check fails and the write is aborted.
+
+ This patch causes ast_config_text_file_save2 to check the writability of the
+ parent directory of missing files instead of checking the file itself. This
+ allows missing files to be created again. A unit test was also added to
+ test_config to test saving of config files.
+
+ The regression was discovered when app_voicemail's passwordlocation=spooldir
+ feature stopped working.
+
+ ASTERISK-25917 #close
+ Reported-by: Jonathan Rose
+
+ Change-Id: Ic4dbe58c277a47b674679e49daed5fc6de349f80
+
+2016-04-21 23:53 +0000 [29bab0d1a4] Kirill Katsnelson <kkm@smartaction.com>
+
+ * chan_sip: Make autocreated peers send PeerStatus events
+
+ Since Stasis has been introduced, an attempt to send AMI messages by an
+ autocreated peer caused a crash, and all events from autocreated peers were
+ semi-inadvertently disabled altogether in 0b83761. This change restores the
+ disabled functionality.
+
+ ASTERISK-25950
+
+ Change-Id: Iecc350f23db603fadb2f302064643ebe9664e974
+
+2016-04-21 14:23 +0000 [c345e530f4] Kevin Harwell <kharwell@digium.com>
+
+ * app_queue: queue members can receive multiple calls
+
+ It was possible for a queue member that is a member of at least 2 or more
+ queues to receive mulitiple calls at the same time. This happened because
+ of a race between when a member was being rung and when the device state
+ notified the other queue(s) member object of the state change.
+
+ This patch makes it so when a queue member is being rung it gets added to
+ a global pool of queue members. If that same member is tried again, e.g.
+ from another queue, and it is found to already exist in the pending member
+ container then it will not ring that member.
+
+ ASTERISK-16115 #close
+
+ Change-Id: I546dd474776d158c2b6be44205353dee5bac7e48
+
+2016-04-25 08:11 +0000 [c0688a6398] Javier Acosta <javier.acosta@beeonline.es>
+
+ * Fix case sensitive actions in AMI QueueSummary and QueueStatus
+
+ ASTERISK-25954 #close
+ Reported by: Javier Acosta
+
+ Change-Id: I00be83d45cc7e8385de2523012bd196aafeeb256
+
+2016-04-22 15:25 +0000 [ebf0724a83] Richard Mudgett <rmudgett@digium.com>
+
+ * test_message.c: Wait longer in case dialplan also processes the test message.
+
+ Bumped the wait from 1 second to 5 seconds. The test message was hitting my
+ default call handler and failing the test because it took longer.
+
+ Change-Id: I3a03737f25e92983de00548fcc7bbc50dd7544ba
+
+2016-04-12 15:29 +0000 [ba63aa7c9e] Richard Mudgett <rmudgett@digium.com>
+
+ * Manager: Short circuit AMI message processing.
+
+ Improve AMI message processing performance if there are no consumers
+ listening for the messages. We now skip creating the AMI event message
+ text strings.
+
+ Change-Id: I7b22fc5ec4e500d00635c1a467aa8ea68a1bb2b3
+
+2016-04-13 17:54 +0000 [d5ee6acf28] Richard Mudgett <rmudgett@digium.com>
+
+ * manager.c: Eliminate most RAII_VAR usage.
+
+ * Made ast_manager_event_blob_create() not allocate the ao2 event object
+ with a lock as it is not needed.
+
+ Change-Id: I8e11bfedd22c21316012e0b9dd79f5918f644b7c
+
+2016-04-13 17:09 +0000 [7303e3dc96] Richard Mudgett <rmudgett@digium.com>
+
+ * manager_channels.c: Fix allocation failure crash.
+
+ An earlier allocation failure failed to create a channel snapshot for the
+ AMI HangupRequest/SoftHangupRequest event which resulted in a crash in
+ channel_hangup_request_cb(). Where the stasis message gets generated
+ cannot tell if the NULL snapshot returned was because of an allocation
+ failure or the channel was a dummy channel.
+
+ * Made channel_hangup_request_cb() check if the channel blob has a
+ snapshot and exit if it doesn't.
+
+ * Eliminated the RAII_VAR usage in channel_hangup_request_cb().
+
+ Change-Id: I0b6a1c4e95cbb7d80b2a7054c6eadecc169dfd24
+
+2016-04-13 13:50 +0000 [1e93f3d723] Richard Mudgett <rmudgett@digium.com>
+
+ * Bridge system: Fix memory leaks and double frees on impart failure.
+
+ You cannot reference the passed in features struct after calling
+ ast_bridge_impart(). Even if the call fails.
+
+ Change-Id: I902b88ba0d5d39520e670fb635078a367268ea21
+
+2016-04-13 13:20 +0000 [5e388d4188] Richard Mudgett <rmudgett@digium.com>
+
+ * bridge_softmix.c: Fix crash if channel fails to join mixing tech.
+
+ softmix_bridge_join() failed because of an allocation failure. To address
+ this, the softmix bridge technology now checks if the channel failed to
+ join softmix successfully. In addition, the bridge now begins the process
+ of kicking the channel out of the bridge so we don't have channels
+ partially in the bridge for very long.
+
+ * Fix the test_channel_feature_hooks.c unit tests. The test channel must
+ have a valid codec to join the simple_bridge technology. This patch makes
+ joining a bridge more strict by not allowing partially joined channels to
+ remain in the bridge.
+
+ Change-Id: I97e2ade6a2bcd1214f24fb839fda948825b61a2b
+
+2016-03-17 12:28 +0000 [9740277713] gtjoseph <george.joseph@fairview5.com>
+
+ * res_pjsip: Add serialized scheduler (res_pjsip/pjsip_scheduler.c)
+
+ There are several places that do scheduled tasks or periodic housecleaning,
+ each with its own implementation:
+
+ * res_pjsip_keepalive has a thread that sends keepalives.
+ * pjsip_distributor has a thread that cleans up expired unidentified requests.
+ * res_pjsip_registrar_expire has a thread that cleans up expired contacts.
+ * res_pjsip_pubsub uses ast_sched directly and then calls ast_sip_push_task.
+ * res_pjsip_sdp_rtp also uses ast_sched to send keepalives.
+
+ There are also places where we should be doing scheduled work but aren't.
+ A good example are the places we have sorcery observers to start registration
+ or qualify. These don't work when changes are made to a backend database
+ without a pjsip reload. We need to check periodically.
+
+ As a first step to solving these issues, a new ast_sip_sched facility has
+ been created.
+
+ ast_sip_sched wraps ast_sched but only uses ast_sched as a scheduled queue.
+ When a task is ready to run, ast_sip_task_pusk is called for it. This ensures
+ that the task is executed in a PJLIB registered thread and doesn't hold up the
+ ast_sched thread so it can immediately continue processing the queue. The
+ serializer used by ast_sip_sched is one of your choosing or a random one from
+ the res_pjsip pool if you don't choose one.
+
+ Another feature is the ability to automatically clean up the task_data when the
+ task expires (if ever). If it's an ao2 object, it will be dereferenced, if
+ it's a malloc'd object it will be freed. This is selectable when the task is
+ scheduled. Even if you choose to not auto dereference an ao2 task data object,
+ the scheduler itself maintains a reference to it while the task is under it's
+ control. This prevents the data from disappearing out from under the task.
+
+ There are two scheduling models.
+
+ AST_SIP_SCHED_TASK_PERIODIC specifies that the invocations of the task occur at
+ the specific interval. That is, every "interval" milliseconds, regardless of
+ how long the task takes. If the task takes longer than the interval, it will
+ be scheduled at the next available multiple of interval. For exmaple: If the
+ task has an interval of 60 secs and the task takes 70 secs (it better not),
+ the next invocation will happen at 120 seconds.
+
+ AST_SIP_SCHED_TASK_DELAY specifies that the next invocation of the task should
+ start "interval" milliseconds after the current invocation has finished.
+
+ Also, the same ast_sched facility for fixed or variable intervals exists. The
+ task's return code in conjunction with the AST_SIP_SCHED_TASK_FIXED or
+ AST_SIP_SCHED_TASK_VARIABLE flags controls the next invocation start time.
+
+ One res_pjsip.h housekeeping change was made. The pjsip header files were
+ added to the top. There have been a few cases lately where I've needed
+ res_pjsip.h just for ast_sip calls and had compiles fail spectacularly because
+ I didn't add the pjsip header files to my source even though I never referenced
+ any pjsip calls.
+
+ Finally, a few new convenience APIs were added to astobj2 to make things a
+ little easier in the scheduler. ao2_ref_and_lock() calls ao2_ref() and
+ ao2_lock() in one go. ao2_unlock_and_unref() does the reverse. A few macros
+ were also copied from res_phoneprov because I got tired of having to duplicate
+ the same hash, sort and compare functions over and over again. The
+ AO2_STRING_FIELD_(HASH|SORT|CMP)_FN macros will insert functions suitable for
+ aor_container_alloc into your source.
+
+ This facility can be used immediately for the situations where we already have
+ a thread that wakes up periodically or do some scheduled work. For the
+ registration and qualify issues, additional sorcery and schema changes would
+ need to be made so that we can easily detect changed objects on a periodic
+ basis without having to pull the entire database back to check. I'm thinking
+ of a last-updated timestamp on the rows but more on this later.
+
+ Change-Id: I7af6ad2b2d896ea68e478aa1ae201d6dd016ba1c
+
+2016-04-25 21:43 +0000 Asterisk Development Team <asteriskteam@digium.com>
+
+ * asterisk 13.9.0-rc1 Released.
+
+2016-04-25 16:42 +0000 [5237b7cd47] Joshua Colp <jcolp@digium.com>
+
+ * Release summaries: Add summaries for 13.9.0-rc1
+
+2016-04-25 16:40 +0000 [5a3850ecba] Joshua Colp <jcolp@digium.com>
+
+ * .version: Update for 13.9.0-rc1
+
+2016-04-25 16:40 +0000 [60b39040e4] Joshua Colp <jcolp@digium.com>
+
+ * .lastclean: Update for 13.9.0-rc1
+
+2016-04-25 16:40 +0000 [5078454464] Joshua Colp <jcolp@digium.com>
+
+ * realtime: Add database scripts for 13.9.0-rc1
+
+2016-04-22 17:53 +0000 [eb7c581806] gtjoseph <gjoseph@digium.com>
+
+ * res_agi: Prevent run_agi from eating frames it shouldn't
+
+ The run_agi function is eating control frames when it shouldn't be. This is
+ causing issues when an AGI is run from CONNECTED_LINE_SEND_SUB in a blond
+ transfer.
+
+ Alice calls Bob. Bob attended transfers to Charlie but hangs up before Charlie
+ answers.
+
+ Alice gets the COLP UPDATE indicating Charlie but Charlie never gets an UPDATE
+ and is left thinking he's connected to Bob.
+
+ In this case, when CONNECTED_LINE_SEND_SUB runs on Alice's channel and it calls
+ an AGI, the extra eaten frames prevent CONNECTED_LINE_SEND_SUB from running on
+ Charlie's channel.
+
+ The fix was to accumulate deferrable frames in the "forever" loop instead of
+ dropping them, and re-queue them just before running the actual agi command
+ or exiting.
+
+ ASTERISK-25951 #close
+
+ Change-Id: I0f4bbfd72fc1126c2aaba41da3233a33d0433645
+
+2016-04-22 13:49 +0000 [068ae54c76] Mark Michelson <mmichelson@digium.com>
+
+ * func_odbc: Use one connection per DSN.
+
+ res_odbc was changed in Asterisk 13.8.0 to remove connection management,
+ opting instead to let unixodbc maintain open connections and return
+ those to Asterisk as requested.
+
+ This was a boon for realtime, since it meant that multiple threads could
+ potentially run parallel queries since they could each be using their
+ own database connections.
+
+ However, on the user-facing side, func_odbc, there were some inherent
+ behaviors being relied on that no longer hold true after the change.
+ One such reported behavior was that MySQL's LAST_INSERTED_ID() works
+ per-connection. This means that if Asterisk uses separate connections
+ for every database operation, whereas before it used one connection for
+ everything, we have broken expectations and functionality.
+
+ The fix provided in this patch is to make func_odbc use a single
+ database connection per DSN. This way, user-facing database usage will
+ have the same behavior as it did pre-13.8.0. However, realtime, which is
+ the real workhorse of database interaction, will continue to let
+ unixodbc manage connections.
+
+ ASTERISK-25938 #close
+ Reported by Edwin Vandamme
+
+ Change-Id: Iac961fe79154c6211569afcdfec843c0c24c46dc
+
+2016-04-22 13:02 +0000 [6aeefa89bc] Leif Madsen <leif@leifmadsen.com>
+
+ * Remove reference to non-existent sip.conf option
+
+ Option was removed in commit 7f883ef495b57ae9182e47213d01d5e8009dbf3f
+
+ ASTERISK-25927 #close
+
+ Change-Id: I92f9b0196d9fc41d1d58354c07340c465ef1fcf8
+
+2016-04-21 08:26 +0000 [e750ea9b5b] Diederik de Groot <dkgroot@talon.nl>
+
+ * lock.c: Check *lt before dereferencing it
+
+ *lt is NULL if t->tracking == 0
+
+ ASTERISK-25948 #close
+
+ Change-Id: I4a81af28f9c82a74aa82413d772a7dc8fa6f45ba
+
+2016-04-15 14:36 +0000 [a036c35903] Richard Mudgett <rmudgett@digium.com>
+
+ * res_stasis: Handle re-enter stasis bridge with swap channel.
+
+ We lose the fact that there is a swap channel if there is one. We
+ currently wind up rejoining the stasis bridge as a normal join after the
+ swap channel has already been kicked from the bridge.
+
+ This patch preserves the swap channel so the AMI/ARI events can note that
+ the channel joining the bridge is swapping with another channel. Another
+ benefit to swaqpping in one operation is if there are any channels that
+ get lonely (MOH, bridge playback, and bridge record channels). The lonely
+ channels won't leave before the joining channel has a chance to come back
+ in under stasis if the swap channel is the only reason the lonely channels
+ are staying in the bridge.
+
+ ASTERISK-25947 #close
+ Reported by: Richard Mudgett
+
+ ASTERISK-24649
+ Reported by: John Bigelow
+
+ ASTERISK-24782
+ Reported by: John Bigelow
+
+ Change-Id: If37ea508831d1fed6dbfac2f191c638fc0a850ee
+
+2016-04-19 16:58 +0000 [9942d50aa5] Richard Mudgett <rmudgett@digium.com>
+
+ * bridge: Hold off more than one imparting channel at a time.
+
+ An earlier patch blocked the ast_bridge_impart() call until the channel
+ either entered the target bridge or it failed. Unfortuantely, if the
+ target bridge is stasis and the imprted channel is not a stasis channel,
+ stasis bounces the channel out of the bridge to come back into the bridge
+ as a proper stasis channel. When the channel is bounced out, that
+ released the block on ast_bridge_impart() to continue. If the impart was
+ a result of a transfer, then it became a race to see if the swap channel
+ would get hung up before the imparted channel could come back into the
+ stasis bridge. If the imparted channel won then everything is fine. If
+ the swap channel gets hung up first then the transfer will fail because
+ the swap channel is leaving the bridge.
+
+ * Allow a chain of ast_bridge_impart()'s to happen before any are
+ unblocked to prevent the race condition described above. When the channel
+ finally joins the bridge or completely fails to join the bridge then the
+ ast_bridge_impart() instances are unblocked.
+
+ ASTERISK-25947
+ Reported by: Richard Mudgett
+
+ ASTERISK-24649
+ Reported by: John Bigelow
+
+ ASTERISK-24782
+ Reported by: John Bigelow
+
+ Change-Id: I8fef369171f295f580024ab4971e95c799d0dde1
+
+2016-04-19 17:52 +0000 [516c626a7d] gtjoseph <george.joseph@fairview5.com>
+
+ * res_pjsip_callerid: Clear out display name if id->name is not valid
+
+ When create_new_id_hdr creates a new RPID or PAI header, it starts by cloning
+ the From header, then it overwrites the display name and uri from the channel's
+ connected.id. If the connected.id.name wasn't valid, create_new_id_hdr was
+ leaving the display name from the From header in the new RPID or PAI header.
+ On an attended transfer where the originator had a caller id number set but not
+ a display name, the re-INVITE to the final transferee had the number of the
+ originator but the display name of the transferer.
+
+ Added a check to clear out the display name in the new header if
+ connected.id.name was invalid.
+
+ ASTERISK-25942 #close
+
+ Change-Id: I60b4bf7a7ece9b7425eba74151c0b4969cd2738b
+
+2016-04-19 13:02 +0000 [ded3794fc6] Joshua Colp <jcolp@digium.com>
+
+ * app_talkdetect: Make the module core supported.
+
+ This module is used as part of testsuite tests to confirm
+ stuff works. I'm accordingly marking it as core as it is
+ required by those tests.
+
+ Change-Id: I558e7af7679b22b8ed641d7dd37ee4ca35b11e88
+
+2016-04-18 12:12 +0000 [efae187217] Mark Michelson <mmichelson@digium.com>
+
+ * PJSIP: Remove PJSIP parsing functions from uri length validation.
+
+ The PJSIP parsing functions provide a nice concise way to check the
+ length of a hostname in a SIP URI. The problem is that in order to use
+ those parsing functions, it's required to use them from a thread that
+ has registered with PJLib.
+
+ On startup, when parsing AOR configuration, the permanent URI handler
+ may not be run from a PJLib-registered thread. Specifically, this could
+ happen when Asterisk was started in daemon mode rather than
+ console-mode. If PJProject were compiled with assertions enabled, then
+ this would cause Asterisk to crash on startup.
+
+ The solution presented here is to do our own parsing of the contact URI
+ in order to ensure that the hostname in the URI is not too long. The
+ parsing does not attempt to perform a full SIP URI parse/validation,
+ since the hostname in the URI is what is important.
+
+ ASTERISK-25928 #close
+ Reported by Joshua Colp
+
+ Change-Id: Ic3d6c20ff3502507c17244a8b7e2ca761dc7fb60
+
+2016-04-18 17:00 +0000 [f436b9ab11] Mark Michelson <mmichelson@digium.com>
+
+ * res_pjsip_registrar: Fix bad memory-ness with user_agent.
+
+ Recent changes to the PJSIP registrar resulted in tests failing due to
+ missing AOR_CONTACT_ADDED test events. The reason for this was that the
+ user_agent string had junk values in it, resulting in being unable to
+ generate the event.
+
+ I'm going to be honest here, I have no idea why this was happening. Here
+ are the steps needed for the user_agent variable to get messed up:
+ * REGISTER is received
+ * First contact in the REGISTER results in a contact being removed
+ * Second contact in the REGISTER results in a contact being added
+ * The contact, AOR, expiration, and user agent all have to be passed as
+ format parameters to the creation of a string. Any subset of those
+ parameters would not be enough to cause the problem.
+
+ Looking into what was happening, the thing that struck me as odd was
+ that the user_agent variable was meant to be set to the value of the
+ User-Agent SIP header in the incoming REGISTER. However, when removing a
+ contact, the user_agent variable would be set (via ast_strdupa inside a
+ loop) to the stored contact's user_agent. This means that the
+ user_agent's value would be incorrect when attempting to process further
+ contacts in the incoming REGISTER.
+
+ The fix here is to use a different variable for the stored user agent
+ when removing a contact. Correcting the behavior to be correct also
+ means the memory usage is less weird, and the issue no longer occurs.
+
+ ASTERISK-25929 #close
+ Reported by Joshua Colp
+
+ Change-Id: I7cd24c86a38dec69ebcc94150614bc25f46b8c08
+
+2016-04-18 13:41 +0000 [49bfdc9ac0] Joshua Colp <jcolp@digium.com>
+
+ * res_pjsip_transport_management: Allow unload to occur.
+
+ At shutdown it is possible for modules to be unloaded that wouldn't
+ normally be unloaded. This allows the environment to be cleaned up.
+
+ The res_pjsip_transport_management module did not have the unload
+ logic in it to clean itself up causing the res_pjsip module to not
+ get unloaded. As a result the res_pjsip monitor thread kept going
+ processing traffic and timers when it shouldn't.
+
+ Change-Id: Ic8cadee131e3b2c436a81d3ae8bb5775999ae00a
+
+2016-04-15 11:41 +0000 [f4693d1897] Richard Mudgett <rmudgett@digium.com>
+
+ * bridge_channel.c: Ignore role setup failure in channel push.
+
+ We have to setup the channel roles after the bridge class push is called
+ because the bridge class push callback may have set roles on the incoming
+ channel. Since we have already partially pushed the channel into the
+ bridge and reversing what we have already done could be problematic, the
+ only thing we can do is press on to complete pushing the channel into the
+ bridge.
+
+ * Ignore any channel role setup errors after pushing the channel into a
+ bridge. The channel may behave incorrectly in the bridge but we can no
+ longer abort the push at this time.
+
+ Change-Id: I08a97082b729052ee65cdca6bb730cf1289ede00
+
+2016-04-17 15:37 +0000 [22335fe18a] Jaco Kroon <jaco@uls.co.za>
+
+ * chan_sip: Don't verify table if rtupdate=no
+
+ If rtupdate=no do not verify sipregs/peers table has updatable fields.
+
+ ASTERISK-25934 #close
+
+ Change-Id: Iaa2c53037b93daccc7e7333c40d61861847b856d
+
+2016-04-18 04:53 +0000 [3b9d8b60b2] ibercom <ibercom123@gmail.com>
+
+ * app_queue: Frequent segfaults in function can_ring_entry()
+
+ ASTERISK-25888 #close
+
+ Change-Id: I007a2f2dd99823e04fb5be3ff01f02b0a2956117
+
+2016-04-15 16:51 +0000 [724acb6ce7] Richard Mudgett <rmudgett@digium.com>
+
+ * stasis_bridge.c: Update stasis bridge push diagnostic messages.
+
+ Change-Id: I195b14994c9dcccb9452491ca20a885d2a54605a
+
+2016-04-14 13:49 +0000 [5f78801859] Mark Michelson <mmichelson@digium.com>
+
+ * transport management: Register thread with PJProject.
+
+ The scheduler thread that kills idle TCP connections was not registering
+ with PJProject properly and causing assertions if PJProject was built in
+ debug mode.
+
+ This change registers the thread with PJProject the first time that the
+ scheduler callback executes.
+
+ AST-2016-005
+
+ Change-Id: I5f7a37e2c80726a99afe9dc2a4a69bdedf661283
+
+2016-03-08 12:12 +0000 [7fb3724a77] Mark Michelson <mmichelson@digium.com>
+
+ * res_pjsip_transport_management: Kill idle TCP connections.
+
+ "Idle" here means that someone connects to us and does not send a SIP
+ request. PJProject will not automatically time out such connections, so
+ it's up to Asterisk to do it instead.
+
+ When we receive an incoming TCP connection, we will start a timer
+ (equivalent to transaction timer D) waiting to receive an incoming
+ request. If we do not receive a request in that timeframe, then we will
+ shut down the TCP connection.
+
+ ASTERISK-25796 #close
+ Reported by George Joseph
+
+ AST-2016-005
+
+ Change-Id: I7b0d303e5d140d0ccaf2f7af562071e3d1130ac6
+
+2016-03-08 10:52 +0000 [707fd4dcd0] Mark Michelson <mmichelson@digium.com>
+
+ * Rename res_pjsip_keepalive res_pjsip_transport_management
+
+ ASTERISK-25796
+ Reported by George Joseph
+
+ AST-2016-005
+
+ Change-Id: Id322a05f927392293570599730050bc677d99433
+
+2016-04-14 07:15 +0000 [0b4bb19e0b] Mark Michelson <mmichelson@digium.com>
+
+ * AST-2016-004: Fix crash on REGISTER with long URI.
+
+ Due to some ignored return values, Asterisk could crash if processing an
+ incoming REGISTER whose contact URI was above a certain length.
+
+ ASTERISK-25707 #close
+ Reported by George Joseph
+
+ Patches:
+ 0001-res_pjsip-Validate-that-URIs-don-t-exceed-pjproject-.patch
+
+ AST-2016-004
+
+ Change-Id: I0ed3898fe7ab10121b76c8c79046692de3a1be55
+
+2016-04-12 13:10 +0000 [f6e080c6a4] Richard Mudgett <rmudgett@digium.com>
+
+ * bridge_softmix.c: Fix crash if could not allocate the dsp.
+
+ Fix off nominal crash where we could not setup the channel to process
+ frames for the softmix bridge technology because of allocation failure.
+
+ Change-Id: Ic307a8386e46bf551e48fcd1eb97276714d56372
+
+2016-04-12 15:41 +0000 [cf15a2f2d3] gtjoseph <george.joseph@fairview5.com>
+
+ * pjproject: Add patch for removing strip of '[]' from header params
+
+ From the patch submitted to Teluu on 4/12/2016
+ <<<<<<<<<
+ The wholesale stripping of '[]' from header parameters causes issues if
+ something (like a port) occurs after the final ']'.
+
+ '[2001:a::b]' will correctly parse to '2001:a::b'
+ '[2001:a::b]:8080' will correctly parse to '2001:a::b' but the scanner is left
+ with ':8080' and parsing stops with a syntax error.
+
+ I can't even find a case where stripping the '[]' is a good thing anyway. Even
+ if you continued to parse and resulted in a string that looks like this...
+ '2001:a::b:8080', it's not valid.
+
+ This came up in Asterisk because Kamailio sends us a Contact with an alias
+ URI parameter that has an IPv6 address in it like this:
+ Contact: <sip:1171@127.0.0.1:5080;alias=[2001:1:2::3]~43691~6>
+ which should be legal but causes a syntax error because of the characters
+ after the final ']'. Even if it didn't, the '[]' should still not be stripped.
+
+ I've run the Asterisk Test Suite for PJSIP (252 tests) many of which are IPv6
+ enabled. No issues were caused by removing the code that strips the '[]'.
+ >>>>>>>>>>>
+
+ ASTERISK-25123 #close
+ Reported-by: Anthony Messina
+
+ Change-Id: I5cb33f4ebf07ee1f2b26d07caae715e2ec65595a
+
+2016-04-12 09:10 +0000 [daa086fae4] Joshua Colp <jcolp@digium.com>
+
+ * app_voicemail: Fix test_voicemail_notify_endl test.
+
+ The test_voicemail_notify_endl test checks the end-of-line
+ characters of an email message to confirm that they are consistent.
+ The test wrongfully assumed that reading from the email message
+ into a buffer will always result in more than 1 character being
+ read. This is incorrect. If only 1 character was read the test
+ would go outside of the buffer and access other memory causing
+ a crash.
+
+ The test now checks to ensure that 2 or more characters are read
+ in ensuring the test stays within the buffer.
+
+ ASTERISK-25874 #close
+
+ Change-Id: Ic2c89cea6e90f2c0bc2d8138306ebbffd4f8b710
+
+2016-04-07 12:02 +0000 [f896136460] Alexei Gradinari <alex2grad@gmail.com>
+
+ * app_voicemail/IMAP: function 'save_to_folder' creates wrong folder
+
+ If try to move message to Cust1 (number 5)
+ the function 'save_to_folder' tries to create Greeting folder instead of Cust1.
+
+ This patch fixed it by setting GREETINGS_FOLDER = -1
+
+ ASTERISK-24927 #close
+
+ Change-Id: I03d1a761894bcc2d130ec9b003bbcddc28e25c51
+
+2016-04-07 16:18 +0000 [70b7673f09] Alexei Gradinari <alex2grad@gmail.com>
+
+ * res_pjsip: Add headers to AMI Event ContactStatusDetail
+
+ * Added Useragent and RegExpire headers to AMI Event
+ ContactStatusDetail with associated documentation.
+
+ ASTERISK-25903 #close
+
+ Change-Id: If3d121e943e588d016ba51d4eb9c6a421a562239
+
+2016-04-11 16:20 +0000 [64ecd41c8f] Alexei Gradinari <alex2grad@gmail.com>
+
+ * Codecs: strip codec name while parsing allow/disallow options
+
+ Failed registration using PJSIP/Realtime if one of the codec name
+ in allow/disallow option is wrong or contains space.
+
+ This patch strip codec name.
+
+ ASTERISK-25914
+
+ Change-Id: Ifdf02de94e5ddbce305640f6f0666084a3b9283d
+
+2016-04-11 14:26 +0000 [3f6c4667b8] Jaco Kroon <jaco@uls.co.za>
+
+ * core_unreal: Fix hangupcauses not getting set on Local channels
+
+ ASTERISK-25912 #close
+
+ Change-Id: I8e72e6894feaf36c9450f2788d205d07baec23aa
+
+2016-04-01 13:30 +0000 [fe7e48db03] gtjoseph <george.joseph@fairview5.com>
+
+ * res_pjsip contact: Lock expiration/addition of contacts
+
+ Contact expiration can occur in several places: res_pjsip_registrar,
+ res_pjsip_registrar_expire, and automatically when anyone calls
+ ast_sip_location_retrieve_aor_contact. At the same time, res_pjsip_registrar
+ may also be attempting to renew or add a contact. Since none of this was locked
+ it was possible for one thread to be renewing a contact and another thread to
+ expire it immediately because it was working off of stale data. This was the
+ casue of intermittent registration/inbound/nominal/multiple_contacts test
+ failures.
+
+ Now, the new named lock functionality is used to lock the aor during contact
+ expire and add operations and res_pjsip_registrar_expire now checks the
+ expiration with the lock held before deleting the contact.
+
+ ASTERISK-25885 #close
+ Reported-by: Josh Colp
+
+ Change-Id: I83d413c46a47796f3ab052ca3b349f21cca47059
+
+2016-04-10 14:16 +0000 [0c414eaf35] gtjoseph <george.joseph@fairview5.com>
+
+ * pjproject: Add patch to fix Via IPv6 parsing
+
+ There's a bug in pjproject's sip_parser where the ":" wasn't correctly
+ interpreted. This is causing IPv6 addresses in the "received" parameter of the
+ Via header to cause a syntax check failure.
+
+ This patch was submitted to Teluu on 4/10/2016.
+
+ ASTERISK-25910 #close
+ Reported-by: Anthony Messina
+
+ Change-Id: Ic7e4c4aa14ded61860401ec349f5177568c4d922
+
+2016-03-31 20:04 +0000 [772ff3048f] gtjoseph <george.joseph@fairview5.com>
+
+ * lock: Add named lock capability
+
+ Locking some objects like sorcery objects can be tricky because the underlying
+ ao2 object may not be the same for all callers. For instance, two threads that
+ call ast_sorcery_retrieve_by_id on the same aor name might actually get 2
+ different ao2 objects if the underlying wizard had to rehydrate the aor from a
+ database. Locking one ao2 object doesn't have any effect on the other even if
+ those objects had locks in the first place.
+
+ Named locks allow access control by keyspace and key strings. Now an "aor"
+ named "1000" can be locked and any other thread attempting to lock "aor" "1000"
+ will wait regardless of whether the underlying ao2 object is the same or not.
+ Mutex and rwlocks are supported.
+
+ This capability will initially be used to lock an aor when multiple threads may
+ be attempting to prune expired contacts from it.
+
+ Change-Id: If258c0b7f92b02d07243ce70e535821a1ea7fb45
+
+2016-04-05 16:56 +0000 [fd601f26f7] Alexei Gradinari <alex2grad@gmail.com>
+
+ * res_pjsip_outbound_publish: Add transport for outbound PUBLISH
+
+ The first available transport of the appropriate type is used now.
+ This patch adds new config option 'transport' for outbound-publish.
+ If transport is set then outbound PUBLISH requests will use this transport.
+
+ ASTERISK-25901 #close
+
+ Change-Id: Ib389130489b70e36795b0003fa5fd386e2680151
+
+2016-04-07 16:39 +0000 [5f768d2a9c] Alexei Gradinari <alex2grad@gmail.com>
+
+ * res_pjsip_dialog_info: Add missing "direction" attribute in NOTIFY event
+
+ BLF pickup isn't working on Cisco SPA and Snom phones
+ if the direction="recipient" attribute is missing in 'dialog' tag.
+
+ This patch adds direction="recipient" if extension state is
+ Ringing.
+
+ ASTERISK-24601 #close
+
+ Change-Id: I5b2c097ca29fd59e92ba237ca5d397cb1b0bcd8c
+
+2016-04-07 10:59 +0000 [82638fb0c7] Richard Mudgett <rmudgett@digium.com>
+
+ * pbx.c: Minor code rearangements.
+
+ * Pull out a loop invariant.
+
+ * Convert an else-if ladder to a switch statement.
+
+ Change-Id: I0a95cfa9474a4600b9865f7b444534d275b37e95
+
+2016-04-07 11:37 +0000 [bc320df173] Alexei Gradinari <alex2grad@gmail.com>
+
+ * app_voicemail/IMAP: IMAP access FATAL error: Out of memory
+
+ Sometimes uw-imap function 'mail_fetchbody' returns huge len
+ which then pass to uw-imap function 'rfc822_base64'.
+ uw-imap tries to allocate huge memory and abort() on fail.
+
+ This patch check the len.
+ If the len more than max size (128 Mbytes) log error.
+ This patch also set variables len, newlen to avoid uninizialezed len.
+ This patch also check pointer returned by rfc822_base64.
+
+ ASTERISK-25899 #close
+
+ Change-Id: I4a0e7d655f11abef6a5224e2169df6d5c1f1caca
+
+2016-04-07 12:26 +0000 [2ef8a954b3] Richard Mudgett <rmudgett@digium.com>
+
+ * pbx: Update doxygen for extension state watchers.
+
+ Change-Id: Id1403b12136de62a272c01bb355aef65fd2c2d1e
+
+2016-04-07 11:49 +0000 [d312fdeb1b] gtjoseph <george.joseph@fairview5.com>
+
+ * alembic: Remove batch operations (and sqlite support)
+
+ Because SQLite doesn't support full ALTER capabilities, alembic scripts
+ require batch operations. However, that capability wasn't available until
+ 0.7.0 which some distributions haven't reached yet. Therefore, the batch
+ operations introduced in commit 86d6e44cc (review 2319) have been reverted
+ and SQLite is unsupported again, for now anyway.
+
+ Tested the full upgrade and downgrade on MySQL/Mariadb and Postgresql.
+
+ ASTERISK-25890 #close
+ Reported-by: Harley Peters
+
+ Change-Id: I82eba5456736320256f6775f5b0b40133f4d1c80
+
+2016-04-07 11:05 +0000 [901e8d78c4] Joshua Colp <jcolp@digium.com>
+
+ * res_pjsip_registrar_expire: Fix race condition at shutdown.
+
+ When shutting down, the PJSIP sorcery is destroyed. The registrar
+ expiration module queries the PJSIP sorcery to determine what
+ to expire. As there was no synchronization between termination
+ of the expiration thread and the unloading of the module it was
+ possible for the thread to try to access the PJSIP sorcery after
+ it had been destroyed.
+
+ This change ensures that the thread is shut down before allowing
+ the module to be considered unloaded.
+
+ Change-Id: I69fd239edbaaf160c2d37ae00d3ac06e5596fe8b
+
+2016-04-06 16:28 +0000 [8207372e66] Joshua Colp <jcolp@digium.com>
+
+ * res_pjsip: Fix configuration setting of "regcontext".
+
+ Due to a merge problem two options were swapped causing the
+ regcontext setting to not get set.
+
+ Change-Id: Icb33edc668e7357bacbaec2861a6b5ac64edaff1
+
+2016-04-06 08:01 +0000 [0735a4d6d7] Jacek Konieczny <jkonieczny@eggsoft.pl>
+
+ * frame.c: Copy the whole subclass in ast_frdup().
+
+ The problem is ast_frdup() does not copy whole frame.subclass for voice,
+ video and image frames, only the format is copied. For video frames, the
+ subclass structure contains the .frame_ending flag used to put the RTP
+ marker where it needs to be.
+
+ ASTERISK-25894 #close
+
+ Change-Id: I812ca90e84ed5d4f473b997d0dd0d3c5a915fe33
+
+2016-04-05 14:23 +0000 [c61dca6419] Mark Michelson <mmichelson@digium.com>
+
+ * res_pjsip: Handle deferred SDP hold/unhold properly.
+
+ Some SIP devices indicate hold/unhold using deferred SDP reinvites. In
+ other words, they provide no SDP in the reinvite.
+
+ A typical transaction that starts hold might look something like this:
+
+ * Device sends reinvite with no SDP
+ * Asterisk sends 200 OK with SDP indicating sendrecv on streams.
+ * Device sends ACK with SDP indicating sendonly on streams.
+
+ At this point, PJMedia's SDP negotiator saves Asterisk's local state as
+ being recvonly.
+
+ Now, when the device attempts to unhold, it again uses a deferred SDP
+ reinvite, so we end up doing the following:
+
+ * Device sends reinvite with no SDP
+ * Asterisk sends 200 OK with SDP indicating recvonly on streams
+ * Device sends ACK with SDP indicating sendonly on streams
+
+ The problem here is that Asterisk offered recvonly, and by RFC 3264's
+ rules, if an offer is recvonly, the answer has to be sendonly. The
+ result is that the device is not taken off hold.
+
+ What is supposed to happen is that Asterisk should indicate sendrecv in
+ the 200 OK that it sends. This way, the device has the freedom to
+ indicate sendrecv if it wants the stream taken off hold, or it can
+ continue to respond with sendonly if the purpose of the reinvite was
+ something else (like a session timer refresher).
+
+ The fix here is to alter the SDP negotiator's state when we receive a
+ reinvite with no SDP. If the negotiator's state is currently in the
+ recvonly or inactive state, then we alter our local state to be
+ sendrecv. This way, we allow the device to indicate the stream state as
+ desired.
+
+ ASTERISK-25854 #close
+ Reported by Robert McGilvray
+
+ Change-Id: I7615737276165eef3a593038413d936247dcc6ed
+
+2016-03-27 23:33 +0000 [50b0922a22] gtjoseph <george.joseph@fairview5.com>
+
+ * config: Allow filters when appending to a category
+
+ In sorcery based config files where there are multiple categories with the same
+ name, you can't use the (+) operator to reliably append to a category because
+ config.c stops looking when it finds the first one with the same name.
+
+ Example:
+
+ [1000]
+ type = endpoint
+
+ [1000]
+ type = aor
+
+ [1000](+)
+ authenticate_qualify = yes
+
+ This config will fail because config.c appends authenticate_qualify to the
+ first category it finds, the endpoint, and that's not valid for endpoint.
+
+ Solution:
+
+ The capability to find a category that contains a certain variable already
+ exists so the only real change was to parse anything after the '+' that's not a
+ comma, as a filter string.
+
+ [1000]
+ type = endpoint
+
+ [1000]
+ type = aor
+
+ [1000](+type=aor)
+ authenticate_qualify = yes
+
+ This now works as expected.
+
+ Although the following example doesn't make any sense for pjsip, you can even
+ specify multiple filters:
+
+ [1000](+type=aor&qualify_frequency=10)
+
+ ASTERISK-25868 #close
+ Reported-by: Nick Repin
+
+ Change-Id: I10773da4c79db36fbf1993961992af63d3441580
+
+2016-04-05 10:21 +0000 [cb56ef8069] Joshua Colp <jcolp@digium.com>
+
+ * res_http_websocket: Make core supported.
+
+ Websockets are a core part of ARI support and as such this
+ module should also be core supported.
+
+ Change-Id: I8f9283c6a167152761b92984779bb39e3db51a9c
+
+2016-03-25 23:22 +0000 [f6f4cf459f] gtjoseph <george.joseph@fairview5.com>
+
+ * stringfields: Refactor to allow fields to be added to the end of structures
+
+ String fields are great, except that you can't add new ones without breaking
+ ABI compatibility because it shifts down everything else in the structure.
+ The only alternative is to add your own char * field to the end of the
+ structure and manage the memory yourself which isn't ideal, especially since
+ you then can't use the OPT_STRINGFIELD_T type.
+
+ Background:
+
+ The reason string fields had to be declared inside the
+ AST_DECLARE_STRING_FIELDS block was to facilitate iteration over all declared
+ fields for initialization, compare and copy. Since AST_DECLARE_STRING_FIELDS
+ declared the pool, then the fields, then the manager, you could use the offsets
+ of the pool and manager and iterate over the sequential addresses in between to
+ access the fields. The actual pool, field allocation and field set operations
+ don't actually care where the field is. It's just iteration over the fields
+ that was the problem.
+
+ Solution: Extended String Fields
+
+ An extended string field is one that is declared outside the
+ AST_DECLARE_STRING_FIELDS block but still (anywhere) inside the parent
+ structure. Other than using AST_STRING_FIELD_EXTENDED instead of
+ AST_STRING_FIELD, it looks the same as other string fields. It's storage comes
+ from the pool and it participates in string field compare and copy operations
+ peformed on the parent structure. It's also a valid target for the
+ OPT_STRINGFIELD_T aco option type.
+
+ Implementation:
+
+ To keep track of the extended fields and make sure that ABI isn't broken, the
+ existing embedded_pool pointer in the manager structure was repurposed to be a
+ pointer to a separate header structure that contains the embedded_pool pointer
+ plus a vector of fields. The length of the manager structure didn't change and
+ the embedded_pool pointer isn't used in the macros, only the stringfields C
+ code. A side benefit of this is that changing the header structure in the
+ future won't break ABI.
+
+ ast_string_fields_init initializes the normal string fields and appends them to
+ the vector, and subsequent calls to ast_string_field_init_extended initialize
+ and append the extended fields. Cleanup, ast_string_fields_cmp, and
+ ast_string_fields_copy can now work on the vector instead of sequentially
+ traversing the addresses between the pool and manager.
+
+ The total size of a structure using string fields didn't change, whether using
+ extended fields or not, nor have the offsets of any structure members, either
+ inside the original block or outside. Adding an extended field to the end of a
+ structure is the same as adding a char *.
+
+ Details:
+
+ The stringfield C code was pulled out from utils.c and into stringfields.c.
+ It just made sense.
+
+ Additional work was done in ast_string_field_init and
+ ast_calloc_with_stringfields to handle the allocation of the new header
+ structure and the vector, and the associated cleanup. In the process some
+ additional NULL pointer checking was added.
+
+ A lot of work was done in stringfields.h since the logic for compare and copy
+ is there. Documentation was added as well as somne additional NULL checking.
+
+ The ability to call ast_calloc_with_stringfields with a number of structures
+ greater than 1 never really worked. Well, the calloc worked but there was no
+ way to access the additional structures or clean them up. It was agreed that
+ there was no use case for requesting more than 1 structure so an ast_assert
+ was added to prevent it and the iteration code removed.
+
+ Testing:
+
+ The stringfield unit tests were updated to test both normal and extended
+ fields. Tests for ast_string_field_ptr_set_by_fields and
+ ast_calloc_with_stringfields were also added.
+
+ As an ABI test, 13 was compiled from git and the res_pjsip_* modules, except
+ res_pjsip itself, saved off. The patch was then added and a full compile and
+ install was performed. Then the older res_pjsip_* moduled were copied over the
+ installed versions so res_pjsip was new and the rest were old. No issues.
+
+ contact->aor, which is a char * at the end of contact, was then changed to an
+ extended string field and a recompile and reinstall was performed, again
+ leaving stock versions of the the res_pjsip_* modules. Again, no issues with
+ the res_pjsip_* modules using the old stringfield implementation and with
+ contact->aor as a char *, and res_pjsip itself using the new stringfield
+ implementation and contact->aor being an extended string field.
+
+ Finally, several existing string fields were converted to extended string
+ fields to test OPT_STRINGFIELD_T. Again, no issues.
+
+ Change-Id: I235db338c5b178f5a13b7946afbaa5d4a0f91d61
+
+2016-04-04 18:02 +0000 [fe448ac8a7] gtjoseph <george.joseph@fairview5.com>
+
+ * res_pjsip_mwi: Fix segv caused by 16c7d8e74a9af13f98c3c22aa9c43ce39965f6b7
+
+ I forgot the new voicemail_extension wasn't a stringfield and didn't check
+ for NULL where I should have.
+
+ Change-Id: I029482d5c2ab72474838750461bd46b0809c90fb
+
+2016-04-03 11:47 +0000 [9d4318f798] gtjoseph <george.joseph@fairview5.com>
+
+ * install_prereq: Fix check_installed_debs remove subversion
+
+ check_installed_debs wasn't handling virtual packages like libsrtp-dev and
+ libresample-dev and on multiarch systems it was accidentally filtering out all
+ packages if any :i386 packages were found instead of just filtering out the
+ :i386 packages themselves.
+
+ Change-Id: Ifd68da0d1ee30cc84df14de3f9b9079d7c3cecda
+
+2016-04-01 13:09 +0000 [566601837e] gtjoseph <george.joseph@fairview5.com>
+
+ * utils.c: Fix typo in handle_show_locks
+
+ ast_cli_allow_on_shutdown(e) should have been ast_cli_allow_at_shutdown(e).
+
+ Change-Id: I4f092495c0b2bfd85c2651e0b5877bf4d05d9faf
+
+2016-03-30 18:34 +0000 [964f54bd5d] gtjoseph <george.joseph@fairview5.com>
+
+ * pjproject_bundled: Fix use of LDCONFIG for shared library link creation
+
+ LDCONFIG apparently isn't set to something sane on all systems so the creation
+ of the shared library links fails. Instead of just testing for non-blank,
+ main/Makefile now checks that LDCONFIG is actually executable and reverts to
+ LN if it isn't.
+
+ This applies to both libasteriskpj and libasteriskssl.
+
+ Thanks to 'abelbeck' for pointing out that the issue was LDCONFIG.
+
+ ASTERISK-25873 #close
+ Reported-by: Hans van Eijsden
+
+ Change-Id: I25b76379bc637726ec044b2c0e709b56b3701729
+
+2016-03-30 13:31 +0000 [5f73c2ef0a] Richard Mudgett <rmudgett@digium.com>
+
+ * res_stasis.c: Protect channel datastore list from stasis end.
+
+ Change-Id: Ifadc469590bd4d5368e19d3763db3bd1f80fdb95
+
+2016-03-29 18:06 +0000 [74d63f56ee] Richard Mudgett <rmudgett@digium.com>
+
+ * res_ari: Cannot get control also means channel is unavailable.
+
+ The only caller of ari_bridges_play_found() has this note:
+
+ If ari_bridges_play_found fails because the channel is unavailable for
+ playback, The channel will be removed from the playback list soon. We can
+ keep trying to get channels from the list until we either get one that
+ will work or else there isn't a channel for this bridge anymore, in which
+ case we'll revert to ari_bridges_play_new.
+
+ Change-Id: Ib068141b367ccaa17be0dab4181c98e26c5127d6
+
+2016-03-29 14:29 +0000 [cf49b44090] Richard Mudgett <rmudgett@digium.com>
+
+ * res_stasis_recording.c: Cleanup stasis_app_recording_find_by_name().
+
+ Change-Id: Ic7d93c402c498677a122505558859c853d4e5ac7
+
+2016-03-28 14:23 +0000 [7f53f1d89e] Richard Mudgett <rmudgett@digium.com>
+
+ * core_unreal.c: Add clarification comment about channel ref.
+
+ Change-Id: I0be0627260cd8d6b6c3cc345949dcfdf32eff1f3
+
+2016-03-29 13:47 +0000 [ecf4102d02] Richard Mudgett <rmudgett@digium.com>
+
+ * res_stasis: Add control ref to playback and recording structs.
+
+ The stasis_app_playback and stasis_app_recording structs need to have a
+ struct stasis_app_control ref. Other threads can get a reference to the
+ playback and recording structs from their respective global container.
+ These other threads can then use the control pointer they contain after
+ the control struct has gone.
+
+ * Add control ref to stasis_app_playback and stasis_app_recording structs.
+
+ With the refs added, the control command queue can now have a circular
+ control reference which will cause the control struct to never get
+ released if the control's command queue is not flushed when the channel
+ leaves the Stasis application. Also the command queue needs better
+ protection from adding commands if the control->is_done flag is set.
+
+ * Flush the control command queue on exit.
+
+ ASTERISK-25882 #close
+
+ Change-Id: I3cf1fb59cbe6f50f20d9e35a2c07ac07d7f4320d
+
+2016-03-28 18:10 +0000 [a179aba65e] Richard Mudgett <rmudgett@digium.com>
+
+ * res_stasis: Fix crash on a hanging up channel.
+
+ * Give the struct stasis_app_control ao2 object a ref to the channel held
+ in the object. Now the channel will still be around if a thread needs to
+ post a stasis message instead of crash because the topic was destroyed.
+
+ * Moved stopping any lingering silence generator out of the struct
+ stasis_app_control destructor and made it a part of exiting the Stasis
+ application. Who knows which thread the destructor will be called under
+ so it cannot affect the channel's silence generator. Not only was the
+ channel unprotected when the silence generator was stopped, stasis may no
+ longer even control the channel.
+
+ ASTERISK-25882
+
+ Change-Id: I21728161b5fe638cef7976fa36a605043a7497e4
+
+2016-03-30 12:38 +0000 [16c7d8e74a] gtjoseph <george.joseph@fairview5.com>
+
+ * res_pjsip_mwi: Allow subscribe to vm access extension as an alias
+
+ Background:
+
+ If your extension is 1000 and the voicemail access extension is 1571 and you
+ dial 1571, usually a dialplan rule calls voicemailmain with your extension and
+ you are placed directly in your mailbox. Therefore most admins program the
+ voicemail (or other speed dial) button on their phones to the access extension.
+ Some phones (Snom at least) use whatever is programmed there to also subscribe
+ for MWI and so can't dial one number and subscribe to another. This works fine
+ in chan_sip because chan_sip completely ignores the user portion of the
+ SUBSCRIBE message request URI. If it can match the peer, is subscribes to the
+ peer's mailbox. The user could be set to anything or nothing and you'd still
+ get subscribed to your mailbox.
+
+ Issue:
+
+ chan_pjsip actually uses the user portion of the URI to find an aor and its
+ mailboxes. Therefore a subscribe to 1571 results in a 404. Sure, you can
+ create an aor for 1571 but you certainly can't add your entire voicemail
+ system's mailboxes to it and everyone would get notified of every MWI.
+
+ Solution:
+
+ When an MWI subscribe comes in and an aor can't be found that matches the
+ resource directly, check the resource against the endpoint's aors. If an aor
+ is found that has a voicemail_extension that matches the resource, use it.
+
+ ASTERISK-25865
+ Reported-by: Ross Beer
+
+ Change-Id: I770ea185f751f1ada888fafb4b452115f1c06e9e
+
+2016-03-24 22:55 +0000 [d8f0bc3572] gtjoseph <george.joseph@fairview5.com>
+
+ * res_pjsip_mwi: Add voicemail extension and mwi_subscribe_replaces_unsolicited
+
+ res_pjsip_mwi was missing the chan_sip "vmexten" functionality which adds
+ the Message-Account header to the MWI NOTIFY. Also, specifying mailboxes
+ on endpoints for unsolicited mwi and on aors for subscriptions required
+ that the admin know in advance which the client wanted. If you specified
+ mailboxes on the endpoint, subscriptions were rejected even if you also
+ specified mailboxes on the aor.
+
+ Voicemail extension:
+ * Added a global default_voicemail_extension which defaults to "".
+ * Added voicemail_extension to both endpoint and aor.
+ * Added ast_sip_subscription_get_dialog for support.
+ * Added ast_sip_subscription_get_sip_uri for support.
+
+ When an unsolicited NOTIFY is constructed, the From header is parsed, the
+ voicemail extension from the endpoint is substituted for the user, and the
+ result placed in the Message-Account field in the body.
+
+ When a subscribed NOTIFY is constructed, the subscription dialog local uri
+ is parsed, the voicemail_extension from the aor (looked up from the
+ subscription resource name) is substituted for the user, and the result
+ placed in the Message-Account field in the body.
+
+ If no voicemail extension was defined, the Message-Account field is not added
+ to the NOTIFY body.
+
+ mwi_subscribe_replaces_unsolicited:
+ * Added mwi_subscribe_replaces_unsolicited to endpoint.
+
+ The previous behavior was to reject a subscribe if a previous internal
+ subscription for unsolicited MWI was found for the mailbox. That remains the
+ default. However, if there are mailboxes also set on the aor and the client
+ subscribes and mwi_subscribe_replaces_unsolicited is set, the existing internal
+ subscription is removed and replaced with the external subscription. This
+ allows an admin to configure mailboxes on both the endpoint and aor and allows
+ the client to select which to use.
+
+ ASTERISK-25865 #close
+ Reported-by: Ross Beer
+
+ Change-Id: Ic15a9415091760539c7134a5ba3dc4a6a1217cea
+
+2016-03-30 09:46 +0000 [8dc8d6ceb8] gtjoseph <george.joseph@fairview5.com>
+
+ * res_rtp_asterisk: Fix placement of txcount increment
+
+ Commit 1bce690ccb36a4744a327c07af23a9a3a0fa20cd was incrementing txcount
+ for rtcp packets as well as rtp packets and that was causing sender reports
+ to be generated instead of receiver reports in cases where no rtp was actually
+ being sent.
+
+ Moved the txcount increment from __rtp_sento, which handles both rtp and rtcp,
+ to rtp_sento which only handles rtp packets.
+
+ Discovered by the hep/rtcp-receiver test.
+
+ Change-Id: Ie442e4bb947a68847a676497021ba10ffaf376d5
+
+2016-03-26 22:33 +0000 [c7eb18d865] gtjoseph <george.joseph@fairview5.com>
+
+ * chan_pjsip: Add 'pjsip show channelstats'
+
+ Added the ability to show channel statistics to chan_pjsip (cli_functions.c)
+
+ Moved the existing 'pjsip show channel(s)' functionality from
+ pjsip_configuration to cli_functions.c. The stats needed chan_pjsip's
+ private header so it made sense to move the existing channel commands as well.
+
+ Now using stasis_cache_dump to get the channel snapshots rather than retrieving
+ all endpoints, then getting each one's channel snapshots. Much more efficient.
+
+ Change-Id: I03b114522126d27434030b285bf6d531ddd79869
+
+2016-03-10 19:52 +0000 [1583559a06] gtjoseph <george.joseph@fairview5.com>
+
+ * res_pjsip/pjsip_options: Fix From generation on outgoing OPTIONS
+
+ No one seemed to notice but every time an OPTIONS goes out, it goes
+ out with a From of "asterisk" (or whatever the default from_user is set to),
+ even if you specify an endpoint.
+
+ The issue had several causes...
+ qualify_contact is only called with an endpoint if called from the CLI.
+ If the endpoint is NULL, qualify_contact only looks up the endpoint if
+ authenticate_qualify=yes. Even then, it never passes it on to
+ ast_sip_create_request where the From header is set. Therefore From
+ is always "asterisk" (or whatever the default from_user is set to).
+ Even if ast_sip_create_request were to get an endpoint, it only sets
+ the From if endpoint->from_user is set.
+
+ The fix is 4 parts...
+
+ First, create_out_of_dialog_request was modified to use the endpoint id
+ if endpoint was specified and from_user is not set.
+
+ Second, qualify_contact was modified to always look up an endpoint if
+ one wasn't specified regardless of authenticate_qualify. It then passes
+ the endpoint on to create_out_of_dialog_request.
+
+ Third (and most importantly), find_an_endpoint was modified to find
+ an endpoint by using an "aors LIKE %contact->aor%" predicate with
+ ast_sorcery_retrieve_by_fields. As such, this patch will only work
+ if the sorcery realtime optimizations patch goes in. Otherwise we'd
+ be pulling the entire endpoints database every time we send an OPTIONS.
+ Since we already know the contact's aor, the on_endpoint callback was also
+ modified to just check if the contact->aor is an exact match to one of
+ the endpoint's.
+
+ Finally, since we now have an endpoint for every OPTIONS request,
+ res_pjsip/endpt_send_request (which handles out-of-dialog reqests) was
+ updated to get the transport from the endpoint and set it on tdata.
+ Now the correct transport is used.
+
+ Change-Id: I2207e12bb435e373bd1e03ad091d82e5aba011af
+2016-03-25 10:59 +0000 [0cfab30b28] Jacek Konieczny <jkonieczny@eggsoft.pl>
+
+ * res_rtp_asterisk: Use separate SRTP session for RTCP with DTLS
+
+ Asterisk uses separate UDP ports for RTP and RTCP traffic and RFC 5764
+ explicitly states:
+
+ There MUST be a separate DTLS-SRTP session for each distinct pair of
+ source and destination ports used by a media session
+
+ This means RTP keying material cannot be used for DTLS RTCP, which was
+ the reason why RTCP encryption would fail.
+
+ ASTERISK-25642
+
+ Change-Id: I7e8779d8b63e371088081bb113131361b2847e3a
+
+2016-03-25 10:42 +0000 [6a9c18fb59] Jacek Konieczny <jkonieczny@eggsoft.pl>
+
+ * app_echo: forward and generate VIDUPDATE frames
+
+ When using app_echo via WebRTC with VP8 video the video would appear
+ only after a few minutes, because there would be nothing to request
+ a full reference frame.
+
+ This fixes the problem in both ways:
+ - echos any VIDUPDATE frames received on the channel
+ - sends one such frame when first video frame is to be forwarded
+
+ This makes the echo work with Firefox and Chrome WebRTC implementation.
+
+ ASTERISK-25867 #close
+
+ Change-Id: I73bda87bf7532ee8bfb28d917045a21034908c1e
+
+2016-03-27 12:53 +0000 [1bce690ccb] gtjoseph <george.joseph@fairview5.com>
+
+ * res_rtp_asterisk: Fix packet stats on bridged connection
+
+ rxcount, txcount, rxoctetcount and txoctetcount weren't being calculated
+ for bridged streams because the calulations were being done after the
+ bridged short-circuit. Actually, rxoctetcount wasn't ever being calculated.
+
+ Moved the calculations so they occur for all valid received packets and
+ all transmitted packets. Also added rxoctetcount and txoctetcount to
+ ast_rtp_instance_stat.
+
+ Change-Id: I08fb06011a82d38c3b4068867a615068fbe59cbb
+
+2016-03-25 23:19 +0000 [50f90d4099] Philip Correia
+
+ * res_parking: Fix blind transfer dynamic lots creation.
+
+ Blind transfers to a recognized parking extension need to use the parker's
+ channel variable values to create the dynamic parking lot. This is
+ because there is always only one parker while the parkee may actually be a
+ multi-party bridge. A multi-party bridge can never supply the needed
+ channel variables to create the dynamic parking lot. In the multi-party
+ bridge blind transfer scenario, the parker's CHANNEL(parkinglot) value and
+ channel variables are inherited by the local channel used to park the
+ bridge.
+
+ * In park_common_setup(), make use the parker instead of the parkee to
+ supply the dynamic parking lot channel variable values. In all but one
+ case, the parkee is the same as the parker. However, in the recognized
+ parking extension blind transfer scenario for a two party bridge they are
+ different channels. For consistency, we need to use the parker channel.
+
+ * In park_local_transfer(), pass the CHANNEL(parkinglot) value to the
+ local channel when blind transferring a multi-party bridge to a recognized
+ parking extension.
+
+ * When a local channel starts a call, the Local;2 side needs to inherit
+ the CHANNEL(parkinglot) value from Local;1.
+
+ The DTMF one-touch parking case wasn't even trying to create dynamic
+ parking lots before it aborted the attempt.
+
+ * In parking_park_call(), add missing code to create a dynamic parking
+ lot.
+
+ A DTMF bridge hook is documented as returning -1 to remove the hook.
+ Though the hook caller is really coded to accept non-zero. See the
+ ast_bridge_hook_callback typedef.
+
+ * In feature_park_call(), don't remove the DTMF one-touch parking hook
+ because of an error.
+
+ ASTERISK-24605 #close
+ Reported by: Philip Correia
+ Patches:
+ call_park.patch (license #6672) patch uploaded by Philip Correia
+
+ Change-Id: I221d3a8fcc181877a1158d17004474d35d8016c9
+
+2016-03-08 15:55 +0000 [5aa5c49413] gtjoseph <george.joseph@fairview5.com>
+
+ * sorcery/res_pjsip: Refactor for realtime performance
+
+ There were a number of places in the res_pjsip stack that were getting
+ all endpoints or all aors, and then filtering them locally.
+
+ A good example is pjsip_options which, on startup, retrieves all
+ endpoints, then the aors for those endpoints, then tests the aors to see
+ if the qualify_frequency is > 0. One issue was that it never did
+ anything with the endpoints other than retrieve the aors so we probably
+ could have skipped a step and just retrieved all aors. But nevermind.
+
+ This worked reasonably well with local config files but with a realtime
+ backend and thousands of objects, this was a nightmare. The issue
+ really boiled down to the fact that while realtime supports predicates
+ that are passed to the database engine, the non-realtime sorcery
+ backends didn't.
+
+ They do now.
+
+ The realtime engines have a scheme for doing simple comparisons. They
+ take in an ast_variable (or list) for matching, and the name of each
+ variable can contain an operator. For instance, a name of
+ "qualify_frequency >" and a value of "0" would create a SQL predicate
+ that looks like "where qualify_frequency > '0'". If there's no operator
+ after the name, the engines add an '=' so a simple name of
+ "qualify_frequency" and a value of "10" would return exact matches.
+
+ The non-realtime backends decide whether to include an object in a
+ result set by calling ast_sorcery_changeset_create on every object in
+ the internal container. However, ast_sorcery_changeset_create only does
+ exact string matches though so a name of "qualify_frequency >" and a
+ value of "0" returns nothing because the literal "qualify_frequency >"
+ doesn't match any name in the objset set.
+
+ So, the real task was to create a generic string matcher that can take a
+ left value, operator and a right value and perform the match. To that
+ end, strings.c has a new ast_strings_match(left, operator, right)
+ function. Left and right are the strings to operate on and the operator
+ can be a string containing any of the following: = (or NULL or ""), !=,
+ >, >=, <, <=, like or regex. If the operator is like or regex, the
+ right string should be a %-pattern or a regex expression. If both left
+ and right can be converted to float, then a numeric comparison is
+ performed, otherwise a string comparison is performed.
+
+ To use this new function on ast_variables, 2 new functions were added to
+ config.c. One that compares 2 ast_variables, and one that compares 2
+ ast_variable lists. The former is useful when you want to compare 2
+ ast_variables that happen to be in a list but don't want to traverse the
+ list. The latter will traverse the right list and return true if all
+ the variables in it match the left list.
+
+ Now, the backends' fields_cmp functions call ast_variable_lists_match
+ instead of ast_sorcery_changeset_create and they can now process the
+ same syntax as the realtime engines. The realtime backend just passes
+ the variable list unaltered to the engine. The only gotcha is that
+ there's no common realtime engine support for regex so that's been noted
+ in the api docs for ast_sorcery_retrieve_by_fields.
+
+ Only one more change to sorcery was done... A new config flag
+ "allow_unqualified_fetch" was added to reg_sorcery_realtime.
+ "no": ignore fetches if no predicate fields were supplied.
+ "error": same as no but emit an error. (good for testing)
+ "yes": allow (the default);
+ "warn": allow but emit a warning. (good for testing)
+
+ Now on to res_pjsip...
+
+ pjsip_options was modified to retrieve aors with qualify_frequency > 0
+ rather than all endpoints then all aors. Not only was this a big
+ improvement in realtime retrieval but even for config files there's an
+ improvement because we're not going through endpoints anymore.
+
+ res_pjsip_mwi was modified to retieve only endpoints with something in
+ the mailboxes field instead of all endpoints then testing mailboxes.
+
+ res_pjsip_registrar_expire was completely refactored. It was retrieving
+ all contacts then setting up scheduler entries to check for expiration.
+ Now, it's a single thread (like keepalive) that periodically retrieves
+ only contacts whose expiration time is < now and deletes them. A new
+ contact_expiration_check_interval was added to global with a default of
+ 30 seconds.
+
+ Ross Beer reports that with this patch, his Asterisk startup time dropped
+ from around an hour to under 30 seconds.
+
+ There are still objects that can't be filtered at the database like
+ identifies, transports, and registrations. These are not going to be
+ anywhere near as numerous as endpoints, aors, auths, contacts however.
+
+ Back to allow_unqualified_fetch. If this is set to yes and you have a
+ very large number of objects in the database, the pjsip CLI commands
+ will attempt to retrive ALL of them if not qualified with a LIKE.
+ Worse, if you type "pjsip show endpoint <tab>" guess what's going to
+ happen? :) Having a cache helps but all the objects will have to be
+ retrieved at least once to fill the cache. Setting
+ allow_unqualified_fetch=no prevents the mass retrieve and should be used
+ on endpoints, auths, aors, and contacts. It should NOT be used for
+ identifies, registrations and transports since these MUST be
+ retrieved in bulk.
+
+ Example sorcery.conf:
+
+ [res_pjsip]
+ endpoint=config,pjsip.conf,criteria=type=endpoint
+ endpoint=realtime,ps_endpoints,allow_unqualified_fetch=error
+
+ ASTERISK-25826 #close
+ Reported-by: Ross Beer
+ Tested-by: Ross Beer
+
+ Change-Id: Id2691e447db90892890036e663aaf907b2dc1c67
+
+2016-03-23 14:24 +0000 [05fc3a96d1] Richard Mudgett <rmudgett@digium.com>
+
+ * res_parking: Cleanup find_channel_parking_lot_name() usage.
+
+ Change-Id: I8f7a8890aef27824301c642d4d15407ac83e6f02
+
+2016-03-18 14:01 +0000 [a4189763ab] Richard Mudgett <rmudgett@digium.com>
+
+ * res_parking: Misc fixes.
+
+ res/parking/parking_applications.c:
+
+ * Add malloc fail checks in setup_park_common_datastore().
+
+ * Fix playing parking failed announcement to only happen on non-blind
+ transfers in park_app_exec(). It could never go out before because a test
+ was provedly always false.
+
+ res/parking/parking_bridge.c:
+
+ * Fix NULL tolerance in generate_parked_user() because
+ bridge_parking_push() can theoretically pass a NULL parker channel if the
+ parker channel went away for some reason.
+
+ * Clarify some weird code dealing with blind_transfer in
+ bridge_parking_push().
+
+ res/parking/parking_bridge_features.c:
+
+ * Made park_local_transfer() set BLINDTRANSFER on the Local;1 channel
+ which will be bulk copied to the Local;2 channel on the subsequent
+ ast_call(). The additional advantage is if the parker channel has the
+ BLINDTRANSFER and ATTENDEDTRANSFER variables set they are now guaranteed
+ to be overridden.
+
+ res/parking/parking_manager.c:
+
+ * Fix AMI Park action input range checking of the Timeout header in
+ manager_park().
+
+ * Reduced locking scope to where needed in manager_park().
+
+ res/res_parking.c:
+
+ * Fix some off nominal missing unlocks by eliminating the returns.
+
+ Change-Id: Ib64945bc285acb05a306dc12e6f16854898915ca
+
+2014-12-15 05:23 +0000 [6f95b5eda1] Philip Correia
+
+ * res_parking: Update parking documentation for dynamic parking lots.
+
+ * Remove duplicate res_parking.conf courtesytone config option
+ documentation.
+
+ ASTERISK-24596 #close
+ Reported by: Philip Correia
+
+ ASTERISK-24605
+ Reported by: Philip Correia
+ Patches:
+ call_park_app_doc.patch (license #6672) patch uploaded by Philip Correia
+
+ Change-Id: I90a92a891c6494dc08173e675856afcc4764c5b5
+
+2016-03-24 14:08 +0000 [81ce60f6d4] Alexander Traud <pabstraud@compuserve.com>
+
+ * chan_sip: Do not send all codecs on INVITE. Do not break on Session-Timers.
+
+ Asterisk 13.7.0 included a fix for ASTERISK-24543, not to send all those
+ codecs, which the caller did not request/support. That fix was not complete
+ because on the second Session Timer all codecs were sent again. Some VoIP/SIP
+ clients interpreted that complete codec-list as a change in the SIP session.
+ Because of that, Asterisk did not send the RTP audio via NAT anymore which
+ created a non-audio scenario after the second Session Timer fired.
+
+ ASTERISK-24543 #close
+
+ Change-Id: I1881827816ab7fd47eb4287a95961179b34a0b66
+
+2016-03-19 07:34 +0000 [c6e4c48e67] Gianluca Merlo <gianluca.merlo@gmail.com>
+
+ * config: fix flags in uint option handler
+
+ The configuration unsigned integer option handler sets flags for the
+ parser as if the option should be a signed integer (PARSE_INT32),
+ leading to errors on "out of range" values. Fix flags (PARSE_UINT32).
+
+ A fix to res_pjsip is also present which stops invalid flags from
+ being passed when registering sorcery object fields for qualify
+ status.
+
+ ASTERISK-25612 #close
+
+ Change-Id: I96b539336275e0e72a8e8033487d2c3344debd3e
+
+2016-03-10 16:58 +0000 [59c8e189fd] Mark Michelson <mmichelson@digium.com>
+
+ * Restrict CLI/AMI commands on shutdown.
+
+ During stress testing, we have frequently seen crashes occur because a
+ CLI or AMI command attempts to access information that is in the process
+ of being destroyed.
+
+ When addressing how to fix this issue, we initially considered fixing
+ individual crashes we observed. However, the changes required to fix
+ those problems would introduce considerable overhead to the nominal
+ case. This is not reasonable in order to prevent a crash from occurring
+ while Asterisk is already shutting down.
+
+ Instead, this change makes it so AMI and CLI commands cannot be executed
+ if Asterisk is being shut down. For AMI, this is absolute. For CLI,
+ though, certain commands can be registered so that they may be run
+ during Asterisk shutdown.
+
+ ASTERISK-25825 #close
+
+ Change-Id: I8887e215ac352fadf7f4c1e082da9089b1421990
+2016-03-24 07:45 +0000 [ff3eebf454] Walter Doekes <walter+asterisk@wjd.nu>
+
+ * musiconhold: Only warn if music class is not found in memory and database.
+
+ The log message when a MusicOnHold music class was not found was changed
+ from debug level to WARNING level in Asterisk 11.19 and 13.5. For those
+ using realtime musiconhold, this message is wrong because it warns
+ before checking the database.
+
+ This changeset delays the warning until after the database has been
+ checked.
+
+ Reported-by: Conrad de Wet
+ ASTERISK-25444 #close
+
+ Change-Id: I6cfb2db2f9cfbd2bb3d30566ecae361c4abf6dbf
+
+2016-03-24 05:38 +0000 [82e55e4883] Walter Doekes <walter+asterisk@wjd.nu>
+
+ * core/logging: Fix broken syslog levels on older glibc.
+
+ The fix to ASTERISK-25407 introduced the usage of LOG_MAKEPRI. However
+ this macro is broken in older glibc (< 2.17); it would left-shift the
+ facility a second time, causing the resultant priority to become
+ invalid.
+
+ The syslog manpage mentions nothing about LOG_MAKEPRI and suggests this:
+
+ The priority argument is formed by ORing the facility and the level
+ values [...].
+
+ ASTERISK-25510 #close
+ Reported by: Michael Newton
+
+ Change-Id: Ia89debe7fac5ad090c7ef595c0707f31bb1e3d03
+
+2016-03-23 08:59 +0000 [d963a33749] gtjoseph <george.joseph@fairview5.com>
+
+ * pjproject-bundled: Cleanups for reported issues
+
+ PortAudio should no longer be required
+ PJSIP_MAX_PKT_LEN is now 6000
+ Older autoconf issue fixed. (CentOS 6)
+
+ Change-Id: I463fa9586cbe7c6b3b603289f535bd8e361611dd
+
+2015-11-20 08:02 +0000 [c5170677e7] Francesco Castellano <francesco.castellano@messagenet.it>
+
+ * chan_sip.c: Space after port causes unnecessary resolution attempt
+
+ check_via() already skips leading blanks where the sent-by address (with the
+ optional port) should be placed.
+
+ Since RFC 3261 allows for blanks between the port ant the Via parameters:
+ > https://tools.ietf.org/html/rfc3261#section-20.42
+ (actually it allows a lot of blanks more ;-)). I just switched from
+ ast_skip_blanks() to ast_strip() on the local copy of the string.
+
+ ASTERISK-21301 #close
+
+ Change-Id: Ie5b8fe5a07067b7c0dc9bcdd1707e99b23b02b06
+
+2016-03-19 17:49 +0000 [51deadee38] gtjoseph <george.joseph@fairview5.com>
+
+ * progdocs: Exclude ./third-party from documentation generation
+
+ We don't need pjproject's documentation embedded in Asterisk's.
+
+ Change-Id: Iea6f5a621c0f4e3168dda3321eaab258d9f24a17
+
+2016-03-18 20:32 +0000 [aa2fcd244e] Gianluca Merlo <gianluca.merlo@gmail.com>
+
+ * func_aes: fix misuse of strlen on binary data
+
+ The encryption code for AES_ENCRYPT evaluates the length of the data to
+ be encoded in base64 using strlen. The data is binary, thus the length
+ of it can be underestimated at the first NULL character.
+ Reuse the write pointer offset to evaluate it, instead.
+
+ ASTERISK-25857 #close
+
+ Change-Id: If686b5d570473eb926693c73461177b35b13b186
+
+2016-04-20 10:46 +0000 Asterisk Development Team <asteriskteam@digium.com>
+
+ * asterisk 13.8.2 Released.
+
+2016-04-20 05:45 +0000 [26d67ce885] Joshua Colp <jcolp@digium.com>
+
+ * Release summaries: Remove previous versions
+
+2016-04-20 05:45 +0000 [d9909232ed] Joshua Colp <jcolp@digium.com>
+
+ * .version: Update for 13.8.2
+
+2016-04-20 05:45 +0000 [fc57bb9b15] Joshua Colp <jcolp@digium.com>
+
+ * .lastclean: Update for 13.8.2
+
+2016-04-20 05:45 +0000 [ac04474f38] Joshua Colp <jcolp@digium.com>
+
+ * realtime: Add database scripts for 13.8.2
+
+2016-04-18 17:00 +0000 [91a3e1184f] Mark Michelson <mmichelson@digium.com>
+
+ * res_pjsip_registrar: Fix bad memory-ness with user_agent.
+
+ Recent changes to the PJSIP registrar resulted in tests failing due to
+ missing AOR_CONTACT_ADDED test events. The reason for this was that the
+ user_agent string had junk values in it, resulting in being unable to
+ generate the event.
+
+ I'm going to be honest here, I have no idea why this was happening. Here
+ are the steps needed for the user_agent variable to get messed up:
+ * REGISTER is received
+ * First contact in the REGISTER results in a contact being removed
+ * Second contact in the REGISTER results in a contact being added
+ * The contact, AOR, expiration, and user agent all have to be passed as
+ format parameters to the creation of a string. Any subset of those
+ parameters would not be enough to cause the problem.
+
+ Looking into what was happening, the thing that struck me as odd was
+ that the user_agent variable was meant to be set to the value of the
+ User-Agent SIP header in the incoming REGISTER. However, when removing a
+ contact, the user_agent variable would be set (via ast_strdupa inside a
+ loop) to the stored contact's user_agent. This means that the
+ user_agent's value would be incorrect when attempting to process further
+ contacts in the incoming REGISTER.
+
+ The fix here is to use a different variable for the stored user agent
+ when removing a contact. Correcting the behavior to be correct also
+ means the memory usage is less weird, and the issue no longer occurs.
+
+ ASTERISK-25929 #close
+ Reported by Joshua Colp
+
+ Change-Id: I7cd24c86a38dec69ebcc94150614bc25f46b8c08
+ (cherry picked from commit f436b9ab111f1ff57c6dd3970051f123b42c1103)
+
+2016-04-18 13:41 +0000 [70e25ced60] Joshua Colp <jcolp@digium.com>
+
+ * res_pjsip_transport_management: Allow unload to occur.
+
+ At shutdown it is possible for modules to be unloaded that wouldn't
+ normally be unloaded. This allows the environment to be cleaned up.
+
+ The res_pjsip_transport_management module did not have the unload
+ logic in it to clean itself up causing the res_pjsip module to not
+ get unloaded. As a result the res_pjsip monitor thread kept going
+ processing traffic and timers when it shouldn't.
+
+ Change-Id: Ic8cadee131e3b2c436a81d3ae8bb5775999ae00a
+ (cherry picked from commit 49bfdc9ac029e0ef17cd8e85d8d7b7731387a34e)
+
+2016-04-18 12:12 +0000 [856931edc2] Mark Michelson <mmichelson@digium.com>
+
+ * PJSIP: Remove PJSIP parsing functions from uri length validation.
+
+ The PJSIP parsing functions provide a nice concise way to check the
+ length of a hostname in a SIP URI. The problem is that in order to use
+ those parsing functions, it's required to use them from a thread that
+ has registered with PJLib.
+
+ On startup, when parsing AOR configuration, the permanent URI handler
+ may not be run from a PJLib-registered thread. Specifically, this could
+ happen when Asterisk was started in daemon mode rather than
+ console-mode. If PJProject were compiled with assertions enabled, then
+ this would cause Asterisk to crash on startup.
+
+ The solution presented here is to do our own parsing of the contact URI
+ in order to ensure that the hostname in the URI is not too long. The
+ parsing does not attempt to perform a full SIP URI parse/validation,
+ since the hostname in the URI is what is important.
+
+ ASTERISK-25928 #close
+ Reported by Joshua Colp
+
+ Change-Id: Ic3d6c20ff3502507c17244a8b7e2ca761dc7fb60
+ (cherry picked from commit efae187217750e322cd6167705a33f888b631427)
+
+2016-04-14 20:26 +0000 Asterisk Development Team <asteriskteam@digium.com>
+
+ * asterisk 13.8.1 Released.
+
+2016-04-14 15:26 +0000 [18e6f12e83] Kevin Harwell <kharwell@digium.com>
+
+ * Release summaries: Remove previous versions
+
+2016-04-14 15:26 +0000 [625c07711a] Kevin Harwell <kharwell@digium.com>
+
+ * .version: Update for 13.8.1
+
+2016-04-14 15:26 +0000 [584f1fb3c7] Kevin Harwell <kharwell@digium.com>
+
+ * .lastclean: Update for 13.8.1
+
+2016-04-14 15:26 +0000 [1e37a63379] Kevin Harwell <kharwell@digium.com>
+
+ * realtime: Add database scripts for 13.8.1
+
+2016-04-14 13:49 +0000 [dcf1b3c098] Mark Michelson <mmichelson@digium.com>
+
+ * transport management: Register thread with PJProject.
+
+ The scheduler thread that kills idle TCP connections was not registering
+ with PJProject properly and causing assertions if PJProject was built in
+ debug mode.
+
+ This change registers the thread with PJProject the first time that the
+ scheduler callback executes.
+
+ AST-2016-005
+
+ Change-Id: I5f7a37e2c80726a99afe9dc2a4a69bdedf661283
+
+2016-03-08 12:12 +0000 [efafbb1319] Mark Michelson <mmichelson@digium.com>
+
+ * res_pjsip_transport_management: Kill idle TCP connections.
+
+ "Idle" here means that someone connects to us and does not send a SIP
+ request. PJProject will not automatically time out such connections, so
+ it's up to Asterisk to do it instead.
+
+ When we receive an incoming TCP connection, we will start a timer
+ (equivalent to transaction timer D) waiting to receive an incoming
+ request. If we do not receive a request in that timeframe, then we will
+ shut down the TCP connection.
+
+ ASTERISK-25796 #close
+ Reported by George Joseph
+
+ AST-2016-005
+
+ Change-Id: I7b0d303e5d140d0ccaf2f7af562071e3d1130ac6
+
+2016-03-08 10:52 +0000 [159f639770] Mark Michelson <mmichelson@digium.com>
+
+ * Rename res_pjsip_keepalive res_pjsip_transport_management
+
+ ASTERISK-25796
+ Reported by George Joseph
+
+ AST-2016-005
+
+ Change-Id: Id322a05f927392293570599730050bc677d99433
+
+2016-04-14 07:15 +0000 [c164ff004d] Mark Michelson <mmichelson@digium.com>
+
+ * AST-2016-004: Fix crash on REGISTER with long URI.
+
+ Due to some ignored return values, Asterisk could crash if processing an
+ incoming REGISTER whose contact URI was above a certain length.
+
+ ASTERISK-25707 #close
+ Reported by George Joseph
+
+ Patches:
+ 0001-res_pjsip-Validate-that-URIs-don-t-exceed-pjproject-.patch
+
+ AST-2016-004
+
+ Change-Id: I0ed3898fe7ab10121b76c8c79046692de3a1be55
+
+2016-03-29 19:39 +0000 Asterisk Development Team <asteriskteam@digium.com>
+
+ * asterisk 13.8.0 Released.
+
+2016-03-29 14:39 +0000 [0f885f0076] Mark Michelson <mmichelson@digium.com>
+
+ * Release summaries: Add summaries for 13.8.0
+
+2016-03-29 14:34 +0000 [a1fa37aebd] Mark Michelson <mmichelson@digium.com>
+
+ * Release summaries: Remove previous versions
+
+2016-03-29 14:34 +0000 [e7de5fd439] Mark Michelson <mmichelson@digium.com>
+
+ * .version: Update for 13.8.0
+
+2016-03-29 14:34 +0000 [8baf813848] Mark Michelson <mmichelson@digium.com>
+
+ * .lastclean: Update for 13.8.0
+
+2016-03-29 14:34 +0000 [42469df205] Mark Michelson <mmichelson@digium.com>
+
+ * realtime: Add database scripts for 13.8.0
+
+2016-03-22 18:31 +0000 Asterisk Development Team <asteriskteam@digium.com>
+
+ * asterisk 13.8.0-rc1 Released.
+
+2016-03-22 13:26 +0000 [a698424678] Mark Michelson <mmichelson@lunkwill>
+
+ * Release summaries: Add summaries for 13.8.0-rc1
+
+2016-03-22 13:21 +0000 [e395a0b973] Mark Michelson <mmichelson@lunkwill>
+
+ * .version: Update for 13.8.0-rc1
+
+2016-03-22 13:21 +0000 [38a86b2dbf] Mark Michelson <mmichelson@lunkwill>
+
+ * .lastclean: Update for 13.8.0-rc1
+
+2016-03-22 13:21 +0000 [e0c8c8bf4a] Mark Michelson <mmichelson@lunkwill>
+
+ * realtime: Add database scripts for 13.8.0-rc1
+
+2016-03-18 14:31 +0000 [6a40520fe9] Kevin Harwell <kharwell@digium.com>
+
+ * chan_pjsip: ref leak when checking direct_media_glare
+
+ Fix the reference leak introduced in the following commit:
+
+ 9444ddadf8525d1ce66a1faf1db97f9f6c265ca4
+
+ ASTERISK-25849
+
+ Change-Id: I5cfefd5ee6c1c3a1715c050330aaa10e4d2a5e85
+2016-03-16 12:37 +0000 [9444ddadf8] Kevin Harwell <kharwell@digium.com>
+
+ * chan_pjsip: transfers with direct media reinvite has wrong address/port
+
+ During a transfer involving direct media a race occurs between when the
+ transferer channel is swapped out, initiating rtp changes/updates, and the
+ subsequent reinvites.
+
+ When Alice, after speaking with Charlie (Bob is on hold), connects Bob and
+ Charlie invites are sent to each in order to establish the call between them.
+ Bob is taken off hold and Charlie is told to have his media flow through
+ Asterisk. However, if before those invites go out the bridge updates Bob's
+ and/or Charlie's rtp information with direct media data (i.e. address, port)
+ then the invite(s) will contain the remote data in the SDP instead of the
+ Asterisk data.
+
+ The race occurs in the native bridge glue code when updating the peer. The
+ direct_media_address can get set twice before sending out the first invite
+ during call connection. This can happen because the checking/setting of the
+ direct_media_address happened in one thread while the sending of the invite(s)
+ happened in another thread.
+
+ This fix removes the race condition by moving the checking/setting of the
+ direct_media_address to be in the same thread as the sending of the invites(s).
+ This serializes the checking/setting and sending so they can no longer happen
+ out of order.
+
+ ASTERISK-25849 #close
+
+ Change-Id: Idfea590175e74f401929a601dba0c91ca1a7f873
+
+2015-10-19 07:11 +0000 [88240f98d9] Rodrigo Ramírez Norambuena <a@rodrigoramirez.com>
+
+ * install_prereq: Update repositories before install on Debian systems
+
+ When to install packages the indexed local is more old of the
+ version of software on the repository they have been upgraded by security
+ update then get the package will give 404 not found.
+
+ The patch prevent by update local index to repository for aptitude before
+ install.
+
+ ASTERISK-25495 #close
+
+ Reporte by: Rodrigo Ramírez Norambuena
+
+ Change-Id: I645959e553aac542805ced394cac2dca964051fa
+ (cherry picked from commit 88f3dbaec9509bfba8bc1de7799aa0dc65304bb5)
+
+2015-06-03 20:12 +0000 [efcf9a96db] Rodrigo Ramírez Norambuena <decipher.hk@gmail.com>
+
+ * install_prereq: Check if is installed aptitude otherwise to install.
+
+ If in Debian or system based, dont have aptitude installed the script do
+ nothing. This patch checked if aptitude installed, if not installed.
+
+ Also, if execute script with all packages installed yet, the script not show
+ nothing and return exit 1 because the command 'grep' get nothing from pipe from
+ 'awk'.
+
+ ASTERISK-25113 #close
+ Reported By: Rodrigo Ramírez Norambuena <decipher.hk@gmail.com>
+
+ Change-Id: Iebdff55805d3917166e5e08e0a1e2176f36ff27f
+ (cherry picked from commit 6737ded0581a9e1256bdfe30c1d747e7ca93f8b3)
+
+2016-03-03 04:43 +0000 [2b1b8e382a] Sergio Medina Toledo <lumasepa@gmail.com>
+
+ * res_pjsip_refer.c: Fix seg fault in process of Refer-to header.
+
+ The "Refer-to" header of an incoming REFER request is parsed by
+ pjsip_parse_uri(). That function requires the URI parameter to be NULL
+ terminated. Unfortunately, the previous code added the NULL terminator by
+ overwriting memory that may not be safe. The overwritten memory results
+ could be benign, memory corruption, or a segmentation fault. Now the URI
+ is NULL terminated safely by copying the URI to a new chunk of memory with
+ the correct size to be NULL terminated.
+
+ ASTERISK-25814 #close
+
+ Change-Id: I32565496684a5a49c3278fce06474b8c94b37342
+
+2016-03-11 12:22 +0000 [de04308ae4] Richard Mudgett <rmudgett@digium.com>
+
+ * chan_sip.c: Fix mwi resub deadlock potential.
+
+ This patch is part of a series to resolve deadlocks in chan_sip.c.
+
+ Stopping a scheduled event can result in a deadlock if the scheduled event
+ is running when you try to stop the event. If you hold a lock needed by
+ the scheduled event while trying to stop the scheduled event then a
+ deadlock can happen. The general strategy for resolving the deadlock
+ potential is to push the actual starting and stopping of the scheduled
+ events off onto the scheduler/do_monitor() thread by scheduling an
+ immediate one shot scheduled event. Some restructuring may be needed
+ because the code may assume that the start/stop of the scheduled events is
+ immediate.
+
+ ASTERISK-25023 #close
+
+ Change-Id: I96d429c57a48861fd8bde63dd93db4e92dc3adb6
+
+2016-03-10 17:01 +0000 [5f6627a8a4] Richard Mudgett <rmudgett@digium.com>
+
+ * chan_sip.c: Fix registration timeout and expire deadlock potential.
+
+ This patch is part of a series to resolve deadlocks in chan_sip.c.
+
+ Stopping a scheduled event can result in a deadlock if the scheduled event
+ is running when you try to stop the event. If you hold a lock needed by
+ the scheduled event while trying to stop the scheduled event then a
+ deadlock can happen. The general strategy for resolving the deadlock
+ potential is to push the actual starting and stopping of the scheduled
+ events off onto the scheduler/do_monitor() thread by scheduling an
+ immediate one shot scheduled event. Some restructuring may be needed
+ because the code may assume that the start/stop of the scheduled events is
+ immediate.
+
+ ASTERISK-25023
+
+ Change-Id: I2e40de89efc8ae6e8850771d089ca44bc604b508
+
+2016-03-10 12:17 +0000 [32bd7a64f9] Richard Mudgett <rmudgett@digium.com>
+
+ * chan_sip.c: Fix t38id deadlock potential.
+
+ This patch is part of a series to resolve deadlocks in chan_sip.c.
+
+ Stopping a scheduled event can result in a deadlock if the scheduled event
+ is running when you try to stop the event. If you hold a lock needed by
+ the scheduled event while trying to stop the scheduled event then a
+ deadlock can happen. The general strategy for resolving the deadlock
+ potential is to push the actual starting and stopping of the scheduled
+ events off onto the scheduler/do_monitor() thread by scheduling an
+ immediate one shot scheduled event. Some restructuring may be needed
+ because the code may assume that the start/stop of the scheduled events is
+ immediate.
+
+ ASTERISK-25023
+
+ Change-Id: If595e4456cd059d7171880c7f354e844c21b5f5f
+
+2016-03-09 16:34 +0000 [43556b800b] Richard Mudgett <rmudgett@digium.com>
+
+ * chan_sip.c: Fix reinviteid deadlock potential.
+
+ This patch is part of a series to resolve deadlocks in chan_sip.c.
+
+ Stopping a scheduled event can result in a deadlock if the scheduled event
+ is running when you try to stop the event. If you hold a lock needed by
+ the scheduled event while trying to stop the scheduled event then a
+ deadlock can happen. The general strategy for resolving the deadlock
+ potential is to push the actual starting and stopping of the scheduled
+ events off onto the scheduler/do_monitor() thread by scheduling an
+ immediate one shot scheduled event. Some restructuring may be needed
+ because the code may assume that the start/stop of the scheduled events is
+ immediate.
+
+ ASTERISK-25023
+
+ Change-Id: I9c11b9d597468f63916c99e1dabff9f4a46f84c1
+
+2016-03-09 16:32 +0000 [38c1cdab2c] Richard Mudgett <rmudgett@digium.com>
+
+ * chan_sip.c: Fix packet retransid deadlock potential.
+
+ This patch is part of a series to resolve deadlocks in chan_sip.c.
+
+ Stopping a scheduled event can result in a deadlock if the scheduled event
+ is running when you try to stop the event. If you hold a lock needed by
+ the scheduled event while trying to stop the scheduled event then a
+ deadlock can happen. The general strategy for resolving the deadlock
+ potential is to push the actual starting and stopping of the scheduled
+ events off onto the scheduler/do_monitor() thread by scheduling an
+ immediate one shot scheduled event. Some restructuring may be needed
+ because the code may assume that the start/stop of the scheduled events is
+ immediate.
+
+ * Fix retrans_pkt() to call check_pendings() with both the owner channel
+ and the private objects locked as required.
+
+ * Refactor dialog retransmission packet list to safely remove packet
+ nodes. The list nodes are now ao2 objects. The list has a ref and the
+ scheduled entry has a ref.
+
+ ASTERISK-25023
+
+ Change-Id: I50926d81be53f4cd3d572a3292cd25f563f59641
+
+2016-03-09 16:26 +0000 [e4ad55c888] Richard Mudgett <rmudgett@digium.com>
+
+ * chan_sip.c: Fix waitid deadlock potential.
+
+ This patch is part of a series to resolve deadlocks in chan_sip.c.
+
+ Stopping a scheduled event can result in a deadlock if the scheduled event
+ is running when you try to stop the event. If you hold a lock needed by
+ the scheduled event while trying to stop the scheduled event then a
+ deadlock can happen. The general strategy for resolving the deadlock
+ potential is to push the actual starting and stopping of the scheduled
+ events off onto the scheduler/do_monitor() thread by scheduling an
+ immediate one shot scheduled event. Some restructuring may be needed
+ because the code may assume that the start/stop of the scheduled events is
+ immediate.
+
+ * Made always run check_pendings() under the scheduler thread so scheduler
+ ids can be checked safely.
+
+ ASTERISK-25023
+
+ Change-Id: Ia834d6edd5bdb47c163e4ecf884428a4a8b17d52
+
+2016-03-08 15:08 +0000 [98d5669c28] Richard Mudgett <rmudgett@digium.com>
+
+ * chan_sip.c: Fix session timers deadlock potential.
+
+ This patch is part of a series to resolve deadlocks in chan_sip.c.
+
+ Stopping a scheduled event can result in a deadlock if the scheduled event
+ is running when you try to stop the event. If you hold a lock needed by
+ the scheduled event while trying to stop the scheduled event then a
+ deadlock can happen. The general strategy for resolving the deadlock
+ potential is to push the actual starting and stopping of the scheduled
+ events off onto the scheduler/do_monitor() thread by scheduling an
+ immediate one shot scheduled event. Some restructuring may be needed
+ because the code may assume that the start/stop of the scheduled events is
+ immediate.
+
+ ASTERISK-25023
+
+ Change-Id: I6d65269151ba95e0d8fe4e9e611881cde2ab4900
+
+2016-03-07 13:21 +0000 [9cb8f73226] Richard Mudgett <rmudgett@digium.com>
+
+ * chan_sip.c: Fix autokillid deadlock potential.
+
+ This patch is part of a series to resolve deadlocks in chan_sip.c.
+
+ Stopping a scheduled event can result in a deadlock if the scheduled event
+ is running when you try to stop the event. If you hold a lock needed by
+ the scheduled event while trying to stop the scheduled event then a
+ deadlock can happen. The general strategy for resolving the deadlock
+ potential is to push the actual starting and stopping of the scheduled
+ events off onto the scheduler/do_monitor() thread by scheduling an
+ immediate one shot scheduled event. Some restructuring may be needed
+ because the code may assume that the start/stop of the scheduled events is
+ immediate.
+
+ * Fix clearing autokillid in __sip_autodestruct() even though we could
+ reschedule.
+
+ ASTERISK-25023
+
+ Change-Id: I450580dbf26e2e3952ee6628c735b001565c368f
+
+2016-03-07 18:28 +0000 [c5c7f48a15] Richard Mudgett <rmudgett@digium.com>
+
+ * chan_sip.c: Fix provisional_keepalive_sched_id deadlock.
+
+ This patch is part of a series to resolve deadlocks in chan_sip.c.
+
+ Stopping a scheduled event can result in a deadlock if the scheduled event
+ is running when you try to stop the event. If you hold a lock needed by
+ the scheduled event while trying to stop the scheduled event then a
+ deadlock can happen. The general strategy for resolving the deadlock
+ potential is to push the actual starting and stopping of the scheduled
+ events off onto the scheduler/do_monitor() thread by scheduling an
+ immediate one shot scheduled event. Some restructuring may be needed
+ because the code may assume that the start/stop of the scheduled events is
+ immediate.
+
+ ASTERISK-25023
+
+ Change-Id: I98a694fd42bc81436c83aa92de03226e6e4e3f48
+
+2016-03-09 11:22 +0000 [f959d84dfd] Richard Mudgett <rmudgett@digium.com>
+
+ * chan_sip.c: Adjust how dialog_unlink_all() stops scheduled events.
+
+ This patch is part of a series to resolve deadlocks in chan_sip.c.
+
+ * Make dialog_unlink_all() unschedule all items at once in the sched
+ thread.
+
+ ASTERISK-25023
+
+ Change-Id: I7743072fb228836e8228b72f6dc46c8cc50b3fb4
+
+2016-03-10 21:54 +0000 [5f3225ddcc] Richard Mudgett <rmudgett@digium.com>
+
+ * chan_sip.c: Clear scheduled immediate events on unload.
+
+ This patch is part of a series to resolve deadlocks in chan_sip.c.
+
+ The reordering of chan_sip's shutdown is to handle any immediate events
+ that get put onto the scheduler so resources aren't leaked. The typical
+ immediate events at this time are going to be concerned with stopping
+ other scheduled events.
+
+ ASTERISK-25023
+
+ Change-Id: I3f6540717634f6f2e84d8531a054976f2bbb9d20
+
+2016-03-15 14:51 +0000 [7a74971771] Richard Mudgett <rmudgett@digium.com>
+
+ * sip/dialplan_functions.c: Fix /channels/chan_sip/test_sip_rtpqos crash.
+
+ This patch is part of a series to resolve deadlocks in chan_sip.c.
+
+ Delaying destruction of the chan_sip sip_pvt structures caused the
+ /channels/chan_sip/test_sip_rtpqos unit test to crash. That test
+ registers a special test ast_rtp_engine with the rtp engine module. When
+ the unit test completes it cleans up by unregistering the test
+ ast_rtp_engine and exits. Since the delayed destruction of the sip_pvt
+ happens after the unit test returns, the destructor tries to call the rtp
+ engine destroy callback of the test ast_rtp_engine auto variable which no
+ longer exists on the stack.
+
+ * Change the test ast_rtp_engine auto variable to a static variable. Now
+ the variable can still exist after the unit test exits so the delayed
+ sip_pvt destruction can complete successfully.
+
+ ASTERISK-25023
+
+ Change-Id: I61e34a12d425189ef7e96fc69ae14993f82f3f13
+
+2016-03-15 13:31 +0000 [d2c09ed73b] Andrew Nagy <andrew.nagy@the159.com>
+
+ * app_stasis: Don't hang up if app is not registered
+
+ This prevents pbx_core from hanging up the channel if the app isn't
+ registered.
+
+ ASTERISK-25846 #close
+
+ Change-Id: I63216a61f30706d5362bc0906b50b6f0544aebce
+2016-03-07 15:50 +0000 [b2d2906445] Richard Mudgett <rmudgett@digium.com>
+
+ * sched.c: Ensure oldest expiring entry runs first.
+
+ This patch is part of a series to resolve deadlocks in chan_sip.c.
+
+ * Updated sched unit test to check new behavior.
+
+ ASTERISK-25023
+
+ Change-Id: Ib69437327b3cda5e14c4238d9ff91b2531b34ef3
+
+2016-03-04 18:25 +0000 [9ae21b510f] Richard Mudgett <rmudgett@digium.com>
+
+ * chan_sip.c: Made sip_reinvite_retry() call sip_pvt_lock_full().
+
+ Change-Id: I90f04208a089f95488a2460185a8dbc3f6acca12
+
+2016-03-07 18:56 +0000 [56bcb97a3c] Richard Mudgett <rmudgett@digium.com>
+
+ * chan_sip.c: Simplify sip_pvt destructor call levels.
+
+ Remove destructor calling destroy_it calling really_destroy_it
+ for no benefit. Just make the destructor the really_destroy_it
+ function.
+
+ Change-Id: Idea0d47b27dd74f2488db75bcc7f353d8fdc614a
+
+2016-03-14 08:59 +0000 [677a65fcbb] Joshua Colp <jcolp@digium.com>
+
+ * build: Add configure check for proto field of PJSIP TLS transport setting.
+
+ Older versions of PJSIP do not have the proto field on the TLS transport
+ setting structure. This change adds a configure check so even if it is
+ not present we will still be able to build.
+
+ Change-Id: Ibf3f47befb91ed1b8194bf63888baa6fee05aba9
+
+2016-03-12 16:02 +0000 [32f0a3d52a] gtjoseph <george.joseph@fairview5.com>
+
+ * build_system: Split COMPILE_DOUBLE from DONT_OPTIMIZE
+
+ I can't ever recall actually needing the intermediate files or the checking
+ that a double compile produces. What I CAN remember is every DONT_OPTIMIZE
+ build needing 3 invocations of gcc instead of 1 just to do the checks and
+ produce those intermediate files.
+
+ Having said that, Richard pointed out that the reason for the double compile
+ was that there were cases in the past where a submitted patch failed to compile
+ because the submitter never tried it with the optimizations turned on.
+
+ To get the best of both worlds, COMPILE_DOUBLE has been split into its own
+ option. If DONT_OPTIMIZE is turned on, COMPILE_DOUBLE will also be selected
+ BUT you can then turn it off if all you need are the debugging symbols. This
+ way you have to make an informed decision about disabling COMPILE_DOUBLE.
+
+ To allow COMPILE_DOUBLE to be both auto-selected and turned off, a new feature
+ was added to menuselect. The <use> element can now contain an "autoselect"
+ attribute which will turn the used member on but not create a hard dependency.
+ The cflags.xml implementation for COMPILE_DOUBLE looks like this...
+
+ <member name="DONT_OPTIMIZE" displayname="Disable Optimizations ...">
+ <use autoselect="yes">COMPILE_DOUBLE</use>
+ <support_level>core</support_level>
+ </member>
+ <member name="COMPILE_DOUBLE" displayname="Pre-compile with ...>
+ <depend>DONT_OPTIMIZE</depend>
+ <support_level>core</support_level>
+ </member>
+
+ When DONT_OPTIMIZE is turned on, COMPILE_DOUBLE is turned on because
+ of the use.
+ When DONT_OPTIMIZE is turned off, COMPILE_DOUBLE is turned off because
+ of the depend.
+ When COMPILE_DOUBLE is turned on, DONT_OPTIMIZE is turned on because
+ of the depend.
+ When COMPILE_DOUBLE is turned off, DONT_OPTIMIZE is left as is because
+ it only uses COMPILE_DOUBLE, it doesn't depend on it.
+
+ I also made a few tweaks to the ncurses implementation to move things
+ left a bit to allow longer descriptions.
+
+ Change-Id: Id49ca930ac4b5ec4fc2d8141979ad888da7b1611
+
+2016-03-10 13:09 +0000 [38499e7125] gtjoseph <george.joseph@fairview5.com>
+
+ * pjproject: Pass (dont_)optimize flags to pjproject and fix pjsua
+
+ The pjproject Makefile now uses the Asterisk optimization flags which
+ are determined by the setting of the DONT_OPTMIZE menuselect flag.
+ The Makefile was also restructured so a change to the top level
+ menuselect.makeopts will result in a rebuild of pjproject.
+
+ Also, "--disable-resample" was removed from the pjproject configure
+ options. Without resample, pjsua (which is used by the testsuite)
+ can't make audio calls. When it can't, it segfaults.
+
+ Change-Id: I24b0a4d0872acef00ed89b3c527a713ee4c2ccd4
+
+2016-03-11 16:03 +0000 [336cae73cc] Walter Doekes <walter+asterisk@wjd.nu>
+
+ * app_chanspy: Fix occasional deadlock with ChanSpy and Local channels.
+
+ Channel masquerading had a conflict with autochannel locking.
+
+ When locking autochannel->channel, the channel is fetched from the
+ autochannel and then locked. During the fetch, the autochannel -- which
+ has no locks itself -- can be modified by someone who owns the channel
+ lock. That means that the value of autochan->channel cannot be trusted
+ until you hold the lock.
+
+ In practice, this caused problems with Local channels getting
+ masqueraded away while the ChanSpy attempted to get info from that
+ channel. The old channel which was about to get removed got locked, but
+ the new (replaced) channel got unlocked (no-op). Because the replaced
+ channel was now locked (and would never get unlocked), it couldn't get
+ removed from the channel list in a timely manner, and would now cause
+ deadlocks when iterating over the channel list.
+
+ This change checks the autochannel after locking the channel for changes
+ to the autochannel. If the channel had been changed, the lock is
+ reobtained on the new channel.
+
+ In theory it seems possible that after this fix, the lock attempt on the
+ old (wrong) channel can be on an already destroyed lock, maybe causing
+ a crash. But that hasn't been observed in the wild and is harder induce
+ than the current deadlock.
+
+ Thanks go to Filip Frank for suggesting a fix similar to this and
+ especially to IRC user hexanol for pointing out why this deadlock was
+ possible and testing this fix. And to Richard for catching my rookie
+ while loop mistake ;)
+
+ ASTERISK-25321 #close
+
+ Change-Id: I293ae0014e531cd0e675c3f02d1d118a98683def
+
+2016-03-07 21:34 +0000 [875d5e9872] gtjoseph <george.joseph@fairview5.com>
+
+ * pjproject_bundled: Remove --with-external-pa from configure options.
+
+ Not sure why it was there in the first place as we already specify
+ --disable-sound.
+
+ Change-Id: Ia80a40e8b1e1acc287955ab11ba1fbd0c7d4cff9
+
+2016-03-06 14:38 +0000 [530cff5f5f] gtjoseph <george.joseph@fairview5.com>
+
+ * res_pjsip: Strip spaces from items parsed from comma-separated lists
+
+ Configurations like "aors = a, b, c" were either ignoring everything after "a"
+ or trying to look up " b". Same for mailboxes, ciphers, contacts and a few
+ others.
+
+ To fix, all the strsep(©, ",") calls have been wrapped in ast_strip. To
+ facilitate this, ast_strip, ast_skip_blanks and ast_skip_nonblanks were
+ updated to handle null pointers.
+
+ In some cases, an ast_strlen_zero() test was added to skip consecutive commas.
+
+ There was also an attempt to ast_free an ast_strdupa'd string in
+ ast_sip_for_each_aor which was causing a SEGV. I removed it.
+
+ Although this issue was reported for realtime, the issue was in the res_pjsip
+ modules so all config mechanisms were affected.
+
+ ASTERISK-25829 #close
+ Reported-by: Mateusz Kowalski
+
+ Change-Id: I0b22a2cf22a7c1c50d4ecacbfa540155bec0e7a2
+
+2016-03-04 20:37 +0000 [3c8076a83b] gtjoseph <george.joseph@fairview5.com>
+
+ * install_prereq: Add packages for bundled pjproject
+
+ RedHat/CentOS needs python-devel
+ Debian/Ubuntu needs automake, libsrtp-dev and python-dev
+
+ Ubuntu also needed libncurses5-dev for cmenuselect so while not
+ needed for pjproject, I adedd it anyway.
+
+ Change-Id: Idf5fa16e2d87c687439621507e122cb9461d7089
+
+2016-02-24 17:25 +0000 [27f32cd0a6] gtjoseph <george.joseph@fairview5.com>
+
+ * res_pjsip_caller_id: Anonymize 'From' when caller id presentation is prohibited
+
+ Per RFC3325, the 'From' header is now anonymized on outgoing calls when
+ caller id presentation is prohibited.
+
+ TID = trust_id_outbound
+ PRO = Set(CALLERID(pres)=prohib)
+ USR = endpoint/from_user
+ DOM = endpoint/from_domain
+ PAI = YES(privacy=off), NO(not sent), PRI(privacy=full) (assumes send_pai=yes)
+
+ Conditions |Result
+ --------------------|----------------------------------------------------
+ TID PRO USR DOM |PAI FROM
+ --------------------|----------------------------------------------------
+ Y Y abc def.ghi |PRI "Anonymous" <sip:abc@def.ghi>
+ Y Y abc |PRI "Anonymous" <sip:abc@anonymous.invalid>
+ Y Y def.ghi |PRI "Anonymous" <sip:anonymous@def.ghi>
+ Y Y |PRI "Anonymous" <sip:anonymous@anonymous.invalid>
+
+ Y N abc def.ghi |YES <sip:abc@def.ghi>
+ Y N abc |YES <sip:abc@<ip_address>>
+ Y N def.ghi |YES "Caller Name" <sip:<caller_exten>@def.ghi>
+ Y N |YES "Caller Name" <sip:<caller_exten>@<ip_address>>
+
+ N Y abc def.ghi |NO "Anonymous" <sip:abc@def.ghi>
+ N Y abc |NO "Anonymous" <sip:abc@anonymous.invalid>
+ N Y def.ghi |NO "Anonymous" <sip:anonymous@def.ghi>
+ N Y |NO "Anonymous" <sip:anonymous@anonymous.invalid>
+
+ N N abc def.ghi |YES <sip:abc@def.ghi>
+ N N abc |YES <sip:abc@<ip_address>>
+ N N def.ghi |YES "Caller Name" <sip:<caller_exten>@def.ghi>
+ N N |YES "Caller Name" <sip:<caller_exten>@<ip_address>>
+
+ ASTERISK-25791 #close
+ Reported-by: Anthony Messina
+
+ Change-Id: I2c82a5ca1413c2c00fb62ea95b0ae8e97af54dc9
+
+2016-03-03 17:34 +0000 [7cf7b0a4f9] gtjoseph <george.joseph@fairview5.com>
+
+ * third_party/Makefile.rules: Replace unsupported != operator with $(shell ...)
+
+ Apparently the != operator is fairly new so I've replaced it with
+ the old $(shell ...) syntax.
+
+ Change-Id: I16b2e1878a4f91e7e9740abd427f9639f933c479
+ Reported-by: Richard Mudgett
+2016-01-23 15:50 +0000 [53f57001f2] gtjoseph <george.joseph@fairview5.com>
+
+ * loader: Retry dlopen when loading fails
+
+ Although we use the RTLD_LAZY flag when calling dlopen
+ the first time on a module, this only defers resolution
+ for function calls. Pointer references to functions are
+ determined at link time so dlopen expects them to be there.
+ Since we don't cross-module link, pointers to functions
+ in other modules won't be available and dlopen will fail.
+
+ Doing a "hardened" build also causes problems because it
+ typically sets "-z now" on the ld command line which
+ overrides RTLD_LAZY at run time.
+
+ If the failing module isn't a GLOBAL_SYMBOLS module, then
+ dlopen will be called again after all the GLOBAL_SYMBOLS
+ modules have been loaded and they'll eventually resolve.
+
+ If the calling module IS a GLOBAL_SYMBOLS module itself
+ and a third module depends on it, then there's an issue
+ because the second time through the dlopen loop,
+ GLOBAL_SYMBOLS modules aren't given any special treatment
+ and since the order in which dlopen is called isn't
+ deterministic, the dependent may again be tried before the
+ module it needs is loaded.
+
+ Simple solution: Save modules that fail load_resource
+ because of a dlopen error in a list and retry them
+ immediately after the first pass. Keep retrying until
+ the failed list is empty or we reach a #defined max
+ retries. Error messages are suppressed until the final
+ pass which also gets rid of those confusing error messages
+ about module failures that are later corrected.
+
+ Change-Id: Iddae1d97cd2f00b94e61662447432765755f64bb
+
+2016-03-01 16:18 +0000 [40d9e9e238] Kevin Harwell <kharwell@digium.com>
+
+ * bridge.c: Crash during attended transfer when missing a local channel half
+
+ It's possible for the transferer channel to get hung up early during the
+ attended transfer process. For instance, a phone may send a "bye" immediately
+ upon receiving a sip notify that contains a sip frag 100 (I'm looking at you
+ Jitsi). When this occurs a race begins between the transferer being hung up
+ and completion of the transfer code.
+
+ If the channel hangs up too early during a transfer involving stasis bridging
+ for instance, then when the created local channel goes to look up its swap
+ channel (and associated datastore) it can't find it (since it is no longer in
+ the bridge) thus it fails to enter the stasis application. Consequently, the
+ created local channel(s) hang up as well. If the timing is just right then the
+ bridging code attempts to add the message link with missing local channel(s).
+ Hence the crash.
+
+ Unfortunately, there is no great way to solve the problem of the unexpected
+ "bye". While we can't guarantee we won't receive an early hangup, and in this
+ case still fail to enter the stasis application, we can make it so asterisk
+ does not crash.
+
+ This patch does just that by locking the local channel structure, checking
+ that the local channel's peer has not been lost, and then continuing. This
+ keeps the local channel's peer from being ripped out from underneath it by
+ the local/unreal hangup code while attempting to set the stasis message link.
+
+ ASTERISK-25771
+
+ Change-Id: Ie6d6061e34c7c95f07116fffac9a09e5d225c880
+
+2016-03-01 18:08 +0000 [ff3da61c35] Kevin Harwell <kharwell@digium.com>
+
+ * res_pjsip_refer.c: Delay sending the initial SIP Notify with frag 100
+
+ During the transfer process, some phones (okay it was the Jitsi softphone,
+ but maybe others are out there) send a "bye" immediately after receiving a
+ SIP Notify. When a "bye" is received early for some types of transfers the
+ transferer channel may no longer be available during late stage transfer
+ processing.
+
+ For instance, during an attended transfer involving stasis bridging at one
+ point the created local channel looks for an associated swap channel in
+ order to retrieve the stasis application name. If the transferer has hung
+ up then the local channel will fail to find it. The local channel then has
+ no way to know which stasis app to enter, so it fails and hangs up as well.
+ Thus the transfer does not complete as expected.
+
+ This patch delays the sending of the initial notify in order to give the
+ transfer process enough time to gather the necessary data for a successful
+ transfer.
+
+ ASTERISK-25771
+
+ Change-Id: I09cfc9a5d6ed4c007bc70625e0972b470393bf16
+
+2016-03-03 08:26 +0000 [26b8f2692e] Joshua Colp <jcolp@digium.com>
+
+ * res_pjsip_dtmf_info: NULL terminate the message body.
+
+ PJSIP does not ensure that when printing the message body the
+ buffer will be NULL terminated. This is problematic when searching
+ for the signal and duration values of the DTMF.
+
+ This change ensures the buffer is always NULL terminated.
+
+ Change-Id: I52653a1a60c93092d06af31a27408d569cc98968
+
+2016-03-01 20:03 +0000 [86d6e44cc1] gtjoseph <george.joseph@fairview5.com>
+
+ * alembic: Fix downgrade and tweak for sqlite
+
+ Downgrade had a few issues. First there was an errant 'update' statement in
+ add_auto_dtmf_mode that looks like it was a copy/paste error. Second, we
+ weren't cleaning up the ENUMs so subsequent upgrades on postgres failed
+ because the types already existed.
+
+ For sqlite... sqlite doesn't support ALTER or DROP COLUMN directly.
+ Fortunately alembic batch_operations takes care of this for us if we
+ use it so the alter and drops were converted to use batch operations.
+
+ Here's an example downgrade:
+
+ with op.batch_alter_table('ps_endpoints') as batch_op:
+ batch_op.drop_column('tos_audio')
+ batch_op.drop_column('tos_video')
+ batch_op.add_column(sa.Column('tos_audio', yesno_values))
+ batch_op.add_column(sa.Column('tos_video', yesno_values))
+ batch_op.drop_column('cos_audio')
+ batch_op.drop_column('cos_video')
+ batch_op.add_column(sa.Column('cos_audio', yesno_values))
+ batch_op.add_column(sa.Column('cos_video', yesno_values))
+
+ with op.batch_alter_table('ps_transports') as batch_op:
+ batch_op.drop_column('tos')
+ batch_op.add_column(sa.Column('tos', yesno_values))
+ # Can't cast integers to YESNO_VALUES, so dropping and adding is required
+ batch_op.drop_column('cos')
+ batch_op.add_column(sa.Column('cos', yesno_values))
+
+ Upgrades from base to head and downgrades from head to base were tested
+ repeatedly for postgresql, mysql/mariadb, and sqlite3.
+
+ Change-Id: I862b0739eb3fd45ec3412dcc13c2340e1b7baef8
+
+2016-03-02 15:55 +0000 [6f0d7ce9db] gtjoseph <george.joseph@fairview5.com>
+
+ * config_transport: Fix objects returned by ast_sip_get_transport_states
+
+ ast_sip_get_transport_states was returning a container of internal_state
+ objects instead of ast_sip_transport_state objects. This was causing
+ transport lookups to fail, most noticably in res_pjsip_nat, which
+ couldn't find the correct external addresses. This was causing contacts
+ to go out with internal ip addresses.
+
+ ASTERISK-25830 #close
+ Reported-by: Sean Bright
+
+ Change-Id: I1aee6a2fd46c42e8dd0af72498d17de459ac750e
+
+2016-03-02 11:17 +0000 [1ea7a5a774] Scott Griepentrog <scott@griepentrog.com>
+
+ * CHAOS: cleanup possible null vars on msg alloc failure
+
+ In message.c, if msg_alloc fails to init the string field,
+ vars may be null, so use a null tolerant cleanup.
+
+ In res_pjsip_messaging.c, if msg_data_create fails, mdata
+ will be null, so use a null tolerant cleanup.
+
+ ASTERISK-25323
+
+ Change-Id: Ic2d55c2c3750d5616e2a05ea92a19c717507ff56
+
+2016-03-02 09:34 +0000 [3c37c7071f] Scott Griepentrog <scott@griepentrog.com>
+
+ * CHAOS: prevent crash on failed strdup
+
+ This patch avoids crashing on a null pointer
+ if the strdup() allocation fails.
+
+ ASTERISK-25323
+
+ Change-Id: I3f67434820ba53b53663efd6cbb42749f4f6c0f5
+
+2016-02-29 18:11 +0000 [9633be9d25] Richard Mudgett <rmudgett@digium.com>
+
+ * func_callerid.c: Update REDIRECTING reason documentation.
+
+ Change-Id: I6e8d39b0711110a4bceafa652e58b30465e28386
+
+2016-02-26 18:57 +0000 [4165ea7778] Richard Mudgett <rmudgett@digium.com>
+
+ * SIP diversion: Fix REDIRECTING(reason) value inconsistencies.
+
+ Previous chan_sip behavior:
+
+ Before this patch chan_sip would always strip any quotes from an incoming
+ reason and pass that value up as the REDIRECTING(reason). For an outgoing
+ reason value, chan_sip would check the value against known values and
+ quote any it didn't recognize. Incoming 480 response message reason text
+ was just assigned to the REDIRECTING(reason).
+
+ Previous chan_pjsip behavior:
+
+ Before this patch chan_pjsip would always pass the incoming reason value
+ up as the REDIRECTING(reason). For an outgoing reason value, chan_pjsip
+ would send the reason value as passed down.
+
+ With this patch:
+
+ Both channel drivers match incoming reason values with values documented
+ by REDIRECTING(reason) and values documented by RFC5806 regardless of
+ whether they are quoted or not. RFC5806 values are mapped to the
+ equivalent REDIRECTING(reason) documented value and is set in
+ REDIRECTING(reason). e.g., an incoming RFC5806 'unconditional' value or a
+ quoted string version ('"unconditional"') is converted to
+ REDIRECTING(reason)'s 'cfu' value. The user's dialplan only needs to deal
+ with 'cfu' instead of any of the aliases.
+
+ The incoming 480 response reason text supported by chan_sip checks for
+ known reason values and if not matched then puts quotes around the reason
+ string and assigns that to REDIRECTING(reason).
+
+ Both channel drivers send outgoing known REDIRECTING(reason) values as the
+ unquoted RFC5806 equivalent. User custom values are either sent as is or
+ with added quotes if SIP doesn't allow a character within the value as
+ part of a RFC3261 Section 25.1 token. Note that there are still
+ limitations on what characters can be put in a custom user value. e.g.,
+ embedding quotes in the middle of the reason string is silly and just
+ going to cause you grief.
+
+ * Setting a REDIRECTING(reason) value now recognizes RFC5806 aliases.
+ e.g., Setting REDIRECTING(reason) to 'unconditional' is converted to the
+ 'cfu' value.
+
+ * Added missing malloc() NULL return check in res_pjsip_diversion.c
+ set_redirecting_reason().
+
+ * Fixed potential read from a stale pointer in res_pjsip_diversion.c
+ add_diversion_header(). The reason string needed to be copied into the
+ tdata memory pool to ensure that the string would always be available.
+ Otherwise, if the reason string returned by reason_code_to_str() was a
+ user's reason string then the string could be freed later by another
+ thread.
+
+ Change-Id: Ifba83d23a195a9f64d55b9c681d2e62476b68a87
+
+2016-02-26 18:54 +0000 [41f4af4ce5] Richard Mudgett <rmudgett@digium.com>
+
+ * res_pjsip_send_to_voicemail.c: Allow either quoted or not send_to_vm reason.
+
+ Change-Id: Id6350b3c7d4ec8df7ec89863566645e2b0f441fd
+
+2016-02-29 20:41 +0000 [4c5998ff55] Richard Mudgett <rmudgett@digium.com>
+
+ * res_pjsip_send_to_voicemail.c: Fix off-nominal double channel unref.
+
+ * Fix double unref of other_party channel in off nominal path.
+
+ * This is unlikely to be a real problem. However, for safety,
+ in handle_incoming_request() keep the datastore ref with the
+ other_party channel ref until we are finished with the other_party
+ channel.
+
+ Change-Id: I78f22547bf0bb99fb20814ceab75952bd857f821
+
+2016-01-18 21:54 +0000 [b59956a875] gtjoseph <george.joseph@fairview5.com>
+
+ * build-system: Allow building with static pjproject
+
+ Background here:
+ http://lists.digium.com/pipermail/asterisk-dev/2016-January/075266.html
+
+ From CHANGES:
+ * To help insure that Asterisk is compiled and run with the same known
+ version of pjproject, a new option (--with-pjproject-bundled) has been
+ added to ./configure. When specified, the version of pjproject specified
+ in third-party/versions.mak will be downloaded and configured. When you
+ make Asterisk, the build process will also automatically build pjproject
+ and Asterisk will be statically linked to it. Once a particular version
+ of pjproject is configured and built, it won't be configured or built
+ again unless you run a 'make distclean'.
+
+ To facilitate testing, when 'make install' is run, the pjsua and pjsystest
+ utilities and the pjproject python bindings will be installed in
+ ASTDATADIR/third-party/pjproject.
+
+ The default behavior remains building with the shared pjproject
+ installation, if any.
+
+ Building:
+
+ All you have to do is include the --with-pjproject-bundled option on
+ the ./configure command line (and remove any existing --with-pjproject
+ option if specified). Everything else is automatic.
+
+ Behind the scenes:
+
+ The top-level Makefile was modified to include 'third-party' in the
+ list of MOD_SUBDIRS.
+
+ The third-party directory was created to contain any third party
+ packages that may be needed in the future. Its Makefile automatically
+ iterates over any subdirectories passing on targets.
+
+ The third-party/pjproject directory was created to house the pjproject
+ source distribution. Its Makefile contains targets to download, patch
+ configure, generate dependencies, compile libs, apps and python bindings,
+ sanitized build.mak and generate a symbols list.
+
+ When bootstrap.sh is run, it automatically includes the configure.m4
+ file in third-party/pjproject. This file has a macro to download and
+ conifgure pjproject and get and set PJPROJECT_INCLUDE, PJPROJECT_DIR
+ and PJPROJECT_BUNDLED. It also tests for the capabilities like
+ PJ_TRANSACTION_GRP_LOCK by parsing preprocessor output as opposed to
+ trying to compile. Of course, bootstrap.sh is only run once and the
+ configure file is incldued in the patch.
+
+ When configure is run with the new options, the macro in configure.m4
+ triggers the download, patch, conifgure and tests. No compilation is
+ performed at this time. The downloaded tarball is cached in /tmp so
+ it doesn't get downloaded again on a distclean.
+
+ When make is run in the top-level Asterisk source directory, it will
+ automatically descend all the subdirectories in third_party just as it
+ does for addons, apps, etc. The top-level Makefile makes sure that
+ the 'third-party' is built before 'main' so that dependencies from the
+ other directories are built first.
+
+ When main does build, a new shared library (libasteriskpj) is created that
+ links statically to the pjproject .a files and exports all their symbols.
+ The asterisk binary links to that, just as it does with libasteriskssl.
+
+ When Asterisk is installed, the pjsua and pjsystest apps, and the pjproject
+ python bindings are installed in ASTDATADIR/third-party/pjproject. This
+ will facilitate testing, including running the testsuite which will be
+ updated to check that directory for the pjsua module ahead of the system
+ python library.
+
+ Modules should continue to depend on pjproject if they use pjproject APIs
+ directly. They should not care about the implementation. No changes to any
+ res_pjsip modules were made.
+
+ Change-Id: Ia7a60c28c2e9ba9537c5570f933c1ebcb20a3103
+
+2016-02-22 16:59 +0000 [18a323e542] Richard Mudgett <rmudgett@digium.com>
+
+ * chan_sip.c: Fix T.38 issues caused by leaving a bridge.
+
+ chan_sip could not handle AST_T38_TERMINATED frames being sent to it when
+ the channel left the bridge. The action resulted in overlapping outgoing
+ reINVITEs. The testsuite tests/fax/sip/directmedia_reinvite_t38 was not
+ happy.
+
+ * Force T.38 to be remembered as locally bridged. Now when the channel
+ leaves the native RTP bridge after T.38, the channel remembers that it has
+ already reINVITEed the media back to Asterisk. It just needs to terminate
+ T.38 when the AST_T38_TERMINATED arrives.
+
+ * Prevent redundant AST_T38_TERMINATED from causing problems. Redundant
+ AST_T38_TERMINATED frames could cause overlapping outgoing reINVITEs if
+ they happen before the T.38 state changes to disabled. Now the T.38 state
+ is set to disabled before the reINVITE is sent.
+
+ ASTERISK-25582 #close
+
+ Change-Id: I53f5c6ce7d90b3f322a942af1a9bcab6d967b7ce
+
+2016-02-18 18:27 +0000 [263a39f2cc] Richard Mudgett <rmudgett@digium.com>
+
+ * res_pjsip_t38.c: Back out part of an earlier fix attempt.
+
+ This backs out item 4 of the 4875e5ac32f5ccad51add6a4216947bfb385245d
+ commit. Item 4 added the t38_bye_supplement. Unfortunately, the frame
+ that it puts into the bridge may or may not be processed by the time the
+ bridged peer is kicked out of the bridge. If it is processed then all is
+ well. However, if it is not processed then that channel is stuck in fax
+ mode until it hangs up or maybe if it joins another bridge for T.38
+ faxing.
+
+ ASTERISK-25582
+
+ Change-Id: Ib20a03ecadf1bf8a0dcadfadf6c2f2e60919a9f7
+
+2016-02-22 13:54 +0000 [221422be50] Richard Mudgett <rmudgett@digium.com>
+
+ * bridge core: Add owed T.38 terminate when channel leaves a bridge.
+
+ The channel is now going to get T.38 terminated when it leaves the
+ bridging system and the bridged peers are going to get T.38 terminated as
+ well.
+
+ ASTERISK-25582
+
+ Change-Id: I77a9205979910210e3068e1ddff400dbf35c4ca7
+
+2016-02-19 16:01 +0000 [0a5bc64491] Richard Mudgett <rmudgett@digium.com>
+
+ * channel api: Create is_t38_active accessor functions.
+
+ ASTERISK-25582
+
+ Change-Id: I69451920b122de7ee18d15bb231c80ea7067a22b
+
+2016-02-19 19:06 +0000 [513638a5f4] Richard Mudgett <rmudgett@digium.com>
+
+ * bridge_channel: Don't settle owed events on an optimization.
+
+ Local channel optimization could cause DTMF digits to be duplicated.
+ Pending DTMF end events would be posted to a bridge when the local channel
+ optimizes out and is replaced by the channel further down the chain. When
+ the real digit ends, the channel would get another DTMF end posted to the
+ bridge.
+
+ A -- LocalA;1/n -- LocalA;2/n -- LocalB;1 -- LocalB;2 -- B
+
+ 1) LocalA has the /n flag to prevent optimization.
+ 2) B is sending DTMF to A through the local channel chain.
+ 3) When LocalB optimizes out it can move B to the position of LocalB;1
+ 4) Without this patch, when B swaps with LocalB;1 then LocalB;1 would
+ settle an owed DTMF end to the bridge toward LocalA;2.
+ 5) When B finally ends its DTMF it sends the DTMF end down the chain.
+ 6) Without this patch, A would hear the DTMF digit end when LocalB
+ optimizes out and when B ends the original digit.
+
+ ASTERISK-25582
+
+ Change-Id: I1bbd28b8b399c0fb54985a5747f330a4cd2aa251
+
+2016-02-22 12:15 +0000 [7c4495cb70] Richard Mudgett <rmudgett@digium.com>
+
+ * channel.c: Route all control frames to a channel through the same code.
+
+ Frame hooks can conceivably return a control frame in exchange for an
+ audio frame inside ast_write(). Those returned control frames were not
+ handled quite the same as if they were sent to ast_indicate(). Now it
+ doesn't matter if you use ast_write() to send an AST_FRAME_CONTROL to a
+ channel or ast_indicate().
+
+ ASTERISK-25582
+
+ Change-Id: I5775f41421aca2b510128198e9b827bf9169629b
+
+2016-02-25 15:13 +0000 [48d713a832] gtjoseph <george.joseph@fairview5.com>
+
+ * sorcery: Refactor create, update and delete to better deal with caches
+
+ The ast_sorcery_create, update and delete function have been refactored
+ to better deal with caches and errors.
+
+ The action is now called on all non-caching wizards first. If ANY succeed,
+ the action is called on all caching wizards and the observers are notified.
+ This way we don't put something in the cache (or update or delete) before
+ knowing the action was performed in at least 1 backend and we only call the
+ observers once even if there were multiple writable backends.
+
+ ast_sorcery_create was never adding to caches in the first place which
+ was preventing contacts from getting added to a memory_cache when they
+ were created. In turn this was causing memory_cache to emit errors if
+ the contact was deleted before being retrieved (which would have
+ populated the cache).
+
+ ASTERISK-25811 #close
+ Reported-by: Ross Beer
+
+ Change-Id: Id5596ce691685a79886e57b0865888458d6e7b46
+2016-02-25 15:39 +0000 [ee947d4a7a] gtjoseph <george.joseph@fairview5.com>
+
+ * res_pjsip_mwi: Turn some NOTICEs and WARNINGs into debug 1s.
+
+ There are a few cases where we're emitting notices or warnings
+ for things that really need neither, like a client retrying to subscribe
+ to mwi when they're not conifgured for it. They get a 404 so there's no
+ need for non-debug messages.
+
+ Change-Id: I05e38a7ff6c2f2521146f4be6a79731b9864e61f
+2016-02-25 14:17 +0000 [6e70e8ccdb] gtjoseph <george.joseph@fairview5.com>
+
+ * res_sorcery_memory_cache: Fix SEGV in some CLI commands
+
+ A few of the CLI commands weren't checking for enough arguments
+ and were SEGVing.
+
+ Change-Id: Ie6494132ad2fe54b4f014bcdc112a37c36a9b413
+
+2016-02-25 10:29 +0000 [4417f64d83] Leif Madsen <leif@leifmadsen.com>
+
+ * Add initial support to build Docker images
+
+ This work-in-progress is the first step to being able to reliably
+ build Asterisk containers from the Asterisk source. I'm submitting
+ this based on feedback gained at AstriDevCon 2015.
+
+ Information about how to use this is provided in contrib/docker/README.md
+ and will result in a local Asterisk container being built right from
+ your source. I believe this can eventually be automated via
+ hub.docker.com.
+
+ Change-Id: Ifa070706d40e56755797097b6ed72c1e243bd0d1
+
+2016-02-22 19:31 +0000 [e7a6abbbd3] Richard Mudgett <rmudgett@digium.com>
+
+ * rtp_engine.h: Remove extraneous semicolons.
+
+ Change-Id: Ib462633d396fa941379dfef648dcd2245e350084
+
+2016-02-23 14:57 +0000 [6656afffa0] Richard Mudgett <rmudgett@digium.com>
+
+ * chan_sip.c: Suppress T.38 SDP c= line if addr is the same.
+
+ Use the correct comparison function since we only care if the address
+ without the port is the same.
+
+ Change-Id: Ibf6c485f843a1be6dee58a47b33d81a7a8cbe3b0
+
+2016-02-16 08:14 +0000 [ea9deff996] Christof Lauber <christof.lauber@annax.ch>
+
+ * res_config_sqlite3: Fix crashes when reading peers from sqlite3 tables
+
+ Introduced realloaction of ast_str buf in sqlite3_escape functions in case
+ the returned buffer from threadstorage was actually too small.
+
+ Change-Id: I3c5eb43aaade93ee457943daddc651781954c445
+
+2016-02-11 11:01 +0000 [d2a1457e0b] gtjoseph <george.joseph@fairview5.com>
+
+ * res_pjsip/config_transport: Allow reloading transports.
+
+ The 'reload' mechanism actually involves closing the underlying
+ socket and calling the appropriate udp, tcp or tls start functions
+ again. Only outbound_registration, pubsub and session needed work
+ to reset the transport before sending requests to insure that the
+ pjsip transport didn't get pulled out from under them.
+
+ In my testing, no calls were dropped when a transport was changed
+ for any of the 3 transport types even if ip addresses or ports were
+ changed. To be on the safe side however, a new transport option was
+ added (allow_reload) which defaults to 'no'. Unless it's explicitly
+ set to 'yes' for a transport, changes to that transport will be ignored
+ on a reload of res_pjsip. This should preserve the current behavior.
+
+ Change-Id: I5e759850e25958117d4c02f62ceb7244d7ec9edf
+
+2016-02-07 17:34 +0000 [6b921f706d] gtjoseph <george.joseph@fairview5.com>
+
+ * res_pjproject: Add ability to map pjproject log levels to Asterisk log levels
+
+ Warnings and errors in the pjproject libraries are generally handled by
+ Asterisk. In many cases, Asterisk wouldn't even consider them to be warnings
+ or errors so the messages emitted by pjproject directly are either superfluous
+ or misleading. A good exampe of this are the level-0 errors pjproject emits
+ when it can't open a TCP/TLS socket to a client to send an OPTIONS. We don't
+ consider a failure to qualify a UDP client an "ERROR", why should a TCP/TLS
+ client be treated any differently?
+
+ A config file for res_pjproject has bene added (pjproject.conf) and a new
+ log_mappings object allows mapping pjproject levels to Asterisk levels
+ (or nothing). The defaults if no pjproject.conf file is found are the same
+ as those that were hard-coded into res_pjproject initially: 0,1 = LOG_ERROR,
+ 2 = LOG_WARNING, 3,4,5 = LOG_DEBUG<level>
+
+ Change-Id: Iba7bb349c70397586889b8f45b8c3d6c6c8c3898
+
+2016-02-18 10:55 +0000 [f295088764] Alexei Gradinari <alex2grad@gmail.com>
+
+ * res_pjsip_outbound_publish: Fix processing 412 response
+
+ When Asterisk receives a 412 (Conditional Request Failed) response
+ it has to recreate publish session.
+ There is bug in res_pjsip_outbound_publish.c
+ The function sip_outbound_publish_client_alloc is called with wrong object
+ while processing 412 (Conditional Request Failed) response.
+ This patch fixes it.
+
+ ASTERISK-25229 #close
+
+ Change-Id: I3b62f2debf6bb1e5817cde7b13ea39ef2bf14359
+2016-02-18 11:15 +0000 [f1f79812c1] Mark Michelson <mmichelson@digium.com>
+
+ * Fix failing threadpool_auto_increment test.
+
+ The threadpool_auto_increment test fails infrequently for a couple of
+ reasons
+ * The threadpool listener was notified of fewer tasks being pushed than
+ were actually pushed
+ * The "was_empty" flag was set to an unexpected value.
+
+ The problem is that the test pushes three tasks into the threadpool.
+ Test expects the threadpool to essentially gather those three tasks, and
+ then distribute those to the threadpool threads. It also expects that as
+ the tasks are pushed in, the threadpool listener is alerted immediately
+ that the tasks have been pushed. In reality, a task can be distributed
+ to the threadpool threads quicker than expected, meaning that the
+ threadpool has already emptied by the time each subsequent task is
+ pushed. In addition, the internal threadpool queue can be delayed so
+ that the threadpool listener is not alerted that a task has been pushed
+ even after the task has been executed.
+
+ From the test's point of view, there's no way to be able to predict
+ exactly the order that task execution/listener notifications will occur,
+ and there is no way to know which listener notifications will indicate
+ that the threadpool was previously empty.
+
+ For this reason, the test has been updated to only check the things it
+ can check. It ensures that all tasks get executed, that the threads go
+ idle after the tasks are executed, and that the listener is told the
+ proper number of tasks that were pushed.
+
+ Change-Id: I7673120d74adad64ae6894594a606e102d9a1f2c
+
+2016-02-16 23:37 +0000 [79dc5e2f00] Rodrigo Ramírez Norambuena <a@rodrigoramirez.com>
+
+ * app_queue: fix Calculate talktime when is first call answered
+
+ Fix calculate of average time for talktime is wrong when is completed the
+ first call beacuse the time for talked would be that call.
+
+ ASTERISK-25800 #close
+
+ Change-Id: I94f79028935913cd9174b090b52bb300b91b9492
+
+2016-02-17 13:30 +0000 [5a3a857dd6] Richard Mudgett <rmudgett@digium.com>
+
+ * cel.c: Fix mismatch in ast_cel_track_event() return type.
+
+ The return type of ast_cel_track_event() is not large enough to return all
+ 64 potential bits of the event enable mask. Fortunately, the defined CEL
+ events do not really need all 64 bits and the return value is only used to
+ determine if the requested CEL event is enabled.
+
+ * Made the ast_cel_track_event() return 0 or 1 only so the return value
+ can fit inside an int type instead of zero or a truncated 64 bit non-zero
+ value.
+
+ Change-Id: I783d932320db11a95c7bf7636a72b6fe2566904c
+
+2016-02-16 16:37 +0000 [87ab65c557] gtjoseph <george.joseph@fairview5.com>
+
+ * res_odbc: Fix exports.in for missing symbols
+
+ res_odbc.exports.in was missing a few symbols.
+ Changed to wildcards.
+
+ Change-Id: Ieadd76df24e43ea92577f651d478a0f7b742c30c
+
+2016-02-16 12:20 +0000 [c0f3062031] gtjoseph <george.joseph@fairview5.com>
+
+ * res_statsd: Fix exports.in for missing symbols
+
+ res_statsd.export.in was missing the _va variations of the log
+ functions causing Asterisk to crash in res_pjsip if OPTIONAL_API
+ wasn't enabled.
+
+ ASTERISK-25727 #close
+ Reported-by: Gergely Dömsödi
+
+ Change-Id: I395729f9f51bdd33c5ca757f5f96ebedad74077b
+
+2016-02-15 21:31 +0000 [5e848dae7b] gtjoseph <george.joseph@fairview5.com>
+
+ * res_pjsip_config_wizard: Add command to export primitive objects
+
+ A new command (pjsip export config_wizard primitives) has been added that
+ will export all the pjsip objects it created to the console or a file
+ suitable for reuse in a pjsip.conf file.
+
+ ASTERISK-24919 #close
+ Reported-by: Ray Crumrine
+
+ Change-Id: Ica2a5f494244b4f8345b0437b16d06aa0484452b
+
+2016-02-15 15:37 +0000 [34c64707d1] gtjoseph <george.joseph@fairview5.com>
+
+ * res_pjsip_caller_id: Fix segfault when replacing rpid or pai header
+
+ If the PJSIP_HEADER dialplan function adds a PAI or RPID header and send_rpid
+ or send_pai is set, res_pjsip_caller_id attemps to retrieve, parse and modify
+ the header added by the dialplan function. Since the header added by the
+ dialplan function is generic string, there are no virtual functions to parse
+ the uri and we get a segfault when we try. Since the modify, was really only
+ an overwrite, we now just delete the old header if it was type PJSIP_H_OTHER
+ and recreate it.
+
+ This raises a question for another time though: What should happen with
+ duplicate headers? Right now res_pjsip_header_funcs doesn't check for dups
+ so if it's session supplement is loaded after res_pjsip_caller_id's (or any
+ other module that adds headers), there'll be dups in the message.
+
+ ASTERISK-25337 #close
+
+ Change-Id: I5e296b52d30f106b822c0eb27c4c2b0e0f71c7fa
+
+2016-02-15 13:08 +0000 [ebe167f792] Mark Michelson <mmichelson@digium.com>
+
+ * Fix creation race of contact_status structures.
+
+ It is possible when processing a SIP REGISTER request to have two
+ threads end up creating contact_status structures in sorcery.
+ contact_status is created using a "find or create" function. If two
+ threads call into this at the same time, each thread will fail to find
+ an existing contact_status, and so both will end up creating a new
+ contact status.
+
+ During testing, we would see sporadic failures because the
+ PJSIP_CONTACT() dialplan function would operate on a different
+ contact_status than what had been updated by res_pjsip/pjsip_options.
+
+ The fix here is two-fold:
+ 1) The "find or create" function for contact_status now has a lock
+ around the entire operation. This way, if two threads attempt the
+ operation simultaneously, the first to get there will create the object,
+ and the second will find the object created by the first thread.
+
+ 2) res_sorcery_memory has had its create callback updated so that it
+ will not allow for objects with duplicate IDs to be created.
+
+ Change-Id: I55b1460ff1eb0af0a3697b82d7c2bac9f6af5b97
+
+2016-02-15 12:52 +0000 [1c4f2a920d] Joshua Colp <jcolp@digium.com>
+
+ * res_pjsip_pubsub: Move where the subscription is stored to after initialized.
+
+ A problem arose when testing the AMI subscription listing actions where it
+ was possible for a subscription that had not been fully initialized to be
+ listed. This was problematic as the underlying listing code would crash.
+
+ This change makes it so the subscription tree is fully set up before it is
+ added to the list of subscriptions. This ensures that when the listing actions
+ get the subscription it is valid.
+
+ ASTERISK-25738 #close
+
+ Change-Id: Iace2b13641c31bbcc0d43a39f99aba1f340c0f48
+
+2015-02-20 20:51 +0000 [ac00c6bc2d] Corey Farrell <git@cfware.com>
+
+ * main/asterisk.c: Reverse #if statement in listener() to fix code folding.
+
+ listener() opens the same code block in two places (#if and #else). This
+ confuses some folding editors causing it to think that an extra code block
+ was opened. Folding in 'geany' causes all code after listener() to be
+ folded as if it were part of that procedure.
+
+ ASTERISK-24813 #close
+
+ Change-Id: I4b8c766e6c91e327dd445e8c18f8a6f268acd961
+
+2016-02-09 17:34 +0000 [b1b797e0e7] gtjoseph <george.joseph@fairview5.com>
+
+ * res_pjsip: Refactor load_module/unload_module
+
+ load_module was just too hairy with every step having to clean up all
+ previous steps on failure.
+
+ Some of the pjproject init calls have now been moved to a separate
+ load_pjsip function and the unload_pjsip function was enhanced to clean
+ up everything if an error happened at any stage of the load process.
+
+ In the process, a bunch of missing pj_shutdowns, serializer_pool_shutdowns
+ and ast_threadpool_shutdowns were also corrected.
+
+ Change-Id: I5eec711b437c35b56605ed99537ebbb30463b302
+
+2016-02-09 22:42 +0000 [20e9792fbc] Badalyan Vyacheslav <slavon.net@gmail.com>
+
+ * Resources/res_phoneprov: fix memory leak and heap-use-after-free
+
+ * heap-use-after-free happens when we free "cfg"
+ but then use "value" which refers to it
+
+ * A memory leak occurs because in some cases
+ it is not released "defaults"
+
+ ASTERISK-25721 #close
+ Reported by: Badalyan Vyacheslav
+ Tested by: Badalyan Vyacheslav
+
+ Change-Id: I3807d3f4726df6864430ec144cf6265d3f538469
+
+2016-02-11 11:21 +0000 [962a9d61f8] Etienne Lessard (license #6394)
+
+ * func_iconv: Ensure output strings are properly terminated.
+
+ ASTERISK-25272 #close
+ Reported by: Etienne Lessard
+ patches:
+ AST-25272.patch submitted by Etienne Lessard (license #6394)
+
+ Change-Id: Id75ad202300960a1e91afe15e319d992936ecc17
+
+2016-02-10 16:16 +0000 [c1bf014ea0] gtjoseph <george.joseph@fairview5.com>
+
+ * res_pjsip: Handle pjsip_dlg_create_uas deprecation
+
+ Pjproject has deprecated pjsip_dlg_create_uas in 2.5 and replaced it with
+ pjsip_dlg_create_uas_and_inc_lock which, as the name implies, automatically
+ increments the lock on the returned dialog. To account for this, configure.ac
+ now detects the presence of pjsip_dlg_create_uas_and_inc_lock and res_pjsip.c
+ has an #ifdef HAVE_PJSIP_DLG_CREATE_UAS_AND_INC_LOCK to decide whether to use
+ the original call or the new one. If the new one was used, the ref count is
+ decremented before returning.
+
+ ASTERISK-25751 #close
+ Reported-by Josh Colp
+
+ Change-Id: I1be776b94761df03bd0693bc7795a75682615ca8
+
+2016-02-09 23:40 +0000 [bd07b6f0dd] Badalyan Vyacheslav <slavon.net@gmail.com>
+
+ * Build: Added testing compiler to support the system sanitizes
+
+ In older versions of the compiler was not sanitizes.
+ Compilers other than GCC can not support the Usan and TSAN
+ or have other options for *FLAGS.
+
+ ASTERISK-25767 #close
+ Reported by: Badalyan Vyacheslav
+ Tested by: Badalyan Vyacheslav
+
+ Change-Id: Iefce6608221fa87884b82ae3cb5649b7b1804916
+
+2016-02-09 20:57 +0000 [e9e896abd1] Badalyan Vyacheslav <v.badalyan@open-bs.ru>
+
+ * Build: Fix menuselect USAN conflicts
+
+ USAN can be used together with other sanitizers.
+
+ Reported by: Badalyan Vyacheslav
+ Tested by: Badalyan Vyacheslav
+
+ Change-Id: I3bffa350d70965c3026651dba3a12414d0aaa45f
+
+2016-02-09 14:21 +0000 [93e8ed0154] Corey Farrell <git@cfware.com>
+
+ * Simplify and fix conditional in FD_SET.
+
+ FD_SET contains a conditional statement to protect against buffer
+ overruns. The statement was overly complicated and prevented use
+ of the last array element of ast_fdset. We now just verify the fd
+ is less than ast_FDMAX.
+
+ Change-Id: I41895c0b497b052aef5bf49d75c817c48b326f40
+
+2016-02-09 07:11 +0000 [a7c8d4cd6b] Joshua Colp <jcolp@digium.com>
+
+ * tests/test_sorcery_memory_cache_thrash: Improve termination process.
+
+ When terminating the threads thrashing a sorcery memory cache each
+ would be told to stop and then we would wait on them. During at
+ least one thrashing test this was problematic due to the specific
+ usage pattern in use. It would take some time for termination of the
+ thread to occur.
+
+ This would occur due to contention between the threads retrieving
+ and the threads updating the cache. As the retrieving threads are
+ given priority it may be some time before the updating threads
+ are able to proceed.
+
+ This change makes it so all threads are told to stop and then each
+ are joined to ensure they stop. This way all the threads should
+ stop at around the same time instead of waiting for one to stop,
+ the next to stop, then the next, and so on. As a result of this
+ the execution time for each thrash test is much closer to their
+ expected value than previously seen as well.
+
+ Change-Id: I04a53470b0ea4170b8819180b0bd7475f3642827
+2016-01-29 17:56 +0000 [2451d4e455] gtjoseph <george.joseph@fairview5.com>
+
+ * res_pjsip: Fix infinite recursion when loading transports from realtime
+
+ Attempting to load a transport from realtime was forcing asterisk into an
+ infinite recursion loop. The first thing transport_apply did was to do a
+ sorcery retrieve by id for an existing transport of the same name. For files,
+ this just returns the previous object from res_sorcery_config's internal
+ container, if any. For realtime, the res_sourcery_realtime driver looks in the
+ database and finds the existing row but now it has to rehydrate it into a
+ sorcery object which means calling... transport_apply. And so it goes.
+
+ The main issue with loading from realtime (apart from the loop) was that
+ transport stores structures and pointers directly in the ast_sip_transport
+ structure instead of the separate ast_transport_state structure. This patch
+ separates those items into the ast_sip_transport_state structure. The pattern
+ is roughly the same as res_pjsip_outbound_registration.
+
+ Although all current usages of ast_sip_transport and ast_sip_transport_state
+ were modified to use the new ast_sip_get_transport_state API, the original
+ items are left in ast_sip_transport and kept updated to maintain ABI
+ compatability for third-party modules. They are marked as deprecated and
+ noted that they're now in ast_sip_transport_state.
+
+ ASTERISK-25606 #close
+ Reported-by: Martin Moučka
+
+ Change-Id: Ic7a836ea8e786e8def51fe3f8cce855ea54f5f19
+
+2016-01-25 17:36 +0000 [6f978fbfe5] Richard Mudgett <rmudgett@digium.com>
+
+ * app_confbridge: Only use b_profile options from the conference.
+
+ A user cannot set new bridge options after the conference is created by
+ the first user. Attempting to do so is documented as undefined behavior.
+
+ This patch ensures that the bridge profile options used are from the
+ conference and not what a subsequent user may have tried to set.
+
+ Change-Id: I1b6383eba654679e5739d5a8de98199cf074a266
+
+2016-02-05 10:29 +0000 [ec8fd6714d] gtjoseph <george.joseph@fairview5.com>
+
+ * chan_misdn: Fix a few issues causing compile errors
+
+ Change-Id: I54b48c24d7ca88ed80496fdfd142d08772a7ab98
+
+2016-02-04 16:17 +0000 [6a799cd78f] Mark Michelson <mmichelson@digium.com>
+
+ * Check for OpenSSL defines before trying to use them.
+
+ The SSL_OP_NO_TLSv1_1 and SSL_OP_NO_TLSv1_2 defines did not exist prior
+ to OpenSSL version 1.0.1. A recent commit attempts to, by default, set
+ these options, which can cause problems on systems with older OpenSSL
+ installations.
+
+ This commit adds a configure script check for those defines and will not
+ attempt to make use of those if they do not exist. We will print a
+ warning urging the user to upgrade their OpenSSL installation if those
+ defines are not present.
+
+ Change-Id: I6a2eb9a43fd0738b404d8f6f2cf4b5c22d9d752d
+2016-02-03 14:25 +0000 [953d1cc11a] gtjoseph <george.joseph@fairview5.com>
+
+ * pjsip/alembic: Add missing columns to system and registration
+
+ ps_systems needed disable_tcp_switch
+ ps_registrations needed line and endpoint
+
+ ASTERISK-25737 #close
+
+ Change-Id: Iaf9c2d69e62243d9fa53104c28c5339c47d4ac19
+
+2016-02-04 11:39 +0000 [23829b3253] Mark Michelson <mmichelson@digium.com>
+
+ * res_stasis_device_state: Fix refcounting error.
+
+ Device state subscription lifetimes were governed by when the
+ subscription was established and unsubscribed from. However, it is
+ possible that at the time of unsubscription, there could be device state
+ events still in flight. When those device state events occur, the device
+ state callback could attempt to dereference a freed pointer. Crash.
+
+ This change ensures that the lifetime of the device state subscription
+ does not end until the underlying stasis subscription has confirmed that
+ its final message has been sent.
+
+ Change-Id: I25a0f1472894c1a562252fb7129671478e25e9b2
+
+2016-01-27 10:44 +0000 [4e8e6d3922] Sean Bright <sean.bright@gmail.com>
+
+ * res_rtp_asterisk: Allow ICE host candidates to be overriden
+
+ During ICE negotiation the IPs of the local interfaces are sent to the remote
+ peer as host candidates. In many cases Asterisk is behind a static one-to-one
+ NAT, so these host addresses will be internal IP addresses.
+
+ To help in hiding the topology of the internal network, this patch adds the
+ ability to override the host candidates by matching them against a
+ user-defined list of replacements.
+
+ Change-Id: I1c9541af97b83a4c690c8150d19bf7202c8bff1f
+
+2015-12-07 12:46 +0000 [c6b1b2b1c8] Richard Mudgett <rmudgett@digium.com>
+
+ * AST-2016-003 udptl.c: Fix uninitialized values.
+
+ Sending UDPTL packets to Asterisk with the right amount of missing
+ sequence numbers and enough redundant 0-length IFP packets, can make
+ Asterisk crash.
+
+ ASTERISK-25603 #close
+ Reported by: Walter Doekes
+
+ ASTERISK-25742 #close
+ Reported by: Torrey Searle
+
+ Change-Id: I97df8375041be986f3f266ac1946a538023a5255
+2016-02-03 12:05 +0000 [f8acadde2c] Joshua Colp <jcolp@digium.com>
+
+ * AST-2016-001 http: Provide greater control of TLS and set modern defaults.
+
+ This change exposes the configuration of various aspects of the TLS
+ support and sets the default to the modern standards.
+
+ The TLS cipher is now set to the best values according to the
+ Mozilla OpSec team, different TLS versions can now be disabled, and
+ the cipher order can be forced to be that of the server instead of
+ the client.
+
+ ASTERISK-24972 #close
+
+ Change-Id: I0a10f2883f7559af5e48dee0901251dbf30d45b8
+2015-09-28 17:07 +0000 [3c81a052c8] Richard Mudgett <rmudgett@digium.com>
+
+ * AST-2016-002 chan_sip.c: Fix retransmission timeout integer overflow.
+
+ Setting the sip.conf timert1 value to a value higher than 1245 can cause
+ an integer overflow and result in large retransmit timeout times. These
+ large timeout times hold system file descriptors hostage and can cause the
+ system to run out of file descriptors.
+
+ NOTE: The default sip.conf timert1 value is 500 which does not expose the
+ vulnerability.
+
+ * The overflow is now detected and the previous timeout time is
+ calculated.
+
+ ASTERISK-25397 #close
+ Reported by: Alexander Traud
+
+ Change-Id: Ia7231f2f415af1cbf90b923e001b9219cff46290
+2016-02-03 14:07 +0000 [2a6ee8caeb] gtjoseph <george.joseph@fairview5.com>
+
+ * logging: Remove/fix some message annoyances
+
+ test_dlinklists doesn't need to NOTICE everyone that every macro worked.
+
+ res_phoneprov doesn't need to VERBOSE everyone that a phoneprov extension or
+ provider was registered.
+
+ res_odbc was missing a newline at the end of one message.
+
+ Change-Id: I6c06361518ef3711821795e535acd439782a995e
+
+2016-02-02 10:52 +0000 [32fc784284] Alexei Gradinari License #5691
+
+ * res_sorcery_realtime: Fix regex regression.
+
+ A regression was introduced where searching for realtime PJSIP objects
+ by regex by starting the regex with a leading "^" would cause no items
+ to be returned.
+
+ This was due to a change which attempted to drop the requirement for a
+ leading "^" to be present due to how some CLI commands formulate their
+ regexes. However, the change, rather than simply eliminating the
+ requirement, caused any regexes that did begin with "^" to end up not
+ returning the expected results.
+
+ This change fixes the problem by inspecting the regex and formulating
+ the realtime query differently depending on if it begins with "^".
+
+ ASTERISK-25702 #close
+ Reported by Nic Colledge
+
+ Patches:
+ realtime_retrieve_regex.patch submitted by Alexei Gradinari License #5691
+
+ Change-Id: I055df608a6e6a10732044fa737a9fe8dca602693
+
+2016-02-02 04:05 +0000 [0405c31756] Karsten Wemheuer <kwe-digium@iptam.com>
+
+ * res_xmpp: Does not connect in component mode
+
+ The module res_xmpp does not accept usernames in the form used in component
+ mode (XEP-0114). In component mode there is no @something in the name.
+ In component mode the connection is now not dropped anymore.
+
+ If the xmpp server sends out a "stream" tag before handshake is finished,
+ the connection gets dropped in res_xmpp. Now this tag will be ignored and
+ the connection will be established.
+
+ After connecting there will be an exchange of presence states. This does
+ not work as expected in component mode. The responsible function
+ "xmpp_pak_presence" is left before the states get sent out. Sending
+ presence states in component mode is now moved to the top of the function.
+
+ ASTERISK-25735 #close
+
+ Change-Id: I70e036f931c3124ebb2ad1e56f93ed35cfdd9d5c
+2016-02-01 13:04 +0000 [8804d0973c] gtjoseph <george.joseph@fairview5.com>
+
+ * build_system: Fix some warnings highlighted by clang
+
+ Fix some warnings found with clang.
+
+ Change-Id: I5195b6189b148c2ee3ed4a19d015a6d4ef3e77bd
+
+2016-02-01 13:16 +0000 [109b0aff6b] gtjoseph <george.joseph@fairview5.com>
+
+ * res/Makefile: Fix bug in "clean" target for ari
+
+ The "clean" target was attempting to clean res/ari from inside
+ the res directory which doesn't remove anything. Removed the res/
+ prefix.
+
+ Change-Id: Ib1a518d54efa81b9fd5a42742d43cc3767435bf6
+
+2016-01-31 20:13 +0000 [a85fab7c44] gtjoseph <george.joseph@fairview5.com>
+
+ * pjsip/alembic: Fix definition of qualify_timeout
+
+ A recent commit set qualify_timeout to Decimal which isn't supported.
+ This path corrects it to Float.
+
+ Change-Id: I038f5274ba8cb60f8518a5845ce448d49306aadf
+
+2016-01-29 07:39 +0000 [aa9348ab9a] Stefan Engström <stefanen@kth.se>
+
+ * chan_sip.c: AMI & CLI notify methods get different values of asterisk's own ip.
+
+ When I ask asterisk to send a SIP NOTIFY message to a sip peer using either a)
+ AMI action: SIPnotify or b) cli command: sip notify <cmd> <peer>, I expect
+ asterisk to include the same value for its own ip in both cases a) and b),
+ but it seems a) produces a contact header like Contact:
+ <sip:asterisk@192.168.1.227:8060> whereas b) produces a contact header like
+ <sip:asterisk@127.0.0.1:8060>. 0.0.0.0:8060 is my udpbindaddr in sip.conf
+
+ My guess is that manager_sipnotify should call
+ ast_sip_ouraddrfor(&p->sa, &p->ourip, p) the same way sip_cli_notify does,
+ because after applying this patch, both cases a) and b) produce
+ the contact header that I expect: <sip:asterisk@192.168.1.227:8060>
+
+ Reported by: Stefan Engström
+ Tested by: Stefan Engström
+
+ Change-Id: I86af5e209db64aab82c25417de6c768fb645f476
+2015-12-23 15:07 +0000 [65bd4fcc3f] Mark Michelson <mmichelson@digium.com>
+
+ * res_odbc: Remove connection management
+
+ Asterisk by default will create a single database connection and share
+ it among all threads that attempt to access the database. In previous
+ versions of Asterisk, this was tolerable, because the most used channel
+ driver, chan_sip, mostly accessed the database from a single thread.
+ With PJSIP, however, many threads may be attempting to perform database
+ operations, and there is the potential for many more database accesses,
+ meaning the concurrency is a horrible bottleneck if only one connection
+ is shared.
+
+ Asterisk has a connection pooling facility built into it, but the
+ implementation has flaws. For one, there is a strict limit on the number
+ of simultaneous connections that could be made to the database. Anything
+ beyond the maximum would result in a failed operation. Attempting to
+ predict what the maximum should be is nearly impossible even for someone
+ intimately familiar with Asterisk's threading model. In addition, use of
+ transactions in the dialplan can cause some severe bugs if connection
+ pooling is enabled.
+
+ This commit seeks to fix the concurrency problem by removing all
+ connection management code from Asterisk and leaving that to the
+ underlying unixODBC code instead. Now, Asterisk does not share a single
+ connection, nor does it try to maintain a connection pool. Instead, all
+ Asterisk ever does is request a connection from unixODBC and allow
+ unixODBC to either allocate those connections or retrieve them from a
+ pool.
+
+ Doing this has a bit of a ripple effect. For one, since connections are
+ not long-lived objects, several of the safeguards that previously
+ existed have been removed. We don't have to worry about trying to use a
+ connection that has gone stale. In every case, when we request a
+ connection, it has just been made and we don't need to perform any
+ sanity checks to be sure it's still active.
+
+ Another major player affected by this change is transactions.
+ Transactions and their respective connections were so tightly coupled
+ that it was almost pornographic. This code change moves
+ transaction-related code to its own file separate from the core ODBC
+ functionality. This way, the core of ODBC does not even have to know
+ that transactions exist.
+
+ In making this large change, I had to look at a lot of code and
+ understand it. When making this change, I discovered several places
+ where the behavior is definitely not ideal, but it seemed outside the
+ scope of this change to be fixing it. Instead, any place where I saw
+ some sort of room for improvement has had a XXX comment added explaining
+ what could be altered to improve it.
+
+ Change-Id: I37a84def5ea4ddf93868ce8105f39de078297fbf
+
+2016-01-28 12:44 +0000 [2a9e623ff9] Richard Mudgett <rmudgett@digium.com>
+
+ * config_options.c: Fix warning message wording.
+
+ Change-Id: I915ea437936320393afde0e7552cf0a980a6b2e4
+
+2016-01-25 17:34 +0000 [ed3c9c1512] Richard Mudgett <rmudgett@digium.com>
+
+ * app_confbridge.c: Replace inlined code with existing function.
+
+ Change-Id: Ida5594e9f8d7c1fc18eeb733a11f8fb96326da51
+
+2016-01-25 16:05 +0000 [1d0abf86e7] Richard Mudgett <rmudgett@digium.com>
+
+ * app_confbridge: Add ability to get the muted conference state.
+
+ * Added CONFBRIDGE_INFO(muted,) for querying the muted conference state.
+
+ * Added Muted header to AMI ConfbridgeListRooms action response list
+ events to indicate the muted conference state.
+
+ * Added Muted column to CLI "confbridge list" output to indicate the muted
+ conference state and made the locked column a yes/no value instead of a
+ locked/unlocked value.
+
+ ASTERISK-20987
+ Reported by: hristo
+
+ Change-Id: I4076bd8ea1c23a3afd4f5833e9291b49a0c448b1
+
+2016-01-26 17:59 +0000 [f0d40afa69] Richard Mudgett <rmudgett@digium.com>
+
+ * app_confbridge.c: Update CONFBRIDGE and CONFBRIDGE_INFO documentation.
+
+ Change-Id: Ic1f9e22ba1f2ff3b3f5cb017c5ddcd9bd48eccc7
+
+2016-01-25 15:48 +0000 [3e51e5c7fd] Richard Mudgett <rmudgett@digium.com>
+
+ * app_confbridge: Make non-admin users join a muted conference muted.
+
+ ASTERISK-20987 #close
+ Reported by: hristo
+
+ Change-Id: Ic61a2b524ab3a4cfadf227fc6b3506527bc03f38
+
+2016-01-27 13:02 +0000 [9da18af992] gtjoseph <george.joseph@fairview5.com>
+
+ * res_pjsip: Add res_pjproject dependency to UPGRADE.txt and samples
+
+ Since res_pjsip now depends on res_pjproject, this is now mentioned
+ in UPGRADE.txt and the basic-pbx modules.conf has been updated.
+
+ Change-Id: I42826597d5e10f08e518208860c44c96e52f1b2d
+2016-01-27 10:29 +0000 [aee8448bc2] gtjoseph <george.joseph@fairview5.com>
+
+ * build_system: Prevent goals needing makeopts from running when it's missing
+
+ The Makefile only optionally includes makeopts so when goals like uninstall that
+ dont depend on anything else are run after a distclean, rules like
+ 'rm -f "$(DESTDIR)$(ASTMODDIR)/"*' get run as 'rm -f ""/*' which attempts
+ to remove everything in the root directory.
+
+ Although there's a rule defined for makeopts which prints a message and does
+ an 'exit 1', since '-include makepopts' was specified (with the -), the exit
+ was ignored letting the rest of the rules run.
+
+ This patch makes makeopts required unless the goal has the string 'clean' in it.
+
+ ASTERISK-25730 #close
+ Reported-by: George Joseph
+
+ Change-Id: I1bce59a7ea4f48e7a468e22b2abbb13c63417ac7
+
+2016-01-25 09:35 +0000 [f22074e5d9] Joshua Colp <jcolp@digium.com>
+
+ * config: Allow options to register when documentation is unavailable.
+
+ The config options framework is strict in that configuration options must
+ be documented unless XML documentation support is not available. In
+ practice this is useful as it ensures documentation exists however in
+ off-nominal cases this can cause strange problems.
+
+ If it is expected that a config option has a non-zero or non-empty
+ default value but the config option documentation is unavailable
+ this reasonable expectation will not be met. This can cause obscure
+ crashes and weirdness depending on how the code handles it.
+
+ This change tweaks the behavior to ensure that the config option
+ is still allowed to register, apply default values, and be set when
+ devmode is not enabled. If devmode is enabled then the option can
+ NOT be set.
+
+ This also does not remove the initial documentation error message that
+ is output on load when registering the configuration option.
+
+ ASTERISK-25725 #close
+
+ Change-Id: Iec42fca6b35f31326c33fcdc25473f6fd7bc8af8
+
+2016-01-25 10:23 +0000 [4a3275abb9] Mark Michelson <mmichelson@digium.com>
+
+ * Stasis: Use custom structure when setting variables.
+
+ A recent change to queue channel variable setting to the Stasis control
+ queue caused a regression. When setting channel variables, it is
+ possible to give a NULL channel variable value in order to unset the
+ variable (i.e. remove it from the channel variable list). The change
+ introduced a call to ast_variable_new(), which is not tolerant of NULL
+ channel variable values.
+
+ This new change switches from using ast_variable to using a custom
+ channel variable struct that is lighter weight and NULL value-tolerant.
+
+ Change-Id: I784d7beaaa3c036ea936d103e7caf0bb1562162d
+
+2016-01-25 16:56 +0000 [b2c8a99f9e] Rusty Newton <rnewton@digium.com>
+
+ * sounds/Makefile: Incremented core and extra sounds versions to 1.5
+
+ Core and extra sounds 1.5 was recently released! The tarballs contain
+ change descriptions however I figure more people will see this one so
+ I'll try to be a bit detailed. Approximately 60 sounds were moved from Extra
+ to Core for en, en_GB, fr and added for languages that didn't already
+ have Extra sound sets (it,ja,ru).
+
+ In addition all of the English and Russian sounds have been completely
+ re-recorded.
+
+ Sounds moved and added:
+ activated,added,all-circuits-busy-now,astcc-followed-by-pound
+ at-tone-time-exactly,call-forwarding,call-fwd-no-ans,call-fwd-on-busy
+ ,call-fwd-unconditional,calling,call-waiting,cancelled,
+ cannot-complete-as-dialed,check-number-dial-again,conf-full,de-activated
+ ,disabled,do-not-disturb,enabled,enter-num-blacklist,entr-num-rmv-blklist
+ ,extension,feature-not-avail-line,for,from-unknown-caller,goodbye,hello
+ ,if-correct-press,im-sorry,info-about-last-call,is,is-in-use,is-set-to
+ ,location,number,number-not-answering,num-was-successfully,one-moment-please
+ ,please-try-again,pls-hold-while-try,pls-try-call-later,pm-invalid-option
+ ,privacy-to-blacklist-last-caller,removed,simul-call-limit-reached
+ ,something-terribly-wrong,sorry,sorry-youre-having-problems,speed-dial
+ ,speed-dial-empty,telephone-number,time,to-call-this-number,to-extension
+ ,to-listen-to-it,to-rerecord-it,unidentified-no-callback,with,you-entered
+ ,your
+
+ There were also a few random fixes here and there to file names for a few
+ of the languages.
+
+ ASTERISK-25068 #close
+
+ Change-Id: I2b594344ec585d7dfd922b40c1af43b1508828b3
+2016-01-25 16:51 +0000 [8261bda1bf] Mark Michelson <mmichelson@digium.com>
+
+ * res_pjsip_pubsub: Prevent crash from AMI command on freed subscription.
+
+ A test recently uncovered that running an ill-timed AMI command to show
+ inbound subscriptions could cause a crash since Asterisk will try to
+ operate on a freed subscription.
+
+ The fix for this is to remove the subscription tree from the list of
+ subscriptions at the time that we are sending our final NOTIFY request
+ out. This way, as the subscription is in the process of dying, it is
+ inaccessible from AMI.
+
+ Change-Id: Ic0239003d8d73e04c47c12dd2a7e23867e5b5b23
+
+2016-01-25 11:03 +0000 [a6823bb0c4] Corey Farrell <git@cfware.com>
+
+ * chan_sip: Fix buffer overrun in sip_sipredirect.
+
+ sip_sipredirect uses sscanf to copy up to 256 characters to a stacked buffer
+ of 256 characters. This patch reduces the copy to 255 characters to leave
+ room for the string null terminator.
+
+ ASTERISK-25722 #close
+
+ Change-Id: Id6c3a629a609e94153287512c59aa1923e8a03ab
+
+2016-01-22 15:08 +0000 [1003c2eb05] Mark Michelson <mmichelson@digium.com>
+
+ * Stasis: Fix potential memory leak of control data.
+
+ When queuing tasks onto the Stasis control queue, you can pass an
+ arbitrary data pointer and a function to free that data. All ARI
+ commands that use the Stasis control queue made the assumption that the
+ destructor function would be called in all paths, whether the task was
+ queued successfully or not. However, this was not correct. If a task was
+ queued onto a control structure that was already completed, the
+ allocated data would not be freed properly.
+
+ This patch corrects this by making sure that all return paths call the
+ data destructor.
+
+ Change-Id: Ibf06522094f8e5c4cce652537dc5d7222b1c4fcb
+
+2016-01-21 10:58 +0000 [eedd77fda0] Mark Michelson <mmichelson@digium.com>
+
+ * Stasis: Use control queue to prevent crash.
+
+ A crash occurred when attempting to set a channel variable on a channel
+ that had already been hung up. This is because there is a small window
+ between when a control is grabbed and when the channel variable is set
+ that the channel can be hung up.
+
+ The fix here is to queue the setting of the channel variable onto the
+ control queue. This way, the manipulation of the channel happens in a
+ thread where it is safe to be done.
+
+ In this change, I also noticed that the setting of bridge roles on
+ channels was being done outside of the control queue, so I also changed
+ those operations to be done in the control queue.
+
+ ASTERISK-25709 #close
+ Reported by Mark Michelson
+
+ Change-Id: I2a0a4d51bce6fba6f1d9954e40935e42f366ea78
+
+2016-01-22 11:48 +0000 [1c95b211a0] Richard Mudgett <rmudgett@digium.com>
+
+ * logger.c: Fix buffer overrun found by address sanitizer.
+
+ The null terminator of the tail struct member was not being allocated
+ when no logger.conf config file is installed.
+
+ ASTERISK-25714 #close
+ Reported by: Badalian Vyacheslav
+
+ Change-Id: I45770fdd08af39506a3bc33ba279c4f16e047a30
+
+2016-01-21 16:40 +0000 [6ff945ab87] Corey Farrell <git@cfware.com>
+
+ * Build System: Add support for checking alembic branches.
+
+ * Add 'check-alembic' target to root Makefile.
+ * Create build_tools/make_check_alembic to do the actual checks.
+
+ ASTERISK-25685
+
+ Change-Id: Ibb3cae7d1202ac23dc70b0f3b5801571ad46b004
+
+2016-01-19 18:20 +0000 [02035212de] Richard Mudgett <rmudgett@digium.com>
+
+ * res/res_pjsip/presence_xml.c: Add missing 2nd call presence state case.
+
+ ASTERISK-25712 #close
+ Reported by: Richard Mudgett
+
+ Change-Id: I70634df24f8c6c3a2c66c45af61d021e4999253f
+
+2016-01-18 03:49 +0000 [c68c66c61f] Diederik de Groot <ddegroot@talon.nl>
+
+ * main/asterisk.c: ast_el_read_char
+
+ Make sure buf[res] is not accessed at res=-1 (buffer underrun).
+ Address Sanitizer will complain about this quite loudly.
+
+ ASTERISK-24801 #close
+
+ Change-Id: Ifcd7f691310815a31756b76067c56fba299d3ae9
+
+2016-01-13 16:49 +0000 [f87c3275cc] Richard Mudgett <rmudgett@digium.com>
+
+ * res_pjsip: Add CLI "pjsip dump endpt [details]"
+
+ Dump the res_pjsip endpt internals.
+
+ In non-developer mode we will not document or make easily accessible the
+ "details" option even though it is still available. The user has to know
+ it exists to use it. Presumably they would also be aware of the potential
+ crash warning below.
+
+ Warning: PJPROJECT documents that the function used by this CLI command
+ may cause a crash when asking for details because it tries to access all
+ active memory pools.
+
+ Change-Id: If2d98a3641c9873364d1daaad971376311aef3cb
+
+2016-01-18 17:16 +0000 [46b2de55f9] Matt Jordan <mjordan@digium.com>
+
+ * funcs/func_cdr: Correctly report high precision values for duration and billsec
+
+ When CDRs were refactored, func_cdr's ability to report high precision values
+ for duration and billsec (the 'f' option) was broken. This was due to func_cdr
+ incorrectly interpreting the duration/billsec values provided by the CDR engine
+ in milliseconds, as opposed to seconds. Since the CDR engine only provides
+ duration and billsec in seconds, and does not expose either attribute with
+ sufficient precision to merely pass back the underlying value, this patch fixes
+ the bug by re-calculating duration and billsec with microsecond precision based
+ on the start/answer/end times on the CDR.
+
+ ASTERISK-25179 #close
+
+ Change-Id: I8bc63822b496537a5bf80baf6102c06206bee841
+
+2016-01-18 19:20 +0000 [137fe5ae01] gtjoseph <george.joseph@fairview5.com>
+
+ * res_pjproject: Add module providing pjproject logging and utils
+
+ res_pjsip_log_forwarder has been renamed to res_pjproject
+ and enhanced as follows:
+
+ As a follow-on to the recent 'Add CLI "pjsip show buildopts"' patch,
+ a new ast_pjproject_get_buildopt function has been added. It
+ allows the caller to get the value of one of the buildopts.
+
+ The initial use case is retrieving the runtime value of
+ PJ_MAX_HOSTNAME to insure we don't send a hostname greater
+ than pjproject can handle. Since it can differ between
+ the version of pjproject that Asterisk was compiled against
+ and the version of pjproject that Asterisk is running against,
+ we can't use the PJ_MAX_HOSTNAME macro directly in Asterisk
+ source code.
+
+ Change-Id: Iab6e82fec3d7cf00c1cf6185c42be3e7569dee1e
+
+2016-01-19 17:15 +0000 [b5c13c1545] Joshua Colp <jcolp@digium.com>
+
+ * test_threadpool: Wait for each task to complete and fix memory leak.
+
+ This change makes the thread_timeout_thrash unit test wait for
+ each task to complete. This fixes the problem where the test would
+ prematurely end when all threads were gone and a new one had to be
+ started to handle the last task. It also increases the thrasing as
+ it is now more likely for each task to encounter the above scenario.
+
+ This also fixes a memory leak where the data for each task was not
+ being freed.
+
+ ASTERISK-25611 #close
+
+ Change-Id: I5017d621a4dc911f509074c16229b86bff2fb3c6
+
+2016-01-18 19:44 +0000 [0ab89182d9] Richard Mudgett <rmudgett@digium.com>
+
+ * taskprocessor.c: Increase CLI "core ping taskprocessor" timeout.
+
+ Change-Id: I4892d6acbb580d6c207d006341eaf5e0f8f2a029
+
+2016-01-18 19:43 +0000 [a2a8ea3330] Richard Mudgett <rmudgett@digium.com>
+
+ * taskprocessor.c: Fix some taskprocessor unrefs.
+
+ You have to call ast_taskprocessor_unref() outside of the taskprocessor
+ implementation code. Taskprocessor use since v12 has become more
+ transient than just the singleton uses in earlier versions.
+
+ Change-Id: If7675299924c0cc65f2a43a85254e6f06f2d61bb
+
+2016-01-19 13:44 +0000 [d604a9afc8] Richard Mudgett <rmudgett@digium.com>
+
+ * Fix alembic branches on v13.
+
+ Change-Id: I313449b609ede18ad1e1763a655dd23b9210a8e0
+
+2016-01-18 18:45 +0000 [a0c79f3a4f] gtjoseph <george.joseph@fairview5.com>
+
+ * pjsip_loging_refactor: Rename res_pjsip_log_forwarder to res_pjproject
+
+ Change-Id: I5387821f29e5caa0cba0b7d62b0fc0d341e7e20b
+
+2016-01-14 09:26 +0000 [018ccf680b] Rusty Newton <rnewton@digium.com>
+
+ * func_channel: Add help text for undocumented CHANNEL function arguments
+
+ Adding help text documentation for:
+ * hangupsource
+ * appname
+ * appdata
+ * exten
+ * context
+ * channame
+ * uniqueid
+ * linkedid
+
+ ASTERISK-24097 #close
+ Reported by: Steven T. Wheeler
+ Tested by: Rusty Newton
+
+ Change-Id: Ib94b00568b0433987df87d5b67ea529b5905754d
+
+2016-01-16 13:18 +0000 [5644bca9f9] Daniel Journo <dan@keshercommunications.com>
+
+ * Update version number in features.conf.sample
+
+ Update the version number in the comments from Asterisk 12 to Asterisk 12+
+
+ Change-Id: Ie692ac8cda3c993c3bf10f27f51a1cca3317ec7b
+
+2016-01-15 19:52 +0000 [3f5f30cf82] Corey Farrell <git@cfware.com>
+
+ * main/config: Clean config maps on shutdown.
+
+ ASTERISK-25700 #close
+
+ Change-Id: I096da84f9c62c6095f68bcf98eac4b7c7868e808
+
+2016-01-14 14:42 +0000 [660fedecb7] Kevin Harwell <kharwell@digium.com>
+
+ * bridge_basic: don't cache xferfailsound during an attended transfer
+
+ The xferfailsound was read from the channel at the beginning of the transfer,
+ and that value is "cached" for the duration of the transfer. Therefore, changing
+ the xferfailsound on the channel using the FEATURE() dialplan function does
+ nothing once the transfer is under way.
+
+ This makes it so the transfer code instead gets the xferfailsound configuration
+ options from the channel when it is actually going to be used.
+
+ This patch also fixes a potential memory leak of the props object as well as
+ making sure the condition variable gets initialized before being destroyed.
+
+ ASTERISK-25696 #close
+
+ Change-Id: Ic726b0f54ef588bd9c9c67f4b0e4d787934f85e4
+
+2015-07-10 10:37 +0000 [9cda1de34d] Richard Mudgett <rmudgett@digium.com>
+
+ * taskprocessor.c: Simplify ast_taskprocessor_get() return code.
+
+ Change-Id: Id5bd18ef1f60ef8be453e677e98478298358a9d1
+
+2016-01-13 18:20 +0000 [a79af2b312] Richard Mudgett <rmudgett@digium.com>
+
+ * astmm.c: Add more stats to CLI "memory show" commands.
+
+ * Add freed regions totals to allocations and summary.
+
+ * Add totals for all allocations and not just the selected allocations.
+
+ Change-Id: I61d5a5112617b0733097f2545a3006a344b4032a
+
+2016-01-14 16:00 +0000 [83feb7db3b] Kevin Harwell <kharwell@digium.com>
+
+ * bridge_basic: don't play an attended transfer fail sound after target hangs up
+
+ If the attended transfer destination answers (picks call up or goes to
+ voicemail) and then hangs up on the transferer then transferer hears the
+ fail sound.
+
+ This patch makes it so the fail sound is not played when the transfer
+ destination/target hangs up after answering.
+
+ ASTERISK-25697 #close
+
+ Change-Id: I97f142fe4fc2805d1a24b7c16143069dc03d9ded
+
+2016-01-14 13:22 +0000 [935d641f3b] Mark Michelson <mmichelson@digium.com>
+
+ * Remove res/ari/* content during 'make clean'.
+
+ 'make clean' and 'make distclean' can leave behind .o files in the
+ res/ari/ directory. One observed consequence of this is that running
+ Asterisk with MALLOC_DEBUG can cause Asterisk to crash immediately on
+ startup sometimes.
+
+ By ensuring that we are making a clean build, we can be sure that stale
+ files are not being included in the build and causing problems when
+ build options should have caused files to be re-built.
+
+ ASTERISK-25683 #close
+ Reported by yaron nahum
+
+ Change-Id: I1f48baa904d2468eddeefb42ee68a56af7adc7b7
+
+2016-01-13 15:58 +0000 [46f21df302] Daniel Journo <dan@keshercommunications.com>
+
+ * pjsip/alembic: Fix qualify_timeout column definition
+
+ Corrects the qualify_timeout column type from Integer to Decimal
+
+ ASTERISK-25686 #close
+ Reported-by: Marcelo Terres
+
+ Change-Id: I757d0e3c011ee9be6cd5abd48bc92441a405d3c8
+
+2016-01-12 11:14 +0000 [32b29d7b02] Joshua Colp <jcolp@digium.com>
+
+ * app: Queue hangup if channel is hung up during sub or macro execution.
+
+ This issue was exposed when executing a connected line subroutine.
+ When connected or redirected subroutines or macros are executed it is
+ expected that the underlying applications and logic invoked are fast
+ and do not consume frames. In practice this constraint is not enforced
+ and if not adhered to will cause channels to continue when they shouldn't.
+ This is because each caller of the connected or redirected logic does not
+ check whether the channel has been hung up on return. As a result the
+ the hung up channel continues.
+
+ This change makes it so when the API to execute a subroutine or
+ macro is invoked the channel is checked to determine if it has hung up.
+ If it has then a hangup is queued again so the caller will see it
+ and stop.
+
+ ASTERISK-25690 #close
+
+ Change-Id: I1f9a8ceb1487df0389f0d346ce0f6dcbcaf476ea
+
+2016-01-13 07:20 +0000 [e7cfda0b38] Sean Bright <sean.bright@gmail.com>
+
+ * res_musiconhold: Prevent multiple simultaneous reloads.
+
+ There are two ways in which the reload() function in res_musiconhold can be
+ called from the CLI:
+
+ * module reload res_musiconhold.so
+ * moh reload
+
+ In the former case, the module loader holds a lock that prevents multiple
+ concurrent calls, but in the latter there is no such protection.
+
+ This patch changes the 'moh reload' CLI command to invoke the module loader
+ directly, rather than call reload() explicitly.
+
+ ASTERISK-25687 #close
+
+ Change-Id: I408968b4c8932864411b7f9ad88cfdc7b9ba711c
+2016-01-12 14:25 +0000 [5586abc957] Richard Mudgett <rmudgett@digium.com>
+
+ * res_pjsip_log_forwarder.c: Add CLI "pjsip show buildopts".
+
+ PJPROJECT has a function available to dump the compile time
+ options used when building the library.
+
+ * Add CLI "pjsip show buildopts" command.
+
+ * Update contrib/scripts/autosupport to get pjproject information.
+
+ Change-Id: Id93a6a916d765b2a2e5a1aeb54caaf83206be748
+
+2016-01-12 10:36 +0000 [4cd58c3b20] Mark Michelson <mmichelson@digium.com>
+
+ * res_sorcery_realtime: Remove leading ^ requirement.
+
+ res_sorcery_realtime's search-by-regex callback performed a check to
+ ensure that the passed-in regex began with a caret (^). If it did not,
+ then no results would be returned.
+
+ This callback only started to become used when "like" support was added
+ to PJSIP CLI commands. The CLI command for listing objects would pass an
+ empty regex ("") to the sorcery backend if no "like" statement was
+ present. For most sorcery backends, this resulted in returning all
+ objects. However, for realtime, this resulted in returning no objects.
+
+ This commit seeks to fix the regression by removing the requirement from
+ res_sorcery_realtime for the passed-in-regex to begin with a caret.
+
+ ASTERISK-25689 #close
+ Reported by Marcelo Terres
+
+ Change-Id: I22b4dc5d7f3f11bb29ac2e42ef94682e9bab3b20
+
+2016-01-07 11:57 +0000 [219c204a41] gtjoseph <george.joseph@fairview5.com>
+
+ * pjsip_sdp_rtp: Add option endpoint/bind_rtp_to_media_address
+
+ On a system with multiple ip addresses in the same subnet, if a
+ transport is bound to a specific ip address and endpoint/media_address
+ is set, the SIP/SDP will have the correct address in all fields but
+ the rtp stream MAY still originate from one of the other ip addresses,
+ most probably the "primary" ip address. This happens because
+ res_pjsip_sdp_rtp/create_rtp always calls ast_instance_new with
+ the "all" ip address (0.0.0.0 or ::).
+
+ The new option causes res_pjsip_sdp_rtp/create_rtp to call
+ ast_rtp_instance_new with the endpoint's media_address (if specified)
+ instead of the "all" address. This causes the packets to originate from
+ the specified address.
+
+ ASTERISK-25632
+ ASTERISK-25637
+ Reported-by: Olivier Krief
+ Reported-by: Dan Journo
+
+ Change-Id: I3dfaa079e54ba7fb7c4fd1f5f7bd9509bbf8bd88
+
+2016-01-10 16:22 +0000 [22801a06ee] Daniel Journo <dan@keshercommunications.com>
+
+ * pjsip: Add option global/regcontext
+
+ Added new global option (regcontext) to pjsip. When set, Asterisk will
+ dynamically create and destroy a NoOp priority 1 extension
+ for a given endpoint who registers or unregisters with us.
+
+ ASTERISK-25670 #close
+ Reported-by: Daniel Journo
+
+ Change-Id: Ib1530c5b45340625805c057f8ff1fb240a43ea62
+
+2016-01-08 15:22 +0000 [1600ebca7d] Kevin Harwell <kharwell@digium.com>
+
+ * pbx: Deadlock between contexts container and context_merge locks
+
+ Recent changes (ASTERISK-25394 commit 2bd27d12223fe33b58c453965ed5c6ed3af7c4f5)
+ introduced the possibility of a deadlock. Due to the mentioned modifications
+ ast_change_hints now needs to keep both merge/delete and state callbacks from
+ occurring while it executes. Unfortunately, sometimes ast_change_hints can be
+ called with the contexts container locked. When this happens it's possible for
+ another thread to grab the context_merge_lock before the thread calling into
+ ast_change_hints does and then try to obtain the contexts container lock. This
+ of course causes a deadlock between the two threads. The thread calling into
+ ast_change_hints waits for the other thread to release context_merge_lock and
+ the other thread is waiting on that one to release the contexts container lock.
+
+ Unfortunately, there is not a great way to fix this problem. When hints change,
+ the subsequent state callbacks cannot run at the same time as a merge/delete,
+ nor when the usual state callbacks do. This patch alleviates the problem by
+ having those particular callbacks (the ones run after a hint change) occur in a
+ serialized task. By moving the context_merge_lock to a task it can now safely be
+ attempted or held without a deadlock occurring.
+
+ ASTERISK-25640 #close
+ Reported by: Krzysztof Trempala
+
+ Change-Id: If2210ea241afd1585dc2594c16faff84579bf302
+
+2016-01-10 17:08 +0000 [0fc3dad965] Corey Farrell <git@cfware.com>
+
+ * devicestate: Cleanup engine thread during graceful shutdown.
+
+ ASTERISK-25681 #close
+
+ Change-Id: I64337c70f0ebd8c77f70792042684607c950c8f1
+
+2016-01-10 13:51 +0000 [f34dd10495] Corey Farrell <git@cfware.com>
+
+ * manager: Cleanup manager_channelvars during shutdown.
+
+ ASTERISK-25680 #close
+
+ Change-Id: I3251d781cbc3f48a6a7e1b969ac4983f552b2446
+
+2016-01-10 13:27 +0000 [1d3a1167fc] Corey Farrell <git@cfware.com>
+
+ * res_calendar: Cleanup scheduler context at unload.
+
+ ASTERISK-25679 #close
+
+ Change-Id: I839159bf6882cccc1b23494c7aa2bc2a2624613f
+
+2016-01-08 11:49 +0000 [3a160cdbf6] Joshua Colp <jcolp@digium.com>
+
+ * res_rtp_asterisk: Revert DTLS negotiation changes.
+
+ Due to locking issues within pjnath these changes are being
+ reverted until pjnath can be changed.
+
+ ASTERISK-25645
+
+ Revert "res_rtp_asterisk.c: Fix DTLS negotiation delays."
+
+ This reverts commit 24ae124e4f7310cfa64c187b944b2ffc060da28d.
+
+ Change-Id: I2986cfb2c43dc14455c1bcaf92c3804f9da49705
+
+ Revert "res_rtp_asterisk: Resolve further timing issues with DTLS negotiation"
+
+ This reverts commit 965a0eee46d24321f74c244e23c5a5f45e67e12b.
+
+ Change-Id: Ie68fafde27dad4b03cb7a1e27ce2a8502c3f7bbe
+
+2016-01-09 17:57 +0000 [4b10fc9173] gtjoseph <george.joseph@fairview5.com>
+
+ * Revert "pjsip_location: Delete contact_status object when contact is deleted"
+
+ This reverts commit 0a9941de9d24093b5ff44096d1d7406f29d11e45.
+
+ Matt,
+
+ This patch causes another problem and should not have been needed.
+ Before this patch, persistent_endpoint_contact_deleted_observer WAS
+ deleting the contact_status when ast_sip_location_delete_contact was
+ called. By deleting it yourself in ast_sip_location_delete_contact
+ it was gone before the observer could run and the observer therefore
+ was throwing an error and not sending stasis/AMI/statsd messages.
+
+ So, I don't think this was the cause of your original issue. I also
+ had verified the contact AMI and statsd lifecycle and it was working.
+ I'll double check now though.
+
+ ASTERISK-25675
+ Reported-by: Daniel Journo
+
+ Change-Id: Ib586a6b7f90acb641b0c410f659743ab90e84f1a
+
+2016-01-09 18:04 +0000 [79b4309881] Corey Farrell <git@cfware.com>
+
+ * pbx_dundi: Run cleanup on failed load.
+
+ During failed startup of pbx_dundi no cleanup was performed. Add a call
+ to unload_module before returning AST_MODULE_LOAD_DECLINE.
+
+ ASTERISK-25677 #close
+
+ Change-Id: I8ffa226fda4365ee7068ac1f464473f1a4ebbb29
+
+2016-01-09 13:28 +0000 [a5406b1f9e] Corey Farrell <git@cfware.com>
+
+ * res_crypto: Perform cleanup at shutdown.
+
+ This change causes res_crypto to unregister CLI at shutdown while still
+ preventing the module from being unloaded.
+
+ ASTERISK-25673 #close
+
+ Change-Id: Ie5d57338dc2752abfc0dd05d0eec86413f2304fc
+
+2016-01-06 19:10 +0000 [cf8e7a580b] Richard Mudgett <rmudgett@digium.com>
+
+ * res_pjsip: Create human friendly serializer names.
+
+ PJSIP name formats:
+ pjsip/aor/<aor>-<seq> -- registrar thread pool serializer
+ pjsip/default-<seq> -- default thread pool serializer
+ pjsip/messaging -- messaging thread pool serializer
+ pjsip/outreg/<registration>-<seq> -- outbound registration thread pool
+ serializer
+ pjsip/pubsub/<endpoint>-<seq> -- pubsub thread pool serializer
+ pjsip/refer/<endpoint>-<seq> -- REFER thread pool serializer
+ pjsip/session/<endpoint>-<seq> -- session thread pool serializer
+ pjsip/websocket-<seq> -- websocket thread pool serializer
+
+ Change-Id: Iff9df8da3ddae1132cb2ef65f64df0c465c5e084
+
+2016-01-06 19:09 +0000 [4276f185f0] Richard Mudgett <rmudgett@digium.com>
+
+ * Sorcery: Create human friendly serializer names.
+
+ Sorcery name formats:
+ sorcery/<type>-<seq> -- Sorcery thread pool serializer
+
+ Change-Id: Idc2e5d3dbab15c825b97c38c028319a0d2315c47
+
+2016-01-06 19:09 +0000 [f02ac1b7f9] Richard Mudgett <rmudgett@digium.com>
+
+ * Stasis: Create human friendly taskprocessor/serializer names.
+
+ Stasis name formats:
+ subm:<topic>-<seq> -- Stasis subscription mailbox task processor
+ subp:<topic>-<seq> -- Stasis subscription thread pool serializer
+
+ Change-Id: Id19234b306e3594530bb040bc95d977f18ac7bfd
+
+2016-01-07 16:15 +0000 [ec1f1c6742] Richard Mudgett <rmudgett@digium.com>
+
+ * taskprocessor.c: New API for human friendly taskprocessor names.
+
+ * Add new API call to get a sequence number for use in human friendly
+ taskprocessor names.
+
+ * Add new API call to create a taskprocessor name in a given buffer and
+ append a sequence number.
+
+ Change-Id: Iac458f05b45232315ed64aa31b1df05b875537a9
+
+2016-01-06 17:19 +0000 [d8bc3e0c8b] Richard Mudgett <rmudgett@digium.com>
+
+ * taskprocessor.c: Fix CLI "core show taskprocessors" output format.
+
+ Update the CLI "core show taskprocessors" output format to not be
+ distorted because UUID names are longer than previously used taskprocessor
+ names.
+
+ Change-Id: I1a5c82ce3e8f765a0627796aba87f8f7be077601
+
+2016-01-07 21:07 +0000 [2c4b7502de] Richard Mudgett <rmudgett@digium.com>
+
+ * taskprocessor.c: Fix CLI "core show taskprocessors" unref.
+
+ Change-Id: I1d9f4e532caa6dfabe034745dd16d06134efdce5
+
+2016-01-07 20:44 +0000 [3b33ac7a46] Richard Mudgett <rmudgett@digium.com>
+
+ * taskprocessor.c: Sort CLI "core show taskprocessors" output.
+
+ Change-Id: I71e7bf57c7b908c8b8c71f1816348ed7c5a5d51e
+
+2016-01-06 19:00 +0000 [0fc32c4dd3] Richard Mudgett <rmudgett@digium.com>
+
+ * ccss.c: Replace space in taskprocessor name.
+
+ The CLI "core ping taskprocessor" command does not work very
+ well with taskprocessor names that have spaces in them. You
+ have to put quotes around the name so using tab completion
+ becomes awkward.
+
+ Change-Id: I29e806dd0a8a0256f4e2e0a7ab88c9e19ab0eda0
+
+2016-01-05 16:54 +0000 [0e0c24ad78] Richard Mudgett <rmudgett@digium.com>
+
+ * taskprocessor.c: Add CLI "core ping taskprocessor" missing unlock.
+
+ Change-Id: I78247e0faf978bf850b5ba4e9f4933ab3c59d17b
+
+2016-01-07 03:33 +0000 [0f79c8839b] Diederik de Groot <ddegroot@talon.nl>
+
+ * main: Use ast_strdup instead of strdup
+
+ Fix compile error in main/utils.c because strdup was used in dummy_start
+
+ Change-Id: Id61a6cf4f3cbf235450441e10e7da101a6335793
+
+2016-01-07 03:21 +0000 [4285dee778] Diederik de Groot <ddegroot@talon.nl>
+
+ * include/asterisk/time.h: Renamed global declaration:tv
+
+ Renamed global declaration:tv to dummy_tv_var_for_types,
+ which would oltherwise cause 'shadow' warnings when 'tv'
+ was declared as a local variable elsewhere.
+
+ Added comment to note that dummy_tv_var_for_types is never
+ really exported and only used as a place holder.
+
+ ASTERISK-25627 #close
+
+ Change-Id: I9a6e17995006584f3627efe8988e3f8aa0f5dc28
+
+2016-01-07 15:37 +0000 [96094feab6] Mark Michelson <mmichelson@digium.com>
+
+ * PJSIP: Prevent deadlock due to dialog/transaction lock inversion.
+
+ A deadlock was observed where the monitor thread was stuck, therefore
+ resulting in no incoming SIP traffic being processed.
+
+ The problem occurred when two 200 OK responses arrived in response to a
+ terminating NOTIFY request sent from Asterisk. The first 200 OK was
+ dispatched to a threadpool worker, who locked the corresponding
+ transaction. The second 200 OK arrived, resulting in the monitor thread
+ locking the dialog. At this point, the two threads are at odds, because
+ the monitor thread attempts to lock the transaction, and the threadpool
+ thread loops attempting to try to lock the dialog.
+
+ In this case, the fix is to not have the monitor thread attempt to hold
+ both the dialog and transaction locks at the same time. Instead, we
+ release the dialog lock before attempting to lock the transaction.
+
+ There have also been some debug messages added to the process in an
+ attempt to make it more clear what is going on in the process.
+
+ ASTERISK-25668 #close
+ Reported by Mark Michelson
+
+ Change-Id: I4db0705f1403737b4360e33a8e6276805d086d4a
+
+2016-01-07 09:39 +0000 [52e9de0016] Corey Farrell <git@cfware.com>
+
+ * ast_format_cap_append_by_type: Resolve codec reference leak.
+
+ This resolves a reference leak caused by ASTERISK-25535. The pointer
+ returned by ast_format_get_codec is saved so it can be released.
+
+ ASTERISK-25664 #close
+
+ Change-Id: If9941b1bf4320b2c59056546d6bce9422726d1ec
+
+2016-01-04 04:26 +0000 [86eae38d7e] Aaron An <anjb@ti-net.com.cn>
+
+ * cel/cel_radius: Fix wrong pointer.
+
+ The macro ADD_VENDOR_CODE defined in the cel_radius.c should use the parameter
+ y not the address of y.
+
+ I capture the radius UDP packet via tcpdump, and the AV pairs are not correct,
+ then i review the source code and compare it with cdr/cdr_radius.c. Fix it and
+ it works.
+
+ ASTERISK-25647 #close
+ Reported by: Aaron An
+ Tested by: Aaron An
+
+ Change-Id: I72889bccd8fde120d47aa659edc0e7e6d4d019f0
+
+2016-01-05 14:52 +0000 [881dc862e0] gtjoseph <george.joseph@fairview5.com>
+
+ * asterisk.h: Add ASTERISK_REGISTER_FILE macro
+
+ The 11/13 branches and master use 2 different file version macros. 11/13
+ uses ASTERISK_FILE_VERSION but master uses ASTERISK_REGISTER_FILE. This
+ means a new file added to 11/13 can't just be cherry-picked to master
+ because the macro has to be changed.
+
+ To make cherry-picking possible, ASTERISK_REGISTER_FILE was added
+ to asterisk.h as a simple alias for ASTERISK_FILE_VERSION(__FILE__, NULL)
+ The "$Revision$" tag doesn't do anything since Asterisk moved to git so
+ just passing NULL as the verison works fine. asterisk.h was also
+ annotated to deprecate ASTERISK_FILE_VERSION and suggest using
+ ASTERISK_REGISTER_FILE for all new files.
+
+ Finally, 2 recent file additions, pbx_builtins.c and pbx_functions.c,
+ were modified to use the new macro to make sure it actually worked.
+ 'core show file version' showed the correct output.
+
+ Change-Id: I5867ed898818d26ee49bb6e5c7d4c1a45d4789a5
+
+2016-01-05 11:06 +0000 [d228b62fd4] gtjoseph <george.joseph@fairview5.com>
+
+ * stasis_cache_pattern: Backport to 13
+
+ Somehow stasis_cache_pattern got out of sync between 13 and master
+ and it was causing duplicate channel message issues in 13 when
+ related to a specific endpoint. I.E. from statsd,
+ 'endpoints.PJSIP.1174.channels 0|g' was being emitted twice.
+
+ Backporting stasis_cache_pattern from master to 13 solved
+ the issue and running the unit and testsuite tests confirmed
+ that no new ones were created.
+
+ ASTERISK-25317 #close
+
+ Change-Id: Ia8707462f62d15eed14541c37f332a7bbbceb548
+2016-01-04 20:23 +0000 [e462f0063f] Corey Farrell <git@cfware.com>
+
+ * main/pbx: Move hangup handler routines to pbx_hangup_handler.c.
+
+ This is the sixth patch in a series meant to reduce the bulk of pbx.c.
+ This moves hangup handler management functions to their own source.
+
+ Change-Id: Ib25a75aa57fc7d5c4294479e5cc46775912fb104
+
+2016-01-04 19:46 +0000 [ab191d124c] Corey Farrell <git@cfware.com>
+
+ * main/pbx: Move dialplan application management routines to pbx_app.c.
+
+ This is the sixth patch in a series meant to reduce the bulk of pbx.c.
+ This moves dialplan application management functions to their own source.
+
+ Change-Id: I444c10fb90a3cdf9f3047605d6a8aad49c22c44c
+
+2016-01-04 18:20 +0000 [09a9b93896] Corey Farrell <git@cfware.com>
+
+ * main/pbx: Move switch routines to pbx_switch.c.
+
+ This is the fifth patch in a series meant to reduce the bulk of pbx.c.
+ This moves ast_switch functions to their own source.
+
+ Change-Id: Ic2592a18a5c4d8a3c2dcf9786c9a6f650a8c628e
+
+2016-01-04 18:00 +0000 [c608274a39] Corey Farrell <git@cfware.com>
+
+ * main/pbx: Move timing routines to pbx_timing.c.
+
+ This is the fourth patch in a series meant to reduce the bulk of pbx.c.
+ This moves pbx timing functions to their own source.
+
+ Change-Id: I05c45186cb11edfc901e95f6be4e6a8abf129cd6
+
+2015-12-29 04:31 +0000 [338a8ffed6] Martin Tomec <tomec.martin@gmail.com>
+
+ * app_queue: Add member flag "in_call" to prevent reading wrong lastcall time
+
+ Member lastcall time is updated later than member status. There was chance to
+ check wrapuptime for available member with wrong (old) lastcall time.
+ New boolean flag "in_call" is set to true right before connecting call, and
+ reset to false after update of lastcall time. Members with "in_call" set to true
+ are treat as unavailable.
+
+ ASTERISK-19820 #close
+
+ Change-Id: I1923230cf9859ee51563a8ed420a0628b4d2e500
+
+2015-12-28 17:23 +0000 [e13719bff1] Rodrigo Ramírez Norambuena <a@rodrigoramirez.com>
+
+ * app_queue: Added reason pause of member
+
+ In app_queue added value Paused Reason on QueueMemberStatus when a member
+ on queue is paused and the reason was set.
+
+ ASTERISK-25480 #close
+ Reporte by: Rodrigo Ramírez Norambuena
+
+ Change-Id: Ia5db503482f50764c15e2020196c785f59d4a68e
+
+2015-12-30 10:49 +0000 [4ec85a9f07] gtjoseph <george.joseph@fairview5.com>
+
+ * voicemail: Move app_voicemail / res_mwi_external conflict to runtime
+
+ The menuselect conflict between app_voicemail and res_mwi_external
+ makes it hard to package 1 version of Asterisk. There no actual
+ build dependencies between the 2 so moving this check to runtime
+ seems like a better solution.
+
+ The ast_vm_register and ast_vm_greeter_register functions in app.c
+ were modified to return AST_MODULE_LOAD_DECLINE instead of -1 if there
+ is already a voicemail module registered. The modules' load_module
+ functions were then modified to return DECLINE instead of -1 to the
+ loader. Since -1 is interpreted by the loader as AST_MODULE_LOAD_FAILURE,
+ the modules were incorrectly causing Asterisk to stop so this needed
+ to be cleaned up anyway.
+
+ Now you can build both and use modules.conf to decide which voicemail
+ implementation to load.
+
+ The default menuselect options still build app_voicemail and not
+ res_mwi_external but if both ARE built, res_mwi_external will load
+ first and become the voicemail provider unless modules.conf rules
+ prevent it. This is noted in CHANGES.
+
+ Change-Id: I7d98d4e8a3b87b8df9e51c2608f0da6ddfb89247
+
+2016-01-04 16:22 +0000 [7fdcfd7724] Corey Farrell <git@cfware.com>
+
+ * main/pbx: Move variable routines to pbx_variables.c.
+
+ This is the third patch in a series meant to reduce the bulk of pbx.c.
+ This moves channel and global variable routines to their own source.
+
+ Change-Id: Ibe8fb4647db11598591d443a99e3f99200a56bc6
+
+2015-12-04 17:22 +0000 [80a8b2a4cd] Richard Mudgett <rmudgett@digium.com>
+
+ * app_dial: Immediately exit dial if the caller is already hung up.
+
+ If a caller hangs up before dial is executed within an AGI then the AGI
+ has likely eaten all queued frames before executing the dial in DeadAGI
+ mode. With the caller hung up and no pending frames from the caller's
+ read queue, dial would not know that the call has hung up until a called
+ channel answers. It is rather annoying to whoever just answered the
+ non-existent call.
+
+ Dial should not continue execution in DeadAGI mode, hangup handlers, or
+ the h exten.
+
+ * Added a check early in dial to abort dialing if the caller has hungup.
+
+ ASTERISK-25307 #close
+ Reported by: David Cunningham
+
+ Change-Id: Icd1bc0764726ef8c809f76743ca008d0f102f418
+
+2016-01-02 10:26 +0000 [1087b0c6ed] Matt Jordan <mjordan@digium.com>
+
+ * main/cdr: Allow setting properties on a finalized CDR if it is the last one
+
+ Prior to this patch, we explicitly disallowed setting any properties on a
+ finalized CDR. This seemed like a good idea at the time; in practice, it was
+ more restrictive.
+
+ There are weird and strange scenarios where setting a property on a finalized
+ CDR is definitely wrong. For example, we may Fork a CDR, finalizing the
+ previous one, then change a property. In said case, the old CDR is supposed
+ to now be 'immutable' (so to speak), and should not be updated. From the
+ perspective of the code, a forked CDR that is finalized is just finalized.
+ Hence why we decided these should not be updated.
+
+ In practice, it is much more common to want to set a property on a CDR in
+ the h extension or in a hangup handler. Disallowing a common scenario to make
+ an esoteric behaviour work isn't good. This patch fixes this by allowing
+ callers to set a property IF we are the last CDR in the chain. This preserves
+ the finalized CDR if it was forked, while allowing the more common case to
+ function.
+
+ ASTERISK-25458 #close
+
+ Change-Id: Icf3553c607b9f561152a41e6d8381d594ccdf4b9
+
+2016-01-02 10:23 +0000 [1f23e65b89] Matt Jordan <mjordan@digium.com>
+
+ * main/cdr: Set the end time on a CDR if endbeforehexten is Yes
+
+ Prior to this patch, the CDR engine attempted to set the end time on a CDR
+ that was executing hangup logic and with endbeforehexten set to Yes by
+ calling a function that inspects the properties on the Party A snapshot to
+ determine if we are ready to set the end time. That always failed. This is
+ because a Party A snapshot is not updated for CDRs that are executing hangup
+ logic with endbeforehexten=Yes.
+
+ Instead of calling a function that looks at the Party A snapshot, we just
+ simply set the end time on the CDR. This is safe to call multiple times, and is
+ safe to call at this point as we know that (a) we are executing hangup logic,
+ and (b) we are supposed to set the end time at this point.
+
+ ASTERISK-25458
+
+ Change-Id: I0c27b493861f9c13c43addbbb21257f79047a3b3
+
+2015-12-30 20:51 +0000 [2ffade4574] Corey Farrell <git@cfware.com>
+
+ * main/pbx: Move custom function routines to pbx_functions.c.
+
+ This is the second patch in a series meant to reduce the bulk of pbx.c.
+ This moves custom function management routines to their own source.
+
+ Change-Id: I34a6190282f781cdbbd3ce9d3adeac3c3805e177
+
+2015-12-28 19:18 +0000 [20b8474f20] gtjoseph <george.joseph@fairview5.com>
+
+ * main/pbx: Move pbx_builtin dialplan applications to pbx_builtins.c
+
+ We joked about splitting pbx.c into multiple files but this first step was
+ fairly easy. All of the pbx_builtin dialplan applications have been moved
+ into pbx_builtins.c and a new pbx_private.h file was added. load_pbx_builtins()
+ is called by asterisk.c just after load_pbx().
+
+ A few functions were renamed and are cross-exposed between the 2 source files.
+
+ Change-Id: I87066be3dbf7f5822942ac1449d98cc43fc7561a
+
+2015-12-24 20:26 +0000 [e4a566918a] Matt Jordan <mjordan@digium.com>
+
+ * tests/test_stasis_endpoints: Remove expected duplicate events
+
+ The cache_clear test was written to expect duplicate Stasis messages
+ sent from the technology endpoint to the all caching topic. This patch
+ fixes the test to no longer expect these duplicate messages.
+
+ ASTERISK-25137
+
+ Change-Id: I58075d70d6cdf42e792e0fb63ba624720bfce981
+
+2015-12-28 14:02 +0000 [a280400758] Joshua Colp <jcolp@digium.com>
+
+ * test_time: Provide a timeout when waiting.
+
+ The test_timezone_watch unit test is written to expect a
+ condition to be signaled when the inotify daemon thread runs.
+ There exists a small window where the test_timezone_watch
+ thread can signal the inotify daemon thread while it is not
+ reading on the underlying file descriptor. If this occurs
+ the test_timezone_watch thread will wait indefinitely for a
+ signal that will never arrive.
+
+ This change adds a timeout to the condition so it will return
+ regardless after a period of time.
+
+ Change-Id: Ifed981879df6de3d93acd3ee0a70f92546517390
+
+2015-05-27 13:22 +0000 [3a1c4885be] gtjoseph <george.joseph@fairview5.com>
+
+ * endpoint/stasis: Eliminate duplicate events on endpoint status change
+
+ When an endpoint is created, its messages are forwarded to both the tech
+ endpoint topic and the all endpoints topic. This is done so that various
+ parties interested in endpoint messages can subscribe to just the tech
+ endpoint and receive all messages associated with that particular technology,
+ as opposed to subscribing to the all endpoints topic. Unfortunately, when the
+ tech endpoint is created, it also forwards all of its messages to the all
+ topic. This results in duplicate messages whenever an endpoint publishes its
+ messages.
+
+ This patch resolves the duplicate message issue by creating a new function
+ for Stasis caching topics, stasis_cp_sink_create. In most respects, this acts
+ as a normal caching topic, save that it no longer forwards messages it receives
+ to the all endpoints topic. This allows it to act as an aggregation "sink",
+ while preserving the necessary caching behaviour.
+
+ ASTERISK-25137 #close
+ Reported-by: Vitezslav Novy
+
+ ASTERISK-25116 #close
+ Reported-by: George Joseph <george.joseph@fairview5.com>
+ Tested-by: George Joseph <george.joseph@fairview5.com>
+
+ Change-Id: Ie47784adfb973ab0063e59fc18f390d7dd26d17b
+2015-12-24 22:19 +0000 [136c537695] Dade Brandon <dade@xencall.com>
+
+ * res_http_websocket.c: prevent avoidable disconnections caused by write errors
+
+ Updated ast_websocket_write to encode the entire frame in to one
+ write operation, to ensure that we don't end up with a situation
+ where the websocket header has been sent, while the body can not
+ be written.
+
+ Previous to August's patch in commit b9bd3c14, certain network
+ conditions could cause the header to be written, and then the
+ sub-sequent body to fail - which would cause the next successful
+ write to contain a new header, and a new body (resulting in
+ the peer receiving two headers - the second of which would be
+ read as part of the body for the first header).
+
+ This was patched to have both write operations individually fail
+ by closing the websocket.
+
+ In a case available to the submitter of this patch, the same
+ body which would consistently fail to write, would succeed
+ if written at the same time as the header.
+
+ This update merges the two operations in to one, adds debug messages
+ indicating the reason for a websocket connection being closed during
+ a write operation, and clarifies some variable names for code legibility.
+
+ Change-Id: I4db7a586af1c7a57184c31d3d55bf146f1a40598
+
+2015-12-27 22:38 +0000 [f2efbb5d75] Corey Farrell <git@cfware.com>
+
+ * Remove res_jabber file that was left behind.
+
+ Change-Id: I9d88fac0394d5bbaff0900a2ee911c4e4478846b
+
+2015-12-13 13:09 +0000 [dde7f3c1c4] Matt Jordan <mjordan@digium.com>
+
+ * res_pjsip_history: Add a module that provides PJSIP history for debugging
+
+ This patch adds a new module, res_pjsip_history, that provides a slightly
+ better way of debugging SIP message traffic on a busy Asterisk system. The
+ existing mechanisms all rely on passively dumping a SIP message to the CLI.
+ While this is perfectly fine for logging purposes and well controlled
+ environments, on many installations, the amount of SIP messages Asterisk
+ receives will quickly swamp the CLI. This makes it difficult to view/capture
+ those messages that you want to diagnose in real time.
+
+ This patch provides another way of handling this. When enabled, the module
+ will store SIP message traffic in memory. This traffic can then be queried
+ at leisure.
+
+ In order to make the querying useful, a CLI command has been implemented,
+ 'pjsip show history', that supports a basic expression syntax similar to
+ SQL or other query languages. A small number of useful fields have been
+ added in this initial patch; additional fields can easily be added in
+ later improvements. Those fields are:
+ - number: The entry index in the history
+ - timestamp: The time the message was recieved
+ - addr: The source/destination address of the message
+ - sip.msg.request.method: The request method
+ - sip.msg.call-id: The Call-ID header
+
+ Note - this is a resurrection of the module initially proposed on Review Board
+ here: https://reviewboard.asterisk.org/r/4053/
+
+ Change-Id: I39bd74ce998e99ad5ebc0aab3e84df3a150f8e36
+
+2015-12-25 09:56 +0000 [be050f2638] Dade Brandon <dade@xencall.com>
+
+ * chan_sip.c: fix websocket_write_timeout default value
+
+ websocket_write_timeout was not being set to its default value
+ during sip config reload, which meant that prior to this commit,
+ 1) the default value of 100 was not used, unless an invalid value
+ (or 1) was specified in sip.conf for websocket_write_timeout, and
+ 2) if the websocket_write_timeout directive was removed from sip.conf
+ without a full restart of asterisk, then the previous value would
+ continue to be used indefinitely.
+
+ This essentially lead to a 0ms write timeout (the first write attempt
+ in ast_careful_fwrite must have succeeded) in websocket write requests
+ from chan_sip, unless websocket_write_timeout was explicitely set in sip.conf.
+
+ Changes to websocket_write_timeout still only apply to new websocket
+ sessions, after the sip reload -- timeouts on existing sessions are
+ not adjusted during sip reload.
+
+ Change-Id: Ibed3816ed29cc354af6564c5ab3e75eab72cb953
+
+2015-12-23 17:40 +0000 [b3024cad10] Richard Mudgett <rmudgett@digium.com>
+
+ * bridge_basic.c: Fix GOTO_ON_BLINDXFR
+
+ Use of GOTO_ON_BLINDXFR would not work at all. The target location would
+ never be executed by the transferring channel.
+
+ * Made feature_blind_transfer() call ast_bridge_set_after_go_on() with
+ valid context, exten, and priority parameters from the transferring
+ channel.
+
+ * Renamed some feature_blind_transfer() local variables for clarity.
+
+ ASTERISK-25641 #close
+ Reported by Dmitry Melekhov
+
+ Change-Id: I19bead9ffdc4aee8d58c654ca05a198da1e4b7ac
+
+2015-12-24 12:19 +0000 [0a9941de9d] Matt Jordan <mjordan@digium.com>
+
+ * res/res_pjsip_location: Delete contact_status object when contact is deleted
+
+ In 450579e908, a change was made that removed the deletion of the
+ 'contact_status' object when a 'contact' object is deleted in sorcery.
+ This unfortunately means that the 'contact_status' object persists, even when
+ something has explicitly removed a contact. The result is that the state of
+ the contact will not be regenerated if that contact is re-created, and the
+ stale state will be reported/used for that contact. It also results in
+ no ContactStatusChanged events being generated for either ARI or AMI.
+
+ This patch restores the deletion logic that was removed. Doing so now
+ results in the expected events being generated again.
+
+ Change-Id: I28789a112e845072308b5b34522690e3faf58f07
+
+2015-12-24 10:18 +0000 [1e24a0ca8a] Kevin Harwell <kharwell@digium.com>
+
+ * res_rtp_asterisk: rtp->ice check not wrapped in HAVE_PJPROJECT ifdef
+
+ Change-Id: I19b49112e1b630bd04e859f14ccf96f8ebd6b151
+
+2015-12-20 21:33 +0000 [1d3d20dd68] Dade Brandon <dade@xencall.com>
+
+ * app_amd: Correct documentation to reflect functionality
+
+ Update documentation to reflect that maximum_number_of_words
+ has functionality inconsistent with the variable name (and inconsistent
+ with prior documentation.)
+
+ Update documentation for silence_threshold, which previously implied
+ that it was measuring time, rather than noise averages in the sample.
+
+ Update the comments in amd.conf.sample.
+
+ ASTERISK-25639 #close
+ Change-Id: I4b1451e5dc9cb3cb06d59b6ab872f5275ba79093
+
+2015-12-17 19:05 +0000 [965a0eee46] Dade Brandon <dade@xencall.com>
+
+ * res_rtp_asterisk: Resolve further timing issues with DTLS negotiation
+
+ Resolves an edge case dtls negotiation delay for certain networks which
+ somehow manage to drop the rtcp side's packet when these are both sent
+ ast_rtp_remote_address_set, causing it to have to time-out and restart
+ the handshake.
+
+ Move dtls pending bio flush in to it's own function, and call it from
+ ast_rtp_on_ice_complete, when we're rtp->ice, rather than when
+ ast_rtp_remote_address_set.
+
+ Keep the existing flush from the recent change to res_rtp_remote_address_set
+ if ice is not being used.
+
+ ASTERISK-25614 #close
+ Reported-by: XenCALL
+ Tested by: XenCALL
+
+ Change-Id: Ie2caedbdee1783159f375589b6fd3845c8577ba5
+
+2015-12-18 09:54 +0000 [ae428d8460] Carlos Oliva <carlos.oliva@invoxcontact.com>
+
+ * app_queue: update RT members when the 1st call joins a queue with no agents
+
+ If a call enters on a queue and the members on that queue are updated in
+ realtime (ex: using mysql inserting a new agent) the queue members are
+ never refreshed and the call will stay in the queue until other event occurs.
+ This happens only if this is the first call of the queue and there is no
+ agents servicing.
+ This patch prevent this issue, ensuring realtime members are updated if
+ there is one call in the queue and no available agents
+
+ ASTERISK-25442 #close
+
+ Change-Id: If1e036d013a5c1d8b0bf60d71d48fe98694a8682
+
+2015-12-05 10:01 +0000 [59d5bb0613] Joshua Colp <jcolp@digium.com>
+
+ * res_sorcery_memory_cache: Add support for a full backend cache.
+
+ This change introduces the configuration option 'full_backend_cache'
+ which changes the cache to be a full mirror of the backend instead
+ of a per-object cache. This allows all sorcery retrieval operations
+ to be carried out against it and is useful for object types which
+ are used in a "retrieve all" or "retrieve some" pattern.
+
+ ASTERISK-25625 #close
+
+ Change-Id: Ie2993487e9c19de563413ad5561c7403b48caab5
+
+2015-12-17 10:25 +0000 [0cefcabd58] Joshua Colp <jcolp@digium.com>
+
+ * rtp_engine: Ignore empty filenames in DTLS configuration.
+
+ When applying an empty DTLS configuration the filenames in the
+ configuration will be empty. This is actually valid to do and
+ each filename should simply be ignored.
+
+ Change-Id: Ib761dc235638a3fb701df337952f831fc3e69539
+
+2015-12-17 08:10 +0000 [158a0a5422] Joshua Colp <jcolp@digium.com>
+
+ * chan_sip: Enable WebSocket support by default.
+
+ Per the documentation the WebSocket support in chan_sip is
+ supposed to be enabled by default but is not. This change
+ corrects that.
+
+ Change-Id: Icb02bbcad47b11a795c14ce20a9bf29649a54423
+
+2015-12-14 12:04 +0000 [a9d6fc571d] Joshua Colp <jcolp@digium.com>
+
+ * json: Audit ast_json_* usage for thread safety.
+
+ The JSON library Asterisk uses, jansson, is not thread
+ safe for us in a few ways. To help with this wrappers for JSON
+ object reference count increasing and decreasing were added
+ which use a global lock to ensure they don't clobber over
+ each other. This does not extend to reference count manipulation
+ within the jansson library itself. This means you can't safely
+ use the object borrowing specifier (O) in ast_json_pack and
+ you can't share JSON instances between objects.
+
+ This change removes uses of the O specifier and replaces them
+ with the o specifier and an explicit ast_json_ref. Some cases
+ of instance sharing have also been removed.
+
+ ASTERISK-25601 #close
+
+ Change-Id: I06550d8b0cc1bfeb56cab580a4e608ae4f1ec7d1
+
+2015-12-16 11:28 +0000 [53bd5a539a] Mark Michelson <mmichelson@digium.com>
+
+ * Alembic: Increase column size of PJSIP AOR "contact".
+
+ When running the PJSIP AMI "show_endpoint" test with automatic
+ conversion to realtime, the test would fail. This was because the AOR
+ "contact" column was sized at 40, and the configured contact was larger
+ than that.
+
+ This commit increases the size of the contact column to 255 characters.
+
+ Change-Id: Ia65bc7fd37699b7c0eaef9629a1a31eab9a24ba1
+
+2015-12-16 11:25 +0000 [da17dc4d75] Mark Michelson <mmichelson@digium.com>
+
+ * Alembic: Add PJSIP global keep_alive_interval.
+
+ The keep_alive_interval option was added about a year ago, but no
+ alembic revision was created to add the appropriate column to the
+ database.
+
+ This commit fixes the problem and adds the column. This was discovered
+ by running the testsuite with automatic conversion to realtime enabled.
+
+ Change-Id: If3ef92a7c4f4844d08f8aae170d2178aec5c4c1a
+
+2015-12-08 13:04 +0000 [fe8011cc50] sungtae kim <pchero21@gmail.com>
+
+ * AMI: Fixed OriginateResponse message
+
+ When the asterisk sending OriginateResponse message,
+ it doesn't set the "Uniqueid".
+ And it didn't support correct response message for
+ Application originate.
+
+ ASTERISK-25624 #close
+
+ Change-Id: I26f54f677ccfb0b7cfd4967a844a1657fd69b74d
+
+2015-12-15 18:01 +0000 Asterisk Development Team <asteriskteam@digium.com>
+
+ * asterisk 13.7.0-rc1 Released.
+
+2015-12-15 11:57 +0000 [0370acecfc] Kevin Harwell <kharwell@lunkwill>
+
+ * Release summaries: Add summaries for 13.7.0-rc1
+
+2015-12-15 11:54 +0000 [d1bb33fe0b] Kevin Harwell <kharwell@lunkwill>
+
+ * .version: Update for 13.7.0-rc1
+
+2015-12-15 11:54 +0000 [d06a65de01] Kevin Harwell <kharwell@lunkwill>
+
+ * .lastclean: Update for 13.7.0-rc1
+
+2015-12-15 11:54 +0000 [fb37b44660] Kevin Harwell <kharwell@lunkwill>
+
+ * realtime: Add database scripts for 13.7.0-rc1
+
+2015-12-15 11:48 +0000 [20b7164b8c] Kevin Harwell <kharwell@lunkwill>
+
+ * .version: Update for 13.7.0-rc1
+
+2015-12-15 11:48 +0000 [6cbf2414c3] Kevin Harwell <kharwell@lunkwill>
+
+ * .lastclean: Update for 13.7.0-rc1
+
+2015-12-15 11:48 +0000 [ba1794464d] Kevin Harwell <kharwell@lunkwill>
+
+ * realtime: Add database scripts for 13.7.0-rc1
+
+2015-12-15 11:39 +0000 [b3e9753a23] Kevin Harwell <kharwell@lunkwill>
+
+ * .version: Update for 13.7.0-rc1
+
+2015-12-15 11:39 +0000 [b0df64b5f0] Kevin Harwell <kharwell@lunkwill>
+
+ * .lastclean: Update for 13.7.0-rc1
+
+2015-12-15 11:39 +0000 [ce9a59faf6] Kevin Harwell <kharwell@lunkwill>
+
+ * realtime: Add database scripts for 13.7.0-rc1
+
+2015-12-15 11:28 +0000 [2e26bef5bb] Kevin Harwell <kharwell@lunkwill>
+
+ * .version: Update for 13.7.0-rc1
+
+2015-12-15 11:28 +0000 [5e9b47516d] Kevin Harwell <kharwell@lunkwill>
+
+ * .lastclean: Update for 13.7.0-rc1
+
+2015-12-15 11:28 +0000 [034112c574] Kevin Harwell <kharwell@lunkwill>
+
+ * realtime: Add database scripts for 13.7.0-rc1
+
+2015-12-15 11:19 +0000 [d1f8ff1789] Kevin Harwell <kharwell@lunkwill>
+
+ * .version: Update for 13.7.0-rc1
+
+2015-12-15 11:19 +0000 [9376488bef] Kevin Harwell <kharwell@lunkwill>
+
+ * .lastclean: Update for 13.7.0-rc1
+
+2015-12-15 11:19 +0000 [a894c9e7a9] Kevin Harwell <kharwell@lunkwill>
+
+ * realtime: Add database scripts for 13.7.0-rc1
+
+2015-12-15 11:12 +0000 [52afb0f112] Kevin Harwell <kharwell@lunkwill>
+
+ * .version: Update for 13.7.0-rc1
+
+2015-12-15 11:12 +0000 [2de343eb85] Kevin Harwell <kharwell@lunkwill>
+
+ * .lastclean: Update for 13.7.0-rc1
+
+2015-12-15 11:12 +0000 [184de2a160] Kevin Harwell <kharwell@lunkwill>
+
+ * realtime: Add database scripts for 13.7.0-rc1
+
+2015-12-14 13:53 +0000 [24ae124e4f] server-pandora <server-pandora@xencall.com>
+
+ * res_rtp_asterisk.c: Fix DTLS negotiation delays.
+
+ - Trigger pending DTLS packets to send out, once the RTP instance's remote
+ address is set.
+ - Avoids locking the DTLS structure unnecessarily by only doing this if
+ DTLS is passive.
+ - Add DTLS locks around the structurally sensitive calls in the SSL
+ portion of __rtp_recvfrom, since dtls_srtp_check_pending does not lock
+ inside of itself, and we're dealing with the SSL BIO in at least two
+ threads.
+
+ WebRTC channels may receive a DTLS handshake before
+ ast_rtp_remote_address_set is called, which causes there to be a pending
+ response to send out. Previous to 1ad827, this was handled by calling
+ dtls_srtp_check_pending on receipt of any RTP packet - a STUN or RTP
+ packet could trigger the pending handshake response. Since that was
+ rightfully removed, whenever the DTLS handshake is received before the
+ remote address is set, we would have to wait until another SSL packet
+ arrives.
+
+ As of Chrome M47's optimizations to their handshake process, WebRTC
+ conversations between Chrome M47+ and Asterisk, where Asterisk is passive,
+ experience a 1 second delay without this patch, because the SSL handshake
+ is received before ICE negotation stores the remote_address, and the next
+ SSL packet isn't received until after a 1 second timeout in Chrome, which
+ causes a new handshake request.
+
+ ASTERISK-25614 #close
+
+ Change-Id: I547f1be7e302dbf71f6553dd8cbc0657b1d0b908
+
+2015-12-14 15:25 +0000 [36097a185d] Richard Mudgett <rmudgett@digium.com>
+
+ * Fix sscanf() format string type mismatch.
+
+ ASTERISK-25615
+ Reported by: George Joseph
+
+ Change-Id: Ieff35307254ca193f3d473cff2e396ca57c7ce0b
+
+2015-12-13 13:13 +0000 [94f9927784] Matt Jordan <mjordan@digium.com>
+
+ * main/utils: Don't emit an ERROR message if the read end of a pipe closes
+
+ An ERROR or WARNING message should generally indicate that something has gone
+ wrong in Asterisk. In the case of writing to a file descriptor, Asterisk is not
+ in control of when the far end closes its reading on a file descriptor. If the
+ far end does close the file descriptor in an unclean fashion, this isn't a bug
+ or error in Asterisk, particularly when the situation can be gracefully
+ handled in Asterisk.
+
+ Currently, when this happens, a user would see the following somewhat cryptic
+ ERROR message:
+
+ "utils.c: write() returned error: Broken pipe"
+
+ There's a few problems with this:
+ (1) It doesn't provide any context, other than 'something broke a pipe'
+ (2) As noted, it isn't actually an error in Asterisk
+ (3) It can get rather spammy if the thing breaking the pipe occurs often, such
+ as a FastAGI server
+ (4) Spammy ERROR messages make Asterisk appear to be having issues, or can even
+ mask legitimate issues
+
+ This patch changes ast_carefulwrite to only log an ERROR if we actually had one
+ that was reasonably under our control. For debugging purposes, we still emit
+ a debug message if we detect that the far side has stopped reading.
+
+ Change-Id: Ia503bb1efcec685fa6f3017bedf98061f8e1b566
+
+2015-12-12 11:08 +0000 [5b867fa904] gtjoseph <george.joseph@fairview5.com>
+
+ * pjsip/config_transport: Check pjproject version at runtime for async ops
+
+ pjproject < 2.5.0 will segfault on a tls transport if async_operations
+ is greater than 1. A runtime version check has been added to throw
+ an error if the version is < 2.5.0 and async_operations > 1.
+
+ To assist in the check, a new api "ast_compare_versions" was added
+ to utils which compares 2 major.minor.patch.extra version strings.
+
+ ASTERISK-25615 #close
+
+ Change-Id: I8e88bb49cbcfbca88d9de705496d6f6a8c938a98
+ Reported-by: George Joseph
+ Tested-by: George Joseph
+
+2015-12-10 11:44 +0000 [14b41115e3] Jonathan Rose <jrose@digium.com>
+
+ * chan_sip: Add TCP/TLS keepalive to TCP/TLS server
+
+ Adds the TCP Keep Alive option to TCP and TLS server sockets. Previously
+ this option was only being set on session sockets.
+ http://www.tldp.org/HOWTO/html_single/TCP-Keepalive-HOWTO/
+ According to the link above, the SO_KEEPALIVE option is useful for knowing
+ when a TCP connected endpoint has severed communication without indicating
+ it or has become unreachable for some reason. Without this patch, keep
+ alive is not set on the socket listening for incoming TCP sessions and
+ in Komatsu's report this resulted in the thread listening for TCP becoming
+ stuck in a waiting state.
+
+ ASTERISK-25364 #close
+ Reported by: Hiroaki Komatsu
+
+ Change-Id: I7ed7bcfa982b367dc64b4b73fbd962da49b9af36
+2015-12-09 09:48 +0000 [cd119ed4a2] Tyler Cambron <tcambron@digium.com>
+
+ * res_chan_stats: Fix bug to send correct statistics to StatsD
+
+ Fixed a bug that originally would show a negative number of
+ active calls occuring in Asterisk. A gauge is persistent so
+ incrementing and decrementing it results in a more consistent
+ performance. Also changed to the call to StatsD to use
+ ast_statsd_log_string() so that a "+" could be sent to StatsD.
+
+ ASTERISK-25619 #close
+
+ Change-Id: Iaaeff5c4c6a46535366b4d16ea0ed0ee75ab2ee7
+
+2015-12-07 13:07 +0000 [ddf4dddf4f] Corey Farrell <git@cfware.com>
+
+ * app_meetme: Set default value for audio_buffers.
+
+ The default value was never set for audio_buffers, causing bad
+ audio quality. This ensures the default is always set.
+
+ ASTERISK-25569 #close
+
+ Change-Id: I2d2ee3e644120b0f9f6ea6ab9286d7d590942a44
+2015-12-08 01:57 +0000 [142d4fefb8] Filip Jenicek <phill@janevim.cz>
+
+ * chan_sip: Check sip_pvt pointer in ast_channel_get_t38_state(c)
+
+ Asterisk may crash when calling ast_channel_get_t38_state(c)
+ on a locked channel which is being hung up.
+
+ ASTERISK-25609 #close
+
+ Change-Id: Ifaa707c04b865a290ffab719bd2e5c48ff667c7b
+
+2015-12-08 17:49 +0000 [21962dad93] gtjoseph <george.joseph@fairview5.com>
+
+ * res_pjsip: Add existence and readablity checks for tls related files
+
+ Both transport and endpoint now check for the existence and readability
+ of tls certificate and key files before passing them on to pjproject.
+ This will cause the object to not load rather than waiting for pjproject
+ to discover that there's a problem when a session is attempted.
+
+ NOTE: chan_sip also uses ast_rtp_dtls_cfg_parse but it's located
+ in build_peer which is gigantic and I didn't want to disturb it.
+ Error messages will emit but it won't interrupt chan_sip loading.
+
+ ASTERISK-25618 #close
+
+ Change-Id: Ie43f2c1d653ac1fda6a6f6faecb7c2ebadaf47c9
+ Reported-by: George Joseph
+ Tested-by: George Joseph
+
+2015-12-02 12:42 +0000 [28d9243079] Eugene Voityuk <eugene@thirdlane.com>
+
+ * chan_sip.c: Start ICE negotiation when response is sent or received.
+
+ The current logic for ICE negotiation starts it
+ when receiving an SDP with ICE candidates. This is
+ incorrect as ICE negotiation can only start when each
+ call party have at least one pair of local and remote
+ candidate. Starting ICE negotiation early would result
+ in negotiation failure and ultimately no audio.
+
+ This change makes it so ICE negotiation is only started
+ when a response with SDP is received or when a response
+ with SDP is sent.
+
+ ASTERISK-24146
+
+ Change-Id: I55a632bde9e9827871b09141d82747e08379a8ca
+2015-12-08 11:03 +0000 [e03582a1c2] gtjoseph <george.joseph@fairview5.com>
+
+ * res_pjsip/config_transport: Prevent async_operations > 1 when protocol = tls
+
+ See ASTERISK-25615.
+ If the transport protocol is tls and async_operations > 1, pjproject
+ will segfault if more than one operation is attempted on the same socket.
+ Until this is fixed upstream, a check has been added to throw an error
+ if a tls transport config has async_operations set to > 1.
+
+ ASTERISK-25615
+
+ Change-Id: I76b9a5b2a5a0054fe71ca5851e635f2dca7685a6
+ Reported-by: George Joseph
+ Tested-by: George Joseph
+
+2015-12-08 08:39 +0000 [876600ce6e] Alexander Traud <pabstraud@compuserve.com>
+
+ * codec_resample: Increase buffer for Opus Codec with FEC.
+
+ ASTERISK-25599 #close
+
+ Change-Id: Idbd187f711b2ec63dda949ca0f79aa0c1a0a0b6e
+
+2015-12-08 03:46 +0000 [69e3d40ad7] Alexander Traud <pabstraud@compuserve.com>
+
+ * translate: Avoid a warning message when doing FEC within Opus Codec.
+
+ ASTERISK-25616 #close
+
+ Change-Id: Ibe729aaf2e6e25506cff247cec5149ec1e589319
+
+2015-12-04 15:36 +0000 [2b992014dc] Richard Mudgett <rmudgett@digium.com>
+
+ * chan_sip: Fix crash involving the bogus peer during sip reload.
+
+ A crash happens sometimes when performing a CLI "sip reload". The bogus
+ peer gets refreshed while it is in use by a new call which can cause the
+ crash.
+
+ * Protected the global bogus peer object with an ao2 global object
+ container.
+
+ ASTERISK-25610 #close
+
+ Change-Id: I5b528c742195681abcf713c6e1011ea65354eeed
+
+2015-12-06 16:32 +0000 [529535f0c2] Matt Jordan <mjordan@digium.com>
+
+ * Revert "bridges/bridge_t38: Add a bridging module for managing T.38 state"
+
+ This reverts commit 6614babea27fbafbe11820ea03737dd5c4f9ecec.
+
+ Unfortunately, using a bridge to manage T.38 state will cause severe deadlocks
+ in core_unreal/chan_local. Local channels attempt to reach across both their
+ peer and the peer's bridge to inspect T.38 state. Given the propensity of
+ Local channel chains, managing the locking situation in such a scenario is
+ practically infeasible.
+
+ Change-Id: Ic687397ffea08dfb899345a443bd990ec3d0416a
+
+2015-12-04 16:23 +0000 [450579e908] gtjoseph <george.joseph@fairview5.com>
+
+ * res_pjsip/contacts/statsd: Make contact lifecycle events more consistent
+
+ It will never be perfect or even pretty, mostly because of the differences
+ between static and dynamic contacts.
+
+ Created:
+
+ Can't use the contact or contact_status alloc functions
+ because the objects come and go regardless of the actual state.
+
+ Can't use the contact_apply_handler, ast_sip_location_add_contact or
+ a sorcery created handler because they only get called for dynamic
+ contacts. Similarly, permanent_uri_handler only gets called for
+ static contacts.
+
+ So, Matt had it right. :) ast_res_pjsip_find_or_create_contact_status is
+ the only place it can go and not have duplicated code. Both
+ permanent_uri_handler and contact_apply_handler call find_or_create.
+
+ Removed:
+
+ Can't use the destructors for the same reason as above. The only
+ place to put this is in persistent_endpoint_contact_deleted_observer
+ which I believe is the "correct" place but even that will handle only
+ dynamic contacts. This doesn't called on shutdown however. There is
+ no hook to use for static contacts that may be removed because of a
+ config change while asterisk is in operation.
+
+ I moved the cleanup of contact_status from ast_sip_location_delete_contact
+ to the handler as well.
+
+ Status Change and RTT:
+
+ Although they worked fine where they were (in update_contact_status) I
+ moved them to persistent_endpoint_contact_status_observer to make it
+ more consistent with removed. There was logic there already to detect
+ a state change.
+
+ Finally, fixed a nit in permanent_uri_handler rmudgett reported
+ eralier.
+
+ ASTERISK-25608 #close
+
+ Change-Id: I4b56e7dfc3be3baaaf6f1eac5b2068a0b79e357d
+ Reported-by: George Joseph
+ Tested-by: George Joseph
+
+2015-11-21 06:02 +0000 [5a18193dc0] Alexander Traud <pabstraud@compuserve.com>
+
+ * res_format_attr_vp8: In SDP, forward max-fr and max-fs for video-codec VP8.
+
+ ASTERISK-25584 #close
+
+ Change-Id: Iae00071b4ff1ae76f24995aeac4d00284fd14f91
+
+2015-11-21 05:21 +0000 [3e2178c05e] Alexander Traud <pabstraud@compuserve.com>
+
+ * res_format_attr_opus: Update to latest RFC 7587.
+
+ Beside that, the format-attribute module sends only non-default values in the
+ line fmtp, now. This avoids unnecessary overhead in SDP messages. Furthermore,
+ previously the parameter stereo was not parsed when being the first parameter.
+
+ ASTERISK-25583 #close
+
+ Change-Id: Iae85ba3e5960bfd5d51cf65bcffad00dd4875a73
+2015-12-02 14:11 +0000 [072d94183c] Jonathan Rose <jrose@digium.com>
+
+ * Fix crash in audiohook translate to slin
+
+ This patch fixes a crash which would occur when an audiohook was
+ applied to a channel using an audio codec that could not be translated
+ to signed linear (such as when using pass-through codecs like OPUS or
+ when the codec translator module for the format in use is not loaded).
+
+ ASTERISK-25498 #close
+ Reported by: Ben Langfeld
+
+ Change-Id: Ib6ea7373fcc22e537cad373996136636201f4384
+
+2015-12-03 12:07 +0000 [9184fbeb34] gtjoseph <george.joseph@fairview5.com>
+
+ * res_pjsip: Use a MD5 hash for static Contact IDs
+
+ When 90d9a70789 was merged, it mostly tested dynamic contacts created as
+ a result of registering a PJSIP endpoint. Contacts generated in this
+ fashion typically have a long alphanumeric string as their object identifier,
+ which maps reasonably well for StatsD. Unfortunately, this doesn't work in the
+ general case. StatsD treats both '.' and ':' characters as special characters.
+ In particular, having a ':' appear in the middle of a StatsD metric will
+ result in the metric being rejected.
+
+ This causes some obvious issues with SIP URIs.
+
+ The StatsD API should not be responsible for escaping the metric name passed
+ to it. The metric is treated as a single long string, and it would be
+ challenging to know what to escape in the string passed to the function.
+ Likewise, we don't want to escape the metric in PJSIP, as that involves
+ overhead that is wasted when either res_statsd isn't loaded or enabled.
+
+ This patch takes an alternative approach. The Contact ID has been changed
+ to be "aor@@uri_hash" instead of "aor@@uri". This (a) won't contain any of the
+ aforementioned special characters, (b) can be done on Contact creation,
+ which has minimal impact on run-time performance, and (c) also conforms to an
+ earlier commit that changed the ID for dynamic contacts.
+
+ The downside of this is that StatsD users will have to map SHA1 hashes back to
+ the Contacts that are emitting the statistics. To that end, the CLI commands
+ have been updated to include the first 10 characters of the MD5 hash, which
+ should be enough to match what is shown in Graphite (or some other StatsD
+ backend).
+
+ ASTERISK-25595 #close
+
+ Change-Id: Ic674a3307280365b4a45864a3571c295b48a01e2
+ Reported-by: Matt Jordan
+ Tested-by: George Joseph
+
+2015-11-30 22:19 +0000 [ed9134282e] gtjoseph <george.joseph@fairview5.com>
+
+ * res_pjsip: Update logging to show contact->uri in messages
+
+ An earlier commit changed the id of dynamic contacts to contain
+ a hash instead of the uri. This patch updates status change
+ logging to show the aor/uri instead of the id. This required
+ adding the aor id to contact and contact_status and adding
+ uri to contact_status. The aor id gets added to contact and
+ contact_status in their allocators and the uri gets added to
+ contact_status in pjsip_options when the contact_status is
+ created or updated.
+
+ ASTERISK-25598 #close
+
+ Reported-by: George Joseph
+ Tested-by: George Joseph
+
+ Change-Id: I56cbec1d2ddbe8461367dd8b6da8a6f47f6fe511
+
+2015-12-01 16:11 +0000 [eadad24b59] Jonathan Rose <jrose@digium.com>
+
+ * Unset BRIDGEPEER when leaving a bridge
+
+ Currently if a channel is transferred out of a bridge, the BRIDGEPEER
+ variable (also BRIDGEPVTCALLID) remain set even once the channel is
+ out of the bridge. This patch removes these variables when leaving
+ the bridge.
+
+ ASTERISK-25600 #close
+ Reported by: Mark Michelson
+
+ Change-Id: I753ead2fffbfc65427ed4e9244c7066610e546da
+
+2015-11-30 14:22 +0000 [bb0b60619d] Richard Mudgett <rmudgett@digium.com>
+
+ * res_sorcery_memory_cache.c: Fix off nominal ref leak.
+
+ Change-Id: If83d63cf11cbc6df9b15251848b01feb570ade49
+
+2015-11-30 16:42 +0000 [e7c88e11aa] Richard Mudgett <rmudgett@digium.com>
+
+ * sched.c: Make not return a sched id of 0.
+
+ According to the API doxygen a sched ID of 0 is valid. Unfortunately, 0
+ was never returned historically and several users incorrectly coded usage
+ of the returned sched ID assuming that 0 was invalid.
+
+ ASTERISK-25476
+
+ Change-Id: Ib19c7ebb44ec9fd393ef6646dea806d4f34e3a20
+
+2015-11-25 12:23 +0000 [4aed349a7b] Richard Mudgett <rmudgett@digium.com>
+
+ * Audit improper usage of scheduler exposed by 5c713fdf18f. (v13 additions)
+
+ chan_sip.c:
+ * Initialize mwi subscription scheduler ids earlier because of ASTOBJ to
+ ao2 conversion.
+
+ * Initialize register scheduler ids earlier because of ASTOBJ to ao2
+ conversion.
+
+ chan_skinny.c:
+ * Fix more scheduler usage for the valid 0 id value.
+
+ ASTERISK-25476
+
+ Change-Id: If9f0e5d99638b2f9d102d1ebc9c5a14b2d706e95
+
+2015-11-24 12:44 +0000 [6d9156d10f] Richard Mudgett <rmudgett@digium.com>
+
+ * Audit improper usage of scheduler exposed by 5c713fdf18f.
+
+ channels/chan_iax2.c:
+ * Initialize struct chan_iax2_pvt scheduler ids earlier because of
+ iax2_destroy_helper().
+
+ channels/chan_sip.c:
+ channels/sip/config_parser.c:
+ * Fix initialization of scheduler id struct members. Some off nominal
+ paths had 0 as a scheduler id to be destroyed when it was never started.
+
+ chan_skinny.c:
+ * Fix some scheduler id comparisons that excluded the valid 0 id.
+
+ channel.c:
+ * Fix channel initialization of the video stream scheduler id.
+
+ pbx_dundi.c:
+ * Fix channel initialization of the packet retransmission scheduler id.
+
+ ASTERISK-25476
+
+ Change-Id: I07a3449f728f671d326a22fcbd071f150ba2e8c8
+
+2015-12-01 07:55 +0000 [b76c196e13] Alexander Traud <pabstraud@compuserve.com>
+
+ * codec_resample: Increase buffer for Opus Codec.
+
+ ASTERISK-25599 #close
+
+ Change-Id: I1f88a88c59fb4e1e62bbdbb100c7152d48e73f10
+
+2015-11-28 08:46 +0000 [6614babea2] Matt Jordan <mjordan@digium.com>
+
+ * bridges/bridge_t38: Add a bridging module for managing T.38 state
+
+ When 4875e5ac32 was merged, it fixed several issues with a direct media bridge
+ transitioning to handling a T.38 fax. However, it uncovered a race condition
+ caused by the bridging core. When a channel involved in a T.38 fax leaves a
+ bridge, the frame queued by the channel driver that should inform the far side
+ that it is no longer in a T.38 fax may not make it across the bridge. The
+ bridging framework is *extremely* aggressive in tearing down the bridge, and
+ control frames that are currently in flight *may* get dropped.
+
+ This patch adds a new module to the bridging framework, bridge_t38. This module
+ maintains some notion of the T.38 state for the two channels in a bridge. When
+ the bridge detects that it is being torn down or when one of the two channels
+ leaves, it informs the respective channel(s) that they should stop faxing. This
+ ensures that channels switch back to audio if they survive and are ejected out
+ of a bridge while faxing.
+
+ ASTERISK-25582
+
+ Change-Id: If5b0bb478eb01c4607c9f4a7fc17c7957d260ea0
+
+2015-11-27 07:39 +0000 [3fcf160fae] Niklas Larsson <niklas@tese.se>
+
+ * CHANGES: Fix a typo
+
+ Change-Id: Iceb3d9bb78140c376174a7bee197dfcf8ef9cda7
+2015-11-25 15:26 +0000 [45efbf8503] Kevin Harwell <kharwell@digium.com>
+
+ * fastagi: record file closed after sending result
+
+ The fastagi record-file testsuite test sometimes fails reporting an empty
+ recorded file. This was happening because Asterisk was sending the agi result
+ notification prior to actually closing the file and the data, being buffered,
+ had not been written to the file yet when the test attempts to check the file
+ size.
+
+ This patch makes it so the record file stream is closed prior to sending the
+ agi result notification.
+
+ ASTERISK-25593 #close
+
+ Change-Id: I6b2b3be3ae37f7c7b18e672c419a89b3b8513cde
+
+2015-11-25 13:29 +0000 [b2787876d6] Walter Doekes <walter+asterisk@wjd.nu>
+
+ * main: Slight refactor of main. Improve color situation.
+
+ Several issues are addressed here:
+ - main() is large, and half of it is only used if we're not rasterisk;
+ fixed by spliting up the daemon part into a separate function.
+ - Call ast_term_init from rasterisk as well.
+ - Remove duplicate code reading/writing asterisk history file.
+ - Attempt to tackle background color issues and color changes that
+ occur. Tested by starting asterisk -c until the colors stopped
+ changing at odd locations.
+
+ ASTERISK-25585 #close
+
+ Change-Id: Ib641a0964c59ef9fe6f59efa8ccb481a9580c52f
+
+2015-11-24 13:54 +0000 [59881fbb99] David M. Lee <dlee@respoke.io>
+
+ * Fixed some typos
+
+ Fixes some minor typos in the CHANGES file, plus an embarrasing typo in
+ the StatsD API.
+
+ Change-Id: I9ca4858c64a4a07d2643b81baa64baebb27a4eb7
+
+2015-11-24 13:07 +0000 [b75f587d15] Corey Farrell <git@cfware.com>
+
+ * res_pjsip_notify: Fix CLI usage info
+
+ The usage info for 'pjsip send notify' previously referenced the
+ chan_sip configuration sip_notify.conf. Fix this to reference
+ the correct configuration pjsip_notify.conf.
+
+ ASTERISK-25590 #close
+
+ Change-Id: I3898271a8e8a8b1db201741e790ebe2c6bf5cdea
+
+2015-11-23 14:27 +0000 [fc45f4040d] Richard Mudgett <rmudgett@digium.com>
+
+ * res_sorcery_realtime.c: Fix crash from NULL sorcery object type.
+
+ If the sorcery object type is not found a NULL is returned.
+ Unfortunately, sorcery_realtime_filter_objectset() will crash after
+ complaining about not finding the object type and saying to expect errors.
+
+ * Use ao2_cleanup() instead of ao2_ref() to prevent the crash.
+
+ ASTERISK-25165
+ Reported by Corey Farrell
+
+ Change-Id: Ic3b64453ea3058cb68d5c26d97d4fe7b8eea2e97
+
+2015-11-20 21:08 +0000 [4875e5ac32] Matt Jordan <mjordan@digium.com>
+
+ * chan_pjsip: Handle T.38 faxes with direct media bridges
+
+ When a channel is in a direct media bridge, a re-INVITE may arrive that forces
+ Asterisk to re-negotiate the media to a T.38 fax. When this occurs, the bridge
+ must change its technology to a simple bridge, and re-INVITE the media back
+ to Asterisk.
+
+ Generally, this logic mostly already exists in Asterisk. However, prior to this
+ patch, there were a few bugs:
+ (1) The T.38 framehook currently prevents a channel capable of T.38 faxes from
+ ever entering into a direct media bridge. This applies even when the only
+ media being passed over the channel is audio. This patch fixes this bug
+ by having the framehook specify that it defers caring about any frame type.
+ This allows the channels to enter into a direct media bridge, which will
+ be broken when a re-INVITE is received.
+ (2) When a re-INVITE is received, nothing instructed the bridging layer to
+ re-inspect the allowed bridging technology. This now occurs when either
+ a re-INVITE is received from a peer, or when a response is received from
+ the far end (that is, when the T.38 state changes to either
+ T38_PEER_REINVITE or T38_LOCAL_REINVITE).
+ (3) chan_pjsip needs to do a small amount of work to prevent a direct media
+ bridge from being chosen when a T.38 session is in progress. When a T.38
+ session supplement has a t38 datastore - which is added when we detect
+ we should start thinking about T.38 on a channel - we now refuse a native
+ RTP bridge.
+ (4) When a BYE request is received, we don't terminate the T.38 session. If
+ the other side of a T.38 fax survives the hangup (due to the 'g' flag
+ in Dial, for example), we don't currently re-INVITE the media on the
+ other channel back to audio. This patch now has res_pjsip_t38 intercept
+ BYE requests and inform the far side that the T.38 session is terminated.
+ This naturally causes the correct re-INVITEs to be sent.
+
+ ASTERISK-25582
+
+ Change-Id: Iabd6aa578e633d16e6b9f342091264e4324a79eb
+
+2015-11-20 21:07 +0000 [2b94d9a10d] Matt Jordan <mjordan@digium.com>
+
+ * res/res_pjsip_t38: Add debug statements
+
+ This patch adds some debug statements to res_pjsip_t38. These statements help
+ to determine which SDP negotiation callbacks are being executed, and, when
+ a particular callback exits, why a callback may not have applied its logic
+ to the local or remote SDP.
+
+ Change-Id: I61b3fb9183b7ebbb5da8e9f48b59a5d9d7042d77
+
+2015-10-22 09:44 +0000 [af288b2d96] Matt Jordan <mjordan@digium.com>
+
+ * main/cli: Use proper string methods to check existence of context/exten/app
+
+ Because the context, extension, and application are stored in stringfields,
+ checking for them being NULL doesn't work so well. This patch uses the
+ appropriate string library call, ast_strlen_zero, to see if there is a value
+ in the context/exten/app values.
+
+ Change-Id: Ie09623bfdf35f5a8d3b23dd596647fe3c97b9a23
+
+2015-11-18 09:43 +0000 [d27aac0a9d] Matt Jordan <mjordan@digium.com>
+
+ * res/res_endpoint_stats: Add module to emit endpoint StatsD statistics
+
+ This patch adds a module that emits StatsD statistics about Asterisk
+ endpoints. This includes:
+ * A GUAGE statistic for endpoint states, tracking how many endpoints are in
+ a particular state.
+ * A GUAGE statistic for each endpoint, counting the number of channels
+ currently associated with an endpoint.
+
+ ASTERISK-25572
+
+ Change-Id: If7e1333c5aeda8d136850b30c2101c0ee1c97305
+
+2015-11-18 10:07 +0000 [90d9a70789] Matt Jordan <mjordan@digium.com>
+
+ * res_pjsip/pjsip_options: Add StatsD statistics for PJSIP contacts
+
+ This patch adds the ability to send StatsD statistics related to the
+ state of PJSIP contacts. This includes:
+ * A GUAGE statistic measuring the count of contacts in a particular state.
+ This measures how many contacts are reachable, unreachable, etc.
+ * The RTT time for each contact, if those contacts are qualified. This
+ provides StatsD engines useful time-based data about each contact.
+
+ ASTERISK-25571
+
+ Change-Id: Ib8378d73afedfc622be0643b87c542557e0b332c
+
+2015-11-13 10:34 +0000 [75097a0955] Matt Jordan <mjordan@digium.com>
+
+ * res/res_pjsip_outbound_registration: Add registration statistics for StatsD
+
+ This patch adds outbound registration statistics for StatsD. This includes
+ the following:
+ * A GUAGE metric for the overall count of outbound registrations.
+ * A GUAGE metric for each state an outbound registration can be in. As the
+ outbound registrations change state, the overall count of how many
+ outbound registrations are in the particular state is changed.
+
+ These statistics are particularly useful for systems with a large number of
+ SIP trunks, and where measuring the change in state of the trunks is useful
+ for monitoring.
+
+ ASTERISK-25571
+
+ Change-Id: Iba6ff248f5d1c1e01acbb63e9f0da1901692eb37
+
+2015-11-19 09:40 +0000 [8f71263e72] Matt Jordan <mjordan@digium.com>
+
+ * res/res_pjsip_outbound_registration: Apply configuration on object type load
+
+ When Asterisk is configured to use a dynamic sorcery backend (such as
+ res_sorcery_astdb) with 'registration' objects, it will fail to create the
+ internal state objects associated with the registration objects on module
+ load. This is due to nothing actually querying for the specific objects
+ and calling their sorcery apply handler during module load.
+
+ This patch fixes that by calling get_registrations in the sorcery observer's
+ object_type_loaded handler. Doing this causes the sorcery backends to be
+ asked for the current state of all registration objects, which causes the
+ apply handler to be called and the internal run-time state to be created.
+
+ ASTERISK-25575 #close
+
+ Change-Id: Ie9306e797098c6d4da7bcf4a5434a15891508b23
+
+2015-11-11 11:51 +0000 [0b508789ab] Alexander Traud <pabstraud@compuserve.com>
+
+ * translate: Provide translation modules the result of SDP negotiation.
+
+ Previously, a trancoding module did not have access to the joint but cached
+ format. Therefore, the module did not have access to the attributes negotiated
+ via SDP (line fmtp). Now, a translation module receives the joint format.
+
+ ASTERISK-25545 #close
+
+ Change-Id: Id6878a989b50573298dab115d3371ea369e1a718
+
+2015-11-19 01:14 +0000 [1aa552b2a2] Alexander Traud <pabstraud@compuserve.com>
+
+ * res_format_attr_h264: Do not reset string buffer.
+
+ When no parameter is present, Asterisk does not generate the line fmtp, as
+ expected. However, because a buffer was reset, even rtpmap and fmtp of previous
+ media codecs got removed. Now, Asterisk does not reset other codecs in case of
+ no parameter for H.264.
+
+ ASTERISK-25573 #close
+
+ Change-Id: I93811331f4a28c45418a9e14ee46c0debd47a286
+
+2015-11-18 10:05 +0000 [3354b325c6] Matt Jordan <mjordan@digium.com>
+
+ * res_statsd: Add functions that support variable arguments
+
+ Often, the metric names of statistics we are generating for StatsD have some
+ dynamic component to them. This can be the name of a particular resource, or
+ some internal status label in Asterisk. With the current set of functions,
+ callers of the statsd API must first build the metric name themselves, then
+ pass this to the API functions. This results in a large amount of boilerplate
+ code and usage of either fixed length static buffers or dynamic memory
+ allocation, neither of which is desireable.
+
+ This patch adds two new functions to the StatsD API that support a printf
+ style format specifier for constructing the metric name. A dynamic string,
+ allocated in threadstorage, is used to build the metric name. This eases
+ the burden on users of the StatsD API.
+
+ Change-Id: If533c72d1afa26d807508ea48b4d8c7b32f414ea
+
+2015-11-17 14:53 +0000 [d4a522d587] Richard Mudgett <rmudgett@digium.com>
+
+ * res_pjsip_outbound_registration.c: Be tolerant of short registration timeouts.
+
+ Change-Id: Ie16f5053ebde0dc6507845393709b4d6a3ea526d
+
+2015-11-17 14:53 +0000 [e44ab3816c] Richard Mudgett <rmudgett@digium.com>
+
+ * res_pjsip_outbound_registration.c: Fix 423 response handling.
+
+ Receiving a 423 Interval Too Brief response after authentication for an
+ outbound registration attempt results in assuming that the registrar has
+ rejected the registration permanently. If there are no configured retries
+ for fatal responses then the outbound registration is stopped for that
+ endpoint.
+
+ For registrations, PJSIP/PJPROJECT intercepts the handling of 423
+ responses and does not include any authentication in the updated
+ registration request. When the updated request is challenged then the
+ Asterisk code assumes that we were challenged again because the peer
+ rejected the authentication we sent earlier.
+
+ * Made registration challenges keep track of the CSeq number to determine
+ if the received challenge response was for the request we thought we sent.
+ If the response's CSeq number differs from the CSeq number we last sent
+ with authentication then authenticate again because it is a challenge to a
+ different request.
+
+ Change-Id: I81b4bd36d1be095bab606e34b8b44e6302971b09
+
+2015-11-03 14:36 +0000 [1e0040b88f] Tyler Cambron <tcambron@digium.com>
+
+ * StatsD: Add res_statsd compatibility
+
+ Added a new api to res_statsd.c to allow it to receive a
+ character pointer for the value argument. This allows for a
+ '+' and a '-' to easily be sent with the value.
+
+ ASTERISK-25419
+ Reported By: Ashley Sanders
+
+ Change-Id: Id6bb53600943d27347d2bcae26c0bd5643567611
+
+2015-11-16 13:56 +0000 [f62b642fe3] Matt Jordan <mjordan@digium.com>
+
+ * res/res_pjsip: Fix off nominal crash with requests that fail and have a timer
+
+ When a request is sent using pjsip_endpt_send_request and fails, a condition
+ exists where the request wrapper, which is an AO2 object, may be de-ref'd
+ more times than it should. This occurs when the request's callback is called,
+ and, in the callback, the timer on the PJSIP heap is cancelled. When that
+ occurs, the request wrapper's lifetime is decremented. When
+ pjsip_endpt_send_request fails, we unilaterally decrement the lifetime of
+ the request wrapper again, even though we've already cancelled the reference
+ associated with the timer.
+
+ This patch checks the return result of pj_timer_heap_cancel_if_active before
+ removing the reference associated with the timer. We now only decrement it
+ in this case if a timer is cancelled as a result of the function call.
+
+ Change-Id: I21332343a1a019c1117076f9bf2df27be2850102
+
+2015-11-13 14:03 +0000 [fdd2afcd16] Mark Michelson <mmichelson@digium.com>
+
+ * Confbridge: Add a user timeout option
+
+ This option adds the ability to specify a timeout, in seconds, for a
+ participant in a ConfBridge. When the user's timeout has been reached,
+ the user is ejected from the conference with the CONFBRIDGE_RESULT
+ channel variable set to "TIMEOUT".
+
+ The rationale for this change is that there have been times where we
+ have seen channels get "stuck" in ConfBridge because a network issue
+ results in a SIP BYE not being received by Asterisk. While these
+ channels can be hung up manually via CLI/AMI/ARI, adding some sort of
+ automatic cleanup of the channels is a nice feature to have.
+
+ ASTERISK-25549 #close
+ Reported by Mark Michelson
+
+ Change-Id: I2996b6c5e16a3dda27595f8352abad0bda9c2d98
+
+2015-11-16 04:29 +0000 [7debb986a5] Alec Davis <sivad.a@paradise.net.nz>
+
+ * app_queue: (try_calling): mutex 'qe->chan' freed more times than we've locked!
+
+ commit aae45acbd (Mark Michelson 2015-04-15 10:38:02 -0500 6525)
+ refer ASTERISK-24958
+
+ above commit removed ast_channel_lock(qe->chan);
+ but failed to remove corresponding ast_channel_unlock(qe->chan);
+
+ ASTERISK-25561 #close
+ Reported Alec Davis
+
+ Change-Id: Ie05f4e2d08912606178bf1fded57cc022c7a2e1a
+
+2015-11-14 07:02 +0000 [afd9a89e5a] Joshua Colp <jcolp@digium.com>
+
+ * hashtab: Add NULL check when destroying iterator.
+
+ The hashtab API is pretty NULL tolerant which has resulted
+ in remaining callers not doing much checks themselves.
+ Unfortunately the function to destroy an iterator does not
+ do a NULL check and will result in a crash if passed NULL.
+ This change fixes that.
+
+ ASTERISK-25552 #close
+
+ Change-Id: Ic1bf8eec3639e5a440f1c941d3ae3893ac6ed619
+
+2015-11-13 14:32 +0000 [c0f2f8de45] Richard Mudgett <rmudgett@digium.com>
+
+ * res_pjsip_rfc3326.c: Fix crash when channel goes away.
+
+ If an authenticated incoming caller does not respond to our 200 OK INVITE
+ response with an ACK then PJSIP will hangup the call. Unfortunately,
+ there is a chance that the session's channel will go away between one use
+ of the channel pointer and another when building the BYE request because
+ the BYE is being built by the monitor thread and not the call's serializer
+ thread.
+
+ * Added a check to ensure that the thread trying to add the Reason header
+ is the call's serializer thread. This ensures that the channel will not
+ go away on us.
+
+ Change-Id: I866388d2b97ea2032eaae3f3ab3f1ca6cbd2df89
+
+2015-11-13 14:19 +0000 [4f43b85c92] Mark Michelson <mmichelson@digium.com>
+
+ * Taskprocessors: Increase high-water mark
+
+ In practical tests, we have seen certain taskprocessors, specifically
+ Stasis subscription taskprocessors, cross the recently-added high-water
+ mark and emit a warning. This high-water mark warning is only intended
+ to be emitted when things have tanked on the system and things are
+ heading south quickly. In the practical tests, the Stasis taskprocessors
+ sometimes had a max depth of 180 tasks in them, and Asterisk wasn't in
+ any danger at all.
+
+ As such, this ups the high-water mark to 500 tasks instead. It also
+ redefines the SIP threadpool request denial number to be a multiple of
+ the taskprocessor high-water mark.
+
+ Change-Id: Ic8d3e9497452fecd768ac427bb6f58aa616eebce
+
+2015-11-11 11:46 +0000 [d8d3991390] Alexander Traud <pabstraud@compuserve.com>
+
+ * format: Register format-attribute module with cached formats.
+
+ In Asterisk 13, cached formats are created before their corresponding format-
+ attribute module is registered. Cached formats are involved when a local
+ extension is called. Therefore, ast_format_generate_sdp_fmtp did not work
+ on local extensions. This change affects the Opus Codec, H.263 (Plus), H.264,
+ and format-attribute modules provided externally.
+
+ ASTERISK-25160 #close
+
+ Change-Id: I1ea1f0483e5261e2a050112e4ebdfc22057d1354
+
+2015-11-12 11:17 +0000 [367972e42d] Mark Michelson <mmichelson@digium.com>
+
+ * res_pjsip distributor: Don't send 503 response to responses.
+
+ When the SIP threadpool is backed up with tasks, we send 503 responses
+ to ensure that we don't try to overload ourselves. The problem is that
+ we were not insuring that we were not trying to send a 503 to an
+ incoming SIP response.
+
+ This change makes it so that we only send the 503 on incoming requests.
+
+ Change-Id: Ie2b418d89c0e453cc6c2b5c7d543651c981e1404
+
+2015-11-11 17:11 +0000 [2f9cb7d62b] Mark Michelson <mmichelson@digium.com>
+
+ * res_pjsip: Deny requests when threadpool queue is backed up.
+
+ We have observed situations where the SIP threadpool may become
+ deadlocked. However, because incoming traffic is still arriving, the SIP
+ threadpool's queue can continue to grow, eventually running the system
+ out of memory.
+
+ This change makes it so that incoming traffic gets rejected with a 503
+ response if the queue is backed up too much.
+
+ Change-Id: I4e736d48a2ba79fd1f8056c0dcd330e38e6a3816
+
+2015-11-12 06:24 +0000 [4e5bf12b33] Joshua Colp <jcolp@digium.com>
+
+ * format_cap: Don't append the 'none' format when appending all.
+
+ When appending all formats of a type all the codecs are iterated
+ and added. This operation was incorrectly adding the ast_format_none
+ format which is special in that it is supposed to be used when no
+ format is present. It shouldn't be appended.
+
+ ASTERISK-25535
+
+ Change-Id: I7b00f3bdf4a5f3022e483d6ece602b1e8b12827c
+
+2015-11-11 04:16 +0000 [07583c2888] Steve Davies <steve@one47.co.uk>
+
+ * Further fixes to improper usage of scheduler
+
+ When ASTERISK-25449 was closed, a number of scheduler issues mentioned in
+ the comments were missed. These have since beed raised in ASTERISK-25476
+ and elsewhere.
+
+ This patch attempts to collect all of the scheduler issues discovered so
+ far and address them sensibly.
+
+ ASTERISK-25476 #close
+
+ Change-Id: I87a77d581e2e0d91d33b4b2fbff80f64a566d05b
+
+2015-11-11 11:04 +0000 [b818d70533] Joshua Colp <jcolp@digium.com>
+
+ * threadpool: Handle worker thread transitioning to dead when going active.
+
+ This change adds handling of dead worker threads when moving them
+ to be active. When this happens the worker thread is removed from
+ both the active and idle threads container. If no threads are able
+ to be moved to active then the pool grows as configured.
+
+ A unit test has also been added which thrashes the idle timeout
+ and thread activation to exploit any race conditions between the
+ two.
+
+ ASTERISK-25546 #close
+
+ Change-Id: I6c455f9a40de60d9e86458d447b548fb52ba1143
+
+2015-11-10 09:27 +0000 [4bf84459c7] Alexander Traud <pabstraud@compuserve.com>
+
+ * rtp_engine: Init a format-attribute module to its RFC defaults.
+
+ Previously, format-attribute modules relied on an existing fmtp line in SDP
+ negotiation. However, fmtp is optional for several formats like the Opus Codec.
+ Now, the format-attribute module is called with an empty fmtp, which allows the
+ module to initialise itself to RFC defaults. Furthermore now, Asterisk is able
+ to differentiate between internally and externally created formats.
+
+ ASTERISK-25537 #close
+
+ Change-Id: I28f680cef7fdf51c0969ff8da71548edad72ec52
+
+2015-11-09 03:04 +0000 [1bff400df7] Alexander Traud <pabstraud@compuserve.com>
+
+ * ast_format_cap_get_names: To display all formats, the buffer was increased.
+
+ ASTERISK-25533 #close
+
+ Change-Id: Ie1a9d1a6511b3f1a56b93d04475fbf8a4e40010a
+
+2015-11-09 07:04 +0000 [f3ac4d8090] Alexander Traud <pabstraud@compuserve.com>
+
+ * ast_format_cap: Avoid format creation on module load, use cache instead.
+
+ Since Asterisk 13, formats are immutable and cached. However while loading a
+ module like chan_sip, some formats were created instead using cached ones.
+
+ ASTERISK-25535 #close
+
+ Change-Id: I479cdc220d5617c840a98f3389b3bd91e91fbd9b
+
+2015-11-06 07:54 +0000 [6d1bdb9d3b] Walter Doekes <walter+asterisk@wjd.nu>
+
+ * func_callerid: Document that CALLERID(pres) is available.
+
+ CALLERPRES() says that it's deprecated in favor of CALLERID(num-pres)
+ and CALLERID(name-pres). But for channel driver that don't make a
+ distinction between the two (e.g. SIP), it makes more sense to get/set
+ both at once. This change reveals the availability of CALLERID(pres),
+ CONNECTEDLINE(pres), REDIRECTING(orig-pres), REDIRECTING(to-pres) and
+ REDIRECTING(from-pres).
+
+ ASTERISK-25373 #close
+
+ Change-Id: I5614ae4ab7d3bbe9c791c1adf147e10de8698d7a
+2015-11-06 07:52 +0000 [8410336681] Walter Doekes <walter+asterisk@wjd.nu>
+
+ * docs: Fix a few typo's in app docs (more then, resourse).
+
+ Change-Id: Iba57efadf6c0b822e762c7a001bc89611d98afd7
+
+2015-11-06 07:36 +0000 [0d425f2eb4] Walter Doekes <walter+asterisk@wjd.nu>
+
+ * xmldoc: Improve xmldoc wrapping of 'core show ...' output.
+
+ Previously, the wrapping did both lookahead and lookback, which,
+ together with color escape sequences, caused some lines to be wrapped
+ way earlier than other lines. This led to inconsistent output.
+
+ This simplifies the wrapping code and makes it more sane: if maxcolumns
+ is hit, we simply jump back to the last space and wrap there.
+
+ ASTERISK-25527 #close
+
+ Change-Id: I56d01c6f9a812642b1b05535c98d4db48d17c957
+
+2015-11-06 06:57 +0000 [33752e0837] Sean Bright (license #5060)
+
+ * res_pjsip_sdp_rtp: Enable Opus to be negotiated via SIP/SDP.
+
+ In SIP/SDP, Opus has two channels always (see RFC 7587 section 7). The actual
+ amount of channels is negotiated in-band. Therefore now, the Opus codec and its
+ attribute rtpmap are registered with two channels.
+
+ ASTERISK-24779 #close
+ Reported by: PowerPBX
+ Tested by: Alexander Traud
+ patches:
+ asterisk-24779.patch submitted by Sean Bright (license #5060)
+
+ Change-Id: Ic7ac13cafa1d3450b4fa4987350924b42cbb657b
+
+2015-11-03 16:19 +0000 [6ff48319d9] Jonathan Rose <jrose@digium.com>
+
+ * taskprocessor: Add high water mark warnings
+
+ If a taskprocessor's queue grows large, this can indicate that there
+ may be a problem with tasks not leaving the processor or else that
+ the number of available task processors for a given type of task is
+ too low. This patch makes it so that if a taskprocessor's task queue
+ grows above 100 queued tasks that it will emit a warning message.
+ Warning messages are emitted only once per task processor.
+
+ ASTERISK-25518 #close
+ Reported by: Jonathan Rose
+
+ Change-Id: Ib1607c35d18c1d6a0575b3f0e3ff5d932fd6600c
+
+2015-11-04 14:31 +0000 [506aea26e6] Matt Jordan <mjordan@digium.com>
+
+ * main/dial: Protect access to the format_cap structure of the requesting channel
+
+ When a dial attempt is made that involves a requesting channel, we previously
+ were not:
+ a) Protecting access to the native format capabilities structure on the
+ requesting channel. That is inherently unsafe.
+ b) Reference bumping the lifetime of the format capabilities structure.
+
+ In both cases, something else could sneak in, blow away the format
+ capabilities, and we'd be holding onto an invalid format_cap structure. When
+ the newly created channel attempts to construct its format capabilities, things
+ go poorly.
+
+ This patch:
+ a) Ensures that we get a reference to the native format capabilities while
+ the requesting channel is locked
+ b) Holds a reference to the native format capabilities during the creation
+ of the new channel.
+
+ ASTERISK-25522 #close
+
+ Change-Id: I0bfb7ba8b9711f4158cbeaae96edf9626e88a54f
+
+2015-10-30 22:57 +0000 [d098d00424] Corey Farrell <git@cfware.com>
+
+ * Fix cli display of build options.
+
+ A previous commit reduced the AST_BUILDOPTS compiler define to
+ only include options that affected ABI. This included some options
+ that were previously displayed by cli "core show settings". This
+ change corrects the CLI display while still restricting buildopts.h
+ to ABI effecting options only.
+
+ ASTERISK-25434 #close
+ Reported by: Rusty Newton
+
+ Change-Id: Id07af6bedd1d7d325878023e403fbd9d3607e325
+
+2015-11-03 11:15 +0000 [afec1b1b64] Matt Jordan <mjordan@digium.com>
+
+ * res_pjsip/location: Destroy contact_status objects on contact deletion
+
+ The contact_status Sorcery objects are currently not destroyed when a contact
+ is deleted. This causes the contact's last known RTT/status to be 'sticky'
+ when the contact itself may no longer exist. This patch causes the
+ contact_status objects associated with both dynamic and static contacts to
+ be destroyed if the AoR holding those contacts is also destroyed (or via
+ other paths where a contact may be deleted.)
+
+ Change-Id: I7feec8b9278cac3c5263a4c0483f4a0f3b62426e
+
+2015-11-03 10:58 +0000 [715f770c9f] Matt Jordan <mjordan@digium.com>
+
+ * pjsip_configuration: On delete, remove the persistent version of an endpoint
+
+ When an endpoint is deleted (such as through an API), the persistent endpoint
+ currently continues to lurk around. While this isn't harmful from a memory
+ consumption perspective - as all persistent endpoints are reclaimed on
+ shutdown - it does cause Stasis endpoint related operations to continue
+ to believe that the endpoint may or may not exist.
+
+ This patch causes the persistent endpoint related to a PJSIP endpoint to be
+ destroyed if the PJSIP endpoint is deleted.
+
+ Change-Id: I85ac707b4d5e6aad882ac275b0c2e2154affa5bb
+2015-11-03 08:15 +0000 [f0f190af08] Matt Jordan <mjordan@digium.com>
+
+ * main/stasis_endpoints: Fix ContactStatusChange JSON for roundtrip_usec field
+
+ The JSON packing for the ContactStatusChange event forgot to include the
+ roundtrip_usec field. As a result, the field never showed up in any event,
+ even when the data was available. This patch corrects that error by properly
+ packing the JSON blob with the data.
+
+ Change-Id: I8df80da659a44010afbd48f645967518ff5daa17
+
+2015-11-02 20:24 +0000 [0393bd6bed] Corey Farrell <git@cfware.com>
+
+ * chan_sip: Allow websockets to be disabled.
+
+ This patch adds a new setting "websockets_enabled" to sip.conf.
+ Setting this to false allows chan_sip to be used without causing
+ conflicts with res_pjsip_transport_websocket.
+
+ ASTERISK-24106 #close
+ Reported by: Andrew Nagy
+
+ Change-Id: I04fe8c4f2d57b2d7375e0e25826c91a72e93bea7
+
+2015-11-02 17:19 +0000 [6fbffe42e1] Mark Michelson <mmichelson@digium.com>
+
+ * res_pjsip: Set threadpool max size default to 50.
+
+ During a stress test of subscriptions, a huge blast of
+ subscription-related traffic resulted in the threadpool expanding to a
+ ridiculous number of threads. The balooning of threads resulted in an
+ increase of memory, which led to a crash due to being out of memory.
+
+ An easy fix for the particular test was to limit the size of the
+ threadpool, thus reining in the amount of memory that would be used. It
+ was decided that there really is no downside to having a non-infinite
+ default value for the maximum size of the threadpool, so this change
+ introduces 50 threads as the maximum threadpool size for the SIP
+ threadpool.
+
+ ASTERISK-25513 #close
+ Reported by John Bigelow
+
+ Change-Id: If0b9514f1d9b172540ce1a6e2f2ffa1f2b6119be
+
+2015-11-02 06:57 +0000 [11e54b1932] Matt Jordan <mjordan@digium.com>
+
+ * pjsip_options: Schedule/unschedule qualifies on AoR creation/destruction
+
+ When an AoR is created or destroyed dynamically, the scheduled OPTIONS
+ requests that qualify the contacts on the AoR are not necessarily started
+ or destroyed, particularly for persistent contacts created for that AoR.
+ This patch adds create/update/delete sorcery observers for an AoR, which
+ schedule/unschedule the qualifies as expected.
+
+ Change-Id: Ic287ed2e2952a7808ee068776fe966f9554bdf7d
+
+2015-10-30 13:22 +0000 [118d628e08] Matt Jordan <mjordan@digium.com>
+
+ * Makefile: Add a rule 'basic-pbx' that installs the Basic PBX configs
+
+ This patch adds a rule for installing the Super Awesome Company based 'Basic
+ PBX' configuration files. As part of adding this rule, a bit of the content
+ that makes up installing the configuration files under the 'samples' target
+ was refactored into a make subroutine for usage by additional later config
+ make targets.
+
+ Change-Id: I6c2e27906f73e2919a2b691da0be20ae70302404
+2015-10-29 08:28 +0000 [9a021a42ad] Joshua Colp <jcolp@digium.com>
+
+ * res_pjsip_pubsub: Fix assertion when UAS dialog creation fails.
+
+ When compiled with assertions enabled one will occur when destroying
+ the subscription tree when UAS dialog creation fails. This is because
+ the code assumes that a dialog will always exist on a subscription
+ tree when in reality during this specific scenario it won't.
+
+ This change makes it so a dialog is not removed from the subscription
+ tree if it is not present.
+
+ ASTERISK-25505 #close
+
+ Change-Id: Id5c182b055aacc5e66c80546c64804ce19218dee
+
+2015-10-26 11:42 +0000 [1256aedf66] Alexander Traud <pabstraud@compuserve.com>
+
+ * chan_sip: Do not send all codecs on INVITE.
+
+ Since version 13, Asterisk sent all allowed codecs as callee, even when the
+ caller did not request/support them. In case of dynamic RTP payloads, this led
+ to the same ID for different codecs, which is not allowed by SIP/SDP. Now, the
+ intersection between the requested and the supported codecs is send again.
+
+ ASTERISK-24543 #close
+
+ Change-Id: Ie90cb8bf893b0895f8d505e77343de3ba152a287
+
+2015-10-24 13:08 +0000 [5f593e7c38] gtjoseph <george.joseph@fairview5.com>
+
+ * build: GCC 5.1.x catches some new const, array bounds and missing paren issues
+
+ Fixed 1 issue in each of the affected files.
+
+ ASTERISK-25494 #close
+ Reported-by: George Joseph
+ Tested-by: George Joseph
+
+ Change-Id: I818f149cd66a93b062df421e1c73c7942f5a4a77
+
+2015-10-20 16:02 +0000 [162acd45f7] gtjoseph <george.joseph@fairview5.com>
+
+ * res_pjsip: Add "like" processing to pjsip list and show commands
+
+ Add the ability to filter output from pjsip list and show commands
+ using the "like" predicate like chan_sip.
+
+ For endpoints, aors, auths, registrations, identifyies and transports,
+ the modification was a simple change of an ast_sorcery_retrieve_by_fields
+ call to ast_sorcery_retrieve_by_regex. For channels and contacts a
+ little more work had to be done because neither of those objects are
+ true sorcery objects. That was just removing the non-matching object
+ from the final container. Of course, a little extra plumbing in the
+ common pjsip_cli code was needed to parse the "like" and pass the regex
+ to the get_container callbacks.
+
+ Some of the get_container code in res_pjsip_endpoint_identifier was also
+ refactored for simplicity.
+
+ ASTERISK-25477 #close
+ Reported by: Bryant Zimmerman
+ Tested by: George Joseph
+
+ Change-Id: I646d9326b778aac26bb3e2bcd7fa1346d24434f1
+
+2015-10-21 11:51 +0000 [c58091737d] Kevin Harwell <kharwell@digium.com>
+
+ * res_pjsip_outbound_registration: registration stops due to fatal 4xx response
+
+ During outbound registration it is possible to receive a fatal (any permanent/
+ non-temporary 4xx, 5xx, 6xx) response from the registrar that is simply due
+ to a problem with the registrar itself. Upon receiving the failure response
+ Asterisk terminates outbound registration for the given endpoint.
+
+ This patch adds an option, 'fatal_retry_interval', that when set continues
+ outbound registration at the given interval up to 'max_retries' upon receiving
+ a fatal response.
+
+ ASTERISK-25485 #close
+
+ Change-Id: Ibc2c7b47164ac89cc803433c0bbe7063bfa143a2
+
+2015-10-22 17:07 +0000 [ebe69dee0d] Mark Michelson <mmichelson@digium.com>
+
+ * format_cap: Detect vector allocation failures.
+
+ A crash was seen on a system that ran out of memory due to Asterisk not
+ checking for vector allocation failures in format_cap.c. With this
+ change, if either of the AST_VECTOR_INIT calls fail, we will return a
+ value indicating failure.
+
+ Change-Id: Ieb9c59f39dfde6d11797a92b45e0cf8ac5722bc8
+
+2015-10-02 15:32 +0000 [3b19efefef] Mark Michelson <mmichelson@digium.com>
+
+ * res_pjsip_pubsub: Prevent sending NOTIFY on destroyed dialog.
+
+ A certain situation can result in our attempting to send a NOTIFY on a
+ destroyed dialog. Say we attempt to send a NOTIFY to a subscriber, but
+ that subscriber has dropped off the network. We end up retransmitting
+ that NOTIFY until the appropriate SIP timer says to destroy the NOTIFY
+ transaction. When the pjsip evsub code is told that the transaction has
+ been terminated, it responds in kind by alerting us that the
+ subscription has been terminated, destroying the subscription, and then
+ removing its reference to the dialog, thus destroying the dialog.
+
+ The problem is that when we get told that the subscription is being
+ terminated, we detect that we have not sent a terminating NOTIFY
+ request, so we queue up such a NOTIFY to be sent out. By the time that
+ queued NOTIFY gets sent, the dialog has been destroyed, so attempting to
+ send that NOTIFY can result in a crash.
+
+ The fix being introduced here is actually a reintroduction of something
+ the pubsub code used to employ. We hold a reference to the dialog and
+ wait to decrement our reference to the dialog until our subscription
+ tree object is destroyed. This way, we can send messages on the dialog
+ even if the PJSIP evsub code wants to terminate earlier than we would
+ like.
+
+ In doing this, some NULL checks for subscription tree dialogs have been
+ removed since NULL dialogs are no longer actually possible.
+
+ Change-Id: I013f43cddd9408bb2a31b77f5db87a7972bfe1e5
+
+2015-09-29 14:53 +0000 [0a346f095f] Mark Michelson <mmichelson@digium.com>
+
+ * res_pjsip_pubsub: Ensure dialog lock balance.
+
+ When sending a NOTIFY, we lock the dialog and then unlock the dialog
+ when finished. A recent change made it so that the subscription tree's
+ dialog pointer will be set NULL when sending the final NOTIFY request
+ out. This means that when we attempt to unlock the dialog, we pass a
+ NULL pointer to pjsip_dlg_dec_lock(). The result is that the dialog
+ remains locked after we think we have unlocked it. When a response to
+ the NOTIFY arrives, the monitor thread attempts to lock the dialog, but
+ it cannot because we never released the dialog lock. This results in
+ Asterisk being unable to process incoming SIP traffic any longer.
+
+ The fix in this patch is to use a local pointer to save off the pointer
+ value of the subscription tree's dialog when locking and unlocking the
+ dialog. This way, if the subscription tree's dialog pointer is NULLed
+ out, the local pointer will still have point to the proper place and the
+ dialog lock will be unlocked as we expect.
+
+ Change-Id: I7ddb3eaed7276cceb9a65daca701c3d5e728e63a
+
+2015-09-28 16:36 +0000 [ad39508095] Mark Michelson <mmichelson@digium.com>
+
+ * res_pjsip_pubsub: Prevent crashes on final NOTIFY.
+
+ The SIP dialog is removed from the subscription tree when the final
+ NOTIFY is sent. However, after the final NOTIFY is sent, the persistence
+ update function still attempts to access the cseq from the dialog,
+ resulting in a crash.
+
+ This fix removes the subscription persistence at the same time that the
+ dialog is removed from the subscription tree. This way, there is no
+ attempt to update persistence when the subscription is being destroyed.
+
+ Change-Id: Ibb46977a6cef9c51dc95f40f43446e3d11eed5bb
+
+2015-09-17 17:28 +0000 [067f408760] Mark Michelson <mmichelson@digium.com>
+
+ * res_pjsip_pubsub: Remove serializer when sending final NOTIFY.
+
+ There have been crashes seen where a taskprocessor's listener is NULL
+ unexpectedly.
+
+ Looking at backtraces, the problem was specifically seen in PJSIP
+ serializers.
+
+ Subscriptions make the mistake of removing a serializer from a dialog
+ during subscription tree destruction. Since subscription trees are
+ reference-counted, guaranteeing the circumstances behind the destruction
+ are not possible. This makes it so that the dialog serializer can be
+ removed while not holding the dialog lock. This makes it possible for
+ the distributor to get a pointer to the dialog serializer and have that
+ serializer get freed out from under it.
+
+ The fix for this is to remove the serializer from a subscription dialog
+ when sending the final NOTIFY. This guarantees that the serializer is
+ removed with the dialog lock held. By doing this, we guarantee that if
+ the distributor gains access to the dialog's serializer, it will not be
+ possible for the serializer to get freed by another thread.
+
+ Change-Id: I21f5dac33529f65cec45679bdace60670800ff66
+
+2015-09-02 09:14 +0000 [1bcc592765] Mark Michelson <mmichelson@digium.com>
+
+ * res_pjsip_pubsub: Fix crash on destruction of empty subscription tree.
+
+ If an old persistent subscription is recreated but then immediately
+ destroyed because it is out of date, the subscription tree will have no
+ leaf subscriptions on it. This was resulting in a crash when attempting
+ to destroy the subscription tree.
+
+ A simple NULL check fixes this problem.
+
+ Change-Id: I85570b9e2bcc7260a3fe0ad85904b2a9bf36d2ac
+
+2015-09-01 15:47 +0000 [b3cc2bd7df] Mark Michelson <mmichelson@digium.com>
+
+ * res_pjsip_pubsub: Solidify lifetime and ownership of objects.
+
+ There have been crashes and general instability seen in the pubsub code,
+ so this patch introduces three changes to increase the stability.
+
+ First, the ownership model for subscriptions has been modified. Due to
+ RLS, subscriptions are stored in memory as a tree structure. Prior to my
+ patch, the PJSIP subscription was the owner of the subscription tree.
+ When the PJSIP subscription told us that it was terminating, we started
+ destroying the subscription tree along with all of the individual leaf
+ subscriptions that belong to the tree. The problem with this model is
+ that the two actors in play here, the PJSIP subscription and the
+ individual leaf subscriptions, need to have joint ownership of the
+ subscription tree. So now, the PJSIP subscription and the individual
+ leaf subscriptions each have a reference to the subscription tree. This
+ way, we will not actually free memory until no players are left that
+ care. The PJSIP subscription is a bigger stakeholder, in that if the
+ PJSIP subscription's reference to the subscription tree is removed, the
+ subscription tree instructs the leaf subscriptions to shut down and drop
+ their references to the subscription tree when possible. The individual
+ leaf subscriptions, upon being told to shut down, can drop their stasis
+ subscriptions or whatever they use to learn of new state, and then drop
+ their reference to the subscription tree once they are ready to die.
+
+ Second, the lifetime of a PJSIP subscription's reference to our
+ subscription tree has been altered. As I learned from doing a deep dive,
+ the PJSIP evsub code can tell Asterisk multiple times that the
+ subscription has been terminated, and not all of these times
+ are especially helpful. I have altered the message flow that we use for
+ SIP subscriptions such that we will always drop the PJSIP subscription's
+ reference to the subscription tree when we send the NOTIFY that
+ terminates a SIP subscription. This also means that we will now queue
+ NOTIFY requests to be sent after responding to incoming SUBSCRIBEs so
+ that we can have predictable state changes from the PJSIP evsub code.
+
+ Third, the synchronization of operations has been improved. PJSIP can
+ call into our code from a serializer thread (e.g. upon receiving an
+ incoming request) or from the monitor thread (e.g. when a subscription
+ times out). Because of this, there is the possibility of competing
+ threads stepping on each other. PJSIP attempts to do some
+ synchronization on its own by always keeping the dialog lock held when
+ it calls into us. However, since we end up pushing tasks into the
+ serializer, the result was that serialized operations were not grabbing
+ the dialog lock and could, as a result, step on something that was being
+ attempted by a different thread. Now we ensure that serialized
+ operations grab the dialog lock, then check for extenuating
+ circumstances, then proceed with their operation if they can.
+
+ Change-Id: Iff2990c40178dad9cc5f6a5c7f76932ec644b2e5
+
+2015-10-19 15:28 +0000 [c8c65dfa41] Richard Mudgett <rmudgett@digium.com>
+
+ * strings.c: Fix __ast_str_helper() to always return a terminated string.
+
+ Users of functions which call __ast_str_helper() such as the ones listed
+ below are likely to not check the return value for failure so ensuring
+ that the string is always nil terminated is a good safety measure.
+
+ ast_str_set_va()
+ ast_str_append_va()
+ ast_str_set()
+ ast_str_append()
+
+ Change-Id: I36ab2d14bb6015868b49329dda8639d70fbcae07
+
+2015-10-19 15:27 +0000 [b271d4a28a] Richard Mudgett <rmudgett@digium.com>
+
+ * Add missing failure checks to ast_str_set_va() callers.
+
+ Change-Id: I0c2cdcd53727bdc6634095c61294807255bd278f
+
+2015-10-21 11:44 +0000 [f2725c8b77] Joshua Colp <jcolp@digium.com>
+
+ * res_pjsip: Move URI validation to use time.
+
+ In a realtime based system with a limited number of threadpool threads
+ it is possible for a deadlock to occur. This happens when permanent
+ endpoint state is updated, which will cause database queries to be done.
+ These queries may result in URI validation being done which is done
+ synchronously using a PJSIP thread. If all PJSIP threads are in use
+ processing traffic they themselves may be blocked waiting to get the
+ permanent endpoint container lock when identifying an endpoint.
+
+ This change moves URI validation to occur at use time instead of
+ configuration time. While this comes at a cost of not seeing a problem
+ until you use it it does solve the underlying deadlock problem.
+
+ ASTERISK-25486 #close
+
+ Change-Id: I2d7d167af987d23b3e8199e4a68f3359eba4c76a
+
+2015-10-21 08:08 +0000 [84ff075d41] Alexander Traud <pabstraud@compuserve.com>
+
+ * format: Update the maximum packetization time for iLBC 30.
+
+ In September 2006, the maximum packetization time (ptime) were set to such a
+ low value, packetization was disabled for many codecs actually. This was fixed
+ for many codecs but not for iLBC 30. This enables packetization for iLBC which
+ can be enabled for example via allow=ilbc:60,gsm,alaw,ulaw in the file sip.conf.
+
+ ASTERISK-7803
+
+ Change-Id: I2ef90023d35efb7cb8fe96ed74f53f6846ffad12
+2015-10-21 09:51 +0000 [869ef2a8ee] Alexander Traud <pabstraud@compuserve.com>
+
+ * chan_sip: Fix autoframing=yes.
+
+ With Asterisk 13, the structures ast_format and ast_codec changed. Because of
+ that, the paketization timing (framing) of the RTP channel moved away from the
+ formats/codecs. In the course of that change, the ptime of the callee was not
+ honored anymore, when the optional autoframing was enabled.
+
+ ASTERISK-25484 #close
+
+ Change-Id: Ic600ccaa125e705922f89c72212c698215d239b4
+
+2015-10-20 22:24 +0000 [9fd2adc204] Matt Jordan <mjordan@digium.com>
+
+ * rest-api-templates: Wikify error code response reasons
+
+ Error response code descriptions may contain wiki markup that need to be
+ escaped. Without this patch, Confluence will reject the document being sent
+ and the responsible script will raise an exception.
+
+ Change-Id: I21fcb66fee7f6332381f2b99b1b0195dff215ee5
+
+2015-10-20 12:06 +0000 [72cbb6df55] Matt Jordan <mjordan@digium.com>
+
+ * funcs/func_holdintercept: Actually add the HOLD_INTERCEPT function
+
+ When ab803ec342 was committed, it accidentally forgot to actually *add* the
+ HOLD_INTERCEPT function. This highlights two interesting points:
+ * Gerrit forces you to put the patch as it is going to into the repo up for
+ review, which Review Board did not. Yay Gerrit.
+ * No one apparently bothered to use this feature, or else they don't know about
+ it. I'm going to go with the latter explanation.
+
+ ASTERISK-24922
+
+ Change-Id: Ida38278f259dd07c334a36f9b7d5475b5db72396
+
+2015-10-19 19:59 +0000 [9fc9777fa3] Matt Jordan <mjordan@digium.com>
+
+ * contrib/scripts/autosupport: Update for Asterisk 13
+
+ This patch adds some minor tweaks for autosupport to update it for Asterisk 13.
+ This includes:
+ * Finally removing most references to Zaptel
+ * Adding support for some additional 'core' commands, and fixing nomenclature
+ that generally hasn't been used for some time
+ * Adding some PJSIP/SIP commands to gather endpoints/peers and active channels
+
+ Change-Id: Ic997b418cbd9313588b6608e50f47b0ce6f4f1f1
+
+2015-10-14 14:15 +0000 [dc6ec661b3] mdu113 <mulitskiy@acedsl.com>
+
+ * res_config_pgsql.c: Fix deadlock loading realtime configuration.
+
+ On v13, loading several thousand PJSIP endpoints on Asterisk start causes
+ a deadlock most of the time.
+
+ Thanks to mdu113 for discovering that there was a call to pgsql_exec() not
+ protected by the pgsql_lock reentrancy lock.
+
+ {quote}
+ I believe a code path exists that attempts to use pgsql connection without
+ locking pgsql_lock. I believe what happens during that deadlock that I
+ see is two concurrent threads are both attempting to send query to pgsql,
+ one of the thread is using a code path without locking pgsql_lock. If
+ they managed to send queries at the same time, it seems postgres ignores
+ one of the queries and replies only to the one of them. If it happens so
+ that the thread holding the lock didn't receive the reply it will wait for
+ it (and hold the lock) forever (or at least for very long time), thus
+ completely blocking all access to db.
+ {quote}
+
+ * Added missing reentrancy locking around pgsql_exec() in find_table().
+
+ * Moved unlock of pgsql_lock in unload_module() to avoid locking inversion
+ between the psql_tables list lock and the pgsql_lock.
+
+ ASTERISK-25455 #close
+ Reported by: mdu113
+ Patches:
+ res_config_pgsql.c-connlock2.diff (license #5543) patch uploaded by mdu113
+
+ Change-Id: Id9e7cdf8a3b65ff19964b0cf942ace567938c4e2
+
+2015-10-13 14:13 +0000 [f8707ae9a5] Olle Johansson (License 5267)
+
+ * channels/chan_sip: Set cause code to 44 on RTP timeout
+
+ To quote Olle:
+
+ "When issuing a hangup due to RTP timeouts the cause code is not set. I have
+ selected 44 based on Cisco's implementation..."
+
+ ASTERISK-25135 #close
+ Reported by: Olle Johansson
+ patches:
+ rtp-timeout-cause-1.8.diff uploaded by Olle Johansson (License 5267)
+
+ Change-Id: Ia62100c55077d77901caee0bcae299f8dc7375fc
+
+2015-10-10 15:20 +0000 [486b172b50] Ivan Poddubny <ivan.poddubny@gmail.com>
+
+ * Build: Add menuselect options for using compiler sanitizers
+
+ This patch adds menuselect options for building Asterisk with
+ various sanitizers provided by gcc and clang.
+
+ When one of *SANITIZER flags is set in menuselect, the appropriate
+ option is added to CFLAGS ad LDFLAGS for the build.
+
+ Information on sanitizers in the project wiki:
+ https://github.com/google/sanitizers/wiki
+
+ GCC Manual:
+ https://gcc.gnu.org/onlinedocs/gcc/Debugging-Options.html
+
+ Clang Compiler User's Manual:
+ http://clang.llvm.org/docs/UsersManual.html#controlling-code-generation
+
+ ASTERISK-24718 #close
+ Reported by: Badalian Vyacheslav
+
+ Change-Id: Iafa51b792b7bcb20e848b99d16cf362d08590fa0
+
+2015-10-12 11:21 +0000 [e14023ca35] Richard Mudgett <rmudgett@digium.com>
+
+ * config.c: Fix off-nominal memory leak.
+
+ Change-Id: I06e346e9a5c63cc5071e7eda537310c4b43bffe0
+
+2015-10-12 11:20 +0000 [a99e821520] Richard Mudgett <rmudgett@digium.com>
+
+ * config.c: Fix potential memory corruption after [section](+).
+
+ The memory corruption could happen if the [section](+) is the last section
+ in the file with trailing comments. In this case process_text_line() has
+ left *last_cat is set to newcat and newcat is destroyed.
+
+ Change-Id: I0d1d999f553986f591becd000e7cc6ddfb978d93
+
+2015-10-12 11:21 +0000 [8d31d2526b] Richard Mudgett <rmudgett@digium.com>
+
+ * config.c: Fix #include after [section](+).
+
+ An #include right after a [section](+) would associate any variable
+ assignments before a new section in the #include with the wrong section.
+
+ * Fix section association by setting the current section to the appended
+ section.
+
+ * Fix '+' and '!' section flag interaction corner case depending upon
+ which flag came first. If the '!' came first then it would be ignored.
+ If the '!' came after then it would affect the appended section. The '!'
+ will now no longer be ignored.
+
+ ASTERISK-25461 #close
+ Reported by: Sean Pimental
+
+ Change-Id: Ic9d3191c8758048e2cbce6432f854b32531731c3
+
+2015-10-06 18:01 +0000 [3329c714f7] Richard Mudgett <rmudgett@digium.com>
+
+ * res_pjsip: Fix deadlock when sending out-of-dialog requests.
+
+ The struct send_request_wrapper has a pjsip lock associated with it that
+ is created non-recursive. There is a code path for the struct
+ send_request_wrapper lock that will attempt to lock it recursively. The
+ reporter's deadlock showed that the thread calling endpt_send_request()
+ deadlocked itself right after the wrapper object got created.
+
+ Out-of-dialog requests such as MESSAGE, qualify OPTIONS, and unsolicited
+ MWI NOTIFY messages can hit this deadlock.
+
+ * Replaced the struct send_request_wrapper pjsip lock with the mutex lock
+ that can come with an ao2 object since all of Asterisk's mutexes are
+ recursive. Benefits include removal of code maintaining the pjsip
+ non-recursive lock since ao2 objects already know how to maintain their
+ own lock and the lock will show up in the CLI "core show locks" output.
+
+ ASTERISK-25435 #close
+ Reported by: Dmitriy Serov
+
+ Change-Id: I458e131dd1b9816f9e963f796c54136e9e84322d
+
+2015-10-06 11:05 +0000 [a1435aa3fa] Stefan Engström <stefanen@kth.se>
+
+ * res/res_rtp_asterisk.c: Fix incorrect assignment of frame->subclass.frame_ending
+
+ In ast_rtp_read, the value of the variable 'mark' which we try to assign to a
+ frame->subclass.frame_ending may be 0, 1 or (1<<23), but we should translate
+ it to 0 or 1.
+
+ ASTERISK-25451 #close
+ Change-Id: I53bdf5c026041730184a6a809009c028549ce626
+
+2015-10-07 01:24 +0000 [3357678b94] Ivan Poddubny <ivan.poddubny@gmail.com>
+
+ * func_presencestate: Return "not_set" when no data is set in AstDB
+
+ Return AST_PRESENCE_NOT_SET when CustomPresence AstDB key does not
+ exist, i.e. when a new CustomPresence is added in the dialplan.
+
+ ASTERISK-25400 #close
+ Reported by: Andrew Nagy
+
+ Change-Id: I6fb17b16591b5a55fbffe96f3994ec26b1b1723a
+
+2015-10-06 20:43 +0000 [b714b2152d] Matt Jordan <mjordan@digium.com>
+
+ * res/res_rtp_asterisk: Fix assignment after ao2 decrement
+
+ When we decide we will no longer schedule an RTCP write, we remove the
+ reference to the RTP instance, then assign -1 to the stored scheduler ID
+ in case something else comes along and wants to see if anything is scheduled.
+
+ That scheduler ID is on the RTP instance. After 60a9172d7ef2 was merged to
+ fix the regression introduced by 3cf0f29310, this improper assignment on a
+ potentially destroyed object started getting tripped on the build agents.
+
+ Frankly, this should have been crashing a lot more often earlier. I can only
+ assume that the timing was changed just enough by both changes to start
+ actually hitting this problem.
+
+ As it is, simply moving the assignment prior to the ao2 deference is sufficient
+ to keep the RTP instance from being referenced when it is very, truly,
+ aboslutely dead.
+
+ (Note that it is still good practice to assign -1 to the scheduler ID when we
+ know we won't be scheduling it again, as the ao2 deref *may* not always destroy
+ the ao2 object.)
+
+ ASTERISK-25449
+
+ Change-Id: Ie6d3cb4adc7b1a6c078b1c38c19fc84cf787cda7
+
+2015-10-06 12:40 +0000 [f939e2bd48] Florian Sauerteig <ffs@ccn.net>
+
+ * chan_sip: Fix port parsing for IPv6 addresses in SIP Via headers.
+
+ If a Via header containes an IPv6 address and a port number is ommitted,
+ as it is the standard port, we now leave the port empty and to not set it
+ to the value after the first colon of the IPv6 address.
+
+ ASTERISK-25443 #close
+
+ Change-Id: Ie3c2f05471cd006bf04ed15598589c09577b1e70
+
+2015-10-05 16:53 +0000 [426263a64d] Richard Mudgett <rmudgett@digium.com>
+
+ * chan_pjsip: Fix crash on reINVITE before initial INVITE completes.
+
+ Apparently some endpoints attempt to send a reINVITE before completing the
+ initial INVITE transaction. In this case PJSIP responds appropriately to
+ the reINVITE with a 491 INVITE request pending. Unfortunately chan_pjsip
+ is using the initial INVITE transaction state to determine if an INVITE is
+ the initial INVITE or a reINVITE. Since the initial INVITE transaction
+ has not been confirmed yet chan_pjsip thinks the reINVITE is an initial
+ INVITE and starts another PBX thread on the channel. The extra PBX thread
+ ensures that hilarity ensues.
+
+ * Fix checks for a reINVITE on incoming requests to look for the presence
+ of a to-tag instead of the initial INVITE transaction state.
+
+ * Made caller_id_incoming_request() determine what to do if there is a
+ channel on the session or not. After a channel is created it is too late
+ to just store the new party id on the session because the session's party
+ id has already been copied to the channel's caller id.
+
+ ASTERISK-25404 #close
+ Reported by: Chet Stevens
+
+ Change-Id: Ie78201c304a2b13226f3a4ce59908beecc2c68be
+
+2015-10-05 21:34 +0000 [50fa9ff997] Matt Jordan <mjordan@digium.com>
+
+ * Fix improper usage of scheduler exposed by 5c713fdf18f
+
+ When 5c713fdf18f was merged, it allowed for scheduled items to have an ID of
+ '0' returned. While this was valid per the documentation for the API, it was
+ apparently never returned previously. As a result, several users of the
+ scheduler API viewed the result as being invalid, causing them to reschedule
+ already scheduled items or otherwise fail in interesting ways.
+
+ This patch corrects the users such that they view '0' as valid, and a returned
+ ID of -1 as being invalid.
+
+ Note that the failing HEP RTCP tests now pass with this patch. These tests
+ failed due to a duplicate scheduling of the RTCP transmissions.
+
+ ASTERISK-25449 #close
+
+ Change-Id: I019a9aa8b6997584f66876331675981ac9e07e39
+2015-08-26 16:58 +0000 [8f777ab584] Debian Amtelco <dan@amtelco.com>
+
+ * chan_pjsip: Add Referred-By header to the PJSIP REFER packet.
+
+ Some systems require the REFER packet to include a Referred-By header.
+ If the channel variable SIPREFERREDBYHDR is set, it passes that value as the
+ Referred-By header value. Otherwise, it adds the current dialog’s local info.
+
+ Reported by: Dan Cropp
+ Tested by: Dan Cropp
+
+ Change-Id: I3d17912ce548667edf53cb549e88a25475eda245
+
+2015-10-03 06:27 +0000 [74635b5638] Ivan Poddubny <ivan.poddubny@gmail.com>
+
+ * manager: Fix GetConfigJSON returning invalid JSON
+
+ When GetConfigJSON was introduced back in 1.6, it returned each
+ section as an array of strings: ["key=value", "key2=value2"].
+ Afterwards, it was changed a few times and became
+ ["key": "value", "key2": "value2"], which is not a correct JSON.
+ This patch fixes that by constructing a JSON object {} instead of
+ an array [].
+
+ Also, the keys "istemplate" and "tempates" that are used to
+ indicate templates and their inherited categories are now wrapped in
+ quotes.
+
+ ASTERISK-25391 #close
+ Reported by: Bojan Nemčić
+
+ Change-Id: Ibbe93c6a227dff14d4a54b0d152341857bcf6ad8
+
+2015-09-30 17:28 +0000 [40c69e78f5] Richard Mudgett <rmudgett@digium.com>
+
+ * res_sorcery_memory_cache.c: Fix deadlock with scheduler.
+
+ A deadlock can happen when a sorcery object is being expired from the
+ memory cache when at the same time another object is being placed into the
+ memory cache. There are a couple other variations on this theme that
+ could cause the deadlock. Basically if an object is being expired from
+ the sorcery memory cache at the same time as another thread tries to
+ update the next object expiration timer the deadlock can happen.
+
+ * Add a deadlock avoidance loop in expire_objects_from_cache() to check if
+ someone is trying to remove the scheduler callback from the scheduler.
+
+ ASTERISK-25441 #close
+
+ Change-Id: Iec7b0bdb81a72b39477727b1535b2539ad0cf4dc
+
+2015-10-01 14:30 +0000 [dfeb513e85] Richard Mudgett <rmudgett@digium.com>
+
+ * res_sorcery_memory_cache.c: Replace inline code with function.
+
+ Make sorcery_memory_cache_close() call remove_all_from_cache() instead of
+ partially inlining it.
+
+ ASTERISK-25441
+
+ Change-Id: I1aa6cb425b1a4307096f3f914d17af8ec179a74c
+
+2015-10-01 14:27 +0000 [ced0a2d71b] Richard Mudgett <rmudgett@digium.com>
+
+ * res_sorcery_memory_cache.c: Shutdown in a less crash potential order.
+
+ Basically you should shutdown in the opposite order of how you setup since
+ later setup pieces likely depend on earlier setup pieces. e.g.,
+ Registering your external API with the rest of the system should be the
+ last thing setup and the first thing unregistered during shutdown.
+
+ Change-Id: I5715765b723100c8d3c2642e9e72cc7ad5ad115e
+
+2015-09-30 17:27 +0000 [cc279eea11] Richard Mudgett <rmudgett@digium.com>
+
+ * res_sorcery_memory_cache.c: Misc tweaks.
+
+ Change-Id: I8cd32dffbb4f33bb0c39518d6e4c991e73573160
+
+2015-09-30 17:27 +0000 [9af3b613f6] Richard Mudgett <rmudgett@digium.com>
+
+ * res_sorcery_memory_cache.c: Made use OBJ_SEARCH_MASK.
+
+ Change-Id: Ibca6574dc3c213b29cc93486e01ccd51f5caa46c
+
+2015-09-30 13:42 +0000 [56ed7b9dd5] Joshua Colp <jcolp@digium.com>
+
+ * res_rtp_asterisk: Move "Set role" warning to be debug.
+
+ In practice the set_role API callback can be invoked even
+ when no ICE is present on an RTP instance. This can occur
+ if ICE has not been enabled on it.
+
+ ASTERISK-25438 #close
+
+ Change-Id: I0e17e4316f0f0d7f095c78c3d4fd73a913b6ba69
+
+2015-09-28 15:31 +0000 [ddebb217f0] Richard Mudgett <rmudgett@digium.com>
+
+ * sched.c: Add warning about negative time interval request.
+
+ Change-Id: Ib91435fb45b7f5f7c0fc83d0eec20b88098707bc
+
+2015-09-29 21:15 +0000 Asterisk Development Team <asteriskteam@digium.com>
+
+ * asterisk 13.6.0-rc1 Released.
+
+2015-09-29 16:12 +0000 [bba1c4066b] Kevin Harwell <kharwell@lunkwill>
+
+ * Release summaries: Add summaries for 13.6.0-rc1
+
+2015-09-29 16:08 +0000 [82c4aecdbb] Kevin Harwell <kharwell@lunkwill>
+
+ * .version: Update for 13.6.0-rc1
+
+2015-09-29 16:08 +0000 [bc18db7388] Kevin Harwell <kharwell@lunkwill>
+
+ * .lastclean: Update for 13.6.0-rc1
+
+2015-09-29 16:08 +0000 [b9c53f95e3] Kevin Harwell <kharwell@lunkwill>
+
+ * realtime: Add database scripts for 13.6.0-rc1
+
+2015-09-29 14:53 +0000 [d30939b6e8] Kevin Harwell <kharwell@digium.com>
+
+ * ARI: Changed version from 1.8.0 to 1.9.0
+
+ Change-Id: I510991c60d28d171f47c4b58bba4947f7fc71b13
+
+2015-09-25 18:37 +0000 [5f19c9bade] Richard Mudgett <rmudgett@digium.com>
+
+ * res/ari/config.c: Fix user sort compare function.
+
+ Made use the ao2 sort compare template function and OBJ_SEARCH_xxx
+ identifiers.
+
+ Change-Id: Ic53005dc5aafa7a36c72300dd89b75fb63c92f4c
+
+2015-09-25 17:26 +0000 [3a85764039] Richard Mudgett <rmudgett@digium.com>
+
+ * res/ari/config.c: Optimize conf_alloc() object init.
+
+ * Now conf_alloc() has more off nominal error checking.
+
+ * Eliminated RAII_VAR() use in conf_alloc().
+
+ * Eliminated a dubius shortcut when destroying cfg->general in
+ conf_destructor() that would cause a crash if cfg->general failed to get
+ allocated.
+
+ * Add some ACO registration section comments.
+
+ Change-Id: Ia40c2b1b2d0777d641605118ae019c5a73865e1a
+
+2015-09-25 16:48 +0000 [028033e5a8] Richard Mudgett <rmudgett@digium.com>
+
+ * res/ari/config.c: Fix conf_alloc() object init.
+
+ Need to finish initializing the string fields in the ao2 object before
+ putting any default strings into them.
+
+ ASTERISK-25383 #close
+ Reported by: yaron nahum
+
+ Change-Id: I9f7f3a03f0c4991a01593abf8697b9a587c0ea84
+
+2015-09-27 20:45 +0000 [90165e306d] Matt Jordan <mjordan@digium.com>
+
+ * res/res_stasis: Fix accidental subscription to 'all' bridge topic
+
+ When b99a7052621700a1aa641a1c24308f5873275fc8 was merged, subscribing to a
+ NULL bridge will now cause app_subscribe_bridge to implicitly subscribe to
+ all bridges. Unfortunately, the res_stasis control loop did not check that
+ a bridge changing on a channel's control object was actually also non-NULL.
+ As a result, app_subscribe_bridge will be called with a NULL bridge when a
+ channel leaves a bridge. This causes a new subscription to be made to the
+ bridge. If an application has also subscribed to the bridge, the application
+ will now have two subscriptions:
+ (1) The explicit one created by the app
+ (2) The implicit one accidentally created by the control structure
+
+ As a result, the 'BridgeDestroyed' event can be sent multiple times. This
+ patch corrects the control loop such that it only subscribes an application
+ to a new bridge if the bridge pointer is non-NULL.
+
+ ASTERISK-24870
+
+ Change-Id: I3510e55f6bc36517c10597ead857b964463c9f4f
+
+2015-09-04 13:51 +0000 [e1223ff6db] Scott Griepentrog <scott@griepentrog.com>
+
+ * Scripts: check file versions of Asterisk and dependencies
+
+ To help in diagnosing mismatched modules and libraries, this
+ script scans for version, repository, and source information
+ and reports what is found.
+
+ ASTERISK-25376 #close
+ Reported by: Ashley Sanders
+
+ Change-Id: Ib0642d0fb96712476f59760d6d137a24633fe2d6
+
+2015-09-24 14:56 +0000 [6b1e7583c1] Richard Mudgett <rmudgett@digium.com>
+
+ * app_queue.c: Force COLP update if outgoing channel name changed.
+
+ * When a call is answered and the outgoing channel name has changed then
+ force a connected line update because the channel is no longer the same.
+ The channel was masqueraded into by another channel. This is usually
+ because of a call pickup.
+
+ Note: Forwarded calls are handled in a controlled manner so the original
+ channel name is replaced with the forwarded channel.
+
+ ASTERISK-25423 #close
+ Reported by: John Hardin
+
+ Change-Id: Ie275ea9e99c092ad369db23e0feb08c44498c172
+
+2015-09-24 14:20 +0000 [6bf304bf25] Richard Mudgett <rmudgett@digium.com>
+
+ * app_queue.c: Factor out a connected line update routine.
+
+ Replace inlined code with update_connected_line_from_peer().
+
+ ASTERISK-25423
+ Reported by: John Hardin
+
+ Change-Id: I33bbd033596fcb0208d41d8970369b4e87b806f3
+
+2015-09-24 13:27 +0000 [e36b5f1e8e] Richard Mudgett <rmudgett@digium.com>
+
+ * app_dial.c: Make 'A' option pass COLP updates.
+
+ While the 'A' option is playing the announcement file allow the caller and
+ peer to exchange COLP update frames.
+
+ ASTERISK-25423
+ Reported by: John Hardin
+
+ Change-Id: Iac6cf89b56d26452c6bb88e9363622bbf23895f9
+
+2015-09-24 12:59 +0000 [747bfac895] Richard Mudgett <rmudgett@digium.com>
+
+ * app_dial.c: Force COLP update if outgoing channel name changed.
+
+ * When a call is answered and the outgoing channel name has changed then
+ force a connected line update because the channel is no longer the same.
+ The channel was masqueraded into by another channel. This is usually
+ because of a call pickup.
+
+ Note: Forwarded calls are handled in a controlled manner so the original
+ channel name is replaced with the forwarded channel.
+
+ ASTERISK-25423
+ Reported by: John Hardin
+
+ Change-Id: I2e01f7a698fbbc8c26344a59c2be40c6cd98b00c
+
+2015-09-24 12:37 +0000 [14481d9aa0] Richard Mudgett <rmudgett@digium.com>
+
+ * app_dial.c: Factor out a connected line update routine.
+
+ Replace inlined code with update_connected_line_from_peer().
+
+ ASTERISK-25423
+ Reported by: John Hardin
+
+ Change-Id: Ia14f18def417645cd7fb453e1bdac682630a5091
+
+2015-09-23 17:41 +0000 [bbeda190c3] Richard Mudgett <rmudgett@digium.com>
+
+ * app_dial.c: Remove some no-op code.
+
+ Change-Id: Ice1884a94315d3cb7e3bbd47a9fba76a27276c54
+
+2015-09-23 14:02 +0000 [f050fa76eb] Mark Michelson <mmichelson@digium.com>
+
+ * logger: Prevent duplicate dynamic channels from being added.
+
+ There was a problem observed where the "logger add channel" CLI command
+ would allow for a channel with the same name to be added multiple times.
+ This would result in each message being written out to the same file
+ multiple times.
+
+ The problem was due to the difference in how logger channel filenames
+ are stored versus the format they are allowed to be presented when they
+ are added. For instance, if adding the logger channel "foo" through the
+ CLI, the result would be a logger channel with the file name
+ /var/log/asterisk/foo being stored. So when trying to add another "foo"
+ channel, "foo" would not match "/var/log/asterisk/foo" so we'd happily
+ add the duplicate channel.
+
+ The fix presented here is to introduce two new methods in the logger
+ code:
+ * make_filename(): given a logger channel name, this creates the
+ filename for that logger channel.
+ * find_logchannel(): given a logger channel name, this calls
+ make_filename() and then traverses the list of logchannels in order
+ to find a match.
+
+ This change has made use of make_filename() and find_logchannel()
+ throughout to more consistently behave.
+
+ ASTERISK-25305 #close
+ Reported by Mark Michelson
+
+ Change-Id: I892d52954d6007d8bc453c3cbdd9235dec9c4a36
+
+2015-09-24 14:49 +0000 [629458d349] Mark Michelson <mmichelson@digium.com>
+
+ * Do not swallow frames on channels leaving bridges.
+
+ When leaving a bridge, indications on a channel could be swallowed by
+ the internal indication logic because it appears that the channel is on
+ its way to be hung up anyway. One such situation where this is
+ detrimental is when channels on hold are redirected out of a bridge. The
+ AST_CONTROL_UNHOLD indication from the bridging code is swallowed,
+ leaving the channel in question to still appear to be on hold.
+
+ The fix here is to modify the logic inside ast_indicate_data() to not
+ drop the indication if the channel is simply leaving a bridge. This way,
+ channels on hold redirected out of a bridge revert to their expected "in
+ use" state after the redirection.
+
+ ASTERISK-25418 #close
+ Reported by Mark Michelson
+
+ Change-Id: If6115204dfa0551c050974ee138fabd15f978949
+
+2015-09-22 17:08 +0000 [5f15cd93f0] Richard Mudgett <rmudgett@digium.com>
+
+ * app_page.c: Fix crash when forwarding with a predial handler.
+
+ Page uses the async method of dialing with the dial API. When a call gets
+ forwarded there is no calling channel available. If the predial handler
+ was set then the calling channel could not be put into auto-service
+ for the forwarded call because it doesn't exist. A crash is the result.
+
+ * Moved the callee predial parameter string processing to before the
+ string is passed to the dial API rather than having the dial API do it.
+ There are a few benefits do doing this. The first is the predial
+ parameter string processing doesn't need to be done for each channel
+ called by the dial API. The second is in async mode and the forwarded
+ channel is to have the predial handler executed on it then the
+ non-existent calling channel does not need to be present to process the
+ predial parameter string.
+
+ * Don't start auto-service on a non-existent calling channel to execute
+ the predial handler when the dial API is in async mode and forwarding a
+ call.
+
+ ASTERISK-25384 #close
+ Reported by: Chet Stevens
+
+ Change-Id: If53892b286d29f6cf955e2545b03dcffa2610981
+
+2015-09-03 21:19 +0000 [b50e372394] Matt Jordan <mjordan@digium.com>
+
+ * ARI: Add events for Contact and Peer Status changes
+
+ This patch adds support for receiving events regarding Peer status changes
+ and Contact status changes. This is particularly useful in scenarios where
+ we are subscribed to all endpoints and channels, where we often want to know
+ more about the state of channel technology specific items than a single
+ endpoint's state.
+
+ ASTERISK-24870
+
+ Change-Id: I6137459cdc25ce27efc134ad58abf065653da4e9
+
+2015-09-04 12:24 +0000 [3502c0431d] Matt Jordan <mjordan@digium.com>
+
+ * res/res_stasis_device_state: Allow for subscribing to 'all' device state
+
+ This patch adds support for subscribing to all device state changes. This is
+ done either by subscribing to an empty device, e.g., 'eventSource=deviceState:',
+ or by the WebSocket connection specifying that it wants all state in the
+ system.
+
+ ASTERISK-24870
+
+ Change-Id: I9cfeca1c9e2231bd7ea73e45919111d44d2eda32
+
+2015-09-04 12:25 +0000 [4c9f613309] Matt Jordan <mjordan@digium.com>
+
+ * ARI: Add the ability to subscribe to all events
+
+ This patch adds the ability to subscribe to all events. There are two possible
+ ways to accomplish this:
+ (1) On initial WebSocket connection. This patch adds a new query parameter,
+ 'subscribeAll'. If present and True, Asterisk will subscribe the
+ applications to all ARI events.
+ (2) Via the applications resource. When subscribing in this manner, an ARI
+ client should merely specify a blank resource name, i.e., 'channels:'
+ instead of 'channels:12354'. This will subscribe the application to all
+ resources of the 'channels' type.
+
+ ASTERISK-24870 #close
+
+ Change-Id: I4a943b4db24442cf28bc64b24bfd541249790ad6
+
+2015-09-21 08:16 +0000 [ec514ad64d] Elazar Broad <elazar@thebroadfamily.com>
+
+ * core/logging: Fix logging to more than one syslog channel
+
+ Currently, Asterisk will log to the last configured syslog
+ channel in logger.conf. This is due to the fact that the
+ final call to openlog() supersedes all of the previous calls.
+ This commit removes the call to openlog() and passes the
+ facility to ast_log_vsyslog(), along with utilizing the
+ LOG_MAKEPRI macro to ensure that the message is routed to
+ the correct facility and with the correct priority.
+
+ ASTERISK-25407 #close
+ Reported by: Elazar Broad
+ Tested by: Elazar Broad
+
+ Change-Id: Ie2a2416bc00cce1b04e99ef40917c2011953ddd2
+
+2015-09-21 18:06 +0000 [aeddee39fb] Kevin Harwell <kharwell@digium.com>
+
+ * app_record: RECORDED_FILE variable not being populated
+
+ The RECORDED_FILE variable is empty unless a '%d' is specified in the filename.
+ This patch makes it so the variable is always set to the filename.
+
+ ASTERISK-25410 #close
+
+ Change-Id: I4ec826d8eb582ae2ad184e717be8668b74d37653
+
+2015-09-16 08:22 +0000 [2bd27d1222] Joshua Colp <jcolp@digium.com>
+
+ * pbx: Update device and presence state when changing a hint extension.
+
+ When changing a hint extension without removing the hint first the
+ device state and presence state is not updated. This causes the state
+ of the hint to be that of the previous extension and not the current
+ one. This state is kept until a state change occurs as a result of
+ something (presence state change, device state change).
+
+ This change updates the hint with the current device and presence
+ state of the new extension when it is changed. Any state callbacks
+ which may have been added before the hint extension is changed are
+ also informed of the new device and presence state if either have
+ changed.
+
+ ASTERISK-25394 #close
+
+ Change-Id: If268f1110290e502c73dd289c9e7e7b27bc8432f
+
+2015-09-17 16:34 +0000 [c94f46080f] Scott Griepentrog <scott@griepentrog.com>
+
+ * CHAOS: avoid crash if string create fails
+
+ Validate string buffer allocation before using them.
+
+ ASTERISK-25323
+
+ Change-Id: Ib9c338bdc1e53fb8b81366f0b39482b83ef56ce0
+
+2015-09-17 04:52 +0000 [b59c4d82b5] Walter Doekes <walter+asterisk@wjd.nu>
+
+ * chan_sip: Fix From header truncation for extremely long CALLERID(name).
+
+ The CALLERID(num) and CALLERID(name) and other info are placed into the
+ `char from[256]` in initreqprep. If the name was too long, the addr-spec
+ and params wouldn't fit.
+
+ Code is moved around so the addr-spec with params is placed there first,
+ and then fitting in as much of the display-name as possible.
+
+ ASTERISK-25396 #close
+
+ Change-Id: I33632baf024f01b6a00f8c7f35c91e5f68c40260
+
+2015-09-17 16:59 +0000 [4cc59533b9] Richard Mudgett <rmudgett@digium.com>
+
+ * CHAOS: res_pjsip_diversion avoid crash if allocation fails
+
+ Validate ast_malloc buffer returned before using it in
+ set_redirecting_value().
+
+ ASTERISK-25323
+
+ Change-Id: I15d2ed7cb0546818264c0bf251aa40adeae83253
+
+2015-09-17 16:47 +0000 [4fb95bbc4e] Kevin Harwell <kharwell@digium.com>
+
+ * app_queue: AgentComplete event has wrong reason
+
+ When a queued caller transfers an agent to another extension sometimes the
+ raised AgentComplete event has a reason of "caller" and sometimes "transfer".
+ Since a transfer has taken place this should always be transfer. This occurs
+ because sometimes the stasis hangup event arrives before the transfer event
+ thus writing a different reason out.
+
+ With this patch, when a hangup event is received during a transfer it will
+ check to see if the channel that is hanging up is part of a transfer. If so
+ it will return and let the subsequently received transfer event handler take
+ care of the cleanup.
+
+ ASTERISK-25399 #close
+
+ Change-Id: Ic63c49bd9a5ed463ea7a032fd2ea3d63bc81a50d
+
+2015-09-17 13:09 +0000 [fb6b5c684b] Scott Griepentrog <scott@griepentrog.com>
+
+ * PJSIP: avoid crash when getting rtp peer
+
+ Although unlikely, if the tech private is returned as
+ a NULL, chan_pjsip_get_rtp_peer() would crash.
+
+ ASTERISK-25323
+
+ Change-Id: Ie231369bfa7da926fb2b9fdaac228261a3152e6a
+
+2015-09-17 11:31 +0000 [6409e7b11a] Kevin Harwell <kharwell@digium.com>
+
+ * app_queue: Crash when transferring
+
+ During some transfer scenarios involving queues Asterisk would sometimes
+ crash when trying to obtain a channel snapshot (could happen on caller or
+ member channels). This occurred because the underlying channel had already
+ disappeared when trying to obtain the latest snapshot.
+
+ This patch adds a reference to both the member and caller channels that
+ extends to the lifetime of the queue'd call, thus making sure the channels
+ will always exist when retrieving the latest snapshots.
+
+ ASTERISK-25185 #close
+ Reported by: Etienne Lessard
+
+ Change-Id: Ic397fa68fb4ff35fbc378e745da9246a7b552128
+
+2015-09-16 17:36 +0000 [fe5077b1f8] Mark Michelson <mmichelson@digium.com>
+
+ * res_pjsip_pubsub: Eliminate race during initial NOTIFY.
+
+ There is a slim chance of a race condition occurring where two threads
+ can both attempt to manipulate the same area.
+
+ Thread A can be handling an incoming initial SUBSCRIBE request. Thread A
+ lets the specific subscription handler know that the subscription has
+ been established.
+
+ At this point, Thread B may detect a state change on the subscribed
+ resource and queue up a notification task on Thread C, the subscription
+ serializer thread.
+
+ Now Thread A attempts to generate the initial NOTIFY request to send to
+ the subscriber at the same time that Thread C attempts to generate a
+ state change NOTIFY request to send to the subscriber.
+
+ The result is that Threads A and C can step on the same memory area,
+ resulting in a crash. The crash has been observed as happening when
+ attempting to allocate more space to hold the body for the NOTIFY.
+
+ The solution presented here is to queue the subscription establishment
+ and initial NOTIFY generation onto the subscription serializer thread
+ (Thread C in the above scenario). This way, there is no way that a state
+ change notification can occur before the initial NOTIFY is sent, and if
+ there is a quick succession of NOTIFYs, we can guarantee that the two
+ NOTIFY requests will be sent in succession.
+
+ Change-Id: I5a89a77b5f2717928c54d6efb9955e5f6f5cf815
+
+2015-08-28 15:42 +0000 [b88c54fa4b] Alexander Traud <pabstraud@compuserve.com>
+
+ * translate: Fix transcoding while different in frame size.
+
+ When Asterisk translates between codecs, each with a different frame size (for
+ example between iLBC 30 and Speex-WB), too large frames were created by
+ ast_trans_frameout. Now, ast_trans_frameout is called with the correct frame
+ length, creating several frames when necessary. Affects all transcoding modules
+ which used ast_trans_frameout: GSM, iLBC, LPC10, and Speex.
+
+ ASTERISK-25353 #close
+
+ Change-Id: I2e229569d73191d66a4e43fef35432db24000212
+
+2015-09-10 17:19 +0000 [5c713fdf18] Mark Michelson <mmichelson@digium.com>
+
+ * scheduler: Use queue for allocating sched IDs.
+
+ It has been observed that on long-running busy systems, a scheduler
+ context can eventually hit INT_MAX for its assigned IDs and end up
+ overflowing into a very low negative number. When this occurs, this can
+ result in odd behaviors, because a negative return is interpreted by
+ callers as being a failure. However, the item actually was successfully
+ scheduled. The result may be that a freed item remains in the scheduler,
+ resulting in a crash at some point in the future.
+
+ The scheduler can overflow because every time that an item is added to
+ the scheduler, a counter is bumped and that counter's current value is
+ assigned as the new item's ID.
+
+ This patch introduces a new method for assigning scheduler IDs. Instead
+ of assigning from a counter, a queue of available IDs is maintained.
+ When assigning a new ID, an ID is pulled from the queue. When a
+ scheduler item is released, its ID is pushed back onto the queue. This
+ way, IDs may be reused when they become available, and the growth of ID
+ numbers is directly related to concurrent activity within a scheduler
+ context rather than the uptime of the system.
+
+ Change-Id: I532708eef8f669d823457d7fefdad9a6078b99b2
+
+2015-08-21 21:50 +0000 [865377fc38] Rodrigo Ramírez Norambuena <a@rodrigoramirez.com>
+
+ * chan_sip.c: Validation on module reload
+
+ Change validation on reload module because now used the cli function for
+ reload. The sip_reload() function never fail and ever return NULL for this
+ reason on reload() now use the call the sip_reload() and return
+ AST_MODULE_LOAD_SUCCESS.
+
+ This problem is dectected on reload by PUT method on ARI, getting always
+ 404 http code when the module is reloaded.
+
+ ASTERISK-25325 #close
+ Reporte by: Rodrigo Ramírez Norambuena
+
+ Change-Id: I41215877fb2cfc589e0d4d464000cf6825f4d7fb
+
+2015-08-21 17:39 +0000 [e75aff53e6] Richard Mudgett <rmudgett@digium.com>
+
+ * res_pjsip_pubsub.c: Mark ast_sip_create_subscription() as not used.
+
+ Change-Id: I2b8db18eac36c01a5c7eb9467699124e203fd093
+
+2015-09-09 12:24 +0000 [4d91d01df1] Richard Mudgett <rmudgett@digium.com>
+
+ * res_pjsip_pubsub.c: Add some notification comments.
+
+ Change-Id: Ie62ff1f4b7adc1a12fa0303f53926af249b25e20
+
+2015-08-21 18:01 +0000 [f36a9d1221] Richard Mudgett <rmudgett@digium.com>
+
+ * res_pjsip_pubsub.c: Set dlg_status code instead of sending SIP response.
+
+ We should not try to send a SIP response message because we may be
+ restoring a persistent subscription where we are not responding to a SIP
+ request.
+
+ Change-Id: Id89167ef90320c5563f37e632db0dda6cb9e7dec
+
+2015-08-21 17:40 +0000 [94582f8fab] Richard Mudgett <rmudgett@digium.com>
+
+ * res_pjsip_pubsub.c: Fix off-nominal memory leak.
+
+ Fix off-nominal visited vector leak in build_resource_tree().
+
+ Change-Id: If0399c7941c9c0b1038bcfb7b9a371760977831c
+
+2015-08-21 15:26 +0000 [8b3ed52239] Richard Mudgett <rmudgett@digium.com>
+
+ * res_pjsip_pubsub.c: Fix one byte buffer overrun error.
+
+ ast_sip_pubsub_register_body_generator() did not account for the null
+ terminator set by sprintf() in the allocated output buffer.
+
+ Change-Id: I388688a132e479bca6ad1c19275eae0070969ae2
+
+2015-08-21 15:25 +0000 [4329bd1e4c] Richard Mudgett <rmudgett@digium.com>
+
+ * res_pjsip_pubsub.c: Use ast_alloca() instead of alloca().
+
+ Change-Id: Ia396096b4fedc2874649ca11137612c3f55e83e3
+
+2015-08-21 11:04 +0000 [a456a20ecf] Richard Mudgett <rmudgett@digium.com>
+
+ * res_pjsip_pubsub.c: Add missing error return in load_module().
+
+ Change-Id: I15debd0f717f16ee2f78e7f56151c3b3b97b72fc
+
+2015-08-21 11:03 +0000 [f58f4c6e27] Richard Mudgett <rmudgett@digium.com>
+
+ * res_pjsip/location.c: Use the builtin ao2_callback() match function instead.
+
+ Change-Id: I364906d6d2bad3472929986704a0286b9a2cbe3f
+
+2015-09-10 09:49 +0000 [9d1f176e29] Mark Michelson <mmichelson@digium.com>
+
+ * res_pjsip: Copy default_from_user to avoid crash.
+
+ The default_from_user retrieval function was pulling the
+ default_from_user from the global configuration struct in an unsafe way.
+ If using a database as a backend configuration store, the global
+ configuration struct is short-lived, so grabbing a pointer from it
+ results in referencing freed memory.
+
+ The fix here is to copy the default_from_user value out of the global
+ configuration struct.
+
+ Thanks go to John Hardin for discovering this problem and proposing the
+ patch on which this fix is based.
+
+ ASTERISK-25390 #close
+ Reported by Mark Michelson
+
+ Change-Id: I6b96067a495c1259da768f4012d44e03e7c6148c
+
+2015-09-10 08:39 +0000 [1dd0e220bf] Matt Jordan <mjordan@digium.com>
+
+ * res/res_pjsip_nat: Ignore REGISTER requests when looking for a Record-Route
+
+ We will only rewrite the Contact header if there is no Record-Route header in
+ the received request. If a malfunctioning proxy places a Record-Route header
+ into a REGISTER request, we will decide that we shouldn't update the IP/port
+ in the Contact header, and we will end up storing a contact with an AoR that
+ contains the NAT'd IP address.
+
+ While it is nice to have the proxy *not* send a Record-Route in a REGISTER
+ request, it's also a good idea to not process the header in a non-dialog
+ message. This patch updates the code to explicitly ignore the Record-Route
+ header in REGISTER requests.
+
+ ASTERISK-25387 #close
+
+ Change-Id: I4bd3bcccc4003d460cc354d986b0dea2e433ef3f
+
+2015-09-03 21:15 +0000 [4eedd9ef9d] Matt Jordan <mjordan@digium.com>
+
+ * main/config_options: Check for existance of internal object before derefing
+
+ Asterisk can load and register an object type while still having an invalid
+ sorcery mapping. This can cause an issue when a creation call is invoked.
+ For example, mis-configuring PJSIP's endpoint identifier by IP address mapping
+ in sorcery.conf will cause the sorcery mechanism to be invalidated; however, a
+ subsequent ARI invocation to create the object will cause a crash, as the
+ internal type may not be registered as sorcery expects.
+
+ Merely checking for a NULL pointer here solves the issue.
+
+ Change-Id: I54079fb94a1440992f4735a9a1bbf1abb1c601ac
+2015-09-09 16:46 +0000 [71408df2b8] Alexander Anikin <may213@yandex.ru>
+
+ * chan_ooh323: Add ProgressIndicator IE with inband info available
+
+ Add ProgressIndicator IE with inband info present to Progress and
+ Alerting Q.931 message
+
+ ASTERISK-25227 #close
+ Reported by: Alexandr Dranchuk
+
+ Change-Id: I326ad13cb1db9a72b3fd902bafed3c28a3684203
+2015-09-08 10:35 +0000 [f72f9ceefc] Scott Griepentrog <scott@griepentrog.com>
+
+ * pjsip: avoid possible crash req_caps allocation failure
+
+ Make certain that the pjsip session has not failed to
+ allocate the format capabilities structure, which can
+ otherwise cause a crash when referenced.
+
+ ASTERISK-25323
+
+ Change-Id: I602790ba12714741165e441cc64a3ecde4cb5750
+
+2015-09-03 14:07 +0000 [fbf720db91] Jonathan Rose <jrose@digium.com>
+
+ * ParkAndAnnounce: Add variable inheritance
+
+ In Asterisk 11, the announcer channel would receive channel variables
+ from the channel being parked by means of normal channel inheritance.
+ This functionality was lost during the big res_parking project in
+ Asterisk 12. This patch restores that functionality.
+
+ ASTERISK-25369 #close
+ Review: https://gerrit.asterisk.org/#/c/1180/
+
+ Change-Id: Ie47e618330114ad2ea91e2edcef1cb6f341eed6e
+
+2015-09-04 16:33 +0000 [695f26cbb7] David M. Lee <dlee@respoke.io>
+
+ * res_rtp_asterisk: Add more ICE debugging
+
+ In working through a recent ICE negotiation bug, I found the debug
+ logging in res_rtp_asterisk to be lacking. This patch adds a number of
+ debug and warning statements that were helpful.
+
+ Change-Id: I950c6d8f13a41f14b3d6334b4cafe7d4e997be80
+2015-09-01 10:16 +0000 [4ed9c9a280] Guido Falsi <madpilot@freebsd.org>
+
+ * Core/General: Add #ifdef needed on FreeBSD.
+
+ pthread_attr_init() defaults to PTHREAD_EXPLICIT_SCHED on FreeBSD
+ too.
+
+ ASTERISK-25310 #close
+ Reported by: Guido Falsi
+
+ Change-Id: Iae6befac9028b5b9795f86986a4a08a1ae6ab7c4
+
+2015-09-08 07:21 +0000 [5469caa9dd] Joshua Colp <jcolp@digium.com>
+
+ * res_pjsip: Use hash for contact object identity instead of Contact URI.
+
+ In the wild it is possible for Contact URIs to be quite long as
+ parameters can exist on them. This can present a problem when storing
+ them in the AstDB as the URI is used as part of the object name and
+ there is a fixed length limit for the AstDB. This will cause
+ the contact to not get stored.
+
+ This change uses the MD5 hash of the Contact URI as part of the
+ object name instead. This has a fixed length which is guaranteed
+ to not exceed the AstDB length limit.
+
+ ASTERISK-25295 #close
+
+ Change-Id: Ie8252a75331ca00b41b9f308f42cc1fbdf701a02
+
+2015-09-07 13:19 +0000 [480c443e26] Alexander Anikin <may213@yandex.ru>
+
+ * chan_ooh323: call ast_rtp_instance_stop on ooh323_destroy
+
+ Call ast_rtp_instance_stop on ooh323_destroy to free resources
+ allocated by rtp instance
+
+ ASTERISK-25299 #close
+ Report by: Alexandr Dranchuk
+
+ Change-Id: I455096bd7da016b871afe90af86067c2c7c9f33f
+
+2015-09-07 11:15 +0000 [c3e6debdb9] Matt Jordan <mjordan@digium.com>
+
+ * res/res_pjsip: Purge contacts when an AoR is deleted
+
+ When an AoR is deleted by an external mechanism, such as through ARI, we
+ currently do not remove dynamic contacts that were created for that AoR as a
+ result of a received REGISTER request. As a result, re-creating the AoR will
+ cause the dynamic contact to be interpreted as a persistent contact, leading
+ to some rather strange state being created for the contacts/endpoints.
+
+ This patch adds a sorcery observer for the 'aor' object. When a delete is
+ issued on the underlying sorcery object, the observer is called, and all
+ contacts created and persisted in sorcery for that AoR are also removed. Note
+ that we don't want to perform this action when an AO2 object that is an AoR is
+ destroyed, as the AoR can still exist in the backing storage (and we would
+ thus be removing valid contacts from an AoR that still "exists".)
+
+ ASTERISK-25381 #close
+
+ Change-Id: I6697e51ef6b2858b5d63401f35dc378bb0f90328
+
+2015-09-05 14:58 +0000 [78d0b9d97e] Matt Jordan <mjordan@digium.com>
+
+ * channels/pjsip/dialplan_functions: Add an option for extracting the SIP call-id
+
+ This patch adds a new option to the CHANNEL function that allows for the
+ extraction of the SIP call-id. It is used in conjunction with the 'pjsip'
+ option, and will return the Call-ID of the INVITE request that established
+ the PJSIP channel.
+
+ ASTERISK-25352
+
+ Change-Id: I278d1f8bcfe3a53c5aa1dadebc14e92b0abd476a
+
+2015-09-04 16:06 +0000 [61c6c6aa6c] David M. Lee <dlee@respoke.io>
+
+ * Fix when remote candidates exceed PJ_ICE_MAX_CAND
+
+ We were passing the wrong count into pj_ice_sess_create_check_list(),
+ causing the create to fail if we ever received more than PJ_ICE_MAX_CAND
+ candidates.
+
+ Change-Id: I0303d8e1ecb20a8de9fe629a3209d216c4028378
+
+2015-09-04 14:40 +0000 [ac62928d6b] Mark Michelson <mmichelson@digium.com>
+
+ * res_pjsip: Change default from user value.
+
+ When Asterisk sends an outbound SIP request, if there is no direct
+ reason to place a specific value for the username in the From header,
+ Asterisk would generate a UUID. For example, this would happen when
+ sending outbound OPTIONS requests when qualifying or when sending
+ outbound INVITE requests when originating (if no explicit caller ID were
+ provided). The issue is that some SIP providers reject these sorts of
+ requests with a "Name too long" error response.
+
+ This patch aims to fix this by changing the default outbound username in
+ From headers to "asterisk". This value can be overridden by changing the
+ default_from_user option in the global options if desired.
+
+ ASTERISK-25377 #close
+ Reported by Mark Michelson
+
+ Change-Id: I6a4d34a56ff73ff4f661b0075aeba5461b7f3190
+
+2015-09-04 09:26 +0000 [6002472a62] Scott Griepentrog <scott@griepentrog.com>
+
+ * endpoint snapshot: avoid second cleanup on alloc failure
+
+ In ast_endpoint_snapshot_create(), a failure to init the
+ string fields results in two attempts to ao2_cleanup the
+ same pointer. Removed RAII_VAR to eliminate problem.
+
+ ASTERISK-25375 #close
+ Reported by: Scott Griepentrog
+
+ Change-Id: If4d9dfb1bbe3836b623642ec690b6d49b25e8979
+
+2015-09-04 05:33 +0000 [d32e516c7c] Martin Tomec <tomec.martin@gmail.com>
+
+ * res/pjsip: Mark WSS transport as secure
+
+ Pjsip is refusing to use unsecure transport with "sips" in url.
+ WSS should be considered as secure transport.
+
+ ASTERISK-24602 #comment Partially fixed by setting WSS as secure
+
+ Change-Id: Iddac406c6deba6240c41a603b8859dfefe1a5353
+
+2015-09-02 17:26 +0000 [ad9cb6c2ce] Mark Michelson <mmichelson@digium.com>
+
+ * res_pjsip: Fix contact refleak on stateful responses.
+
+ When sending a stateful response, creation of the transaction can fail,
+ most commonly because we are trying to create a transaction from a
+ retransmitted request. When creation of the transaction fails, we end up
+ leaking a reference to a contact that was bumped when the response was
+ created.
+
+ This patch adds the missing deref and fixes the reference leak.
+
+ Change-Id: I2f97ad512aeb1b17e87ca29ae0abacb4d6395f07
+
+2015-09-02 12:41 +0000 [cc1363209e] Joshua Colp <jcolp@digium.com>
+
+ * pbx: Fix crash when issuing "core show hints" with long pattern match.
+
+ When issuing the "core show hints" CLI command a combination of both
+ the hint extension and context is created. This uses a fixed size
+ buffer expecting that the extension will not exceed maximum extension
+ length. When the extension is actually a pattern match this constraint
+ does not hold true, and the extension may exceed the maximum extension
+ length. In this case extra characters are written past the end of the
+ fixed size buffer.
+
+ This change makes it so the construction of the combined hint extension
+ and context can not exceed the size of the buffer.
+
+ ASTERISK-25367 #close
+
+ Change-Id: Idfa1b95d0d4dc38e675be7c1de8900b3f981f499
+
+2015-09-01 09:05 +0000 [d58c8d73af] Mark Michelson <mmichelson@digium.com>
+
+ * res_pjsip_pubsub: re-re-fix persistent subscription storage.
+
+ A recent change to res_pjsip_pubsub switched to using pjsip_msg_print as
+ a means of writing an appropriate packet to persistent storage. While
+ this partially solved the issue, it had its own problems.
+ pjsip_msg_print will always add a Content-Length header to the message
+ it prints. Frequent restarts of Asterisk can result in persistent
+ subscriptions being written with five or more Content-Length headers. In
+ addition, sometimes some apparent corruption of individual headers could
+ be seen.
+
+ This aims to fix the problem by not running a parsed message through an
+ interpreter but rather by taking the raw message and saving it. The
+ logic for what to save is going to be different depending on whether a
+ SUBSCRIBE was received from the wire or if it was pulled from
+ persistence. When receiving a packet from the wire, when using a
+ streaming transport, the rdata->pkt_info.packet may contain multiple SIP
+ messages or fragments. However, the rdata->msg_info.msg_buf will always
+ contain the current SIP message to be processed. When pulling from
+ persistence, though, the rdata->msg_info.msg_buf will be NULL since no
+ transport actually handled the packet. However, since we know that we
+ will always ever pull one SIP message from persistence, we are free to
+ save directly from rdata->pkt_info.packet instead.
+
+ ASTERISK-25365 #close
+ Reported by Mark Michelson
+
+ Change-Id: I33153b10d0b4dc8e3801aaaee2f48173b867855b
+
+2015-08-31 15:24 +0000 [03fe79f29e] Mark Michelson <mmichelson@digium.com>
+
+ * Fix deadlock on presence state changes.
+
+ A deadlock was observed where three threads were competing for different
+ locks:
+
+ * One thread held the hints lock and was attempting to lock a specific
+ hint.
+ * One thread was holding the specific hint's lock and was attempting to
+ lock the contexts lock
+ * One thread was holding the contexts lock and attempting to lock the
+ hints lock.
+
+ Clearly the second thread was doing the wrong thing here. The fix for
+ this is to make sure that the hint's lock is not held on presence state
+ changes. Something similar is already done (and commented about) for
+ device state changes.
+
+ ASTERISK-25362 #close
+ Reported by Mark Michelson
+
+ Change-Id: I15ec2416b92978a4c0c08273b2d46cb21aff97e2
+
+2015-08-29 10:36 +0000 [a676ba2aad] Joshua Colp <jcolp@digium.com>
+
+ * taskprocessor: Fix race condition between unreferencing and finding.
+
+ When unreferencing a taskprocessor its reference count is checked
+ to determine if it should be unlinked from the taskprocessors
+ container and its listener shut down. In between the time when the
+ reference count is checked and unlinking it is possible for
+ another thread to jump in, find it, and get a reference to it. If
+ the thread then uses the taskprocessor it may find that it is not
+ in the state it expects.
+
+ This change locks the taskprocessors container during almost the
+ entire unreference operation to ensure that any other thread which
+ may attempt to find the taskprocessor has to wait.
+
+ ASTERISK-25295
+
+ Change-Id: Icb842db82fe1cf238da55df92e95938a4419377c
+
+2015-08-28 20:22 +0000 [1b1561f4c8] Joshua Colp <jcolp@digium.com>
+
+ * res_pjsip_sdp_rtp: Fix multiple keepalive scheduled items.
+
+ The keepalive support in res_pjsip_sdp_rtp currently assumes
+ that a stream will only be negotiated once. This is false.
+ If the stream is replaced and later added back it can be
+ negotiated again causing multiple keepalive scheduled items
+ to exist. This change explicitly deletes the existing
+ keepalive scheduled item before adding the new one.
+
+ The res_pjsip_sdp_rtp module also does not stop RTP
+ keepalives or timeout timer if the stream has been
+ replaced. This change adds a callback to the session media
+ interface to allow a media stream to be stopped without
+ the resources being destroyed. This allows the scheduled
+ items and RTP to be stopped when the stream no longer
+ exists.
+
+ ASTERISK-25356 #close
+
+ Change-Id: Ibe6a7cc0927c87326fd5f1c0d4ad889dbfbea1de
+
+2015-08-28 19:57 +0000 [85e1cb51b2] Joshua Colp <jcolp@digium.com>
+
+ * sched: ast_sched_del may return prematurely due to spurious wakeup
+
+ When deleting a scheduled item if the item in question is currently
+ executing the ast_sched_del function waits until it has completed.
+ This is accomplished using ast_cond_wait. Unfortunately the
+ ast_cond_wait function can suffer from spurious wakeups so the
+ predicate needs to be checked after it returns to make sure it has
+ really woken up as a result of being signaled.
+
+ This change adds a loop around the ast_cond_wait to make sure that
+ it only exits when the executing task has really completed.
+
+ ASTERISK-25355 #close
+
+ Change-Id: I51198270eb0b637c956c61aa409f46283432be61
+
+2015-08-27 12:26 +0000 [c2c7319082] Joshua Colp <jcolp@digium.com>
+
+ * res_pjsip_session: Don't invoke session supplements twice for BYE requests.
+
+ When a BYE request is received the PJSIP invite session implementation
+ creates and sends a 200 OK response before we are aware of it. This
+ causes the INVITE session state callback to be called into and ultimately
+ the session supplements run on the BYE request. Once this response has
+ been sent the normal transaction state callback is invoked which
+ invokes the session supplements on the BYE request again. This can
+ be problematic in particular with res_pjsip_rfc3326 as it may
+ attempt to update the hangup cause code on the channel while it is
+ in the process of being hung up.
+
+ This change makes it so the session supplements are only invoked
+ once by the INVITE session state callback.
+
+ ASTERISK-25318 #close
+
+ Change-Id: I69c17df55ccbb61ef779ac38cc8c6b411376c19a
+
+2015-08-26 15:26 +0000 [6862c2a167] Scott Griepentrog <scott@griepentrog.com>
+
+ * Chaos: handle failed allocation in get_media_encryption_type
+
+ If the ast_strndup() call fails to allocate a copy of the
+ transport string for parsing, fail gracefully.
+
+ ASTERISK-25323
+ Reported by: Scott Griepentrog
+
+ Change-Id: Ia4b905ce6d03da53fea526224455c1044b1a5a28
+
+2015-08-26 14:25 +0000 [f1cd636658] Scott Griepentrog <scott@griepentrog.com>
+
+ * Chaos: make hangup NULL tolerant
+
+ In chan_pjsip_new, if allocation of the pvt
+ structure fails, ast_hangup is called. But
+ it was written to assume pvt was valid, and
+ this change corrects that.
+
+ ASTERISK-25323
+ Reported by: Scott Griepentrog
+
+ Change-Id: I5f47860fe9cee4cd56abd3f79b108678ab72cc87
+
+2015-08-26 05:40 +0000 [c01111223f] Joshua Colp <jcolp@digium.com>
+
+ * chan_sip: Allow call pickup to set the hangup cause.
+
+ The call pickup implementation in chan_sip currently sets the channel
+ hangup cause to "normal clearing" if call pickup is successfully
+ performed. This action overwrites the "answered elsewhere" hangup cause
+ set by the call pickup code and can result in the SIP device in
+ question showing a missed call when it should not.
+
+ This change sets the hangup cause to "normal clearing" as a
+ default initially but allows the call pickup to change it as
+ needed.
+
+ ASTERISK-25346 #close
+
+ Change-Id: I00ac2c269cee9e29586ee2c65e83c70e52a02cff
+
+2015-08-25 07:17 +0000 [2a4eee0cd9] Joshua Colp <jcolp@digium.com>
+
+ * res_pjsip: Add common ast_sip_get_host_ip API.
+
+ Modules commonly used the pj_gethostip function for retrieving the
+ IP address of the host. This function does not cache the result and may
+ result in a DNS lookup occurring, or additional work. If the DNS
+ server is unreachable or network issues arise this can cause the
+ pj_gethostip function to block for a period of time.
+
+ This change adds an ast_sip_get_host_ip and ast_sip_get_host_ip_string
+ function which does the same thing but caches the host IP address at
+ module load time. This results in no additional work being done each
+ time the local host IP address is needed.
+
+ ASTERISK-25342 #close
+
+ Change-Id: I3205deb679b01fa5ac05a94b623bfd620a2abe1e
+
+2015-08-24 11:04 +0000 [7c4d0c3506] Joshua Colp <jcolp@digium.com>
+
+ * res_pjsip_pubsub: On recreated notify fail deleted sub_tree is referenced
+
+ When recreating a subscription it is possible for a freed sub_tree
+ to be referenced when the initial NOTIFY fails to be created.
+
+ Change-Id: I681c215309aad01b21d611c2de47b3b0a6022788
+
+2015-08-24 06:21 +0000 [6c2dab1e88] Joshua Colp <jcolp@digium.com>
+
+ * bridge: Kick channel from bridge if hung up during action.
+
+ When executing an action in a bridge it is possible for the
+ channel to be hung up without the bridge becoming aware of it.
+ This is most easily reproducible by hanging up when the bridge
+ is streaming DTMF due to a feature timeout. This change makes
+ it so after action execution the channel is checked to determine
+ if it has been hung up and if it has it is kicked from the bridge.
+
+ ASTERISK-25341 #close
+
+ Change-Id: I6dd8b0c3f5888da1c57afed9e8a802ae0a053062
+
+2015-08-23 18:26 +0000 [bc6fe07f5c] Matt Jordan <mjordan@digium.com>
+
+ * res_pjsip/pjsip_configuration: Disregard empty auth values
+
+ When an endpoint is backed by a non-static conf file backend (such as
+ the AstDB or Realtime), the 'auth' object may be returned as being an
+ empty string. Currently, res_pjsip will interpret that as being a valid
+ auth object, and will attempt to authenticate inbound requests. This
+ isn't desired; is an auth value is empty (which the name of an auth
+ object cannot be), we should instead interpret that as being an invalid
+ auth object and skip it.
+
+ ASTERISK-25339 #close
+
+ Change-Id: Ic32b0c6eb5575107d5164a8c40099e687cd722c7
+
+2015-08-19 12:10 +0000 [0582776f7f] Richard Mudgett <rmudgett@digium.com>
+
+ * ari/ari_websockets.c: Fix ast_debug parameter type mismatch.
+
+ This is a type mismatch fix of the debugging commit
+ c63316eec10e1990a88bf4712238d6deb375bfa9 made to find out why
+ a testsuite test was failing only on one of the continuous
+ integration build agents.
+
+ Change-Id: Iba34f6e87cec331f6ac80e4daff6476ea6f00a75
+
+2015-08-19 10:30 +0000 [504213f542] Scott Griepentrog <scott@griepentrog.com>
+
+ * contrib: script install_prereq should install sqlite3
+
+ Asterisk needs the sqlite 3 library, which is package
+ sqlite-devel in CentOS. By adding this package to the
+ script, a problem with configure failing is resolved.
+
+ ASTERISK-25331 #close
+ Reported by: Kevin Harwell
+
+ Change-Id: I90efaf6a01914fea03f21e5cdbd91c348f44b0ec
+
+2015-08-18 16:06 +0000 [77518d5434] Richard Mudgett <rmudgett@digium.com>
+
+ * res_http_websocket.c: Fix some off nominal path cleanup.
+
+ * Remove extraneous unlock on off-nominal path.
+ * Add missing HTTP error reply.
+
+ Change-Id: I1f402bfe448fba8696b507477cab5f060ccd9b2b
+
+2015-08-18 14:46 +0000 [c61547fee6] Richard Mudgett <rmudgett@digium.com>
+
+ * res_ari.c: Add missing off nominal unlock and remove a RAII_VAR().
+
+ Change-Id: I0c5e7b34057f26dadb39489c4dac3015c52f5dbf
+
+2015-08-17 16:41 +0000 [bd867cd078] Richard Mudgett <rmudgett@digium.com>
+
+ * app_queue.c: Extract some functions for simpler code.
+
+ * Extract set_queue_member_pause() from set_member_paused() for simpler
+ and more consistent code.
+
+ * Extract set_queue_member_ringinuse() from
+ set_member_ringinuse_help_members() for simpler code.
+
+ Change-Id: Iecc1f4119c63347341d7ea6b65f5fc4963706306
+
+2015-08-14 12:55 +0000 [e5f5b9f384] Richard Mudgett <rmudgett@digium.com>
+
+ * app_queue.c: Fix setting QUEUE_MEMBER 'paused' and 'ringinuse'.
+
+ Setting the 'paused' and 'ringinuse' options on a queue member using the
+ dialplan function QUEUE_MEMBER did not behave the same way as the
+ equivalent dialplan applications or AMI actions.
+
+ * Made queue_function_mem_write() call the set_member_paused() and
+ set_member_value() for the 'paused' and 'ringinuse' options respectively.
+ A beneficial side effect is that the queue name is now optional and sets
+ the value in all queues the interface is a member.
+
+ * Update QUEUE_MEMBER XML documentation.
+
+ * Fix error checking in QUEUE_MEMBER() write.
+
+ ASTERISK-25215 #close
+ Reported by: Lorne Gaetz
+
+ Change-Id: I3a016be8dc94d63a9cc155295ff9c9afa5f707cb
+
+2015-08-17 13:34 +0000 [ded51e3d77] Richard Mudgett <rmudgett@digium.com>
+
+ * app_queue.c: Fix error checking in QUEUE_MEMBER() read.
+
+ Change-Id: I7294e13d27875851c2f4ef6818adba507509d224
+
+2015-08-17 11:00 +0000 [ab373f2cef] Scott Griepentrog <scott@griepentrog.com>
+
+ * CHAOS: prevent sorcery object with null id
+
+ When allocating a sorcery object, fail if the
+ id value was not allocated.
+
+ ASTERISK-25323
+ Reported by: Scott Griepentrog
+
+ Change-Id: I152133fb7545a4efcf7a0080ada77332d038669e
+
+2015-08-14 15:46 +0000 [b719f56c72] Mark Michelson <mmichelson@digium.com>
+
+ * res_pjsip_sdp_rtp: Restore removed NULL check.
+
+ When sending an RTP keepalive, we need to be sure we're not dealing with
+ a NULL RTP instance. There had been a NULL check, but the commit that
+ added the rtp_timeout and rtp_hold_timeout options removed the NULL
+ check.
+
+ Change-Id: I2d7dcd5022697cfc6bf3d9e19245419078e79b64
+
+2015-08-13 12:30 +0000 [cea5dc7b8a] Richard Mudgett <rmudgett@digium.com>
+
+ * audiohook.c: Simplify variable usage in audiohook_read_frame_both().
+
+ Change-Id: I58bed58631a94295b267991c5b61a3a93c167f0c
+
+2015-08-13 12:22 +0000 [b3a56bee83] Richard Mudgett <rmudgett@digium.com>
+
+ * audiohook.c: Fix MixMonitor crash when using the r() or t() options.
+
+ The built frame format in audiohook_read_frame_both() is now set to a
+ signed linear format before the rx and tx frames are duplicated instead of
+ only for the mixed audio frame duplication.
+
+ ASTERISK-25322 #close
+ Reported by Sean Pimental
+
+ Change-Id: I86f85b5c48c49e4e2d3b770797b9d484250a1538
+
+2015-08-12 12:59 +0000 [25af2d71c8] Kevin Harwell <kharwell@digium.com>
+
+ * chan_sip.c: wrong peer searched in sip_report_security_event
+
+ In chan_sip, after handling an incoming invite a security event is raised
+ describing authorization (success, failure, etc...). However, it was doing
+ a lookup of the peer by extension. This is fine for register messages, but
+ in the case of an invite it may search and find the wrong peer, or a non
+ existent one (for instance, in the case of call pickup). Also, if the peers
+ are configured through realtime this may cause an unnecessary database lookup
+ when caching is enabled.
+
+ This patch makes it so that sip_report_security_event searches by IP address
+ when looking for a peer instead of by extension after an invite is processed.
+
+ ASTERISK-25320 #close
+
+ Change-Id: I9b3f11549efb475b6561c64f0e6da1a481d98bc4
+2015-08-13 05:26 +0000 [e18c300550] Joshua Colp <jcolp@digium.com>
+
+ * res_http_websocket: When shutting down a session don't close closed socket
+
+ Due to the use of ast_websocket_close in session termination it is
+ possible for the underlying socket to already be closed when the
+ session is terminated. This occurs when the close frame is attempted
+ to be written out but fails.
+
+ Change-Id: I7572583529a42a7dc911ea77a974d8307d5c0c8b
+2015-08-11 05:24 +0000 [b4e9416138] Joshua Colp <jcolp@digium.com>
+
+ * res_http_websocket: Forcefully terminate on write errors.
+
+ The res_http_websocket module will currently attempt to close
+ the WebSocket connection if fatal cases occur, such as when
+ attempting to write out data and being unable to. When the
+ fatal cases occur the code attempts to write a WebSocket close
+ frame out to have the remote side close the connection. If
+ writing this fails then the connection is not terminated.
+
+ This change forcefully terminates the connection if the
+ WebSocket is to be closed but is unable to send the close frame.
+
+ ASTERISK-25312 #close
+
+ Change-Id: I10973086671cc192a76424060d9ec8e688602845
+
+2015-08-10 13:43 +0000 [256bc52b66] Richard Mudgett <rmudgett@digium.com>
+
+ * chan_dahdi.c: Flush the DAHDI write buffer after starting DTMF.
+
+ Pressing DTMF digits on a phone to go out on a DAHDI channel can result in
+ the digit not being recognized or even heard by the peer.
+
+ Phone -> Asterisk -> DAHDI/channel
+
+ Turns out the DAHDI behavior with DTMF generation (and any other generated
+ tones) is exposed by the "buffers=" setting in chan_dahdi.conf. When
+ Asterisk requests to start sending DTMF then DAHDI waits until its write
+ buffer is empty before generating any samples for the DTMF tones. When
+ Asterisk subsequently requests DAHDI to stop sending DTMF then DAHDI
+ immediately stops generating the DTMF samples. As a result, the more
+ samples there are in the DAHDI write buffer the shorter the time DTMF
+ actually gets sent on the wire. If there are more samples in the write
+ buffer than the time DTMF is supposed to be sent then no DTMF gets sent on
+ the wire. With the "buffers=12,half" setting and each buffer representing
+ 20 ms of samples then the DAHDI write buffer is going to contain around
+ 120 ms of samples. For DTMF to be recognized by the peer the actual sent
+ DTMF duration needs to be a minimum of 40 ms. Therefore, the intended
+ duration needs to be a minimum of 160 ms for the peer to receive the
+ minimum DTMF digit duration to recognize it.
+
+ A simple and effective solution to work around the DAHDI behavior is for
+ Asterisk to flush the DAHDI write buffer when sending DTMF so the full
+ duration of DTMF is actually sent on the wire. When someone is going to
+ send DTMF they are not likely to be talking before sending the tones so
+ the flushed write samples are expected to just contain silence.
+
+ * Made dahdi_digit_begin() flush the DAHDI write buffer after requesting
+ to send a DTMF digit.
+
+ ASTERISK-25315 #close
+ Reported by John Hardin
+
+ Change-Id: Ib56262c708cb7858082156bfc70ebd0a220efa6a
+
+2015-08-05 14:21 +0000 [800e0ea48d] Richard Mudgett <rmudgett@digium.com>
+
+ * chan_dahdi.c: Lock private struct for ast_write().
+
+ There is a window of opportunity for DTMF to not go out if an audio frame
+ is in the process of being written to DAHDI while another thread starts
+ sending DTMF. The thread sending the audio frame could be past the
+ currently dialing check before being preempted by another thread starting
+ a DTMF generation request. When the thread sending the audio frame
+ resumes it will then cause DAHDI to stop the DTMF tone generation. The
+ result is no DTMF goes out.
+
+ * Made dahdi_write() lock the private struct before writing to the DAHDI
+ file descriptor.
+
+ ASTERISK-25315
+ Reported by John Hardin
+
+ Change-Id: Ib4e0264cf63305ed5da701188447668e72ec9abb
+
+2015-08-10 18:23 +0000 [c126afe18f] Richard Mudgett <rmudgett@digium.com>
+
+ * res_pjsip.c: Fix crash from corrupt saved SUBSCRIBE message.
+
+ If the saved SUBSCRIBE message is not parseable for whatever reason then
+ Asterisk could crash when libpjsip tries to parse the message and adds an
+ error message to the parse error list.
+
+ * Made ast_sip_create_rdata() initialize the parse error rdata list. The
+ list is checked after parsing to see that it remains empty for the
+ function to return successful.
+
+ ASTERISK-25306
+ Reported by Mark Michelson
+
+ Change-Id: Ie0677f69f707503b1a37df18723bd59418085256
+
+2015-08-10 07:40 +0000 [f68c995bc9] Alexander Traud <pabstraud@compuserve.com>
+
+ * chan_sip: Fix negotiation of iLBC 30.
+
+ iLBC 20 was advertised in a SIP/SDP negotiation. However, only iLBC 30 is
+ supported. Removes "a=fmtp:x mode=y" from SDP. Because of RFC 3952 section 5,
+ only iLBC 30 is negotiated now.
+
+ ASTERISK-25309 #close
+
+ Change-Id: I92d724600a183eec3114da0ac607b994b1a793da
+
+2015-08-09 18:42 +0000 [8e194047ac] Matt Jordan <mjordan@digium.com>
+
+ * res/res_format_attr_silk: Expose format attributes to other modules
+
+ This patch adds the .get callback to the format attribute module, such
+ that the Asterisk core or other third party modules can query for the
+ negotiated format attributes.
+
+ Change-Id: Ia24f55cf9b661d651ce89b4f4b023d921380f19c
+
+2015-08-09 17:56 +0000 [a0f451c35e] Matt Jordan <mjordan@digium.com>
+
+ * main/format: Add an API call for retrieving format attributes
+
+ Some codecs that may be a third party library to Asterisk need to have
+ knowledge of the format attributes that were negotiated. Unfortunately,
+ when the great format migration of Asterisk 13 occurred, that ability
+ was lost.
+
+ This patch adds an API call, ast_format_attribute_get, to the core
+ format API, along with updates to the unit test to check the new API
+ call. A new callback is also now available for format attribute modules,
+ such that they can provide the format attribute values they manage.
+
+ Note that the API returns a void *. This is done as the format attribute
+ modules themselves may store format attributes in any particular manner
+ they like. Care should be taken by consumers of the API to check the
+ return value before casting and dereferencing. Consumers will obviously
+ need to have a priori knowledge of the type of the format attribute as
+ well.
+
+ Change-Id: Ieec76883dfb46ecd7aff3dc81a52c81f4dc1b9e3
+
+2015-08-07 22:11 +0000 [26f0559a94] David M. Lee <dlee@respoke.io>
+
+ * Replace htobe64 with htonll
+
+ We don't have a compatability function to fill in a missing htobe64; but
+ we already have one for the identical htonll.
+
+ Change-Id: Ic0a95db1c5b0041e14e6b127432fb533b97e4cac
+
+2015-08-07 14:20 +0000 [df9ce36366] Scott Emidy <jemidy@digium.com>
+
+ * ARI: Retrieve existing log channels
+
+ An http request can be sent to get the existing Asterisk logs.
+
+ The command "curl -v -u user:pass -X GET 'http://localhost:8088
+ /ari/asterisk/logging'" can be run in the terminal to access the
+ newly implemented functionality.
+
+ * Retrieve all existing log channels
+
+ ASTERISK-25252
+
+ Change-Id: I7bb08b93e3b938c991f3f56cc5d188654768a808
+
+2015-08-07 11:14 +0000 [e9f1bc08cb] Scott Emidy <jemidy@digium.com>
+
+ * ARI: Creating log channels
+
+ An http request can be sent to create a log channel
+ in Asterisk.
+
+ The command "curl -v -u user:pass -X POST
+ 'http://localhost:088/ari/asterisk/logging/mylog?
+ configuration=notice,warning'" can be run in the terminal
+ to access the newly implemented functionality for ARI.
+
+ * Ability to create log channels using ARI
+
+ ASTERISK-25252
+
+ Change-Id: I9a20e5c75716dfbb6b62fd3474faf55be20bd782
+
+2015-08-06 15:18 +0000 [78364132ce] Scott Emidy <jemidy@digium.com>
+
+ * ARI: Deleting log channels
+
+ An http request can be sent to delete a log channel
+ in Asterisk.
+
+ The command "curl -v -u user:pass -X DELETE 'http://localhost:8088
+ /ari/asterisk/logging/mylog'" can be run in the terminal
+ to access the newly implemented functionally for ARI.
+
+ * Able to delete log channels using ARI
+
+ ASTERISK-25252
+
+ Change-Id: Id6eeb54ebcc511595f0418d586ff55914bc3aae6
+
+2015-08-06 12:48 +0000 [e25569ef95] Mark Michelson <mmichelson@digium.com>
+
+ * res_pjsip_pubsub: More accurately persist packet.
+
+ The pjsip_rx_data structure has a pkt_info.packet field on it that is
+ the packet that was read from the transport. For datagram transports,
+ the packet read from the transport will correspond to the SIP message
+ that arrived. For streamed transports, however, it is possible to read
+ multiple SIP messages in one packet.
+
+ In a recent case, Asterisk crashed on a system where TCP was being used.
+ This is because at some point, a read from the TCP socket resulted in a
+ 200 OK response as well as an incoming SUBSCRIBE request being stored in
+ rdata->pkt_info.packet. When the SUBSCRIBE was processed, the
+ combination 200 OK and SUBSCRIBE was saved in persistent storage. Later,
+ a restart of Asterisk resulted in the crash because the persistent
+ subscription recreation code ended up building the 200 OK response
+ instead of a SUBSCRIBE request, and we attempted to access
+ request-specific data.
+
+ The fix here is to use the pjsip_msg_print() function in order to
+ persist SUBSCRIBE requests. This way, rather than using the raw socket
+ data, we use the parsed SIP message that PJSIP has given us. If we
+ receive multiple SIP messages from a single read, we will be sure only
+ to save off the relevant SIP message. There also is a safeguard put in
+ place to make sure that if we do end up reconstructing a SIP response,
+ it will not cause a crash.
+
+ ASTERISK-25306 #close
+ Reported by Mark Michelson
+
+ Change-Id: I4bf16f7b76a2541d10b55de82bcd14c6e542afb2
+
+2015-08-04 16:12 +0000 [8521a86367] Joshua Colp <jcolp@digium.com>
+
+ * res_pjsip: Ensure sanitized XML is NULL terminated.
+
+ The ast_sip_sanitize_xml function is used to sanitize
+ a string for placement into XML. This is done by examining
+ an input string and then appending values to an output
+ buffer. The function used by its implementation, strncat,
+ has specific behavior that was not taken into account.
+ If the size of the input string exceeded the available
+ output buffer size it was possible for the sanitization
+ function to write past the output buffer itself causing
+ a crash. The crash would either occur because it was
+ writing into memory it shouldn't be or because the resulting
+ string was not NULL terminated.
+
+ This change keeps count of how much remaining space is
+ available in the output buffer for text and only allows
+ strncat to use that amount.
+
+ Since this was exposed by the res_pjsip_pidf_digium_body_supplement
+ module attempting to send a large message the maximum allowed
+ message size has also been increased in it.
+
+ A unit test has also been added which confirms that the
+ ast_sip_sanitize_xml function is providing NULL terminated
+ output even when the input length exceeds the output
+ buffer size.
+
+ ASTERISK-25304 #close
+
+ Change-Id: I743dd9809d3e13d722df1b0509dfe34621398302
+
+2015-08-05 05:23 +0000 [9a12804e59] Joshua Colp <jcolp@digium.com>
+
+ * res_rtp_asterisk: Don't leak temporary key when enabling PFS.
+
+ A change recently went in which enabled perfect forward secrecy for
+ DTLS in res_rtp_asterisk. This was accomplished two different ways
+ depending on the availability of a feature in OpenSSL. The fallback
+ method created a temporary instance of a key but did not free it.
+ This change fixes that.
+
+ ASTERISK-25265
+
+ Change-Id: Iadc031b67a91410bbefb17ffb4218d615d051396
+2015-08-04 09:47 +0000 [27dc2094e9] Mark Michelson <mmichelson@digium.com>
+
+ * res_http_websocket: Debug write lengths.
+
+ Commit 39cc28f6ea2140ad6d561fd4c9e9a66f065cecee attempted to fix a
+ test failure observed on 32 bit test agents by ensuring that a cast from
+ a 32 bit unsigned integer to a 64 bit unsigned integer was happening in
+ a predictable place. As it turns out, this did not cause test runs to
+ succeed.
+
+ This commit adds several redundant debug messages that print the payload
+ lengths of websocket frames. The idea here is that this commit will not
+ cause tests to succeed for the faulty test agent, but we might deduce
+ where the fault lies more easily this way by observing at what point the
+ expected value (537) changes to some ungangly huge number.
+
+ If you are wondering why something like this is being committed to the
+ branch, keep in mind that in commit
+ 39cc28f6ea2140ad6d561fd4c9e9a66f065cecee I noted that the observed test
+ failures only happen when automated tests are run. Attempts to run the
+ tests by hand manually on the test agent result in the tests passing.
+
+ Change-Id: I14a65c19d8af40dadcdbd52348de3b0016e1ae8d
+
+2015-08-03 11:06 +0000 [39cc28f6ea] Mark Michelson <mmichelson@digium.com>
+
+ * res_http_websocket: Avoid passing strlen() to ast_websocket_write().
+
+ We have seen a rash of test failures on a 32-bit build agent. Commit
+ 48698a5e21d7307f61b5fb2bd39fd593bc1423ca solved an obvious problem where
+ we were not encoding a 64-bit value correctly over the wire. This
+ commit, however, did not solve the test failures.
+
+ In the failing tests, ARI is attempting to send a 537 byte text frame
+ over a websocket. When sending a frame this small, 16 bits are all that
+ is required in order to encode the payload length on the websocket
+ frame. However, ast_websocket_write() thinks that the payload length is
+ greater than 65535 and therefore writes out a 64 bit payload length.
+ Inspecting this payload length, the lower 32 bits are exactly what we
+ would expect it to be, 537 in hex. The upper 32 bits, are junk values
+ that are not expected to be there.
+
+ In the failure, we are passing the result of strlen() to a function that
+ expects a uint64_t parameter to be passed in. strlen() returns a size_t,
+ which on this 32-bit machine is 32 bits wide. Normally, passing a 32-bit
+ unsigned value to somewhere where a 64-bit unsigned value is expected
+ would cause no problems. In fact, in manual runs of failing tests, this
+ works just fine. However, ast_websocket_write() uses the Asterisk
+ optional API, which means that rather than a simple function call, there
+ are a series of macros that are used for its declaration and
+ implementation. These macros may be causing some sort of error to occur
+ when converting from a 32 bit quantity to a 64 bit quantity.
+
+ This commit changes the logic by making existing ast_websocket_write()
+ calls use ast_websocket_write_string() instead. Within
+ ast_websocket_write_string(), the 64-bit converted strlen is saved in a
+ local variable, and that variable is passed to ast_websocket_write()
+ instead.
+
+ Note that this commit message is full of speculation rather than
+ certainty. This is because the observed test failures, while always
+ present in automated test runs, never occur when tests are manually
+ attempted on the same test agent. The idea behind this commit is to fix
+ a theoretical issue by performing changes that should, at the least,
+ cause no harm. If it turns out that this change does not fix the failing
+ tests, then this commit should be reverted.
+
+ Change-Id: I4458dd87d785ca322b89c152b223a540a3d23e67
+
+2015-07-28 05:33 +0000 [aed068844c] Mark Duncan <mark@syon.co.jp>
+
+ * res/res_rtp_asterisk: Add ECDH support
+
+ This will add ECDH support to Asterisk. It will
+ detect auto ECDH support in OpenSSL
+ (1.0.2b and above) during ./configure. If this is
+ available, it will use it,
+ otherwise it will fall back to prime256v1 (this
+ behavior is consistent with
+ other projects such as Apache and nginx).
+
+ This fixes WebRTC being broken in Firefox 38+ due
+ to Firefox now only supporting
+ ciphers with perfect forward secrecy.
+
+ ASTERISK-25265 #close
+
+ Change-Id: I8c13b33a2a79c0bde2e69e4ba6afa5ab9351465b
+
+2015-07-29 14:17 +0000 [1ae762634c] Benjamin Ford <bford@digium.com>
+
+ * ARI: Rotate log channels.
+
+ An http request can be sent to rotate a specified log channel.
+ If the channel does not exist, an error response will be
+ returned.
+
+ The command "curl -v -u user:pass -X PUT 'http://localhost:8088
+ /ari/asterisk/logging/logChannelName/rotate'" can be run in the
+ terminal to access this new functionality.
+
+ * Added the ability to rotate log files through ARI
+
+ ASTERISK-25252
+
+ Change-Id: Iaefa21cbbc1b29effb33004ee3d89c977e76ab01
+
+2015-07-29 13:49 +0000 [aeeb170fc4] Richard Mudgett <rmudgett@digium.com>
+
+ * rtp_engine.c: Fix performance issue with several channel drivers that use RTP.
+
+ ast_rtp_codecs_get_payload() gets called once or twice for every received
+ RTP frame so it would be nice to not allocate an ao2 object to then have
+ it destroyed shortly thereafter. The ao2 object gets allocated only if
+ the payload type is not set by the channel driver as a negotiated value.
+ The issue affects chan_skinny, chan_unistim, chan_rtp, and chan_ooh323.
+
+ * Made static_RTP_PT[] an array of ao2 objects that
+ ast_rtp_codecs_get_payload() can return instead of an array of structs
+ that must be copied into a created ao2 object.
+
+ ASTERISK-25296 #close
+ Reported by: Richard Mudgett
+
+ Change-Id: Icb6de5cd90bfae07d44403a1352963db9109dac0
+
+2015-07-29 17:00 +0000 [84262749d2] Richard Mudgett <rmudgett@digium.com>
+
+ * res_rtp_asterisk.c: Fix off-nominal crash potential.
+
+ ASTERISK-25296
+ Reported by: Richard Mudgett
+
+ Change-Id: I08549fb7c3ab40a559f41a3940f3732a4059b55b
+
+2015-07-29 13:48 +0000 [1519eb44a7] Richard Mudgett <rmudgett@digium.com>
+
+ * rtp_engine.c: Must protect mime_types_len with mime_types_lock.
+
+ Change-Id: I44220dd369cc151ebf5281d5119d84bb9e54d54e
+
+2015-07-24 18:42 +0000 [a93b7a927c] Richard Mudgett <rmudgett@digium.com>
+
+ * res_pjsip_sdp_rtp.c: Fix processing wrong SDP media list.
+
+ Change-Id: I7c076826c2d3c6ae8c923ca73b7a71980cca11f2
+
+2015-07-24 18:38 +0000 [741fa0d26d] Richard Mudgett <rmudgett@digium.com>
+
+ * res_pjsip_sdp_rtp.c: Fixup some whitespace.
+
+ Change-Id: Ib4eb7ef7dcaf93ddc26538f0a498aaf110d7a973
+
+2015-07-27 19:10 +0000 [89b21fd9a3] Richard Mudgett <rmudgett@digium.com>
+
+ * rtp_engine.h: No sense allowing payload types larger than RFC allows.
+
+ * Tweaked add_static_payload() to not use magic numbers.
+
+ Change-Id: I1719ff0f6d3ce537a91572501eae5bcd912a420b
+
+2015-07-23 14:04 +0000 [7427c7f13b] Richard Mudgett <rmudgett@digium.com>
+
+ * rtp_engine.c: Minor tweaks.
+
+ * Fix off nominial ref leak of new_type in
+ ast_rtp_codecs_payloads_set_m_type().
+
+ * No need to lock static_RTP_PT_lock in
+ ast_rtp_codecs_payloads_set_m_type() and
+ ast_rtp_codecs_payloads_set_rtpmap_type_rate() before the payload type
+ parameter sanity check.
+
+ * No need to create ast_rtp_payload_type ao2 objects with a lock since the
+ lock is not used.
+
+ Change-Id: I64dd1bb4dfabdc7e981e3f61448beac9bb7504d4
+
+2015-07-23 12:41 +0000 [e20f435b60] Richard Mudgett <rmudgett@digium.com>
+
+ * rtp_engine.h: Misc comment fixes.
+
+ Change-Id: If98139264d5d97427b4685ecbdc54518f725bc43
+
+2015-07-17 16:23 +0000 [bc5d7f9c37] Richard Mudgett <rmudgett@digium.com>
+
+ * chan_sip.c: Tweak glue->update_peer() parameter nil value.
+
+ Change glue->update_peer() parameter from 0 to NULL to better indicate it
+ is a pointer.
+
+ Change-Id: I8ff2e5087f0e19f6998e3488a712a2470cc823bd
+
+2015-07-30 17:05 +0000 [13eb491e35] Richard Mudgett <rmudgett@digium.com>
+
+ * res_pjsip_session.c: Fix crashes seen when call cancelled.
+
+ Two testsuite tests crashed in the same place as a result of an INVITE
+ being CANCELed.
+
+ tests/channels/pjsip/resolver/srv/failover/in_dialog/transport_unspecified
+ tests/channels/pjsip/resolver/srv/failover/in_dialog/transport_tcp
+
+ The session pointer is no longer in the inv->mod_data[session_module.id]
+ location because the INVITE transaction has reached the terminated state.
+
+ ASTERISK-25297 #close
+ Reported by: Richard Mudgett
+
+ Change-Id: Idb75fdca0321f5447d5dac737a632a5f03614427
+
+2015-07-29 14:35 +0000 [48698a5e21] Mark Michelson <mmichelson@digium.com>
+
+ * res_http_websocket: Properly encode 64 bit payload
+
+ A test agent was continuously failing all ARI tests when run against
+ Asterisk 13. As it turns out, the reason for this is that on those test
+ runs, for some reason we decided to use the super extended 64 bit
+ payload length for websocket text frames instead of the extended 16 bit
+ payload length. For 64-bit payloads, the expected byte order over the
+ network is
+
+ 7, 6, 5, 4, 3, 2, 1, 0
+
+ However, we were sending the payload as
+
+ 3, 2, 1, 0, 7, 6, 5, 4
+
+ This meant that we were saying to expect an absolutely MASSIVE payload
+ to arrive. Since we did not follow through on this expected payload
+ size, the client would sit patiently waiting for the rest of the payload
+ to arrive until the test would time out.
+
+ With this change, we use the htobe64() function instead of htonl() so
+ that a 64-bit byte-swap is performed instead of a 32 bit byte-swap.
+
+ Change-Id: Ibcd8552392845fbcdd017a8c8c1043b7fe35964a
+
+2015-07-29 12:23 +0000 [10ba72a927] Mark Michelson <mmichelson@digium.com>
+
+ * Add a test event for inband ringing.
+
+ This event is necessary for the bridge_wait_e_options test to be able to
+ confirm that ringing is being played on the local channel that runs the
+ BridgeWait() application with the e(r) option.
+
+ ASTERISK-25292 #close
+ Reported by Kevin Harwell
+
+ Change-Id: Ifd3d3d2bebc73344d4b5310d0d55c7675359d72e
+
+2015-07-16 12:16 +0000 [8458b8d441] Jonathan Rose <jrose@digium.com>
+
+ * holding_bridge: ensure moh participants get frames
+
+ Currently, if a blank musiconhold.conf is used, musiconhold will fail
+ to start for a channel going into a holding bridge with an anticipation
+ of getting music on hold. That being the case, no frames will be written
+ to the channel and that can pose a problem for blind transfers in PJSIP
+ which may rely on frames being written to get past the REFER framehook.
+ This patch makes holding bridges start a silence generator if starting
+ music on hold fails and makes it so that if no music on hold functions
+ are installed that the ast_moh_start function will report a failure so
+ that consumers of that function will be able to respond appropriately.
+
+ ASTERISK-25271 #close
+
+ Change-Id: I06f066728604943cba0bb0b39fa7cf658a21cd99
+
+2015-07-24 22:20 +0000 Asterisk Development Team <asteriskteam@digium.com>
+
+ * asterisk 13.5.0-rc1 Released.
+
+2015-07-24 17:15 +0000 [a4b527393b] Matt Jordan <mjordan@digium.com>
+
+ * Release summaries: Add summaries for 13.5.0-rc1
+
+2015-07-24 17:11 +0000 [158b0b8ebf] Matt Jordan <mjordan@digium.com>
+
+ * .version: Update for 13.5.0-rc1
+
+2015-07-24 17:11 +0000 [a0a7650e34] Matt Jordan <mjordan@digium.com>
+
+ * .lastclean: Update for 13.5.0-rc1
+
+2015-07-24 17:11 +0000 [4d238af086] Matt Jordan <mjordan@digium.com>
+
+ * realtime: Add database scripts for 13.5.0-rc1
+
+2015-07-24 12:56 +0000 [f78a4b52b8] Matt Jordan <mjordan@digium.com>
+
+ * Bump the ARI version to 1.8.0
+
+ Due to backwards compatible changes, the ARI version should be bumped to
+ 1.8.0 prior to the release of 13.5.0. Note that a previous patch already
+ bumped the version of AMI for this release.
+
+ Change-Id: I419033bfbbc0d3533a29ccb32b2981f39e0883e7
+
+2015-07-18 11:16 +0000 [2749721791] Joshua Colp <jcolp@digium.com>
+
+ * pjsip: Add rtp_timeout and rtp_timeout_hold endpoint options.
+
+ This change adds support for the 'rtp_timeout' and 'rtp_timeout_hold'
+ endpoint options. These allow the channel to be hung up if RTP
+ is not received from the remote endpoint for a specified number of
+ seconds.
+
+ ASTERISK-25259 #close
+
+ Change-Id: I3f39daaa7da2596b5022737b77799d16204175b9
+
+2015-07-24 09:46 +0000 [b4e19e414a] Mark Michelson <mmichelson@digium.com>
+
+ * res_pjsip: Add rtp_keepalive to sample config file.
+
+ Change-Id: I5f62d0c5684f8b2335f9f8ac2d79ee04fbdafb19
+
+2015-07-23 13:11 +0000 [f635520527] Mark Michelson <mmichelson@digium.com>
+
+ * Local channels: Alternate solution to ringback problem.
+
+ Commit 54b25c80c8387aea9eb20f9f4f077486cbdf3e5d solved an issue where a
+ specific scenario involving local channels and a native local RTP bridge
+ could result in ringback still being heard on a calling channel even
+ after the call is bridged.
+
+ That commit caused many tests in the testsuite to fail with alarming
+ consequences, such as not sending DialBegin and DialEnd events, and
+ giving incorrect hangup causes during calls.
+
+ This commit reverts the previous commit and implements and alternate
+ solution. This new solution involves only passing AST_CONTROL_RINGING
+ frames across local channels if the local channel is in AST_STATE_RING.
+ Otherwise, the frame does not traverse the local channels. By doing
+ this, we can ensure that a playtones generator does not get started on
+ the calling channel but rather is started on the local channel on which
+ the ringing frame was initially indicated.
+
+ ASTERISK-25250 #close
+ Reported by Etienne Lessard
+
+ Change-Id: I3bc87a18a38eb2b68064f732d098edceb5c19f39
+
+2015-07-22 12:24 +0000 [f509730cb9] Joshua Colp <jcolp@digium.com>
+
+ * audiohook: Use manipulated frame instead of dropping it.
+
+ Previous changes to sample rate support in audiohooks accidentally
+ removed code responsible for allowing the manipulate audiohooks
+ to work. Without this code the manipulated frame would be dropped
+ and not used. This change restores it.
+
+ ASTERISK-25253 #close
+
+ Change-Id: I3ff50664cd82faac8941f976fcdcb3918a50fe13
+
+2015-07-22 09:46 +0000 [54b25c80c8] Mark Michelson <mmichelson@digium.com>
+
+ * Local channels: Do not block control -1 payloads.
+
+ Control frames with a -1 payload are used as a special signal to stop
+ playtones generators on channels. This indication is sent both by
+ app_dial as well as by ast_answer() when a call is answered in case any
+ tones were being generated on a calling channel.
+
+ This control frame type was made to stop traversing local channel pairs
+ as an optimization, because it was thought that it was unnecessary to
+ send these indications, and allowing such unnecessary control frames to
+ traverse the local channels would cause the local channels to optimize
+ away less quickly.
+
+ As it turns out, through some special magic dialplan code, it is
+ possible to have a tones being played on a non-local channel, and it is
+ important for the local channel to convey that the tones should be
+ stopped. The result of having tones continue to be played on the
+ non-local channel is that the tones play even once the channel has been
+ bridged. By not blocking the -1 control frame type, we can ensure that
+ this situation does not happen.
+
+ ASTERISK-25250 #close
+ Reported by Etienne Lessard
+
+ Change-Id: I0bcaac3d70b619afdbd0ca8a8dd708f33fd2f815
+
+2015-07-22 05:16 +0000 [f1493f900e] Joshua Colp <jcolp@digium.com>
+
+ * audiohook: Read the correct number of samples based on audiohook format.
+
+ Due to changes in audiohooks to support different sample rates the
+ underlying storage of samples is in the format of the audiohook
+ itself and not of the format being requested. This means that if a
+ channel is using G722 the samples stored will be at 16kHz. If
+ something subsequently reads from the audiohook at a format which
+ is not the same sample rate as the audiohook the number of samples
+ needs to be adjusted.
+
+ Given the following example:
+ 1. Channel writing into audiohook at 16kHz (as it is using G722).
+ 2. Chanspy reading from audiohook at 8kHz.
+
+ The original code would read 160 samples from the audiohook for
+ each 20ms of audio. This is incorrect. Since the audio in the
+ audiohook is at 16kHz the actual number needing to be read is 320.
+ Failure to read this much would cause the audiohook to reset
+ itself constantly as the buffer became full.
+
+ This change adjusts the requested number of samples by determining
+ the duration of audio requested and then calculating how many
+ samples that would be in the audiohook format.
+
+ ASTERISK-25247 #close
+
+ Change-Id: Ia91ce516121882387a315fd8ee116b118b90653d
+
+2015-07-20 12:39 +0000 [62c64c3bd1] Rusty Newton <rnewton@digium.com>
+
+ * Documentation: A couple of trivial fixes in sip.conf.sample and func_cdr.c
+
+ * In sip.conf.sample fix sentence where we said that WS or WSS are supported
+ transports for use in an outbound register definition. They are not
+ supported in that case.
+ * In func_cdr.c made it clear that the Disable option for CDR_PROP can be used
+ to enable CDR on a channel.
+
+ ASTERISK-24867 #close
+ Reported by: Rusty Newton
+
+ ASTERISK-24853 #close
+ Reported by: PSDK
+
+ Change-Id: I3d698bc6302b9d00a0a995b5c4ad9a42d69b48ca
+
+2015-07-09 14:17 +0000 [d9094ddd73] Mark Michelson <mmichelson@digium.com>
+
+ * res_pjsip: Add rtp_keepalive endpoint option.
+
+ This adds an "rtp_keepalive" option for PJSIP endpoints. Similar to the
+ chan_sip option, this specifies an interval, in seconds, at which we
+ will send RTP comfort noise frames. This can be useful for keeping RTP
+ sessions alive as well as keeping NAT associations alive during lulls.
+
+ ASTERISK-25242 #close
+ Reported by Mark Michelson
+
+ Change-Id: I06660ba672c0a343814af4cec838e6025cafd54b
+
+2015-07-16 09:13 +0000 [a23adcca3d] Michael Cargile <mikec@vicidial.com>
+
+ * res/res_musiconhold: Add a warning when MOH does not exist
+
+ Change-Id: Ifdfbd0b97cf31478d29923ec30aabce28d01740b
+
+2015-07-19 09:11 +0000 [03064daeb2] Matt Jordan <mjordan@digium.com>
+
+ * res/res_sorcery_config: Prevent crash from misconfigured sorcery.conf
+
+ Misconfiguring sorcery.conf with a 'config' wizard with no extra data
+ will currently crash Asterisk on startup, as the wizard requires a comma
+ delineated list to parse. This patch updates res_sorcery_config to check
+ for the presence of the data before it starts manipulating it.
+
+ Change-Id: I4c97512e8258bc82abe190627a9206c28f5d3847
+
+2015-07-16 09:46 +0000 [2c626ceb64] Joshua Colp <jcolp@digium.com>
+
+ * chan_pjsip: Don't change formats when frame of unsupported format is received.
+
+ Receipt of an RTP packet currently causes the formats on an PJSIP channel to
+ change to the format of the RTP packet. In some off-nominal cases it's possible
+ for this to be a format that has not been configured or negotiated. This change
+ makes it so only formats explicitly configured on the endpoint are allowed.
+
+ ASTERISK-25258 #close
+
+ Change-Id: If93d641fb6418a285928839300d7854cab8c1020
+
+2015-07-17 04:59 +0000 [abb14ac5b8] Patric Marschall <patric.marschall@1und1.de>
+
+ * sig_pri.h: force_restart_unavailable_chans in wrong scope
+
+ In channels/sig_pri.h, struct sig_pri_span, the field
+ force_restart_unavailable_chans is only defined if
+
+ #if defined(HAVE_PRI_MCID) is true.
+
+ All other occurences of force_restart_unavailable_chans are outside of the
+
+ #if defined(HAVE_PRI_MCID)
+ endif
+
+ scope.
+
+ ASTERISK-25257 #close
+ Reported by: Patric Marschall
+
+ Change-Id: I071de89cc2cd0d85927a013036e235851f672549
+2015-07-14 16:55 +0000 [875aee4c09] Richard Mudgett <rmudgett@digium.com>
+
+ * pbx.c: Post AMI VarSet event if delete a non-empty dialplan variable.
+
+ ASTERISK-25256 #close
+ Reported by: Richard Mudgett
+
+ Change-Id: I0b6be720b66fa956f6a798cd22ef8934eb0c0ff3
+
+2015-07-08 16:39 +0000 [8bcf6d2801] Matt Jordan <mjordan@digium.com>
+
+ * ARI: Add support for push configuration of dynamic object
+
+ This patch adds support for push configuration of dynamic, i.e.,
+ sorcery, objects in Asterisk. It adds three new REST API calls to the
+ 'asterisk' resource:
+ * GET /asterisk/{configClass}/{objectType}/{id}: retrieve the current
+ object given its ID. This returns back a list of ConfigTuples, which
+ define the fields and their present values that make up the object.
+ * PUT /asterisk/{configClass}/{objectType}/{id}: create or update an
+ object. A body may be passed with the request that contains fields to
+ populate in the object. The same format as what is retrieved using
+ the GET operation is used for the body, save that we specify that the
+ list of fields to update are contained in the "fields" attribute.
+ * DELETE /asterisk/{configClass}/{objectType}/{id}: remove a dynamic
+ object from its backing storage.
+
+ Note that the success/failure of these operations is somewhat
+ configuration dependent, i.e., you must be using a sorcery wizard that
+ supports the operation in question. If a sorcery wizard does not support
+ the create or delete mechanisms, then the REST API call will fail with a
+ 403 forbidden.
+
+ ASTERISK-25238 #close
+
+ Change-Id: I28cd5c7bf6f67f8e9e437ff097f8fd171d30ff5c
+
+2015-07-15 15:40 +0000 [e31cb6b248] Richard Mudgett <rmudgett@digium.com>
+
+ * strings.h: Fix issues with escape string functions.
+
+ Fixes for issues with the ASTERISK-24934 patch.
+
+ * Fixed ast_escape_alloc() and ast_escape_c_alloc() if the s parameter is
+ an empty string. If it were an empty string the functions returned NULL
+ as if there were a memory allocation failure. This failure caused the AMI
+ VarSet event to not get posted if the new value was an empty string.
+
+ * Fixed dest buffer overwrite potential in ast_escape() and
+ ast_escape_c(). If the dest buffer size is smaller than the space needed
+ by the escaped s parameter string then the dest buffer would be written
+ beyond the end by the nul string terminator. The num parameter was really
+ the dest buffer size parameter so I renamed it to size.
+
+ * Made nul terminate the dest buffer if the source string parameter s was
+ an empty string in ast_escape() and ast_escape_c().
+
+ * Updated ast_escape() and ast_escape_c() doxygen function description
+ comments to reflect reality.
+
+ * Added some more unit test cases to /main/strings/escape to cover the
+ empty source string issues.
+
+ ASTERISK-25255 #close
+ Reported by: Richard Mudgett
+
+ Change-Id: Id77fc704600ebcce81615c1200296f74de254104
+
+2015-07-14 14:29 +0000 [243c0d1609] Richard Mudgett <rmudgett@digium.com>
+
+ * parking_applications.c: Fix ast_verb() line terminator.
+
+ Change-Id: I8797238c71563e243c48c6145b4f1ae58f91f775
+
+2015-07-14 14:36 +0000 [c782320c68] Richard Mudgett <rmudgett@digium.com>
+
+ * res_parking: Fix crash if ATTENDEDTRANSFER set empty before Park.
+
+ setup_park_common_datastore() was assuming that a non-NULL string returned
+ for the ATTENDEDTRANSFER and BLINDTRANSFER channel variables are not empty
+ strings. Things got crashy as a result.
+
+ * Made setup_park_common_datastore() treat the channel variable values the
+ same whether they are NULL or empty for ATTENDEDTRANSFER and
+ BLINDTRANSFER.
+
+ ASTERISK-25254 #close
+ Reported by: Richard Mudgett
+
+ Change-Id: I9a9c174b33f354f35f82cc6b7cea8303adbaf9c2
+
+2015-07-10 18:01 +0000 [2735dd5b2d] Richard Mudgett <rmudgett@digium.com>
+
+ * res_pjsip_session.c: Extract sip_session_defer_termination_stop_timer().
+
+ Change-Id: I9e115dee74bd72e06081d0ee73ecdeb886caa5fb
+
+2015-07-10 10:42 +0000 [3d0ca343ca] Richard Mudgett <rmudgett@digium.com>
+
+ * res_pjsip_session.c: Add some helpful comments and minor tweaks.
+
+ Change-Id: I742aeeaf5f760593f323a00fb691affe22e35743
+
+2015-07-10 10:43 +0000 [8d08bb179c] Richard Mudgett <rmudgett@digium.com>
+
+ * res_pjsip_session.c: Fix off nominal crash potential in debug message.
+
+ Change-Id: I09928297927ee85f7655289acee3a586816466bc
+
+2015-07-15 10:31 +0000 [0a1a550593] Matt Jordan <mjordan@digium.com>
+
+ * apps/app_dictate: Fix typo in attribution
+
+ Last time I checked, it's "Sangoma", not "Samgoma". Thanks to Brian
+ (GameGamer43) for pointing that out.
+
+ Change-Id: I43d7b196f6d7a2b2517b84915e3a8dfbc2894106
+
+2015-07-15 10:28 +0000 [3384e64ef6] Benjamin Ford <bford@digium.com>
+
+ * ARI: Fixed unload mode for unload module.
+
+ Changed the unload mode to AST_FORCE_SOFT from AST_FORCE_FIRM,
+ which would unload a module even if it was in use.
+
+ * Changed unload mode to proper mode
+
+ ASTERISK-25173
+
+ Change-Id: If2402487b5bce05d9770f25f65f5c8e292ad5533
+
+2015-07-08 16:38 +0000 [0b6ff77afb] Matt Jordan <mjordan@digium.com>
+
+ * res/res_sorcery_astdb: Add a debugging message for when retrieval by ID fails
+
+ Having a debug message tell us that we attempted to look up an item but
+ failed is nice in circumstances when it isn't clear if the wizard was
+ queried correctly or not.
+
+ Change-Id: I2600c3bbea87f252196358f62e73f4c7da8632f7
+
+2015-07-08 16:37 +0000 [2f0d6d346c] Matt Jordan <mjordan@digium.com>
+
+ * res/res_pjsip_outbound_registration: Fix WARNING message
+
+ Newlines are nice.
+
+ Change-Id: Icf0d915db02882e47cd9077ed9009f5d44140d42
+
+2015-07-08 16:35 +0000 [cd2213f1ae] Matt Jordan <mjordan@digium.com>
+
+ * res_pjsip/configuration: Fix a variety of default value problems
+
+ This patch fixes some bad default value handling in the following
+ settings:
+
+ * The 'message_context' and 'accountcode' settings are not mandatory. As
+ such, we can allow their stringfield values to be empty.
+ * The 'media_encryption' setting applies a default value of 'none' to
+ the setting, which it then can't parse or understand. Since the value
+ is documented to be 'no', this will now apply that as the default
+ value.
+
+ Change-Id: Ib9be7f97a7a5b9bc7aee868edf5acf38774cff83
+
+2015-07-08 16:32 +0000 [2e4bdbd78a] Matt Jordan <mjordan@digium.com>
+
+ * main/sorcery: Provide log messages when a wizard does not support an operation
+
+ If a sorcery wizard does not support one of the 'optional' CRUD
+ operations (namely the CUD), log a WARNING message so we are aware of
+ why the operation failed. This also removes an assert in this case, as
+ the CUD operation may have been triggered by an external system, in
+ which case it is not a programming error but a configuration error.
+
+ Change-Id: Ifecd9df946d9deaa86235257b49c6e5e24423b53
+
+2015-07-10 18:17 +0000 [653f2087e0] Richard Mudgett <rmudgett@digium.com>
+
+ * res_pjsip_session.c: Fix crash on call disconnect.
+
+ The crash fix for ASTERISK-25183 backported some code from master to try
+ to make sure that a BYE response is processed by the same serializer used
+ by the BYE request. The identified race condition causing that backport
+ was the BYE request code had not finished processing after sending the BYE
+ before the BYE response came in for processing under a different thread.
+ Unfortunately, there is still a race condition. Now the race condition is
+ between destroying the call session's serializer in
+ ast_taskprocessor_unreference() and using ast_taskprocessor_get() to get a
+ reference to the serializer for a BYE response. Even worse, the new race
+ condition is a design limitation of the taskprocessor implementation that
+ didn't matter in versions before v12. Back then, taskprocessors were only
+ destroyed when a module unloaded. Now res_pjsip can destroy them when a
+ call ends.
+
+ However, as noted on the ASTERISK-25183 commit,
+ session_inv_on_state_changed() is disassociating the dialog from the
+ session when the invite dialog state becomes PJSIP_INV_STATE_DISCONNECTED.
+ This is a tad too soon because our BYE request transaction has not
+ completed yet.
+
+ * Split session_end() that is called by session_inv_on_state_changed() to
+ hold off session destruction until the BYE transaction timeout occurs or a
+ failed initial INVITE transaction timeout occurs in
+ session_inv_on_tsx_state_changed().
+
+ ASTERISK-25201 #close
+ Reported by: Matt Jordan
+
+ Change-Id: Iaf8dc8485fd8392a2a3ee4ad3b7f7f04a0dcc961
+
+2015-07-14 13:12 +0000 [1aafadf814] Benjamin Ford <bford@digium.com>
+
+ * ARI: Added new functionality to reload a single module.
+
+ An http request can be sent to reload an Asterisk module. If the
+ module can not be reloaded or is not already loaded, an error
+ response will be returned.
+
+ The command "curl -v -u user:pass -X PUT 'http://localhost:8088
+ /ari/asterisk/modules/{moduleName}'" (or something similar, based
+ on configuration) can be run in the terminal to access this new
+ functionality.
+
+ For more information, see:
+ https://wiki.asterisk.org/wiki.display/~bford/Asterisk+ARI+Resource
+
+ * Added new ARI functionality
+ * Asterisk modules can be reloaded through http requests
+
+ ASTERISK-25173
+
+ Change-Id: I289188bcae182b2083bdbd9ebfffd50b62f58ae1
+
+2015-07-14 08:55 +0000 [9dcae23cfc] Benjamin Ford <bford@digium.com>
+
+ * ARI: Added new functionality to unload a single module.
+
+ An http request can be sent to unload an Asterisk module. If the
+ module can not be unloaded or is already unloaded, an error response
+ will be returned.
+
+ The command "curl -v -u user:pass -X DELETE 'http://localhost:8088
+ /ari/asterisk/modules/{moduleName}'" (or something similar, depending
+ on configuration) can be run in the terminal to access this new
+ functionality.
+
+ For more information, see:
+ https://wiki.asterisk.org/wiki.display/~bford/Asterisk+ARI+Resource
+
+ * Added new ARI functionality
+ * Asterisk modules can be unloaded through http requests
+
+ ASTERISK-25173
+
+ Change-Id: I535a95f5676deb02651522761ecbdc0b00b5ac57
+
+2015-07-13 16:00 +0000 [c219a98d2b] Benjamin Ford <bford@digium.com>
+
+ * ARI: Added new functionality to load a single module.
+
+ An http request can be sent to load an Asterisk module. If the
+ module can not be loaded or is loaded already, an error response
+ will be returned.
+
+ The command curl -v -u user:pass -X POST 'http://localhost:8088/ari
+ /asterisk/modules/{moduleName}'" (or something similar, depending on
+ configuration) can be run in the terminal to access this new
+ functionality.
+
+ For more information, see:
+ https://wiki.asterisk.org/wiki.display/~bford/Asterisk+ARI+Resource
+
+ * Added new ARI functionality
+ * Asterisk modules can be loaded through http requests
+
+ ASTERISK-25173
+
+ Change-Id: I9e05d5b8c5c666ecfef341504f9edc1aa84fda33
+
+2015-07-13 10:54 +0000 [73e35d20de] Benjamin Ford <bford@digium.com>
+
+ * ARI: Added new functionality to get information on a single module.
+
+ An http request can be sent to retrieve information on a single
+ module, including the resource name, description, use count, status,
+ and support level.
+
+ The command "curl -v -u user:pass -X GET 'http://localhost:8088/ari
+ /asterisk/modules/{moduleName}'" (or something similar, depending on
+ configuration) can be run in the terminal to access this new
+ functionality.
+
+ For more information, see:
+ https://wiki.asterisk.org/wiki.display/~bford/Asterisk+ARI+Resource
+
+ * Added new ARI functionality
+ * Information on a single module can now be retrieved
+
+ ASTERISK-25173
+
+ Change-Id: Ibce5a94e70ecdf4e90329cf0ba66c33a62d37463
+
+2015-07-08 14:56 +0000 [97ee0ee6c6] Kevin Harwell <kharwell@digium.com>
+
+ * bridge.c: Fixed race condition during attended transfer
+
+ During an attended transfer a thread is started that handles imparting the
+ bridge channel. From the start of the thread to when the bridge channel is
+ ready exists a gap that can potentially cause problems (for instance, the
+ channel being swapped is hung up before the replacement channel enters the
+ bridge thus stopping the transfer). This patch adds a condition that waits
+ for the impart thread to get to a point of acceptable readiness before
+ allowing the initiating thread to continue.
+
+ ASTERISK-24782
+ Reported by: John Bigelow
+
+ Change-Id: I08fe33a2560da924e676df55b181e46fca604577
+
+2015-07-08 16:28 +0000 [bb76b88baf] Matt Jordan <mjordan@digium.com>
+
+ * main/sorcery: Don't fail object set creation from JSON if field fails
+
+ Some individual fields may fail their conversion due to their default
+ values being invalid for their custom handlers. In particular,
+ configuration values that depend on others being enabled (and thus have
+ an empty default value) are notorious for tripping this routine up. An
+ example of this are any of the DTLS options for endpoints. Any of the
+ DTLS options will fail to be applied (as DTLS is not enabled), causing
+ the entire object set to be aborted.
+
+ This patch makes it so that we log a debug message when skipping a
+ field, and rumble on anyway.
+
+ ASTERISK-25238
+
+ Change-Id: I0bea13de79f66bf9f9ae6ece0e94a2dc1c026a76
+
+2015-07-08 16:21 +0000 [5f13c2226a] Matt Jordan <mjordan@digium.com>
+
+ * main/format_cap: Parse capabilities generated by ast_format_cap_get_names
+
+ We have a strange relationship between the parsing of format
+ capabilities from a string and their representation as a string. We
+ expect the format capabilities to be expressed as a string in the
+ following format:
+
+ allow = !all,ulaw,alaw
+ disallow = g722
+
+ While we would generate the string representation of those formats as:
+
+ allow = (ulaw|alaw)
+ disallow = (ulaw|alaw|g729...)
+
+ When the configuration framework needs to store values as a string, it
+ generates the format capabilities using the second representation; this
+ representation however cannot be parsed when the entry is rehydrated.
+ This patch fixes that by updating
+ ast_format_cap_update_by_allow_disallow to parse an entry as if it were
+ in the generated format if it has a leading '(' and a trailing ')'.
+
+ ASTERISK-25238
+
+ Change-Id: I904d43caf4cf45af06f6aee0c9e58556eb91d6ca
+
+2015-06-27 17:53 +0000 [2325b106fd] Matt Jordan <mjordan@digium.com>
+
+ * tests/test_devicestate: Add additional tests for the device state API
+
+ This patch adds more tests that exercise the device state API. This includes:
+
+ * Tests that cover adding a device state provider, as well as deleting a
+ device state provider. This also verifies that you cannot add an
+ already added device state provider, and cannot delete an already
+ deleted device state provider.
+ * A test that covers changing device state and receiving said updates
+ from a device state subscriber. This also covers hitting both the
+ device state cache as well as a custom device state provider.
+ * A test that covers converting device state to channel state and device
+ state values to a string representation and back.
+ * A test that covers obtaining device state from an active channel and a
+ channel driver that provides its own device state.
+
+ Change-Id: I2adca67ffb405cd8625a5d6df1e3f9b3d945c08d
+
+2015-06-27 17:51 +0000 [328f0be806] Matt Jordan <mjordan@digium.com>
+
+ * main/devicestate: Prevent duplicate registration of device state providers
+
+ Currently, the device state provider API will allow you to register a
+ device state provider with the same case insensitive name more than
+ once. This could cause strange issues, as the duplicate device state
+ providers will not be queried when a device's state has to be polled.
+ This patch updates the API such that a device state provider with the
+ same name as one that has already registered will be rejected.
+
+ Change-Id: I4a418a12280b7b6e4960bd44f302e27cd036ceb2
+
+2015-07-10 22:25 +0000 [bee41eec62] Matt Jordan <mjordan@digium.com>
+
+ * res/res_sorcery_memory_cache: Fix test registration issues
+
+ Again, tests now need to not end with a newline. This patch makes it so
+ the tests can register again, unit tests will actually pass, and we can
+ stop wasting time trying to figure out why builds are failing when they
+ really aren't failing.
+
+ Change-Id: Ide519fbeba89f413c733446c5ff7b224fc4ce840
+
+2015-07-10 21:42 +0000 [4d738e9026] Matt Jordan <mjordan@digium.com>
+
+ * tests/test_sorcery_memory_cache_thrash: Fix test loading problems
+
+ Because unit tests now want descriptions to not end with a newline, the
+ sorcery memory cache thrash tests failed to register. This patch
+ corrects their descriptions.
+
+ Change-Id: Id004b1becfdeed8ee3c846f49beab76a5c0f68b6
+
+2015-06-26 10:57 +0000 [47ea312b24] Benjamin Ford <bford@digium.com>
+
+ * ARI: Added new functionality to get all module information.
+
+ An http request can be sent to retrieve a list of all existing modules,
+ including the resource name, description, use count, status, and
+ support level.
+
+ The command "curl -v -u user:pass -X GET 'http://localhost:8088/ari/
+ asterisk/modules" (or something similar, depending on configuration)
+ can be run in the terminal to access this new functionality.
+
+ For more information, see:
+ https://wiki.asterisk.org/wiki.display/~bford/Asterisk+ARI+Resource
+
+ * Added new ARI functionality
+ * Information on modules can now be retrieved
+
+ Change-Id: I63cbbf0ec0c3544cc45ed2a588dceabe91c5e0b0
+
+2015-07-09 09:18 +0000 [d558b00c85] Joshua Colp <jcolp@digium.com>
+
+ * bridge_native_rtp.c: Don't start native RTP bridging after attended transfer.
+
+ The bridge_native_rtp module adds a frame hook to channels which are in
+ a native RTP bridge. This frame hook is used to intercept when a hold
+ or unhold frame traverses the bridge so native RTP can be stopped or
+ started as appropriate. This is expected but exposes a specific bug
+ when attended transfers are involved.
+
+ Upon completion of an attended transfer an unhold frame is queued up
+ to take one of the channels involved off hold. After this is done
+ the channel is moved between bridges.
+
+ When the frame hook is involved in this case for the unhold it
+ releases the channel lock and acquires the bridge lock. This
+ allows the bridge core to step in and move the channel
+ (potentially changing the bridging techology) from another thread.
+ Once completed the bridge lock is released by the bridge core.
+ The frame hook is then able to acquire the bridge lock and
+ wrongfully starts native RTP again, despite the channel no longer
+ being in the bridge or needing to start native RTP. In fact at
+ this point the frame hook is no longer attached to the channel.
+
+ This change makes it so the native RTP bridge data is available to
+ the frame hook when it is invoked. Whether the frame hook has
+ been detached or not is stored on the native RTP bridge data and
+ is checked by the frame hook before starting or stopping native
+ RTP bridging. If the frame hook has been detached it does nothing.
+
+ ASTERISK-25240 #close
+
+ Change-Id: I13a73186a05f4e5a764f81e5cd0ccec1ed1891d2
+
+2015-05-16 17:02 +0000 [b74b071369] Joshua Colp <jcolp@digium.com>
+
+ * res_sorcery_memory_cache: Backport to 13
+
+ Gerrit is complaining of conflicts when trying to create a patch series
+ of all of the cherry-picked master commits, so I have instead squashed
+ it all into one commit.
+
+ ASTERISK-25067 #close
+ Reported by: Matt Jordan
+
+ Change-Id: I6dda90343fae24a75dc5beec84980024e8d61eb9
+
+2015-07-08 04:21 +0000 [7ff1ac8797] Joshua Colp <jcolp@digium.com>
+
+ * res_rtp_asterisk: Ensure DTLS timeout timer is -1 if DTLS is not used.
+
+ This change fixes a bug where the DTLS timeout timer would be
+ initialized to 0 if DTLS was not used for an RTP session.
+
+ ASTERISK-25103
+
+ Change-Id: If8d26bb054f1d300838850da5b8db9044c2fe2ac
+
+2015-07-01 07:55 +0000 [05e8e14982] Joshua Colp <jcolp@digium.com>
+
+ * res_rtp_asterisk: Prevent simultaneous access to DTLS SSL context.
+
+ This change moves logic for setting up the DTLS SSL contexts to
+ when the SDP is done being processed instead of when ICE negotiation
+ completes. It also stops handshakes from being initiated when we
+ are acting as a server.
+
+ Manipulating the SSL context when ICE negotiation has completed
+ is problematic as the SSL context is not protected and if acting
+ as a client the remote side may have started DTLS negotiation
+ already.
+
+ The retransmission timeout timer code has also been split up
+ and simplified some. Both RTP and RTCP now have their own timers
+ and the points at which the timer is stopped and started is now
+ more specific. When a packet is sent the timer is started. When
+ a response is received but before it is processed the timer is
+ stopped. This provides a guarantee that the timeout is not
+ occurring while the response is processed.
+
+ ASTERISK-22805 #close
+ ASTERISK-24550 #close
+ ASTERISK-24651 #close
+ ASTERISK-24832 #close
+ ASTERISK-25103 #close
+ ASTERISK-25127 #close
+
+ Change-Id: Ib75ea2546f29d6efc3d2d37c58df6986c7bd9b91
+
+2015-06-26 16:10 +0000 [38bace4fbb] Richard Mudgett <rmudgett@digium.com>
+
+ * res_pjsip_t38.c: Fix always false if test.
+
+ Calling t38_change_state() sets the t38 state so it makes little sense to
+ then check the state right after the call for something else.
+
+ * Made the code in t38_interpret_parameters() reject or exit T.38 mode as
+ intended but not implemented.
+
+ Change-Id: Ib281263a6ed44da9448132c4e6df1e183b8a3df2
+
+2015-06-30 11:17 +0000 [2f7688c788] Richard Mudgett <rmudgett@digium.com>
+
+ * res_pjsip_mwi.c: Use safer loop coding in mwi_subscription_mailboxes_str().
+
+ Change-Id: I6f39d809a6d1b47b35bb32b298f5a12f35d6f907
+
+2015-06-30 11:14 +0000 [74be3a50d7] Richard Mudgett <rmudgett@digium.com>
+
+ * res_pjsip_mwi.c: Eliminate a simple RAII_VAR.
+
+ Change-Id: Ib1843f81e826a6c760c424c88eb70c350d9d61da
+
+2015-06-30 11:11 +0000 [589e93617a] Richard Mudgett <rmudgett@digium.com>
+
+ * res_pjsip_mwi.c: Fix mid-line log message line breaks.
+
+ * Add create_mwi_subscriptions_for_endpoint() doxygen comment.
+
+ Change-Id: I3c3f921f4ec749fb65b62d2f6fa0d4d1888b94e2
+
+2015-06-26 18:48 +0000 [0d67e04359] Richard Mudgett <rmudgett@digium.com>
+
+ * res_pjsip_mwi.c: Fix MWI subscription memory corruption crash.
+
+ MWI subscriptions can crash or corrupt memory when using the subscription
+ datastore to access the MWI subscription object because the datastore is
+ not holding a reference to the object.
+
+ * Give the subscription datastore a ref to the MWI subscription object.
+ It is unfortunate that the ref causes a circular ref chain that must be
+ explicitly broken to allow the memory to get released. The loop is broken
+ when the subscription is shutdown and if the subscription setup fails.
+
+ ASTERISK-25168 #close
+ Reported by: Carl Fortin
+
+ Change-Id: Ice4fa823f138ff10a6c74d280699c41a82836d4f
+
+2015-07-02 14:51 +0000 [0422433f47] Richard Mudgett <rmudgett@digium.com>
+
+ * PJSIP XML, XPIDF: Fix buffer size overwrite memory corruption error.
+
+ When res_pjsip body generator modules were generating XML or XPIDF
+ response bodies, there was a chance that the generated body would be the
+ exact size of the supplied buffer. Adding the nul string terminator would
+ then write beyond the end of the buffer and potentially corrupt memory.
+
+ * Fix MALLOC_DEBUG high fence violations caused by adding a nul string
+ terminator on the end of a buffer for XML or XPIDF response bodies.
+
+ * Made calls to pj_xml_print() safer if the XML prolog is requested. Due
+ to a bug in pjproject, the return value could be -1 _or_
+ AST_PJSIP_XML_PROLOG_LEN if the supplied buffer is not large enough.
+
+ * Updated the doxygen comment of AST_PJSIP_XML_PROLOG_LEN to describe the
+ return value of pj_xml_print() when the supplied buffer is not large
+ enough.
+
+ ASTERISK-25168
+ Reported by: Carl Fortin
+
+ Change-Id: Id70e1d373a6a2b2bd9e678b5cbc5e55b308981de
+
+2015-06-26 10:36 +0000 [8ea214aed7] Richard Mudgett <rmudgett@digium.com>
+
+ * PJSIP FAX: Fix T.38 automatic reject timer NULL channel pointer dereferences.
+
+ When a caller calls a FAX number and then hangs up right after the call is
+ answered then the T.38 re-INVITE automatic reject timer may still be
+ running after the channel goes away.
+
+ * Added session NULL channel checks on the code paths that get executed by
+ t38_automatic_reject() to prevent a crash when the T.38 re-INVITE
+ automatic reject timer expires.
+
+ ASTERISK-25168
+ Reported by: Carl Fortin
+
+ Change-Id: I07b6cd23815aedce5044f8f32543779e2f7a2403
+
+2015-06-05 15:37 +0000 [ada7346792] Richard Mudgett <rmudgett@digium.com>
+
+ * res_pjsip: Need to use the same serializer for a pjproject SIP transaction.
+
+ All send/receive processing for a SIP transaction needs to be done under
+ the same threadpool serializer to prevent reentrancy problems inside
+ pjproject and res_pjsip.
+
+ * Add threadpool API call to get the current serializer associated with
+ the worker thread.
+
+ * Pick a serializer from a pool of default serializers if the caller of
+ res_pjsip.c:ast_sip_push_task() does not provide one.
+
+ This is a simple way to ensure that all outgoing SIP request messages are
+ processed under a serializer. Otherwise, any place where a pushed task is
+ done that would result in an outgoing out-of-dialog request would need to
+ be modified to supply a serializer. Serializers from the default
+ serializer pool are picked in a round robin sequence for simplicity.
+
+ A side effect is that the default serializer pool will limit the growth of
+ the thread pool from random tasks. This is not necessarily a bad thing.
+
+ * Made pjsip_distributor.c save the thread's serializer name on the
+ outgoing request tdata struct so the response can be processed under the
+ same serializer.
+
+ This is a cherry-pick from master.
+
+ **** ASTERISK-25115 Change-Id: Iea71c16ce1132017b5791635e198b8c27973f40a
+
+ NOTE: session_inv_on_state_changed() is disassociating the dialog from the
+ session when the invite dialog becomes PJSIP_INV_STATE_DISCONNECTED.
+ Unfortunately this is a tad too soon because our BYE request transaction
+ has not completed yet.
+
+ ASTERISK-25183 #close
+ Reported by: Matt Jordan
+
+ Change-Id: I8bad0ae1daf18d75b8c9e55874244b7962df2d0a
+
+2015-07-04 18:22 +0000 [55137c3d12] Joshua Colp <jcolp@digium.com>
+
+ * res/res_http_websocket: Don't send HTTP response fragmented.
+
+ This change makes it so that when accepting a WebSocket
+ connection the HTTP response is sent as one packet instead of
+ fragmented. Browsers don't like it when you send it fragmented.
+
+ ASTERISK-25103
+
+ Change-Id: I9b82c4ec2949b0bce692ad0bf6f7cea9709e7f69
+
+2015-06-27 18:47 +0000 [49f81ddb85] Matt Jordan <mjordan@digium.com>
+
+ * Makefile: Remove coverage files on 'make clean'
+
+ This patch updates a variety of Makefiles in Asterisk's build system to
+ remove .gcda and .gcno files when 'make clean' is executed. These files
+ are generated when '--enable-coverage' is passed to the Asterisk
+ configure script.
+
+ Change-Id: Ib70b41eea2ee2908885bff02e80faf9f40c84602
+
+2015-07-02 09:08 +0000 [e0f565663b] Walter Doekes <walter+asterisk@wjd.nu>
+
+ * chan_sip: Fix early call pickup channel leak.
+
+ When handle_invite_replaces() was called, and either ast_bridge_impart()
+ failed or there was no bridge (because the channel we're picking up was
+ still ringing), chan_sip would leak a channel.
+
+ Thanks Matt and Corey for checking the bridge path.
+
+ ASTERISK-25226 #close
+
+ Change-Id: Ie736bb182170a73eef5bcef0ab0376f645c260c8
+
+2015-07-02 06:19 +0000 [a5a262be78] Walter Doekes <walter+asterisk@wjd.nu>
+
+ * chan_mgcp: Don't call close on fd -1.
+
+ ASTERISK-25220 #close
+
+ Change-Id: Ic48f3a82f51ada87f2fb0e016c9efe0ad56f1ee3
+
+2015-07-02 06:10 +0000 [b835312b4c] Walter Doekes <walter+asterisk@wjd.nu>
+
+ * rtp_engine: Skip useless self-assignment in ast_rtp_engine_unload_format.
+
+ When running valgrind on Asterisk, it complained about:
+
+ ==32423== Source and destination overlap in memcpy(0x85a920, 0x85a920, 304)
+ ==32423== at 0x4C2F71C: memcpy@@GLIBC_2.14 (in /usr/lib/valgrind/...)
+ ==32423== by 0x55BA91: ast_rtp_engine_unload_format (rtp_engine.c:2292)
+ ==32423== by 0x4EEFB7: ast_format_attr_unreg_interface (format.c:1437)
+
+ The code in question is a struct assignment, which may be performed by
+ memcpy as a compiler optimization. It is changed to only copy the struct
+ contents if source and destination are different.
+
+ ASTERISK-25219 #close
+
+ Change-Id: I6d3546c326b03378ca8e9b8cefd41c16e0088b9a
+
+2015-07-02 05:16 +0000 [6551e16e03] Walter Doekes <walter+asterisk@wjd.nu>
+
+ * astfd: Fix buffer overflow in DEBUG_FD_LEAKS.
+
+ If DEBUG_FD_LEAKS was used and more file descriptors than the default of
+ 1024 were available, some DEBUG_FD_LEAKS-patched functions would
+ overwrite memory past the fixed-size (1024) fdleaks buffer.
+
+ This change:
+ - adds bounds checks to __ast_fdleak_fopen and __ast_fdleak_pipe
+ - consistently uses ARRAY_LEN() instead of sizeof() or 1023 or 1024
+ - stores pointers to constants instead of copying the contents
+ - reorders the fdleaks struct for possibly tighter packing
+ - adds a tiny bit of documentation
+
+ ASTERISK-25212 #close
+
+ Change-Id: Iacb69e7701c0f0a113786bd946cea5b6335a85e5
+
+2015-07-02 04:57 +0000 [f4dd9560cf] Walter Doekes <walter+asterisk@wjd.nu>
+
+ * res_timing: Don't close FD 0 when out of open files.
+
+ This fixes so a failure to get a timer file descriptor does not cascade
+ to closing FD 0.
+
+ On error, both res_timing_kqueue and res_timing_timerfd would call the
+ destructor before setting the file handle. The file handle had been
+ initialized to 0, causing FD 0 to be closed. This in turn, resulted in
+ floods of "CLI>" messages and an unusable terminal.
+
+ ASTERISK-19277 #close
+ Reported by: Barry Chern
+
+ For the 13 branch, this was already fixed. This patch only ensures that
+ we do not attempt to close a negative file descriptor.
+
+ Change-Id: I147d7e33726c6e5a2751928d56561494f5800350
+
+2015-07-01 17:25 +0000 [78a1f4aa46] Richard Mudgett <rmudgett@digium.com>
+
+ * chan_vpb.cc: Fix compiler warning Jenkins found.
+
+ Change-Id: I0ec7fd10d56d90d5a60b12b5a7d6807f265ac5e0
+
+2015-07-01 13:34 +0000 [6b16fbfc22] Scott Griepentrog <scott@griepentrog.com>
+
+ * Channel alert pipe: improve diagnostic error return
+
+ When a frame is queued on a channel, any failure in
+ ast_channel_alert_write is logged along with errno.
+
+ This change improves the diagnostic message through
+ aligning the errno value with actual failure cases.
+
+ ASTERISK-25224
+ Reported by: Andrey Biglari
+
+ Change-Id: I1bf7b3337ad392789a9f02c650589cd065d20b5b
+
+2015-07-01 16:04 +0000 [8e07ab145d] Matt Jordan <mjordan@digium.com>
+
+ * sorcery/realtime: Add a bit of debug and warning messages for bad configs
+
+ When a mapping does not exist between a sorcery.conf defined object and
+ a realtime mapping in extconf, currently, the user will receive a slew
+ of ERROR messages that don't really tell what is happening. Some ERROR
+ messages may even be misleading, as they occur after the sorcery API has
+ already given up on the attempt to load and create the sorcery object.
+
+ This patch adds a bit of debug and a useful WARNING message for when a
+ wizard's open callback fails for a particular object type. In the bad
+ configurations that resulted in this patch, this provided a 'root cause'
+ WARNING message that pointed in the right direction of the configuration
+ problem.
+
+ Change-Id: I1cc7344f2b015b8b9c85a7e6ebc8cb4753a8f80b
+2015-06-29 12:45 +0000 [156395e743] Mark Michelson <mmichelson@digium.com>
+
+ * res_sorcery_realtime: Fix leak of sorcery object type.
+
+ This prevents a leak of a sorcery object type when realtime sorcery
+ objects are retrieved by fields or when multiple objects are retrieved.
+
+ The extent of this leak is that sorcery object types would be leaked.
+ These are allocated whenever an object type is registered with sorcery,
+ meaning that on module shutdown, these objects would be leaked. This
+ could be problematic if many reloads were performed, but it is not as
+ severe as if every sorcery object retrieved from realtime were being
+ leaked.
+
+ ASTERISK-25165 #close
+ Reported by Corey Farrell
+
+ Change-Id: I625c3b50eee4576670b7eeb013c81ad043b4b4f8
+
+2015-06-26 22:02 +0000 [a5e9c4e9b2] Matt Jordan <mjordan@digium.com>
+
+ * res/res_corosync: Always decline module load, instead of failing
+
+ Returns a 'failure' from the module load routine indicates to Asterisk
+ that it should abort loading completely. This is rarely - in fact,
+ really, never - a good option. Aborting load of Asterisk from a dynamic
+ module implies that the core, and the rest of the dynamic modules, don't
+ matter: we should abandon all processing.
+
+ res_corosync is really not that important.
+
+ This patch updates the module such that, if it fails to load, it
+ politely declines (emitting ERROR messages along the way), and allows
+ Asterisk to continue to function.
+
+ Note that this issue was keeping Asterisk unit tests from running on
+ certain build agents.
+
+ Change-Id: I252249e81fb9b1a68e0da873f54f47e21d648f0f
+
+2015-06-26 20:38 +0000 [399cd8bcd9] Matt Jordan <mjordan@digium.com>
+
+ * main/pbx: Resolve case sensitivity regression in PBX hints
+
+ When 8297136f was merged for ASTERISK-25040, a regression was introduced
+ surrounding the case sensitivity of device names within hints.
+ Previously, device names - such as 'sip/foo' - were compared in a case
+ insensitive fashion. Thus, 'sip/foo' was equivalent to 'SIP/foo'. After
+ that patch, only the case sensitive name would match, i.e., 'SIP/foo'.
+ As a result, some dialplan hints stopped working.
+
+ This patch re-introduces case insensitive matching for device names in
+ hints.
+
+ ASTERISK-25040
+
+ ASTERISK-25202 #close
+
+ Change-Id: If5046a7d14097e1e3c12b63092b9584bb1e9cb4c
+ (cherry picked from commit 96bbcf495a1da9e607d9b04a44b5c4f49e83cc03)
+
+2015-06-26 16:12 +0000 [24eec5a10b] Mark Michelson <mmichelson@digium.com>
+
+ * res_pjsip_nat: Adjust when contact should be rewritten.
+
+ A previous change made the contact only get rewritten if the dialog's
+ route set was not marked frozen. Unfortunately, while the intent of this
+ is correct, the dialog's route set actually gets marked as frozen
+ earlier than expected, especially for UAS dialogs.
+
+ Instead, the idea is that the contact needs to not be rewritten if there
+ is a pre-existing route set on the dialog. This is now accomplished by
+ checking the dialog's route set list instead of checking if the route
+ set is frozen.
+
+ Doing this causes some broken tests to begin passing again.
+
+ ASTERISK-25196
+ Reported by Mark Michelson
+
+ Change-Id: I525ab251fd40a52ede327a52a2810a56deb0529e
+
+2015-06-19 18:27 +0000 [0ec461a637] Richard Mudgett <rmudgett@digium.com>
+
+ * res_pjsip_outbound_registration.c: Add a serializer shutdown group.
+
+ The client_state objects contain a serializer used to send the outbound
+ REGISTER messages. Once all those message transactions are complete then
+ the module can shutdown.
+
+ ASTERISK-24907 #close
+ Reported by: Kevin Harwell
+
+ Change-Id: Ibb2fe558f98190f2a06da830e0fadfa25516f547
+
+2015-06-26 10:41 +0000 [05a2cc1293] Mark Michelson <mmichelson@digium.com>
+
+ * res_pjsip_refer: Prevent sending duplicate headers.
+
+ res_pjsip_refer will attempt to add Referred-By or Replaces headers to
+ outbound INVITEs at times. If the INVITE gets challenged for
+ authentication, then we will resend the INVITE. Prior to this patch, the
+ Referred-By or Replaces header would be re-added to the outbound INVITE,
+ resulting in duplicated headers.
+
+ ASTERISK-25204 #close
+ Reported by Mark Michelson
+
+ Change-Id: I59fb5c08b4d253c0dba9ee3d3950b5025358222d
+
+2015-06-23 17:43 +0000 [028fa54620] Mark Michelson <mmichelson@digium.com>
+
+ * res_pjsip_nat: Rewrite route set when required.
+
+ When performing some provider testing, the rewrite_contact option was
+ interfering with proper construction of a route set when sending an ACK
+ after receiving a 200 OK response to an INVITE.
+
+ The initial INVITE was sent to address sip:foo. The 200 OK had a Contact
+ header with URI sip:bar. In addition, the 200 OK had Record-Route
+ headers for sip:baz and sip:foo, in that order. Since the Record-Route
+ headers had the lr parameter, the result should have been:
+
+ * Set R-URI of the ACK to sip:bar.
+ * Add Route headers for sip:foo and sip:baz, in that order.
+
+ However, the rewrite_contact option resulted in our rewriting the
+ Contact header on the 200 OK to sip:foo. The result was:
+
+ * R-URI remained sip:foo.
+ * We added Route headers for sip:foo and sip:baz, in that order.
+
+ The result was that sip:bar was not indicated in the ACK at all, so the
+ far end never received our ACK. The call eventually dropped.
+
+ The intention of rewrite_contact is to rewrite the most immediate
+ destination of our SIP request to be the same address on which we
+ received a request or response. In the case of processing a SIP response
+ with Record-Route headers, this means that instead of rewriting the
+ Contact header, we should instead rewrite the bottom-most Record-Route
+ header. In the case of processing a SIP request with Record-Route
+ headers, this means we rewrite the top-most Record-route header.
+ Like when we rewrite the Contact header, we also ensure to update
+ the dialog's route set if it exists.
+
+ ASTERISK-25196 #close
+ Reported by Mark Michelson
+
+ Change-Id: I9702157c3603a2d0bd8a8215ac27564d366b666f
+2015-06-19 16:16 +0000 [84c12f9e0c] Richard Mudgett <rmudgett@digium.com>
+
+ * threadpool, res_pjsip: Add serializer group shutdown API calls.
+
+ A module trying to unload needs to wait for all serializers it creates and
+ uses to complete processing before unloading.
+
+ ASTERISK-24907
+ Reported by: Kevin Harwell
+
+ Change-Id: I8c80b90f2f82754e8dbb02ddf3c9121e5e966059
+
+2015-06-16 15:06 +0000 [602c4b74b5] Richard Mudgett <rmudgett@digium.com>
+
+ * res_pjsip_outbound_registration.c: Fix handle_client_state_destruction() refs
+
+ * handle_client_state_destruction() must always be passed a ref to
+ client_state because it will always unref client_state.
+ handle_registration_response() was not passing a client_state ref.
+
+ * Made the final un-REGISTER message get sent normally using the pjproject
+ register control structure in handle_client_state_destruction(). The
+ previous code attempted to short circuit the response handling for the
+ module to unload. That doesn't work for a couple reasons. One,
+ pjsip_regc_send() may call the registered callback before it returns and
+ unbalance the client_state ref count. Two, the registered callback
+ handles any authentication for the un-REGISTER message.
+
+ * Made the distinction between internal registration state and external
+ registration status with sip_outbound_registration_status_str(). This is
+ necessary to avoid altering documented AMI messages with internal
+ changes.
+
+ * Removed references to client_state->client outside of the serializer
+ thread. When handle_client_state_destruction() destroys the pjproject
+ register control structure that memory is freed and cannot be referenced
+ anymore. These accesses were to provide information for debug and
+ off-nominal warning messages.
+
+ * In sip_outbound_registration_timer_cb() you should not access entry->id
+ after unrefing client_state because the passed in entry is normally
+ pointing to the timer entry in the client_state object.
+
+ ASTERISK-24907
+ Reported by: Kevin Harwell
+
+ Change-Id: Ia7b446d8644b6b4550ef5bea49527671de65183f
+
+2015-06-15 15:28 +0000 [8c6a95a9ac] Richard Mudgett <rmudgett@digium.com>
+
+ * res_pjsip_outbound_registration.c: Use ast_sorcery_object_unregister() API
+
+ The sorcery pjsip 'registration' config object needs to be destroyed on
+ module unload. Otherwise, a reload of res_pjsip could try to use
+ callbacks for a previously unloaded instance of the module provided by
+ ast_sorcery_object_register() or one of the variants. Also, if
+ res_pjsip_outbound_registration were subsequently reloaded, the sorcery
+ config field objects would be registered in sorcery twice.
+
+ ASTERISK-24907
+ Reported by: Kevin Harwell
+
+ Change-Id: I304fad13dece2604af48353f6c6d9d5c7b064697
+
+2015-06-25 06:42 +0000 [e4a2ef9e4e] Joshua Colp <jcolp@digium.com>
+
+ * channel: Remove ignore of answer on non-outgoing channels.
+
+ Due to the way that channels can now be moved around inside of
+ Asterisk it is possible for the outgoing flag of a channel to get
+ cleared before it has been answered. This results in the bridge
+ not receiving notification that the outgoing leg has been answered.
+
+ This most easily exhibits itself with DTMF based blond transfers.
+ Since the answer of the outgoing leg is ignored the other party
+ continues to receive both a locally generated ringing and the
+ media stream of the outgoing leg upon its answer. This results
+ in no media being heard.
+
+ This change removes the ignore of the answer and allows it
+ to pass through.
+
+ ASTERISK-25171 #close
+
+ Change-Id: I82aedcec4f89f34a2e5472086dfc9a6c775bca8e
+
+2015-06-15 15:28 +0000 [20f3d77ab9] Richard Mudgett <rmudgett@digium.com>
+
+ * sorcery: Add ast_sorcery_object_unregister() API call.
+
+ Find and unlink the specified sorcery object type to complement
+ ast_sorcery_object_register(). Without this function you cannot
+ completely unload individual modules that use sorcery for configuration.
+
+ ASTERISK-24907
+ Reported by: Kevin Harwell
+
+ Change-Id: I1c04634fe9a90921bf676725c7d6bb2aeaab1c88
+
+2015-06-15 13:38 +0000 [4313f32969] Richard Mudgett <rmudgett@digium.com>
+
+ * res_pjsip_outbound_registration.c: Reorder load_module() and unload_module().
+
+ It is best if the loading code creates and initializes the module's
+ infrastructure before letting the system know of its existence. The
+ unloading code needs to reverse the actions of the loading code and in the
+ reverse order.
+
+ ASTERISK-24907
+ Reported by: Kevin Harwell
+
+ Change-Id: I5d151383e9787b5b60aa5e1627b10f040acdded4
+
+2015-06-23 14:34 +0000 [890c923786] Richard Mudgett <rmudgett@digium.com>
+
+ * AMI: Add Linkedid to the standard channel snapshot AMI event headers.
+
+ * The AMI version is bumped to 2.8.0.
+
+ ASTERISK-25189 #close
+ Reported by: John Hardin
+
+ Change-Id: I2b1778c3fdc1dca0ed55db4e3a639eddfb16c2ac
+
+2015-06-24 14:30 +0000 [2602a7484b] Richard Mudgett <rmudgett@digium.com>
+
+ * test.c: Add unit test registration checks for summary and description.
+
+ Added checks when a unit test is registered to see that the summary and
+ description strings do not end with a new-line '\n' for consistency.
+
+ The check generates a warning message and will cause the
+ /main/test/registrations unit test to fail.
+
+ * Updated struct ast_test_info member doxygen comments.
+
+ Change-Id: I295909b6bc013ed9b6882e85c05287082497534d
+
+2015-06-24 14:39 +0000 [2b0482d699] Richard Mudgett <rmudgett@digium.com>
+
+ * Unit tests: Fix unit test description strings.
+
+ Analyzing the code shows that the unit test summary and description
+ strings should not end with a new-line character. Where these strings are
+ used in the code a new-line is provided for output.
+
+ Change-Id: I129284f5e7ca93d82532334076da4c462d3d9fba
+
+2015-06-23 11:21 +0000 [e99e654d75] Joshua Colp <jcolp@digium.com>
+
+ * app_dial: Hold reference to calling channel formats when dialing outbound.
+
+ Currently when requesting a channel the native formats of the
+ calling channel are provided to the core for usage when dialing
+ the outbound channel. This occurs without holding the channel lock
+ or keeping a reference to the formats. This is problematic as
+ the channel driver may end up changing the formats during this time.
+ In the case of chan_sip this happens when an SDP negotiation
+ completes.
+
+ This change makes it so app_dial keeps a reference to the native
+ formats of the calling channel which guarantees that they will
+ remain valid for the period of time needed.
+
+ ASTERISK-25172 #close
+
+ Change-Id: I2f0a67bd0d5d14c3bdbaae552b4b1613a283f0db
+2015-06-17 05:04 +0000 [80e82dc97f] Joshua Colp <jcolp@digium.com>
+
+ * res_pjsip_mwi: Set up unsolicited MWI upon registration.
+
+ The res_pjsip_mwi previously required a reload to set up the proper
+ subscriptions to allow unsolicited MWI to work. This change
+ makes it so the act of registering will also cause this to occur.
+ This is particularly useful if realtime is involved as no reload
+ needs to occur within Asterisk to cause the MWI information
+ to get sent.
+
+ ASTERISK-25180 #close
+
+ Change-Id: Id847b47de4b8b3ab8858455ccc2f07b0f915f252
+
+2015-06-22 15:11 +0000 [35a99b6394] Kevin Harwell <kharwell@digium.com>
+
+ * bridge.c: Hangup attended transfer target if bridged
+
+ After completing an attended transfer the transfer target channel was not being
+ hung up after leaving the bridge. Added an explicit softhangup to hangup said
+ channel, but only if it was previously bridged.
+
+ ASTERISK-24782 #close
+ Reported by: John Bigelow
+
+ Change-Id: Idde9543d56842369384a5e8c00d72a22bbc39ada
+
+2015-06-17 16:23 +0000 [036bc0012f] Richard Mudgett <rmudgett@digium.com>
+
+ * res_pjsip_outbound_registration.c: Add missing line endings to CLI commands
+
+ Change-Id: I39ae612746d892d2dbe86f3ff2d7027fa1da57f7
+
+2015-06-12 14:29 +0000 [bec7435945] Richard Mudgett <rmudgett@digium.com>
+
+ * res_pjsip_outbound_registration.c: Eliminate simple RAII_VAR() usage.
+
+ Change-Id: I399cb9d61bbba706b48c98e0bf75e98984cd9a9e
+
+2015-06-12 13:33 +0000 [c2519fdf1c] Richard Mudgett <rmudgett@digium.com>
+
+ * res_pjsip_outbound_registration.c: Misc code cleanups.
+
+ * Break some long lines.
+
+ * Fix doxygen comment.
+
+ Change-Id: I8f12ba6822f84d5e7bb575280270cd7e2fefb305
+
+2015-06-22 09:26 +0000 [a419c69def] Alexander Traud (License 6520)
+
+ * chan_sip: Reload peer without its old capabilities.
+
+ On reload, previously allowed codecs were not removed. Therefore, it was not
+ possible to remove codecs while Asterisk was running. Furthermore, newly added
+ codecs got appended behind the previous codecs. Therefore, it was not possible
+ to add a codec with a priority of #1. This change removes the old capabilities
+ before the current ones are added.
+
+ ASTERISK-25182 #close
+ Reported by: Alexander Traud
+ patches:
+ asterisk_13_allow_codec_reload.patch uploaded by Alexander Traud (License 6520)
+
+ Change-Id: I62a06bcf15e08e8c54a35612195f97179ebe5802
+
+2015-06-20 19:38 +0000 [74616ae43d] Joshua Colp <jcolp@digium.com>
+
+ * chan_sip: Destroy peers without holding peers container lock.
+
+ Due to the use of stasis_unsubscribe_and_join in the peer destructor
+ it is possible for a deadlock to occur when an event callback is
+ occurring at the same time.
+
+ This happens because the peer may be destroyed while holding the
+ peers container lock. If this occurs the event callback will never
+ be able to acquire the container lock and the unsubscribe will
+ never complete.
+
+ This change makes it so the peers that have been removed from the
+ peers container are not destroyed with the container lock held.
+
+ ASTERISK-25163 #close
+
+ Change-Id: Ic6bf1d9da4310142a4d196c45ddefb99317d9a33
+
+2015-06-18 13:16 +0000 [9015bb4c8c] Mark Michelson <mmichelson@digium.com>
+
+ * Resolve race conditions involving Stasis bridges.
+
+ This resolves two observed race conditions.
+
+ First, a bit of background on what the Stasis application does:
+
+ 1a Creates a stasis_app_control structure. This structure is linked into
+ a global container and can be looked up using a channel's unique ID.
+ 2a Puts the channel in an event loop. The event loop can exit either
+ because the stasis_app_control structure has been marked done, or
+ because of some other factor, such as a hangup. In the event loop, the
+ stasis_app_control determines if any specific ARI commands need to be
+ run on the channel and will run them from this thread.
+ 3a Checks if the channel is bridged. If the channel is bridged, then
+ ast_bridge_depart() is called since channels that are added to Stasis
+ bridges are always imparted as departable.
+ 4a Unlink the stasis_app_control from the container.
+
+ When an ARI command is received by Asterisk, the following occurs
+ 1b A thread is spawned to handle the HTTP request
+ 2b The stasis_app_control(s) that corresponds to the channel(s) in the
+ request is/are retrieved. If the stasis_app_control cannot be
+ retrieved, then it is assumed that the channel in question has exited
+ the Stasis app or perhaps was never in Stasis in the first place.
+ 3b A command is queued onto the stasis_app_control, and the channel's
+ event loop thread is signaled to run the command.
+ 4b While most ARI commands do nothing further, some, such as adding or
+ removing channels from a bridge, will block until the command they
+ issued has been completed by the channel's event loop.
+
+ The first race condition that is solved by this patch involves a crash
+ that can occur due to faulty detection of the channel's bridged status
+ in step 3a. What can happen is that in step 2a, the event loop may run
+ the ast_bridge_impart() function to asynchronously place the channel
+ into a bridge, then immediately exit the event loop because the channel
+ has hung up. In step 3a, we would detect that the channel was not
+ bridged and would not call ast_bridge_depart(). The reason that the
+ channel did not appear to be bridged was that the depart_thread that is
+ spawned by ast_bridge_impart() had not yet started. That is the thread
+ where the channel is marked as being bridged. Since we did not call
+ ast_bridge_depart(), the Stasis application would exit, and then the
+ channel would be destroyed Then the depart_thread would start up and
+ try to manipulate the destroyed channel, causing a crash.
+
+ The fix for this is to switch from using ast_channel_is_bridged() to
+ checking the NULLity of ast_channel_internal_bridge_channel() to
+ determine if ast_bridge_depart() needs to be called. The channel's
+ internal bridge_channel is set when ast_bridge_impart() is called and
+ is NULLed by the call to ast_bridge_depart(). If the channel's internal
+ bridge_channel is non-NULL, then the channel must have been imparted
+ into the bridge and needs to be departed, even if the actual bridging
+ operation has not yet started. By departing the channel when necessary,
+ the thread that is running the Stasis application will block until the
+ bridge gives the okay that the depart_thread has exited.
+
+ The second race condition that is solved by this patch involves a leak
+ of HTTP handler threads. The problem was that step 2b would successfully
+ retrieve a stasis_app_control structure. Then step 2a would exit the
+ channel from the event loop due to a hangup. Steps 3a and 4a would
+ execute, and then finally steps 3b and 4b would. The problem is that at
+ step 4b, when attempting to add a channel to a bridge, the thread would
+ block forever since the channel would never execute the queued command
+ since it was finished with the event loop. This meant that the HTTP
+ handling thread would be leaked, along with any references that thread
+ may have owned (in my case, I was seeing bridges leaked).
+
+ The fix for this is to hone in better on when the channel has exited the
+ event loop. The stasis_app_control structure has an is_done field that
+ is now set at each point where the channel may exit the event loop. If
+ step 2b retrieves a valid stasis_app_control structure but the control
+ is marked as done, then the attempted operation exits immediately since
+ there will be nothing to service the attempted command.
+
+ ASTERISK-25091 #close
+ Reported by Ilya Trikoz
+
+ Change-Id: If66265b73b4c9f8f58599124d777fedc54576628
+2015-06-16 11:13 +0000 [723a9d4225] Mark Michelson <mmichelson@digium.com>
+
+ * Parking: Add documentation for AMI ParkedCallSwap event.
+
+ This event was added some time ago in order to clarify when a channel
+ took the place of another channel in a parking lot. However, there was
+ no XML documentation added for the event. This patch adds the XML
+ documentation.
+
+ ASTERISK-24900 #close
+ Reported by Rusty Newton
+
+ Change-Id: I4cfe7777c4b94bbff91c9221c6096a7a02a92eac
+2015-06-15 16:40 +0000 [79bf56c78a] Corey Farrell <git@cfware.com>
+
+ * func_pjsip_aor: Fix leaked contact from iterator.
+
+ ASTERISK-25162 #close
+
+ Change-Id: Id79aa3c6fe490016ee98efc97ac4c1d3f461f97e
+
+2015-06-12 16:58 +0000 [31c77b157b] Kevin Harwell <kharwell@digium.com>
+
+ * res_pjsip: Add option to force G.726 to be treated as AAL2 packed.
+
+ Some phones send g.726 audio packed for AAL2, which differs from what is
+ recommended by RFC 3351. If Asterisk receives audio formatted as such when
+ negotiating g.726 then it sounds a bit distorted. Added an option to
+ res_pjsip_endpoint that allows g.726 negotiated audio to be treated as g.726
+ AAL2 packed.
+
+ ASTERISK-25158 #close
+ Reported by: Steve Pitts
+
+ Change-Id: Ie7e21f75493d7fe53e75e12c971e72f5afa33615
+
+2015-06-14 19:48 +0000 [de8c7f46ed] Matt Jordan <mjordan@digium.com>
+
+ * main/cdr: Carry over the disable flag when 'disable all' is specified
+
+ The CDR_PROP function (as well as the NoCDR application) set the
+ 'disable all' flag (AST_CDR_FLAG_DISABLE_ALL) on the current CDR. This
+ flag is supposed to be applied to all CDRs that are currently in the
+ chain, as well as all CDRs that may be created in the future. Currently,
+ however, the flag is only applied to the existing CDRs in the chain; new
+ CDRs do not receive the 'disable all' flag. In particular, this affects
+ parallel dials, which generate new CDRs for each pair of channels in
+ the dial attempt.
+
+ This patch carries over the 'disable all' flag when it is specified on a
+ CDR and a new CDR is generated for the chain.
+
+ ASTERISK-24344 #close
+
+ Change-Id: I91a0f0031e4d147bdf8a68ecd08304d506fb6a0e
+2015-06-12 14:28 +0000 [78ea356e78] Matt Jordan <mjordan@digium.com>
+
+ * main/cdr: Copy context/exten on chained CDRs for parallel dials in subroutines
+
+ When a parallel dial occurs, a new CDR will be created for each dial
+ attempt that is made. In most circumstances, the act of creating each
+ CDR in the chain will include a step that updates the Party A snapshot,
+ which causes the context/extension of the Party A to be copied onto the
+ CDR object.
+
+ However, when the Party A is in a subroutine, we explicitly do *not*
+ copy the context/extension onto the CDR. This prevents the Macro or
+ GoSub routine name from blowing away the context/extension that the
+ channel was originally executing in. For the original CDR, this is not a
+ problem: the original CDR already recorded the last known 'good' state
+ of the channel just prior to it going into the subroutine. However, for
+ newly generated CDRs in a chain, there is no context/extension set on
+ them. Since we are in a subroutine, we will never set the Party A's
+ context/extension on the CDR, and we end up with a CDR with no
+ destination recorded on it.
+
+ This patch updates the creation of a chained CDR such that it copies
+ over the original CDR's context/extension. This is the last known "good"
+ state of the CDR, and is a reasonable starting point for the newly
+ generated CDR. In the case where we are not in a subroutine, subsequent
+ code will update the location of the CDR from the Party A information;
+ in the case where we are in a subroutine, the context/extension on the
+ original CDR is the correct information.
+
+ ASTERISK-24443 #close
+
+ Change-Id: I6a3ef0d6e458d3b9b30572feaec70f2964f3bc2a
+
+2015-06-11 08:18 +0000 [3f57f3f8ec] Damian Ivereigh <damo@launtel.net.au>
+
+ * chan_sip.c: Update dialog fromtag after request with auth
+
+ If a client sends and INVITE which is 401 rejected, then subsequently
+ sends a new INVITE with the auth info and uses a different fromtag
+ from the first INVITE, Asterisk will accept the new INVITE as part of
+ the original dialog - match_req_to_dialog() specifically ignores the
+ fromtag. However it does not update the stored dialog with the new
+ fromtag.
+
+ This results in Asterisk being unable to match future packets that are
+ part of this dialog (such as the ACK to the OK or the OK to the BYE),
+ and the call is dropped.
+
+ This problem was originally found when using an NEC-i SV8100-GE (NEC SIP
+ Card).
+
+ * After a successful match of a packet to the dialog, if the packet is
+ not a SIP_RESPONSE, authentication is present and the fromtags are
+ different, the stored fromtag is updated with the one from the recent
+ INVITE.
+
+ ASTERISK-25154 #close
+ Reported by: Damian Ivereigh
+ Tested by: Damian Ivereigh
+
+ Change-Id: I5c16cf3b409e5ef9f2b2fe974b6bd2a45a6aa17e
+
+2015-06-11 18:52 +0000 [30a0f2d9ac] Matt Jordan <mjordan@digium.com>
+
+ * chan_pjsip: Set the context and extension on the channel when created
+
+ Prior to this patch, chan_pjsip was failing to pass the endpoint's
+ context and the desired extension to the ast_channel_alloc_* routine.
+ This caused a new channel snapshot to be issued without a context and
+ extension, which can cause some reporting issues for users of AMI, CEL,
+ and other APIs. The channel driver would later set the context and
+ extension on the channel such that the channel would start in the
+ correct location in the dialplan, but the information reported in the
+ initial event would be incorrect.
+
+ This patch modifies the channel driver such that it now passes the
+ context and extension directly into the allocation routine. This
+ provides the information in the new channel snapshot published over
+ Stasis.
+
+ ASTERISK-25156 #close
+ Reported by: cloos
+
+ Change-Id: Ic6f8542836e596db8f662071d118e8f934fdf25e
+
+2015-06-10 18:28 +0000 [dbb067279e] Joshua Colp <jcolp@digium.com>
+
+ * bridge: When performing a blonde transfer update connected line information.
+
+ When performing a blonde transfer the code uses the old masquerade
+ mechanism to move a channel around. As a result of this certain information,
+ such as connected line, is moved between the channels involved. Upon
+ completion of the move a frame is queued which is supposed to update the
+ connected line information on the channel. This does not occur as the
+ code considers it a redundant update since the masquerade operation
+ updated the channel (but did not inform it of the new connected line
+ information). The code also does not queue a connected line update
+ to be handled by the thread handling the channel. Without this any
+ other channel that may be loosely involved does not know it is
+ talking to a different caller.
+
+ This change does the following to resolve this:
+
+ 1. The indicated connected line information is cleared upon
+ completion of the masquerade operation when doing a blonde transfer.
+ This prevents the connected line update from being considered
+ redundant.
+
+ 2. A connected line update frame is now queued upon the completion
+ of the masquerade operation so any other channel loosely involved
+ knows that there is a different caller.
+
+ ASTERISK-25157 #close
+ Reported by: Joshua Colp
+
+ Change-Id: Ibb8798184a1dab3ecd35299faecc420034adbf20
+
+2015-06-11 14:39 +0000 [a2f4d03c87] Richard Mudgett <rmudgett@digium.com>
+
+ * app_directory: Fix crash when using the alias option 'a'.
+
+ The voicemail.conf mailbox key/value pair is defined as:
+ <mailbox>=[<password>[,<full-name>[,<email>[,<pager>[,<options>]]]]]
+ Where all fields in the value including the field values are optional.
+
+ Since the parsing code for the mailbox key/value pair is sloppy, this
+ patch tightens the parsing for the directory information.
+
+ * Renamed the 'pos' and 'bufptr' variables to 'name' and 'options'
+ respectively in search_directory_sub(). Those names make more sense.
+
+ * Made sure that search_directory_sub() is dealing with the voicemail.conf
+ mailbox options field if it even exists when looking for the 'hidefromdir'
+ and 'alias' options.
+
+ * Fix crash if a voicemail.conf mailbox is just
+ <mailbox>=<password>,<name> when the 'a' option is used. If there were no
+ fields after the name then the 'options' pointer was not checked for NULL.
+
+ * Fix users.conf alias processing if the 'a' option is used. The wrong
+ variable was used.
+
+ ASTERISK-25087 #close
+ Reported by: Chet Stevens
+
+ Change-Id: I86052ea77307beddddba5279824d39dc0d593374
+
+2015-06-09 15:31 +0000 [a2b718f4f6] Richard Mudgett <rmudgett@digium.com>
+
+ * res_pjsip.h: Fix some doxygen comments.
+
+ Change-Id: I4615771077c3c6a0a7273da6d7b5f77af7e8d976
+
+2015-06-05 13:46 +0000 [32ddf6d86b] Richard Mudgett <rmudgett@digium.com>
+
+ * taskprocessor.c: Remove extra unref from off-nominal path.
+
+ Change-Id: Iee3bd8c8a528776056972066698fe735f0f6cf60
+
+2015-04-20 16:00 +0000 [cf98c744d5] Yousf Ateya <y.ateya@starkbits.com>
+
+ * chan_iax2: Prevent deadlock between hangup and sending lagrq/ping
+
+ channels/chan_iax.c: Prevent the deadlock between iax2_hangup and send_lagrq/
+ send_ping. This deadlock happens because the scheduled task send_lagrq(or
+ send_ping) starts execution after the call hangup procedure starts but before
+ it deletes the tasks in the scheduler.
+
+ The solution is to delete scheduled lagrq (and ping) task asynchronously
+ (i.e. schedule AST_SCHED_DEL for these tasks); By this, AST_SCHED_DEL will
+ be called in a new context (doesn't have callno locked).
+
+ This commit also cleans up the procedure of sending LAGRQ and PING.
+
+ main/sched.c: Do not assert when deleting non existant entry from scheduler.
+ This assert seems to be the reason for a lot of awkward code to avoid it.
+
+ ASTERISK-24983 #close
+ Reported by: Y Ateya
+
+ Change-Id: I03bec1fc8faacb89630269e935fa667c6d6c080c
+
+2015-05-31 12:37 +0000 [8af6c9cf6b] Ivan Poddubny <ivan.poddubny@gmail.com>
+
+ * res_pjsip_transport_websocket: Fix use-after-free bugs.
+
+ This patch fixes use-after-free bugs caught by AddressSanitizer.
+
+ 1. PJSIP transport manager may decide to destroy transport on its own.
+ For example, when the contact registered via websocket has not renewed
+ its registration in time. The transport was destoyed, but the websocket
+ listener thread was still active until the socket closes, and then tried
+ to call transport_shutdown on transport that has been freed.
+
+ Also, the transport destructor accessed wstransport->rdata.tp_info.pool
+ right after freeing memory that contained wstransport itself.
+
+ This patch converts transport to an ao2 object, allowing it to be
+ refcounted, so that it is available until both websocket listener and
+ pjsip transport manager are finished with it.
+
+ 2. The websocket listener deletes the last reference on websocket session
+ when the tcp connection is closed, and it gets destroyed, but
+ the transport manager may still use it, for example when disconnect
+ happens in the middle of a SIP transaction.
+
+ A new reference to websocket session has been added that is released
+ with the transport to prevent this.
+
+ ASTERISK-25096 #close
+ Reported by: Josh Kitchens
+
+ ASTERISK-24963 #close
+ Reported by: Badalian Vyacheslav
+
+ Change-Id: Idc0b63eb6e459c1ddfb2430127d34b3c4d8d373b
+
+2015-06-09 13:41 +0000 [3046bc17ed] ibercom <ibercom123@gmail.com>
+
+ * weakref attribute detection broken with gcc 4.6 and higher
+
+ GCC 4.7 Manual:
+ http://gcc.gnu.org/onlinedocs/gcc-4.7.4/gcc/Function-Attributes.html
+
+ weakref ("target")
+
+ A weak reference is an alias that does not by itself require a definition
+ to be given for the target symbol.
+
+ ASTERISK-22559 #close
+ Reported by: Ibercom
+
+ Change-Id: I36a136cae947b65187a697533416f9ff9a0b8cdf
+
+2015-06-08 10:09 +0000 [55c8daf88b] Corey Farrell <git@cfware.com>
+
+ * Fix unsafe uses of ast_context pointers.
+
+ Although ast_context_find, ast_context_find_or_create and
+ ast_context_destroy perform locking of the contexts table,
+ any context pointer can become invalid at any time that the
+ contexts table is unlocked. This change adds locking around
+ all complete operations involving these functions.
+
+ Places where ast_context_find was followed by ast_context_destroy
+ have been replaced with calls ast_context_destroy_by_name.
+
+ ASTERISK-25094 #close
+ Reported by: Corey Farrell
+
+ Change-Id: I1866b6787730c9c4f3f836b6133ffe9c820734fa
+
+2015-06-04 07:14 +0000 [e0090216db] ibercom <ibercom123@gmail.com>
+
+ * CLI: Cosmetic issue - core show uptime
+
+ Show uptime information ends with an unnecessary space.
+
+ Now NEEDCOMMA is better defined.
+
+ Change-Id: I11b360504a0703309ff51772ff8f672287f3c5a1
+
+2015-06-03 17:41 +0000 [88212ccb7f] Mark Michelson <mmichelson@digium.com>
+
+ * res_pjsip: Prevent access of NULL channels.
+
+ It is possible to receive incoming requests or responses after the channel
+ on an ast_sip_session has been destroyed and NULLed out. Handlers of these
+ sorts of requests or responses need to be prepared for the possibility
+ that the channel is NULL or else they could cause a crash.
+
+ While several places have been amended to deal with NULL channels, there
+ were still a couple of places that needed updating.
+
+ res_pjsip_dtmf_info.c: When handling incoming INFO requests, we need to
+ return early if there is no channel on the session.
+
+ res_pjsip_session.c: When handling a 302 response, we need to stop the
+ redirecting attempt if there is no channel on the session.
+
+ ASTERISK-25148 #close
+ reported by Mark Michelson
+
+ Change-Id: Id1a75ffc3d0eaa168b0b28188fb54d6cf9fc47a9
+
+2015-06-01 11:45 +0000 [f5d5aa67dc] Kevin Harwell <kharwell@digium.com>
+
+ * AMI: Escape string values.
+
+ So this issue is a bit complicated. Since it is possible to pass values to AMI
+ that contain a '\r\n' (or other similar sequences) these values need to be
+ escaped. One way to solve this is to escape the values and then pass the escaped
+ values to the AMI variable parameter string building function. However, this
+ puts the onus on the pre-build function to escape all string values. This
+ potentially requires a fair amount of changes along with a lot of string
+ allocations/freeing for all values.
+
+ Surely there is a way to push this complexity down a level into the string
+ building function itself? This of course is possible, but ends up requiring a
+ way to distinguish between strings that need to be escaped and those that don't.
+ The best way to handle this is by introducing a new format specifier in the
+ format string. For instance a %s (no escape) and %S (escape). However, that is
+ a bit weird and unexpected.
+
+ So faced with those possibilities this patch implements a limited version of the
+ first option. Instead of attempting to escape all string values this patch only
+ escapes those values that make sense. This approach limits the number of changes
+ and doesn't suffer from the odd format specifier problem.
+
+ ASTERISK-24934 #close
+ Reported by: warren smith
+
+ Change-Id: Ib55a5b84fe0481b0f2caaaab68c566f392c0aac0
+
+2015-06-03 13:17 +0000 [5dc9fb4198] gtjoseph <george.joseph@fairview5.com>
+
+ * res_pjsip/location: Fix ref leak in contact_apply_handler
+
+ contact_apply_handler calls ast_res_pjsip_find_or_create_contact_status
+ to force the creation of a contact_status object whenever a new
+ contact is added but it didn't unref the returned object.
+
+ Added an ao2_cleanup(status) to plug the leak.
+
+ ASTERISK-25141
+
+ Change-Id: Icc1401cae142855a1abc86ab5179dfb3ee861c40
+ Reported-by: Corey Farrell
+
+2015-06-02 15:07 +0000 [d908272b7e] David M. Lee <dlee@respoke.io>
+
+ * Fixes for OS X
+
+ * Add some type casting so tv_usec can really be a long, instead of
+ some strange platform specific type.
+
+ * Add some .dylib style files to .gitignore.
+
+ * Switch from using -Xlinker to -Wl,. For [reasons unknown][], newer
+ versions of GCC, when compiling the Homebrew formula for Asterisk,
+ are not properly passing the -Xlinker options to the linker. Given
+ that -Wl, does exactly the [same thing][], and does it properly, this
+ patch changes the -Xlinker options to use -Wl, instead.
+
+ [reasons unknown]: http://bit.ly/1SUbEYx
+ [same thing]: https://gcc.gnu.org/onlinedocs/gcc/Link-Options.html
+
+ Change-Id: Id5e6b3c6cc86282ea5fca630dc3991137c5bf4dd
+
+2015-05-30 20:22 +0000 [9e7827e3ac] Corey Farrell <git@cfware.com>
+
+ * pjsip_configuration: Fix leak in persistent_endpoint_update_state.
+
+ The loop to find the first available contact of an endpoint grabbed
+ contact from the iterator, then checked for offline state. This
+ caused the first contact after the state was found to leak a reference.
+
+ ASTERISK-25141
+
+ Change-Id: Id0f1d87410fc63742db0594eb4b18b36e99aec08
+2015-05-31 11:33 +0000 [888bb49618] Ivan Poddubny <ivan.poddubny@gmail.com>
+
+ * Fix buffer overflow in slin sample frames generation.
+
+ The length of frames retured by sample functions was twice as large as
+ real, what caused global buffer overflow caught by AddressSanitizer.
+
+ ASTERISK-24717 #close
+ Reported by: Badalian Vyacheslav
+
+ Change-Id: Iec2fe682aef13e556684912f906bedf7c18229c6
+
+2015-05-29 16:19 +0000 [857166b5e5] gtjoseph <george.joseph@fairview5.com>
+
+ * res_pjsip/location: Fix memory leak in permanent_uri_handler
+
+ When permanent_uri_handler was creating the contact status
+ object for each contact, it wasn't unreffing it at the
+ end of the loop.
+
+ ASTERISK-25141 #close
+ Reported-by: Corey Farrell
+
+ Change-Id: I7bb127994677bb3d459f87952f8425c9b9967b12
+
+2015-05-29 14:52 +0000 [1558a89129] gtjoseph <george.joseph@fairview5.com>
+
+ * Revert "endpoint/stasis: Eliminate duplicate events on endpoint status change"
+
+ This reverts commit 35c699086ae2fd81b2473307ccb2ae79ad32375a.
+
+ Change-Id: Ia98c2b4820cf579a5b9bb75e9e05d7a233205fb7
+
+2015-05-27 13:22 +0000 [35c699086a] gtjoseph <george.joseph@fairview5.com>
+
+ * endpoint/stasis: Eliminate duplicate events on endpoint status change
+
+ When an endpoint was created, it's messages were being forwarded to
+ both the tech endpoint topic and the all endpoints topic. Since
+ the tech topic was also forwarded to all, this was resulting in
+ duplicate messages whenever an endpoint published. This patch
+ causes the endpoint to only forward to the tech topic and lets
+ the tech topic forward to all.
+
+ To accomplish this, the existing stasis_cp_single_create function
+ (which both creates and forwards) was cloned and split into 2
+ functions, one that creates the topic and one that sets up the
+ forwarding. This allows endpoint_internal_create to create
+ the topic from the endpoint_all cache without forwarding it there,
+ then allows it to do the forward to the tech's topic.
+
+ ASTERISK-25137 #close
+ Reported-by: Vitezslav Novy
+ ASTERISK-25116 #close
+ Reported-by: George Joseph <george.joseph@fairview5.com>
+ Tested-by: George Joseph <george.joseph@fairview5.com>
+
+ Change-Id: I26d7d4926a0861748fd3bdffe316b75b549a801c
+
+2015-05-26 13:56 +0000 [fe21f2e52f] Richard Mudgett <rmudgett@digium.com>
+
+ * res_pjsip_session: Fix in-dialog authentication.
+
+ When the remote peer requires authentication for in-dialog requests then
+ re-INVITEs to the peer cause the call to be disconnected and other
+ in-dialog requests to the peer like MESSAGE just don't go through.
+
+ * Made session_inv_on_tsx_state_changed() handle in-dialog authentication
+ for re-INVITEs and other methods. Initial INVITEs cannot be handled here
+ because the INVITE transaction must be restarted earlier.
+
+ * Pulled needed code from res/res_pjsip/pjsip_outbound_auth.c in
+ preparation for removing the file. The generic outbound authentication
+ code did not work as well as anticipated.
+
+ * Created outbound_invite_auth() to only handle initial outbound INVITEs.
+ Re-INVITEs cannot be handled here. The re-INVITE transaction is still in
+ progress and the PJSIP library cannot handle the overlapping INVITE
+ transactions. Other method types should not be handled here as this code
+ only works on outgoing calls and we need to handle incoming and outgoing
+ calls.
+
+ ASTERISK-25131 #close
+ Reported by: Richard Mudgett
+
+ Change-Id: I12bdd7ddccc819b4ce4b091e826d1e26334601b0
+
+2015-05-21 17:21 +0000 [262d590819] gtjoseph <george.joseph@fairview5.com>
+
+ * res_pjsip: Add AMI events for chan_pjsip contact lifecycle changes
+
+ Add a new ContactStatus AMI event.
+ Publish the following status/state changes:
+ Created
+ Removed
+ Reachable
+ Unreachable
+ Unknown
+
+ Contact URI, new status/state, aor and endpoint names, and the
+ last qualify rtt result are included in the event.
+
+ ASTERISK-25114 #close
+
+ Change-Id: Id25aae5f7122facba183273efb3e8f36c20fb61e
+ Reported-by: George Joseph <george.joseph@fairview5.com>
+ Tested-by: George Joseph <george.joseph@fairview5.com>
+
+2015-05-26 07:44 +0000 [5a42397018] Joshua Colp <jcolp@digium.com>
+
+ * sorcery: Fix cache creation callback.
+
+ The cache creation callback function expects to receive a sorcery_details
+ structure and not just a standalone object.
+
+ Change-Id: I3e4a5a137cb25292eb52d7a14cbb6daa09213450
+
+2015-05-24 13:47 +0000 [97a6ce1717] Ivan Poddubny <ivan.poddubny@gmail.com>
+
+ * Astobj2: Correctly treat hash_fn returning INT_MIN
+
+ The code in astobj2_hash.c wrongly assumed that abs(int) is always > 0.
+ However, abs(INT_MIN) = INT_MIN and is still negative, as well as
+ abs(INT_MIN) % num_buckets, and as a result this led to a crash.
+
+ One way to trigger the bug is using host=::80 or 0.0.0.128 in peer
+ configuration section in chan_sip or chan_iax.
+
+ This patch takes the remainder before applying abs, so that bucket
+ number is always in range.
+
+ ASTERISK-25100 #close
+ Reported by: Mark Petersen
+
+ Change-Id: Id6981400ad526f47e10bcf7b847b62bd2785e899
+2015-05-23 04:36 +0000 [554bd1e39c] Ivan Poddubny <ivan.poddubny@gmail.com>
+
+ * res_pjsip_transport_websocket: Fix crash on receiving large SIP packets
+
+ Incoming SIP packets larger than PJSIP_MAX_PKT_LEN were themselves
+ truncated before passing to pjsip_tpmgr_receive_packet, but the length
+ was passed unaltered, thus causing memory corruption and segfault.
+
+ ASTERISK-25122 #close
+
+ Change-Id: I608a6b6b7f229eacc33a0a7d771d18e27e5b08ab
+
+2015-05-22 21:50 +0000 [0d266cbe02] Corey Farrell <git@cfware.com>
+
+ * Stasis: Fix unsafe use of stasis_unsubscribe in modules.
+
+ Many uses of stasis_unsubscribe in modules can be reached through unload.
+ These have been switched to stasis_unsubscribe_and_join.
+
+ Some subscription callbacks do nothing, for these I've created a noop
+ callback function in stasis.c. This is used by some modules that monitor
+ MWI topics in order to enable cache, since the callback does not become
+ invalid after dlclose it is safe to use stasis_unsubscribe on these, even
+ during module unload.
+
+ ASTERISK-25121 #close
+
+ Change-Id: Ifc2549fbd8eef7d703c222978e8f452e2972189c
+
+2015-05-22 12:22 +0000 [51ffed5e61] Matt Jordan <mjordan@digium.com>
+
+ * res/res_pjsip_pubsub: Note that 'dialog' is also a valid event type for RLS
+
+ In addition to specifying lists of 'presence' and 'message-summary',
+ users can also create lists of type 'dialog'. These should be treated in
+ the same fashion as 'presence'.
+
+ Change-Id: I583bb69cd9f88b0b29bf09ddaddeac4e84189f6e
+
+2015-05-22 12:18 +0000 [7950b65e4f] Matt Jordan <mjordan@digium.com>
+
+ * res/res_pjsip_exten_state: Fix confusing NOTICE message
+
+ When a SUBSCRIBE request is made to a dialplan hint that doesn't exist,
+ the current NOTICE message informing users of this swaps the context and
+ extension parameters. This can cause a bit of confusion.
+
+ Thanks to CptBurger in #asterisk for helping to point this out.
+
+ Change-Id: Ie584d1a58ae217385c87a450ca25b55ca0e36e43
+
+2015-05-17 20:36 +0000 [5ac65ddfb4] Matt Jordan <mjordan@digium.com>
+
+ * res/ari: Register Stasis application on WebSocket attempt
+
+ Prior to this patch, when a WebSocket connection is made, ARI would not
+ be informed of the connection until after the WebSocket layer had
+ accepted the connection. This created a brief race condition where the
+ ARI client would be notified that it was connected, a channel would be
+ sent into the Stasis dialplan application, but ARI would not yet have
+ registered the Stasis application presented in the HTTP request that
+ established the WebSocket.
+
+ This patch resolves this issue by doing the following:
+ * When a WebSocket attempt is made, a callback is made into the ARI
+ application layer, which verifies and registers the apps presented in
+ the HTTP request. Because we do not yet have a WebSocket, we cannot
+ have an event session for the corresponding applications. Some
+ defensive checks were thus added to make the application objects
+ tolerant to a NULL event session.
+ * When a WebSocket connection is made, the registered application is
+ updated with the newly created event session that wraps the WebSocket
+ connection.
+
+ ASTERISK-24988 #close
+ Reported by: Joshua Colp
+
+ Change-Id: Ia5dc60dc2b6bee76cd5aff0f69dd53b36e83f636
+
+2015-05-20 11:11 +0000 [60e2fbfe62] gtjoseph <george.joseph@fairview5.com>
+
+ * res_pjsip: Refactor endpt_send_transaction (qualify_timeout)
+
+ This patch refactors the transaction timeout processing to eliminate
+ calling the lower level public pjsip functions and reverts to calling
+ pjsip_endpt_send_request again. This is the result of me noticing
+ a possible incompatibility with pjproject-2.4 which was causing
+ contact status flapping.
+
+ The original version of this feature used the lower level calls to
+ get access to the tsx structure in order to cancel the transaction
+ when our own timer expires. Since we no longer have that access,
+ if our own timer expires before the pjsip timer, we call the callbacks
+ and just let the pjsip transaction take it's own course. When the
+ transaction ends, it discovers the callbacks have already been run
+ and just cleans itself up.
+
+ A few messages in pjsip_configuration were also added/cleaned up.
+
+ ASTERISK-25105 #close
+
+ Change-Id: I0810f3999cf63f3a72607bbecac36af0a957f33e
+ Reported-by: George Joseph <george.joseph@fairview5.com>
+ Tested-by: George Joseph <george.joseph@fairview5.com>
+2015-05-20 00:45 +0000 [42476e6633] demon-ru <serov.d.p@gmail.com>
+
+ * res_pjsip_outbound_registration: Check request URI for line.
+
+ When an inbound call is received the To header is checked
+ for the "line" option. Some remote servers will place this
+ in the request URI instead. This adds an additional check for
+ the option in the request URI.
+
+ ASTERISK-25072 #close
+ Reported by: Dmitriy Serov
+
+ Change-Id: Id4e44debbb80baad623b914a88574371575353c8
+
+2015-05-21 17:51 +0000 [e7edb59db6] Corey Farrell <git@cfware.com>
+
+ * res_mwi_external_ami: Use module version of AMI registration.
+
+ Use ast_manager_register_xml for res_mwi_external_ami manager
+ actions. This ensures the module is held open while any of
+ the actions are being run.
+
+ ASTERISK-25117 #close
+ Reported by: Corey Farrell
+
+ Change-Id: Iececfdc2da498b2c32b9e09042f5f12292007ac7
+2015-05-21 19:59 +0000 Asterisk Development Team <asteriskteam@digium.com>
+
+ * asterisk 13.4.0-rc1 Released.
+
+2015-05-21 14:56 +0000 [3fb2b375fe] Matt Jordan <mjordan@digium.com>
+
+ * Release summaries: Remove previous versions
+
+2015-05-21 14:56 +0000 [9d9ae03842] Matt Jordan <mjordan@digium.com>
+
+ * .version: Update for 13.4.0-rc1
+
+2015-05-21 14:56 +0000 [53a39083e5] Matt Jordan <mjordan@digium.com>
+
+ * .lastclean: Update for 13.4.0-rc1
+
+2015-05-21 14:56 +0000 [7af8ef9346] Matt Jordan <mjordan@digium.com>
+
+ * realtime: Add database scripts for 13.4.0-rc1
+
+2015-05-21 14:52 +0000 [20982c68d4] Matt Jordan <mjordan@digium.com>
+
+ * Release summaries: Correct summaries for 13.4.0-rc1
+
+2015-05-21 13:17 +0000 [1bb62b037f] mjordan <mjordan@lunkwill>
+
+ * ChangeLog: Updated for 13.4.0-rc1
+
+2015-05-21 13:17 +0000 [1e98a36699] mjordan <mjordan@lunkwill>
+
+ * Release summaries: Add summaries for 13.4.0-rc1
+
+2015-05-21 13:15 +0000 [5c12e5ba72] mjordan <mjordan@lunkwill>
+
+ * .version: Update for 13.4.0-rc1
+
+2015-05-21 13:15 +0000 [69292a9f11] mjordan <mjordan@lunkwill>
+
+ * .lastclean: Update for 13.4.0-rc1
+
+2015-05-21 13:15 +0000 [628680803a] mjordan <mjordan@lunkwill>
+
+ * realtime: Add database scripts for 13.4.0-rc1
+
+2015-05-21 13:05 +0000 [9d8a462356] Matt Jordan <mjordan@digium.com>
+
+ * ARI: Update version to 1.7.0
+
+ This patch updates the version of ARI to 1.7.0 to reflect the backwards
+ compatible changes that will be introduced in 13.4.0.
+
+ Change-Id: I6c36e6144da426412f25828a868e4df916bff60a
+
+2015-05-21 07:22 +0000 [620054c527] Matt Jordan <mjordan@digium.com>
+
+ * Merge "audiohook.c: Difference in read/write rates caused continuous buffer resets" into 13
+2015-05-21 07:21 +0000 [f5e195b44e] Matt Jordan <mjordan@digium.com>
+
+ * Merge "Logger: Reset defaults before processing config." into 13
+2015-05-21 07:20 +0000 [e8a4e01c32] Matt Jordan <mjordan@digium.com>
+
+ * Merge "res/res_http_websocket: Add a pre-session established callback" into 13
+2015-05-21 05:15 +0000 [3c98544543] Joshua Colp <jcolp@digium.com>
+
+ * Merge "main/sdp_srtp.c: allow SDP crypto tag to be up to 9 digits" into 13
+2015-05-20 20:53 +0000 [9b6e228419] Corey Farrell <git@cfware.com>
+
+ * Logger: Reset defaults before processing config.
+
+ Reset options to default values before reloading config. This ensures
+ that if a setting is removed or commented out of the configuration file
+ it is unset on reload.
+
+ ASTERISK-25112 #close
+ Reported by: Corey Farrell
+
+ Change-Id: Id24bb1fb0885c2c14cf8bd6f69a0c2ee7cd6c5bd
+
+2015-05-20 19:05 +0000 [7fcf0a97b8] George Joseph <george.joseph@fairview5.com>
+
+ * app_playback: Suppress warnings on playback if channel hung up
+
+ If a channel hangs up while an audio file is playing, there's
+ no need to clutter up the logs with a warning so suppress it
+ if ast_check_hangup returns true.
+
+ Also, change warning to debug/2 in file.c if writing a frame
+ fails. Same reasoning.
+
+ Change-Id: I2e66191af3c5b6e951c98e8f1c3fe3cf2cf7ed89
+ Reported-by: George Joseph <george.joseph@fairview5.com>
+ Tested-by: George Joseph <george.joseph@fairview5.com>
+
+2015-05-14 15:21 +0000 [b1e8c0b9eb] Kevin Harwell <kharwell@digium.com>
+
+ * audiohook.c: Difference in read/write rates caused continuous buffer resets
+
+ Currently, everytime a sample rate change occurs (on read or write) the
+ associated factory buffers are reset. If the requested sample rate on a
+ read differed from that of a write then the buffers are continually reset
+ on every read and write. This has the side effect of emptying the buffer,
+ thus there being no data to read and then write to a file in the case of
+ call recording.
+
+ This patch fixes it so that an audiohook_list's rate always maintains the
+ maximum sample rate among hooks and formats. Audiohook sample rates are
+ only overwritten by this value when slin native compatibility is turned on.
+ Also, the audiohook sample rate can only overwrite the list's sample rate
+ when its rate is greater than that of the list or if compatibility is
+ turned off. This keeps the rate from constantly switching/resetting.
+
+ ASTERISK-24944 #close
+ Reported by: Ronald Raikes
+
+ Change-Id: Idab4dfef068a7922c09cc631dda27bc920a6c76f
+
+2015-05-20 15:22 +0000 [4a450f863b] Matt Jordan <mjordan@digium.com>
+
+ * Merge "Fix potential crash after unload of func_periodic_hook or test_message." into 13
+2015-05-19 13:01 +0000 [17d6ede337] Corey Edwards <tensai@zmonkey.org>
+
+ * main/sdp_srtp.c: allow SDP crypto tag to be up to 9 digits
+
+ ASTERISK-24887 #close
+ Reported by: Makoto Dei
+ Tested by: tensai
+
+ Change-Id: I6a96f572adb17f76b3acafe503a01c48eb5dd9bf
+
+2015-05-13 09:55 +0000 [31cc24aad6] Matt Jordan <mjordan@digium.com>
+
+ * res/res_http_websocket: Add a pre-session established callback
+
+ This patch updates http_websocket and its corresponding implementation
+ with a pre-session established callback. This callback allows for
+ WebSocket server consumers to be notified when a WebSocket connection is
+ attempted, but before we accept it. Consumers can choose to reject the
+ connection, if their application specific logic allows for it.
+
+ As a result, this patch pulls out the previously private
+ websocket_protocol struct and makes it public, as
+ ast_websocket_protocol. In order to preserve backwards compatibility
+ with existing modules, the existing APIs were left as-is, and new APIs
+ were added for the creation of the ast_websocket_protocol as well as for
+ adding a sub-protocol to a WebSocket server.
+
+ In particular, the following new API calls were added:
+ * ast_websocket_add_protocol2 - add a protocol to the core WebSocket
+ server
+ * ast_websocket_server_add_protocol2 - add a protocol to a specific
+ WebSocket server
+ * ast_websocket_sub_protocol_alloc - allocate a sub-protocol object.
+ Consumers can populate this with whatever callbacks they wish to
+ support, then add it to the core server or a specified server.
+
+ ASTERISK-24988
+ Reported by: Joshua Colp
+
+ Change-Id: Ibe0bbb30c17eec6b578071bdbd197c911b620ab2
+
+2015-05-14 22:05 +0000 [f9114179e6] snuffy <snuffy22@gmail.com>
+
+ * chan_pjsip: Fix crash during off-nominal when no endpoint specified.
+
+ Add missing return -1 when no endpoint name is specified.
+
+ ASTERISK-25086 #close
+ Reported by: snuffy
+
+ Change-Id: I9de76c2935a1f4e3f0cffe97a670106f5605e89e
+2015-05-14 18:01 +0000 [dd78ab42e4] George Joseph <george.joseph@fairview5.com>
+
+ * res_pjsip_config_wizard/config: Fix template processing
+
+ The config wizard was always pulling the first occurrence of
+ a variable from an ast_variable list but this gets the template
+ value from the list instead of any overridden value. This patch
+ creates ast_variable_find_last_in_list() in config.c and updates
+ res_pjsip_config_wizard to use it instead of
+ ast_variable_find_in_list. Now the overridden values, where they
+ exist, are used instead of template variables.
+
+ Updated test_config to test the new API.
+
+ ASTERISK-25089 #close
+
+ Reported-by: George Joseph <george.joseph@fairview5.com>
+ Tested-by: George Joseph <george.joseph@fairview5.com>
+ Change-Id: Ifa7ddefc956a463923ee6839dd1ebe021c299de4
+
+2015-05-15 01:54 +0000 [091b436007] snuffy <snuffy22@gmail.com>
+
+ * cdr: Fix 'core show channel' CDR variable truncation.
+
+ When the new Bridging API was implemented, the workspace variable
+ changed to a malloc'd string, causing sizeof() to always be 8 (char).
+
+ Revert back to stored on stack string for workspace.
+
+ ASTERISK-25090 #close
+
+ Change-Id: I51e610ae87371df771ce7693a955510efb90f8f7
+2015-05-14 15:20 +0000 [8697a49ef9] Joshua Colp <jcolp@digium.com>
+
+ * Merge "sorcery: Add API to insert/remove a wizard to/from an object type's list" into 13
+2015-05-14 15:19 +0000 [aea349a87e] Joshua Colp <jcolp@digium.com>
+
+ * Merge "Message.c: Clear message channel frames on cleanup" into 13
+2015-05-14 00:06 +0000 [6b7282ca40] Corey Farrell <git@cfware.com>
+
+ * Fix potential crash after unload of func_periodic_hook or test_message.
+
+ These modules save a pointer to the context they create on load, and
+ use that pointer to destroy the context at unload. It is not safe
+ to save this pointer, it is replaced during load of pbx_config,
+ pbx_lua or pbx_ael.
+
+ This change causes the modules to pass NULL to ast_context_destroy,
+ a safer way to perform the unregistration since it does not use
+ a pointer that could become invalid.
+
+ ASTERISK-25085 #close
+ Reported by: Corey Farrell
+
+ Change-Id: I6a00ec8e38046058f97dc703e1adcde9bf517835
+2015-05-14 05:02 +0000 [8f8d54a18e] Joshua Colp <jcolp@digium.com>
+
+ * Merge "main/manager.c: Bugfix sort action_manager by alphabetically" into 13
+2015-05-13 15:41 +0000 [02c5130589] Jonathan Rose <jrose@digium.com>
+
+ * Message.c: Clear message channel frames on cleanup
+
+ The message channel is a special channel that doesn't actually process frames.
+ However, certain actions can cause frames to be placed in the channel's read
+ queue including the Hangup application which is called on the channel after
+ each message is processed. Since the channel will continually be reused for
+ many messages, it's necessary to flush these frames at some point.
+
+ ASTERISK-25083 #close
+ Reported by: Jonathan Rose
+
+ Change-Id: Idf18df73ccd8c220be38743335b5c79c2a4c0d0f
+
+2015-05-13 15:44 +0000 [586da882bc] Joshua Colp <jcolp@digium.com>
+
+ * Merge "app_voicemail: fix moving when old messages full" into 13
+2015-05-12 17:45 +0000 [d49d64b79c] Jonathan Rose <jrose@digium.com>
+
+ * app_voicemail: fix moving when old messages full
+
+ When completing voicemail playback of a message in the 'INBOX', the
+ message gets moved to the 'Old' messages folder. Without this patch, if
+ the 'Old' folder is already at its set limit, then the 'INBOX' message will
+ simply be deleted. With this patch, the flag to delete the message will be
+ removed if the save_to_folder function indicates that the message could
+ not be moved due to a full folder.
+
+ ASTERISK-25082 #close
+ Reported by: Jonathan Rose
+ Review: https://gerrit.asterisk.org/#/c/448/
+
+ Change-Id: I2be440a09f42e2d06d50975c40d1ad7f836ecb3f
+2015-05-13 14:20 +0000 [51478575e4] Joshua Colp <jcolp@digium.com>
+
+ * Merge "General: Fix recent menuselect-related cross compile regression" into 13
+2015-05-13 12:26 +0000 [5fcaf727cc] Joshua Colp <jcolp@digium.com>
+
+ * Merge "res_config_mysql: Fix broken column type checking" into 13
+2015-05-13 12:24 +0000 [6a12b0634b] Joshua Colp <jcolp@digium.com>
+
+ * Merge "chan_dahdi/sig_pri: Fix crash on ISDN call hangup collision." into 13
+2015-05-04 20:11 +0000 [9b13536fed] Rodrigo Ramírez Norambuena <decipher.hk@gmail.com>
+
+ * main/manager.c: Bugfix sort action_manager by alphabetically
+
+ Fix the alphabetic order added on ast_manager_register_struct. The order
+ for struct manager_action added is not working, this change fixes the
+ problem.
+
+ Change-Id: I149da0cd06c3c4445d7516cc303358e9f26f8b4b
+
+2015-05-08 18:01 +0000 [e67e8d5c7f] Alexandre Fournier <alexandre.fournier@kiplink.fr>
+
+ * res_config_mysql: Fix broken column type checking
+
+ MySQL configuration engine contains a bug in require_mysql(). This
+ function is used for column type checking in tables. This bug only
+ affects DATETIME, DATE and FLOAT types.
+
+ It came from mixing the first condition (switch-case-like
+ if/then/else), to check the expected column type, with the second
+ condition, to check the actual column type against the expected column
+ type. Both conditions must be checked separately in order to avoid the
+ execution of the wrong block.
+
+ ASTERISK-18252 #comment This patch might fix the issue
+ Reported by: Gareth Blades
+
+ ASTERISK-25041 #close
+ Reported by: Alexandre Fournier
+ Tested by: Alexandre Fournier
+
+ Change-Id: I0b8bf7e68ab938be8e6525a249260cb648cb0bfa
+
+2015-05-10 07:37 +0000 [16f602f5c2] Yousf Ateya <y.ateya@starkbits.com>
+
+ * res_rtp_asterisk: Correction for the limit which detects that a packet is DTLS.
+
+ First byte of DTLS packet shall be in range 20-63, not 20-64. Refer to RFC
+ https://tools.ietf.org/html/rfc5764#section-5.1.2 for correct values.
+
+ Change-Id: Iae6fa0d72b37c36a27fe40686e0ae6fba3afec31
+
+2015-05-13 04:35 +0000 [62422712f7] Joshua Colp <jcolp@digium.com>
+
+ * Merge "cdr_pgsql: Use PQescapeStringConn for escaping names." into 13
+2015-05-12 17:34 +0000 [c780b6e431] Richard Mudgett <rmudgett@digium.com>
+
+ * chan_dahdi/sig_pri: Fix crash on ISDN call hangup collision.
+
+ If an ISDN call is hungup by both sides at the same time a crash could
+ happen.
+
+ * Added missing NULL checks for the owner channel after calling
+ pri_queue_pvt_cause_data() in two places. Code after those calls need to
+ check the owner channel pointer for NULL before use because
+ pri_queue_pvt_cause_data() needs to do deadlock avoidance to lock the
+ owner and the owner may get hung up.
+
+ ASTERISK-21893 #close
+ Reported by: Alexandr Gordeev
+
+ Change-Id: Ica3e266ebc7a894b41d762326f08653e1904bb9a
+
+2015-05-10 02:26 +0000 [6627de830b] Sebastian Kemper <sebastian_ml@gmx.net>
+
+ * General: Fix recent menuselect-related cross compile regression
+
+ MAKE_MENUSELECT currently sets CC to CC, which is the compiler for the
+ target platform. But menuselect is to be run on the build system, so
+ BUILD_CC needs to be used instead - like it was in the past, before the
+ recent changes (https://reviewboard.asterisk.org/r/4370/). This is the
+ patch for ASTERISK-25074.
+
+ ASTERISK-25074 #close
+ Reported by: Sebastian Kemper
+ Tested by: Sebastian Kemper
+
+ Change-Id: I8a2b1fc5deb6ad2b80f49baca35b1b13d468ebf8
+
+2015-05-05 15:32 +0000 [637c8f065e] George Joseph <george.joseph@fairview5.com>
+
+ * sorcery: Add API to insert/remove a wizard to/from an object type's list
+
+ Currently you can 'apply' a wizard to an object type but the wizard
+ always goes at the end of the object type's wizard list. This patch
+ adds a new ast_sorcery_insert_wizard_mapping function that allows
+ you to insert a wizard anyplace in the list. I.E. You could
+ add a caching wizard to an object type and place it before all
+ wizards.
+
+ ast_sorcery_get_wizard_mapping_count and
+ ast_sorcery_get_wizard_mapping were added to allow examination
+ of the mapping list.
+
+ ast_sorcery_remove_mapping was added to remove a mapping by name.
+
+ As part of this patch, the object type's wizard list was converted
+ from an ao2_container to an AST_VECTOR_RW.
+
+ A new test was added to test_sorcery for this capability.
+
+ ASTERISK-25044 #close
+
+ Change-Id: I9d2469a9296b2698082c0989e25e6848dc403b57
+
+2015-05-12 01:31 +0000 [3cdb7950f0] Corey Farrell <git@cfware.com>
+
+ * Fix processing of asterisk.conf debug=yes.
+
+ The code which reads asterisk.conf supports processing the debug
+ option with ast_true, but ast_true returns -1. This causes debug
+ to still be off, convert to 1 so debug will be on as requested.
+
+ ASTERISK-25042
+ Reported by: Corey Farrell
+
+ Change-Id: I3c898b7d082d914b057e111b9357fde46bad9ed6
+
+2015-05-01 23:43 +0000 [6553a00770] Rodrigo Ramírez Norambuena <decipher.hk@gmail.com>
+
+ * cdr_pgsql: Use PQescapeStringConn for escaping names.
+
+ Use function PQescapeStringConn for escaping the name
+ of the table and schema instead of doing it manually.
+
+ Change-Id: I6709165e2d00463e9c813d24f17830ad4910b599
+
+2015-05-12 05:38 +0000 [8523a5ed09] Joshua Colp <jcolp@digium.com>
+
+ * Merge "vector: Add REMOVE, ADD_SORTED and RESET macros" into 13
+2015-05-09 16:58 +0000 [ea917fefaf] George Joseph <george.joseph@fairview5.com>
+
+ * vector: Add REMOVE, ADD_SORTED and RESET macros
+
+ Based on feedback from Corey Farrell and Y Ateya, a few new
+ macros have been added...
+
+ AST_VECTOR_REMOVE which takes a parameter to indicate if
+ order should be preserved.
+
+ AST_VECTOR_ADD_SORTED which adds an element to
+ a sorted vector.
+
+ AST_VECTOR_RESET which cleans all elements from the vector
+ leaving the storage intact.
+
+ Change-Id: I41d32dbdf7137e0557134efeff9f9f1064b58d14
+
+2015-05-11 07:07 +0000 [d5864a358c] Ivan Poddubny <ivan.poddubny@gmail.com>
+
+ * pbx/pbx_spool: Fix issue when call files were executed too early
+
+ pbx_spool used to delete/move the call file upon successful outgoing
+ call completion, but did not delete it from in-memory list of files
+ (dirlist, used only when compiled with inotify/kqueue support).
+ That resulted in an extra attempt to process that filename after
+ retrytime seconds.
+ Then, if a new file with the same name appears that is scheduled
+ in future further than the completed one plus its retrytime,
+ then it gets executed earlier than expected.
+
+ This patch fixes remove_from_queue function to also remove the entry
+ from the dirlist.
+
+ ASTERISK-17069 #close
+ Reported by: Jeremy Kister
+
+ ASTERISK-24442 #close
+ Reported by: tootai
+
+ Change-Id: If9ec9b88073661ce485d6b008fd0b2612e49a28b
+
+2015-05-08 14:47 +0000 [4dbd4021c9] Rusty Newton <rnewton@digium.com>
+
+ * configs/basic-pbx: Modified main IVR to play new Allison prompt.
+
+ The main IVR was playing demo-congrats. I've switched it over to the
+ basic-pbx-ivr-main file that we added in core sounds 1.4.27. This prompt
+ has Allison prompting the user with the actual IVR menu.
+
+ ASTERISK-24892 #close
+
+ Change-Id: Ifb749616ff8e156a1031ddaddfcc9244767a095d
+
+2015-05-08 15:55 +0000 [7111ba6df4] Matt Jordan <mjordan@digium.com>
+
+ * Merge "tcptls: Avoiding ERR_remove_state in OpenSSL." into 13
+2015-05-08 10:39 +0000 [613a461c3d] Sean Bright <sean@malleable.com>
+
+ * res_rtp_asterisk: Issue ERROR if res_srtp is not found.
+
+ While trying to get WebRTC working with chan_pjsip, I was running
+ into the following error:
+
+ Attempted to set an invalid DTLS-SRTP configuration on RTP
+ instance...
+
+ Josh helpfully pointed out that res_srtp.so might not be loaded, and
+ sure enough, it wasn't. This patch adds a ERROR indiciating as much
+ to hopefully help others having a similar problem.
+
+ Change-Id: I13aa477b47b299876728a21b130998a0ea6cd19f
+
+2015-05-07 17:49 +0000 [394fcb5eab] Rusty Newton <rnewton@digium.com>
+
+ * sounds: Add Swedish sounds to Makefile and XML
+
+ Added the necessary lines to the Makefile and sounds.xml so we'll have the
+ Swedish sounds in all available formats in menuselect.
+
+ See also: Swedish sounds were added into the core sounds release 1.4.27.
+
+ ASTERISK-24744 #close
+
+ Reported by: Tove Hjelm
+ Tested by: Rusty Newton
+
+ Change-Id: Ib6f4fd177afd1667b2402735034001d4d055a908
+
+2015-05-08 09:54 +0000 [30c3b254c5] Joshua Colp <jcolp@digium.com>
+
+ * Merge "doc: Make progdocs play nice with git" into 13
+2015-05-05 11:35 +0000 [2115f11b54] Alexander Traud (License 6520)
+
+ * tcptls: Avoiding ERR_remove_state in OpenSSL.
+
+ ERR_remove_state was deprecated with OpenSSL 1.0.0 and was replaced by
+ ERR_remove_thread_state. ERR_load_SSL_strings and ERR_load_BIO_strings were
+ called by SSL_load_error_strings already and got removed. These changes allow
+ OpenSSL forks like BoringSSL to be used with Asterisk.
+
+ ASTERISK-25043 #close
+ Reported by: Alexander Traud
+ patches:
+ asterisk_with_BoringSSL.patch uploaded by Alexander Traud (License 6520)
+
+ Change-Id: If1c0871ece21a7e0763fafbd2fa023ae49d4d629
+ (cherry picked from commit 247fef66537b59649e7571d64e2c574a106dbd65)
+
+2015-05-07 14:54 +0000 [5392e970d0] George Joseph <george.joseph@fairview5.com>
+
+ * doc: Make progdocs play nice with git
+
+ Moved contrib/asterisk-ng-doxygen to doc/asterisk-ng-doxygen.in
+
+ Changed /Makefile to copy asterisk-ng-doxygen.in to
+ asterisk-ng-doxygen then modify it with version instead of
+ modifying asterisk-ng-doxygen directly. Updated clean
+ targets as well.
+
+ Updated /.gitignore and doc/.gitignore.
+
+ Change-Id: I38712d3e334fa4baec19d30d05de8c6f28137622
+
+2015-05-07 15:10 +0000 [1e44d1bef9] Joshua Colp <jcolp@digium.com>
+
+ * Merge "res_pjsip_exten_state: Fix race condition between sending NOTIFY and termination" into 13
+2015-05-04 14:43 +0000 [608f0a94ee] Ivan Poddubny <ivan.poddubny@gmail.com>
+
+ * contrib/editors: Fix vim syntax highlighting of comments in config files
+
+ * Added a lookbehind to one-line comment matcher to skip escaped
+ semicolons.
+ * Added support for block comments.
+
+ Change-Id: Id17dfaeda8ed4be572e8107a0c010066584aaee7
+
+2015-05-07 13:30 +0000 [22c6c12af2] Matt Jordan <mjordan@digium.com>
+
+ * Merge "vector: Additional enhancements and fixes" into 13
+2015-05-06 13:24 +0000 [d649d682c4] Joshua Colp <jcolp@digium.com>
+
+ * res_pjsip_exten_state: Fix race condition between sending NOTIFY and termination
+
+ The res_pjsip_exten_state module currently has a race condition between
+ processing the extension state callback from the PBX core and processing
+ the subscription shutdown callback from res_pjsip_pubsub. There is currently
+ no synchronization between the two. This can present a problem as while
+ the SIP subscription will remain valid the tree it points to may not.
+ This is in particular a problem as a task to send a NOTIFY may get queued
+ which will try to use the tree that may no longer be valid.
+
+ This change does the following to fix this problem:
+
+ 1. All access to the subscription tree is done within the task that
+ sends the NOTIFY to ensure that no other thread is modifying or
+ destroying the tree. This task executes on the serializer for the
+ subscriptions.
+
+ 2. A reference to the subscription serializer is kept to ensure it
+ remains valid for the lifetime of the extension state subscription.
+
+ 3. The NOTIFY task has been changed so it will no longer attempt
+ to send a NOTIFY if the subscription has already been terminated.
+
+ ASTERISK-25057 #close
+ Reported by: Matt Jordan
+
+ Change-Id: I0b3cd2fac5be8d9b3dc5e693aaa79846eeaf5643
+
+2015-05-07 07:02 +0000 [9322bc6ff6] Matt Jordan <mjordan@digium.com>
+
+ * Merge "chan_dahdi: Improve force_restart_unavailable_chans option description." into 13
+2015-05-07 06:39 +0000 [b1514362ef] Matt Jordan <mjordan@digium.com>
+
+ * Merge "res_stasis_snoop: Spying on a single direction continually increases CPU" into 13
+2015-05-07 06:28 +0000 [652ee2ff83] Joshua Colp <jcolp@digium.com>
+
+ * Merge "features: Fix crash when transferee hangs up during DTMF attended transfer." into 13
+2015-05-05 20:22 +0000 [5f9aea8e3c] George Joseph <george.joseph@fairview5.com>
+
+ * vector: Additional enhancements and fixes
+
+ After using the new vector stuff for real I found...
+
+ A bug in AST_VECTOR_INSERT_AT that could cause a seg fault.
+
+ The callbacks needed to be closer to ao2_callback in behavior
+ WRT to CMP_MATCH and CMP_STOP behavior and the ability to return
+ a vector of matched entries.
+
+ A pre-existing issue with APPEND and REPLACE was also fixed.
+
+ I also added a new macro to test.h that acts like ast_test_validate
+ but also accepts a return code variable and a cleanup label. As well
+ as printing the error, it sets the rc variable to AST_TEST_FAIL and
+ does a goto to the specified label on error. I had a local version
+ of this in test_vector so I just moved it.
+
+ ASTERISK-25045
+
+ Change-Id: I05e5e47fd02f61964be13b7e8942bab5d61b29cc
+
+2015-05-04 17:28 +0000 [68513e00f7] Kevin Harwell <kharwell@digium.com>
+
+ * res_stasis_snoop: Spying on a single direction continually increases CPU
+
+ Creating a snoop channel in ARI and spying only on a single direction (in or
+ out) results in CPU utilization continually increasing until the CPU is fully
+ consumed. This occurs because frames are being put in the opposing direction's
+ slin factory queue, but not being removed.
+
+ Fixed the problem by always reading and disposing of frames from the opposite
+ queue of the direction selected.
+
+ ASTERISK-24938 #closes
+
+ Change-Id: I935bfd15f1db958f364d9d6b3b45582c0113dd60
+2015-05-06 16:00 +0000 [904f5d98f6] Richard Mudgett <rmudgett@digium.com>
+
+ * chan_dahdi: Improve force_restart_unavailable_chans option description.
+
+ ASTERISK-25034
+ Reported by: Richard Mudgett
+
+ Change-Id: I1ff8f02124d2f4abd632a050da52c64285bb7f30
+
+2015-05-06 07:42 +0000 [d6ffbe39b0] Joshua Colp <jcolp@digium.com>
+
+ * Merge "app_queue: Fix queue_log EXITWITHTIMEOUT containing only 1 parameter" into 13
+2015-05-06 06:13 +0000 [dfb292ce3e] Matt Jordan <mjordan@digium.com>
+
+ * Merge "res_ari_bridges: Add missing dependencies." into 13
+2015-05-05 21:05 +0000 [50e90f9121] Matt Jordan <mjordan@digium.com>
+
+ * Merge "pbx_config: Register manager actions with module version of macro." into 13
+2015-05-05 18:17 +0000 [be1260a35f] Richard Mudgett <rmudgett@digium.com>
+
+ * features: Fix crash when transferee hangs up during DTMF attended transfer.
+
+ A crash happens with this sequence of steps:
+ 1) Party A is connected to party B.
+ 2) Party B starts a DTMF attended transfer.
+ 3) Party A hangs up while party B is dialing party C.
+
+ When party A hangs up the bridge that party A and party B are in is
+ dissolved and party B is kicked out of the bridge. When party B finishes
+ dialing party C he attempts to move to the new bridge with party C. Since
+ party B is no longer in a bridge the attempted move dereferences a NULL
+ bridge_channel pointer and crashes.
+
+ * Made the hold(), unhold(), ringing(), and the bridge_move() functions
+ tolerant of the channel not being in a bridge. The assertion that party B
+ is always in a bridge is not true if the bridged peer of party B hangs up
+ and dissolves the bridge. Being tolerant of not being in a bridge allows
+ the peer hangup stimulus to be processed by the FSM.
+
+ * Made the bridge_move() function return void since where the return value
+ for a failed move was checked generated a FSM coding ERROR message for a
+ normal off-nominal condition.
+
+ * Eliminated most uses of RAII_VAR in bridge_basic.c.
+
+ ASTERISK-25003 #close
+ Reported by: Artem Volodin
+
+ Change-Id: Ie2c1b14e5e647d4ea6de300bf56d69805d7bcada
+
+2015-05-05 15:40 +0000 [8b0f85ac06] George Joseph <george.joseph@fairview5.com>
+
+ * test_vector: Fix build breakage caused by ASTERISK_REGISTER_FILE
+
+ My 13 version of test_vector had an ASTERISK_REGISTER_FILE() macro
+ call at the top which is only supported in master. Once removed
+ builds are successful.
+
+ Change-Id: I7cac8b669bed6de543bbf4e2eec3cffc9741acdd
+
+2015-05-05 14:48 +0000 [87263b47b5] Ivan Poddubny <ivan.poddubny@gmail.com>
+
+ * app_queue: Fix queue_log EXITWITHTIMEOUT containing only 1 parameter
+
+ This patch fixes EXITWITHTIMEOUT queue_log entry to always come with 3
+ parameters: position, original position and waiting time.
+
+ ASTERISK-25038 #close
+ Reported by: Etienne Lessard
+
+ Change-Id: I0c62045922e26bee2125e93aee1dee17eee79618
+
+2015-05-05 13:13 +0000 [2d9081b5ec] Matt Jordan <mjordan@digium.com>
+
+ * Merge "stasis: Fix dial masquerade datastore lifetime" into 13
+2015-05-05 12:45 +0000 [8ca25dfd7e] Matt Jordan <mjordan@digium.com>
+
+ * Merge "vector: Traversal, retrieval, insert and locking enhancements" into 13
+2015-05-05 09:47 +0000 [366ea63438] Corey Farrell <git@cfware.com>
+
+ * res_ari_bridges: Add missing dependencies.
+
+ Missed this module in the previous commit. res_ari_bridges uses symbols
+ from res_stasis_playback and res_stasis_recording.
+
+ ASTERISK-25027 #close
+ Reported by: Corey Farrell
+
+ Change-Id: I90bf756abd25adfc4920d2869ebe7feb636b8c5f
+
+2015-05-05 09:27 +0000 [69ae8cf0a4] Corey Farrell <git@cfware.com>
+
+ * pbx_config: Register manager actions with module version of macro.
+
+ Switch manager actions in pbx_config to use the registration macro that
+ passes the module pointer, allowing pbx_config reference to be bumped
+ while the manager actions run.
+
+ ASTERISK-25061 #close
+ Reported by: Corey Farrell
+
+ Change-Id: I422c50dd74814616ac10c5e9c6598a0b1bc2c44e
+
+2015-05-04 12:16 +0000 [181ae3b8d9] Joshua Colp <jcolp@digium.com>
+
+ * stasis: Fix dial masquerade datastore lifetime
+
+ A recent change went into Asterisk which added reference counts to the
+ channels stored in a dial masquerade datastore. Unfortunately this
+ included a reference to the caller in a dialing operation. While all
+ of the dialed targets have the datastore removed from them upon dialing
+ completion this did not occur for the caller, causing it to have a
+ reference to itself that could go never go away (as it depended on
+ the destruction of the datastore which only happened when the channel
+ was destroyed). This resulted in the caller channel remaining on the
+ system despite it having hung up.
+
+ This change does the following to fix this issue:
+
+ 1. The dial masquerade datastore is now removed from the caller upon
+ dialing completion, just like the dialed targets.
+ 2. Upon destruction of the caller all the dialed targets are also
+ removed from the dial masquerade datastore (just in case).
+ 3. The reference to the caller has been removed as it should not be
+ possible for the datastore to now be valid/useful after the lifetime
+ of the caller has ended.
+
+ ASTERISK-25025 #close
+
+ Change-Id: I1ef4ca5ca04980028604cc2af5d2992ac3431b3f
+
+2015-05-01 19:25 +0000 [7a7e9733c2] George Joseph <george.joseph@fairview5.com>
+
+ * vector: Traversal, retrieval, insert and locking enhancements
+
+ Renamed AST_VECTOR_INSERT to AST_VECTOR_REPLACE because it really
+ does replace not insert. The few users of AST_VECTOR_INSERT were
+ refactored. Because these are macros, there should be no ABI
+ compatibility issues.
+
+ Added AST_VECTOR_INSERT_AT that actually inserts an element into the
+ vector at a specific index pushing existing elements to the right.
+
+ Added AST_VECTOR_GET_CMP that can retrieve from the vector based
+ on a user-provided compare function.
+
+ Added AST_VECTOR_CALLBACK function that will execute a function
+ for each element in the vector. Similar to ao2_callback and
+ ao2_callback_data functions although the vector callback can take
+ a variable number of arguments. This should allow easy migration
+ to a vector where a container might be too heavy.
+
+ Added read/write locked vector and lock manipulation macros.
+
+ Added unit tests.
+
+ ASTERISK-25045 #close
+
+ Change-Id: I2e07ecc709d2f5f91bcab8904e5e9340609b00e0
+
+2015-05-03 13:55 +0000 [040d2f8558] Corey Farrell <git@cfware.com>
+
+ * main/test.c: Add test to verify there were no registration errors.
+
+ This adds a test that will fail if any test failed to register. Also fail
+ if any test registration produced a warning about missing a leading or
+ trailing slash.
+
+ ASTERISK-25053 #close
+ Reported by: Corey Farrell
+
+ Change-Id: I93e50b8fcbcfa7f1f5b41b2c44a51685c09529c3
+
+2015-05-04 09:26 +0000 [626bffc4c2] Matt Jordan <mjordan@digium.com>
+
+ * Merge "contrib/ast-db-manage: Add Postgres ENUM type support in auto DTMF mode update" into 13
+2015-05-04 09:26 +0000 [87fb7fc165] Matt Jordan <mjordan@digium.com>
+
+ * Merge "cdr/cdr_csv.c: Add a new option to enable columns added in Asterisk 1.8" into 13
+2015-05-04 09:25 +0000 [81c27127aa] Matt Jordan <mjordan@digium.com>
+
+ * Merge "Format Interfaces: Prevent unload except by shutdown." into 13
+2015-05-04 07:46 +0000 [743fed71fc] Matt Jordan <mjordan@digium.com>
+
+ * Merge "res_odbc: Use negative connection cache for all connections" into 13
+2015-04-21 11:52 +0000 [3dcec04ab5] Martin Tomec <tomec.martin@gmail.com>
+
+ * res_odbc: Use negative connection cache for all connections
+
+ Apply the negative connection cache setting to all connections,
+ even those that are not pooled. This ensures that the connection
+ will not be re-established before the negative connection cache
+ time is met.
+
+ ASTERISK-22708 #close
+
+ Change-Id: I431cc2e8584ab0b6908b3523d0a0e18c9a527271
+2015-05-04 04:03 +0000 [74799b3fe2] Matt Jordan <mjordan@digium.com>
+
+ * Merge "Remove unneeded uses of optional_api providers." into 13
+2015-05-04 04:03 +0000 [78c02f8e88] Matt Jordan <mjordan@digium.com>
+
+ * Merge "Update configure.ac/Makefile for clang" into 13
+2015-05-03 21:03 +0000 [f38066fcad] Corey Farrell <git@cfware.com>
+
+ * Format Interfaces: Prevent unload except by shutdown.
+
+ Format interfaces cannot be unregistered, so the modules that provide them
+ need to be held open except by shutdown.
+
+ ASTERISK-25054 #close
+ Reported by: Corey Farrell
+
+ Change-Id: Iadbd9675bf0d30b8fded5a739b163db3ea2db8f3
+
+2015-05-03 20:28 +0000 [e76a6a97bf] Matt Jordan <mjordan@digium.com>
+
+ * contrib/ast-db-manage: Add Postgres ENUM type support in auto DTMF mode update
+
+ The upgrade script for auto DTMF mode (31cd4f4891ec) added in 88b0fa7755
+ failed to add ENUM support for Postgres databases. This requires a
+ specific import from the sqlalchemy.dialects.postgresql package. This
+ patch corrects this error, which allows for Postgres update scripts to
+ be generated.
+
+ ASTERISK-24706
+
+ Change-Id: I4742ac8efa533cd6f18e0bdd907b339a9aedf015
+
+2015-05-01 19:50 +0000 [92120247e9] D Tucny <d@tucny.com>
+
+ * term: send proper reset sequence when black background is forced
+
+ When using the force black background command-line option or configuration
+ option an invalid reset sequence is sent following a coloured output item
+ in the CLI, the result is that the colour is not 'turned off' and continues
+ until the next non-default coloured text output.
+
+ A reset sequence is already defined in term.c, but the ast_term_reset
+ function doesn't use it, instead building it's own invalid sequence and
+ returning that.
+
+ This patch changes that behaviour, removing the building of a reset sequence
+ and instead using the pre-built constant 'enddata' which is a suitable reset
+ sequence for this purpose.
+
+ ASTERISK-24896 #close
+ Reported by: Dan Tucny
+
+ Change-Id: I56323899123ae3264900389cae1f5b252aa3bf43
+
+2015-05-03 09:20 +0000 [13819a34c4] Matt Jordan <mjordan@digium.com>
+
+ * Merge "Build System: Prevent unneeded changes to asterisk/buildopts.h." into 13
+2015-05-03 09:19 +0000 [b518ba1c6c] Matt Jordan <mjordan@digium.com>
+
+ * Merge "res_pjsip_dlg_options: Fix MODULEINFO section." into 13
+2015-05-02 18:58 +0000 [ad6ea29697] Corey Farrell <git@cfware.com>
+
+ * Remove unneeded uses of optional_api providers.
+
+ A few cases exist where headers of optional_api provders are included but
+ not needed. This causes unneeded calls to ast_optional_api_use.
+
+ * Don't include optional_api.h from sip_api.h.
+ * Move 'struct ast_channel_monitor' to channel.h.
+ * Don't include monitor.h from chan_sip.c, channel.c or features.c.
+
+ The move of struct ast_channel_monitor is needed since channel.c depends on
+ it. This has no effect on users of monitor.h since channel.h is included
+ from monitor.h.
+
+ ASTERISK-25051 #close
+ Reported by: Corey Farrell
+
+ Change-Id: I53ea65a9fc9693c89f8bcfd6120649bfcfbc3478
+
+2015-05-02 10:19 +0000 [9888562c8c] Matt Jordan <mjordan@digium.com>
+
+ * Merge "include/asterisk/channel.h: Fix typo" into 13
+2015-05-02 10:17 +0000 [b4000f2d44] Matt Jordan <mjordan@digium.com>
+
+ * Merge "Astobj2: Fix initialization order of refdebug and AO2_DEBUG." into 13
+2015-04-30 02:07 +0000 [525c8c8689] Rodrigo Ramírez Norambuena <decipher.hk@gmail.com>
+
+ * include/asterisk/channel.h: Fix typo
+
+ Change-Id: Ie584b85e16a94c255e60d0b1732ef9686464fef3
+
+2015-05-02 02:15 +0000 [63196a8256] Corey Farrell <git@cfware.com>
+
+ * res_pjsip_dlg_options: Fix MODULEINFO section.
+
+ Removed the extra space before "MODULEINFO" in res_pjsip_dlg_options.
+ This extra space prevented any of the dependencies from being seen by
+ menuselect, so building with default options would fail if PJSIP was
+ not installed.
+
+ This also makes the tool that extracts information for menuselect
+ tolerant of multiple spaces in the future.
+
+ ASTERISK-25033 #close
+ Reported by: Peter Whisker
+
+ Change-Id: Iccd54846f70c4a7a50cb5bf70b7bb5cb4bab3698
+
+2015-04-29 03:03 +0000 [ac1f0090eb] Corey Farrell <git@cfware.com>
+
+ * Build System: Prevent unneeded changes to asterisk/buildopts.h.
+
+ * Add AST_DEVMODE to BUILDOPTS
+ * Remove CFLAGS that do not effect ABI from BUILDOPTS.
+ * Use BUILDOPTS to generate AST_BUILDOPT_SUM.
+ * Remove loop that defined AST_MODULE_*
+
+ These changes ensure that only ABI effecting options are considered for
+ AST_BUILDOPT_SUM. This also reduces unneeded full system rebuilds caused
+ by enabling or disabling one module that another is dependent on.
+
+ ASTERISK-25028
+ Reported by: Corey Farrell
+
+ Change-Id: I2c516d93df9f6aaa09ae079a8168c887a6ff93a2
+
+2015-05-01 13:22 +0000 [5875bf183c] Corey Farrell <git@cfware.com>
+
+ * Astobj2: Fix initialization order of refdebug and AO2_DEBUG.
+
+ This ensures that refdebug is initialized before AO2_DEBUG if
+ both are enabled, since AO2_DEBUG allocates a container.
+
+ This change also makes AO2_DEBUG initialization critical, a
+ failure will abort Asterisk startup. This is needed since
+ the failure would be caused by reg_containers allocation
+ failure, and that would result in a segmentation fault by
+ ao2_container_register later in startup.
+
+ ASTERISK-25048 #close
+ Reported by: Corey Farrell
+
+ Change-Id: I9a243ea3fc5653b48b931ba6d61971cb2e530244
+
+2015-04-29 14:49 +0000 [1b19c15f17] Matt Jordan <mjordan@digium.com>
+
+ * main/pbx: Improve performance of dialplan reloads with a large number of hints
+
+ The PBX core maintains two hash tables for hints: a container of the
+ actual hints (hints), along with a container of devices that are watching that
+ hint (hintdevices). When a dialplan reload occurs, each hint in the hints
+ container is destroyed; this requires a lookup in the container of devices to
+ find the device => hint mapping object. In the current code, this performs an
+ ao2_callback, iterating over each of the device to hint objects in the
+ hintdevices container. For a large number of hints, this is extremely
+ expensive: dialplan reloads with 20000 hints could take several minutes
+ in just this phase.
+
+ This patch improves the performance of this step in the dialplan reloads
+ by caching which devices are watching a hint on the hint object itself.
+ Since we don't want to create a circular reference, we just cache the
+ name of the device. This allows us to perform a smarter ao2_callback on
+ the hintdevices container during hint removal, hashing on the name of the
+ device and returning an iterator to the matching names. The overall
+ performance improvement is rather large, taking this step down to a number of
+ seconds as opposed to minutes.
+
+ In addition, this patch also registers the hint containers in the PBX
+ core with the astobj2 library. This allows for reasonable debugging to
+ hash collisions in those containers.
+
+ ASTERISK-25040 #close
+ Reported by: Matt Jordan
+
+ Change-Id: Iedfc97a69d21070c50fca42275d7b3e714e59360
+
+2015-05-01 06:55 +0000 [ec0f80b6e8] Matt Jordan <mjordan@digium.com>
+
+ * Merge "res_pjsip_outbound_authenticator_digest: Add missing outbound authenticator callback." into 13
+2015-05-01 06:55 +0000 [ed51fbbe9c] Matt Jordan <mjordan@digium.com>
+
+ * Merge "Prevent potential crash on blond transfer." into 13
+2015-04-30 15:54 +0000 [3efe0df044] Corey Farrell <git@cfware.com>
+
+ * Sample Configs: Fix syntax error in pjsip.conf
+
+ The sample pjsip.conf has a few comment lines that are missing the
+ semicolons at the start of the comment, causing the config to fail
+ load.
+
+ Change-Id: I776a38c916a7df7ee3e072fd0b21dbf4cc457352
+
+2015-04-30 15:20 +0000 [077979618b] Mark Michelson <mmichelson@digium.com>
+
+ * Prevent potential crash on blond transfer.
+
+ Scenario:
+ Alice calls Bob. Bob performs a blond transfer to Carol. Carol rejects
+ the incoming call (or some other immediate circumstance causes Carol not
+ to answer the call)
+
+ What occurs in this case is that when the bridge between Alice and Bob
+ breaks, Alice is told to masquerade into Bob's channel that had placed
+ the call to Carol. The actual masquerade goes down without a hitch.
+ However, a channel fixup callback that attempts to publish dial events
+ over Stasis has a crash. The reason for this crash is that the datastore
+ on Bob's channel that placed the outbound call to Carol only had a bare
+ pointer to Carol's channel. Since Carol rejected the incoming call,
+ Carol's channel has been hung up and freed, meaning accessing her
+ channel results in a crash.
+
+ The fix here is simple. The dial fixup code has been altered to hold
+ references to the involved channels and to drop those references when
+ freeing data.
+
+ ASTERISK-25025 #close
+ Reported by Chet Stevens
+
+ Change-Id: I54eedda207b8ec7a69263353b43abe5746aea197
+
+2015-04-30 14:09 +0000 [4b8cddfb36] Mark Michelson <mmichelson@digium.com>
+
+ * res_pjsip_outbound_authenticator_digest: Add missing outbound authenticator callback.
+
+ The Asterisk 13 version of the fix for outbound registration was missing
+ a key component that set the outbound authenticator's callback that
+ creates an authenticated request based on an old request. This was
+ picked up by some outbound registration tests failing in the testsuite.
+
+ Change-Id: I5ca9379698c606da36bc38eaffccedaf64211ce3
+2015-04-30 13:42 +0000 [415a0d0745] Joshua Colp <jcolp@digium.com>
+
+ * res_ari_device_states: Fix dependency on res_stasis_device_state.
+
+ The res_ari_device_states module depends on res_stasis_device_state,
+ not res_stasis_device_states.
+
+ Change-Id: I26e02ad37f9e36bcc859867e2fad1b90452ec3de
+
+2015-04-30 11:11 +0000 [e0c6f88010] Mark Michelson <mmichelson@digium.com>
+
+ * Merge "chan_dahdi: Add the chan_dahdi.conf force_restart_unavailable_chans option." into 13
+2015-04-30 10:53 +0000 [d1bc86fc99] Matt Jordan <mjordan@digium.com>
+
+ * Merge "res_pjsip_outbound_registration: Add virtual line support." into 13
+2015-04-29 14:29 +0000 [d3c310a28c] Richard Mudgett <rmudgett@digium.com>
+
+ * chan_dahdi: Add the chan_dahdi.conf force_restart_unavailable_chans option.
+
+ Some telco switches occasionally ignore ISDN RESTART requests. The fix
+ for ASTERISK-19608 added an escape clause for B channels in the restarting
+ state if the telco ignores a RESTART request. If the telco fails to
+ acknowledge the RESTART then Asterisk will assume the telco acknowledged
+ the RESTART on the second call attempt requesting the B channel by the
+ telco. The escape clause is good for dealing with RESTART requests in
+ general but it does cause the next call for the restarting B channel to be
+ rejected if the telco insists the call must go on that B channel.
+
+ chan_dahdi doesn't really need to issue a RESTART request in response to
+ receiving a cause 44 (Requested channel not available) code. Sending the
+ RESTART in such a situation is not required (nor prohibited) by the
+ standards. I think chan_dahdi does this for historical reasons to deal
+ with buggy peers to get channels unstuck in a similar fashion as the
+ chan_dahdi.conf resetinterval option.
+
+ * Add the chan_dahdi.conf force_restart_unavailable_chans compatability
+ option that when disabled will prevent chan_dahdi from trying to RESTART
+ the channel in response to a cause 44 code.
+
+ ASTERISK-25034 #close
+ Reported by: Richard Mudgett
+
+ Change-Id: Ib8b17a438799920f4a2038826ff99a1884042f65
+2015-04-30 06:38 +0000 [7f611fa0e8] Rodrigo Ramírez Norambuena <decipher.hk@gmail.com>
+
+ * cdr/cdr_csv.c: Add a new option to enable columns added in Asterisk 1.8
+
+ This patch adds a new option to cdr.conf, 'newcdrcolumns', that will handle CDR
+ columns added in Asterisk 1.8. The columns are:
+ * peeraccount
+ * linkedid
+ * sequence
+ When enabled, the columns in the database entry will be populated with the data
+ from the CDR.
+
+ ASTERISK-24976 #close
+
+ Change-Id: I51a57063f4ae5e194a9d933a8df45dc8a4534f0b
+
+2015-04-30 06:04 +0000 [e332c7ed5e] Joshua Colp <jcolp@digium.com>
+
+ * res_pjsip_outbound_registration: Fix double unref on error return.
+
+ When the PJSIP pjsip_regc_send function is invoked and an error
+ status returned the caller currently decrements the reference count
+ of the client state that it just incremented, assuming the
+ registration callback would not have been invoked. In practice
+ this is not correct. If the failure happens after the transaction
+ has been set up the callback will still be invoked. This will
+ cause the reference count to be incorrectly decremented twice, once
+ by the registration callback and second by the caller of
+ pjsip_regc_send.
+
+ This change makes it so that whether the callback is invoked or
+ not is known by the caller of pjsip_regc_send. Depending on
+ this it can know whether it is responsible for decrementing the
+ reference count of the client state or not.
+
+ ASTERISK-25037 #close
+ Reported by: Joshua Colp
+
+ Change-Id: I749dc12f3a22115c49c5d7d95ff42a5fa45319de
+
+2015-04-20 13:03 +0000 [9c3ed42875] Diederik de Groot <ddegroot@talon.nl>
+
+ * Update configure.ac/Makefile for clang
+
+ Created autoconf/ast_check_raii.m4: contains AST_CHECK_RAII which
+ checks compiler requirements for RAII:
+ gcc: -fnested-functions support
+ clang: -fblocks (and if required -lBlocksRuntime)
+ The original check was implemented in configure.ac and now has it's
+ own file. This function also sets C_COMPILER_FAMILY to either gcc or
+ clang for use by makefile
+
+ Created autoconf/ast_check_strsep_array_bounds.m4 (contains
+ AST_CHECK_STRSEP_ARRAY_BOUNDS):
+ which checks if clang is able to handle the optimized strsep & strcmp
+ functions (linux). If not, the standard libc implementation should be
+ used instead. Clang + the optimized macro's work with:
+ strsep(char *, char []), but not with strsepo(char *, char *).
+ Instead of replacing all the occurences throughout the source code,
+ not using the optimized macro version seemed easier
+
+ See 'define __strcmp_gc(s1, s2, l2) in bits/string2.h':
+ llvm-comment: Normally, this array-bounds warning are suppressed for
+ macros, so that unused paths like the one that accesses __s1[3] are
+ not warned about. But if you preprocess manually, and feed the
+ result to another instance of clang, it will warn about all the
+ possible forks of this particular if statement. Instead of switching
+ of this optimization, another solution would be to run the preproces-
+ sing step with -frewrite-includes, which should preserve enough
+ information so that clang should still be able to suppress the diag-
+ nostic at the compile step later on.
+
+ See also "https://llvm.org/bugs/show_bug.cgi?id=20144"
+ See also "https://llvm.org/bugs/show_bug.cgi?id=11536"
+
+ Makefile.rules: If C_COMPILER_FAMILY=clang then add two warning
+ suppressions:
+ -Wno-unused-value
+ -Wno-parentheses-equality
+ In an earlier review (reviewboard: 4550 and 4554), they were deemed a
+ nuisace and less than benefitial.
+
+ configure.ac:
+ Added AST_CHECK_RAII() see earlier
+ Added AST_CHECK_STRSEP_ARRAY_BOUNDS() see earlier
+ Removed moved content
+
+ ASTERISK-24917
+ Change-Id: I12ea29d3bda2254ad3908e279b7effbbac6a97cb
+
+2015-04-29 16:43 +0000 [37a193da18] Matt Jordan <mjordan@digium.com>
+
+ * Merge "ARI: Fix missing dependencies." into 13
+2015-04-29 16:42 +0000 [6a86b3555b] Matt Jordan <mjordan@digium.com>
+
+ * Merge "res_fax: allow 2400 transmission rate according to v.27ter standard" into 13
+2015-04-29 16:15 +0000 [d4e207e27e] Matt Jordan <mjordan@digium.com>
+
+ * main/rtp_engine: Fix DTLS double-free introduced by 0b6410c4f8
+
+ The patch in 0b6410c4f8 did correctly fix a memory leak of the DTLS
+ structures in the RTP engine. However, when a 'core reload' is issued, a
+ double free of the memory pointed to by the char *'s in the DTLS
+ configuration struct can occur, as ast_rtp_dtls_cfg_free does not set
+ the pointers to NULL when they are freed.
+
+ This patch sets those pointers to NULL, preventing a second call to
+ ast_rtp_dtls_cfg_free from corrupting memory.
+
+ ASTERISK-25022
+
+ Change-Id: I820471e6070a37e3c26f760118c86770e12f6115
+
+2015-04-29 13:05 +0000 [3fb6daeb55] Kevin Harwell <kharwell@digium.com>
+
+ * res_fax: allow 2400 transmission rate according to v.27ter standard
+
+ A previous set of patches (see: ASTERISK-22790 & ASTERISK-23231) made it so
+ a v.27 modem was not allowed to have a minimum transmission rate of 2400 bits
+ per second. This reverts all or some of those patches since according to the
+ v.27ter standard a rate of 2400 bits per second is also supported.
+
+ One of the original patches also added 9600 bits per second support for v.27.
+ This patch also removes that since v.27ter only supports 2400/4800 bits per
+ second.
+
+ Also, since Asterisk specifically supports v.27ter the enum was renamed to
+ better reflect this.
+
+ ASTERISK-24955 #close
+ Reported by: Matt Jordan
+
+ Change-Id: I4b9dfb6bf7eff08463ab47ee1a74224f27cae733
+
+2015-04-29 10:46 +0000 [49ef81c15c] Joshua Colp <jcolp@digium.com>
+
+ * res_sorcery_config: Fix build issue due to syntax error.
+
+ Change-Id: Ic8322f04e37842848ad72cf2871bd0378f67c4ac
+
+2015-04-28 00:29 +0000 [3278fe5327] Ashley Sanders <asanders@digium.com>
+
+ * chan_pjsip: Creating Channel Causes Asterisk to Crash When Duplicate AOR
+ Sections Exist in pjsip.conf
+
+ This patch modifies the current loading strategy of the pjsip configuration. If
+ duplicate sections (e.g. sections containing the same [id/type]) are defined in
+ [pjsip.conf], the loader will consider the configuration for the given type as
+ invalid when the duplicate section is encountered. The entire configuration
+ (including what was previously loaded) for the duplicate [id/type] sections
+ will be rejected and destroyed, an error message is logged and the load
+ processing for the given stops.
+
+ ASTERISK-24996
+ Reported By: Ashley Sanders
+
+ Change-Id: I35090ca4cd40f1f34881dfe701a329145c347aef
+
+2014-11-04 06:03 +0000 [89f6719f7a] Joshua Colp <jcolp@digium.com>
+
+ * res_pjsip_outbound_registration: Add virtual line support.
+
+ Virtual line support establishes a relationship between messages
+ related to an outbound registration and a local endpoint. This is
+ accomplished by attaching a parameter to the Contact of the outbound
+ registration and looking for it on any received requests. If the
+ parameter exists and can be matched to an outbound registration
+ the configured endpoint is associated with the request.
+
+ ASTERISK-24949 #close
+ Reported by: Joshua Colp
+
+ Change-Id: I7df909d2625479110a83fdd354c21ac539e8615d
+
+2015-04-29 06:39 +0000 [d61f03c4f9] Corey Farrell <git@cfware.com>
+
+ * ARI: Fix missing dependencies.
+
+ ARI modules that are generated by 'make ari-stubs' are all dependent on
+ res_ari_model. Additionally some of the same modules depend on one or more
+ res_stasis_* modules.
+
+ ASTERISK-25027 #close
+ Reported by: Corey Farrell
+
+ Change-Id: I8e07fe7e81fedacb87232f2b6f8b5f47927b4153
+
+2015-04-29 06:26 +0000 [3e4624ad21] Corey Farrell <git@cfware.com>
+
+ * res_pjsip: Remove incorrect MODULEINFO from presence_xml.c.
+
+ Remove incorrect MODULEINFO block and unneeded header includes
+ from presence_xml.c.
+
+ ASTERISK-25027
+ Reported by: Corey Farrell
+
+ Change-Id: I977c609ab9d1fe05373027c4138900f6985990eb
+
+2015-04-29 06:17 +0000 [fed9faab8d] Corey Farrell <git@cfware.com>
+
+ * Git Migration: Create doc/rest-api when needed.
+
+ Create the directory './doc/rest-api' at the start of 'make ari-stubs'
+ to prevent an error when documentation is generated. The directory is
+ also added to git ignores.
+
+ ASTERISK-25027
+ Reported by: Corey Farrell
+
+ Change-Id: Iaccc7f0138501c23aa78feaca2f3cce9e68cbc1b
+
+2015-04-29 05:17 +0000 [df23c8a86b] Joshua Colp <jcolp@digium.com>
+
+ * res_pjsip_outbound_registration: Fix build due to removal of transaction.
+
+ Change-Id: I7a8a7beec3334cec304943f2dd7597eabe2e3150
+
+2015-04-28 19:18 +0000 [95ab9fdb1a] Joshua Colp <jcolp@digium.com>
+
+ * Merge "res_pjsip_outbound_registration: Add debugging messages." into 13
+2015-04-28 19:18 +0000 [0e70dc0dc8] Joshua Colp <jcolp@digium.com>
+
+ * Merge "res_pjsip_outbound_registration: Don't fail on delayed processing: 13." into 13
+2015-04-27 16:56 +0000 [e39bd6ba46] Mark Michelson <mmichelson@digium.com>
+
+ * res_pjsip_outbound_registration: Don't fail on delayed processing: 13.
+
+ This is the Asterisk 13 version of a change to master that allows for
+ registration responses to be processed successfully potentially after
+ the original transaction has timed out. The main difference between this
+ and the master change is that the master version has API changes that
+ are unacceptable for 13. For 13, this is worked around by adding a new
+ API call that the outbound registration code uses instead.
+
+ The following is the text from the master version of this commit:
+
+ Odd behaviors have been observed during outbound registrations. The most
+ common problem witnessed has been one where a request with
+ authentication credentials cannot be created after receiving a 401
+ response. Other behaviors include apparently processing an incorrect SIP
+ response.
+
+ Inspecting the code led to an apparent issue with regards to how we
+ handle transactions in outbound registration code. When a response to a
+ REGISTER arrives, we save a pointer to the transaction and then push a
+ task onto the registration serializer. Between the time that we save the
+ pointer and push the task, it's possible for the transaction to be
+ destroyed due to a timeout. It's also possible for the address to be
+ reused by the transaction layer for a new transaction.
+
+ To allow for authentication of a REGISTER request to be authenticated
+ after the transaction has timed out, we now also hold a reference to the
+ original REGISTER request instead of the transaction. The function for
+ creating a request with authentication has been altered to take the
+ original request instead of the transaction where the original request
+ was sent.
+
+ ASTERISK-25020
+ Reported by Mark Michelson
+
+ Change-Id: If1ee5f601be839479a219424f0358a229f358f7c
+2015-04-27 14:44 +0000 [1bf008fc76] Mark Michelson <mmichelson@digium.com>
+
+ * res_pjsip_outbound_registration: Add debugging messages.
+
+ When problems occur regarding outbound registrations, it currently
+ is difficult to debug. Most off-nominal paths had warning messages,
+ but sometimes we want to know what's going on before hitting the
+ off-nominal path. This patch adds lots of debugging output that
+ should give a clearer picture of what is happening with regards
+ to outbound registrations.
+
+ ASTERISK-25020
+ Reported by Mark Michelson
+
+ Change-Id: I577bde7860be0a6c872b5bcb4d5047340bf45d45
+
+2015-04-28 07:13 +0000 [7ee05892d6] Joshua Colp <jcolp@digium.com>
+
+ * Merge "Example script for scan-build (the llvm static analyzer)" into 13
+2015-04-28 05:38 +0000 [0b6410c4f8] Steve Davies <steve@one47.co.uk>
+
+ * res_rtp_asterisk: Resolve 2 discrete memory leaks in DTLS
+
+ ao2 ref leak in res_rtp_asterisk.c when a DTLS policy is created.
+ The resources are linked into a table, but the original alloc refs
+ are never released. ast_strdup leak in rtp_engine.c. If
+ ast_rtp_dtls_cfg_copy() is called twice on the same destination struct,
+ a pointer to an alloc'd string is overwritten before the string is free'd.
+
+ ASTERISK-25022
+ Reported by: one47
+
+ Change-Id: I62a8ceb8679709f6c3769136dc6aa9a68202ff9b
+
+2015-04-28 06:55 +0000 [427209603d] Joshua Colp <jcolp@digium.com>
+
+ * Merge "cdr/cdr_odbc.c: Added to record new columns add on CDR 1.8 Asterisk Version" into 13
+2015-04-27 12:11 +0000 [99fb87ae13] George Joseph <george.joseph@fairview5.com>
+
+ * res_pjsip: Fix SEGV on pending-qualify contacts
+
+ Permanent contacts that hadn't been qualified yet were missing
+ their contact_status entries causing SEGVs when running CLI
+ commands.
+
+ This patch makes sure that contact_statuses are created for
+ both dynamic and permanent contacts when they are created.
+ It also adds checks in the CLI code to make sure there's a
+ contact_status, just in case.
+
+ ASTERISK-25018 #close
+ Reported-by: Ivan Poddubny
+ Tested-by: Ivan Poddubny
+ Tested-by: George Joseph
+
+ Change-Id: I3cc13e5cedcafb24c400368b515b02d7fb81e029
+
+2015-04-15 18:55 +0000 [d5dd43856e] Rodrigo Ramírez Norambuena <decipher.hk@gmail.com>
+
+ * cdr/cdr_odbc.c: Added to record new columns add on CDR 1.8 Asterisk Version
+
+ Add new column to INSERT new columns added in cdr 1.8 version. The columns are:
+ * peeraccount
+ * linkedid
+ * sequence
+ This feature is configurable in cdr_odbc.conf using a new configuration
+ option, 'newcdrcolumns'.
+
+ ASTERISK-24976 #close
+
+ Change-Id: Ibe0c7540a88305c6012786f438a0813ad8b19127
+2015-04-26 17:21 +0000 [e9788056e9] Matt Jordan <mjordan@digium.com>
+
+ * channels/chan_skinny: Fix compilation error introduced in f8e21a1adf
+
+ A typo in commit f8e21a1adf resulted in a compilation error in
+ chan_skinny. This patch fixes the typo.
+
+ ASTERISK-24917
+
+ Change-Id: Id7f4ad1fe948eb2408622e80c27936ce4516c33c
+
+2015-04-26 15:53 +0000 [2d277996b7] Matt Jordan <mjordan@digium.com>
+
+ * Merge "Clang: Fix some more tautological-compare warnings." into 13
+2015-04-24 13:07 +0000 [145f65598c] Matt Jordan <mjordan@digium.com>
+
+ * Merge "app_confbridge: Default the template option to a compatible default profile." into 13
+2015-04-23 15:11 +0000 [7e5056b393] Kevin Harwell <kharwell@digium.com>
+
+ * app_confbridge: Default the template option to a compatible default profile.
+
+ Confbridge dynamic profiles did not have a default profile unless you
+ explicitly used Set(CONFBRIDGE(bridge,template)=default_bridge). If a
+ template was not set prior to the bridge being created then some
+ options were left with no default values set. This patch makes it so
+ the default templates are set to the default bridge and user profiles.
+
+ ASTERISK-24749 #close
+ Reported by: philippebolduc
+
+ Change-Id: I1bd6e94b38701ac2112d842db68de63d46f60e0a
+
+2015-04-24 09:17 +0000 [1da9ec969d] Mark Michelson <mmichelson@digium.com>
+
+ * res_pjsip_outbound_authenticator: Increase CSeq on authed requests.
+
+ The way PJSIP generates an authenticated request is to use a previous
+ request as a template. This means that the authenticated request will
+ have the same Call-ID, From header (including tag), and CSeq as the
+ original request. PJSIP generates a new branch on the Via header to
+ indicate that this is a new transaction, though.
+
+ There are some SIP implementations, though, that do not notice the
+ change in the branch and therefore will match the authed request to the
+ original request's transaction. Since the CSeq is the same, the server
+ will repeat the response it sent to the original request.
+
+ This patch aids interoperability by increasing the CSeq of the authed
+ request by one.
+
+ ASTERISK-24845 #close
+ Reported by: Carl Fortin
+ Tested by: Carl Fortin
+
+ Change-Id: I39c4ca52e688a9f83bcc1878371334becdc5be01
+
+2015-04-24 09:24 +0000 [bf3d9db4a6] Matt Jordan <mjordan@digium.com>
+
+ * Merge "res_pjsip_t38: Don't crash on authenticated reinvite after originated T.38 FAX." into 13
+2015-04-20 13:06 +0000 [cb318f3960] Diederik de Groot <ddegroot@talon.nl>
+
+ * Example script for scan-build (the llvm static analyzer)
+
+ - Added Pre-amble (Options / Flags / Usage Example / GNU License)
+ - Extended Configurability
+ - Made Executable
+
+ ASTERISK-24917
+ Change-Id: I70405fe54e4be7dbfbcb62e291690069b88617a8
+
+2015-04-23 17:23 +0000 [b3cd5bc77f] Mark Michelson <mmichelson@digium.com>
+
+ * Merge "Clang: change previous tautological-compare fixes." into 13
+2015-04-23 12:54 +0000 [eabf3b5a3c] Mark Michelson <mmichelson@digium.com>
+
+ * res_pjsip_t38: Don't crash on authenticated reinvite after originated T.38 FAX.
+
+ When Asterisk originates a channel to an application, the channel is
+ hung up once the application finishes executing. When the application
+ in question is SendFax, the Asterisk PJSIP code will attempt to reinvite
+ the T.38 session to audio after the FAX completes. The hangup of the
+ channel happens in the midst of this reinvite transaction. In most
+ circumstances, this works out okay because the BYE is delayed until the
+ reinvite transaction can complete.
+
+ However, if the reinvite that Asterisk sends receives a 401/407
+ response, then Asterisk's attempt to re-send the reinvite with
+ authentication will fail. This is because the session supplement in
+ res_pjsip_t38 makes the assumption that the channel on the session will
+ always be non-NULL. Since the channel has been hung up, though, the
+ channel is now NULL. Attempting to operate on the channel causes a
+ crash.
+
+ This patch fixes the issue by ensuring that the channel on the session
+ is not NULL before attempting to mess with the T.38 framehook.
+
+ This patch also contains some corrections for comments that were
+ incorrect and really confused me when I first started looking at the
+ code.
+
+ ASTERISK-25004 #close
+ Reported by Mark Michelson
+
+ Change-Id: Ic5a1230668369dda4bb13524098aed9306ab45a0
+2015-04-23 09:16 +0000 [f70d21b2cf] George Joseph <george.joseph@fairview5.com>
+
+ * res_pjsip: Validate that contact uris start with sip: or sips:
+
+ Currently we use pjsip_parse_hdr to validate contact uris but it
+ appears that it allows uris without a scheme if there's a port
+ supplied. I.E myexample.com will fail but myexample.com:5060 will
+ pass even though it has no scheme. This causes SEGVs later on
+ whenever the uri is used.
+
+ To prevent this, permanent_contact_validate has been updated to check
+ that the scheme is either 'sip' or 'sips'.
+
+ 2 uses of possibly-null endpoint have also been fixed in
+ create_out_of_dialog_request.
+
+ ASTERISK-24999
+
+ Change-Id: Ifc17d16a4923e1045d37fe51e43bbe29fa556ca2
+ Reported-by: Brad Latus
+
+2015-04-23 08:00 +0000 [1bb16bedc7] Diederik de Groot <ddegroot@talon.nl>
+
+ * Clang: change previous tautological-compare fixes.
+
+ clang can warn about a so called tautological-compare, when it finds
+ comparisons which are logically always true, and are therefor deemed
+ unnecessary.
+
+ Exanple:
+ unsigned int x = 4;
+ if (x > 0) // x is always going to be bigger than 0
+
+ Enum Case:
+ Each enumeration is its own type. Enums are an integer type but they
+ do not have to be *signed*. C leaves it up to the compiler as an
+ implementation option what to consider the integer type of a particu-
+ lar enumeration is. Gcc treats an enum without negative values as
+ an int while clang treats this enum as an unsigned int.
+
+ rmudgett & mmichelson: cast the enum to (unsigned int) in assert.
+ The cast does have an effect. For gcc, which seems to treat all enums
+ as int, the cast to unsigned int will eliminate the possibility of
+ negative values being allowed. For clang, which seems to treat enums
+ without any negative members as unsigned int, the cast will have no
+ effect. If for some reason in the future a negative value is ever
+ added to the enum the assert will still catch the negative value.
+
+ ASTERISK-24917
+
+ Change-Id: I0557ae0154a0b7de68883848a609309cdf0aee6a
+
+2015-04-23 06:50 +0000 [a06924e9d9] Matt Jordan <mjordan@digium.com>
+
+ * Merge "Astobj2: Ensure all calls to __adjust_lock pass a valid object." into 13
+2015-04-22 16:22 +0000 [1474bb05f6] George Joseph <george.joseph@fairview5.com>
+
+ * res_corosync: Add check for config file before calling corosync apis
+
+ On some systems, res_corosync isn't compatible with the installed version of
+ corosync so corosync_cfg_initialize fails, load_module returns LOAD_FAILURE,
+ and Asterisk terminates. The work around has been to remember to add
+ res_corosync as a noload in modules.conf. A better solution though is to have
+ res_corosync check for its config file before attempting to call corosync apis
+ and return LOAD_DECLINE if there's no config file. This lets Asterisk loading
+ continue.
+
+ If you have a res_corosync.conf file and res_corosync fails, you get the same
+ behavior as today and the fatal error tells you something is wrong with the
+ install.
+
+ ASTERISK-24998
+
+ Change-Id: Iaf94a9431a4922ec4ec994003f02135acfdd3889
+2015-04-22 15:17 +0000 [73efb093b8] Corey Farrell <git@cfware.com>
+
+ * Astobj2: Ensure all calls to __adjust_lock pass a valid object.
+
+ __adjust_lock doesn't check for invalid objects, and doesn't have an
+ appropriate return value for invalid objects. Most callers of
+ __adjust_lock pass objects that have already been confirmed valid,
+ this change adds checks before the remaining calls.
+
+ ASTERISK-24997 #close
+ Reported by: Corey Farrell
+
+ Change-Id: I669100f87937cc3f867cec56a27ae9c01292908f
+
+2015-04-22 16:32 +0000 [b0e929219b] George Joseph <george.joseph@fairview5.com>
+
+ * .gitignore: Add .gcno and .gcda
+
+ Products of --enable-coverage
+
+ Change-Id: Ie20882d64b60692e2c941ea8872ab82a86ce77a3
+
+2015-04-22 14:25 +0000 [5a3948a66f] Matt Jordan <mjordan@digium.com>
+
+ * Merge "Fix/Update clang-RAII macro implementation" into 13
+2015-04-22 14:07 +0000 [2ef1e1fc68] Mark Michelson <mmichelson@digium.com>
+
+ * Merge "res_pjsip_mwi: Send unsolicited MWI NOTIFY on startup and when endpoint registers." into 13
+2015-04-22 04:17 +0000 [d6dfc85666] Diederik de Groot <ddegroot@talon.nl>
+
+ * Clang: Fix some more tautological-compare warnings.
+
+ clang can warn about a so called tautological-compare, when it finds
+ comparisons which are logically always true, and are therefor deemed
+ unnecessary.
+
+ Exanple:
+ unsigned int x = 4;
+ if (x > 0) // x is always going to be bigger than 0
+
+ Enum Case:
+ Each enumeration is its own type. Enums are an integer type but they
+ do not have to be *signed*. C leaves it up to the compiler as an
+ implementation option what to consider the integer type of a particu-
+ lar enumeration is. Gcc treats an enum without negative values as
+ an int while clang treats this enum as an unsigned int.
+
+ rmudgett & mmichelson: cast the enum to (unsigned int) in assert.
+ The cast does have an effect. For gcc, which seems to treat all enums
+ as int, the cast to unsigned int will eliminate the possibility of
+ negative values being allowed. For clang, which seems to treat enums
+ without any negative members as unsigned int, the cast will have no
+ effect. If for some reason in the future a negative value is ever
+ added to the enum the assert will still catch the negative value.
+
+ ASTERISK-24917
+ Change-Id: Ief23ef68916192b9b72dabe702b543ecfeca0b62
+
+2015-04-22 05:45 +0000 [edd9e54818] Joshua Colp <jcolp@digium.com>
+
+ * Merge "Check for ao2_alloc failure in __ast_channel_internal_alloc." into 13
+2015-04-14 14:04 +0000 [7b57116833] Joshua Colp <jcolp@digium.com>
+
+ * res_pjsip_mwi: Send unsolicited MWI NOTIFY on startup and when endpoint registers.
+
+ Currently the res_pjsip_mwi module only sends an unsolicited MWI NOTIFY upon
+ a mailbox state change (such as a new message being left, or one being deleted).
+ In practice this is not sufficient to keep clients aware of the current MWI status.
+
+ This change makes the module send unsolicited MWI NOTIFY on startup so that
+ clients are guaranteed to have the most up to date MWI information. It also makes
+ clients receive an unsolicited MWI NOTIFY upon registration so if they are unaware
+ of the current MWI status they receive it.
+
+ ASTERISK-24982 #close
+ Reported by: Joshua Colp
+
+ Change-Id: I043f20230227e91218f18a82c7d5bb2aa62b1d58
+
+2015-04-22 05:29 +0000 [4423d5f755] Joshua Colp <jcolp@digium.com>
+
+ * Merge "res_pjsip_pubsub: Set the endpoint on SUBSCRIBE dialogs." into 13
+2015-04-21 15:17 +0000 [ad1a118632] Corey Farrell <git@cfware.com>
+
+ * Check for ao2_alloc failure in __ast_channel_internal_alloc.
+
+ Fix a crash that could occur in __ast_channel_internal_alloc if
+ ao2_alloc fails.
+
+ ASTERISK-24991 #close
+
+ Change-Id: I4ca89189eb22f907408cb87d0a1645cfe1314a90
+
+2015-04-20 14:30 +0000 [3327560cb2] Mark Michelson <mmichelson@digium.com>
+
+ * res_pjsip_pubsub: Set the endpoint on SUBSCRIBE dialogs.
+
+ When SUBSCRIBE dialogs were established, we never associated
+ the endpoint that created the subscription with the dialog
+ we end up creating. In most cases, this ended up not causing
+ any problems.
+
+ The actual bug that was observed was that when a device that
+ was behind NAT established a subscription with Asterisk, Asterisk
+ would end up sending in-dialog NOTIFY requests to the device's
+ private IP addres instead of the public address of the NAT router.
+
+ When Asterisk receives the initial SUBSCRIBE from the device,
+ res_pjsip_nat rewrites the contact to the public address on which the
+ SUBSCRIBE was received. This allows for the dialog to have its target
+ address set to the proper public address. Asterisk then would send a 200
+ OK response to the SUBSCRIBE, then a NOTIFY with the initial
+ subscription state. The device would then send a 200 OK response to
+ Asterisk's NOTIFY.
+
+ Here's where things went wrong. When the 200 OK arrived, res_pjsip_nat
+ did not rewrite the address in the Contact header. Then, when the PJSIP
+ dialog layer processed the 200 OK, PJSIP would perform a comparison
+ between the IP address in the Contact header and its saved target
+ address for the dialog. Since they differed, PJSIP would update the
+ target dialog address to be the address in the Contact header. From this
+ point, if Asterisk needed to send a NOTIFY to the device, the result was
+ that the NOTIFY would be sent to the private address that the device
+ placed in the Contact header.
+
+ The reason why res_pjsip_nat did not rewrite the address when it
+ received the 200 OK response was that it could not associate the
+ incoming response with a configured endpoint. This is because on a
+ response, the only way to associate the response to an endpoint is by
+ finding the dialog that the response is associated with and then finding
+ the endpoint that is associated with that dialog. We do not perform
+ endpoint lookups on responses. res_pjsip_pubsub skipped the step of
+ associating the endpoint with the dialog we created, so res_pjsip_nat
+ could not find the associated endpoint and therefore couldn't rewrite
+ the contact.
+
+ This commit message is like 50x longer than the actual fix.
+
+ ASTERISK 24981 #close
+ Reported by Mark Michelson
+
+ Change-Id: I2b963c58c063bae293e038406f7d044a8a5377cd
+2015-04-20 18:00 +0000 [d08446ec36] Richard Mudgett <rmudgett@digium.com>
+
+ * chan_dahdi/sig_pri: Make post AMI HangupRequest events on PRI channels.
+
+ The chan_dahdi channel driver is a very old driver. The ability for it to
+ support ISDN was added well after the initial analog support. Setting the
+ softhangup flags is a carry over from the original analog code. The
+ driver was not updated to call ast_queue_hangup() which will post the AMI
+ HangupRequest event.
+
+ * Changed sig_pri.c to call ast_queue_hangup() instead of setting the
+ softhangup flag when the remote party initiates a hangup.
+
+ ASTERISK-24895 #close
+ Reported by: Andrew Zherdin
+
+ Change-Id: I5fe2e48556507785fd8ab8e1c960683fd5d20325
+
+2015-04-20 17:23 +0000 [96e18453f4] Joshua Colp <jcolp@digium.com>
+
+ * Merge "pjsip_options: Fix non-qualified contacts showing as unavailable" into 13
+2015-04-20 13:01 +0000 [2be9cc2643] Diederik de Groot <ddegroot@talon.nl>
+
+ * Fix/Update clang-RAII macro implementation
+
+ - When you need to refer to 'variable XXX' outside a block, it needs
+ to be declared as '__block XXX', otherwise it will not be available with-
+ in the block, making updating that variable hard to do, and ast_free
+ lead to issues.
+
+ - Removed the #error message
+ because it creates complications when compiling external projects
+ against asterisk For example when using a different compiler than the
+ one used to compile asterisk. The warning/error should be generated
+ during the configure process not the compilation process
+
+ ASTERISK-24917
+ Change-Id: I12091228090e90831bf2b498293858f46ea7a8c2
+2015-04-20 09:53 +0000 [b74b2cdcda] George Joseph <george.joseph@fairview5.com>
+
+ * pjsip_options: Fix format specifier for int64_t rtt.
+
+ Contact status rtt is an int64_t and needs the PRId64 macro to
+ properly create the format specifier on 32-bit systems.
+
+ Change-Id: I4b8ab958fc1e9a179556a9b4ffa49673ba9fdec7
+
+2015-04-20 06:29 +0000 [27a122af66] Matt Jordan <mjordan@digium.com>
+
+ * Merge "main/pbx: Don't attempt to destroy a previously destroyed exten/priority tuple" into 13
+2015-04-20 05:54 +0000 [9581a0ebf3] Joshua Colp <jcolp@digium.com>
+
+ * Merge "Fix issue with AST_THREADSTORAGE_RAW when DEBUG_THREADLOCALS is enabled." into 13
+2015-04-18 13:36 +0000 [63169e00ff] George Joseph <george.joseph@fairview5.com>
+
+ * pjsip_options: Fix non-qualified contacts showing as unavailable
+
+ The "Add qualify_timeout processing and eventing" patch introduced
+ an issue where contacts that had qualify_frequency set to 0 were
+ showing Unavailable instead Unknown. This patch checks for
+ qualify_frequency=0 and create an "Unknown" contact_status
+ with an RTT = 0.
+
+ Previously, the lack of contact_status implied Unknown but since
+ we're now changing endpoint state based on contact_status, I've
+ had to add new UNKNOWN status so that changes could trigger the
+ appropriate contact_status observers.
+
+ ASTERISK-24977: #close
+
+ Change-Id: Ifcbc01533ce57f0e4e584b89a395326e098b8fe7
+
+2015-04-19 15:49 +0000 [f0c82a173a] Matt Jordan <mjordan@digium.com>
+
+ * main/pbx: Don't attempt to destroy a previously destroyed exten/priority tuple
+
+ When a PBX registrar is unloaded, it will fail to remove its extension from
+ the context root_table if a dialplan application used by that extension is
+ still loaded. This can be the case for AGI, which can be unloaded after several
+ of the standard PBX providers. Often, this is harmless; however, if the
+ extension's priorities are removed during the failed unloading *and* the
+ dialplan application later unregisters, it leaves a ticking timebomb for the
+ next PBX provider that attempts to iterate over the extensions. When that
+ occurs, the peer_table pointer on the extension will already be set to NULL.
+ The current code does not check to see if the pointer is NULL before passing
+ it to a hashtab function this is not NULL tolerant.
+
+ Since it is possible for the peer_table to be NULL when we normally would not
+ expect that to be the case, the solution in this patch is to simply skip over
+ processing an extension's priorities if peer_table is NULL.
+
+ Prior to this patch, the tests/pbx/callerid_match test would crash during
+ module unload. With this patch, the test no longer crashes after running.
+
+ ASTERISK-24774 #close
+ Reported by: Corey Farrell
+
+ Change-Id: I2bbeecb7e0f77bac303a1b9135e4cdb4db6d4c40
+
+2015-04-17 18:05 +0000 [82bc0fd3ad] Richard Mudgett <rmudgett@digium.com>
+
+ * res_fax: Fix latent bug exposed by ASTERISK-24841 changes.
+
+ Three fax related tests started failing as a result of changes made for
+ ASTERISK-24841:
+ tests/fax/pjsip/gateway_t38_g711
+ tests/fax/sip/gateway_mix1
+ tests/fax/sip/gateway_mix3
+
+ Historically, ast_channel_make_compatible() did nothing if the channels
+ were already "compatible" even if they had a sub-optimal translation path
+ already setup. With the changes from ASTERISK-24841 this is no longer
+ true in order to allow the best translation paths to always be picked. In
+ res_fax.c:fax_gateway_framehook() code manually setup the channels to go
+ through slin and then called ast_channel_make_compatible(). With the
+ previous version of ast_channel_make_compatible() this was always a
+ no-operation.
+
+ * Remove call to ast_channel_make_compatible() in fax_gateway_framehook()
+ that now undoes what was just setup when the framehook is attached.
+
+ * Fixed locking around saving the channel formats in
+ fax_gateway_framehook() to ensure that the formats that are saved are
+ consistent.
+
+ * Fix copy pasta errors in fax_gateway_framehook() that confuses read and
+ write when dealing with saved channel formats.
+
+ ASTERISK-24841
+ Reported by: Matt Jordan
+
+ Change-Id: I6fda0877104a370af586a5e8cf9e161a484da78d
+
+2015-04-17 16:19 +0000 [c59a800707] Corey Farrell <git@cfware.com>
+
+ * Fix issue with AST_THREADSTORAGE_RAW when DEBUG_THREADLOCALS is enabled.
+
+ When DEBUG_THREADLOCALS is enabled it causes the threadlocal cleanup to be
+ called as a function. This causes a compile error with raw threadstorage as
+ it uses NULL for cleanup. This fix uses a macro that provides NULL when
+ DEBUG_THREADLOCALS is disabled, and replaces the call to "c_cleanup(data);"
+ with "{};" when DEBUG_THREADLOCALS is enabled.
+
+ ASTERISK-24975 #close
+ Reported by: Ashley Sanders
+
+ Change-Id: I3ef7428ee402816d9fcefa1b3b95830c00d5c402
+
+2015-04-17 15:57 +0000 [e05b076827] Matt Jordan <mjordan@digium.com>
+
+ * Merge "Detect potential forwarding loops based on count." into 13
+2015-04-15 10:38 +0000 [4f1a8dbe92] Mark Michelson <mmichelson@digium.com>
+
+ * Detect potential forwarding loops based on count.
+
+ A potential problem that can arise is the following:
+
+ * Bob's phone is programmed to automatically forward to Carol.
+ * Carol's phone is programmed to automatically forward to Bob.
+ * Alice calls Bob.
+
+ If left unchecked, this results in an endless loops of call forwards
+ that would eventually result in some sort of fiery crash.
+
+ Asterisk's method of solving this issue was to track which interfaces
+ had been dialed. If a destination were dialed a second time, then
+ the attempt to call that destination would fail since a loop was
+ detected.
+
+ The problem with this method is that call forwarding has evolved. Some
+ SIP phones allow for a user to manually forward an incoming call to an
+ ad-hoc destination. This can mean that:
+
+ * There are legitimate use cases where a device may be dialed multiple
+ times, or
+ * There can be human error when forwarding calls.
+
+ This change removes the old method of detecting forwarding loops in
+ favor of keeping a count of the number of destinations a channel has
+ dialed on a particular branch of a call. If the number exceeds the
+ set number of max forwards, then the call fails. This approach has
+ the following advantages over the old:
+
+ * It is much simpler.
+ * It can detect loops involving local channels.
+ * It is user configurable.
+
+ The only disadvantage it has is that in the case where there is a
+ legitimate forwarding loop present, it takes longer to detect it.
+ However, the forwarding loop is still properly detected and the
+ call is cleaned up as it should be.
+
+ Address review feedback on gerrit.
+
+ * Correct "mfgium" to "Digium"
+ * Decrement max forwards by one in the case where allocation of the
+ max forwards datastore is required.
+ * Remove irrelevant code change from pjsip_global_headers.c
+
+ ASTERISK-24958 #close
+
+ Change-Id: Ia7e4b7cd3bccfbd34d9a859838356931bba56c23
+2015-04-11 16:56 +0000 [674b18bdf0] George Joseph <george.joseph@fairview5.com>
+
+ * pjsip_options: Add qualify_timeout processing and eventing
+
+ This is the second follow-on to https://reviewboard.asterisk.org/r/4572/ and the
+ discussion at
+ http://lists.digium.com/pipermail/asterisk-dev/2015-March/073921.html
+
+ The basic issues are that changes in contact status don't cause events to be
+ emitted for the associated endpoint. Only dynamic contact add/delete actions
+ update the endpoint. Also, the qualify timeout is fixed by pjsip at 32 seconds
+ which is a long time.
+
+ This patch makes use of the new transaction timeout feature in r4585 and
+ provides the following capabilities...
+
+ 1. A new aor/contact variable 'qualify_timeout' has been added that allows the
+ user to specify the maximum time in milliseconds to wait for a response to an
+ OPTIONS message. The default is 3000ms. When the timer expires, the contact is
+ marked unavailable.
+
+ 2. Contact status changes are now propagated up to the endpoint as follows...
+ When any contact is 'Available', the endpoint is marked as 'Reachable'. When
+ all contacts are 'Unavailable', the endpoint is marked as 'Unreachable'. The
+ existing endpoint events are generated appropriately.
+
+ ASTERISK-24863 #close
+
+ Change-Id: Id0ce0528e58014da1324856ea537e7765466044a
+ Tested-by: Dmitriy Serov
+ Tested-by: George Joseph <george.joseph@fairview5.com>
+
+2015-04-17 15:29 +0000 [f1abf51b73] Matt Jordan <mjordan@digium.com>
+
+ * Merge "res_pjsip: Refactor endpt_send_request to include transaction timeout" into 13
+2015-04-17 10:30 +0000 [ab5b38e434] Matt Jordan <mjordan@digium.com>
+
+ * Merge "res_pjsip: Add global option to limit the maximum time for initial qualifies" into 13
+2015-04-17 10:25 +0000 [ec77b6148f] Joshua Colp <jcolp@digium.com>
+
+ * Merge "res_pjsip_pubsub: On notify fail deleted sub_tree is then referenced" into 13
+2015-04-16 10:51 +0000 [b56c1914fa] Kevin Harwell <kharwell@digium.com>
+
+ * bridge.c: NULL app causes crash during attended transfer
+
+ Due to a race condition there was a chance that during an attended transfer the
+ channel's application would return NULL. This, of course, would cause a crash
+ when attempting to access the memory. This patch retrieves the channel's app
+ at an earlier time in processing in hopes that the app name is available.
+ However, if it is not then "unknown" is used instead. Since some string value
+ is now always present the crash can no longer occur.
+
+ ASTERISK-24869 #close
+ Reported by: viniciusfontes
+ Review:
+
+ Change-Id: I5134b84c4524906d8148817719d76ffb306488ac
+
+2015-04-16 13:20 +0000 [8d4ce7cc2b] Scott Griepentrog <scott@griepentrog.com>
+
+ * res_pjsip_pubsub: On notify fail deleted sub_tree is then referenced
+
+ This change makes the send_notify of the sub_tree
+ not happen when the sub_tree has been deleted due
+ to the notify call failing, which avoids a crash.
+
+ ASTERISK-24970 #close
+
+ Change-Id: I1f20ffc08b192f59c457293b218025a693992cbf
+2015-04-11 16:39 +0000 [bf46799f0e] George Joseph <george.joseph@fairview5.com>
+
+ * res_pjsip: Refactor endpt_send_request to include transaction timeout
+
+ This is the first follow-on to https://reviewboard.asterisk.org/r/4572/ and the
+ discussion at
+ http://lists.digium.com/pipermail/asterisk-dev/2015-March/073921.html
+
+ Since we currently have no control over pjproject transaction timeout, this
+ patch pulls the pjsip_endpt_send_request function out of pjproject and into
+ res_pjsip/endpt_send_transaction in order to implement that capability.
+
+ Now when the transaction is initiated, we also schedule our own pj_timer with
+ our own desired timeout.
+
+ If the transaction completes before either timeout, pjproject cancels its timer,
+ and calls our tsx callback where we cancel our timer and run the app callback.
+
+ If the pjproject timer times out first, pjproject calls our tsx callback where
+ we cancel our timer and run the app callback.
+
+ If our timer times out first, we terminate the transaction which causes
+ pjproject to cancel its timer and call our tsx callback where we run the app
+ callback.
+
+ Regardless of the scenario, pjproject is calling the tsx callback inside the
+ group_lock and there are checks in the callback to make sure it doesn't run
+ twice.
+
+ As part of this patch ast_sip_send_out_of_dialog_request was created to replace
+ its similarly named private function. It takes a new timeout argument in
+ milliseconds (<= 0 to disable the timeout).
+
+ ASTERISK-24863 #close
+ Reported-by: George Joseph <george.joseph@fairview5.com>
+ Tested-by: George Joseph <george.joseph@fairview5.com>
+
+ Change-Id: I0778dc730d9689c5147a444a04aee3c1026bf747
+2015-04-11 17:04 +0000 [1b6f6ff841] George Joseph <george.joseph@fairview5.com>
+
+ * res_pjsip: Add global option to limit the maximum time for initial qualifies
+
+ Currently when Asterisk starts initial qualifies of contacts are spread out
+ randomly between 0 and qualify_timeout to prevent network and system overload.
+ If a contact's qualify_frequency is 5 minutes however, that contact may be
+ unavailable to accept calls for the entire 5 minutes after startup. So while
+ staggering the initial qualifies is a good idea, basing the time on
+ qualify_timeout could leave contacts unavailable for too long.
+
+ This patch adds a new global parameter "max_initial_qualify_time" that sets the
+ maximum time for the initial qualifies. This way you could make sure that all
+ your contacts are initialy, randomly qualified within say 30 seconds but still
+ have the contact's ongoing qualifies at a 5 minute interval.
+
+ If max_initial_qualify_time is > 0, the formula is initial_interval =
+ min(max_initial_interval, qualify_timeout * random(). If not set,
+ qualify_timeout is used.
+
+ The default is "0" (disabled).
+
+ ASTERISK-24863 #close
+
+ Change-Id: Ib80498aa1ea9923277bef51d6a9015c9c79740f4
+ Tested-by: George Joseph <george.joseph@fairview5.com>
+
+2015-04-15 16:08 +0000 [5d218cde87] George Joseph <george.joseph@fairview5.com>
+
+ * More .gitignore updates
+
+ Added .pyc and .sha1 to the top-level .gitignore.
+
+ Change-Id: I7dfc4f554d54d22947b38140d3305007503cc16a
+ Tested-by: George Joseph <george.joseph@fairview5.com>
+
+2015-04-15 13:36 +0000 [97f83c4c53] Matt Jordan <mjordan@digium.com>
+
+ * Merge "Build System: Replace comment about setting menuselect defaults." into 13
+2015-04-14 13:16 +0000 [abd56db3e0] Rodrigo Ramírez Norambuena <decipher.hk@gmail.com>
+
+ * cel_pgsql: Fix name string for log on unable allocate memory.
+
+ The LOG_ERROR has reference to CDR instead of CEL for LENGTHEN_BUF1 and
+ LENGTHEN_BUF2.
+
+ ASTERISK-24965 #close
+ Reported by: Rodrigo Ramirez Norambuena
+
+ Change-Id: Icc818697d7d66d34bfe3048cdd15ca2b06c89744
+2015-04-14 13:48 +0000 [222fbe1d9a] Corey Farrell <git@cfware.com>
+
+ * Build System: Replace comment about setting menuselect defaults.
+
+ The Makefile claims that you can set default menuselect options by creating
+ ~/.asterisk.makeopts or /etc/asterisk.makeopts, but those files have never
+ been respected in Asterisk 11 or 13. This changes the comment to accurately
+ reflect that these files are not automatically used by the build system.
+
+ ASTERISK-13721 #close
+ Reported by: pj
+
+ Change-Id: Ibde804ff196283def49ccb9432fbf224a22586e2
+
+2015-04-12 09:08 +0000 [07e729cc7b] Rodrigo Ramírez Norambuena <decipher.hk@gmail.com>
+
+ * cdr_pgsql: Fix CLI "cdr show pgsql status" command.
+
+ The command always showed the usage information.
+
+ * Fix the error in command validation for CLI_SHOWUSAGE.
+
+ ASTERISK-24959 #close
+ Reported by: Rodrigo Ramirez Norambuena
+
+ Change-Id: I584f0936bb01001336a468a55c1d05d79fe795d5
+ (cherry picked from commit 23a180cade51e84b9def65b05759c3cb9feba225)
+
+2015-04-13 19:06 +0000 [7d43d85bea] George Joseph <george.joseph@fairview5.com>
+
+ * .gitignore updates for master/13
+
+ Added products of ./bootstrap
+
+ Added nmenuselect and gmenuselect to menuselect/
+
+ Change-Id: Ied658463958bafc04a9aff9ebc28e40c116a6e35
+
+2015-04-13 14:41 +0000 [3d27c223a5] David M. Lee <dlee@respoke.io>
+
+ * Fixing extconf compile
+
+ During the mass code deletion for clang support, a stray backslash was
+ left behind that was causing utils to fail to compile.
+
+ Change-Id: I60e5fa58c9a5b248bde23aaada79ff663f87a2a1
+
+2015-04-13 12:03 +0000 [30045b4e67] Matt Jordan <mjordan@digium.com>
+
+ * Merge "build_tools/make_version: Update version parsing for Git migration" into 13
+2015-04-13 10:47 +0000 [88dbf6653e] Joshua Colp <jcolp@digium.com>
+
+ * Merge "res_monitor: Add dependency on func_periodic_hook." into 13
+2015-04-13 09:54 +0000 [e996d8f728] Matt Jordan <mjordan@digium.com>
+
+ * build_tools/make_version: Update version parsing for Git migration
+
+ External systems - such as the Asterisk Test Suite - require knowledge of the
+ upstream branch. Unfortunately, after moving to Git, the Asterisk version
+ currently consists of only a 'GIT" prefix followed by an object blob,
+ e.g., GIT-as08d7. This makes it difficult for such systems to know what
+ features are available in a particular check out of Asterisk.
+
+ This patch fixes this by hardcoding the branch in a variable in the
+ make_version script. Since the mainline branches are not changed often -
+ typically only once a year - this is a reasonable approach to solving
+ the problem, and is more reliable than parsing the output of 'git branch
+ -vv'. Branches that track off of an upstream primary branch will then get the
+ benefit of knowing which mainline branch they are currently based off
+ of.
+
+ ASTERISK-24954 #close
+
+ Change-Id: I8090d5d548b6d19e917157ed530b914b7eaf9799
+
+2015-04-12 12:59 +0000 [d1a6f1a9f9] Matt Jordan <mjordan@digium.com>
+
+ * git migration: Remove support for file versions
+
+ Git does not support the ability to replace a token with a version
+ string during check-in. While it does have support for replacing a
+ token on clone, this is somewhat sub-optimal: the token is replaced
+ with the object hash, which is not particularly easy for human
+ consumption. What's more, in practice, the source file version was often
+ not terribly useful. Generally, when triaging bugs, the overall version
+ of Asterisk is far more useful than an individual SVN version of a file.
+ As a result, this patch removes Asterisk's support for showing source file
+ versions.
+
+ Specifically, it does the following:
+ * main/asterisk:
+ - Refactor the file_version structure to reflect that it no longer
+ tracks a version field.
+ - Alter the "core show file version" CLI command such that it always
+ reports the version of Asterisk. The file version is no longer
+ available.
+
+ * main/manager: The Version key now always reports the Asterisk version.
+
+ * UPGRADE: Add notes for:
+ - Modification to the ModuleCheck AMI Action.
+ - Modification of the "core show file version" CLI command.
+
+ Change-Id: Ia932d3c64cd18a14a3c894109baa657ec0a85d28
+
+2015-04-13 06:19 +0000 [0e4b997cd7] Corey Farrell <git@cfware.com>
+
+ * res_monitor: Add dependency on func_periodic_hook.
+
+ OPTIONAL_API has conditionals to define AST_OPTIONAL_API and
+ AST_OPTIONAL_API_ATTR differently based on if AST_API_MODULE is defined.
+ Unfortunately this is inside the include protection block, so only the
+ first status of AST_API_MODULE is respected. For example res_monitor
+ is an optional API provider, but uses func_periodic_hook. This makes
+ func_periodic_hook non-optional to res_monitor.
+
+ ASTERISK-17608 #close
+ Reported by: Warren Selby
+
+ Change-Id: I8fcf2a5e7b481893e17484ecde4f172c9ffb5679
+
+2015-04-12 15:27 +0000 [91c1ed7ef6] Matt Jordan <mjordan@digium.com>
+
+ * Merge "main/editline: Add .gitignore." into 13
+2015-04-12 06:12 +0000 [a77c31b99c] Corey Farrell <git@cfware.com>
+
+ * main/editline: Add .gitignore.
+
+ This patch adds a .gitignore for main/editline to ignore all build results.
+
+ Change-Id: I68c7bf375ea46282689e5a706534b69fca233b5d
+
+2015-04-11 23:22 +0000 [d918c3b78e] Matt Jordan <mjordan@digium.com>
+
+ * .gitignore: Ignore tarballs (*.gz)
+
+ This patch updates the root .gitignore file to ignore files with a .gz
+ extension. This will cause git to ignore downloaded sound tarballs in
+ the the sounds/ directory.
+
+ Change-Id: I1e42fbfa02a8884231507b683e8e49ac3e278aaa
+
+2015-04-11 13:20 +0000 [555b5f5d30] George Joseph <george.joseph@fairview5.com>
+
+ * Add .gitignore and .gitreview files
+
+ Add the .gitignore and .gitreview files to the asterisk repo.
+
+ NB: You can add local ignores to the .git/info/exclude file
+ without having to do a commit.
+
+ Common ignore patterns are in the top-level .gitignore file.
+ Subdirectory-specific ignore patterns are in their own .gitignore
+ files.
+
+ Change-Id: I4c8af3b8e3739957db545f7368ac53f38e99f696
+ Tested-by: George Joseph
+
+2015-04-11 10:35 +0000 [5807ca519c] Matthew Jordan <mjordan@digium.com>
+
+ * Blocked revisions 434708
+
+ ........
+ main/event: Remove unnecessary assignment of negative value to enum
+
+ When cleaning up some clang compiler warnings, the comparison of a negative
+ value to an unsigned enum was removed. However, the initial assignment of a
+ negative value to said enum remained in the variable declaration. This patch
+ removes that assignment.
+
+ Thanks to ibercom in #asterisk-bugs for pointing it out.
+
+
+ git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@434709 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2015-04-11 10:26 +0000 [d0d78d5732] dkdegroot (License 6600)
+
+ * clang compiler warnings: Fix various warnings for tests
+
+ This patch fixes a variety of clang compiler warnings for unit tests. This
+ includes autological comparison issues, ignored return values, and
+ interestingly enough, one embedded function. Fun!
+
+ Review: https://reviewboard.asterisk.org/r/4555
+
+ ASTERISK-24917
+ Reported by: dkdegroot
+ patches:
+ rb4555.patch submitted by dkdegroot (License 6600)
+ ........
+
+ Merged revisions 434705 from http://svn.asterisk.org/svn/asterisk/branches/11
+
+
+ git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@434706 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2015-04-11 10:10 +0000 [4cf7d0bf01] Juergen Spies (License 6698)
+
+ * res/res_pjsip_t38: Add missing initialization of t38faxmaxdatagram
+
+ Prior to this patch, the far_max_datagram value on the UDPTL structure would
+ remain -1 if the remote endpoint fails to provide the SDP media attribute
+ T38FaxMaxDatagram. This can result in the INVITE request being rejected. With
+ this patch, we will now properly initialize the value with either the default
+ value or with the value provided by pjsip.conf's t38_udptl_maxdatagram
+ parameter.
+
+ Review: https://reviewboard.asterisk.org/r/4589
+
+ ASTERISK-24928 #close
+ Reported by: Juergen Spies
+ Tested by: Juergen Spies
+ patches:
+ pjsipT38patch20150331.txt submitted by Juergen Spies (License 6698)
+
+
+ git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@434688 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2015-04-10 18:29 +0000 [13cd99682d] Richard Mudgett <rmudgett@digium.com>
+
+ * chan_pjsip/res_pjsip/bridge_softmix/core: Improve translation path choices.
+
+ With this patch, chan_pjsip/res_pjsip now sets the native formats to the
+ codecs negotiated by a call.
+
+ * The changes in chan_pjsip.c and res_pjsip_sdp_rtp.c set the native
+ formats to include all the negotiated audio codecs instead of only the
+ initial preferred audio codec and later the currently received audio
+ codec.
+
+ * The audio frame handling in channel.c:ast_read() is more streamlined and
+ will automatically adjust to changes in received frame formats. The new
+ policy is to remove translation and pass the new frame format to the
+ receiver except if the translation was to a signed linear format. A more
+ long winded version is commented in ast_read() along with some caveats.
+
+ * The audio frame handling in channel.c:ast_write() is more streamlined
+ and will automatically adjust any needed translation to changes in the
+ frame formats sent. Frame formats sent can change for many reasons such
+ as a recording is being played back or the bridged peer changed the format
+ it sends. Since it is a normal expectation that sent formats can change,
+ the codec mismatch warning message is demoted to a debug message.
+
+ * Removed the short circuit check in
+ channel.c:ast_channel_make_compatible_helper(). Two party bridges need to
+ make channels compatible with each other. However, transfers and moving
+ channels among bridges can result in otherwise compatible channels having
+ sub-optimal translation paths if the make compatible check is short
+ circuited. A result of forcing the reevaluation of channel compatibility
+ is that the asterisk.conf:transcode_via_slin and codecs.conf:genericplc
+ options take effect consistently now. It is unfortunate that these two
+ options are enabled by default and negate some of the benefits to the
+ changes in channel.c:ast_read() by forcing translation through signed
+ linear on a two party bridge.
+
+ * Improved the softmix bridge technology to better control the translation
+ of frames to the bridge. All of the incoming translation is now normally
+ handled by ast_read() instead of splitting any translation steps between
+ ast_read() and the slin factory. If any frame comes in with an unexpected
+ format then the translation path in ast_read() is updated for the next
+ frame and the slin factory handles the current frame translation.
+
+ This is the final patch in a series of patches aimed at improving
+ translation path choices. The other patches are on the following reviews:
+ https://reviewboard.asterisk.org/r/4600/
+ https://reviewboard.asterisk.org/r/4605/
+
+ ASTERISK-24841 #close
+ Reported by: Matt Jordan
+
+ Review: https://reviewboard.asterisk.org/r/4609/
+
+
+ git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@434671 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2015-04-10 16:03 +0000 [af458e2e60] Kevin Harwell <kharwell@digium.com>
+
+ * chan_sip: make progressinband default to no
+
+ After the "progressinband" value setting of "never" was updated to never send a
+ 183 this separated its use from the "no" value. Since "never" was the default,
+ but most users probably expect "no" this patch updates the default for the
+ "progressinband" setting to "no."
+
+ ASTERISK-24835 #close
+ Reported by: Andrew Nagy
+ Review: https://reviewboard.asterisk.org/r/4606/
+
+
+ git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@434654 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2015-04-10 12:53 +0000 [88b0fa7755] yaron nahum (License 6676)
+
+ * res_pjsip: Add an 'auto' option for DTMF Mode
+
+ This patch adds support for automatically detecting the type of DTMF that a
+ PJSIP endpoint supports. When the 'dtmf_mode' endpoint option is set to 'auto',
+ the channel created for an endpoint will attempt to determine if RFC 4733
+ DTMF is supported. If so, it will use that DTMF type. If not, the DTMF type
+ for the channel will be set to inband.
+
+ Review: https://reviewboard.asterisk.org/r/4438
+
+ ASTERISK-24706 #close
+ Reported by: yaron nahum
+ patches:
+ yaron_patch_3_Feb.diff submitted by yaron nahum (License 6676)
+
+
+ git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@434637 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2015-04-10 11:59 +0000 [16afee4651] George Joseph <george.joseph@fairview5.com>
+
+ * res_pjsip_config_wizard: Cleanup load unload
+
+ While investigating other unload issues I realized that the load/unload process
+ for the config wizard was pretty ugly so I've refactored it as follows...
+
+ When the res_pjsip sorcery instance is created the config_wizard bumps it's own
+ module reference to prevent it from unloading while the sorcery instance is
+ still active. When res_pjsip unloads and it's sorcery instance is destroyed,
+ the config wizard unrefs itself which then allows itself to unload cleanly.
+ Since the config wizard now can't load after res_pjsip or unload before it
+ (which should have been the correct behavior all along), I was able to remove
+ the chunks of code in both load_module and unload_module that handled that case.
+
+ Ran the testsuite tests to insure there were no functional changes and REF_DEBUG
+ to insure that Asterisk was shutting down cleanly with no FRACKs or leaks.
+
+ Tested-by: George Joseph
+ Review: https://reviewboard.asterisk.org/r/4610/
+
+
+
+
+ git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@434619 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2015-04-10 11:37 +0000 [125acc52fe] Richard Mudgett <rmudgett@digium.com>
+
+ * bridge_softmix.c,channel.c: Minor code simplification and cleanup.
+
+ * Made code easier to follow in bridge_softmix.c:analyse_softmix_stats()
+ and made some debug messages more helpful.
+
+ * Made some debug and warning messages more helpful in
+ channel.c:set_format().
+
+ Review: https://reviewboard.asterisk.org/r/4607/
+
+
+ git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@434617 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2015-04-10 11:28 +0000 [a63f7ad04a] Richard Mudgett <rmudgett@digium.com>
+
+ * translate.c: Only select audio codecs to determine the best translation choice.
+
+ Given a source capability of h264 and ulaw, a destination capability of
+ h264 and g722 then ast_translator_best_choice() would pick h264 as the
+ best choice even though h264 is a video codec and Asterisk only supports
+ translation of audio codecs. When the audio starts flowing, there are
+ warnings about a codec mismatch when the channel tries to write a frame to
+ the peer.
+
+ * Made ast_translator_best_choice() only select audio codecs.
+
+ * Restore a check in channel.c:set_format() lost after v1.8 to prevent
+ trying to set a non-audio codec.
+
+ This is an intermediate patch for a series of patches aimed at improving
+ translation path choices for ASTERISK-24841.
+
+ This patch is a complete enough fix for ASTERISK-21777 as the v11 version
+ of ast_translator_best_choice() does the same thing. However, chan_sip.c
+ still somehow tries to call ast_codec_choose() which then calls
+ ast_best_codec() with a capability set that doesn't contain any audio
+ formats for the incoming call. The remaining warning message seems to be
+ a benign transient.
+
+ ASTERISK-21777 #close
+ Reported by: Nick Ruggles
+
+ ASTERISK-24380 #close
+ Reported by: Matt Jordan
+
+ Review: https://reviewboard.asterisk.org/r/4605/
+ ........
+
+ Merged revisions 434614 from http://svn.asterisk.org/svn/asterisk/branches/11
+
+
+ git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@434615 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2015-04-10 09:55 +0000 [c9791dba1f] Matthew Jordan <mjordan@digium.com>
+
+ * res/ari: Fix model validation for ChannelHold event
+
+ When the ChannelHold event was added, the 'musicclass' parameter was
+ erroneously removed. This caused the ChannelHold events to be rejected as
+ they failed model validation. This patch updates the Swagger schema such that
+ it now properly reflects the event that is being created.
+
+ Hooray for tests that catch things like this.
+
+
+ git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@434597 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2015-04-10 07:39 +0000 [c39faa4729] Y Ateya (License 6693)
+
+ * channels/chan_iax2: Improve POKE expiration time calculation for lossy networks
+
+ POKE is used to check for peer availability; however, in networks with packet
+ loss, the current calculations may result in POKE expiration times that are too
+ short. This patch alters the expiration/retry time logic to take into account
+ the last known qualify round trip time, as opposed to always using a static
+ value for each peer.
+
+ Review: https://reviewboard.asterisk.org/r/4536
+
+ ASTERISK-22352 #close
+ Reported by: Frederic Van Espen
+
+ ASTERISK-24894 #close
+ Reported by: Y Ateya
+ patches:
+ poke_noanswer_duration.diff submitted by Y Ateya (License 6693)
+ ........
+
+ Merged revisions 434564 from http://svn.asterisk.org/svn/asterisk/branches/11
+
+
+ git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@434565 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2015-04-09 17:35 +0000 [75c2c85962] George Joseph <george.joseph@fairview5.com>
+
+ * res_pjsip_phoneprov_provider: Fix reference leak on unload
+
+ res_pjsip_phoneprov_provider was leaking references to phoneprov objects due to
+ a missing OBJ_NODATA in an ao2_callback in load_users(). Rather than adding the
+ OBJ_NODATA, I changed load_users to use a more straightforward ao2_iterator.
+ This plugged the leak but exposed an unload order issue between
+ res_pjsip_phoneprov_provider, res_phoneprov and res_pjsip.
+
+ res_pjsip_phoneprov_provider unloads first, then res_phoneprov, then res_pjsip.
+ Since res_pjsip_phoneprov_provider uses res_pjsip's sorcery instance, when it
+ unloads, it's objects are still in the sorcery instance. When res_pjsip
+ unloads, it destroys all its objects including res_pjsip_phoneprov_provider's.
+ The phoneprov destructor then attempts to unregister the extension from
+ res_phoneprov but because res_phoneprov is already cleaned up, its users
+ container is gone and we get a FRACK.
+
+ Simple solution, check for the NULL users container before attempting to remove
+ the entry. Duh.
+
+ Ran tests/res_phoneprov/res_phoneprov_provider. No leaks in
+ res_pjsip_phoneprov_provider and no FRACKs.
+
+ Reported-by: Corey Farrell
+ Tested-by: George Joseph
+ Review: https://reviewboard.asterisk.org/r/4608/
+ ASTERISK-24935 #close
+
+
+
+ git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@434545 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2015-04-09 17:31 +0000 [73c286a393] George Joseph <george.joseph@fairview5.com>
+
+ * loader/main: Don't set ast_fully_booted until deferred reloads are processed
+
+ Until we have a true module management facility it's sometimes necessary for one
+ module to force a reload on another before its own load is complete. If
+ Asterisk isn't fully booted yet, these reloads are deferred. The problem is
+ that asterisk reports fully booted before processing the deferred reloads which
+ means Asterisk really isn't quite ready when it says it is.
+
+ This patch moves the report of fully booted after the processing of the deferred
+ reloads is complete.
+
+ Since the pjsip stack has the most number of related modules, I ran the
+ channels/pjsip testsuite to make sure there aren't any issues. All tests
+ passed.
+
+ Tested-by: George Joseph
+ Review: https://reviewboard.asterisk.org/r/4604/
+
+
+
+ git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@434544 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2015-04-09 17:03 +0000 [5737650a67] Kevin Harwell <kharwell@digium.com>
+
+ * res_pjsip: add CLI command to show global and system configuration
+
+ Added a new CLI command for res_pjsip that shows both global and system
+ configuration settings: pjsip show settings
+
+ ASTERISK-24918 #close
+ Reported by: Scott Griepentrog
+ Review: https://reviewboard.asterisk.org/r/4597/
+
+
+ git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@434527 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2015-04-09 11:07 +0000 [1695a5b85f] Richard Mudgett <rmudgett@digium.com>
+
+ * chan_iax2.c: Fix ref leak in iax2_request().
+
+ * Increased warning message format capability string buffer size in
+ iax2_request().
+
+ Review: https://reviewboard.asterisk.org/r/4601/
+
+
+ git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@434510 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2015-04-09 10:54 +0000 [92c1688edb] Richard Mudgett <rmudgett@digium.com>
+
+ * bridge_native_rtp.c: Defer allocation and check if it fails in native_rtp_bridge_compatible().
+
+ Review: https://reviewboard.asterisk.org/r/4601/
+
+
+ git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@434508 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2015-04-09 10:42 +0000 [2679d0100a] yaron nahum (License 6676)
+
+ * res/res_pjsip_dlg_options: Add a module to handle in-dialog OPTIONS requests
+
+ This patch adds a new session supplement that handles in-dialog OPTIONS
+ requests. Said OPTIONS requests are sent a 200 OK, as an endpoint lookup
+ for the OPTIONS request would already have been done by the time the
+ session supplement receives the inbound request.
+
+ ASTERISK-24862 #close
+ Reported by: yaron nahum
+ patches:
+ res_pjsip_dlg_options.c submitted by yaron nahum (License 6676)
+
+
+ git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@434506 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2015-04-09 07:56 +0000 [6ba6e3dffd] dkdegroot (License 6600)
+
+ * clang compiler warnings: Fix autological comparisons
+
+ This fixes autological comparison warnings in the following:
+ * chan_skinny: letohl may return a signed or unsigned value, depending on the
+ macro chosen
+ * func_curl: Provide a specific cast to CURLoption to prevent mismatch
+ * cel: Fix enum comparisons where the enum can never be negative
+ * enum: Fix comparison of return result of dn_expand, which returns a signed
+ int value
+ * event: Fix enum comparisons where the enum can never be negative
+ * indications: tone_data.freq1 and freq2 are unsigned, and hence can never be
+ negative
+ * presencestate: Use the actual enum value for INVALID state
+ * security_events: Fix enum comparisons where the enum can never be negative
+ * udptl: Don't bother to check if the return value from encode_length is less
+ than 0, as it returns an unsigned int
+ * translate: Since the parameters are unsigned int, don't bother checking
+ to see if they are negative. The cast to unsigned int would already blow
+ past the matrix bounds.
+ * res_pjsip_exten_state: Use a temporary value to cache the return of
+ ast_hint_presence_state
+ * res_stasis_playback: Fix enum comparisons where the enum can never be
+ negative
+ * res_stasis_recording: Add an enum value for the case where the recording
+ operation is in error; fix enum comparisons
+ * resource_bridges: Use enum value as opposed to -1
+ * resource_channels: Use enum value as opposed to -1
+
+ Review: https://reviewboard.asterisk.org/r/4533
+ ASTERISK-24917
+ Reported by: dkdegroot
+ patches:
+ rb4533.patch submitted by dkdegroot (License 6600)
+ ........
+
+ Merged revisions 434469 from http://svn.asterisk.org/svn/asterisk/branches/11
+
+
+ git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@434470 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2015-04-08 21:05 +0000 [e05c8ae68e] Stefan Engström (License 6691)
+
+ * apps/app_queue: Prevent possible crash when evaluating queue penalty rules
+
+ Although it only occurred once, a crash occurred when a queue attempted to
+ evaluate a queue penalty rule that appeared to have already been destroyed.
+ In many locations in app_queue, a test is done to see if qe->pr is NULL;
+ however, when we dispose of a queue's penalty rules, we don't set the pointer
+ to NULL after free'ing it. This patch does that to prevent any dangling
+ pointers from lingering on the queue object.
+
+ Review: https://reviewboard.asterisk.org/r/4522
+
+ ASTERISK-23319 #close
+ Reported by: Vadim
+ patches:
+ rb4552.patch submitted by Stefan Engström (License 6691)
+ ........
+
+ Merged revisions 434448 from http://svn.asterisk.org/svn/asterisk/branches/11
+
+
+ git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@434449 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2015-04-08 13:15 +0000 [f21b45db49] Jonathan Rose <jrose@digium.com>
+
+ * res_pjsip_t38: Fix FAX failures when using PJSIP with authentication
+
+ Without this patch, if a PJSIP endpoint with udptl enabled and authentication
+ set attempted to use sendFax, the FAX session would fail during setup. This
+ was because the invite issued in response to being auth challenged would cause
+ the PJSIP channel performing the FAX to receive a second T38 framehook and
+ this would cause frames to be consumed in an inappropriate manner.
+
+ ASTERISK-24933 #close
+ Reported by: Jonathan Rose
+ Review: https://reviewboard.asterisk.org/r/4577/
+
+
+ git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@434425 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2015-04-08 13:14 +0000 [4441bb6a25] Richard Mudgett <rmudgett@digium.com>
+
+ * Bridging: Eliminate the unnecessary make channel compatible with bridge operation.
+
+ When a channel enters the bridging system it is first made compatible with
+ the bridge and then the bridge technology makes the channel compatible
+ with the technology. For all but the DAHDI native and softmix bridge
+ technologies the make channel compatible with the bridge step is an
+ effective noop because the other technologies allow all audio formats.
+ For the DAHDI native bridge technology it doesn't matter because it is not
+ an initial bridge technology and chan_dahdi allows only one native format
+ per channel. For the softmix bridge technology, it is a noop at best and
+ harmful at worst because the wrong translation path could be setup if the
+ channel's native formats allow more than one audio format.
+
+ This is an intermediate patch for a series of patches aimed at improving
+ translation path choices.
+
+ * Removed code dealing with the unnecessary step of making the channel
+ compatible with the bridge.
+
+ ASTERISK-24841
+ Reported by: Matt Jordan
+
+ Review: https://reviewboard.asterisk.org/r/4600/
+
+
+ git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@434424 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2015-04-08 11:40 +0000 [f767440906] mhej (license 6085)
+
+ * Security/tcptls: MitM Attack potential from certificate with NULL byte in CN.
+
+ When registering to a SIP server with TLS, Asterisk will accept CA signed
+ certificates with a common name that was signed for a domain other than the
+ one requested if it contains a null character in the common name portion of
+ the cert. This patch fixes that by checking that the common name length
+ matches the the length of the content we actually read from the common name
+ segment. Some certificate authorities automatically sign CA requests when
+ the requesting CN isn't already taken, so an attacker could potentially
+ register a CN with something like www.google.com\x00www.secretlyevil.net
+ and have their certificate signed and Asterisk would accept that certificate
+ as though it had been for www.google.com - this is a security fix and is
+ noted in AST-2015-003.
+
+ ASTERISK-24847 #close
+ Reported by: Maciej Szmigiero
+ Patches:
+ asterisk-null-in-cn.patch submitted by mhej (license 6085)
+ ........
+
+ Merged revisions 434337 from http://svn.asterisk.org/svn/asterisk/branches/1.8
+ ........
+
+ Merged revisions 434338 from http://svn.asterisk.org/svn/asterisk/branches/11
+
+
+ git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@434384 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2015-04-08 11:23 +0000 [1712d16825] Richard Mudgett <rmudgett@digium.com>
+
+ * format_cache.c: Add missing slin12 format to ast_format_cache_is_slinear().
+
+ git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@434357 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2015-04-08 07:33 +0000 [ae39dd1f46] Matthew Jordan <mjordan@digium.com>
+
+ * chan_iax2: Fix compilation issue due to funky merge
+
+ Don't mix declarations and code
+
+
+ git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@434314 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2015-04-08 07:00 +0000 [05397ad01e] Jaco Kroon (License 5671)
+
+ * chan_iax2: Fix crash caused by unprotected access to iaxs[peer->callno]
+
+ This patch fixes an access to the peer callnumber that is unprotected by a
+ corresponding mutex. The peer->callno value can be changed by multiple threads,
+ and all data inside the iaxs array must be procted by a corresponding lock
+ of iaxsl.
+
+ The patch moves the unprotected access to a location where the mutex is
+ safely obtained.
+
+ Review: https://reviewboard.asterisk.org/r/4599/
+
+ ASTERISK-21211 #close
+ Reported by: Jaco Kroon
+ patches:
+ asterisk-11.2.1-iax2_poke-segfault.diff submitted by Jaco Kroon (License 5671)
+ ........
+
+ Merged revisions 434291 from http://svn.asterisk.org/svn/asterisk/branches/11
+
+
+ git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@434292 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2015-04-08 06:53 +0000 [be13c72142] Valentin Vidić (License 6697)
+
+ * chan_sip: Handle IPv4 mapped IPv6 clients when NAT is enabled
+
+ When udpbindaddr is set to the IPv6 bind all address of '::', Asterisk will
+ attempt to handle both IPv4 and IPv6 addresses, although the information will
+ be stored in a struct with an AF_INET6 address type. However, the current
+ NAT handling code won't handle the IPv4 mapped IPv6 addresses correctly.
+ This patch adds an additional check for the mapped address case, allowing
+ the NAT code to handle clients even when the address is IPv6.
+
+ Review: https://reviewboard.asterisk.org/r/4563/
+
+ ASTERISK-18032 #close
+ Reported by: Christoph Timm
+ patches:
+ nat_with_ipv6.diff submitted by Valentin Vidić (License 6697)
+ ........
+
+ Merged revisions 434288 from http://svn.asterisk.org/svn/asterisk/branches/11
+
+
+ git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@434289 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2015-04-08 06:44 +0000 [f324870dab] dkdegroot (License 6600)
+
+ * clang compiler warnings: Fix pointer-bool-converesion warnings
+
+ This patch fixes several warnings pointed out by the clang compiler.
+ * chan_pjsip: Removed check for data->text, as it will always be non-NULL.
+ * app_minivm: Fixed evaluation of etemplate->locale, which will always
+ evaluate to 'true'. This patch changes the evaluation to use
+ ast_strlen_zero.
+ * app_queue:
+ - Fixed evaluation of qe->parent->monfmt, which always evaluates to
+ true. Instead, we just check to see if the dereferenced pointer
+ evaluates to true.
+ - Fixed evaluation of mem->state_interface, wrapping it with a call to
+ ast_strlen_zero.
+ * res_smdi: Wrapped search_msg->mesg_desk_term with calls to ast_strlen_zero.
+
+ Review: https://reviewboard.asterisk.org/r/4541
+
+ ASTERISK-24917
+ Reported by: dkdegroot
+ patches:
+ rb4541.patch submitted by dkdegroot (License 6600)
+ ........
+
+ Merged revisions 434285 from http://svn.asterisk.org/svn/asterisk/branches/11
+
+
+ git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@434286 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2015-04-07 14:38 +0000 [a6aed7f6f6] Scott Griepentrog <sgriepentrog@digium.com>
+
+ * Revert accidental change in r434261
+
+
+ git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@434262 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2015-04-07 14:35 +0000 [0584e29300] Scott Griepentrog <sgriepentrog@digium.com>
+
+ * pjsip: resolve compatibility problem with ast_sip_session
+
+ A change in r430179 inserted a variable near the top of a
+ structure caused a problem when running DPMA in a version
+ of Asterisk compiled across the change. This patch moves
+ the new variable to the end of the structure, eliminating
+ the problem.
+
+ Review: https://reviewboard.asterisk.org/r/4574/
+ ........
+
+ Merged revisions 433944 from http://svn.asterisk.org/svn/asterisk/branches/13
+
+
+ git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@434261 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2015-04-07 11:40 +0000 [d754f70239] Kevin Harwell <kharwell@digium.com>
+
+ * bridge.c: Hangup attended transfer target after it has been swapped out
+
+ After completing an attended transfer the transfer target channel (the one that
+ gets swapped out) was not being hung up after leaving the bridge. This resulted
+ in a channel possibly being left around. Added an explicit softhangup for the
+ channel in question after the transfer is successfully completed in order to
+ make sure the channel is hung up.
+
+ ASTERISK-24782 #close
+ Reported by: John Bigelow
+ Review: https://reviewboard.asterisk.org/r/4575/
+
+
+
+ git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@434240 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2015-04-07 10:33 +0000 [c516981dc7] Mark Michelson <mmichelson@digium.com>
+
+ * Do not queue message requests that we do not respond to.
+
+ If we receive a MESSAGE request that we cannot send a response
+ to, we should not send the incoming MESSAGE to the dialplan.
+
+ This commit should help the bouncing message_retrans test to
+ pass consistently.
+
+
+
+ git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@434218 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2015-04-07 10:21 +0000 [ab803ec342] Matthew Jordan <mjordan@digium.com>
+
+ * ARI: Add the ability to intercept hold and raise an event
+
+ For some applications - such as SLA - a phone pressing hold should not behave
+ in the fashion that the Asterisk core would like it to. Instead, the hold
+ action has some application specific behaviour associated with it - such as
+ disconnecting the channel that initiated the hold; only playing MoH to channels
+ in the bridge if the channels are of a particular type, etc.
+
+ One way of accomplishing this is to use a framehook to intercept the
+ hold/unhold frames, raise an event, and eat the frame. Tasty. This patch
+ accomplishes that using a new dialplan function, HOLD_INTERCEPT.
+
+ In addition, some general cleanup of raising hold/unhold Stasis messages was
+ done, including removing some RAII_VAR usage.
+
+ Review: https://reviewboard.asterisk.org/r/4549/
+
+ ASTERISK-24922 #close
+
+
+ git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@434216 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2015-04-06 21:09 +0000 [488f093e97] dkdegroot (License 6600)
+
+ * clang compiler warnings: Fix sometimes-initialized warning in func_math
+
+ This patch fixes a bug in a unit test in func_math where a variable could be
+ passed to ast_free that wasn't allocated. This patch corrects the issue and
+ ensures that we only attempt to free a variable if we previously allocated
+ it.
+
+ Review: https://reviewboard.asterisk.org/r/4552
+
+ ASTERISK-24917
+ Reported by: dkdegroot
+ patches:
+ rb4552.patch submitted by dkdegroot (License 6600)
+ ........
+
+ Merged revisions 434190 from http://svn.asterisk.org/svn/asterisk/branches/11
+
+
+ git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@434191 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2015-04-06 21:03 +0000 [c027133f6d] dkdegroot (License 6600)
+
+ * clang compiler warnings: Fix non-literal-null-conversion warnings
+
+ Clang will flag errors when a char pointer is set to '\0', as opposed to a
+ value that the char pointer points to. This patch fixes this warning
+ in a variety of locations.
+
+ Review: https://reviewboard.asterisk.org/r/4551
+
+ ASTERISK-24917
+ Reported by: dkdegroot
+ patches:
+ rb4551.patch submitted by dkdegroot (License 6600)
+ ........
+
+ Merged revisions 434187 from http://svn.asterisk.org/svn/asterisk/branches/11
+
+
+ git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@434188 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2015-04-06 14:23 +0000 [2270c40d33] Kevin Harwell <kharwell@digium.com>
+
+ * res_pjsip: config option 'timers' can't be set to 'no'
+
+ When setting the configuration option 'timers' equal to 'no' the bit flag was
+ not properly negated. This patch clears all associated flags and only sets the
+ specified one. pjsip will handle any necessary flag combinations. Also went
+ ahead and did similar for the '100rel' option.
+
+ ASTERISK-24910 #close
+ Reported by: Ray Crumrine
+ Review: https://reviewboard.asterisk.org/r/4582/
+
+
+ git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@434131 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2015-04-06 14:02 +0000 [95de71f247] George Joseph <george.joseph@fairview5.com>
+
+ * build: Fixes for gcc 5 compilation
+
+ These are fixes for compilation under gcc 5.0...
+
+ chan_sip.c: In parse_request needed to make 'lim' unsigned.
+ inline_api.h: Needed to add a check for '__GNUC_STDC_INLINE__' to detect C99
+ inline semantics (same as clang).
+ ccss.c: In ast_cc_set_parm, needed to fix weird comparison.
+ dsp.c: Needed to work around a possible compiler bug. It was throwing
+ an array-bounds error but neither
+ sgriepentrog, rmudgett nor I could figure out why.
+ manager.c: In action_atxfer, needed to correct an array allocation.
+
+ This patch will go to 11, 13, trunk.
+
+ Review: https://reviewboard.asterisk.org/r/4581/
+ Reported-by: Jeffrey Ollie
+ Tested-by: George Joseph
+ ASTERISK-24932 #close
+ ........
+
+ Merged revisions 434113 from http://svn.asterisk.org/svn/asterisk/branches/11
+
+
+ git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@434114 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2015-04-06 13:18 +0000 [d54ccda3b1] dkdegroot (License 6600)
+
+ * clang compiler warnings: Remove large chunks of unused code from extconf
+
+ This patch fixes a warning caught by clang, in which it detected that large
+ chunks of extconf were unused. Frankly, I wish we could pretend that all of
+ extconf was unused, but alas, that is not yet the case.
+
+ A few extraneous functions in the parking tests were removed as well, for
+ the same reason.
+
+ Review: https://reviewboard.asterisk.org/r/4553
+
+ ASTERISK-24917
+ Reported by: dkdegroot
+ patches:
+ rb4553.patch submitted by dkdegroot (License 6600)
+ ........
+
+ Merged revisions 434093 from http://svn.asterisk.org/svn/asterisk/branches/11
+
+
+ git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@434097 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2015-04-06 13:03 +0000 [0ecd472e4f] dkdegroot (License 6600)
+
+ * clang compiler warnings: Fix sometimes-uninitialized warning in pbx_config
+
+ This patch fixes a warning caught by clang, in which a char pointer could be
+ assigned to before it was initialized. The patch re-organizes the code to
+ ensure that the pointer is always initialized, even on off nominal paths.
+
+ Review: https://reviewboard.asterisk.org/r/4529
+
+ ASTERISK-24917
+ Reported by: dkdegroot
+ patches:
+ rb4529.patch submitted by dkdegroot (License 6600)
+ ........
+
+ Merged revisions 434090 from http://svn.asterisk.org/svn/asterisk/branches/11
+
+
+ git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@434091 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2015-04-06 12:52 +0000 [4e7be5b2dc] dkdegroot (License 6600)
+
+ * clang compiler warnings: Fix format specified in framehook
+
+ This patch fixes an invalid format specifier used in the formatting of an
+ ERROR message in the framehook code. The format specifier specifies a
+ type of 'unsigned short', but the argument passed to it is of type 'int'.
+ The patch changes the format specifier to 'i'.
+
+ Review: https://reviewboard.asterisk.org/r/4540
+
+ ASTERISK-24917
+ Reported by: dkdegroot
+ patches:
+ rb4535.patch submitted by dkdegroot (License 6600)
+ ........
+
+ Merged revisions 434087 from http://svn.asterisk.org/svn/asterisk/branches/11
+
+
+ git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@434088 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2015-04-06 11:02 +0000 [2443b40341] Mark Michelson <mmichelson@digium.com>
+
+ * Ensure that a non-zero sample rate is returned for all formats.
+
+ Versions of Asterisk prior to 12 defaulted to 8000 as a sample rate
+ if one was not provided by a format. In Asterisk 13, this was removed.
+ The result was that some calculations which involve dividing by the
+ sample rate resulted in dividing by 0. The fix being put in place
+ here is to have the same default fallback that was present in previous
+ versions of Asterisk.
+
+ Asterisk-24914 #close
+ Reported by Marcello Ceschia
+
+
+
+ git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@434046 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2015-04-06 10:16 +0000 [b1102cd642] Corey Farrell <git@cfware.com>
+
+ * res_pjsip_phoneprov_provider: Revert 433996 / 433997.
+
+ res_pjsip_phoneprov_provider is using ao2_callback with OBJ_MULTIPLE, then
+ ignoring the return. OBJ_NODATA flag was to prevent a reference leak, but
+ this caused the module to FRACK on unload. Revert change until this can
+ be investigated further.
+
+ ASTERISK-24935
+ Reported by: Corey Farrell
+ Review: https://reviewboard.asterisk.org/r/4578/
+
+
+ git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@434025 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2015-04-06 09:50 +0000 [0f25076f67] Mark Michelson (license #5049)
+
+ * ParkedCall: Don't allow dialplan fallthrough after retrieving parked call.
+
+ This is a change to align behavior with that of Asterisk 11 and previous versions.
+ In those versions, if a parked call were retrieved, and the call ended, the parked
+ call retriever would be hung up after the ParkedCall application ran. Prior to this
+ patch, in Asterisk 13, the same situation would result in the parked call retriever
+ falling through to additional priorities in the extension where the ParkedCall
+ application was called. With this patch, the behavior between Asterisk 11 and 13
+ aligns.
+
+ ASTERISK-24899 #close
+ Reported by Malcolm Davenport
+ Patches:
+ ASTERISK-24899.patch uploaded by Mark Michelson(license #5049)
+
+
+
+ git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@434022 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2015-04-05 07:53 +0000 [709fa14b44] Corey Farrell <git@cfware.com>
+
+ * res_pjsip_phoneprov_provider: Fix leaked OBJ_MULTIPLE iterator.
+
+ res_pjsip_phoneprov_provider was using ao2_callback with OBJ_MULTIPLE, then
+ ignoring the return. Added OBJ_NODATA flag to prevent a reference leak.
+
+ ASTERISK-24935 #close
+ Reported by: Corey Farrell
+ Review: https://reviewboard.asterisk.org/r/4578/
+
+
+ git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@433996 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2015-04-03 16:53 +0000 [1ee8424f27] Mark Michelson <mmichelson@digium.com>
+
+ * res_pjsip_messaging: Serialize outbound SIP MESSAGEs
+
+ Outbound SIP MESSAGEs had the potential to be sent out
+ of order from how they were specified in a set of
+ dialplan steps.
+
+ This change creates a serializer for sending outbound
+ MESSAGE requests on. This ensures that the MESSAGEs are
+ sent by Asterisk in the same order that they were sent
+ from the dialplan.
+
+ ASTERISK-24937 #close
+ Reported by Mark Michelson
+
+ Review: https://reviewboard.asterisk.org/r/4579
+
+
+
+ git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@433968 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2015-04-02 09:56 +0000 [169e57d2e0] Scott Griepentrog <sgriepentrog@digium.com>
+
+ * pjsip: resolve compatibility problem with ast_sip_session
+
+ A change in r430179 inserted a variable near the top of a
+ structure caused a problem when running DPMA in a version
+ of Asterisk compiled across the change. This patch moves
+ the new variable to the end of the structure, eliminating
+ the problem.
+
+ Review: https://reviewboard.asterisk.org/r/4574/
+
+
+
+ git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@433944 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2015-04-02 05:31 +0000 [1eb0c5f4e8] Corey Farrell <git@cfware.com>
+
+ * Tell menuselect that MALLOC_DEBUG conflicts with DEBUG_CHAOS.
+
+ DEBUG_CHAOS was marked as conflicting with MALLOC_DEBUG, but
+ for this to work correctly MALLOC_DEBUG must also be marked
+ as conflicting with DEBUG_CHAOS.
+
+ Review: https://reviewboard.asterisk.org/r/4557/
+
+
+ git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@433923 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2015-04-01 11:25 +0000 [e301185983] Ashley Sanders <asanders@digium.com>
+
+ * stasis: set a channel variable on websocket disconnect error
+
+ Resolve compile errors caused by r433863 by fixing the
+ documentation xml to comply with the schema.
+
+
+ git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@433888 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2015-03-31 22:26 +0000 [a1f12d9231] Ashley Sanders <asanders@digium.com>
+
+ * stasis: set a channel variable on websocket disconnect error
+
+ Resolve compile errors caused by r433839 by included the missing
+ header file, pbx.h.
+
+
+
+ git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@433863 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2015-03-31 17:00 +0000 [7293ecd90b] Ashley Sanders <asanders@digium.com>
+
+ * stasis: set a channel variable on websocket disconnect error
+
+ When an error occurs while writing to a web socket, the web socket is
+ disconnected and the event is logged. A side-effect of this, however, is that
+ any application on the other side waiting for a response from Stasis is left
+ hanging indefinitely (as there is no mechanism presently available for
+ notifying interested parties about web socket error states in Stasis).
+
+ To remedy this scenario, this patch introduces a new channel variable:
+ STASISSTATUS.
+
+ The possible values for STASISSTATUS are:
+ SUCCESS - The channel has exited Stasis without any failures
+ FAILED - Something caused Stasis to croak. Some (not all) possible
+ reasons for this:
+ - The app registry is not instantiated;
+ - The app requested is not registered;
+ - The app requested is not active;
+ - Stasis couldn't send a start message
+
+ ASTERISK-24802
+ Reported By: Kevin Harwell
+ Review: https://reviewboard.asterisk.org/r/4519/
+
+
+ git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@433839 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2015-03-31 11:55 +0000 [94949e7f2f] Richard Mudgett <rmudgett@digium.com>
+
+ * chan_sip: Fix expression in unit test /channels/chan_sip/test_sip_rtpqos.
+
+ Fix misplaced parentheses in original fabs() expression.
+ ........
+
+ Merged revisions 433816 from http://svn.asterisk.org/svn/asterisk/branches/11
+
+
+ git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@433817 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2015-03-31 06:47 +0000 [9967739669] Corey Farrell <git@cfware.com>
+
+ * Re-add _ast_mem_backtrace_buffer variable for ABI compatibility.
+
+ Modules built prior to commit of r4502 expect to link at runtime
+ to the variable _ast_mem_backtrace_buffer. This change re-adds
+ the variable to the C file only.
+
+ Review: https://reviewboard.asterisk.org/r/4558/
+
+
+ git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@433795 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2015-03-30 06:42 +0000 [2d39bc5528] Corey Farrell <git@cfware.com>
+
+ * Fix an ABI compatibility issue with ast_log_safe for modules.
+
+ Binary modules are sometimes built against the latest release of
+ Asterisk in each branch, and need to be compatible with all
+ releases of that branch. This change ensures that utils.h only
+ uses ast_log_safe from the core. For modules and utilities ast_log
+ is used instead.
+
+ Review: https://reviewboard.asterisk.org/r/4548/
+ ........
+
+ Merged revisions 433772 from http://svn.asterisk.org/svn/asterisk/branches/11
+
+
+ git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@433773 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2015-03-29 21:44 +0000 [5f8faf16af] dkdegroot (License 6600)
+
+ * clang compiler warnings: Fix -Wabsolute-value warnings
+
+ This patch fixes several warnings caught by clang - in this case, usage of the
+ abs function on non-integer values. This patch uses labs and fabs, as
+ appropriate, in the various affected files.
+
+ Review: https://reviewboard.asterisk.org/r/4525
+
+ ASTERISK-24917
+ Reported by: dkdegroot
+ patches:
+ rb4525.patch submitted by dkdegroot (License 6600)
+ ........
+
+ Merged revisions 433749 from http://svn.asterisk.org/svn/asterisk/branches/11
+
+
+ git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@433750 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2015-03-29 21:39 +0000 [09b681e344] dkdegroot (License 6600)
+
+ * clang compiler warnings: Fix invalid enum conversion
+
+ This patch fixes some invalid enum conversion warnings caught by clang. In
+ particular:
+ * chan_sip: Several functions mixed usage of the st_refresher_param
+ enum and st_refresher enum. This patch corrects the functions to use the
+ right enum.
+ * chan_pjsip: Fixed mixed usage of ast_sip_session_t38state and ast_t38_state.
+ * strings: Fixed incorrect usage of AO2 flags with strings container.
+ * res_stasis: Change a return enumeration to stasis_app_user_event_res.
+
+ Review: https://reviewboard.asterisk.org/r/4535
+
+ ASTERISK-24917
+ Reported by: dkdegroot
+ patches:
+ rb4535.patch submitted by dkdegroot (License 6600)
+ ........
+
+ Merged revisions 433746 from http://svn.asterisk.org/svn/asterisk/branches/11
+
+
+ git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@433747 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2015-03-29 21:29 +0000 [7f33abb827] Matthew Jordan <mjordan@digium.com>
+
+ * main/stdtime/localtime: Fix warning introduced in r433720
+
+ The patch in r433720 caused a warning to be kicked back by gcc. It occurred
+ due to this check in unistd.h:
+
+ if (__nbytes > __bos0 (__buf))
+ return __read_chk_warn (__fd, __buf, __nbytes, __bos0 (__buf));
+
+ That is, if __nbytes is greater than the result of GCC's built-in object size
+ for the struct, we'll kick back a warning.
+
+ As it turns out, this is because there is an error in the code in the patch.
+ We are passing the address of the pointer to the struct, not iev, which is a
+ pointer to the struct. Hence, the number of bytes is probably going to be lot
+ larger than the number of bytes that make up a pointer! This patch changes
+ the code just read from the pointer to the struct - which fixes the warning.
+
+ ASTERISK-24917
+ ........
+
+ Merged revisions 433743 from http://svn.asterisk.org/svn/asterisk/branches/11
+
+
+ git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@433744 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2015-03-29 20:56 +0000 [47eeb67e14] dkdegroot (License 6600)
+
+ * clang compiler warnings: Ignore -Wunused-command-line-argument
+
+ Asterisk's build system has a tendency to pass include directives for libraries
+ to everything compiled within a particular group of source files. This means
+ we pass the header for libxml2 to things that don't necessarily need it. As a
+ result, we ignore this particular warning.
+
+ Review: https://reviewboard.asterisk.org/r/4545/
+
+ ASTERISK-24917
+ Reported by: dkdegroot
+ patches:
+ rb4545.patch submitted by dkdegroot (License 6600)
+ ........
+
+ Merged revisions 433720 from http://svn.asterisk.org/svn/asterisk/branches/11
+
+
+ git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@433721 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2015-03-29 20:52 +0000 [dbb4d6f9e7] dkdegroot (License 6600)
+
+ * clang compiler warnings: Fix warning for -Wgnu-variable-sized-type-not-at-end
+
+ This patch fixes a warning caught by clang, wherein a variable sized struct is
+ not located at the end of a struct. While the code in question actually
+ expected this, this is a good warning to watch for. Hence, this patch refactors
+ the code in question to not have two variable length elements in the same
+ struct.
+
+ Review: https://reviewboard.asterisk.org/r/4530/
+
+ ASTERISK-24917
+ Reported by: dkdegroot
+ patches:
+ rb4530.patch submitted by dkdegroot (License 6600)
+ ........
+
+ Merged revisions 433717 from http://svn.asterisk.org/svn/asterisk/branches/11
+
+
+ git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@433718 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2015-03-28 07:56 +0000 [e126ab9eeb] dkdegroot (License 6600)
+
+ * clang compiler warnings: Fix a variety of "unused" warnings
+
+ This patch fixes the -Wunused-value -Wunused-variable -Wunused-const-variable
+ errors caught by clang. Specifically:
+
+ * apps/app_queue.c: removed unused qpm_cmd_usage[], qum_cmd_usage[],
+ qsmp_cmd_usage[]
+ * cel/cel_sqlite3_custom.c: removed unused name[] = "cel_sqlite3_custom"
+ * channels/chan_pjsip.c: removed unused desc[] = "PJSIP Channel"
+ * codecs/gsm/src/gsm_create.c: removed unused ident[] = "$Header$"
+ * funcs/func_env.c:729: Fixed ast_str_append_substr.
+ * main/editline/np/strlcat.c: removed unused rcsid variable
+ * main/editline/np/strlcpy.c: removed unused rcsid variable
+ * main/security_events.c: removed unused TIMESTAMP_STR_LEN
+ * utils/conf2ael.c: removed unused cfextension_states
+ * utils/extconf.c: removed unused cfextension_states
+
+ Review: https://reviewboard.asterisk.org/r/4526
+
+ ASTERISK-24917
+ Reported by: dkdegroot
+ patches:
+ rb4526.patch submitted by dkdegroot (License 6600)
+ ........
+
+ Merged revisions 433693 from http://svn.asterisk.org/svn/asterisk/branches/11
+
+
+ git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@433694 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2015-03-28 07:48 +0000 [2f6534527d] dkdegroot (License 6600)
+
+ * clang compiler warnings: Fix -Wself-assign
+
+ Assigning a variable to itself isn't super useful. However, the WAV format
+ modules make use of this in order to perform byte endian checks. This patch
+ works around the warning by only performing the self assignment if we are
+ going to do more than just assign it to ourselves. Which is odd, but true.
+
+ Review: https://reviewboard.asterisk.org/r/4544/
+
+ ASTERISK-24917
+ Reported by: dkdegroot
+ patches:
+ rb4544.patch submitted by dkdegroot (License 6600)
+ ........
+
+ Merged revisions 433690 from http://svn.asterisk.org/svn/asterisk/branches/11
+
+
+ git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@433691 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2015-03-28 07:40 +0000 [eb70993a50] dkdegroot (License 6600)
+
+ * clang compiler warnings: Fix -Wparantheses-equality warnings
+
+ Clang will treat ((a == b)) as a warning, as it reasonably expects that the
+ developer may have intended to write (a == b) or ((a = b)). This patch cleans
+ up all instances where equality, not assignment, was intended between two
+ parantheses.
+
+ Review: https://reviewboard.asterisk.org/r/4531/
+
+ ASTERISK-24917
+ Repoted by: dkdegroot
+ patches:
+ rb4531.patch submitted by dkdegroot (License 6600)
+ ........
+
+ Merged revisions 433687 from http://svn.asterisk.org/svn/asterisk/branches/11
+
+
+ git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@433688 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2015-03-28 07:31 +0000 [c0ff16036a] dkdegroot (License 6600)
+
+ * clang compiler warnings: Fix -Wbitfield-constant-conversion warning
+
+ In chan_iax2, we attempt to assign a -1 to a bitfield. This gets caught by
+ clang, as it will truncate the -1 to a 1 implicitly.
+
+ Instead, we just assign the value a '1'.
+
+ Review: https://reviewboard.asterisk.org/r/4537/
+
+ ASTERISK-24917
+ Reported by: dkdegroot
+ patches:
+ rb4537.patch submitted by dkdegroot (License 6600)
+ ........
+
+ Merged revisions 433683 from http://svn.asterisk.org/svn/asterisk/branches/11
+
+
+ git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@433684 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2015-03-28 07:27 +0000 [844bc76bef] dkdegroot (License 6600)
+
+ * clang compiler warnings: Fix -Winitializer-overrides
+
+ This patch fixes clange compiler warnings for initializer overrides.
+ Specifically:
+
+ res_pjsip/config_transport maps PJSIP_TLSV1_METHOD to the same enumeration
+ value as PJSIP_SSL_DEFAULT_METHOD. When initializing an array containing
+ those enum values, we therefore initialize the value twice to two different
+ values, "tlsv1" and "default". This patch changes it to just initialize
+ the index in the array to "tlsv1".
+
+ Review: https://reviewboard.asterisk.org/r/4539/
+
+ ASTERISK-24917
+ Reported by: dkdegroot
+ patches:
+ rb4539.patch submitted by dkdegroot (License 6600)
+
+
+ git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@433682 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2015-03-28 07:19 +0000 [5e204042d9] dkdegroot (License 6600)
+
+ * clang compiler warnings: Fix -Wunused-function; make inline function static
+
+ This patch fixes clang compilers warnings for unused functions. Specifically:
+ * channels/chan_iax2: removed user_ref function
+ * main/dsp.c: removed goertzel_update function
+ * main/config.c: made variable_list_switch static
+
+ Review: https://reviewboard.asterisk.org/r/4527
+
+ ASTERISK-24917
+ Reported by: dkdegroot
+ patches:
+ rb4527.patch submitted by dkdegroot (License 6600)
+ ........
+
+ Merged revisions 433678 from http://svn.asterisk.org/svn/asterisk/branches/11
+
+
+ git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@433680 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2015-03-27 17:34 +0000 [cfbf5fbe91] Jonathan Rose <jrose@digium.com>
+
+ * SAC: Add a few basic queues
+
+ Review: https://reviewboard.asterisk.org/r/4503/
+
+
+ git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@433658 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2015-03-27 17:25 +0000 [1a50d8d4c2] Jonathan Rose <jrose@digium.com>
+
+ * SAC: Add conferencing extensions and configuration
+
+ Review: https://reviewboard.asterisk.org/r/4504/
+
+
+ git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@433656 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2015-03-27 16:15 +0000 [c6c08d755d] Rusty Newton <rnewton@digium.com>
+
+ * configs/basic-pbx - Super Awesome Company example configs Phase 1, Patch 2
+
+ Example configuration files for a "basic PBX" deployment for the fictitious
+ Super Awesome Company. Details at https://reviewboard.asterisk.org/r/4488/
+ and https://wiki.asterisk.org/wiki/display/AST/Super+Awesome+Company
+
+ Patch 4488 includes all functionality needed for SAC's outside connectivity
+ and some externally accessed features, as well as outbound dialing.
+
+ Reported by: Malcolm Davenport
+ Tested by: Rusty Newton
+
+ Review: https://reviewboard.asterisk.org/r/4488/
+
+
+ git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@433624 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2015-03-27 16:04 +0000 [13557675d4] Richard Mudgett <rmudgett@digium.com>
+
+ * res_pjsip_registrar_expire.c: Made use ao2 container template routines and eliminated some RAII_VAR() usage.
+
+ * Converted the contact_autoexpire container to use the ao2 template hash
+ and cmp functions. Also made use the OBJ_SEARCH_xxx names instead of the
+ deprecated names.
+
+ * Eliminates several unnecessary uses of RAII_VAR().
+
+ Review: https://reviewboard.asterisk.org/r/4524/
+
+
+ git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@433622 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2015-03-27 15:30 +0000 [85feac857c] Mark Michelson <mmichelson@digium.com>
+
+ * Add stateful PJSIP response API call, and use it for out-of-dialog responses.
+
+ Asterisk had an issue where retransmissions of MESSAGE requests resulted in
+ Asterisk processing the retransmission as if it were a new MESSAGE request.
+
+ This patch fixes the issue by creating a transaction in PJSIP on the incoming
+ request. This way, if a retransmission arrives, the PJSIP transaction layer
+ will resend the response and Asterisk will not ever see the retransmission.
+
+ ASTERISK-24920 #close
+ Reported by Mark Michelson
+
+ Review: https://reviewboard.asterisk.org/r/4532/
+
+
+ git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@433619 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2015-03-27 12:50 +0000 [dc2cf21144] Richard Mudgett <rmudgett@digium.com>
+
+ * res_pjsip_registrar_expire.c: Cleanup scheduler leaks on unload/shutdown.
+
+ Contact expiration object refs were leaked when the module was unloaded.
+
+ * Made empty the scheduler of entries before destroying it to release the
+ object ref held by the scheduler entry.
+
+ Review: https://reviewboard.asterisk.org/r/4523/
+
+
+ git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@433596 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2015-03-27 09:41 +0000 [6e6f5b3a1f] scsiguy (License 6692)
+
+ * res/res_timing_kqueue: Update the module to conform to current timer API
+
+ This patch updates the kqueue timing module to conform to current timer API.
+
+ This fixes issues with using the kqueue timing source on Asterisk 13 on
+ FreeBSD 10. These issues include:
+
+ - Remove support for kevent64(). The values used to support Asterisk timers
+ fit within 32bits and so can be handled on all platforms via kevent().
+
+ - Provide debug logging for, but do not track, unacked events. This matches
+ the behavior of all other timer implementations.
+
+ - Implement continuous mode by triggering and leaving active, a user event.
+ This ensures that the file descriptor for the timer returns immediately from
+ poll(), without placing the load of a high speed timer on the kernel.
+
+ - In kqueue_timer_get_max_rate(), don't overstate the capability of the timer.
+ On some platforms, UINT_MAX is greater than INTPTR_MAX, the largest integer
+ type kqueue supports for timers.
+
+ - In kqueue_timer_get_event(), assume the caller woke up from poll() and just
+ return the mode the timer is currently in. This matches all other timer
+ implementations.
+
+ - Adjust the test code now that unacked events are not tracked.
+
+ Review: https://reviewboard.asterisk.org/r/4465/
+
+ ASTERISK-24857 #close
+ Reported by: scsiguy
+ Tested by: Ed Hynan
+ patches:
+ rb4465.patch submitted by scsiguy (License 6692)
+
+
+ git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@433574 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2015-03-27 07:26 +0000 [b0df413fb2] Corey Farrell <git@cfware.com>
+
+ * Fix link error for utils/aelparse.
+
+ Use the standard ast_log instead of ast_log_safe for STANDALONE programs.
+
+ Review: https://reviewboard.asterisk.org/r/4538/
+ ........
+
+ Merged revisions 433549 from http://svn.asterisk.org/svn/asterisk/branches/11
+
+
+ git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@433550 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2015-03-27 02:09 +0000 [d01706ce1e] Corey Farrell <git@cfware.com>
+
+ * Improved and portable ast_log recursion avoidance
+
+ This introduces a new logger routine ast_log_safe. This routine should be
+ used for all error messages in code that can be run as a result of ast_log.
+ ast_log_safe does nothing if run recursively. All error logging in
+ astobj2.c, strings.c and utils.h have been switched to ast_log_safe.
+
+ This required adding support for raw threadstorage. This provides direct
+ access to the void* pointer in threadstorage. In ast_log_safe, NULL is used
+ to signify that this thread is not already running ast_log_safe, (void*)1 when
+ it is already running. This was done since it's critical that ast_log_safe
+ do nothing that could log during recursion checking.
+
+ ASTERISK-24155 #close
+ Reported by: Timo Teräs
+ Review: https://reviewboard.asterisk.org/r/4502/
+ ........
+
+ Merged revisions 433522 from http://svn.asterisk.org/svn/asterisk/branches/11
+
+
+ git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@433523 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2015-03-26 18:07 +0000 [4b225e2104] Corey Farrell <git@cfware.com>
+
+ * Fix compile errors caused by r4500 / r4501.
+
+ * Add ast_register_cleanup to utils/clicompat.c to deal with
+ any utils that copy sources from main.
+ * Asterisk 13+: remove unused variables from core_local.c.
+
+ Review: https://reviewboard.asterisk.org/r/4534/
+ ........
+
+ Merged revisions 433499 from http://svn.asterisk.org/svn/asterisk/branches/11
+
+
+ git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@433500 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2015-03-26 17:19 +0000 [6adf26f14d] Corey Farrell <git@cfware.com>
+
+ * Replace most uses of ast_register_atexit with ast_register_cleanup.
+
+ Since 'core stop now' and 'core restart now' do not stop modules,
+ it is unsafe for most of the core to run cleanups. Originally all
+ cleanups used ast_register_atexit, and were only changed when it
+ was shown to be unsafe. ast_register_atexit is now used only when
+ absolutely required to prevent corruption and close child processes.
+
+ Exceptions that need to use ast_register_atexit:
+ * CDR: Flush records.
+ * res_musiconhold: Kill external applications.
+ * AstDB: Close the DB.
+ * canary_exit: Kill canary process.
+
+ ASTERISK-24142 #close
+ Reported by: David Brillert
+
+ ASTERISK-24683 #close
+ Reported by: Peter Katzmann
+
+ ASTERISK-24805 #close
+ Reported by: Badalian Vyacheslav
+
+ ASTERISK-24881 #close
+ Reported by: Corey Farrell
+
+ Review: https://reviewboard.asterisk.org/r/4500/
+ Review: https://reviewboard.asterisk.org/r/4501/
+ ........
+
+ Merged revisions 433495 from http://svn.asterisk.org/svn/asterisk/branches/11
+
+
+ git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@433497 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2015-03-26 12:46 +0000 [d0df545a44] Corey Farrell <git@cfware.com>
+
+ * res_pjsip: Enable unload of all modules at shutdown.
+
+ * Move most of res_pjsip:module_unload to unload_pjsip to resolve crashes
+ caused by running PJSIP functions from non-PJSIP threads.
+ * Remove call to pjsip_endpt_destroy(ast_pjsip_endpoint), it was causing
+ crashes in some cases. In theory pj_shutdown() should take care of this.
+ * Mark res_pjsip_keepalive and res_pjsip_session as allowed to unload at
+ shutdown.
+ * Resolve leaked config global in res_pjsip_notify.
+ * Unregister pubsub pjsip service module.
+ * Implement cleanup for res_pjsip_session.
+
+ ASTERISK-24731 #close
+ Reported by: Corey Farrell
+ Review: https://reviewboard.asterisk.org/r/4498/
+
+
+ git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@433469 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2015-03-26 12:04 +0000 [fd434a210f] Kevin Harwell <kharwell@digium.com>
+
+ * app_confbridge: file playback blocks dtmf
+
+ Attempting to execute DTMF in a confbridge while file playback (prompt,
+ announcement, etc) is occurring is not allowed. You have to wait until
+ the sound file has completed before entering DTMF. This patch fixes it
+ so that app_confbridge now monitors for dtmf key presses during menu
+ driven file playback. If a key is pressed playback stops and it executes
+ the matched menu option.
+
+ ASTERISK-24864 #close
+ Reported by: Steve Pitts
+ Review: https://reviewboard.asterisk.org/r/4510/
+ ........
+
+ Merged revisions 433445 from http://svn.asterisk.org/svn/asterisk/branches/11
+
+
+ git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@433446 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2015-03-25 13:37 +0000 [dea885a607] Richard Mudgett <rmudgett@digium.com>
+
+ * A couple minor cleanup tweaks.
+
+ * In res/res_sorcery_realtime.c: Broke long line.
+
+ * In main/bucket.c: Eliminated unnecessary NULL check as
+ ast_sorcery_unref() is NULL tolerant and set the global object to NULL
+ after unref in the system shutdown bucket_cleanup().
+
+
+ git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@433420 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2015-03-25 10:30 +0000 [05de9082a5] Simon Arlott (License 5756)
+
+ * res_xmpp: Buddies are always auto-registered when processing the roster
+
+ Due to a quirk in the configuration handling of res_xmpp, the 'autoregister'
+ setting was never actually processed. This was due to not properly copying
+ over the global settings to the client settings when applying the
+ configuration to the run-time object.
+
+ Review: https://reviewboard.asterisk.org/r/4496/
+
+ ASTERISK-14233
+ ASTERISK-24780 #close
+ Reported by: Simon Arlott
+ patches:
+ asterisk-13.1.0-24780 uploaded by Simon Arlott (License 5756)
+ ........
+
+ Merged revisions 433395 from http://svn.asterisk.org/svn/asterisk/branches/11
+
+
+ git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@433396 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2015-03-24 14:26 +0000 [b1e9552b08] Richard Mudgett <rmudgett@digium.com>
+
+ * chan_pjsip: Add "rpid_immediate" option to prevent unnecessary "180 Ringing" messages.
+
+ Incoming PJSIP call legs that have not been answered yet send unnecessary
+ "180 Ringing" or "183 Progress" messages every time a connected line
+ update happens. If the outgoing channel is also PJSIP then the incoming
+ channel will always send a "180 Ringing" or "183 Progress" message when
+ the outgoing channel sends the INVITE.
+
+ Consequences of these unnecessary messages:
+
+ * The caller can start hearing ringback before the far end even gets the
+ call.
+
+ * Many phones tend to grab the first connected line information and refuse
+ to update the display if it changes. The first information is not likely
+ to be correct if the call goes to an endpoint not under the control of the
+ first Asterisk box.
+
+ When connected line first went into Asterisk in v1.8, chan_sip received an
+ undocumented option "rpid_immediate" that defaults to disabled. When
+ enabled, the option immediately passes connected line update information
+ to the caller in "180 Ringing" or "183 Progress" messages as described
+ above.
+
+ * Added "rpid_immediate" option to prevent unnecessary "180 Ringing" or
+ "183 Progress" messages. The default is "no" to disable sending the
+ unnecessary messages.
+
+ ASTERISK-24781 #close
+ Reported by: Richard Mudgett
+
+ Review: https://reviewboard.asterisk.org/r/4473/
+
+
+ git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@433338 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2015-03-23 Asterisk Development Team <asteriskteam@digium.com>
+
+ * Asterisk 13.3.0-rc1 Released.
+
+2015-03-22 23:58 +0000 [r433247-433269] Matthew Jordan <mjordan@digium.com>
+
+ * apps/app_queue.c, main/cli.c, main/cdr.c, main/manager.c,
+ main/rtp_engine.c, /, funcs/func_cdr.c: Fix compilations errors
+ on 64-bit OpenBSD systems In versiong 5.5, OpenBSD went to 64-bit
+ time values. This requires a cast to (long) when printing members
+ of certain time structs. Review:
+ https://reviewboard.asterisk.org/r/4507 ASTERISK-24879 #close
+ Reported by: snuffy Tested by: snuffy patches:
+ openbsd-time64.diff uploaded by snuffy (License 5024) ........
+ Merged revisions 433268 from
+ http://svn.asterisk.org/svn/asterisk/branches/11
+
+ * main/asterisk.c, main/loader.c, main/xmldoc.c, /: Fix compilation
+ issues for OpenBSD This patch addresses compilation issues for
+ OpenBSD. Specifically, it addresses: * It allows including
+ <sys/vmmeter.h> in asterisk.c * Provides a needed (size_t) cast
+ in xmldoc.c In 13+, it also addresses a conditional inclusion in
+ loader.c. Review: https://reviewboard.asterisk.org/r/4506
+ ASTERISK-24880 #close Reported by: snuffy Tested by: snuffy
+ patches: misc-openbsd.diff uploaded by snuffy (License 5024)
+ ........ Merged revisions 433245 from
+ http://svn.asterisk.org/svn/asterisk/branches/11
+
+2015-03-20 19:52 +0000 [r433199-433222] Richard Mudgett <rmudgett@digium.com>
+
+ * res/res_pjsip_messaging.c, res/res_pjsip/pjsip_options.c,
+ res/res_pjsip.c, res/res_pjsip_nat.c: Audit
+ ast_pjsip_rdata_get_endpoint() usage for ref leaks. Valgrind
+ found some memory leaks associated with
+ ast_pjsip_rdata_get_endpoint(). The leaks would manifest when
+ sending responses to OPTIONS requests, processing MESSAGE
+ requests, and res_pjsip supplements implementing the
+ incoming_request callback. * Fix ast_pjsip_rdata_get_endpoint()
+ endpoint ref leaks in res/res_pjsip.c:supplement_on_rx_request(),
+ res/res_pjsip/pjsip_options.c:send_options_response(),
+ res/res_pjsip_messaging.c:rx_data_to_ast_msg(), and
+ res/res_pjsip_messaging.c:send_response(). * Eliminated
+ RAII_VAR() use with ast_pjsip_rdata_get_endpoint() in
+ res/res_pjsip_nat.c:nat_on_rx_message(). * Fixed inconsistent but
+ benign return value in
+ res/res_pjsip/pjsip_options.c:options_on_rx_request(). Review:
+ https://reviewboard.asterisk.org/r/4511/
+
+ * res/res_pjsip_sdp_rtp.c, main/sorcery.c, main/xmldoc.c:
+ res_pjsip_sdp_rtp,sorcery: Fix invalid access and memory leak
+ respectively. Valgrind found a memory leak and invalid access. *
+ Fix invalid access by sscanf() being fed a non-nul terminated
+ string of digits in res/res_pjsip_sdp_rtp.c:get_codecs(). * Fix
+ memory leak in main/sorcery.c:sorcery_object_field_destructor().
+ * Fix potential NULL pointer dereference in
+ main/xmldoc.c:xmldoc_get_syntax_config_option(). Review:
+ https://reviewboard.asterisk.org/r/4513/
+
+2015-03-19 19:19 +0000 [r433174] Matthew Jordan <mjordan@digium.com>
+
+ * funcs/func_env.c, tests/test_func_file.c, /: funcs/func_env: Fix
+ regression caused in FILE read operation When r432935 was merged,
+ it did correctly fix a situation where a FILE read operation on
+ the middle of a file buffer would not read the requested length
+ in the parameters passed to the FILE function. Unfortunately, it
+ would also allow the FILE function to append more bytes than what
+ was available in the buffer if the length exceeded the end of the
+ buffer length. This patch takes the minimum of the remaining
+ bytes in the buffer along with the calculated length to append
+ provided by the original patch, and uses that as the length to
+ append in the return result. This patch also updates the unit
+ tests with the scenarios that were originally pointed out in
+ ASTERISK-21765 that the original implementation treated
+ incorrectly. ASTERISK-21765 ........ Merged revisions 433173 from
+ http://svn.asterisk.org/svn/asterisk/branches/11
+
+2015-03-19 10:20 +0000 [r433113-433126] Corey Farrell <git@cfware.com>
+
+ * main/logger.c, /: logger: Apply default console logging when
+ configuration cannot be loaded. When logger.conf is missing or
+ invalid enable console logging and display an error message.
+ ASTERISK-24817 #close Reported by: Corey Farrell Review:
+ https://reviewboard.asterisk.org/r/4497/ ........ Merged
+ revisions 433122 from
+ http://svn.asterisk.org/svn/asterisk/branches/11
+
+ * channels/sip/include/dialog.h, channels/chan_sip.c,
+ channels/sip/include/sip.h: chan_sip: Simplify dialog/peer
+ references, improve REF_DEBUG output. * Replace functions for
+ ref/undef of dialogs and peers with macro's to call
+ ao2_t_bump/ao2_t_cleanup. * Enable passthough of REF_DEBUG caller
+ information to sip_alloc and find_call. ASTERISK-24882 #close
+ Reported by: Corey Farrell Review:
+ https://reviewboard.asterisk.org/r/4189/
+
+ * /, channels/chan_sip.c: chan_sip: Fix dialog reference leaked to
+ scheduler for reinvite_timeout. Release the scheduler reference
+ to the dialog for reinvite timeout during dialog_unlink_all.
+ ASTERISK-24876 #close Reported by: Corey Farrell Review:
+ https://reviewboard.asterisk.org/r/4491/ ........ Merged
+ revisions 433112 from
+ http://svn.asterisk.org/svn/asterisk/branches/11
+
+2015-03-18 02:34 +0000 [r433088] Richard Mudgett <rmudgett@digium.com>
+
+ * res/res_pjsip_session.c: res_pjsip_session: Fix off-nominal extra
+ unref of session.
+
+2015-03-17 22:15 +0000 [r433060-433064] Scott Griepentrog <sgriepentrog@digium.com>
+
+ * main/asterisk.c, main/config.c, main/xmldoc.c, main/manager.c,
+ include/asterisk/config.h, main/utils.c, main/codec_builtin.c,
+ main/endpoints.c: Various: bugfixes found via chaos Using
+ DEBUG_CHAOS several instances of a null pointer crash, and one
+ uninitialized variable were uncovered and fixed. Also added
+ details on why Asterisk failed to initialize. Review:
+ https://reviewboard.asterisk.org/r/4468/
+
+ * build_tools/cflags.xml, include/asterisk/utils.h: core: Introduce
+ chaos into memory allocations Locate potential crashes by
+ exercising seldom used code paths. This patch introduces a new
+ define DEBUG_CHAOS, and mechanism to randomly return an error
+ condition from functions that will seldom do so. Functions that
+ handle the allocation of memory get the first treatment. Review:
+ https://reviewboard.asterisk.org/r/4463/
+
+2015-03-17 21:49 +0000 [r433057] Richard Mudgett <rmudgett@digium.com>
+
+ * main/netsock2.c, /, res/res_pjsip_sdp_rtp.c, res/res_pjsip_t38.c,
+ apps/app_externalivr.c, res/res_pjsip_acl.c: Audit
+ ast_sockaddr_resolve() usage for memory leaks. Valgrind found
+ some memory leaks associated with ast_sockaddr_resolve(). Most of
+ the leaks had already been fixed by earlier memory leak hunt
+ patches. This patch performs an audit of ast_sockaddr_resolve()
+ and found one more. * Fix ast_sockaddr_resolve() memory leak in
+ apps/app_externalivr.c:app_exec(). * Made
+ main/netsock2.c:ast_sockaddr_resolve() always set the addrs
+ parameter for safety so the pointer will never be uninitialized
+ on return. The same goes for
+ res/res_pjsip_acl.c:extract_contact_addr(). * Made functions that
+ call ast_sockaddr_resolve() with RAII_VAR() controlling the addrs
+ variable use ast_free instead of ast_free_ptr to provide better
+ MALLOC_DEBUG information. Review:
+ https://reviewboard.asterisk.org/r/4509/ ........ Merged
+ revisions 433056 from
+ http://svn.asterisk.org/svn/asterisk/branches/11
+
+2015-03-17 18:34 +0000 [r433028-433031] Kevin Harwell <kharwell@digium.com>
+
+ * include/asterisk/res_pjsip.h,
+ res/res_pjsip_endpoint_identifier_anonymous.c,
+ res/res_pjsip_endpoint_identifier_ip.c, res/res_pjsip.c,
+ res/res_pjsip_endpoint_identifier_user.c: res_pjsip: Allow
+ configuration of endpoint identifier query order Updated some
+ documentation stating that endpoint identifiers registered
+ without a name are place at the front of the lookup list. Also
+ renamed register method
+ 'ast_sip_register_endpoint_identifier_by_name' to
+ 'ast_sip_register_endpoint_identifier_with_name' ASTERISK-24840
+ Reported by: Mark Michelson
+
+ * configs/samples/pjsip.conf.sample, CHANGES, res/res_pjsip.c,
+ res/res_pjsip_endpoint_identifier_user.c,
+ include/asterisk/res_pjsip.h, res/res_pjsip/config_global.c,
+ res/res_pjsip_endpoint_identifier_anonymous.c,
+ res/res_pjsip_endpoint_identifier_ip.c,
+ contrib/ast-db-manage/config/versions/45e3f47c6c44_add_pjsip_endpoint_identifier_order.py:
+ res_pjsip: Allow configuration of endpoint identifier query order
+ This patch fixes previously reverted code that caused binary
+ incompatibility problems with some modules. And like the original
+ patch it makes sure that no matter what order the endpoint
+ identifier modules were loaded, priority is given based on the
+ ones specified in the new global 'endpoint_identifier_order'
+ option. ASTERISK-24840 Reported by: Mark Michelson Review:
+ https://reviewboard.asterisk.org/r/4489/
+
+2015-03-17 16:10 +0000 [r433005] Richard Mudgett <rmudgett@digium.com>
+
+ * res/res_pjsip.c: res_pjsip: Add reason comment.
+
+2015-03-14 02:28 +0000 [r432971] Matthew Jordan <mjordan@digium.com>
+
+ * /, main/format_cap.c: main/frame: Don't report empty disallow
+ values as an error In realtime, it is normal to have a database
+ with both 'allow' and 'disallow' columns in the schema. It is
+ perfectly valid to have an 'allow' value of '!all,g722,ulaw,alaw'
+ and no 'disallow' value. Unlike in static conf files, you can't
+ *not* provide the disallow value. Thus, the empty disallow value
+ causes a spurious WARNING message, which is kind of annoying.
+ This patch makes it so that a 'disallow' value with no ... value
+ ... is ignored. Granted, you can still screw this up as well, as
+ technically specifying 'disallow=all,!ulaw' allows only ulaw, and
+ then you would have no 'allow' value in your database. But
+ really, why would you do that? WHY? ASTERISK-16779 #close
+ Reported by: Atis Lezdins ........ Merged revisions 432970 from
+ http://svn.asterisk.org/svn/asterisk/branches/11
+
+2015-03-14 02:00 +0000 [r432945-432949] Joshua Colp <jcolp@digium.com>
+
+ * funcs/func_curl.c, /: func_curl: Don't hold exclusive lock when
+ performing HTTP request. This code originally kept a lock held
+ when performing the HTTP request to ensure that the options
+ provided to curl remain valid. This doesn't seem to be necessary
+ these days and holding the lock caused requests to happen
+ sequentially instead of in parallel. ASTERISK-18708 #close
+ Reported by: Dave Cabot ........ Merged revisions 432948 from
+ http://svn.asterisk.org/svn/asterisk/branches/11
+
+ * main/cli.c, /: core: Fix tab completion of "core set debug
+ channel" CLI command. The "core set debug channel" CLI command
+ mistakenly had source filenames added to its tab completion. This
+ occurred because the CLI generator fell back to the "core set
+ debug" command which permits setting debug at a source filename
+ level. ASTERISK-21038 #close Reported by: Richard Kenner ........
+ Merged revisions 432944 from
+ http://svn.asterisk.org/svn/asterisk/branches/11
+
+2015-03-14 01:21 +0000 [r432920-432938] Matthew Jordan <mjordan@digium.com>
+
+ * /, funcs/func_env.c: FILE: fix retrieval of file contents when
+ offset is specified The loop that reads in a file was not
+ correctly using the offset when determining what bytes to append
+ to the output. This patch corrects the logic such that the
+ correct portion of the file is extracted when an offset is
+ specified. ASTERISK-21765 Reported by: John Zhong Tested by: Matt
+ Jordan, Di-Shi Sun patches: file_read_390821.patch uploaded by
+ Di-Shi Sun (License 5076) ........ Merged revisions 432935 from
+ http://svn.asterisk.org/svn/asterisk/branches/11
+
+ * apps/app_amd.c, /, configs/samples/amd.conf.sample: apps/app_amd:
+ Document maximum_word_length option; fix AMDCAUSE documentation
+ This patch corrects the documentation for the AMD application.
+ Specifically: * It documents the maximum_word_length option,
+ which limits the maximum allowed length of a single utterance. *
+ It clarifies the AMDCAUSE values MAXWORDS and MAXWORDLENGTH.
+ MAXWORDLENGTH was documented as MAXWORDS, while MAXWORDS was
+ undocumented. Thanks to the issue reporter, Frank DiGennaro, for
+ pointing out the issues. ASTERISK-19470 #close Reported by: Frank
+ DiGennaro ........ Merged revisions 432918 from
+ http://svn.asterisk.org/svn/asterisk/branches/11
+
+2015-03-13 17:04 +0000 [r432892-432894] Richard Mudgett <rmudgett@digium.com>
+
+ * res/res_pjsip/pjsip_configuration.c: chan_pjsip: AMI action
+ PJSIPShowEndpoint closes AMI connection on error. Also fixed
+ similar problem with AMI action PJSIPShowEndpoints.
+ ASTERISK-24872 #close Reported by: Dmitriy Serov Review:
+ https://reviewboard.asterisk.org/r/4487/
+
+ * channels/chan_pjsip.c, res/res_pjsip_caller_id.c:
+ chan_pjsip/res_pjsip_callerid: Make Party ID handling simpler and
+ consistent. The res_pjsip modules were manually checking both
+ name and number presentation values when there is a function that
+ determines the combined presentation for a party ID struct. The
+ function takes into account if the name or number components are
+ valid while the manual code rarely checked if the data was even
+ valid. * Made use ast_party_id_presentation() rather than
+ manually checking party ID presentation values. * Ensure that
+ set_id_from_pai() and set_id_from_rpid() will not return
+ presentation values other than what is pulled out of the SIP
+ headers. It is best if the code doesn't assume that
+ AST_PRES_ALLOWED and AST_PRES_USER_NUMBER_UNSCREENED are zero. *
+ Fixed copy paste error in add_privacy_params() dealing with RPID
+ privacy. * Pulled the id->number.valid test from
+ add_privacy_header() and add_privacy_params() up into the parent
+ function add_id_headers() to skip adding PAI/RPID headers
+ earlier. * Made update_connected_line_information() not send out
+ connected line updates if the connected line number is invalid.
+ Lower level code would not add the party ID information and thus
+ the sent message would be unnecessary. * Eliminated RAII_VAR
+ usage in send_direct_media_request(). Review:
+ https://reviewboard.asterisk.org/r/4472/
+
+2015-03-13 14:48 +0000 [r432868] Kevin Harwell <kharwell@digium.com>
+
+ * include/asterisk/res_pjsip.h, res/res_pjsip/config_global.c,
+ res/res_pjsip_endpoint_identifier_anonymous.c,
+ res/res_pjsip_endpoint_identifier_ip.c,
+ contrib/ast-db-manage/config/versions/45e3f47c6c44_add_pjsip_endpoint_identifier_order.py,
+ configs/samples/pjsip.conf.sample, CHANGES, res/res_pjsip.c,
+ res/res_pjsip_endpoint_identifier_user.c: Revert - res_pjsip:
+ Allow configuration of endpoint identifier query order Due to a
+ break in binary compatibility with some other modules these
+ changes are being reverted until the issue can be resolved.
+ ASTERISK-24840 Reported by: Mark Michelson
+
+2015-03-12 12:58 +0000 [r432808-432811] Matthew Jordan <mjordan@digium.com>
+
+ * /, main/audiohook.c: main/audiohook: Update internal sample rate
+ on reads When an audiohook is created (which is used by the
+ various Spy applications and Snoop channel in Asterisk 13+), it
+ initially is given a sample rate of 8kHz. It is expected,
+ however, that this rate may change based on the media that passes
+ through the audiohook. However, the read/write operations on the
+ audiohook behave very differently. When a frame is written to the
+ audiohook, the format of the frame is checked against the
+ internal sample rate. If the rate of the format does not match
+ the internal sample rate, the internal sample rate is updated and
+ a new SLIN format is chosen based on that sample rate. This works
+ just fine. When a frame is read, however, we do something quite
+ different. If the format rate matches the internal sample rate,
+ all is fine. However, if the rates don't match, the audiohook
+ attempts to "fix up" the number of samples that were requested.
+ This can result in some seriously large number of samples being
+ requested from the read/write factories. Consider the worst case
+ - 192kHz SLIN. If we attempt to read 20ms worth of audio produced
+ at that rate, we'd request 3840 samples (192000 / (1000 / 20)).
+ However, if the audiohook is still expecting an internal sample
+ rate of 8000, we'll attempt to "fix up" the requested samples to:
+ samples_converted = samples * (ast_format_get_sample_rate(format)
+ / (float) audiohook->hook_internal_samp_rate); which is: 92160 =
+ 3840 * (192000 / 8000) This results in us attempting to read
+ 92160 samples from our factories, as opposed to the 3840 that we
+ actually wanted. On a 64-bit machine, this miraculously survives
+ - despite allocating up to two buffers of length 92160 on the
+ stack. The 32-bit machines aren't quite so lucky. Even in the
+ case where this works, we will either (a) get way more samples
+ than we wanted; or (b) get about 3840 samples, assuming the
+ timing is pretty good on the machine. Either way, the calculation
+ being performed is wrong, based on the API users expectations. My
+ first inclination was to allocate the buffers on the heap. As it
+ is, however, there's at least two drawbacks with doing this: (1)
+ It's a bit complicated, as the size of the buffers may change
+ during the lifetime of the audiohook (ew). (2) The stack is
+ faster (yay); the heap is slower (boo). Since our calculation is
+ flat out wrong in the first place, this patch fixes this issue by
+ instead updating the internal sample rate based on the format
+ passed into the read operation. This causes us to read the
+ correct number of samples, and has the added benefit of setting
+ the audihook with the right SLIN format. Note that this issue was
+ caught by the Asterisk Test Suite as a result of r432195 in the
+ 13 branch. Because this issue is also theoretically possible in
+ Asterisk 11, the change is being made here as well. Review:
+ https://reviewboard.asterisk.org/r/4475/ ........ Merged
+ revisions 432810 from
+ http://svn.asterisk.org/svn/asterisk/branches/11
+
+ * Makefile, include/asterisk/utils.h, /, configure, main/Makefile,
+ configure.ac, include/asterisk/inline_api.h, makeopts.in: Add
+ support for the clang compiler; update RAII_VAR to use
+ BlocksRuntime RAII_VAR, which is used extensively in Asterisk to
+ manage reference counted resources, uses a GCC extension to
+ automatically invoke a cleanup function when a variable loses
+ scope. While this functionality is incredibly useful and has
+ prevented a large number of memory leaks, it also prevents
+ Asterisk from being compiled with clang. This patch updates the
+ RAII_VAR macro such that it can be compiled with clang. It makes
+ use of the BlocksRuntime, which allows for a closure to be
+ created that performs the actual cleanup. Note that this does not
+ attempt to address the numerous warnings that the clang compiler
+ catches in Asterisk. Much thanks for this patch goes to: * The
+ folks on StackOverflow who asked this question and Leushenko for
+ providing the answer that formed the basis of this code:
+ http://stackoverflow.com/questions/24959440/rewrite-gcc-cleanup-macro-with-nested-function-for-clang
+ * Diederik de Groot, who has been extremely patient in working on
+ getting this patch into Asterisk. Review:
+ https://reviewboard.asterisk.org/r/4370/ ASTERISK-24133
+ ASTERISK-23666 ASTERISK-20399 ASTERISK-20850 #close Reported by:
+ Diederik de Groot patches: RAII_CLANG.patch uploaded by Diederik
+ de Groot (License 6600) ........ Merged revisions 432807 from
+ http://svn.asterisk.org/svn/asterisk/branches/11
+
+2015-03-11 16:38 +0000 [r432764-432787] Richard Mudgett <rmudgett@digium.com>
+
+ * res/res_pjsip/config_domain_aliases.c,
+ res/res_pjsip/include/res_pjsip_private.h,
+ include/asterisk/res_pjsip.h: res_pjsip: Move internal
+ init/destroy prototypes to private header file. Done as a
+ separate commit from a finding in
+ https://reviewboard.asterisk.org/r/4467/
+
+ * include/asterisk/res_pjsip.h, res/res_pjsip/config_global.c,
+ res/res_pjsip/pjsip_configuration.c: res_pjsip: Fix pjsip.conf
+ type=global object default value handling. When a type=global
+ section is not defined in pjsip.conf the global defaults are not
+ applied. As a result the mandatory Max-Forwards header is not
+ added to SIP messages for res_pjsip/chan_pjsip. The handling of
+ pjsip.conf type=global objects has several problems: 1) If the
+ global object is missing the defaults are not applied. 2) If the
+ global object is missing the default_outbound_endpoint's default
+ value is not returned by
+ ast_sip_global_default_outbound_endpoint(). 3) Defines are needed
+ so default values only need to be changed in one place. * Added a
+ sorcery instance observer callback to check if there were any
+ type=global sections loaded. If there were more than one then
+ issue an error message. If there were none then apply the global
+ defaults. * Fixed ast_sip_global_default_outbound_endpoint() to
+ return the documented default when no type=global object is
+ defined. * Made defines for the global default values. *
+ Increased the default_useragent[] size because SVN version
+ strings can get lengthy and 128 characters may not be enough. *
+ Fixed an off-nominal code path ref leak in global_alloc() if the
+ string fields fail to initialize. * Eliminated RAII_VAR in
+ get_global_cfg() and ast_sip_global_default_outbound_endpoint().
+ ASTERISK-24807 #close Reported by: Anatoli Review:
+ https://reviewboard.asterisk.org/r/4467/
+
+ * res/res_pjsip/pjsip_global_headers.c: res_pjsip: Fixed invalid
+ empty Server and User-Agent SIP headers. Setting pjsip.conf
+ useragent to an empty string results in an empty SIP header being
+ sent. * Made not add an empty SIP header item to the global SIP
+ headers list. Review: https://reviewboard.asterisk.org/r/4467/
+
+2015-03-10 23:09 +0000 [r432742] Joshua Colp <jcolp@digium.com>
+
+ * main/stasis_channels.c, main/endpoints.c, main/stasis_bridges.c:
+ core: Don't create snapshots with locks. Snapshots are immutable
+ and are never changed. Allocating them with a lock is wasteful.
+ Review: https://reviewboard.asterisk.org/r/4469/
+
+2015-03-10 21:33 +0000 [r432693-432721] Matthew Jordan <mjordan@digium.com>
+
+ * res/res_config_odbc.c, /: res/res_config_odbc: Fix improper
+ escaping of backslashes with MySQL When escaping backslashes with
+ MySQL, the proper way to escape the characters in a LIKE clause
+ is to escape the '\' four times, i.e., '\\\\'. To quote the MySQL
+ manual: "Because MySQL uses C escape syntax in strings (for
+ example, “\n” to represent a newline character), you must double
+ any “\” that you use in LIKE strings. For example, to search for
+ “\n”, specify it as “\\n”. To search for “\”, specify it as
+ “\\\\”; this is because the backslashes are stripped once by the
+ parser and again when the pattern match is made, leaving a single
+ backslash to be matched against." ASTERISK-24808 #close Reported
+ by: Javier Acosta patches: res_config_odbc.diff uploaded by
+ Javier Acosta (License 6690) ........ Merged revisions 432720
+ from http://svn.asterisk.org/svn/asterisk/branches/11
+
+ * apps/app_voicemail.c, /: app_voicemail: Fix crash with IMAP
+ backends when greetings aren't present When an IMAP backend is in
+ use and greetings are set to be used, but aren't present for a
+ user in their IMAP folder, Asterisk will crash. This occurs due
+ to the mailstream being set to the 'greetings' folder and being
+ left in that particular state, regardless of the success/failure
+ of the attempt to access the folder the mailstream points to.
+ Later access of the mailstream assumes that it points to the
+ 'INBOX' (or some other folder), resulting in either a crash (if
+ the greetings folder didn't exist and the mailstream is invalid)
+ or an inability to read messages from the 'INBOX' folder. This
+ patch restores the mailstream to its correct state after
+ accessing the greetings. This fixes the crash, and sets the
+ mailstream to the state that VoiceMailMain expects. Note that
+ while ASTERISK-23390 also contained a patch for this issue, the
+ patch on ASTERISK-24786 is the one being merged here. Review:
+ https://reviewboard.asterisk.org/r/4459/ ASTERISK-23390 #close
+ Reported by: Ben Smithurst ASTERISK-24786 #close Reported by:
+ Graham Barnett Tested by: Graham Barnett patches:
+ app_voicemail.c.patch.SIGSEGV3rev2 uploaded by Graham Barnett
+ (License 6685) ........ Merged revisions 432695 from
+ http://svn.asterisk.org/svn/asterisk/branches/11
+
+ * /, main/stdtime/localtime.c: localtime: Fix file descriptor leak
+ on kqueue(2) systems The localtime management in the Asterisk
+ core contains a thread that watches for changes in the local
+ timezone. On systems where the directory containing
+ /etc/localtime is modified frequently, the thread monitoring the
+ changes will be woken up to determine if any changes in timezone
+ have occurred. When using kqueue(2), this can cause a leak of
+ file descriptors due to some improper management of resources.
+ This patch updates the kqueue(2) handling in localtime, such that
+ is no longer leaks resources. Review:
+ https://reviewboard.asterisk.org/r/4450/ ASTERISK-24739 #close
+ Reported by: Ed Hynan patches: 11.15.0-u.diff uploaded by Ed
+ Hynan (Licnese 6680) 11.7.0-u.diff uploaded by Ed Hynan (License
+ 6680) svn-trunk-Jan-26-2015-u.diff uploaded by Ed Hynan (License
+ 6680) ........ Merged revisions 432691 from
+ http://svn.asterisk.org/svn/asterisk/branches/11
+
+2015-03-10 16:04 +0000 [r432668] Richard Mudgett <rmudgett@digium.com>
+
+ * res/res_pjsip_refer.c, res/res_pjsip_session.c,
+ include/asterisk/res_pjsip_session.h,
+ res/res_pjsip_session.exports.in: res_pjsip_refer: Fix occasional
+ unexpected BYE sent after receiving a REFER. A race condition
+ happened between initiating a transfer and requesting that a
+ dialog termination be delayed. Occasionally, the transferrer
+ channels would exit the bridge and hangup before the dialog
+ termination delay was requested. * Made request dialog
+ termination delay before initiating the transfer action. If the
+ transfer fails then cancel the delayed dialog termination
+ request. ASTERISK-24755 #close Reported by: John Bigelow Review:
+ https://reviewboard.asterisk.org/r/4460/
+
+2015-03-09 16:12 +0000 [r432638] Kevin Harwell <kharwell@digium.com>
+
+ * include/asterisk/res_pjsip.h, res/res_pjsip/config_global.c,
+ res/res_pjsip_endpoint_identifier_anonymous.c,
+ res/res_pjsip_endpoint_identifier_ip.c,
+ contrib/ast-db-manage/config/versions/45e3f47c6c44_add_pjsip_endpoint_identifier_order.py
+ (added), configs/samples/pjsip.conf.sample, CHANGES,
+ res/res_pjsip.c, res/res_pjsip_endpoint_identifier_user.c:
+ res_pjsip: Allow configuration of endpoint identifier query order
+ It's possible to have a scenario that will create a conflict
+ between endpoint identifiers. For instance an incoming call could
+ be identified by two different endpoint identifiers and the one
+ chosen depended upon which identifier module loaded first. This
+ of course causes problems when, for example, the incoming call is
+ expected to be identified by username, but instead is identified
+ by ip. This patch adds a new 'global' option to res_pjsip called
+ 'endpoint_identifier_order'. It is a comma separated list of
+ endpoint identifier names that specifies the order by which
+ identifiers are processed and checked. ASTERISK-24840 #close
+ Reported by: Mark Michelson Review:
+ https://reviewboard.asterisk.org/r/4455/
+
+2015-03-08 01:46 +0000 [r432614] Joshua Colp <jcolp@digium.com>
+
+ * res/res_rtp_asterisk.c: res_rtp_asterisk: Fix wrongful use of
+ USE_PJPROJECT define. As pjproject is now used as a shared
+ library a different define, HAVE_PJPROJECT, is used to specify if
+ pjproject is present. ASTERISK-24830 #close Reported by: Stefan
+ Engström
+
+2015-03-06 22:50 +0000 [r432574-432594] Richard Mudgett <rmudgett@digium.com>
+
+ * res/res_pjsip_refer.c: res_pjsip_refer: Make safely get the
+ context for a blind transfer. Made safely get the
+ TRANSFER_CONTEXT channel value while the channel is locked in
+ refer_incoming_attended_request() and
+ refer_incoming_blind_request(). The pointer returned by
+ pbx_builtin_getvar_helper() is only valid while the channel is
+ locked.
+
+ * res/res_pjsip_refer.c: res_pjsip_refer: Made
+ refer_attended_alloc() not create the ao2 object with a lock. The
+ lock is unused.
+
+2015-03-06 21:11 +0000 [r432556] Jonathan Rose <jrose@digium.com>
+
+ * include/asterisk/app.h, main/app.c: app: Add functions to swap
+ voicemail function table for testing purposes
+
+2015-03-06 20:18 +0000 [r432528-432534] Richard Mudgett <rmudgett@digium.com>
+
+ * channels/chan_dahdi.c, channels/sig_analog.c, /,
+ channels/chan_dahdi.h, channels/sig_analog.h, UPGRADE.txt:
+ chan_dahdi/sig_analog: Fix distinctive ring detection to suck
+ less. The distinctive ring feature interferes with detecting
+ Caller ID and appears to have been broken for years. What happens
+ is if you have a ring-ring cadence as used in the UK you get too
+ many DAHDI events for the distinctive ring pattern array and
+ Caller ID detection is aborted. I think when Zapata/DAHDI added
+ the ring begin event it broke distinctive ring. More events
+ happen than before and the code does no filtering of which event
+ times are recorded in the pattern array. * Made distinctive ring
+ only record the ringt count when the ring ends instead of on just
+ any DAHDI event. Distinctive ring can be ring, ring-ring,
+ ring-ring-ring, or different ring durations for the up to three
+ rings. * Fixed the distinctive ring detection enable
+ (chan_dahdi.conf option usedistinctiveringdetection) to be per
+ port instead of somewhat per port and somewhat global. This has
+ been broken since v1.8. * Fixed using the default distinctive
+ ring context when the detected pattern does not match any
+ configured dringX patterns. The default context did not get set
+ when the previous call was a matched distinctive ring pattern and
+ the current call is not matched. This has been broken since v1.8.
+ * Made distinctive ring have no effect on Caller ID detection
+ when it is disabled. Caller ID detection just monitors for 10
+ seconds before giving up. * Fixed leak of struct callerid_state
+ memory when a polarity reversal during Caller ID detection causes
+ the incoming call to be aborted. DAHDI-1143 AST-1545
+ ASTERISK-24825 #close Reported by: Richard Mudgett ASTERISK-17588
+ Reported by: Daniel Flounders Review:
+ https://reviewboard.asterisk.org/r/4444/ ........ Merged
+ revisions 432530 from
+ http://svn.asterisk.org/svn/asterisk/branches/11
+
+ * /, channels/chan_sip.c: chan_sip: Fix realtime locking inversion
+ when poking a just built peer. When a realtime peer is built it
+ can cause a locking inversion when the just built peer is poked.
+ If the CLI command "sip show channels" is periodically executed
+ then a deadlock can happen because of the locking inversion. *
+ Push the peer poke off onto the scheduler thread to avoid the
+ locking inversion of the just built realtime peer. AST-1540
+ ASTERISK-24838 #close Reported by: Richard Mudgett Review:
+ https://reviewboard.asterisk.org/r/4454/ ........ Merged
+ revisions 432526 from
+ http://svn.asterisk.org/svn/asterisk/branches/11
+
+2015-03-05 16:38 +0000 [r432485] George Joseph <george.joseph@fairview5.com>
+
+ * apps/app_voicemail.c, /: app_voicemail: Fix compile breaking in
+ app_voicemail with IMAP_STORAGE. There is a leftover "assert" in
+ app_voicemail/__messagecount that references variables that don't
+ exist. This causes the compile to fail when --enable-dev-mode and
+ IMAP_STORAGE are selected. This patch removes the assert.
+ Tested-by: George Joseph Review:
+ https://reviewboard.asterisk.org/r/4461/ ........ Merged
+ revisions 432484 from
+ http://svn.asterisk.org/svn/asterisk/branches/11
+
+2015-03-04 18:52 +0000 [r432453] Matthew Jordan <mjordan@digium.com>
+
+ * main/translate.c: translate: Prevent invalid memory accesses on
+ fast shutdown When a 'core restart now' or 'core stop now' is
+ executed and a channel is currently in a media operation, the
+ translator matrix can be destroyed while a channel is currently
+ blocked on getting the best translation choice (see
+ ast_translator_best_choice). When the channel gets the mutex, the
+ translation matrix now has invalid memory, and Asterisk crashes.
+ This patch does two things: (1) We now only clean up the
+ translation matrix on a graceful shutdown. In that case, there
+ are no channels, and so there is no risk of this occurring. (2)
+ We also now set the __matrix and __indextable to NULL. In some
+ initial backtraces when this occurred, it looked as if there was
+ a memory corruption occurring, and it wasn't until we determined
+ that something had restarted Asterisk that the issue became
+ clear. By setting these to NULL on shutdown, it becomes a bit
+ easier to determine why a crash is occurring. Note that we could
+ litter the code with NULL checks on the __matrix, but the act of
+ making the translation matrix cleaned up on shutdown should
+ preclude this issue from occurring in the first place, and this
+ part of the code needs to be as fast as possible. Review:
+ https://reviewboard.asterisk.org/r/4457/
+
+2015-03-02 19:14 +0000 [r432423] Matthew Jordan <mjordan@digium.com>
+
+ * res/res_pjsip_sdp_rtp.c: res/res_pjsip_sdp_rtp: Revert portion of
+ r432195 Unfortunately, while initial testing with ConfBridge did
+ not reproduce the audio problem alluded to in the comment in
+ res_pjsip_sdp_rtp, further testing did show that bridge_softmix
+ and/or ConfBridge has a severe problem bridging two or more
+ participants at different sampling rates. Sometimes, it even
+ picks odd sampling rates that cause hideous audio problems. This
+ patch backs out the offending portion of the code until the
+ issues in the affected bridging modules can be more properly
+ analyzed. ASTERISK-24841
+
+2015-02-27 18:23 +0000 [r432404] Richard Mudgett <rmudgett@digium.com>
+
+ * main/json.c, rest-api/api-docs/endpoints.json,
+ res/ari/resource_endpoints.c, res/res_ari_endpoints.c,
+ include/asterisk/json.h, res/ari/resource_channels.c: ARI: Fix
+ crash if integer values used in JSON payload 'variables' object.
+ Sending the following ARI commands caused Asterisk to crash if
+ the JSON body 'variables' object passes values of types other
+ than strings. POST /ari/channels POST /ari/channels/{channelid}
+ PUT /ari/endpoints/sendMessage PUT
+ /ari/endpoints/{tech}/{resource}/sendMessage * Eliminated
+ RAII_VAR usage in ast_ari_channels_originate_with_id(),
+ ast_ari_channels_originate(), ast_ari_endpoints_send_message(),
+ and ast_ari_endpoints_send_message_to_endpoint(). ASTERISK-24751
+ #close Reported by: jeffrey putnam Review:
+ https://reviewboard.asterisk.org/r/4447/
+
+2015-02-26 18:52 +0000 [r432385] Scott Griepentrog <sgriepentrog@digium.com>
+
+ * include/asterisk/dial.h, main/dial.c: Dial API: add self destruct
+ option when complete This patch adds a self-destruction option to
+ the dial api. The usefulness of this is mostly when using async
+ mode to spawn a separate thread used to handle the new call,
+ while the calling thread is allowed to go on about other
+ business. The only alternative to this option would be the
+ calling thread spawning a new thread, or hanging around itself
+ waiting to destroy the dial struct after completion. Example of
+ use (minus error checking): struct ast_dial *dial =
+ ast_dial_create(); ast_dial_append(dial, "PJSIP", "200", NULL);
+ ast_dial_option_global_enable(dial, AST_DIAL_OPTION_ANSWER_EXEC,
+ "Echo"); ast_dial_option_global_enable(dial,
+ AST_DIAL_OPTION_SELF_DESTROY, NULL); ast_dial_run(dial, NULL, 1);
+ The dial_run call will return almost immediately after spawning
+ the new thread to run and monitor the dial. If the call is
+ answered, it is placed into the echo app. When completed, it will
+ call ast_dial_destroy() on the dial structure. Note that any
+ allocations made to pass values to ast_dial_set_user_data() or
+ dial options must be free'd in a state callback function on any
+ of: AST_DIAL_RESULT_UNASWERED, AST_DIAL_RESULT_ANSWERED,
+ AST_DIAL_RESULT_HANGUP, or AST_DIAL_RESULT_TIMEOUT. Review:
+ https://reviewboard.asterisk.org/r/4443/
+
+2015-02-26 17:07 +0000 [r432363] Kevin Harwell <kharwell@digium.com>
+
+ * /, apps/app_chanspy.c, main/channel.c: app_chanspy, channel: fix
+ frame leaks Fixed a couple of frame leaks that were found during
+ testing. ASTERISK-24828 #close Reported by: John Hardin Review:
+ https://reviewboard.asterisk.org/r/4445/ ........ Merged
+ revisions 432362 from
+ http://svn.asterisk.org/svn/asterisk/branches/11
+
+2015-02-26 04:58 +0000 [r432321-432342] Matthew Jordan <mjordan@digium.com>
+
+ * /, apps/Makefile, channels/Makefile: make: Remove 'res_features'
+ from libraries to link against with cygwin/mingw32 Both the apps
+ and channels Makefiles still listed 'res_features' as modules to
+ link against when compiling for cygwin or mingw32. This module
+ hasn't existed for quite some time. ASTERISK-18105 #close
+ Reported by: feyfre ........ Merged revisions 432341 from
+ http://svn.asterisk.org/svn/asterisk/branches/11
+
+ * /, channels/chan_sip.c: channels/chan_sip: Don't send a BYE after
+ final response when PBX thread fails When Asterisk fails to start
+ a PBX thread for a new channel - for example, when the maxcalls
+ setting in asterisk.conf is exceeded - we currently send a final
+ response, and then attempt to send a BYE request to the UA. Since
+ that's all sorts of wrong, this patch fixes that by setting
+ sipalreadygone on the sip_pvt such that we don't get stuck
+ sending BYE requests to something that does not want it. Note
+ that this patch is a slight modification of the one on
+ ASTERISK-15434. For clarity, it explicitly calls sipalreadygone
+ with the calls to transmit a final response. ASTERISK-21845
+ ASTERISK-15434 #close Reported by: Makoto Dei Tested by: Matt
+ Jordan patches: sip-pbxstart-failed.patch uploaded by Makoto Dei
+ (License 5027) ........ Merged revisions 432320 from
+ http://svn.asterisk.org/svn/asterisk/branches/11
+
+2015-02-25 23:48 +0000 [r432301] Rusty Newton <rnewton@digium.com>
+
+ * configs/basic-pbx/README (added), configs/basic-pbx (added),
+ configs/basic-pbx/extensions.conf (added),
+ configs/basic-pbx/logger.conf (added),
+ configs/basic-pbx/indications.conf (added),
+ configs/basic-pbx/musiconhold.conf (added),
+ configs/basic-pbx/asterisk.conf (added),
+ configs/basic-pbx/pjsip.conf (added),
+ configs/basic-pbx/modules.conf (added),
+ configs/basic-pbx/voicemail.conf (added): configs/basic-pbx -
+ Super Awesome Company example configs Phase 1, Patch 1 Example
+ configuration files for a "basic PBX" deployment for the
+ fictitious Super Awesome Company. Details at
+ https://reviewboard.asterisk.org/r/4379/ and
+ https://wiki.asterisk.org/wiki/display/AST/Super+Awesome+Company
+ Reported by: Malcolm Davenport Tested by: Rusty Newton Review:
+ https://reviewboard.asterisk.org/r/4379/
+
+2015-02-25 23:09 +0000 [r432258-432281] Matthew Jordan <mjordan@digium.com>
+
+ * /, configure, configure.ac: configure: Promote SQLite3 "not
+ installed" warning to error Since Asterisk won't build without
+ the library, not having it is definitely an error. Thanks to Kyle
+ Kurz for pointing this out. ........ Merged revisions 432280 from
+ http://svn.asterisk.org/svn/asterisk/branches/11
+
+ * /, channels/chan_sip.c: channels/chan_sip: Clarify WARNING
+ message in mismatched SRTP scenario When we receive an SDP as
+ part of an offer/answer for a peer/friend has been configured to
+ require encryption, and that SDP offer/answer failed to provide
+ acceptable crypto attributes, we currently issue a WARNING that
+ uses the phrase "we" and "requested". In this case, both of those
+ terms are ambiguous - the user will probably think "we" is
+ Asterisk (it most likely isn't) and it may not be a "request", so
+ much as an SDP that was received in some fashion. This patch
+ makes the WARNING messages slightly less bad and a bit more
+ accurate as well. ASTERISK-23214 #close Reported by: Rusty Newton
+ ........ Merged revisions 432277 from
+ http://svn.asterisk.org/svn/asterisk/branches/11
+
+ * main/sdp_srtp.c, /: channels/sip/sdp_crypto: Handle SRTP keys
+ negotiated with key lifetime/MKI Prior to this patch, SDP offers
+ negotiating SDES-SRTP crypto attributes would be rejected if
+ those crypto attributes contained either a key lifetime or a MKI
+ parameter. While from a theoretical point of view this was
+ defensible - Asterisk does not support key lifetimes or multiple
+ crypto keys - from a practical point of view, this is quite a
+ problem. A large number of endpoints offer lifetimes/MKI, which
+ Asterisk can tolerate so long as it doesn't actually have to
+ support anything more than a single key or refresh the key. In
+ reality, this is (so far as we've seen) always the case. This
+ patch is a forward port of Olle's work in the
+ lingon-srtp-key-lifetime-1.8 branch. To quote Olle from
+ ASTERISK-17721, it handles lifetime/MKI parameters in the
+ following fashion: > The Lingon branch now handle lifetime and
+ MKI parameters. > > We only accept lifetimes up to max for the
+ crypto and higher than 10 hours > for packetization of 20 ms (50
+ pps). > > We only handle MKI with index 1. > > We do not really
+ bother with counting packets and reinviting at end of > lifetime,
+ so the min of 10 hours kind of takes care of most calls. If there
+ > are longer ones, we rely on the other side for re-invites. > >
+ It's still not perfect, but I personally think this is an
+ improvement. A > configuration option for minimum lifetime
+ accepted could be added. When the patch was ported forward, I
+ decided against adding a configuration option as Olle's handling
+ was more than sufficient for every case I've seen come through
+ the issue tracker or through interoperability testing. We can
+ revisit that decision if it proves to be false. A few small other
+ tweaks were made to the surrounding code to reduce indentation
+ and provide better type safety for the 'tag' parameter. Review:
+ https://reviewboard.asterisk.org/r/4419/ Review:
+ https://reviewboard.asterisk.org/r/4418/ ASTERISK-17721 #close
+ Reported by: Terry Wilson ASTERISK-17899 #close Reported by:
+ Dwayne Hubbard patches: lingon-srtp-key-lifetime-1.8.diff
+ uploaded by oej (License 5267) ASTERISK-20233 Reported by: tootai
+ ASTERISK-22748 Reported by: Alejandro Mejia ........ Merged
+ revisions 432239 from
+ http://svn.asterisk.org/svn/asterisk/branches/11
+
+2015-02-25 20:44 +0000 [r432237] David M. Lee <dlee@digium.com>
+
+ * res/res_http_websocket.c, /: Increase WebSocket frame size and
+ improve large read handling Some WebSocket applications, like
+ [chan_respoke][], require a larger frame size than the default
+ 8k; this patch bumps the default to 16k. This patch also fixes
+ some problems exacerbated by large frames. The sanity counter was
+ decremented on every fread attempt in ws_safe_read(), regardless
+ of whether data was read from the socket or not. For large
+ frames, this could result in loss of sanity prior to reading the
+ entire frame. (16k frame / 1448 bytes per segment = 12 segments).
+ This patch changes the sanity counter so that it only decrements
+ when fread() doesn't read any bytes. This more closely matches
+ the original intention of ws_safe_read(), given that the error
+ message is "Websocket seems unresponsive". This patch also
+ properly logs EOF conditions, so disconnects are no longer
+ confused with unresponsive connections. [chan_respoke]:
+ https://github.com/respoke/chan_respoke Review:
+ https://reviewboard.asterisk.org/r/4431/ ........ Merged
+ revisions 432236 from
+ http://svn.asterisk.org/svn/asterisk/branches/11
+
+2015-02-24 22:14 +0000 [r432195-432199] Matthew Jordan <mjordan@digium.com>
+
+ * /, channels/chan_sip.c: channels/chan_sip: Fix crash when
+ transmitting packet after thread shutdown When the monitor thread
+ is stopped, its pthread ID is set to a specific value
+ (AST_PTHREADT_STOP) so that later portions of the code can
+ determine whether or not it is safe to manipulate the thread.
+ Unfortunately, __sip_reliable_xmit failed to check for that
+ value, checking instead only for AST_PTHREAD_STOP. Passing the
+ invalid yet very specific value to pthread_kill causes a crash.
+ This patch adds a check for AST_PTHREADT_STOP in
+ __sip_reliable_xmit such that it doesn't attempt to poke the
+ thread if the thread has already been stopped. ASTERISK-24800
+ #close Reported by: JoshE ........ Merged revisions 432198 from
+ http://svn.asterisk.org/svn/asterisk/branches/11
+
+ * channels/chan_pjsip.c, main/channel.c, res/res_pjsip_sdp_rtp.c,
+ res/ari/resource_channels.c: ARI/PJSIP: Apply requesting
+ channel's format cap to created channels This patch addresses the
+ following problems: * ari/resource_channels: In ARI, we currently
+ create a format capability structure of SLIN and apply it to the
+ new channel being created. This was originally done when the PBX
+ core was used to create the channel, as there was a condition
+ where a newly created channel could be created without any
+ formats. Unfortunately, now that the Dial API is being used, this
+ has two drawbacks: (a) SLIN, while it will ensure audio will
+ flows, can cause a lot of needless transcodings to occur,
+ particularly when a Local channel is created to the dialplan.
+ When no format capabilities are available, the Dial API handles
+ this better by handing all audio formats to the requsted
+ channels. As such, we defer to that API to provide the format
+ capabilities. (b) If a channel (requester) is causing this
+ channel to be created, we currently don't use its format
+ capabilities as we are passing in our own. However, the Dial API
+ will use the requester channel's formats if none are passed into
+ it, and the requester channel exists and has format capabilities.
+ This is the "best" scenario, as it is the most likely to create a
+ media path that minimizes transcoding. Fixing this simply entails
+ removing the providing of the format capabilities structure to
+ the Dial API. * chan_pjsip: Rather than blindly picking the first
+ format in the format capability structure - which actually *can*
+ be a video or text format - we select an audio format, and only
+ pick the first format if that fails. That minimizes the weird
+ scenario where we attempt to transcode between video/audio. *
+ res_pjsip_sdp_rtp: Applied the joint capapbilites to the format
+ structure. Since ast_request already limits us down to one format
+ capability once the format capabilities are passed along, there's
+ no reason to squelch it here. * channel: Fixed a comment. The
+ reason we have to minimize our requested format capabilities down
+ to a single format is due to Asterisk's inability to convey the
+ format to be used back "up" a channel chain. Consider the
+ following: PJSIP/A => L;1 <=> L;2 => PJSIP/B g,u,a g,u,a g,u,a u
+ That is, we have PJSIP/A dialing a Local channel, where the
+ Local;2 dials PJSIP/B. PJSIP/A has native format capabilities
+ g722,ulaw,alaw; the Local channel has inherited those format
+ capabilities down the line; PJSIP/B supports only ulaw. According
+ to these format capabilities, ulaw is acceptable and should be
+ selected across all the channels, and no transcoding should
+ occur. However, there is no way to convey this: when L;2 and
+ PJSIP/B are put into a bridge, we will select ulaw, but that is
+ not conveyed to PJSIP/A and L;1. Thus, we end up with: PJSIP/A
+ <=> L;1 <=> L;2 <=> PJSIP/B g g X u u Which causes g722 to be
+ written to PJSIP/B. Even if we can convey the 'ulaw' choice back
+ up the chain (which through some severe hacking in Local channels
+ was accomplished), such that the chain looks like: PJSIP/A <=>
+ L;1 <=> L;2 <=> PJSIP/B u u u u We have no way to tell PJSIP/A's
+ *channel driver* to Answer in the SDP back with only 'ulaw'. This
+ results in all the channel structures being set up correctly, but
+ PJSIP/A *still* sending g722 and causing the chain to fall apart.
+ There's a lot of difficulty just in setting this up, as there are
+ numerous race conditions in the act of bridging, and no clean
+ mechanism to pass the selected format backwards down an
+ established channel chain. As such, the best that can be done at
+ this point in time is clarifying the comment. Review:
+ https://reviewboard.asterisk.org/r/4434/ ASTERISK-24812 #close
+ Reported by: Matt Jordan
+
+2015-02-24 18:32 +0000 [r432175] Kevin Harwell <kharwell@digium.com>
+
+ * /, bridges/bridge_softmix.c: bridge_softmix: G.729 codec license
+ held When more than one call using the same codec type enters
+ into a softmix bridge and no audio is present for a channel the
+ bridge optimizes the out frame by using the same one for all
+ channels with the same codec type. Unfortunately, when that
+ number (channels with same codec type) dropped to <= 1 the codec
+ was not dereferenced. At least not until all parties left the
+ bridge. Thus in the case of G.729 the license was not released.
+ This patch ensures that the codec is dereferenced immediately
+ when the optimization no longer applies. ASTERISK-24797 #close
+ Reported by: Luke Hulsey Review:
+ https://reviewboard.asterisk.org/r/4429/ ........ Merged
+ revisions 432174 from
+ http://svn.asterisk.org/svn/asterisk/branches/11
+
+2015-02-21 20:47 +0000 [r432118-432154] Joshua Colp <jcolp@digium.com>
+
+ * rest-api/api-docs/channels.json, res/ari/resource_channels.c,
+ res/res_ari_channels.c: res_ari_channels: Return a 404 response
+ when a requested channel variable does not exist. This change
+ makes it so that if a channel variable is requested and it does
+ not exist a 404 response will be returned instead of an
+ allocation failed response. This makes it easier to debug and
+ figure out what is going on for a user. ASTERISK-24677 #close
+ Reported by: Joshua Colp
+
+ * res/res_pjsip_registrar.c: res_pjsip_registrar: Add Expires
+ header to 200 OK if present in REGISTER. Some implementations
+ don't pay attention to the expires for individual contacts. In
+ this case they may consider the lack of an Expires header in the
+ 200 OK as unregistered. This change makes it so if an Expires
+ header is present in the REGISTER we will add one in the 200 OK.
+ ASTERISK-24785 #close Reported by: Ross Beer
+
+ * res/res_pjsip.c: res_pjsip: Add a log message when creating a UAC
+ dialog to a target URI that is invalid. ASTERISK-24499 #close
+ Reported by: Rusty Newton
+
+2015-02-21 17:35 +0000 [r432099] Matthew Jordan <mjordan@digium.com>
+
+ * apps/app_voicemail.c, /: apps/app_voicemail: Demote an ERROR
+ message to a WARNING message When using IMAP voicemail with
+ FreePBX, you will often get ERROR messages complaining about not
+ being able to find a mailbox. This is due to how FreePBX handles
+ voicemail mailboxes. Unfortunately, app_voicemail has to consider
+ this a configuration error, as in any other system it would be
+ indicative of someone misconfiguring their system. Regardless, a
+ misconfiguration is a WARNING, and not an ERROR. This patch
+ demotes the message so that system administrators can hopefully
+ reduce some of the noise in their log files. Note that in the
+ original patch this was made into a NOTICE, but that's a too
+ forgiving. ASTERISK-24790 #close Reported by: Graham Barnett
+ patches: app_voicemail.c.patch_noise uploaded by Graham Barnett
+ (License 6685) ........ Merged revisions 432098 from
+ http://svn.asterisk.org/svn/asterisk/branches/11
+
+2015-02-21 14:05 +0000 [r432079] Joshua Colp <jcolp@digium.com>
+
+ * main/http.c, /: http: Add missing html tag to 'httpstatus'
+ functionality. ASTERISK-24724 #close Reported by: Ashley Sanders
+ ........ Merged revisions 432078 from
+ http://svn.asterisk.org/svn/asterisk/branches/11
+
+2015-02-21 02:56 +0000 [r432055-432059] Corey Farrell <git@cfware.com>
+
+ * /, main/bucket.c, main/codec.c, main/loader.c: Allow shutdown to
+ unload modules that register bucket scheme's or codec's. * Change
+ __ast_module_shutdown_ref to be NULL safe (11+). * Allow modules
+ that call ast_bucket_scheme_register or ast_codec_register to be
+ unloaded during graceful shutdown only (13+ only). ASTERISK-24796
+ #close Reported by: Corey Farrell Review:
+ https://reviewboard.asterisk.org/r/4428/ ........ Merged
+ revisions 432058 from
+ http://svn.asterisk.org/svn/asterisk/branches/11
+
+ * /, include/asterisk/lock.h: asterisk/lock.h: Fix syntax errors
+ for non-gcc OSX with 64-bit integers. Add a couple of missing
+ closing brackets / parenthesis. ASTERISK-24814 #close Reported
+ by: Corey Farrell Review:
+ https://reviewboard.asterisk.org/r/4436/ ........ Merged
+ revisions 432054 from
+ http://svn.asterisk.org/svn/asterisk/branches/11
+
+2015-02-20 17:51 +0000 [r432034] Richard Mudgett <rmudgett@digium.com>
+
+ * /, channels/sig_analog.c: chan_dahdi/sig_analog: Put log message
+ strings on one line. With the log messages on one line, you can
+ search for the log message seen in the log and expect to find it.
+ ........ Merged revisions 432032 from
+ http://svn.asterisk.org/svn/asterisk/branches/11
+
+2015-02-20 17:46 +0000 [r432033] George Joseph <george.joseph@fairview5.com>
+
+ * res/res_pjsip_publish_asterisk.c, res/res_pjsip_acl.c:
+ ASTERISK-24811: Add ast_sorcery_apply_config() to
+ res_pjsip_publish_asterisk. Matt Hoskins reported that
+ res_pjsip_publish_asterisk wouldn't pull config from realtime.
+ Turns out it was just missing a call ast_sorcery_apply_config().
+ res_pjsip_acl was missing it as well, so I added it. The other
+ pjsip modules looked OK. ASTERISK-24811 #close Reported-by: Matt
+ Hoskins Tested-by: George Joseph Tested-by: Matt Hoskins patches:
+ res_pjsip_publish_asterisk.c.patch submitted by Matt Hoskins
+ (license 6688) Review: https://reviewboard.asterisk.org/r/4433/
+
+2015-02-20 15:47 +0000 [r432013] Matthew Jordan <mjordan@digium.com>
+
+ * apps/app_voicemail.c, /: apps/app_voicemail: Fix IMAP header
+ compatibility issue with Microsoft Exchange When interfacing with
+ Microsoft Exchange, custom headers will be returned as all lower
+ case. Currently, the IMAP header code will fail to parse the
+ returned custom headers, as it will be performing a case
+ sensitive comparison. This can cause playback of messages to
+ fail, as needed information - such as origtime - will not be
+ present. This patch updates app_voicemail's header parsing code
+ to perform a case insensitive lookup for the requested custom
+ headers. Since the headers are specific to Asterisk, e.g.,
+ 'x-asterisk-vm-orig-time', and headers should be unique in an
+ IMAP message, this should cause no issues with other systems.
+ ASTERISK-24787 #close Reported by: Graham Barnett patches:
+ app_voicemail.c.patch_MSExchange uploaded by Graham Barnett
+ (License 6685) ........ Merged revisions 432012 from
+ http://svn.asterisk.org/svn/asterisk/branches/11
+
+2015-02-19 21:25 +0000 [r431956-431993] Richard Mudgett <rmudgett@digium.com>
+
+ * channels/chan_dahdi.c, channels/sig_analog.c, /: chan_dahdi:
+ Remove some dead code. ........ Merged revisions 431992 from
+ http://svn.asterisk.org/svn/asterisk/branches/11
+
+ * main/aoc.c: ISDN AOC: Fix crash from an AOC-E message that
+ doesn't have a channel association. Processing an AOC-E event
+ that does not or no longer has a channel association causes a
+ crash. The problem with posting AOC events to the channel topic
+ is that AOC-E events don't always have a channel association and
+ posting the event to the all channels topic is just wrong. AOC-E
+ events do however have their own charging association method to
+ refer to the agreement with the charging entity. * Changed the
+ AOC events to post to the AMI manager topic instead of the
+ channel topics. If a channel is associated with the event then
+ channel snapshot information is supplied with the AMI event. *
+ Eliminated RAII_VAR() usage in aoc_to_ami() and
+ ast_aoc_manager_event(). This patch supercedes the patch on
+ Review: https://reviewboard.asterisk.org/r/4427/ ASTERISK-22670
+ #close Reported by: klaus3000 ASTERISK-24689 #close Reported by:
+ Marcel Manz ASTERISK-24740 #close Reported by: Panos Gkikakis
+ Review: https://reviewboard.asterisk.org/r/4430/
+
+ * res/res_pjsip_refer.c: res_pjsip_refer: Handle INVITE with
+ Replaces failure after answer. * Fixed hangup handling of the
+ session->channel after answer if the ast_channel_move() or
+ ast_bridge_impart() fails. We are still the thread controlling
+ the session->channel so we need to call ast_hangup() to kill the
+ channel. * Fixed debug messages in
+ refer_incoming_invite_request() referencing incorrect channnels
+ on success. Code comments now say why the session->channel cannot
+ be used. Review: https://reviewboard.asterisk.org/r/4422/
+
+2015-02-19 15:28 +0000 [r431937] Matthew Jordan <mjordan@digium.com>
+
+ * main/tcptls.c, /: tcptls: Handle new OpenSSL compile time option
+ to disable SSLv3 Some distributions are going to disable SSLv3 at
+ compile time. This option can be checked using the directive
+ OPENSSL_NO_SSL3_METHOD. This patch updates the TCP/TLS handling
+ in Asterisk to look for that directive before attempting to use
+ the SSLv3 specific methods. ASTERISK-24799 #close Reported by:
+ Alexander Traud patches: no-ssl3-method.patch uploaded by
+ Alexander Traud (License 6520) ........ Merged revisions 431936
+ from http://svn.asterisk.org/svn/asterisk/branches/11
+
+2015-02-19 02:01 +0000 [r431917] Corey Farrell <git@cfware.com>
+
+ * main/sched.c, /, include/asterisk/sched.h, channels/chan_iax2.c:
+ Create work around for scheduler leaks during shutdown. * Added
+ ast_sched_clean_by_callback for cleanup of scheduled events that
+ have not yet fired. * Run all pending peercnt_remove_cb and
+ replace_callno events in chan_iax2. Cleanup of replace_callno
+ events is only run 11, since it no longer releases any references
+ or allocations in 13+. ASTERISK-24451 #close Reported by: Corey
+ Farrell Review: https://reviewboard.asterisk.org/r/4425/ ........
+ Merged revisions 431916 from
+ http://svn.asterisk.org/svn/asterisk/branches/11
+
+2015-02-17 15:31 +0000 [r431898] Richard Mudgett <rmudgett@digium.com>
+
+ * res/res_pjsip_sdp_rtp.c, res/res_pjsip_messaging.c,
+ res/res_pjsip_caller_id.c, res/res_pjsip_refer.c,
+ res/res_pjsip_send_to_voicemail.c: res_pjsip_refer: Fix crash
+ from a REFER and BYE collision. Analyzing a one-off crash on a
+ busy system showed that processing a REFER request had a NULL
+ session channel pointer. The only way I can think of that could
+ cause this is if an outgoing BYE transaction overlapped the
+ incoming REFER transaction in a collision. Asterisk sends a BYE
+ while the phone sends a REFER to complete an attended transfer. *
+ Made check the session channel pointer before processing an
+ incoming REFER request in res_pjsip_refer. * Fixed similar crash
+ potential for res_pjsip supplement incoming request processing
+ for res_pjsip_sdp_rtp INFO, res_pjsip_caller_id INVITE/UPDATE,
+ res_pjsip_messaging MESSAGE, and res_pjsip_send_to_voicemail
+ REFER messages. * Made res_pjsip_messaging respond to a message
+ body too large with a 413 instead of ignoring it. ASTERISK-24700
+ #close Reported by: Zane Conkle Review:
+ https://reviewboard.asterisk.org/r/4417/
+
+2015-02-16 21:29 +0000 [r431879] Matthew Jordan <mjordan@digium.com>
+
+ * res/res_rtp_asterisk.c: res/res_rtp_asterisk: Fix crash in debug
+ from RTCP reports without report block When RTCP debugging was
+ enabled, an RTCP report without a report block would cause a
+ crash. This was due to the verbose output not checking to see if
+ the report_block pointer was NULl before dereferencing it. This
+ patch adds the necessary check to prevent printing any verbose
+ output if the far side hasn't provided us the information they
+ should have. ASTERISK-24791 #close Reported by: JoshE Tested by:
+ JoshE
+
+2015-02-15 19:00 +0000 [r431807-431860] Joshua Colp <jcolp@digium.com>
+
+ * configs/samples/pjsip.conf.sample: pjsip: Remove "contact" type
+ from pjsip.conf.sample The "contact" object is not meant to be
+ configured from the pjsip.conf configuration file. It is meant to
+ be created as a result of a registration and stored elsewhere.
+ ASTERISK-24085 #close Reported by: Rusty Newton
+
+ * contrib/scripts/install_prereq: install_prereq: Tweak flags when
+ configuring pjproject. This change does two things: 1. Disables
+ debugging so assertions which can return an error do, instead of
+ asserting. 2. Enables IPv6 support. ASTERISK-24632 #close
+ Reported by: Rusty Newton
+
+ * res/res_sorcery_config.c: res_sorcery_config: Improve object
+ lookup times. The res_sorcery_config module currently uses a
+ fixed bucket size of 53. This means that depending on the number
+ of objects you either end up with excess buckets or a lot of
+ collisions. Due to the way that res_sorcery_config is implemented
+ it's actually possible to make the bucket size dynamic based on
+ the number of objects. This is due to the fact that each loading
+ of the config file produces a new container and does not modify
+ the existing one. This change uses the number of expected objects
+ and finds a prime number near it. In practice depending on the
+ number of objects this can speed up lookups anywhere from 2X to
+ 15X. This change also removes the lock from the container as it
+ is not needed. Review: https://reviewboard.asterisk.org/r/4423/
+
+ * res/res_pjsip/pjsip_cli.c: res_pjsip: Add "pjsip show version"
+ CLI command. When debugging things it can be useful to know
+ absolutely what version of pjproject res_pjsip is running
+ against. This change adds a "pjsip show version" CLI command
+ which can be used to query for this. ASTERISK-24685 #close
+ Reported by: Joshua Colp Review:
+ https://reviewboard.asterisk.org/r/4424/
+
+ * res/res_timing_pthread.c: res_timing_pthread: Fix leaky pipes.
+ During some refactoring the way private information for timers
+ was stored was changed. As a result of this the action which
+ normally removed the timer upon closure in res_timing_pthread was
+ also removed causing the timer to remain after it should using up
+ resources. This change ensures that the timer is removed upon
+ closure. ASTERISK-24768 #close Reported by: Matthias Urlichs
+ patches: timer.patch submitted by Matthias Urlichs (license 5508)
+
+2015-02-15 00:32 +0000 [r431789] Matthew Jordan <mjordan@digium.com>
+
+ * /, apps/app_mixmonitor.c: apps/app_mixmonitor: Move Test Event
+ for MIXMONITOR_END to after it finishes The Test Event for
+ MIXMONITOR_END - which signals that a MixMonitor has completed -
+ technically fired before the filestream was closed. If a test
+ used this to trigger a condition to verify that the file was
+ written, it could result in a race condition where the file size
+ would not be what the test expected. Luckily, no tests were using
+ this (although they should have been). Since the test event
+ needed to be moved after the point where the MixMonitor autochan
+ has been destroyed, the test event no longer emits the channel
+ name. Luckily, nothing needs it. ........ Merged revisions 431788
+ from http://svn.asterisk.org/svn/asterisk/branches/11
+
+2015-02-14 19:45 +0000 [r431751-431771] Joshua Colp <jcolp@digium.com>
+
+ * main/sorcery.c: sorcery: Output an error message if a wizard is
+ specified for an object type and it isn't found. ASTERISK-24612
+ #close Reported by: Joshua Colp
+
+ * res/res_pjsip_exten_state.c: res_pjsip_exten_state: Improve log
+ message when a subscription is attempted to a non-existent
+ extension. ASTERISK-24716 #close Reported by: Rusty Newton
+
+ * channels/pjsip/dialplan_functions.c: 'information' ends with an
+ 'n'.
+
+ * channels/pjsip/dialplan_functions.c: chan_pjsip: Fix crash when
+ CHANNEL dialplan function is invoked with pjsip argument and no
+ type. ASTERISK-24771 #close Reported by: Niklas Larsson
+
+2015-02-13 17:21 +0000 [r431734] Richard Mudgett <rmudgett@digium.com>
+
+ * res/res_pjsip_session.c: res_pjsip_session: Fix double re-INVITE
+ collision crash. A multi-asterisk box setup with direct media
+ enabled would occasionally crash when two re-INVITE collisions on
+ a call leg happen in a row. The re-INVITE logic only had one
+ timer struct to defer the re-INVITE. When the second collision
+ happens the timer struct is overwritten and put into the timer
+ heap again. Resources for the first timer are leaked and the heap
+ has two positions occupied by the same timer struct. Now the heap
+ ordering is potentially corrupted, the timer will fire twice, and
+ any resources allocated for the second timer will be released
+ twice. * The solution is to put the collided re-INVITE into the
+ delayed requests queue with all the other delayed requests and
+ cherry pick the next request that can come off the queue when an
+ event happens. * Changed to put delayed BYE requests at the head
+ of the delayed queue. There is no sense in processing delayed
+ UPDATEs and re-INVITEs when a BYE has been requested. * Made the
+ start of a BYE request flush the delayed requests queue to
+ prevent a delayed request from overlapping the BYE transaction. I
+ saw a few cases where a delayed re-INVITE got started after the
+ BYE transaction started. * Changed the delayed_request struct to
+ use an enum instead of a string for the request method. Cherry
+ picking the queue is easier with an enum than string comparisons
+ and the compiler can warn if a switch statement does not cover
+ all defined enum values. * Improved the debug output to give more
+ information. It helps to know which channel is involved with an
+ endpoint. Trunks can have many channels associated with the
+ endpoint at the same time. ASTERISK-24727 #close Reported by:
+ Mark Michelson Review: https://reviewboard.asterisk.org/r/4414/
+
+2015-02-12 20:32 +0000 [r431717] Matthew Jordan <mjordan@digium.com>
+
+ * res/res_pjsip_multihomed.c, res/stasis/control.c,
+ include/asterisk/stasis_app.h, rest-api/api-docs/channels.json,
+ res/ari/resource_channels.c, CHANGES, res/res_ari_channels.c,
+ channels/chan_pjsip.c, res/res_pjsip_nat.c,
+ res/res_pjsip_transport_websocket.c, res/ari/resource_channels.h:
+ ARI/PJSIP: Add the ability to redirect (transfer) a channel in a
+ Stasis app This patch adds a new feature to ARI to redirect a
+ channel to another server, and fixes a few bugs in PJSIP's
+ handling of the Transfer dialplan application/ARI redirect
+ capability. *New Feature* A new operation has been added to the
+ ARI channels resource, redirect. With this, a channel in a Stasis
+ application can be redirected to another endpoint of the same
+ underlying channel technology. *Bug fixes* In the process of
+ writing this new feature, two bugs were fixed in the PJSIP stack:
+ (1) The existing .transfer channel callback had the limitation
+ that it could only transfer channels to a SIP URI, i.e., you had
+ to pass 'PJSIP/sip:foo@my_provider.com' to the dialplan
+ application. While this is still supported, it is somewhat
+ unintuitive - particularly in a world full of endpoints. As such,
+ we now also support specifying the PJSIP endpoint to transfer to.
+ (2) res_pjsip_multihomed was, unfortunately, trying to 'help' a
+ 302 redirect by updating its Contact header. Alas, that resulted
+ in the forwarding destination set by the dialplan application/ARI
+ resource/whatever being rewritten with very incorrect
+ information. Hence, we now don't bother updating an outgoing
+ response if it is a 302. Since this took a looong time to find,
+ some additional debug statements have been added to those modules
+ that update the Contact headers. Review:
+ https://reviewboard.asterisk.org/r/4316/ ASTERISK-24015 #close
+ Reported by: Private Name ASTERISK-24703 #close Reported by: Matt
+ Jordan
+
+2015-02-11 18:02 +0000 [r431693-431698] Kevin Harwell <kharwell@digium.com>
+
+ * res/res_pjsip/pjsip_configuration.c: res_pjsip: dtls_handler
+ causes Asterisk to crash There have been a couple of times where
+ a crash occurred in the dtls_handler section of the code for
+ res_pjsip. Unfortunately, in working this issue the problem was
+ unable to be reproduced. After looking at the backtraces and
+ through the code the current best guess as to why this happened
+ might be due to a reentrance problem and the strtok function. So,
+ the current fix is to convert the strtok function into the
+ reentrant version of the function, strtok_r. ASTERISK-24741
+ #close Reported by: Zane Conkle Review:
+ https://reviewboard.asterisk.org/r/4409/
+
+ * res/ari/ari_websockets.c: ari_websockets: removed extra check on
+ websocket session read When merging the websocket timeout issue
+ (ASTERISK-24701) an extra, almost duplicate, check was left in
+ the code that should not have been. This removes it.
+ ASTERISK-24701 #close Reported by: Matt Jordan Review:
+ https://reviewboard.asterisk.org/r/4412/
+
+2015-02-11 17:28 +0000 [r431692] Richard Mudgett <rmudgett@digium.com>
+
+ * main/bridge.c, main/http.c, apps/app_confbridge.c,
+ include/asterisk/channel.h, res/res_pjsip/pjsip_options.c,
+ res/res_pjsip_pubsub.c, main/asterisk.c, main/channel.c,
+ include/asterisk.h, channels/chan_sip.c: HTTP: Stop accepting
+ requests on final system shutdown. There are three CLI commands
+ to stop and restart Asterisk each. 1) core stop/restart now -
+ Hangup all calls and stop or restart Asterisk. New channels are
+ prevented while the shutdown request is pending. 2) core
+ stop/restart gracefully - Stop or restart Asterisk when there are
+ no calls remaining in the system. New channels are prevented
+ while the shutdown request is pending. 3) core stop/restart when
+ convenient - Stop or restart Asterisk when there are no calls in
+ the system. New calls are not prevented while the shutdown
+ request is pending. ARI has made stopping/restarting Asterisk
+ more problematic. While a shutdown request is pending it is
+ desirable to continue to process ARI HTTP requests for current
+ calls. To handle the current calls while a shutdown request is
+ pending, a new committed to shutdown phase is needed so ARI
+ applications can deal with the calls until the system is fully
+ committed to shutdown. * Added a new shutdown committed phase so
+ ARI applications can deal with calls until the final committed to
+ shutdown phase is reached. * Made refuse new HTTP requests when
+ the system has reached the final system shutdown phase. Starting
+ anything while the system is actively releasing resources and
+ unloading modules is not a good thing. * Split the bridging
+ framework shutdown to not cleanup the global bridging containers
+ when shutting down in a hurry. This is similar to how other
+ modules prevent crashes on rapid system shutdown. * Moved
+ ast_begin_shutdown(), ast_cancel_shutdown(), and
+ ast_shutting_down(). You should not have to include channel.h
+ just to access these system functions. ASTERISK-24752 #close
+ Reported by: Matthew Jordan Review:
+ https://reviewboard.asterisk.org/r/4399/
+
+2015-02-11 17:12 +0000 [r431674] Matthew Jordan <mjordan@digium.com>
+
+ * /, channels/chan_sip.c: channels/chan_sip: Fix RealTime error
+ during SIP unregistration with MariaDB When a SIP device that has
+ its registration stored in RealTime unregisters, the entry for
+ that device is updated with blank values, i.e., "", indicating
+ that it is no longer registered. Unfortunately, one of those
+ values that is 'blanked' is the device's port. If the column type
+ for the port is not a string datatype (the recommended type is
+ integer), an ODBC or database error will be thrown. MariaDB does
+ not coerce empty strings to a valid integer value. This patch
+ updates the query run from chan_sip such that it replaces the
+ port value with a value of '0', as opposed to a blank value. This
+ is the value that other database backends coerce the empty string
+ ("") to already, and the handling of reading a RealTime
+ registration value from a backend already anticipates receiving a
+ port of '0' from the backends. ASTERISK-24772 #close Reported by:
+ Richard Miller patches: chan_sip.diff uploaded by Richard Miller
+ (License 5685) ........ Merged revisions 431673 from
+ http://svn.asterisk.org/svn/asterisk/branches/11
+
+2015-02-11 16:51 +0000 [r431670] Kevin Harwell <kharwell@digium.com>
+
+ * res/res_http_websocket.c, res/ari/ari_websockets.c, /:
+ res_http_websocket: websocket write timeout fails to fully
+ disconnect When writing to a websocket if a timeout occurred the
+ underlying socket did not get closed/disconnected. This patch
+ makes sure the websocket gets disconnected on a write timeout.
+ Also a notice is logged stating that the websocket was
+ disconnected. ASTERISK-24701 #close Reported by: Matt Jordan
+ Review: https://reviewboard.asterisk.org/r/4412/ ........ Merged
+ revisions 431669 from
+ http://svn.asterisk.org/svn/asterisk/branches/11
+
+2015-02-11 15:51 +0000 [r431663] Corey Farrell <git@cfware.com>
+
+ * include/asterisk/module.h, main/loader.c, /,
+ bridges/bridge_builtin_features.c: Enable REF_DEBUG for
+ ast_module_ref / ast_module_unref. Add ast_module_shutdown_ref
+ for use by modules that can only be unloaded during graceful
+ shutdown. When REF_DEBUG is enabled: * Add an empty ao2 object to
+ struct ast_module. * Allocate ao2 object when the module is
+ loaded. * Perform an ao2_ref in each place where mod->usecount is
+ manipulated. * ao2_cleanup on module unload. ASTERISK-24479
+ #close Reported by: Corey Farrell Review:
+ https://reviewboard.asterisk.org/r/4141/ ........ Merged
+ revisions 431662 from
+ http://svn.asterisk.org/svn/asterisk/branches/11
+
+2015-02-10 23:16 +0000 [r431643] George Joseph <george.joseph@fairview5.com>
+
+ * res/res_pjsip_config_wizard.c,
+ configs/samples/pjsip_wizard.conf.sample:
+ res_pjsip_config_wizard: Add ability to auto-create hints.
+ Looking at the Super Awesome Company sample reminded me that
+ creating hints is just plain gruntwork. So you can now have the
+ pjsip conifg wizard auto-create them for you. Specifying
+ 'hint_exten' in the wizard will create 'exten =>
+ <hint_exten>,hint/PJSIP/<wizard_id>' in whatever is specified for
+ 'hint_context'. Specifying 'hint_application' in the wizard will
+ create 'exten => <hint_exten>,1,<hint_application>' in whatever
+ is specified for 'hint_context'. The default for 'hint_context'
+ is the endpoint's context. There's no default for
+ 'hint_application'. If not specified, no app is added. There's no
+ default for 'hint_exten'. If not specified, neither the hint
+ itself nor the application will be created. Some may think this
+ is the slippery slope to users.conf but hints are a basic
+ necessity for phones unlike voicemail, manager, etc that
+ users.conf creates. Tested-by: George Joseph Review:
+ https://reviewboard.asterisk.org/r/4383/
+
+2015-02-09 03:10 +0000 [r431600-431622] Matthew Jordan <mjordan@digium.com>
+
+ * rest-api/api-docs/channels.json, res/ari/resource_channels.c:
+ res/ari/resource_channels: Add missing 'no_answer' reason to
+ DELETE /channels One of the canonical reasons for hanging up a
+ channel is because the far end failed to answer - or because
+ someone else answered, and we want to get rid of this channel.
+ This patch adds the missing value to the 'reason' query parameter
+ for the DELETE /channels operation. Review:
+ https://reviewboard.asterisk.org/r/4400 ASTERISK-24745 #close
+ Reported by: Ben Merrills patches:
+ add_no_answer_ari_hangup_cause.diff uploaded by Ben Merrills
+ (License 6678)
+
+ * /, res/res_odbc.c: res/res_odbc: Remove unneeded queries when
+ determining if a table exists This patch modifies the
+ ast_odbc_find_table function such that it only performs a lookup
+ of the requested table if the table is not already known. Prior
+ to this patch, a queries would be executed against the database
+ even if the table was already known and cached. Review:
+ https://reviewboard.asterisk.org/r/4405/ ASTERISK-24742 #close
+ Reported by: ibercom patches: patch.diff uploaded by ibercom
+ (License 6599) ........ Merged revisions 431617 from
+ http://svn.asterisk.org/svn/asterisk/branches/11
+
+ * res/res_pjsip_sdp_rtp.c: res/res_pjsip_sdp_rtp: Fix leak of local
+ ICE candidates when applying to SDP When an SDP is created for an
+ outgoing request/response, the ICE candidates obtained from the
+ RTP instance are currently leaked. This causes the ao2 container
+ that holds the candidates to never properly be reclaimed when the
+ RTP instance is destroyed. This patch properly decrements the ICE
+ candidates' container if it is successfully obtained.
+ ASTERISK-24769 #close Reported by: Matt Jordan
+
+2015-02-06 21:26 +0000 [r431583] Scott Griepentrog <sgriepentrog@digium.com>
+
+ * main/utils.c, res/res_pjsip.c, main/config.c: various: cleanup
+ issues found during leak hunt In this collection of small patches
+ to prevent Valgrind errors are: fixes for reference leaks in
+ config hooks, evaluating a parameter beyond bounds, and accessing
+ a structure after a lock where it could have been already free'd.
+ Review: https://reviewboard.asterisk.org/r/4407/
+
+2015-02-04 01:27 +0000 [r431538-431555] Joshua Colp <jcolp@digium.com>
+
+ * res/res_pjsip_keepalive.c: res_pjsip_keepalive: Don't crash if
+ PJSIP module is not loaded.
+
+ * main/sorcery.c: sorcery: Don't try to load object types which
+ haven't been defined. The act of defining wizards for an object
+ type in sorcery.conf will create a minimal object type. This can
+ cause a problem when a module has multiple sorcery instances
+ (which all get the wizards from sorcery.conf applied) but the
+ sorcery instances do not all contain full information about the
+ object types. Upon loading errors will occur stating that the
+ objects can not be created. This is confusing and is actually
+ perfectly fine. This change makes it so that only object types
+ which have been fully defined will be loaded. ASTERISK-24748
+ #close Reported by: Joshua Colp
+
+2015-01-31 16:27 +0000 [r431521] Joshua Colp <jcolp@digium.com>
+
+ * res/res_format_attr_h264.c: res_format_attr_h264: Fix crash when
+ determining joint capability. The res_format_attr_h264 module
+ currently incorrectly attempts to copy SPS and PPS information
+ from the wrong attribute. This change fixes that. ASTERISK-24616
+ #close Reported by: Yura Kocyuba Review:
+ https://reviewboard.asterisk.org/r/4392/
+
+2015-02-06 Asterisk Development Team <asteriskteam@digium.com>
+
+ * Asterisk 13.2.0 Released.
+
+2015-01-30 Asterisk Development Team <asteriskteam@digium.com>
+
+ * Asterisk 13.2.0-rc1 Released.
+
+2015-01-30 17:44 +0000 [r431492] Richard Mudgett <rmudgett@digium.com>
+
+ * apps/app_agent_pool.c: app_agent_pool: Fix initial module load
+ agent device state reporting. When the app_agent_pool module
+ initially loads there is a race condition between the thread
+ loading agents.conf and the device state internal processing
+ thread. If the device state internal processing thread handles
+ the agent creation state updates before the thread that loaded
+ agents.conf registers the device state provider callback then the
+ cached agent state is "Invalid". When a consumer module like
+ app_queue asks for the agent state it gets the cached "Invalid"
+ state instead of the real state from the provider. * Moved
+ loading the agents.conf configuration to the last thing setup by
+ app_agent_pool in load_module(). Now the device state provider
+ callback is registered before the config is loaded so the agent
+ creation state updates are guaranteed to get the initial device
+ state. * Removed some now redundant config cleanup on error in
+ load_config(). * Added lock protection when accessing the device
+ state in agent_pvt_devstate_get() and eliminated the RAII_VAR()
+ usage. ASTERISK-24737 #close Reported by: Steve Pitts Review:
+ https://reviewboard.asterisk.org/r/4390/
+
+2015-01-30 17:38 +0000 [r431490] Kevin Harwell <kharwell@digium.com>
+
+ * res/res_pjsip_outbound_publish.c: res_pjsip_outbound_publish:
+ eventually crashes when no response is ever received When
+ Asterisk attempts to send SIP outbound publish information and no
+ response is ever received (no 200 okay, 412, 423) the system
+ eventually crashes. A response is never received because the
+ system Asterisk is attempting to send publish information to is
+ not available. The underlying pjsip framework attempts to send
+ publish information. After several attempts it calls back into
+ the Asterisk outbound publish code. At this point if the
+ "client->queue" is empty Asterisk attempts to schedule a refresh
+ which utilizes "rdata" and since no response was received the
+ given "rdata" struture is NULL. Attempting to dereference a NULL
+ object of course results in a crash. The fix here removes the
+ dependency on rdata for schedule_publish_refresh. Instead
+ param->expiration is now passed to it as this is set to -1 if no
+ response is received. Also added a notification when no response
+ is received. ASTERISK-24635 #close Reported by: Marco Paland
+ Review: https://reviewboard.asterisk.org/r/4384/
+
+2015-01-30 16:52 +0000 [r431471] asanders <asanders@localhost>:
+
+ * include/asterisk/http.h, configs/samples/http.conf.sample,
+ main/http.c: HTTP: For httpd server, need option to define server
+ name for security purposes Added a new config property
+ [servername] to the http.conf file; updated the http server to
+ use the new property when sending responses, for showing http
+ status through the CLI and when reporting status through the
+ 'httpstatus' webpage. ASTERISK-24316 #close Reported By: Andrew
+ Nagy Review: https://reviewboard.asterisk.org/r/4374/
+
+2015-01-30 16:47 +0000 [r431468] Mark Michelson <mmichelson@digium.com>
+
+ * main/stasis_channels.c, channels/chan_pjsip.c, main/xmldoc.c,
+ res/res_pjsip_refer.c, main/pbx.c, main/manager.c,
+ pbx/pbx_spool.c, main/bridge_after.c: Fix some memory leaks.
+ These memory leaks were found and fixed by John Hardin. I'm just
+ committing them for him. ASTERISK-24736 #close Reported by Mark
+ Michelson Review: https://reviewboard.asterisk.org/r/4389
+
+2015-01-29 23:02 +0000 [r431450] Scott Griepentrog <sgriepentrog@digium.com>
+
+ * include/asterisk/bridge.h, main/bridge.c,
+ res/stasis/stasis_bridge.c: stasis transfer: fix stasis bridge
+ push race part two When swapping a Local channel in place of one
+ already in a bridge (to complete a bridge attended transfer), the
+ channel that was swapped out can actually be hung up before the
+ stasis bridge push callback executes on the independant transfer
+ thread. This results in the stasis app loop dropping out and
+ removing the control that has the the app name which the local
+ replacement channel needs so it can re-enter stasis. To avoid
+ this race condition a new push_peek callback has been added, and
+ called from the ast_bridge_impart thread before it launches the
+ independant thread that will complete the transfer. Now the
+ stasis push_peek callback can copy the stasis app name before the
+ swap channel can hang up. ASTERISK-24649 Review:
+ https://reviewboard.asterisk.org/r/4382/
+
+2015-01-29 20:58 +0000 [r431420-431426] Mark Michelson <mmichelson@digium.com>
+
+ * res/res_pjsip.c, res/res_pjsip_sips_contact.c (added): Use SIPS
+ URIs in Contact headers when appropriate. RFC 3261 sections
+ 8.1.1.8 and 12.1.1 dictate specific scenarios when we are
+ required to use SIPS URIs in Contact headers. Asterisk's
+ non-compliance with this could actually cause calls to get
+ dropped when communicating with clients that are strict about
+ checking the Contact header. Both of the SIP stacks in Asterisk
+ suffered from this issue. This changeset corrects the behavior in
+ res_pjsip/chan_pjsip.c Review:
+ https://reviewboard.asterisk.org/r/4345
+
+ * /, channels/chan_sip.c: Use SIPS URIs in Contact headers when
+ appropriate. RFC 3261 sections 8.1.1.8 and 12.1.1 dictate
+ specific scenarios when we are required to use SIPS URIs in
+ Contact headers. Asterisk's non-compliance with this could
+ actually cause calls to get dropped when communicating with
+ clients that are strict about checking the Contact header. Both
+ of the SIP stacks in Asterisk suffered from this issue. This
+ changeset corrects the behavior in chan_sip. ASTERISK-24646
+ #close Reported by Stephan Eisvogel Review:
+ https://reviewboard.asterisk.org/r/4346 ........ Merged revisions
+ 431423 from http://svn.asterisk.org/svn/asterisk/branches/11
+
+ * res/res_pjsip/pjsip_configuration.c: Allow disabling of 100rel
+ support on PJSIP endpoints. Due to an inversion error, setting
+ 100rel=no would not actually change the current value of the
+ setting (which defaulted to "yes"). With this fix, the inversion
+ is corrected.
+
+2015-01-29 16:46 +0000 [r431403] George Joseph <george.joseph@fairview5.com>
+
+ * res/res_pjsip_exten_state.c: res_pjsip_exten_state: Reduce log
+ clutter... change a WARNING to a VERBOSE/2 Reduce log clutter by
+ changing the "Watcher for hint %s (removed|deactivated)" message
+ from WARNING to VERBOSE/2. Tested-by: George Joseph Review:
+ https://reviewboard.asterisk.org/r/4387/
+
+2015-01-29 12:09 +0000 [r431385] Joshua Colp <jcolp@digium.com>
+
+ * res/res_rtp_asterisk.c, /: res_rtp_asterisk: Fix DTLS when used
+ with OpenSSL 1.0.1k A recent security fix for OpenSSL broke DTLS
+ negotiation for many applications. This was caused by read ahead
+ not being enabled when it should be. While a commit has gone into
+ OpenSSL to force read ahead on for DTLS it may take some time for
+ a release to be made and the change to be present in
+ distributions (if at all). As enabling read ahead is a simple one
+ line change this commit does that and fixes the issue.
+ ASTERISK-24711 #close Reported by: Jared Biel ........ Merged
+ revisions 431384 from
+ http://svn.asterisk.org/svn/asterisk/branches/11
+
+2015-01-28 17:37 +0000 [r431301-431303] Mark Michelson <mmichelson@digium.com>
+
+ * /, res/res_pjsip_sdp_rtp.c, res/res_pjsip_t38.c,
+ res/res_pjsip_session.c: Fix file descriptor leak in RTP code.
+ SIP requests that offered codecs incompatible with configured
+ values could result in the allocation of RTP and RTCP ports that
+ would not get reclaimed later. ASTERISK-24666 #close Reported by
+ Y Ateya Review: https://reviewboard.asterisk.org/r/4323
+ AST-2015-001 ........ Merged revisions 431300 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+ * funcs/func_curl.c, /: Multiple revisions 431297-431298 ........
+ r431297 | mmichelson | 2015-01-28 11:05:26 -0600 (Wed, 28 Jan
+ 2015) | 17 lines Mitigate possible HTTP injection attacks using
+ CURL() function in Asterisk. CVE-2014-8150 disclosed a
+ vulnerability in libcURL where HTTP request injection can be
+ performed given properly-crafted URLs. Since Asterisk makes use
+ of libcURL, and it is possible that users of Asterisk may get
+ cURL URLs from user input or remote sources, we have made a patch
+ to Asterisk to prevent such HTTP injection attacks from
+ originating from Asterisk. ASTERISK-24676 #close Reported by Matt
+ Jordan Review: https://reviewboard.asterisk.org/r/4364
+ AST-2015-002 ........ r431298 | mmichelson | 2015-01-28 11:12:49
+ -0600 (Wed, 28 Jan 2015) | 3 lines Fix compilation error from
+ previous patch. ........ Merged revisions 431297-431298 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 431299 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2015-01-28 12:18 +0000 [r431267] Sean Bright <sean@malleable.com>
+
+ * res/res_format_attr_silk.c, res/res_format_attr_opus.c: media
+ formats: update res_format_attr_opus & silk In r419044, we
+ changed how formats were handled, but the return value of the
+ format_parse_sdp_fmtp functions in res_format_attr_opus and
+ res_format_attr_silk were not updated, causing calls to fail. Ran
+ into this when getting codec_opus working with Asterisk 13. Once
+ the return value was corrected, we were crashing in opus_getjoint
+ because of NULL format attributes. I've fixed this as well in
+ this patch. Review: https://reviewboard.asterisk.org/r/4371/
+
+2015-01-28 04:09 +0000 [r431243] Richard Mudgett <rmudgett@digium.com>
+
+ * main/sorcery.c, res/res_pjsip_outbound_registration.c,
+ res/res_pjsip.c: res_pjsip_outbound_registration: Fix reload race
+ condition. Performing a CLI "module reload" command when there
+ are new pjsip.conf registration objects defined frequently failed
+ to load them correctly. What happens is a race condition between
+ res_pjsip pushing its reload into an asynchronous task processor
+ task and the thread that does the rest of the reloads when it
+ gets to reloading the res_pjsip_outbound_registration module. A
+ similar race condition happens between a reload and the CLI/AMI
+ show registrations commands. The reload updates the
+ current_states container and the CLI/AMI commands call
+ get_registrations() which builds a new current_states container.
+ * Made res_pjsip.c reload_module() use
+ ast_sip_push_task_synchronous() instead of ast_sip_push_task() to
+ eliminate two threads processing config reloads at the same time.
+ * Made get_registrations() not replace the global current_states
+ container so the CLI/AMI show registrations command cannot
+ interfere with reloading. You could never add/remove objects in
+ the container without the possibility of the container being
+ replaced out from under you by get_registrations(). * Added a
+ registration loaded sorcery instance observer to purge any dead
+ registration objects since get_registrations() cannot do this job
+ anymore. The struct ast_sorcery_instance_observer callbacks must
+ be used because the callback happens inline with the load
+ process. The struct ast_sorcery_observer callbacks are pushed to
+ a different thread. * Added some global current_states NULL
+ pointer checks in case the container disappears because of
+ unload_module(). * Made sorcery's struct
+ ast_sorcery_instance_observer.object_type_loaded callbacks
+ guaranteed to be called before any struct
+ ast_sorcery_observer.loaded callbacks will be called. * Moved the
+ check for non-reloadable objects to before the sorcery instance
+ loading callbacks happen to short circuit unnecessary work.
+ Previously with non-reloadable objects, the sorcery instance
+ loading/loaded callbacks would always happen, the individual
+ wizard loading/loaded would be prevented, and the non-reloadable
+ type logging message would be logged for each associated wizard.
+ ASTERISK-24729 #close Review:
+ https://reviewboard.asterisk.org/r/4381/
+
+2015-01-27 22:56 +0000 [r431179-431219] Kevin Harwell <kharwell@digium.com>
+
+ * /, main/tcptls.c: tcptls: Bad file descriptor error when
+ reloading chan_sip While running through some scenarios using
+ chan_sip and tcp a problem would occur that resulted in a flood
+ of bad file descriptor messages on the cli: tcptls.c:712
+ ast_tcptls_server_root: Accept failed: Bad file descriptor The
+ message is received because the underlying socket has been
+ closed, so is valid. This is probably happening because unloading
+ of chan_sip is not atomic. That however is outside the scope of
+ this patch. This patch simply stops the logging of multiple
+ occurrences of that message. ASTERISK-24728 #close Reported by:
+ Thomas Thompson Review: https://reviewboard.asterisk.org/r/4380/
+ ........ Merged revisions 431218 from
+ http://svn.asterisk.org/svn/asterisk/branches/11
+
+ * /, channels/chan_sip.c: chan_sip: stale nonce causes failure When
+ refreshing (with a small expiration) a registration that was sent
+ to chan_sip the nonce would be considered stale and reject the
+ registration. What was happening was that the initial
+ registration's "dialog" still existed in the dialogs container
+ and upon refresh the dialog match algorithm would choose that as
+ the "dialog" instead of the newly created one. This occurred
+ because the algorithm did not check to see if the from tag
+ matched if authentication info was available after the 401. So,
+ it ended up assuming the original "dialog" was a match and
+ stopped the search. The old "dialog" of course had an old nonce,
+ thus the stale nonce message. This fix attempts to leave the
+ original functionality alone except in the case of a REGISTER. If
+ a REGISTER is received if searches for an existing "dialog"
+ matching only on the callid. If the expires value is low enough
+ it will reuse dialog that is there, otherwise it will create a
+ new one. ASTERISK-24715 #close Reported by: John Bigelow Review:
+ https://reviewboard.asterisk.org/r/4367/ ........ Merged
+ revisions 431187 from
+ http://svn.asterisk.org/svn/asterisk/branches/11
+
+ * res/res_pjsip/pjsip_outbound_auth.c, res/res_pjsip/config_auth.c,
+ main/stasis_message_router.c, res/res_pjsip/location.c,
+ res/res_pjsip/pjsip_configuration.c,
+ res/res_pjsip/pjsip_distributor.c,
+ res/res_pjsip/include/res_pjsip_private.h,
+ res/res_pjsip/pjsip_global_headers.c,
+ res/res_pjsip/pjsip_options.c, res/res_pjsip.c,
+ res/res_pjsip/config_transport.c: res_pjsip: make it unloadable
+ (take 2) Due to the original patch causing memory corruptions it
+ was removed until the problem could be resolved. This patch is
+ the original patch plus some added locking around stasis router
+ subcription that was needed to avoid the memory corruption.
+ Description of the original problem and patch (still applicable):
+ The res_pjsip module was previously unloadable. With this patch
+ it can now be unloaded. This patch is based off the original
+ patch on the issue (listed below) by Corey Farrell with a few
+ modifications. Namely, removed a few changes not required to make
+ the module unloadable and also fixed a bug that would cause
+ asterisk to crash on unloading. This patch is the first step
+ (should hopefully be followed by another/others at some point) in
+ allowing res_pjsip and the modules that depend on it to be
+ unloadable. At this time, res_pjsip and some of the modules that
+ depend on res_pjsip cannot be unloaded without causing problems
+ of some sort. The goal of this patch is to get res_pjsip and only
+ res_pjsip to be able to unload successfully and/or shutdown
+ without incident (crashes, leaks, etc...). Other dependent
+ modules may still cause problems on unload. Basically made sure,
+ with the patch applied, that res_pjsip (with no other dependent
+ modules loaded) could be succesfully unloaded and Asterisk could
+ shutdown without any leaks or crashes that pertained directly to
+ res_pjsip. ASTERISK-24485 #close Reported by: Corey Farrell
+ Review: https://reviewboard.asterisk.org/r/4363/ patches:
+ pjsip_unload-broken-r1.patch submitted by Corey Farrell (license
+ 5909)
+
+2015-01-27 17:36 +0000 [r431160] Richard Mudgett <rmudgett@digium.com>
+
+ * /, apps/confbridge/include/confbridge.h, apps/app_confbridge.c:
+ app_confbridge: Repeatedly starting and stopping recording ref
+ leaks the recording channel. Starting and stopping conference
+ recording more than once causes the recording channels to be
+ leaked. For v13 the channels also show up in the CLI "core show
+ channels" output. * Reworked and simplified the recording channel
+ code to use ast_bridge_impart() instead of managing the recording
+ thread in the ConfBridge code. The recording channel's ref
+ handling easily falls into place and other off nominal code paths
+ get handled better as a result. ASTERISK-24719 #close Reported
+ by: John Bigelow Review: https://reviewboard.asterisk.org/r/4368/
+ Review: https://reviewboard.asterisk.org/r/4369/ ........ Merged
+ revisions 431135 from
+ http://svn.asterisk.org/svn/asterisk/branches/11
+
+2015-01-27 17:32 +0000 [r431157] Joshua Colp <jcolp@digium.com>
+
+ * main/bridge_channel.c, res/res_pjsip_sdp_rtp.c: bridge /
+ res_pjsip_sdp_rtp: Fix issues with media not being reinvited
+ during direct media. This change fixes two issues: 1. During a
+ swap operation bridging added the new channel before having the
+ swap channel leave. This was not handled in bridge_native_rtp and
+ could result in a channel not getting reinvited back to Asterisk.
+ After this change the swap channel will leave first and the new
+ channel will then join. 2. If a re-invite was received after a
+ session had been established any upstream elements (such as
+ bridge_native_rtp) were not notified that they may want to
+ re-evaluate things. After this change an UPDATE_RTP_PEER control
+ frame is queued when this situation occurs and upstream can
+ react. AST-1524 #close Review:
+ https://reviewboard.asterisk.org/r/4378/
+
+2015-01-27 17:22 +0000 [r431153] Jonathan Rose <jrose@digium.com>
+
+ * main/manager.c: Manager: Fix Manager Action ModuleLoad to give
+ correct response when reloading Prior to this patch, ModuleLoad
+ would respond with an error indicating that the requested module
+ wasn't found in spite of finding and reloading the module.
+ Review: https://reviewboard.asterisk.org/r/4373/ ASTERISK-24721
+ #close
+
+2015-01-27 17:20 +0000 [r431134-431145] Matthew Jordan <mjordan@digium.com>
+
+ * res/ari/resource_bridges.c,
+ rest-api-templates/asterisk_processor.py,
+ res/ari/resource_channels.h, res/res_ari_bridges.c,
+ res/ari/resource_bridges.h, rest-api-templates/api.wiki.mustache,
+ rest-api/api-docs/channels.json,
+ rest-api-templates/swagger_model.py,
+ rest-api/api-docs/bridges.json: ARI: Improve wiki documentation
+ This patch improves the documentation of ARI on the wiki.
+ Specifically, it addresses the following: * Allowed values and
+ allowed ranges weren't documented. This was particularly
+ frustrating, as Asterisk would reject query parameters with
+ disallowed values - but we didn't tell anyone what the allowed
+ values were. * The /play/id operation on /channels and /bridges
+ failed to document all of the added media resource types. *
+ Documentation for creating a channel into a Stasis application
+ failed to note when it occurred, and that creating a channel into
+ Stasis conflicts with creating a channel into the dialplan. *
+ Some other minor tweaks in the mustache templates, including
+ italicizing the parameter type, putting the default value on its
+ own sub-bullet, and some other nicities. Review:
+ https://reviewboard.asterisk.org/r/4351
+
+ * apps/confbridge/conf_config_parser.c,
+ apps/confbridge/include/confbridge.h: app_confbridge: Restore
+ user's menu name to CLI output of 'confbridge list' When issuing
+ a 'confbridge list XXXX' CLI command, the resulting output no
+ longer displays the menu associated with a ConfBridge
+ participant. The issue was caused by ASTERISK-22760. When that
+ patch was done, it removed the copying of the menu name
+ associated with the user from the actual user profile. This patch
+ fixes the issue by copying the menu name over to the user profile
+ when the menu hooks are applied to the user. Since that function
+ now does a little bit more than just apply the hooks, the name of
+ the function has been changed to cover the copying of the menu
+ name over as well. In addition, there is a disparity between the
+ menu name length as it is stored on the conf_menu structure and
+ the confbridge_user structure; this patch makes the lengths match
+ so that a strcpy can be used. Review:
+ https://reviewboard.asterisk.org/r/4372/ ASTERISK-24723 #close
+ Reported by: Steve Pitts
+
+2015-01-27 11:47 +0000 [r431114] Joshua Colp <jcolp@digium.com>
+
+ * res/parking/parking_manager.c: res_parking: Fix crash due to race
+ condition when unloading. There is currently a race condition
+ when unloading the res_parking module. Depending on the will of
+ the universe the subscription invocation may occur AFTER the
+ module is unloaded. This is because the module does NOT use
+ stasis_unsubscribe_and_join when terminating the subscription. It
+ merely uses stasis_unsubscribe. This change makes it use
+ stasis_unsubscribe_and_join which is documented for usage in this
+ exact scenario. AST-1520 #close Review:
+ https://reviewboard.asterisk.org/r/4375/
+
+2015-01-26 14:49 +0000 [r431092] David M. Lee <dlee@digium.com>
+
+ * channels/sip/include/route.h, funcs/func_presencestate.c,
+ main/rtp_engine.c, configure, include/asterisk/autoconfig.h.in,
+ include/asterisk/sem.h, configure.ac, main/app.c,
+ main/bridge_channel.c, main/sem.c, res/res_timing_kqueue.c,
+ main/asterisk.c: Various fixes for OS X This patch addresses
+ compilation errors on OS X. It's been a while, so there's quite a
+ few things. * Fixed __attribute__ decls in route.h to be
+ portable. * Fixed htonll and ntohll to work when they are defined
+ as macros. * Replaced sem_t usage with our ast_sem wrapper. *
+ Added ast_sem_timedwait to our ast_sem wrapper. * Fixed some GCC
+ 4.9 warnings using sig*set() functions. * Fixed some format
+ strings for portability. * Fixed compilation issues with
+ res_timing_kqueue (although tests still fail on OS X). * Fixed
+ menuconfig /sbin/launchd detection, which disables
+ res_timing_kqueue on OS X). ASTERISK-24539 #close Reported by:
+ George Joseph ASTERISK-24544 #close Reported by: George Joseph
+ Review: https://reviewboard.asterisk.org/r/4327/
+
+2015-01-25 13:42 +0000 [r431072] Matthew Jordan <mjordan@digium.com>
+
+ * main/config.c: dynamic realtime: Updates fail to work due to
+ update fields being passed over When a crash was fixed due to
+ usage of the REALTIME function in r423003, a regression was
+ introduced into ast_update2_realtime where the update fields
+ passed to the function would be skipped and the lookup field
+ processed twice. The use of this function is a bit interesting: A
+ variable argument list is used with two sentinel values - the
+ first marks the end of the lookup fields/values; the second marks
+ the end of the update fields/values. Unfortunately,
+ ast_update2_realtime parses over the lookup fields twice, as
+ opposed to parsing over the update fields. This causes the
+ lookups to succeed, but the updates itself to have no effect.
+ Note that the most common instance of this problem occurred in
+ app_voicemail during the updating of a mailbox password. Thanks
+ to the issue reporter, Paddy Grice, for pointing out the problem.
+ Review: https://reviewboard.asterisk.org/r/4356/ ASTERISK-24231
+ ASTERISK-24626 #close Reported by: Paddy Grice
+
+2015-01-23 20:13 +0000 [r431050-431052] Richard Mudgett <rmudgett@digium.com>
+
+ * apps/confbridge/conf_chan_record.c: app_confbridge: Make CBRec
+ channel names more unique. Channel names should be different from
+ other channels in the system while the channel exists. * Use a
+ sequence number for CBRec channels instead of a random number
+ because the same random number could be picked again for the next
+ CBRec channel.
+
+ * /, apps/app_confbridge.c: app_confbridge: Whitespace Because
+ there is sometimes no sence to any whitespace. ........ Merged
+ revisions 431049 from
+ http://svn.asterisk.org/svn/asterisk/branches/11
+
+2015-01-23 17:08 +0000 [r431030] David M. Lee <dlee@digium.com>
+
+ * res/res_pjsip_config_wizard.c: Add depend on pjproject to
+ res_pjsip_config_wizard.c
+
+2015-01-23 15:12 +0000 [r430999] Kevin Harwell <kharwell@digium.com>
+
+ * res/parking/parking_applications.c, channels/chan_iax2.c,
+ res/res_pjsip/pjsip_global_headers.c, res/res_pjsip_pubsub.c,
+ res/res_ari_channels.c, res/res_stasis.c,
+ rest-api-templates/param_parsing.mustache,
+ res/res_ari_endpoints.c, res/res_ari_events.c,
+ include/asterisk/stasis_app.h, res/res_pjsip_mwi.c: Investigate
+ and fix memory leaks in Asterisk Fixed memory leaks that were
+ found in Asterisk. ASTERISK-24693 #close Reported by: Kevin
+ Harwell Review: https://reviewboard.asterisk.org/r/4347/
+
+2015-01-23 15:03 +0000 [r430994-430998] Walter Doekes <walter+asterisk@wjd.nu>
+
+ * apps/app_voicemail.c, channels/chan_unistim.c,
+ funcs/func_hangupcause.c, main/manager_bridges.c,
+ channels/chan_misdn.c, funcs/func_groupcount.c, /,
+ addons/ooh323c/src/ooh245.c, channels/chan_sip.c, res/res_fax.c,
+ res/res_pjsip_outbound_registration.c, apps/app_minivm.c,
+ apps/app_alarmreceiver.c, include/asterisk/channel.h,
+ contrib/utils/eagi_proxy.c: Fix typo's (retrieve, specified,
+ address). ........ Merged revisions 430996 from
+ http://svn.asterisk.org/svn/asterisk/branches/11
+
+ * /, channels/chan_sip.c: chan_sip: Case insensitive comparison of
+ "defaultuser" parameter. All the other configuration options are
+ case insensitive, so this one should be too. ASTERISK-24355
+ #close Reported by: HZMI8gkCvPpom0tM patches: ast.patch uploaded
+ by HZMI8gkCvPpom0tM (License 6658) ........ Merged revisions
+ 430993 from http://svn.asterisk.org/svn/asterisk/branches/11
+
+2015-01-22 19:24 +0000 [r430957-430975] Richard Mudgett <rmudgett@digium.com>
+
+ * include/asterisk/bridge.h,
+ include/asterisk/bridge_channel_internal.h, main/bridge.c,
+ include/asterisk/bridge_internal.h, main/bridge_channel.c: Bridge
+ core: Pass a ref with the swap channel when joining a bridge.
+ When code imparts a channel into a bridge to swap with another
+ channel, a ref needs to be held on the swap channel to ensure
+ that it cannot dissapear before finding it in the bridge. * The
+ ast_bridge_join() swap channel parameter now always steals a ref
+ for the swap channel. This is the only change to the bridge
+ framework's public API semantics. *
+ bridge_channel_internal_join() now requires the
+ bridge_channel->swap channel to pass in a ref. ASTERISK-24649
+ Reported by: John Bigelow Review:
+ https://reviewboard.asterisk.org/r/4354/
+
+ * res/res_pjsip_outbound_registration.c:
+ res_pjsip_outbound_registration.c: Minor code cleanup. * Add an
+ allocation failure check and assert in
+ sip_outbound_registration_response_cb(). * Made
+ sip_outbound_registration_state_destroy() handle partially
+ created state objects from
+ sip_outbound_registration_state_alloc(). Review:
+ https://reviewboard.asterisk.org/r/4366/
+
+2015-01-22 18:09 +0000 [r430939] Scott Griepentrog <sgriepentrog@digium.com>
+
+ * res/stasis/app.c, res/stasis/stasis_bridge.c: stasis transfer:
+ fix a race condition on stasis bridge push After a bridge
+ transfer completes where a local replacement channel is used, a
+ stasis transfer message with the details of the transfer is sent.
+ This is processed by stasis which then sets the stasis app name
+ and replaced channel snapshot on the replacement channel.
+ However, since a separate thread was already started to run
+ stasis on the new replacement channel, a race was on to see if
+ the message processing would be completed before the app name was
+ needed, otherwise the channel would be hung up. This change moves
+ the calls used to set the stasis app name and the replace
+ snapshot to the bridge_stasis_push function callback from the
+ bridge transfer logic, allowing the steps to be completed earlier
+ and more deterministically, and the race elimianted. NOTE: the
+ swap channel parameter to bridge_stasis_push (and thus all bridge
+ push callbacks) must always be present when performing a swap
+ with another channel. ASTERISK-24649 #close Reported by: John
+ Bigelow Review: https://reviewboard.asterisk.org/r/4341/
+
+2015-01-22 14:23 +0000 [r430921] Matthew Jordan <mjordan@digium.com>
+
+ * /, apps/app_voicemail.c: apps/app_voicemail: Trigger MWI
+ notification with MixMonitor m() option The MixMonitor m() option
+ allows a recording to be pushed to a specific voicemail mailbox.
+ If the message is delivered to the mailbox's INBOX, however, no
+ MWI notification is currently raised. This patch corrects the
+ issue by properly calling notify_new_state from the
+ msg_create_from_file function. This will cause MWI to be
+ triggered if the message was placed in the mailbox's INBOX.
+ ASTERISK-24709 #close Reported by: Gareth Palmer patches:
+ app_voicemail-430919.patch uploaded by Gareth Palmer (License
+ 5169) ........ Merged revisions 430920 from
+ http://svn.asterisk.org/svn/asterisk/branches/11
+
+2015-01-21 21:53 +0000 [r430902] Richard Mudgett <rmudgett@digium.com>
+
+ * res/res_pjsip_outbound_registration.c:
+ res_pjsip_outbound_registration.c: Move unref to a better place.
+ Move an unconditional unref of client_state so it doesn't look
+ like it could be used after the last ref has destroyed it.
+
+2015-01-21 13:33 +0000 [r430840-430864] Matthew Jordan <mjordan@digium.com>
+
+ * channels/chan_sip.c: channels/chan_sip: Fix registration leak
+ during reload When the SIP registrations were migrated to using
+ ao2 in what was then trunk, the explicit destruction of the
+ registrations on module reload was removed and not replaced with
+ an ao2 equivalent. Debugging done by Stefan Engström, the issue
+ reporter, on ASTERISK-24673 confirmed that the reference in the
+ registry_list container was being leaked. Since the purpose of
+ cleanup_all_regs is to prep a registration for destruction, this
+ function now calls an ao2_callback function callback with the
+ OBJ_MULTIPLE | OBJ_NODATA | OBJ_UNLINK flags used to remove the
+ registrations. This cleans up each registration, and also removes
+ it from the registration container registry_list. Review:
+ https://reviewboard.asterisk.org/r/4355/ ASTERISK-24640 #close
+ Reported by: Max Man ASTERISK-24673 #close Reported by: Stefan
+ Engström Tested by: Stefan Engström
+
+ * cdr/cdr_manager.c, cel/cel_manager.c: AMI: Add documentation for
+ the missing Cdr/CEL events. This patch adds AMI event
+ documentation for the Cdr and CEL AMI events. Note that while
+ these events do share fields with each other and with other
+ channel related events, they do not contain all of the fields in
+ a standard channel snapshot, nor is the description of the fields
+ identical. As such, the patch opts for documentation for each
+ field, for each event. Review:
+ https://reviewboard.asterisk.org/r/4350/ ASTERISK-24671 #close
+ Reported by: Dan Jenkins
+
+ * apps/app_dial.c: apps/app_dial: Don't publish DialEnd twice on
+ unexpected GoSub/Macro values The Dial application has some
+ interesting options with the mid-call Macro (M) and GoSub (U)
+ options. If the MACRO_RESULT/GOSUB_RESULT returns specific
+ values, the Dial application will take some action upon the
+ channels involved in the dial operation (such as hanging up a
+ particular party, etc.) The Dial application ensures that a
+ Stasis message is published in the event that
+ MACRO_RESULT/GOSUB_RESULT returns a value that kills the dial
+ operation, so that there is a corresponding DialEnd event
+ published in AMI/ARI for the DialBegin event that preceeded it. A
+ bug exists where that same DialEnd event will be published on
+ Stasis even if the value returned in MACRO_RESULT/GOSUB_RESULT is
+ not one that the Dial application cares about. This causes two
+ DialEnd events to be published - one with the
+ MACRO_RESULT/GOSUB_RESULT and another with "ANSWERED" - which is
+ all sorts of wrong. This patch fixes the bug by ensuring that we
+ only publish a DialEnd message to Stasis if the Dial
+ application's mid-call Macro/GoSub returns something that Dial
+ cares about. Review: https://reviewboard.asterisk.org/r/4336
+ ASTERISK-24682 #close Reported by: Matt Jordan
+
+ * main/rtp_engine.c: main/rtp_engine: Format NTP timestamps as
+ unsigned longs When the RTCP reports are created, the NTP
+ timestamps are stored as strings, as JSON does not have an
+ integer type long enough to store the value. However, on 32-bit
+ systems, a signed long may overflow for some portion of the
+ timestamp. This patch corrects the overflow by formatting the
+ timestamps as unsigned longs.
+
+2015-01-20 16:51 +0000 [r430818] asanders <asanders@localhost>:
+
+ * res/ari/resource_bridges.c: ARI: Fixed crash that occurred when
+ updating a bridge when the optional query parameter 'name' was
+ not supplied. Prior to this changeset, posting to the:
+ /ari/bridges/{bridgeId} endpoint without specifying a value for
+ the [name] query parameter, would crash Asterisk if the bridge
+ you are attempting to create (or update) had the same ID as an
+ existing bridge. The internal mechanism of the POST operation
+ interpreted a null value for name, thus resulting in an error
+ condition that crashed Asterisk. ASTERISK-24560 #close Reported
+ By: Kinsey Moore Review: https://reviewboard.asterisk.org/r/4349/
+
+2015-01-20 16:46 +0000 [r430817] Richard Mudgett <rmudgett@digium.com>
+
+ * configs/samples/iax.conf.sample, res/res_fax.c,
+ funcs/func_channel.c, UPGRADE.txt, res/snmp/agent.c,
+ channels/chan_iax2.c: CHANNEL(peer), chan_iax2, res_fax, SNMP
+ agent: Fix deadlock from reaching across a bridge. Calling
+ ast_channel_bridge_peer() cannot be done while holding any
+ channel locks. The reported issue hit the deadlock in chan_iax2,
+ but an audit of the ast_channel_bridge_peer() calls found three
+ more locations where the same deadlock can occur. * Made
+ CHANNEL(peer), res_fax, and the SNMP agent not call
+ ast_channel_bridge_peer() with any channel locked. For
+ CHANNEL(peer) I had to rework the logic to not hold the channel
+ lock. * Made chan_iax2 no longer call ast_channel_bridge_peer().
+ It was done for legacy reasons that no longer apply. * Removed
+ the iax.conf forcejitterbuffer option. It is now always enabled
+ when the jitterbuffer option is enabled. If you put a jitter
+ buffer on a channel it will be on the channel. ASTERISK-24600
+ #close Reported by: Jeff Collell Review:
+ https://reviewboard.asterisk.org/r/4342/
+
+2015-01-20 02:39 +0000 [r430796-430799] Matthew Jordan <mjordan@digium.com>
+
+ * contrib/scripts/install_prereq, /:
+ contrib/scripts/install_prereq: Don't install 32-bit packages on
+ 64-bit hosts On Debian based systems, the install_prereq tool
+ uses a search command on Debian that results in selecting both
+ 64-bit and 32-bit packages. Besides the waste of disk space, this
+ can actually cause aptitude use 100% of memory on a VM with 1GB
+ of RAM as it tried to work out all of the 32-bit package
+ dependencies. This patch filters out the 32-bit packages on a
+ 64-bit machine, and leaves 32-bit machines alone. ASTERISK-24048
+ #close Reported by: Ben Klang Tested by: Ben Klang, Matt Jordan
+ patches: install_prereq_64-bit_compat.patch uploaded by Ben Klang
+ (License 5876) ........ Merged revisions 430798 from
+ http://svn.asterisk.org/svn/asterisk/branches/11
+
+ * apps/app_voicemail.c, /: app_voicemail: Temp message left after
+ review/hangup with ODBC/IMAP backend When using ODBC or IMAP
+ storage, temporary files created on the file system must be
+ disposed of using the DISPOSE macro. The DELETE macro will map to
+ a deletion function for the backend storage, but does not clean
+ up any local files created as a result of the operation. When
+ using voicemail with the operator and review options enabled,
+ pressing 0 to enter the menu, followed by 1 to save the message,
+ followed by any other DTMF press to delete the message, will
+ result in the temporary file lingering on the file system. This
+ patch properly calls DISPOSE after the DELETE. This causes the
+ local file to be disposed of. ASTERISK-24288 #close Reported by:
+ LEI FU patches: voicemail_odbc_review_fix.diff uploaded by LEI FU
+ (License 6640) ........ Merged revisions 430795 from
+ http://svn.asterisk.org/svn/asterisk/branches/11
+
+2015-01-19 18:05 +0000 [r430776] Mark Michelson <mmichelson@digium.com>
+
+ * main/pbx.c: Call extension state callbacks at hint creation. When
+ a hint gets created, any subsequent device or presence state
+ changes result in extension status events getting sent out to
+ interested parties. However, at the time of hint creation, no
+ such event gets sent out, so watchers of extension state are
+ potentially left in the dark until the first state change after
+ hint creation. Patch contributed by John Hardin (License #6512)
+
+2015-01-19 13:18 +0000 [r430755] Joshua Colp <jcolp@digium.com>
+
+ * res/res_pjsip_multihomed.c, res/res_pjsip.c: res_pjsip /
+ res_pjsip_multihomed: Use the correct transport and addressing
+ information on UAS sessions. The first thing this patch fixes is
+ UAS dialogs. Previously if a transport was configured on an
+ endpoint and an inbound session was created there was no
+ guarantee that requests sent on the dialog would use the correct
+ transport and address information. This has now been fixed so an
+ explicitly configured transport is taken into account. The second
+ thing this patch fixes is res_pjsip_multihomed. The
+ res_pjsip_multihomed module attempts to determine what transport
+ a message should go out on and what addressing information should
+ go into the message itself. In a scenario where multiple
+ transports exist bound to the same IP address but a different
+ port the code would incorrectly alter the transport and change
+ the message to the wrong transport. This change makes the
+ res_pjsip_multihomed module smarter so it will only change the
+ transport and address information in the message when it is
+ possible and makes sense. ASTERISK-24615 #close Reported by:
+ David Justl Review: https://reviewboard.asterisk.org/r/4331/
+
+2015-01-17 00:31 +0000 [r430734] Kevin Harwell <kharwell@digium.com>
+
+ * res/res_pjsip/config_transport.c,
+ res/res_pjsip/pjsip_outbound_auth.c, res/res_pjsip/config_auth.c,
+ main/stasis_message_router.c, res/res_pjsip/location.c,
+ res/res_pjsip/pjsip_configuration.c,
+ res/res_pjsip/pjsip_distributor.c,
+ res/res_pjsip/include/res_pjsip_private.h,
+ res/res_pjsip/pjsip_global_headers.c,
+ res/res_pjsip/pjsip_options.c, res/res_pjsip.c: REVERTING
+ res_pjsip: make it unloadable Due to the original patch causing
+ memory corruptions the patch is being removed until the problem
+ can be resolved.
+
+2015-01-16 22:13 +0000 [r430709-430716] Mark Michelson <mmichelson@digium.com>
+
+ * CHANGES: Change PJProject version requirement for ca_list_path
+ transport option in CHANGES file.
+
+ * channels/chan_pjsip.c, res/res_pjsip_session.c: Fix problem where
+ a hung channel could occur on a failed blind transfer. Different
+ clients react differently to being told that a blind transfer has
+ failed. Some will simply send a BYE and be done with it. Others
+ will attempt to reinvite themselves back onto the call. In the
+ latter case, we were creating a new channel and then leaving it
+ to sit forever doing nothing. With this code change, that new
+ channel will not be created and the dialog with the transferring
+ channel will be cleaned up properly. ASTERISK-24624 #close
+ Reported by Zane Conkle Review:
+ https://reviewboard.asterisk.org/r/4339
+
+ * include/asterisk/res_pjsip.h, configure,
+ include/asterisk/autoconfig.h.in, configure.ac,
+ configs/samples/pjsip.conf.sample, CHANGES, res/res_pjsip.c,
+ res/res_pjsip/config_transport.c: Add support for the
+ ca_list_path option for PJSIP transports. This allows for a path
+ to be specified that has a collection of CA certificates in it.
+ ASTERISK-24575 #close Reported by cloos Patches:
+ pj-ca-path-trunk.diff uploaded by cloos (License #5956) Review:
+ https://reviewboard.asterisk.org/r/4344
+
+2015-01-15 17:35 +0000 [r430685-430687] Richard Mudgett <rmudgett@digium.com>
+
+ * res/res_fax_spandsp.c, res/res_fax.c: res_fax.c,
+ res_fax_spandsp.c: Remove redundant locking. When FAX was
+ developed, apparently the faxregistry.container used to be a
+ linked list that was converted to an ao2 container. Some of the
+ replacement ao2 container operations still had explicit
+ lock/unlocks around them. Three off nominal code paths in
+ res_fax.c and res_fax_spandsp.c unlock the channel even though
+ the routine did not lock the channel and other code paths in the
+ routine do not unlock the channel. Review:
+ https://reviewboard.asterisk.org/r/4340/
+
+ * res/res_fax_spandsp.c, res/res_fax.c: res_fax.c,
+ res_fax_spandsp.c: Fix some curlies on the end of function
+ definitions.
+
+2015-01-15 12:09 +0000 [r430664] Joshua Colp <jcolp@digium.com>
+
+ * res/res_pjsip_outbound_registration.c:
+ res_pjsip_outbound_registration: Fix race condition when
+ reloading and listing registrations. Due to the split of outbound
+ registration state from configuration it is possible during a
+ reload for a "pjsip show registrations" CLI command to be
+ executed which gets an older snapshot of the configuration. This
+ configuration may include outbound registrations which have been
+ removed due to a reload operation occurring at the same time. The
+ code for printing the outbound registration did not take this
+ into account but now it does. AST-1506 #close Review:
+ https://reviewboard.asterisk.org/r/4338/
+
+2015-01-15 02:18 +0000 [r430646] Matthew Jordan <mjordan@digium.com>
+
+ * configure, configure.ac: configure: If cross-compiling, assume we
+ have working semaphores The Asterisk 13 configure.ac checks for
+ HAS_WORKING_SEMAPHORE but does not have an option for
+ cross-compiling so it fails with an exit. Since we're cross-
+ compiling, we can't exactly go looking for the header. The
+ semaphore.h header is relatively common: * It's part of the POSIX
+ standard * It's part of GNU C Library As such, we assume that it
+ will be present when cross-compiling. As such, this patch
+ defaults "HAS_WORKING_SEMAPHORE" to "1" if cross-compiling is
+ detected. If you're cross-compiling to a platform that doesn't
+ support this, then make sure you re-define this to 0.
+ ASTERISK-24663 #close Reported by: abelbeck patches:
+ asterisk-13-anonymous-semaphores.patch uploaded by abelbeck
+ (License 5903)
+
+2015-01-14 23:14 +0000 [r430628] Kevin Harwell <kharwell@digium.com>
+
+ * res/res_pjsip/pjsip_configuration.c,
+ res/res_pjsip/pjsip_distributor.c,
+ res/res_pjsip/include/res_pjsip_private.h,
+ res/res_pjsip/pjsip_global_headers.c,
+ res/res_pjsip/pjsip_options.c, res/res_pjsip.c,
+ res/res_pjsip/config_transport.c,
+ res/res_pjsip/pjsip_outbound_auth.c, res/res_pjsip/config_auth.c,
+ main/stasis_message_router.c, res/res_pjsip/location.c:
+ res_pjsip: make it unloadable The res_pjsip module was previously
+ unloadable. With this patch it can now be unloaded. This patch is
+ based off the original patch on the issue (listed below) by Corey
+ Farrell with a few modifications. Namely, removed a few changes
+ not required to make the module unloadable and also fixed a bug
+ that would cause asterisk to crash on unloading. This patch is
+ the first step (should hopefully be followed by another/others at
+ some point) in allowing res_pjsip and the modules that depend on
+ it to be unloadable. At this time, res_pjsip and some of the
+ modules that depend on res_pjsip cannot be unloaded without
+ causing problems of some sort. The goal of this patch is to get
+ res_pjsip and only res_pjsip to be able to unload successfully
+ and/or shutdown without incident (crashes, leaks, etc...). Other
+ dependent modules may still cause problems on unload. Basically
+ made sure, with the patch applied, that res_pjsip (with no other
+ dependent modules loaded) could be succesfully unloaded and
+ Asterisk could shutdown without any leaks or crashes that
+ pertained directly to res_pjsip. ASTERISK-24485 #close Reported
+ by: Corey Farrell Review:
+ https://reviewboard.asterisk.org/r/4311/ patches:
+ pjsip_unload-broken-r1.patch submitted by Corey Farrell (license
+ 5909)
+
+2015-01-14 20:27 +0000 [r430608] Mark Michelson <mmichelson@digium.com>
+
+ * res/res_pjsip_outbound_publish.c: Prevent slow graceful shutdown
+ when outbound publications never started. The code was missing
+ the case for explicitly destroying an outbound publication when
+ Asterisk had never actually published anything. The result was
+ that Asterisk would hang for a while on a graceful shutdown. With
+ this change, the case is taken into account, and on a graceful
+ shutdown, these publications are destroyed without the need to
+ actually send a PUBLISH request. ASTERISK-24655 #close Reported
+ by Kevin Harwell Review: https://reviewboard.asterisk.org/r/4325
+
+2015-01-14 15:39 +0000 [r430590] Matthew Jordan <mjordan@digium.com>
+
+ * build_tools/mkpkgconfig, /: build_tools/mkpkgconfig: Fix Cflags
+ concatenation error in asterisk.pc The mkpkgconfig script
+ incorrectly concatenates Cflags options together. As an example,
+ the following: Cflags: -I/usr/include/libxml2 -g3 Is instead
+ generated as: Cflags: -I/usr/include/libxml2-g3 This patch
+ corrects the generation of Cflags in mkpkgconfig such that the
+ Cflags options are output correctly. Review:
+ https://reviewboard.asterisk.org/r/3707/ ASTERISK-23991 #close
+ Reported by: Diederik de Groot patches: fix_mkpkgconfig.diff
+ uploaded by Diederik de Groot (License 6600) ........ Merged
+ revisions 430589 from
+ http://svn.asterisk.org/svn/asterisk/branches/11
+
+2015-01-13 18:16 +0000 [r430565] Richard Mudgett <rmudgett@digium.com>
+
+ * apps/app_macro.c, /: app_macro: Don't restore the calling
+ location on a channel redirect. v11: If a channel redirect to a
+ macro exten of a macro that is active happens, the redirect
+ location doesn't get executed. Instead the original macro
+ location is restored and gets reexecuted. v13: An additional
+ effect happens if a parked call times out to an extension in the
+ macro that parked the call then the macro is reexecuted instead
+ of the expected park return location. * Made not restore the
+ macro calling location on an AST_SOFTHANGUP_ASYNCGOTO. *
+ Increased the locked channel range when setting up the macro
+ execution environment to cover things that should be done while
+ the channel is locked. * Removed unnecessary NULL tests before
+ calling ast_free() in _macro_exec(). ASTERISK-23850 #close
+ Reported by: Andrew Nagy Review:
+ https://reviewboard.asterisk.org/r/4292/ ........ Merged
+ revisions 430564 from
+ http://svn.asterisk.org/svn/asterisk/branches/11
+
+2015-01-13 12:06 +0000 [r430546] Joshua Colp <jcolp@digium.com>
+
+ * channels/pjsip/dialplan_functions.c, configure,
+ include/asterisk/autoconfig.h.in, configure.ac: chan_pjsip: Add
+ configure check for 'pjsip_get_dest_info' function. The
+ 'pjsip_get_dest_info' function is used to determine if the
+ signaling transport of the dialog is secure or not. This function
+ was added in PJSIP 2.3 and does not exist in earlier versions.
+ This configure check allows Asterisk to build and run with older
+ versions at the loss of the 'secure' argument for the PJSIP
+ CHANNEL dialplan function. Usage of this argument will require
+ upgrading to PJSIP 2.3. ASTERISK-24665 #close Reported by: Mark
+ Michelson Review: https://reviewboard.asterisk.org/r/4329/
+
+2015-01-12 18:34 +0000 [r430528] Richard Mudgett <rmudgett@digium.com>
+
+ * include/asterisk/manager.h, main/manager.c: AMI: Revert
+ non-backwards compatible changes from earlier commit. * Reverted
+ the change to astman_send_listack() to not use the listflag
+ parameter and always set the value to "Start" so the start
+ capitalization is consistent. Unfortunately changing the case of
+ a returned value is not a backward compatible change so for now
+ FAXSessions is going to have to remain inconsistent with all of
+ the other AMI list actions. * Reverted the minor protocol error
+ fix in action_getconfig() when no requested categories are found.
+ Each line needs to be formatted as "Header: text". Caught by the
+ testsuite. ASTERISK-24049
+
+2015-01-12 18:28 +0000 [r430488-430526] Matthew Jordan <mjordan@digium.com>
+
+ * configs/samples/features.conf.sample:
+ configs/samples/features.conf.sample: Document attended transfer
+ DTMF options The sample config was missing the configuration
+ options for DTMF attended transfer completion scenarios. The
+ configuration options 'atxferabort', 'atxfercomplete',
+ 'atxferthreeway', and 'atxferswap' are now documented in the
+ appropriate configuration file. ASTERISK-24678 #close Reported
+ by: Niklas Larsson patches: features.conf.sample.diff uploaded by
+ Niklas Larsson (License 5068)
+
+ * main/syslog.c, include/asterisk/syslog.h, /: main/syslog: Allow
+ dynamic logs, such as security events, to log to the syslog The
+ security event log uses a dynamic log level (SECURITY) that is
+ registered with the Asterisk logging core. Unfortunately, the
+ syslog would ignore log statements that had a dynamic log level
+ associated with them. Because the syslog cannot handle ad hoc
+ dynamic log levels, this patch treats any dynamic log entries
+ sent to the syslog as logs with a level of NOTICE. ASTERISK-20744
+ #close Reported by: Michael Keuter Tested by: Michael L. Young,
+ Jacek Konieczny patches:
+ asterisk-20744-syslog-dynamic-logging_trunk.diff uploaded by
+ Michael L. Young (license 5026) ........ Merged revisions 430506
+ from http://svn.asterisk.org/svn/asterisk/branches/11
+
+ * funcs/func_curl.c, /: funcs/func_curl: Fix memory leak when
+ CURLOPT channel datastore is destroyed When the channel datastore
+ associated with the usage of CURLOPT on a specific channel is
+ freed, the underlying structure holding the list of options is
+ not disposed of. This patch properly frees the structure in the
+ datastore .destroy callback. ASTERISK-24672 #close Reported by:
+ Kristian Hogh patches: func_curl-memory-leak.diff uploaded by
+ Kristian Hogh (License 6639) ........ Merged revisions 430487
+ from http://svn.asterisk.org/svn/asterisk/branches/11
+
+2015-01-09 22:08 +0000 [r430467-430469] Scott Griepentrog <sgriepentrog@digium.com>
+
+ * contrib/scripts/sip_to_pjsip/sip_to_pjsip.py,
+ contrib/scripts/sip_to_pjsip/astconfigparser.py: sip_to_pjsip:
+ improve ability to parse input files General improvements to SIP
+ to PJSIP conversion utility: 1) track default section of input
+ file to allow parsing an include file that doesn't specify a
+ [section] 2) informatively handle case of assignment without
+ [section] 3) correctly handle getting sections from included
+ files - [section]'s are inherited by included file 4) provide
+ null string as default transport bind ip 5) gracefully handle
+ missing portions of registration string 6) denote steps of
+ operation during conversion and confirm top level files as a
+ convenience ASTERISK-24474 #close Review:
+ https://reviewboard.asterisk.org/r/4280/ Reported by: John
+ Kiniston
+
+ * main/features.c: app_bridge: return to the next dialplan priority
+ When app_bridge grabs a channel and puts it into a bridge, the
+ channel should then continue where it left off in the dialplan
+ after the bridge has ended. Although it stores the current
+ dialplan location as an after bridge goto on the channel, it was
+ executing the same priority again instead of going to the next
+ priority. By swapping the "specific" version of
+ bridge_set_after_goto with bridge_set_after_go_on, the next
+ priority in the dialplan is executed instead. ASTERISK-24637
+ #close Review: https://reviewboard.asterisk.org/r/4322/ Reported
+ by: John Bigelow
+
+2015-01-09 17:54 +0000 [r430434] Richard Mudgett <rmudgett@digium.com>
+
+ * UPGRADE.txt, res/res_mwi_external_ami.c, CHANGES,
+ include/asterisk/manager.h, channels/chan_iax2.c,
+ apps/app_queue.c, apps/app_agent_pool.c,
+ res/res_manager_devicestate.c, main/manager_bridges.c,
+ channels/chan_dahdi.c, main/manager.c, channels/chan_skinny.c,
+ res/res_pjsip_outbound_registration.c,
+ res/res_manager_presencestate.c,
+ res/res_pjsip/pjsip_configuration.c, apps/app_confbridge.c,
+ res/res_pjsip_pubsub.c, main/db.c, res/parking/parking_manager.c,
+ res/res_pjsip_registrar.c, apps/app_voicemail.c, main/pbx.c,
+ channels/chan_sip.c, apps/app_meetme.c, main/bridge.c,
+ res/res_fax.c: AMI: Make AMI actions that generate event lists
+ consistent. * Made the following AMI actions use list API calls
+ for consistency: Agents BridgeInfo BridgeList
+ BridgeTechnologyList ConfbridgeLIst ConfbridgeLIstRooms
+ CoreShowChannels DAHDIShowChannels DBGet DeviceStateList
+ ExtensionStateList FAXSessions Hangup IAXpeerlist IAXpeers
+ IAXregistry MeetmeList MeetmeListRooms MWIGet ParkedCalls
+ Parkinglots PJSIPShowEndpoint PJSIPShowEndpoints
+ PJSIPShowRegistrationsInbound PJSIPShowRegistrationsOutbound
+ PJSIPShowResourceLists PJSIPShowSubscriptionsInbound
+ PJSIPShowSubscriptionsOutbound PresenceStateList PRIShowSpans
+ QueueStatus QueueSummary ShowDialPlan SIPpeers SIPpeerstatus
+ SIPshowregistry SKINNYdevices SKINNYlines Status
+ VoicemailUsersList * Incremented the AMI version to 2.7.0. *
+ Changed astman_send_listack() to not use the listflag parameter
+ and always set the value to "Start" so the start capitalization
+ is consistent. i.e., The FAXSessions used "Start" while the rest
+ of the system used "start". The corresponding complete event
+ always used "Complete". * Fixed ami_show_resource_lists()
+ "PJSIPShowResourceLists" to output the AMI ActionID for all of
+ its list events. * Fixed off-nominal AMI protocol error in
+ manager_bridge_info(), manager_parking_status_single_lot(), and
+ manager_parking_status_all_lots(). Use of astman_send_error()
+ after responding to the original AMI action request violates the
+ action response pattern by sending two responses. * Fixed minor
+ protocol error in action_getconfig() when no requested categories
+ are found. Each line needs to be formatted as "Header: text". *
+ Fixed off-nominal memory leak in
+ manager_build_parked_call_string(). * Eliminated unnecessary use
+ of RAII_VAR() in ami_subscription_detail(). ASTERISK-24049 #close
+ Reported by: Jonathan Rose Review:
+ https://reviewboard.asterisk.org/r/4315/
+
+2015-01-09 14:51 +0000 [r430416] Kinsey Moore <kmoore@digium.com>
+
+ * /, res/res_fax.c, include/asterisk/res_fax.h,
+ configs/samples/res_fax.conf.sample, CHANGES: res_fax: Add T.38
+ negotiation timeout option This change makes the T.38 negotiation
+ timeout configurable via 't38timeout' in res_fax.conf or
+ FAXOPT(t38timeout). It was previously hard coded to be 5000
+ milliseconds. This change also handles T.38 switch failures by
+ aborting the fax since in the case where this can happen, both
+ sides have agreed to switch to T.38 and Asterisk is unable to do
+ so. Review: https://reviewboard.asterisk.org/r/4320/ ........
+ Merged revisions 430415 from
+ http://svn.asterisk.org/svn/asterisk/branches/11
+
+2015-01-08 21:40 +0000 [r430373-430397] George Joseph <george.joseph@fairview5.com>
+
+ * res/res_pjsip_pubsub.c: res_pjsip_pubsub: Fix persistent
+ subscriptions not surviving graceful shutdown If you do a 'core
+ (shutdown|restart) graceful' persistent subscriptions won't
+ survive. If you do a 'core (shutdown|restart) now' or asterisk
+ terminates for some reason, they do. Here's why... When asterisk
+ shuts down gracefully, it sends a 'NOTIFY/terminated' to
+ subscribers for each subscription. This not only tells the
+ subscribers that the dialog/state machine is done, it also frees
+ the last reference to the subscription tree which causes the
+ persistent subscription to get deleted from astdb. When asterisk
+ restarts, nothing's left. Just preventing the delete from astdb
+ doesn't work because we already told the subscriber to terminate
+ the dialog so we can't restart it even if it was still in astdb.
+ Everything works OK if asterisk terminates unexpectedly because
+ we never send the 'terminated' message so on restart, the
+ subscription is still in astdb and the subscriber is none the
+ wiser. This patch suppresses the sending of 'NOTIFY/terminated'
+ on shutdown for persistent connections. Tested-by: George Joseph
+ Review: https://reviewboard.asterisk.org/r/4318/
+
+ * res/res_pjsip_outbound_registration.c:
+ res_pjsip_outbound_registration: Fix reference leak. Every time a
+ registration started, sip_outbound_registration_response_cb bumps
+ the ref count on client_state then pushes a
+ handle_registration_response task. handle_registration_response
+ never unreffed it though. So every time a registration goes out,
+ the ref count goes up by one. This patch adds the unreffs to
+ handle_registration_response. Tested-by: George Joseph Review:
+ https://reviewboard.asterisk.org/r/4303/
+
+ * res/res_pjsip_outbound_registration.c:
+ res_pjsip_outbound_registration: Fix several reload issues There
+ are 2 issues with reloading registrations... 1. The
+ 'can_reuse_registration' test wasn't considering the intervals or
+ expiration in its determination of whether a registration changed
+ or not so if you changed any of the intervals or the expiration
+ and reloaded, the object would get reloaded but the actual timers
+ wouldn't change. can_reuse_registration now does a sorcery diff
+ on the old and new objects instead of discretely testing certain
+ fields. Now if you change expiration for instance, and reload,
+ the timer is updated and re-registration will occur on the new
+ value. 2. If you mung up your password on an outbound
+ registration you get a permanent failure. If you fix the password
+ (on the outbound_auth object) and reload, nothing tells
+ outbound_registration to try again because the registration
+ itself didn't change. This patch adds an observer on the "auth"
+ object type and if any auth changes, existing registration states
+ are searched and those in a REJECTED_PERMANENT state are retried.
+ Tested-by: George Joseph Review:
+ https://reviewboard.asterisk.org/r/4304/
+
+2015-01-07 21:25 +0000 [r430355] Kinsey Moore <kmoore@digium.com>
+
+ * res/res_stasis.c: ARI: Allow usage of ASYNCGOTO with Stasis()
+ When the AMI Redirect action is used with a channel bridged
+ inside Stasis() and not running a pbx, the channel is hung up
+ instead of proceeding to the desired location in dialplan. This
+ change allows such channels to be Redirected properly by
+ detecting the operation used by Redirect (ASYNCGOTO) and using
+ the code already established for functionality of the ARI channel
+ continue operation. ASTERISK-24591 #close Review:
+ https://reviewboard.asterisk.org/r/4271/
+
+2015-01-07 18:53 +0000 [r430337] Mark Michelson <mmichelson@digium.com>
+
+ * rest-api/api-docs/channels.json, rest-api/resources.json,
+ res/ari/resource_channels.c, CHANGES, res/res_ari_channels.c,
+ res/ari/resource_channels.h: Add the ability to continue and
+ originate using priority labels. With this patch, the following
+ two ARI commands POST /channels POST /channels/{id}/continue
+ Accept a new parameter, label, that can be used to continue to or
+ originate to a priority label in the dialplan. Because this is
+ adding a new parameter to ARI commands, the API version of ARI
+ has been bumped from 1.6.0 to 1.7.0. This patch comes courtesy of
+ Nir Simionovich from Greenfield Tech. Thanks! ASTERISK-24412
+ #close Reported by Nir Simionovich Review:
+ https://reviewboard.asterisk.org/r/4285
+
+2015-01-07 18:17 +0000 [r430315-430319] George Joseph <george.joseph@fairview5.com>
+
+ * res/res_pjsip_exten_state.c: res_pjsip_exten_state: Change 'does
+ not exist' warning to notice The 'new_subscribe: Extension <>
+ does not exist or has no associated hint' is a config issue and
+ doesn't need to clutter up logs with warnings. Changed to notice.
+ Tested-by: George Joseph Review:
+ https://reviewboard.asterisk.org/r/4307/
+
+ * res/res_pjsip_mwi.c: res_pjsip_mwi: Change "MWI Subscription
+ failed" message from warning to notice The "MWI Subscription
+ failed" message means the client is trying to subscribe to a
+ mailbox that doesn't exist. There's no need to clutter up logs
+ with warnings for a client misconfiguration so I changed it to a
+ notice. Tested-by: George Joseph Review:
+ https://reviewboard.asterisk.org/r/4306/
+
+ * funcs/func_config.c, tests/test_config.c: func_config: Add
+ ability to retrieve specific occurrence of a variable I guess
+ nobody uses templates with AST_CONFIG because today if you have a
+ context that inherits from a template and you call AST_CONFIG on
+ the context, you'll get the value from the template even if
+ you've overridden it in the context. This is because AST_CONFIG
+ only gets the first occurrence which is always from the template.
+ This patch adds an optional 'index' parameter to AST_CONFIG which
+ lets you specify the exact occurrence to retrieve, or '-1' to
+ retrieve the last. The default behavior is the current behavior.
+ Tested-by: George Joseph Review:
+ https://reviewboard.asterisk.org/r/4313/
+
+2015-01-07 17:35 +0000 [r430313] Mark Michelson <mmichelson@digium.com>
+
+ * res/res_pjsip_refer.c: Fix ability to perform a remote attended
+ transfer with PJSIP. This fix has two parts: * Corrected an error
+ message to properly state that external_replaces is an extension.
+ The error message also prints what dialplan context the
+ external_replaces extension was being looked for in. * Corrected
+ the printing of the Replaces: header in an INVITE request. We
+ were duplicating "Replaces: " in the header. ASTERISK-24376
+ #close Reported by Matt Jordan Review:
+ https://reviewboard.asterisk.org/r/4296
+
+2015-01-07 16:55 +0000 [r430295] George Joseph <george.joseph@fairview5.com>
+
+ * include/asterisk/config.h, main/config.c, main/manager.c: config:
+ Add option to NOT preserve effective context when changing a
+ template Let's say you have a template T with variable VAR1 = ON
+ and you have a context C(T) that doesn't specify VAR1. If you
+ read C, the effective value of VAR1 is ON. Now you change T VAR1
+ to OFF and call ast_config_text_file_save. The current behavior
+ is that the file gets re-written with T/VAR1=OFF but C/VAR1=ON is
+ added. Personally, I think this is a bug. It's preserving the
+ effective state of C even though I didn't specify C/VAR1 in th
+ first place. I believe the behavior should be that if I didn't
+ specify C/VAR1 originally, then the effective value of C/VAR1
+ should continue to follow the inherited state. Now, if I DID
+ explicitly specify C/VAR1, the it should be preserved even if the
+ template changes. Even though I think the existing behavior is a
+ bug, it's been that way forever so I'm not changing it. Instead,
+ I've created ast_config_text_file_save2() that takes a bitmask of
+ flags, one of which is to preserve the effective context (the
+ current behavior). The original ast_config_text_file_save calls
+ *2 with the preserve flag. If you want the new behavior, call *2
+ directly without a flag. I've also updated Manager UpdateConfig
+ with a new parameter 'PreserveEffectiveContext' whose default is
+ 'yes'. If you want the new behavior with UpdateConfig, set
+ 'PreserveEffectiveContext: no'. Tested-by: George Joseph Review:
+ https://reviewboard.asterisk.org/r/4297/
+
+2015-01-07 02:52 +0000 [r430274] Kinsey Moore <kmoore@digium.com>
+
+ * res/res_pjsip/pjsip_options.c, res/res_pjsip.c,
+ main/rtp_engine.c: Fix dev-mode build on recent gcc
+
+2015-01-06 22:46 +0000 [r430252] Matthew Jordan <mjordan@digium.com>
+
+ * contrib/ast-db-manage/config/versions/371a3bf4143e_add_user_eq_phone_option_to_pjsip.py:
+ contrib/ast-db-manage: Correct down_revision path for
+ user_eq_phone When the user_eq_phone patch was backported to 13,
+ it referenced the downward revision that the PJSIP optimistic
+ encryption option also references. This creates a multi-path
+ upgrade Exception when generating the SQL files. This patch
+ corrects this in the 13 branch. Note that trunk, which already
+ contained both of these features, is unaffected by this problem.
+
+2015-01-06 17:52 +0000 [r430221-430227] George Joseph <george.joseph@fairview5.com>
+
+ * res/res_pjsip_mwi.c: res_pjsip_mwi: Change warning to notice When
+ res_pjsip loads and an endpoint auto-subscribes a mailbox for
+ mwi, if a contact hasn't registered yet, res_pjsip_mwi spits out
+ a warning. This is a perfectly normal situation though and
+ doesn't require something as serious as a warning. It's also self
+ correcting. The device will start getting mwi as soon as it
+ registers. This patch changes the warning to a notice. Tested-by:
+ George Joseph Review: https://reviewboard.asterisk.org/r/4314/
+
+ * bridges/bridge_native_rtp.c: bridge_native_rtp: Change
+ local/remote message from debug/2 to verb/4 Change the "Locally
+ bridged"/"Remotely bridged" messages from dbg/2 to verb/4.
+ Tested-by: George Joseph Review:
+ https://reviewboard.asterisk.org/r/4300/
+
+ * res/res_pjsip_outbound_registration.c, CHANGES:
+ outbound_registration: Add 'pjsip send register' and update 'send
+ unregister' The current behavior of 'pjsip send unregister' is to
+ send the unregister (REGISTER with 0 exp) but let the next
+ scheduled register proceed normally. I don't think that's a good
+ idea. If you unregister, it should stay unregistered until you
+ decide to start registrations again. So this patch just adds a
+ cancel_registration call to the current unregister_task to cancel
+ the timer. Of course, now you need a way to start registration
+ again so I've added a 'pjsip send register' command that
+ unregisters and cancels any existing registration (the same as
+ send unregister), then sends an immediate registration and starts
+ the timer back up again. Both changes also ripple to AMI. There's
+ a new PJSIPRegister command. There's no harm in calling either
+ command repeatedly. They don't care about the actual state.
+ Tested-by: George Joseph Review:
+ https://reviewboard.asterisk.org/r/4301/
+
+ * res/res_pjsip/location.c: pjsip cli: Fix sorting of contacts for
+ 'pjsip list contacts' For some reason I was using a hash
+ container instead of a list to gather the contacts for 'pjsip
+ list/show contacts' so even though I had a sort function, the
+ output wasn't sorted. This patch just changes the hash container
+ to a list container and the contacts now appear sorted in the
+ CLI. Tested-by: George Joseph Review:
+ https://reviewboard.asterisk.org/r/4305/
+
+2015-01-05 22:49 +0000 [r430200] Scott Griepentrog <sgriepentrog@digium.com>
+
+ * /, main/bridge_basic.c: bridge: avoid leaking channel during
+ blond transfer pt2 A blond transfer to a failed destination, when
+ followed by a recall attempt, lead to a leak of the reference to
+ the destination channel. In addition to correcting the regression
+ on the previous attempt (r429826) this fixes the leak and two
+ additional reference leaks on failures of bridge_import.
+ ASTERISK-24513 #close Review:
+ https://reviewboard.asterisk.org/r/4302/ ........ Merged
+ revisions 430199 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2015-01-05 17:56 +0000 [r430179-430181] Joshua Colp <jcolp@digium.com>
+
+ * CHANGES: pjsip: Document addition of 'PJSIP_AOR' and
+ 'PJSIP_CONTACT' in CHANGES file.
+
+ * funcs/func_pjsip_contact.c (added), res/res_pjsip_session.c,
+ include/asterisk/res_pjsip.h,
+ channels/pjsip/dialplan_functions.c,
+ include/asterisk/res_pjsip_session.h, funcs/func_pjsip_aor.c
+ (added), res/res_pjsip/location.c: pjsip: Add 'PJSIP_AOR' and
+ 'PJSIP_CONTACT' dialplan functions. The PJSIP_AOR dialplan
+ function allows inspection of configured AORs including what
+ contacts are currently bound to them. The PJSIP_CONTACT dialplan
+ function allows inspection of contacts in existence. These can
+ include both externally added (by way of registration) or
+ permanent ones. ASTERISK-24341 Reported by: xrobau Review:
+ https://reviewboard.asterisk.org/r/4308/
+
+2014-12-29 13:10 +0000 [r430145] Kinsey Moore <kmoore@digium.com>
+
+ * res/res_pjsip.c: PJSIP: Update transport method documentation
+ This updates the documentation for the 'method' configuration
+ option to be more verbose about the behaviors of values
+ 'unspecified' and 'default'. They do exactly the same thing which
+ is to select the default as defined by PJSIP which is currently
+ TLSv1. Review: https://reviewboard.asterisk.org/r/4264/
+
+2014-12-24 21:27 +0000 [r430127] Kevin Harwell <kharwell@digium.com>
+
+ * /, configs/samples/queues.conf.sample: app_queue: Update sample
+ conf documenation Updated the queues.conf.sample file to
+ explicitly state which channel queue variables are propagated to.
+ ASTERISK-24267 Reported by: Mitch Claborn ........ Merged
+ revisions 430126 from
+ http://svn.asterisk.org/svn/asterisk/branches/11
+
+2014-12-24 15:26 +0000 [r430083-430092] Matthew Jordan <mjordan@digium.com>
+
+ * res/res_pjsip.c,
+ contrib/ast-db-manage/config/versions/371a3bf4143e_add_user_eq_phone_option_to_pjsip.py
+ (added): res_pjsip: Backport missing commits for user_eq_phone
+ This backports the following from trunk, which were missed:
+ r427257 | file | 2014-11-04 16:31:16 -0600 (Tue, 04 Nov 2014) | 2
+ lines res_pjsip: Allow + at the beginning of a phone number when
+ user_eq_phone is enabled. r427259 | file | 2014-11-04 16:51:32
+ -0600 (Tue, 04 Nov 2014) | 2 lines res_pjsip: Apply the
+ 'user_eq_phone' setting to the To header as well. It also adds
+ the Alembic script for the option. ASTERISK-24643
+
+ * CHANGES, res/res_pjsip.c, include/asterisk/res_pjsip.h,
+ res/res_pjsip/config_global.c, res/res_pjsip_keepalive.c (added),
+ configs/samples/pjsip.conf.sample: res_pjsip_keepalive: Add
+ runtime configurable keepalive module for connection-oriented
+ transports. Note that this is backport from trunk of r425825.
+ This change adds a module which is configurable using the
+ keep_alive_interval setting in the global section that will send
+ a CRLF keep alive to all active connection-oriented transports at
+ the provided interval. This is useful because it can help keep
+ connections open through NATs. This functionality also exists
+ within PJSIP but can not be controlled at runtime and requires
+ recompiling it. Review: https://reviewboard.asterisk.org/r/4084/
+ ASTERISK-24644 #close
+
+ * res/res_pjsip/pjsip_configuration.c, res/res_pjsip_caller_id.c,
+ CHANGES, res/res_pjsip.c, include/asterisk/res_pjsip.h:
+ res_pjsip: Add 'user_eq_phone' option to add a 'user=phone'
+ parameter when applicable. Note that this is a backport of
+ r425804 from trunk. This change adds a configuration option which
+ adds a 'user=phone' parameter if the user portion of the request
+ URI or the From URI is determined to be a number. Review:
+ https://reviewboard.asterisk.org/r/4073/ ASTERISK-24643 #close
+
+2014-12-23 23:18 +0000 [r430059-430064] George Joseph <george.joseph@fairview5.com>
+
+ * res/res_pjsip/pjsip_options.c: pjsip_options: Fix continued
+ qualifies after endpoint/aor deletion If you remove an
+ endpoint/aor from pjsip.conf then do a core reload, qualifies
+ will continue even though the object are gone. This happens
+ because nothing clears out the qualify tasks. This patch
+ unschedules all existing qualify tasks before scheduling new ones
+ on reload. Tested-by: George Joseph Review:
+ https://reviewboard.asterisk.org/r/4290/
+
+ * tests/test_astobj2.c: test_astobj2: Fix warning for missing
+ trailing slash in category This patch adds a trailing slash to
+ the category for this test. No more warning. Tested-by: George
+ Joseph Review: https://reviewboard.asterisk.org/r/4295/
+
+2014-12-22 21:18 +0000 [r430010-430034] Richard Mudgett <rmudgett@digium.com>
+
+ * main/bridge_basic.c: DTMF atxfer: Setup recall channels as if the
+ transferee initiated the call. After the initial DTMF atxfer call
+ attempt to the transfer target fails to answer during a blonde
+ transfer, the recall callback channels do not get setup with
+ information from the initial transferrer channel. As a result,
+ the recall callback to the transferrer does not have callid,
+ channel variables, datastores, accountcode, peeraccount, COLP,
+ and CLID setup. A similar situation happens with the recall
+ callback to the transfer target but it is less visible. The
+ recall callback to the transfer target does not have callid,
+ channel variables, datastores, accountcode, peeraccount, and COLP
+ setup. * Added missing information to the recall callback
+ channels before initiating the call. callid, channel variables,
+ datastores, accountcode, peeraccount, COLP, and CLID * Set callid
+ of the transferrer channel on the DTMF atxfer controller thread
+ attended_transfer_monitor_thread(). * Added missing channel
+ unlocks and props unref to off nominal paths in
+ attended_transfer_properties_alloc(). ASTERISK-23841 #close
+ Reported by: Richard Mudgett Review:
+ https://reviewboard.asterisk.org/r/4259/
+
+ * /, main/logger.c, include/asterisk/_private.h, main/asterisk.c:
+ queue_log: Post QUEUESTART entry when Asterisk fully boots. The
+ QUEUESTART log entry has historically acted like a fully booted
+ event for the queue_log file. When the QUEUESTART entry was
+ posted to the log was broken by the change made by
+ ASTERISK-15863. * Made post the QUEUESTART queue_log entry when
+ Asterisk fully boots. This restores the intent of that log entry
+ and happens after realtime has had a chance to load. AST-1444
+ #close Reported by: Denis Martinez Review:
+ https://reviewboard.asterisk.org/r/4282/ ........ Merged
+ revisions 430009 from
+ http://svn.asterisk.org/svn/asterisk/branches/11
+
+2014-12-22 15:40 +0000 [r429983] Matthew Jordan <mjordan@digium.com>
+
+ * /, channels/chan_sip.c: chan_sip: Send CANCEL via original INVITE
+ destination even after UPDATE request Given the following
+ scenario: * Three SIP phones (A, B, C), all communicating via a
+ proxy with Asterisk * A call is established between A and B. B
+ performs a SIP attended transfer of A to C. B sets the call on
+ hold (A is hearing MOH) and dials the extension of C. While phone
+ C is ringing, B transfers the call (that is, what we typically
+ call a 'blond transfer'). * When the transfer completes, A hears
+ the ringing of phone C, while B is idle. In the SIP messaging for
+ the above scenario, a REFER request is sent to transfer the call.
+ When "sendrpid=yes" is set in sip.conf, Asterisk may send an
+ UPDATE request to phone C to update party information. This
+ update is sent directly to phone C, not through the intervening
+ proxy. This has the unfortunate side effect of providing route
+ information, which is then set on the sip_pvt structure for C. If
+ someone (e.g. B) is trying to get the call back (through a
+ directed pickup), Asterisk will send a CANCEL request to C.
+ However, since we have now updated the route set, the CANCEL
+ request will be sent directly to C and not through the proxy. The
+ phone ignores this CANCEL according to RFC3261 (Section 9.1).
+ This patch updates reqprep such that the route is not updated if
+ an UPDATE request is being sent while the INVITE state is
+ INV_PROCEEDING or INV_EARLY_MEDIA. This ensures that a subsequent
+ CANCEL request is still sent to the correct location. Review:
+ https://reviewboard.asterisk.org/r/4279 ASTERISK-24628 #close
+ Reported by: Karsten Wemheuer patches: issue.patch uploaded by
+ Karsten Wemheuer (License 5930) ........ Merged revisions 429982
+ from http://svn.asterisk.org/svn/asterisk/branches/11
+
+2014-12-22 00:17 +0000 [r429914] George Joseph <george.joseph@fairview5.com>
+
+ * res/res_pjsip_phoneprov_provider.c:
+ res_pjsip_phoneprovi_provider: Fix reload Reloading wasn't
+ working correctly because on a reload, the sorcery apply handler
+ was never being called for unchanged users. So, instead of using
+ an apply handler, I'm now iterating over all users. Works much
+ more reliably. Tested-by: George Joseph Review:
+ https://reviewboard.asterisk.org/r/4288/
+
+2014-12-20 20:57 +0000 [r429894] Joshua Colp <jcolp@digium.com>
+
+ * main/named_acl.c, /: acl: Fix reloading of configuration if
+ configuration file does not exist at startup. The named ACL code
+ incorrectly destroyed the config options information if loading
+ of the configuration file failed at startup. This would result in
+ reloading also failing even if a valid configuration file was put
+ in place. ASTERISK-23733 #close Reported by: Richard Kenner
+ ........ Merged revisions 429893 from
+ http://svn.asterisk.org/svn/asterisk/branches/11
+
+2014-12-19 20:54 +0000 [r429829-429868] Richard Mudgett <rmudgett@digium.com>
+
+ * /, res/res_http_websocket.c: res_http_websocket.c: Fix incorrect
+ use of sizeof in ast_websocket_write(). This won't fix the
+ reported issue but it is an incorrect use of sizeof.
+ ASTERISK-24566 Reported by: Badalian Vyacheslav ........ Merged
+ revisions 429867 from
+ http://svn.asterisk.org/svn/asterisk/branches/11
+
+ * channels/chan_dahdi.c, /: chan_dahdi: Don't ignore setvar when
+ using configuration section scheme. When the configuration
+ section scheme of chan_dahdi.conf is used (keyword dahdichan
+ instead of channel) all setvar= options are completely ignored.
+ No variable defined this way appears in the created DAHDI
+ channels. * Move the clearing of setvar values to after the
+ deferred processing of dahdichan. AST-1378 #close Reported by:
+ Guenther Kelleter Patch by: Guenther Kelleter ........ Merged
+ revisions 429825 from
+ http://svn.asterisk.org/svn/asterisk/branches/11
+
+2014-12-19 17:26 +0000 [r429827] Scott Griepentrog <sgriepentrog@digium.com>
+
+ * /, main/bridge_basic.c: bridge: avoid leaking channel during
+ blond transfer After a blond transfer (start attended and hang
+ up) to a destination that also hangs up without answer, the
+ Local;1 channel was leaked and would show up on core show
+ channels. This was happening because the attended state
+ blond_nonfinal_enter() resetting the props->transfer_target to
+ null while releasing it's own reference, which would later
+ prevent props from releasing another reference during
+ destruction. The change made here is simply to not assign the
+ target to NULL. ASTERISK-24513 #close Reported by: Mark Michelson
+ Review: https://reviewboard.asterisk.org/r/4262/ ........ Merged
+ revisions 429826 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-12-18 22:38 +0000 [r429784-429805] Richard Mudgett <rmudgett@digium.com>
+
+ * res/res_rtp_asterisk.c, channels/chan_dahdi.c, /: chan_dahdi.c,
+ res_rtp_asterisk.c: Change some spammy debug messages to level 5.
+ ASTERISK-24337 #close Reported by: Rusty Newton ........ Merged
+ revisions 429804 from
+ http://svn.asterisk.org/svn/asterisk/branches/11
+
+ * UPGRADE.txt, channels/sig_analog.c, /: chan_dahdi: Populate
+ CALLERID(ani2) for incoming calls in featdmf signaling mode. For
+ the featdmf signaling mode the incoming MF Caller-ID information
+ is formatted as follows:
+ *${CALLERID(ani2)}${CALLERID(ani)}#*${EXTEN}# Rather than
+ discarding the ani2 digits, populate the CALLERID(ani2) value
+ with what is received instead. AST-1368 #close Reported by: Denis
+ Martinez Patches: extract_ani2_for_featdmf_v11.patch (license
+ #5621) patch uploaded by Richard Mudgett ........ Merged
+ revisions 429783 from
+ http://svn.asterisk.org/svn/asterisk/branches/11
+
+2014-12-18 15:50 +0000 [r429763] Kevin Harwell <kharwell@digium.com>
+
+ * res/res_pjsip_sdp_rtp.c: res_pjsip_sdp_rtp: wrong bridge chosen
+ when the DTMF mode is not compatible A native rtp bridge was
+ being chosen (it shouldn't have been) when using two pjsip
+ channels with incompatible DTMF modes. This patch sets the rtp
+ instance property, AST_RTP_PROPERTY_DTMF, for the appropriate
+ DTMF mode(s) for pjsip. It was not being set before, meaning all
+ DTMF modes for pjsip were being treated as compatible, thus
+ native bridging would be chosen as the bridge type when it
+ shouldn't have been. ASTERISK-24459 #close Reported by: Yaniv
+ Simhi Review: https://reviewboard.asterisk.org/r/4265/
+
+2014-12-18 15:34 +0000 [r429739-429761] Mark Michelson <mmichelson@digium.com>
+
+ * res/res_pjsip_outbound_registration.c: Prevent potential infinite
+ outbound authentication loops in registration. Prior to this
+ patch, Asterisk would always respond to 401 responses to
+ registration attempts by trying to provide a registration with
+ authentication credentials. Even if subsequent attempts were
+ rejected with 401 responses, Asterisk would continue this
+ behavior. If authentication credentials were incorrect, this
+ could continue forever. With this patch, we keep track of whether
+ we have attempted authentication on an outbound registration
+ attempt. If we already have, we don not try again until the next
+ attempt. This prevents the infinite loop scenario. Review:
+ https://reviewboard.asterisk.org/r/4273
+
+ * main/manager.c: Prevent possible race condition on dual redirect
+ of channels in the same bridge. The
+ AST_FLAG_BRIDGE_DUAL_REDIRECT_WAIT flag was created to prevent
+ bridges from prematurely acting on orphaned channels in bridges.
+ The problem with the AMI redirect action was that it was setting
+ this flag on channels based on the presence of a PBX, not whether
+ the channel was in a bridge. Whether a channel has a PBX is
+ irrelevant, so the condition has been altered to check if the
+ channel is in a bridge. ASTERISK-24536 #close Reported by Niklas
+ Larsson Review: https://reviewboard.asterisk.org/r/4268
+
+ * channels/pjsip/dialplan_functions.c: Ensure the correct value is
+ returned for CHANNEL(pjsip, secure) Prior to this patch, we were
+ using the PJSIP dialog's secure flag to determine if a secure
+ transport was being used. Unfortunately, the dialog's secure flag
+ was only set if a SIPS URI were in use, as required by RFC 3261
+ sections 12.1.1 and 12.1.2. What we're interested in is not
+ dialog security, but transport security. This code change
+ switches to a model where we use the dialog's target URI to
+ determine what transport would be used to communicate, and then
+ check if that transport is secure. AST-1450 #close Reported by
+ John Bigelow Review: https://reviewboard.asterisk.org/r/4277
+
+2014-12-18 00:10 +0000 [r429699-429719] George Joseph <george.joseph@fairview5.com>
+
+ * res/res_pjsip_config_wizard.c: res_pjsip_config_wizard: fix
+ unload SEGV If certain pjsip modules aren't loaded, the wizard
+ causes a SEGV when it unloads. Added a check for the presense of
+ the object type wizard before trying to clean it up. Tested-by:
+ George Joseph
+
+ * res/res_pjsip_config_wizard.c: res_pjsip_config_wizard: Change
+ FILEUNCHANGED config_load2 flag determination The module now
+ applies the FILEUNCHANGED flag when both reloaded is specified
+ AND there's no last_config for the object type. Tested-by: George
+ Joseph Review: https://reviewboard.asterisk.org/r/4276/
+
+2014-12-17 09:54 +0000 [r429675] Walter Doekes <walter+asterisk@wjd.nu>
+
+ * addons/ooh323c/src/printHandler.c, apps/app_adsiprog.c,
+ channels/chan_unistim.c, main/udptl.c, res/res_rtp_asterisk.c, /,
+ channels/chan_sip.c, channels/vcodecs.c, res/res_crypto.c,
+ utils/astman.c, utils/smsq.c, main/utils.c, pbx/dundi-parser.c,
+ apps/app_getcpeid.c, channels/chan_iax2.c, channels/sig_pri.c,
+ res/res_pktccops.c, main/loader.c, channels/iax2/parser.c,
+ main/uuid.c, main/manager.c, channels/chan_misdn.c,
+ apps/app_osplookup.c, channels/misdn/ie.c, main/http.c,
+ apps/app_sms.c: Fix printf problems with high ascii characters
+ after r413586 (1.8). In r413586 (1.8) various casts were added to
+ silence gcc 4.10 warnings. Those fixes included things like: -out
+ += sprintf(out, "%%%02X", (unsigned char) *ptr); +out +=
+ sprintf(out, "%%%02X", (unsigned) *ptr); That works for low ascii
+ characters, but for the high range that yields e.g. FFFFFFC3 when
+ C3 is expected. This changeset: - fixes those casts to use the
+ 'hh' unsigned char modifier instead - consistently uses %02x
+ instead of %2.2x (or other non-standard usage) - adds a few 'h'
+ modifiers in various places - fixes a 'replcaes' typo -
+ dev/urandon typo (in 13+ patch) Review:
+ https://reviewboard.asterisk.org/r/4263/ ASTERISK-24619 #close
+ Reported by: Stefan27 (on IRC) ........ Merged revisions 429673
+ from http://svn.asterisk.org/svn/asterisk/branches/11 ........
+ Merged revisions 429674 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-12-16 17:53 +0000 [r429653] George Joseph <george.joseph@fairview5.com>
+
+ * res/res_pjsip_config_wizard.c: res_pjsip_config_wizard: fix test
+ breakage Fix test breakage caused by not checking for res_pjsip
+ before calling ast_sip_get_sorcery. Tested-by: George Joseph
+ Review: https://reviewboard.asterisk.org/r/4269/
+
+2014-12-16 16:38 +0000 [r429612-429633] Joshua Colp <jcolp@digium.com>
+
+ * /, channels/chan_sip.c: chan_sip: Allow T.38 switch-over when
+ SRTP is in use. Previously when SRTP was enabled on a channel it
+ was not possible to switch to T.38 as no crypto attributes would
+ be present. This change makes it so it is now possible. If a T.38
+ re-invite comes in SRTP is terminated since in practice you can't
+ encrypt a UDPTL stream. Now... if we were doing T.38 over RTP
+ (which does exist) then we'd have a chance but almost nobody does
+ that so here we are. ASTERISK-24449 #close Reported by: Andreas
+ Steinmetz patches: udptl-ignore-srtp-v2.patch submitted by
+ Andreas Steinmetz (license 6523) ........ Merged revisions 429632
+ from http://svn.asterisk.org/svn/asterisk/branches/11
+
+ * res/res_pjsip_t38.c: res_pjsip_t38: Fix T.38 failure when peer
+ reinvites immediately. If a remote endpoint reinvites to T.38
+ immediately the state machine will go into a peer reinvite state.
+ If a T.38 capable application (such as ReceiveFax) queries it
+ will receive this state. Normally the application will then
+ indicate so that the channel driver will queue up the T.38 offer
+ previously received. Once it receives this offer the application
+ will act normally and negotiate. The res_pjsip_t38 module
+ incorrectly partially squashed this indication. This would cause
+ the application to think the request had failed when in reality
+ it had actually worked. This change makes it so that no T.38
+ control frames (or indications) are squashed.
+
+2014-12-15 17:07 +0000 [r429592] George Joseph <george.joseph@fairview5.com>
+
+ * res/res_pjsip_phoneprov_provider.c,
+ configs/samples/pjsip_wizard.conf.sample (added), CHANGES,
+ res/res_pjsip_config_wizard.c (added): res_pjsip_config_wizard:
+ Allow streamlined config of common pjsip scenarios
+ res_pjsip_config_wizard ------------------ * This is a new module
+ that adds streamlined configuration capability for chan_pjsip.
+ It's targetted at users who have lots of basic configuration
+ scenarios like 'phone' or 'agent' or 'trunk'. Additional
+ information can be found in the sample configuration file at
+ config/samples/pjsip_wizard.conf.sample. Tested-by: George Joseph
+ Review: https://reviewboard.asterisk.org/r/4190/
+
+2014-12-15 15:36 +0000 [r429571] Mark Michelson <mmichelson@digium.com>
+
+ * res/res_pjsip_pubsub.c: Activate persistent subscriptions when
+ they are recreated. Prior to this change, recreating persistent
+ subscriptions would create the subscription but would not
+ activate it. This led to subscriptions being listed in the "NULL"
+ state by diagnostics and not sending NOTIFYs when expected.
+ Review: https://reviewboard.asterisk.org/r/4261
+
+2014-12-12 23:54 +0000 [r429542] George Joseph <george.joseph@fairview5.com>
+
+ * main/manager.c, include/asterisk/module.h,
+ include/asterisk/_private.h: loader: Move definition of
+ ast_module_reload from _private.h to module.h No functionality
+ change. Just move the definition of ast_module_reload from
+ _private.h to module.h so it can be public. Also removed the
+ include of _private.h from manager.c since ast_module_load was
+ the only reason for including it. Tested-by: George Joseph
+ Review: https://reviewboard.asterisk.org/r/4251/
+
+2014-12-12 23:40 +0000 [r429540] Richard Mudgett <rmudgett@digium.com>
+
+ * main/lock.c, /, include/asterisk/lock.h: DEBUG_THREADS: Fix
+ regression and lock tracking initialization problems. This patch
+ started with David Lee's patch at
+ https://reviewboard.asterisk.org/r/2826/ and includes a
+ regression fix introduced by the ASTERISK-22455 patch. The
+ initialization of a mutex's lock tracking structure was not
+ protected in a critical section. This is fine for any mutex that
+ is explicitly initialized, but a static mutex may have its lock
+ tracking double initialized if multiple threads attempt the first
+ lock simultaneously. * Added a global mutex to properly serialize
+ initialization of the lock tracking structure. The painful global
+ lock can be mitigated by adding a double checked lock flag as
+ discussed on the original review request. * Defer lock tracking
+ initialization until first use. * Don't be "helpful" and
+ initialize an uninitialized lock when DEBUG_THREADS is enabled.
+ Debug code is not supposed to fix or change normal code behavior.
+ We don't need a lock initialization race that would force a
+ re-setup of lock tracking. Lock tracking already handles
+ initialization on first use. * Properly handle allocation
+ failures of the lock tracking structure. * No need to initialize
+ tracking data in __ast_pthread_mutex_destroy() just to turn
+ around and destroy it. The regression introduced by
+ ASTERISK-22455 is the result of manipulating a pthread_mutex_t
+ struct outside of the pthread library code. The pthread_mutex_t
+ struct seems to have a global linked list pointer member that can
+ get changed by other threads. Therefore, saving and restoring the
+ contents of a pthread_mutex_t struct is a bad thing. Thanks to
+ Thomas Airmont for finding this obscure regression. * Don't
+ overwrite the struct ast_lock_track.reentr_mutex member to
+ restore tracking data in __ast_cond_wait() and
+ __ast_cond_timedwait(). The pthread_mutex_t struct must be
+ treated as a read-only opaque variable. Miscellaneous other items
+ fixed by this patch: * Match ast_suspend_lock_info() with
+ ast_restore_lock_info() in __ast_cond_timedwait(). * Made some
+ uninitialized lock sanity checks return EINVAL and try a
+ DO_THREAD_CRASH. * Fix bad canlog initialization expressions.
+ ASTERISK-24614 #close Reported by: Thomas Airmont Review:
+ https://reviewboard.asterisk.org/r/4247/ Review:
+ https://reviewboard.asterisk.org/r/2826/ ........ Merged
+ revisions 429539 from
+ http://svn.asterisk.org/svn/asterisk/branches/11
+
+2014-12-12 22:53 +0000 [r429518-429519] Matthew Jordan <mjordan@digium.com>
+
+ * res/res_agi.c: res/res_agi: Make Verbose message for 'stream
+ file' match other playbacks The Verbose message displayed when a
+ file is played back via 'stream file' was formatted differently
+ than other playbacks: * It didn't include the channel name * It
+ didn't include the channel language It does, however, include the
+ playback offset as well as any escape digits. That information
+ was kept; however, this patch updates the formatting to more
+ closely match the Verbose messages displayed when a file is
+ played back by 'control stream file', Playback, ControlPlayback,
+ or any other file playback operation.
+
+ * /: Add 11 merge properties
+
+2014-12-12 16:57 +0000 [r429497] Joshua Colp <jcolp@digium.com>
+
+ * main/format.c, main/codec.c, include/asterisk/format.h: media:
+ Fix crash when determining sample count of a frame during
+ shutdown. When shutting down Asterisk the codecs are cleaned up.
+ As a result anything attempting to get a codec based on ID or
+ details will find that no codec exists. This currently occurs
+ when determining the sample count of a frame. This code did not
+ take this situation into account. This change fixes this by
+ getting the codec directly from the format and eliminates the
+ lookup. This is both faster and also provides a guarantee that
+ the codec will exist and will be valid. ASTERISK-24604 #close
+ Reported by: Matt Jordan Review:
+ https://reviewboard.asterisk.org/r/4260/
+
+2014-12-12 15:30 +0000 [r429477] Kevin Harwell <kharwell@digium.com>
+
+ * channels/chan_pjsip.c: chan_pjsip: Race between channel answer
+ and bridge setup when using direct media When direct media is
+ enabled and a pjsip channel is answered a race would occur
+ between the handling of the answer and bridge setup. Sometimes
+ the media negotiation would take place after the native bridge
+ was setup. This resulted in a NULL media address, which in turn
+ resulted in Asterisk using its address as the remote media
+ address when sending a reinvite. This patch makes the chan_pjsip
+ answer handler synchronous thus alleviating the race condition
+ (the bridge won't start setting things up until after it
+ returns). ASTERISK-24563 #close Reported by: Steve Pitts Review:
+ https://reviewboard.asterisk.org/r/4257/
+
+2014-12-12 15:00 +0000 [r429457] David M. Lee <dlee@digium.com>
+
+ * res/res_pjsip_outbound_publish.c: Fix crash for sorcery
+ misconfigs res_pjsip_outbound_publish was missing the
+ CHECK_PJSIP_MODULE_LOADED() call in load_module, and would crash
+ with a segfault if res_pjsip declined to load. Review:
+ https://reviewboard.asterisk.org/r/4258/
+
+2014-12-12 14:12 +0000 [r429430-429433] Kinsey Moore <kmoore@digium.com>
+
+ * /, res/res_pjsip_sdp_rtp.c: PJSIP: Allow use of 'inactive'
+ streams for hold This allows use of the 'inactive' stream
+ direction identifier to be used for hold where 'sendonly' is
+ normally used. Some Seimens phones use 'inactive' and this change
+ allows music on hold to operate properly. Review:
+ https://reviewboard.asterisk.org/r/4252/ Reported by: Steve Pitts
+ ........ Merged revisions 429432 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+ * res/res_sorcery_config.c, /: Sorcery: Log when old config remains
+ in use This adds a log message notifying the user that a stale
+ configuration is in place upon reload when a config object fails
+ to load. This situation can end up causing confusion when the
+ object failed to load but exists from a previous config load
+ especially when the old config is significantly different from
+ the new config. Review: https://reviewboard.asterisk.org/r/4250/
+ Reported by: Thomas Thompson ........ Merged revisions 429429
+ from http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-12-12 13:05 +0000 [r429407-429409] Joshua Colp <jcolp@digium.com>
+
+ * res/res_pjsip_session.exports.in, channels/chan_pjsip.c,
+ res/res_pjsip_session.c, include/asterisk/res_pjsip_session.h:
+ res_pjsip_session: Delay sending BYE if a re-INVITE transaction
+ is in progress. Given the scenario where a PJSIP channel is in a
+ native RTP bridge with direct media and the channel is then hung
+ up the code will currently re-INVITE the channel back to Asterisk
+ and send a BYE at the same time. Many SIP implementations dislike
+ this greatly. This change makes it so that if a re-INVITE
+ transaction is in progress the BYE is queued to occur after the
+ completion of the transaction (be it through normal means or a
+ timeout). Review: https://reviewboard.asterisk.org/r/4248/
+
+ * res/res_pjsip_session.c: res_pjsip_session: Fix issue where a
+ declined media stream in a re-INVITE would fail SDP negotiation.
+ In the past the SDP negotiation within res_pjsip_session was made
+ more tolerant of certain situations. The only case where SDP
+ negotiation will fail is when a major error occurs during
+ negotiation. Receiving an already declined media stream is not
+ considered a major error. When producing the local SDP the logic
+ took this into account so on the initial INVITE the declined
+ media stream did not cause an SDP negotiation failure.
+ Unfortunately the logic for handling media streams with a handler
+ did not mirror this logic and considered an already declined
+ media stream an error and thus failed the SDP negotiation. This
+ change makes the logic between both situations match so only
+ under major errors will the SDP negotiation fail. ASTERISK-24607
+ #close Reported by: Matt Jordan Review:
+ https://reviewboard.asterisk.org/r/4254/
+
+2014-12-11 20:31 +0000 [r429387] Kevin Harwell <kharwell@digium.com>
+
+ * CHANGES: ARI/AMI: Include language in standard channel snapshot
+ output The CHANGES verbiage for the "language" addition had been
+ put under the wrong release. This moves it to be under 13.1 to
+ 13.2 changes. ASTERISK-24553 Reported by: Matt Jordan
+
+2014-12-11 17:21 +0000 [r429352-429379] Kinsey Moore <kmoore@digium.com>
+
+ * /: Recorded merge of revisions 429378 from
+ http://svn.asterisk.org/svn/asterisk/branches/12 ........ Fix
+ incorrect patch applied in r429354 The patch that was applied was
+ another pending patch. This swaps them out.
+
+ * /: Recorded merge of revisions 429354 from
+ http://svn.asterisk.org/svn/asterisk/branches/12 ........ Stasis:
+ Update unittest for channel snapshots This adjusts the unit test
+ for channel snapshots to take the new language key into account.
+
+ * tests/test_stasis_channels.c: Stasis: Update unittest for channel
+ snapshots This adjusts the unit test for channel snapshots to
+ take the new language key into account.
+
+2014-12-10 15:42 +0000 [r429326] Kevin Harwell <kharwell@digium.com>
+
+ * /, CHANGES: ARI/AMI: Include language in standard channel
+ snapshot output Adding information about including "language" in
+ the standard channel snapshot output to the CHANGES file. Note
+ the actual source changes have already been previously committed.
+ ASTERISK-24553 Reported by: Matt Jordan ........ Merged revisions
+ 429325 from http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-12-10 13:34 +0000 [r429273] Joshua Colp <jcolp@digium.com>
+
+ * res/res_http_websocket.c, res/res_pjsip_transport_websocket.c, /,
+ channels/chan_sip.c: res_http_websocket: Fix crash due to double
+ freeing memory when receiving a payload length of zero. Frames
+ with a payload length of 0 were incorrectly handled in
+ res_http_websocket. Provided a frame with a payload had been
+ received prior it was possible for a double free to occur. The
+ realloc operation would succeed (thus freeing the payload) but be
+ treated as an error. When the session was then torn down the
+ payload would be freed again causing a crash. The read function
+ now takes this into account. This change also fixes assumptions
+ made by users of res_http_websocket. There is no guarantee that a
+ frame received from it will be NULL terminated. ASTERISK-24472
+ #close Reported by: Badalian Vyacheslav Review:
+ https://reviewboard.asterisk.org/r/4220/ Review:
+ https://reviewboard.asterisk.org/r/4219/ ........ Merged
+ revisions 429270 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 429272 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-12-10 13:14 +0000 [r429246] Kinsey Moore <kmoore@digium.com>
+
+ * /, res/res_pjsip/pjsip_options.c: PJSIP: Fix assert on initial
+ mass qualify This fixes the MWI test regressions caused by
+ r429127 and ensures that contacts have non-zero qualify_frequency
+ before attempting scheduling. ........ Merged revisions 429245
+ from http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-12-09 20:46 +0000 [r429223] Scott Griepentrog <sgriepentrog@digium.com>
+
+ * main/asterisk.c: core: avoid possible asterisk -r crash from long
+ id When connecting to the remote console, an id string is first
+ provided that consts of the hostname, pid, and version. This is
+ parsed by the remote instance using a buffer that may be too
+ short, and can allow a buffer overrun because it is not
+ terminated. This patch adds termination and a larger buffer.
+ Review: https://reviewboard.asterisk.org/r/4182/
+
+2014-12-09 20:19 +0000 [r429175-429206] Kevin Harwell <kharwell@digium.com>
+
+ * res/ari/ari_model_validators.h, /, main/stasis_channels.c,
+ rest-api/api-docs/channels.json, res/ari/ari_model_validators.c,
+ main/manager_channels.c: ARI/AMI: Include language in standard
+ channel snapshot output The channel "language" was already part
+ of a channel snapshot, however is was not sent out over AMI or
+ ARI. This patch makes it so the channel "language" is included in
+ the appropriate AMI or ARI events. ASTERISK-24553 #close Reported
+ by: Matt Jordan Review: https://reviewboard.asterisk.org/r/4245/
+ ........ Merged revisions 429204 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+ * include/asterisk/rtp_engine.h, res/res_rtp_asterisk.c,
+ main/rtp_engine.c, /, channels/chan_sip.c: Direct Media calls
+ within private network sometimes get one way audio When endpoints
+ with direct_media enabled, behind a firewall (Asterisk on a
+ separate network) and were bridged sometimes Asterisk would send
+ the ip address of the firewall in the sdp to one of the phones in
+ the reinvite resulting in one way audio. When sending the
+ reinvite Asterisk will retrieve the media address from the
+ associated rtp instance, but if frames were being read this can
+ be overwritten with another address (in this case the
+ firewall's). This patch ensures that Asterisk uses the original
+ device address when using direct media. ASTERISK-24563 Reported
+ by: Steve Pitts Review: https://reviewboard.asterisk.org/r/4216/
+ ........ Merged revisions 429195 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+ * res/res_pjsip_outbound_publish.c: res_pjsip_outbound_publish:
+ stack overflow when using non-default sorcery wizard When using a
+ non-default sorcery wizard (in this instance realtime) for
+ outbound publishes Asterisk will crash after a stack overflow
+ occurs due to the code infinitely recursing. The fix entails
+ removing the outbound publish state dependency from the outbound
+ publish sorcery object and instead keeping an in memory container
+ that can be used to lookup the state when needed. ASTERISK-24514
+ #close Reported by: Mark Michelson Review:
+ https://reviewboard.asterisk.org/r/4178/
+
+2014-12-09 15:44 +0000 [r429153] Joshua Colp <jcolp@digium.com>
+
+ * res/ari/resource_channels.h, rest-api/api-docs/channels.json,
+ res/ari/resource_channels.c, CHANGES, res/res_ari_channels.c:
+ ari: Add support for specifying an originator channel when
+ originating. If an originator channel is specified when
+ originating a channel the linked ID of it will be applied to the
+ newly originated outgoing channel. This allows an association to
+ be made between the two so it is known that the originator has
+ dialed the originated channel. ASTERISK-24552 #close Reported by:
+ Matt Jordan Review: https://reviewboard.asterisk.org/r/4243/
+
+2014-12-09 14:00 +0000 [r429128] Kinsey Moore <kmoore@digium.com>
+
+ * /, res/res_pjsip/pjsip_options.c: PJSIP: Stagger outbound
+ qualifies This change staggers initiation of outbound qualify
+ (OPTIONS) attempts to reduce instantaneous server load and
+ prevent network congestion. Review:
+ https://reviewboard.asterisk.org/r/4246/ ASTERISK-24342 #close
+ Reported by: Richard Mudgett ........ Merged revisions 429127
+ from http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-12-15 Asterisk Development Team <asteriskteam@digium.com>
+
+ * Asterisk 13.1.0 Released.
+
+2014-12-10 Asterisk Development Team <asteriskteam@digium.com>
+
+ * Asterisk 13.1.0-rc2 Released.
+
+ * AST-2014-019: Fix crash when receiving a WebSocket packet with a
+ payload length of zero.
+
+ Frames with a payload length of 0 were incorrectly handled in
+ res_http_websocket. Provided a frame with a payload had been
+ received prior it was possible for a double free to occur. The
+ realloc operation would succeed (thus freeing the payload) but be
+ treated as an error. When the session was then torn down the payload
+ would be freed again causing a crash. The read function now takes
+ this into account.
+
+ This change also fixes assumptions made by users of
+ res_http_websocket. There is no guarantee that a frame received from
+ it will be NULL terminated.
+
+ ASTERISK-24472 #close
+ Reported by: Badalian Vyacheslav
+
+2014-12-08 Asterisk Development Team <asteriskteam@digium.com>
+
+ * Asterisk 13.1.0-rc1 Released.
+
+2014-12-08 16:53 +0000 [r429091] Matthew Jordan <mjordan@digium.com>
+
+ * rest-api/api-docs/playbacks.json, UPGRADE.txt,
+ rest-api/api-docs/channels.json, rest-api/api-docs/sounds.json,
+ rest-api/resources.json, CHANGES, include/asterisk/manager.h,
+ rest-api/api-docs/bridges.json,
+ rest-api/api-docs/recordings.json,
+ rest-api/api-docs/deviceStates.json,
+ rest-api/api-docs/endpoints.json,
+ rest-api/api-docs/mailboxes.json, rest-api/api-docs/events.json,
+ rest-api/api-docs/asterisk.json,
+ rest-api/api-docs/applications.json: AMI/ARI: Update version to
+ 2.6.0/1.6.0 respectively for new features AMI/ARI are getting a
+ few enhancements in the next release of Asterisk 13. Per semantic
+ versioning, that warrants a bump in the minor version number, as
+ it reflects a backwards compatible change. Hence, this commit.
+
+2014-12-08 16:41 +0000 [r429064-429089] Mark Michelson <mmichelson@digium.com>
+
+ * res/res_pjsip_session.c: Fix a crash that would occur when
+ receiving a 491 response to a reinvite. The reviewboard
+ description does a fine job of summarizing this, so here it is: A
+ reporter discovered that Asterisk would crash when attempting to
+ retransmit a reinvite that had previously received a 491
+ response. The crash occurred because a pjsip_tx_data structure
+ was being saved for reuse, but its reference count was not being
+ increased. The result was that the pjsip_tx_data was being freed
+ before we were actually done with it. When we attempted to re-use
+ the structure when re-sending the reinvite, Asterisk would crash.
+ The fix implemented here is not to try holding onto the
+ pjsip_tx_data at all. Instead, when we reschedule sending the
+ reinvite, we create a brand new pjsip_tx_data and send that
+ instead. Because of this change, there is no need for an
+ ast_sip_session_delayed_request structure to have a pjsip_tx_data
+ on it any more. So any code referencing its use has been removed.
+ When this initial fix was introduced, I encountered a second
+ crash when processing a subsequent 200 OK on a rescheduled
+ reinvite. The reason was that when rescheduling the reinvite, we
+ gave the wrong location for a response callback. This has been
+ fixed in this patch as well. ASTERISK-24556 #close Reported by
+ Abhay Gupta Review: https://reviewboard.asterisk.org/r/4233
+
+ * main/stasis_channels.c, CHANGES, res/ari/ari_model_validators.c,
+ main/manager_channels.c, main/channel.c,
+ res/ari/ari_model_validators.h,
+ include/asterisk/stasis_channels.h,
+ rest-api/api-docs/events.json, res/stasis/app.c: Add new AMI and
+ ARI events for connected line changes on a channel. The AMI event
+ is called NewConnectedLine and the ARI event is called
+ ChannelConnectedLine. ASTERISK-24554 #close Reported by Matt
+ Jordan Review: https://reviewboard.asterisk.org/r/4231
+
+2014-12-08 15:43 +0000 [r429062] Kinsey Moore <kmoore@digium.com>
+
+ * /, res/stasis/app.c, main/channel_internal_api.c,
+ res/stasis/stasis_bridge.c, res/stasis/app.h,
+ include/asterisk/channel.h, res/res_stasis.c, main/channel.c:
+ Stasis: Fix StasisStart/End order and missing events This
+ corrects several bugs that currently exist in the stasis
+ application code. * After a masquerade, the resulting channels
+ have channel topics that do not match their uniqueids **
+ Masquerades now swap channel topics appropriately * StasisStart
+ and StasisEnd messages are leaked to observer applications due to
+ being published on channel topics ** StasisStart and StasisEnd
+ publishing is now properly restricted to controlling apps via app
+ topics * Race conditions exist where StasisStart and StasisEnd
+ messages due to a masquerade may be received out of order due to
+ being published on different topics ** These messages are now
+ published directly on the app topic so this is now a non-issue *
+ StasisEnds are sometimes missing when sent due to masquerades and
+ bridge swaps into and out of Stasis() ** This was due to
+ StasisEnd processing adjusting message-sent flags after Stasis()
+ had already exited and Stasis() had been re-entered ** This was
+ corrected by adjusting these flags prior to sending the message
+ while the initial Stasis() application was still shutting down
+ Review: https://reviewboard.asterisk.org/r/4213/ ASTERISK-24537
+ #close Reported by: Matt DiMeo ........ Merged revisions 429061
+ from http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-12-06 18:16 +0000 [r429029-429033] Matthew Jordan <mjordan@digium.com>
+
+ * res/res_monitor.c, /: res/res_monitor: Reset in/out sample counts
+ on Monitor start When repeatedly starting/stopping a Monitor on a
+ channel, the accumulated in/out sample counts are never reset to
+ 0. This can cause inadvertent jumps in the recordings, as the
+ code in the channel core will determine incorrectly that a jump
+ in the recorded file position should occur. Setting the sample
+ counts to 0 simply reflects the initial state a Monitor should be
+ in when it is started, as this is the initial count that would be
+ on the channels at that time. ASTERISK-24573 #close Reported by:
+ Nuno Borges patches: 24573.patch uploaded by Nuno Borges (License
+ 6116) ........ Merged revisions 429031 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 429032 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+ * /, apps/app_meetme.c: apps/app_meetme: Apply default values on
+ initial load with no config file When the app_meetme module is
+ loaded without its configuration file, the module settings aren't
+ initialized. In particular, this impacts the use of logging
+ realtime members. This patch guarantees that we always set the
+ default module settings on initial load. Review:
+ https://reviewboard.asterisk.org/r/4242/ ASTERISK-24572 #close
+ Reported by: Nuno Borges patches: 24572.patch uploaded by Nuno
+ Borges (License 6116) ........ Merged revisions 429027 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 429028 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-12-05 17:06 +0000 [r429000] George Joseph <george.joseph@fairview5.com>
+
+ * tests/test_sorcery.c, main/sorcery.c, include/asterisk/test.h, /,
+ include/asterisk/sorcery.h: sorcery: Add additional observer
+ capabilities. Add new global, instance and wizard observers.
+ instance_created wizard_registered wizard_unregistered
+ instance_destroying instance_loading instance_loaded
+ wizard_mapped object_type_registered object_type_loading
+ object_type_loaded wizard_loading wizard_loaded Tested-by: George
+ Joseph Review: https://reviewboard.asterisk.org/r/4215/ ........
+ Merged revisions 428999 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-12-04 17:13 +0000 [r428865-428973] Matthew Jordan <mjordan@digium.com>
+
+ * /, main/test.c: main/test: Fix compilation issue on 32-bit
+ systems On a 32-bit system, a type of intmax_t will result in a
+ compilation warning when formatted as a 'long int'. Use the
+ format specifier of %jd (which was what was used originally in
+ manager.c) to format the JSON extracted integer on both
+ 32-/64-bit systems. ........ Merged revisions 428972 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+ * main/manager.c, /, main/test.c: main/test: Fix race condition
+ between AMI topic and Test Suite topic This patch fixes a race
+ condition between the raising of test AMI events (which drive
+ many tests in the Asterisk Test Suite) and other AMI events.
+ Prior to this patch, the Stasis messages published to the test
+ topic were not forwarded to the AMI topic. Instead, the code in
+ manager had a dedicated handler for test messages that was
+ independent of the topics forwarded to the AMI topic. This
+ results in no synchronization between the test messages and the
+ rest of the Stasis messages published out over AMI. In some test
+ with very tight timing constraints, this can result in out of
+ order messages and spurious test failures. Properly forwarding
+ the Test Suite topic to the AMI topic ensures that the messages
+ are synchronized properly. This patch does that, and moves the
+ message handling to the Stasis definition of the Test Suite
+ message in test.c as well. Review:
+ https://reviewboard.asterisk.org/r/4221/ ........ Merged
+ revisions 428945 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+ * tests/test_cel.c, /: tests/test_cel: Add
+ test_cel_attended_transfer_bridges_link to racey tests Despite
+ failing less often, the ordering of the ATTENDEDTRANSFER event
+ and the BRIDGE_EXIT event for the Alice and David channels is not
+ defined. This makes the test still fail. ........ Merged
+ revisions 428918 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+ * tests/test_cel.c, /: tests/test_cel: Fix CEL unit test failures
+ caused by attended transfer changes When the publication of
+ attended transfer messages were pushed to another thread, some
+ subtle race conditions were introduced with the CEL unit tests.
+ This patch fixes one of them, and pushes the other to
+ ASTERISK-22367, which already exists to fix another bouncy CEL
+ unit test. In particular, this patch fixes the
+ test_cel_attended_transfer_bridges_link test, and defers the
+ test_cel_attended_transfer_bridges_swap test to the
+ aforementioned JIRA issue. ASTERISK-22367 ........ Merged
+ revisions 428891 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+ * apps/app_voicemail.c, /: apps/app_voicemail: Fix crash with IMAP
+ when streams are opened simultaneously The UW IMAP library is
+ instrinsically not thread-safe, and relies upon higher level
+ applications to guarantee thread safety. For the most part, this
+ is provided by the vms object, which provides locking for
+ individual streams. Unfortunately, this is not sufficient for
+ calls to mail_open which create the IMAP stream. mail_open can,
+ on some systems, call into a UW IMAP specific function for
+ determining the address of a system based on a hostname,
+ ip_nametoaddr. In the ip6_unix implementation of this function,
+ static variables are used to hold parsing buffers. This can cause
+ a crash if multiple threads attempt to convert a hostname to an
+ address at the same time. Locking on a single mail stream is not
+ sufficient to prevent simultaneous access to these static
+ variables. In the IMAP library, this function can be called from
+ the mail_open and imap_status functions. As the imap_status
+ function is not used by app_voicemail, locking on access to
+ mail_open is sufficient to prevent any mangling of the buffers.
+ Review: https://reviewboard.asterisk.org/r/4188/ ASTERISK-24516
+ #close Reported by: David Duncan Ross Palmer Tested by: David
+ Duncan Ross Palmer patches: ASTERISK-24516.diff uploaded by David
+ Duncan Ross Palmer (License 6660) ........ Merged revisions
+ 428863 from http://svn.asterisk.org/svn/asterisk/branches/11
+ ........ Merged revisions 428864 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-12-02 21:53 +0000 [r428837] George Joseph <george.joseph@fairview5.com>
+
+ * CHANGES, /: CHANGES: Add item for new 'pjsip show identif(y|ies)
+ commands Tested-by: George Joseph ........ Merged revisions
+ 428836 from http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-12-02 19:03 +0000 [r428789-428815] Matthew Jordan <mjordan@digium.com>
+
+ * tests/test_stasis.c: tests/test_stasis: Resolve compilation
+ issues from Asterisk 12 merge When merging the changes up stream
+ in r428687, I missed the fact that the signature for
+ stasis_message_type_create was changed. This patch fixes the
+ compilation issues introduced by that merge.
+
+ * pbx/pbx_loopback.c, /: pbx/pbx_loopback: Speed up switches by
+ avoiding unneeded lookups This patch makes a small rearrangement
+ to only do dialplan lookups during loopback switches if the
+ pattern matches. Prior to this patch, the dialplan lookups were
+ always performed, even when the result would be discarded.
+ Dialplan lookups can be very costly if remote switches - like
+ DUNDi - are present. In those cases extension matching is sped up
+ considerably, making the issue of lost digits more manageable. As
+ collateral damage, 6 trailing spaces were killed. Review:
+ https://reviewboard.asterisk.org/r/4211 ASTERISK-24577 #close
+ Reported by: Birger Harzenetter patches: ast-loopback.patch
+ uploaded by Birger Harzenetter (License 5870) ........ Merged
+ revisions 428787 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 428788 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-12-02 12:20 +0000 [r428761] Joshua Colp <jcolp@digium.com>
+
+ * res/res_pjsip_refer.c, /: res_pjsip_refer: Fix issue where native
+ bridge may not occur upon completion of a transfer. There are two
+ methods within res_pjsip_refer for keeping track of the state of
+ a transfer. The first is a framehook which looks at frames
+ passing by to determine the state. The second subscribes to know
+ when the channel joins a bridge. In the case when the channel
+ joins the bridge the framehook is *NOT* removed and this prevents
+ the native RTP bridging technology from getting used. This change
+ gets the channel and if it still exists remove the framehook.
+ Review: https://reviewboard.asterisk.org/r/4218/ ........ Merged
+ revisions 428760 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-12-02 00:38 +0000 [r428731-428734] George Joseph <george.joseph@fairview5.com>
+
+ * /, include/asterisk/config.h, main/config.c: config: Create
+ ast_variable_find_in_list() Add const char
+ *ast_variable_find_in_list(const struct ast_variable *list, const
+ char *variable); ast_variable_find() requires a config category
+ to search whereas ast_variable_find_in_list() just needs the root
+ list element which is useful if you don't have a category.
+ Tested-by: George Joseph Review:
+ https://reviewboard.asterisk.org/r/4217/ ........ Merged
+ revisions 428733 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+ * /, res/res_pjsip_endpoint_identifier_ip.c,
+ res/res_pjsip/pjsip_cli.c: res_pjsip_endpoint_identifier_ip: Add
+ 'show identify(ies)' cli commands While troubleshooting other
+ things I realized there were no pjsip cli commands for identify.
+ This patch adds them. It also also fixes a reference leak when a
+ 'show endpoint' displayed identifies and properly sets the return
+ code if load_module can't allocate a cli formatter structure.
+ Tested-by: George Joseph Review:
+ https://reviewboard.asterisk.org/r/4212/ ........ Merged
+ revisions 428725 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-12-01 17:57 +0000 [r428687] Matthew Jordan <mjordan@digium.com>
+
+ * channels/chan_skinny.c, res/res_pjsip_mwi.c, tests/test_stasis.c,
+ res/res_pjsip_pubsub.c, res/res_pjsip_refer.c,
+ channels/chan_mgcp.c, main/stasis_cache.c, channels/chan_sip.c,
+ include/asterisk/stasis_internal.h, /, include/asterisk/stasis.h,
+ UPGRADE.txt, configs/samples/stasis.conf.sample,
+ res/parking/parking_applications.c, res/res_xmpp.c,
+ channels/chan_iax2.c, apps/app_queue.c,
+ res/res_stasis_device_state.c, channels/sig_pri.c,
+ include/asterisk/stasis_message_router.h, main/endpoints.c,
+ res/parking/parking_bridge_features.c, main/stasis.c,
+ channels/chan_dahdi.c, main/stasis_message_router.c: main/stasis:
+ Allow subscriptions to use a threadpool for message delivery
+ Prior to this patch, all Stasis subscriptions would receive a
+ dedicated thread for servicing published messages. In contrast,
+ prior to r400178 (see review
+ https://reviewboard.asterisk.org/r/2881/), the subscriptions
+ shared a thread pool. It was discovered during some initial work
+ on Stasis that, for a low subscription count with high message
+ throughput, the threadpool was not as performant as simply having
+ a dedicated thread per subscriber. For situations where a
+ subscriber receives a substantial number of messages and is
+ always present, the model of having a dedicated thread per
+ subscriber makes sense. While we still have plenty of
+ subscriptions that would follow this model, e.g., AMI, CDRs, CEL,
+ etc., there are plenty that also fall into the following two
+ categories: * Large number of subscriptions, specifically those
+ tied to endpoints/peers. * Low number of messages. Some
+ subscriptions exist specifically to coordinate a single message -
+ the subscription is created, a message is published, the delivery
+ is synchronized, and the subscription is destroyed. In both of
+ the latter two cases, creating a dedicated thread is wasteful
+ (and in the case of a large number of peers/endpoints, harmful).
+ In those cases, having shared delivery threads is far more
+ performant. This patch adds the ability of a subscriber to Stasis
+ to choose whether or not their messages are dispatched on a
+ dedicated thread or on a threadpool. The threadpool is
+ configurable through stasis.conf. Review:
+ https://reviewboard.asterisk.org/r/4193 ASTERISK-24533 #close
+ Reported by: xrobau Tested by: xrobau ........ Merged revisions
+ 428681 from http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-12-01 13:41 +0000 [r428632-428655] Joshua Colp <jcolp@digium.com>
+
+ * /, apps/app_record.c: app_record: Fix bug where using the 'k'
+ option and hanging up would trim 1/4 of a second of the
+ recording. The Record dialplan function trims 1/4 of a second
+ from the end of recordings in case they are terminated because of
+ DTMF. When hanging up, however, you don't want this to happen.
+ This change makes it so on hangup this does not occur.
+ ASTERISK-24530 #close Reported by: Ben Smithurst patches:
+ app_record_v2.diff submitted by Ben Smithurst (license 6529)
+ Review: https://reviewboard.asterisk.org/r/4201/ ........ Merged
+ revisions 428653 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 428654 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+ * main/channel.c: channel: Extend size of buffer for codecs in
+ "core show channeltype" CLI command. The static buffer for codecs
+ when invoking the "core show channeltype" CLI command did not
+ have enough room for all codecs. This has been extended so it
+ does. ASTERISK-24542 #close Reported by: snuffy patches:
+ channeltype-tech.diff submitted by snuffy (license 5024) Review:
+ https://reviewboard.asterisk.org/r/4204/
+
+2014-11-24 20:37 +0000 [r428602-428604] Richard Mudgett <rmudgett@digium.com>
+
+ * tests/test_channel_feature_hooks.c: test_channel_feature_hooks.c:
+ Fix unit test for DTMF hooks. Fix the failing
+ /channels/features/test_features_channel_dtmf unit test. DTMF
+ emulation does not work without a stream of packets to prod the
+ emulation code. Review: https://reviewboard.asterisk.org/r/4199/
+
+ * /, main/bridge.c, main/bridge_channel.c: DTMF hooks: Leaving
+ channels need to push any collected digits into the bridge. Any
+ partially collected DTMF digits for a DTMF hook need to be pushed
+ into the bridge when a channel leaves the bridging system as if
+ there were a timeout. Review:
+ https://reviewboard.asterisk.org/r/4199/ ........ Merged
+ revisions 428601 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-11-21 19:09 +0000 [r428572] Richard Mudgett <rmudgett@digium.com>
+
+ * main/manager.c, /: manager: Fix could not extend string messages.
+ When shutting down Asterisk that has an active AMI connection,
+ you get several "failed to extend from %d to %d" messages because
+ use of the EVENT_FLAG_SHUTDOWN attempts to add all AMI permission
+ strings to the event. * Created MAX_AUTH_PERM_STRING to use when
+ creating stack based struct ast_str variables used with the
+ authority_to_str() and user_authority_to_str() functions instead
+ of a variety of magic numbers that could be too small. * Added a
+ special check for EVENT_FLAG_SHUTDOWN to authority_to_str() so it
+ will not attempt to add all permission level strings. Review:
+ https://reviewboard.asterisk.org/r/4200/ ........ Merged
+ revisions 428570 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 428571 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-11-21 17:45 +0000 [r428544] George Joseph <george.joseph@fairview5.com>
+
+ * main/sorcery.c, /, res/res_pjsip_phoneprov_provider.c,
+ tests/test_sorcery.c: sorcery: Make is_object_field_registered
+ handle field names that are regexes. As a result of
+ https://reviewboard.asterisk.org/r/3305, res_sorcery_realtime was
+ tossing database fields that didn't have an exact match to a
+ sorcery registered field. This broke the ability to use regexes
+ as field names which manifested itself as a failure of
+ res_pjsip_phoneprov_provider which uses this capability. It also
+ broke handling of fields that start with '@' in realtime but I
+ don't think anyone noticed. This patch does the following... *
+ Modifies ast_sorcery_fields_register to pre-compile the name
+ regex. * Modifies ast_sorcery_is_object_field_registered to test
+ the regex if it exists instead of doing an exact strcmp. *
+ Modifies res_pjsip_phoneprov_provider with a few tweaks to get it
+ to work with realtime. Tested-by: George Joseph Review:
+ https://reviewboard.asterisk.org/r/4185/ ........ Merged
+ revisions 428543 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-11-21 02:16 +0000 [r428505] Matthew Jordan <mjordan@digium.com>
+
+ * main/bridge_basic.c: main/bridge_basic: Fix features regressions
+ introduced by r428165 In r428165, two bugs were introduced: *
+ Prior to entering the features retry loop, the buffer that holds
+ the collected digits is wiped. However, this inadvertently wipes
+ out the first collected digit on the first pass through, which is
+ obtained in ast_stream_and_wait. This caused all of the features
+ tests to fail. * If ast_app_dtget returns a hangup (-1), the loop
+ would retry incorrectly. If we detect a hangup, we have to stop
+ trying the feature. This patch fixes both issues. Review:
+ https://reviewboard.asterisk.org/r/4196/
+
+2014-11-20 16:36 +0000 [r428425] Mark Michelson <mmichelson@digium.com>
+
+ * main/acl.c, /: Fix error with mixed address family ACLs. Prior to
+ this commit, the address family of the first item in an ACL was
+ used to compare all incoming traffic. This could lead to traffic
+ of other IP address families bypassing ACLs. ASTERISK-24469
+ #close Reported by Matt Jordan Patches: ASTERISK-24469-11.diff
+ uploaded by Matt Jordan (License #6283) AST-2014-012 ........
+ Merged revisions 428402 from
+ http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
+ revisions 428417 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 428422 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-11-20 16:34 +0000 [r428413] Kevin Harwell <kharwell@digium.com>
+
+ * funcs/func_db.c, /: AST-2014-018 - func_db: DB Dialplan function
+ permission escalation via AMI. The DB dialplan function when
+ executed from an external protocol (for instance AMI), could
+ result in a privilege escalation. Asterisk now inhibits the DB
+ function from being executed from an external interface if the
+ live_dangerously option is set to no. ASTERISK-24534 Reported by:
+ Gareth Palmer patches: submitted by Gareth Palmer (license 5169)
+ ........ Merged revisions 428331 from
+ http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
+ revisions 428363 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 428409 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-11-20 16:13 +0000 [r428343] Jonathan Rose <jrose@digium.com>
+
+ * res/res_pjsip_acl.c, /: PJSIP ACLs: Fix ACLs not loading on
+ startup and apply/acl issues on contact The biggest problem this
+ patch fixes is that ACLs weren't previously being loaded when the
+ res_pjsip_acl module was loaded. Yikes. In addition, the ACL
+ options contact_permit and contact_acl were effectively
+ interpreted as contact_deny and this patch fixes that as well.
+ AST-1418 #close Reported by: Thomas Thompson Review:
+ https://reviewboard.asterisk.org/r/4120/ ASTERISK-24531 #close
+ Reported by: Matt Jordan Review:
+ https://reviewboard.asterisk.org/r/4171/ ........ Merged
+ revisions 428333 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-11-20 15:50 +0000 [r428339] Kevin Harwell <kharwell@digium.com>
+
+ * apps/app_confbridge.c, /: AST-2014-017 - app_confbridge:
+ permission escalation/ class authorization. Confbridge dialplan
+ function permission escalation via AMI and inappropriate class
+ authorization on the ConfbridgeStartRecord action. The CONFBRIDGE
+ dialplan function when executed from an external protocol (for
+ instance AMI), could result in a privilege escalation. Also, the
+ AMI action “ConfbridgeStartRecord” could also be used to execute
+ arbitrary system commands without first checking for system
+ access. Asterisk now inhibits the CONFBRIDGE function from being
+ executed from an external interface if the live_dangerously
+ option is set to no. Also, the “ConfbridgeStartRecord” AMI action
+ is now only allowed to execute under a user with system level
+ access. ASTERISK-24490 Reported by: Gareth Palmer ........ Merged
+ revisions 428332 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 428334 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-11-20 14:55 +0000 [r428302-428305] Joshua Colp <jcolp@digium.com>
+
+ * res/res_pjsip_refer.c, /: AST-2014-016: Fix crash when receiving
+ an in-dialog INVITE with Replaces in res_pjsip_refer. The
+ implementation of INVITE with Replaces in res_pjsip_refer did not
+ expect them to occur in-dialog. As a result it would incorrectly
+ attempt to hang up a channel it thought was under its control. In
+ reality the channel would be under the control of another thread.
+ When the other thread accessed the channel it would be accessing
+ freed memory and could crash. This change makes res_pjsip_refer
+ not act on an in-dialog INVITE with Replaces. ASTERISK-24528
+ #close Reported by: Joshua Colp ........ Merged revisions 428304
+ from http://svn.asterisk.org/svn/asterisk/branches/12
+
+ * channels/chan_pjsip.c, /: AST-2014-015: Fix race condition in
+ chan_pjsip when sending responses after a CANCEL has been
+ received. Due to the serialized architecture of chan_pjsip there
+ exists a race condition where a CANCEL may be received and
+ processed before responses (such as 180 Ringing, 183 Session
+ Progress, and 200 OK) are sent. Since the session is in an
+ unexpected state PJSIP will assert when this is attempted. This
+ change makes it so that these responses are not sent on
+ disconnected sessions. ASTERISK-24471 #close Reported by: yaron
+ nahum ........ Merged revisions 428301 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-11-19 19:31 +0000 [r428273] Corey Farrell <git@cfware.com>
+
+ * include/asterisk/stringfields.h, /: stringfields: Fix bug in
+ ast_string_fields_copy. ast_string_fields_copy relies on the fact
+ that __ast_string_field_release_active never previously zeroed
+ pool->used, so keeping the existing pointer was "ok". Now that
+ existing pools can be reset to 'empty', it is important to set
+ each field to __ast_string_field_empty after releasing the
+ memory. ASTERISK-24535 #close Reported by: Corey Farrell Review:
+ https://reviewboard.asterisk.org/r/4186/ ........ Merged
+ revisions 428272 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-11-19 17:13 +0000 [r428246] Richard Mudgett <rmudgett@digium.com>
+
+ * res/res_calendar.c, main/manager.c, /, channels/chan_sip.c,
+ channels/sip/security_events.c: ast_str: Fix improper member
+ access to struct ast_str members. Accessing members of struct
+ ast_str outside of the string manipulation API routines is
+ invalid since struct ast_str is supposed to be treated as opaque.
+ Review: https://reviewboard.asterisk.org/r/4194/ ........ Merged
+ revisions 428244 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 428245 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-11-19 12:40 +0000 [r428196-428222] Joshua Colp <jcolp@digium.com>
+
+ * res/res_pjsip_session.c, include/asterisk/res_pjsip.h,
+ include/asterisk/res_pjsip_session.h, res/res_pjsip_sdp_rtp.c,
+ res/res_pjsip/pjsip_configuration.c,
+ configs/samples/pjsip.conf.sample,
+ contrib/ast-db-manage/config/versions/eb88a14f2a_add_media_encryption_optimistic_to_pjsip.py
+ (added), CHANGES, res/res_pjsip.c: res_pjsip_sdp_rtp: Add support
+ for optimistic SRTP. Optimistic SRTP is the ability to enable
+ SRTP but not have it be a fatal requirement. If SRTP can be used
+ it will be, if not it won't be. This gives you a better chance of
+ using it without having your sessions fail when it can't be.
+ Encrypt all the things! Review:
+ https://reviewboard.asterisk.org/r/3992/
+
+ * res/res_pjsip_refer.c, /: res_pjsip_refer: Ensure Refer-To is
+ NULL terminated and parse it as a URI. There is no guarantee that
+ when we get a Refer-To that it will be NULL terminated. As the
+ URI parsing function requires it to be we now NULL terminate it.
+ Additionally parsing the Refer-To as a 'To' header is needless
+ and it can simply be done as a URI. This also fixes a problem
+ where certain Refer-To headers would not be parsed as a 'To'
+ header causing the REFER to fail. ASTERISK-24508 #close Reported
+ by: Beppo Mazzucato Review:
+ https://reviewboard.asterisk.org/r/4187/ ........ Merged
+ revisions 428195 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-11-18 18:54 +0000 [r428169] Richard Mudgett <rmudgett@digium.com>
+
+ * /, res/parking/parking_tests.c: parking_tests.c: Add missing
+ newline on a unit test message. ........ Merged revisions 428168
+ from http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-11-17 16:51 +0000 [r428145] Mark Michelson <mmichelson@digium.com>
+
+ * CHANGES, main/features_config.c,
+ configs/samples/features.conf.sample,
+ include/asterisk/features_config.h, main/bridge_basic.c: Allow
+ for transferer to retry when dialing an invalid extension. This
+ allows for a configurable number of attempts for a transferer to
+ dial an extension to transfer the call to. For Asterisk 13, the
+ default values are such that upgrading between versions will not
+ cause a behaivour change. For trunk, though, the defaults will be
+ changed to be more user-friendly. Review:
+ https://reviewboard.asterisk.org/r/4167
+
+2014-11-17 16:00 +0000 [r428119] Corey Farrell <git@cfware.com>
+
+ * /, channels/chan_sip.c: chan_sip: Fix theoretical leak of
+ p->refer. If transmit_refer is called when p->refer is already
+ allocated, it leaks the previous allocation. Updated code to
+ always free previous allocation during a new allocation. Also
+ instead of checking if we have a previous allocation, always
+ create a clean record. ASTERISK-15242 #close Reported by: David
+ Woolley Review: https://reviewboard.asterisk.org/r/4160/ ........
+ Merged revisions 428117 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 428118 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-11-17 15:27 +0000 [r428079-428115] Matthew Jordan <mjordan@digium.com>
+
+ * /, apps/confbridge/conf_state_multi_marked.c:
+ apps/app_confbridge: Ensure 'normal' users hear message when last
+ marked leaves When r428077 was made for ASTERISK-24522, it failed
+ to take into account users who are neither wait_marked nor
+ end_marked. These users are *also* supposed to hear the 'leader
+ has left the conference' message. Granted, this behaviour is a
+ bit odd; however, that is how it used to work... and behaviour
+ changes are not good. This patch ensures that if there are any
+ 'normal' users present when the last marked user leaves the
+ conference, the message will still be played to them. Note that
+ this regression was caught by the Asterisk Test Suite's
+ confbridge_nominal test, which has a quirky combination of users.
+ ........ Merged revisions 428113 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 428114 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+ * /, apps/confbridge/conf_state_multi_marked.c: app_confbridge:
+ Don't play leader leaving prompt if no one will hear it Consider
+ the following: - A marked user in a conference - One or more
+ end_marked only users in the conference When the marked users
+ leaves, we will be in the conf_state_multi_marked state. This
+ currently will traverse the users, kicking out any who have the
+ end_marked flags. When they are kicked, a full ast_bridge_remove
+ is immediately called on the channels. At this time, we also
+ unilaterally set the need_prompt flag. When the need_prompt flag
+ is set, we then playback a sound to the bridge informing everyone
+ that the leader has left; however, no one is left in the bridge.
+ This causes some odd behaviour for the end_marked users - they
+ are stuck waiting for the bridge to be unlocked. This results in
+ them waiting for 5 or 6 seconds of dead air before hearing that
+ they've been kicked. Unfortunately, we do have to keep the bridge
+ locked while we're playing back the 'leader-has-left' prompt. If
+ there are any wait_marked users in the conference, this behaviour
+ can't be easily changed - but we do make the case of the
+ end_marked users better with this patch. Review:
+ https://reviewboard.asterisk.org/r/4184/ ASTERISK-24522 #close
+ Reported by: Matt Jordan ........ Merged revisions 428077 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 428078 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-11-16 21:12 +0000 [r427979-428052] Joshua Colp <jcolp@digium.com>
+
+ * channels/chan_pjsip.c, /: chan_pjsip: Remove AOR check when
+ dialing and one is specified. The AOR value may contain the name
+ of an AOR or a full SIP URI. Checking if the AOR exists can't be
+ done as a result of this. ........ Merged revisions 428051 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+ * /, channels/chan_pjsip.c: chan_pjsip: Add additional log message
+ when an AOR is specified when dialing and it does not exist.
+ ASTERISK-24499 #close Reported by: Rusty Newton ........ Merged
+ revisions 428007 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+ * channels/chan_motif.c, channels/chan_pjsip.c, /: chan_motif /
+ chan_pjsip: Fix incorrect "No such module" messages when
+ reloading. For chan_motif the direct return value of the
+ underlying config options framework was passed back. This can
+ relay various states which the module loader would not interpet
+ as success. It has been changed so only on errors will it report
+ back an error. For chan_pjsip the code implemented a dummy reload
+ function which always returned an error. This has been removed as
+ all configuration is held within res_pjsip instead.
+ ASTERISK-23651 #close Reported by: Rusty Newton ........ Merged
+ revisions 427981 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+ * /, res/res_pjsip/pjsip_configuration.c: res_pjsip: Enforce
+ requirements for session timer minimum expiration period and
+ normal expiration period. This change enforces the requirements
+ in PJSIP for session timer configuration. The minimum expiration
+ period must be 90 seconds or higher and the normal expiration
+ period can not be lower than the minimum expiration period. If
+ either of these were done the code would assert at session setup
+ time. ASTERISK-24336 #close Reported by: Leon Rowland ........
+ Merged revisions 427978 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-11-15 16:56 +0000 [r427927-427954] Matthew Jordan <mjordan@digium.com>
+
+ * cel/cel_odbc.c, /: cel/cel_odbc: Provide microsecond precision in
+ 'eventtime' column when possible This patch adds microsecond
+ precision when inserting a CEL record into a table with an
+ "eventtime" column of type timestamp, instead of second
+ precision. The documentation (configs/cel_odbc.conf.sample) was
+ already saying that the eventtime column included microseconds
+ precision, but that was not the case. Also, without this patch,
+ if you had a table with an "eventtime" column of type varchar,
+ you had millisecond precision. With this patch, you also get
+ microsecond precision in this case. Review:
+ https://reviewboard.asterisk.org/r/3980 ASTERISK-24283 #close
+ Reported by: Etienne Lessard patches:
+ cel_odbc_time_precision.patch uploaded by Etienne Lessard
+ (License 6394) ........ Merged revisions 427952 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 427953 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+ * tests/test_cel.c: tests/test_cel: Unlock bridge on off nominal
+ paths If the test fails due to memory allocation errors, we may
+ as well attempt to unlock the bridge on the way out.
+
+2014-11-14 17:45 +0000 [r427902] Jonathan Rose <jrose@digium.com>
+
+ * configs/samples/cdr.conf.sample, main/cdr.c, /: Documentation:
+ Revise explanation of cdr.conf option 'Unanswered' ASTERISK-24279
+ #close Reported by: Matt Jordan Review:
+ https://reviewboard.asterisk.org/r/4109/ ........ Merged
+ revisions 427901 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-11-14 15:51 +0000 [r427876] Scott Griepentrog <sgriepentrog@digium.com>
+
+ * /, main/stun.c: stun: correct attribute string padding to match
+ rfc When sending the USERNAME attribute in an RTP STUN response,
+ the implementation in append_attr_string passed the actual
+ length, instead of padding it up to a multiple of four bytes as
+ required by the RFC 3489. This change adds separate variables for
+ the string and padded attributed lengths, and performs padding
+ correctly. Reported by: Thomas Arimont Review:
+ https://reviewboard.asterisk.org/r/4139/ ........ Merged
+ revisions 427874 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 427875 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-11-14 15:24 +0000 [r427870] Mark Michelson <mmichelson@digium.com>
+
+ * main/bridge.c, main/bridge_basic.c,
+ include/asterisk/stasis_bridges.h, tests/test_cel.c,
+ apps/app_queue.c, main/cel.c, main/stasis_bridges.c, /,
+ res/stasis/app.c: Fix race condition that could result in ARI
+ transfer messages not being sent. From reviewboard: "During blind
+ transfer testing, it was noticed that tests were failing
+ occasionally because the ARI blind transfer event was not being
+ sent. After investigating, I detected a race condition in the
+ blind transfer code. When blind transferring a single channel,
+ the actual transfer operation (i.e. removing the transferee from
+ the bridge and directing them to the proper dialplan location) is
+ queued onto the transferee bridge channel. After queuing the
+ transfer operation, the blind transfer Stasis message is
+ published. At the time of publication, snapshots of the channels
+ and bridge involved are created. The ARI subscriber to the blind
+ transfer Stasis message then attempts to determine if the bridge
+ or any of the involved channels are subscribed to by ARI
+ applications. If so, then the blind transfer message is sent to
+ the applications. The way that the ARI blind transfer message
+ handler works is to first see if the transferer channel is
+ subscribed to. If not, then iterate over all the channel IDs in
+ the bridge snapshot and determine if any of those are subscribed
+ to. In the test we were running, the lone transferee channel was
+ subscribed to, so an ARI event should have been sent to our
+ application. Occasionally, though, the bridge snapshot did not
+ have any channels IDs on it at all. Why? The problem is that
+ since the blind transfer operation is handled by a separate
+ thread, it is possible that the transfer will have completed and
+ the channels removed from the bridge before we publish the blind
+ transfer Stasis message. Since the blind transfer has completed,
+ the bridge on which the transfer occurred no longer has any
+ channels on it, so the resulting bridge snapshot has no channels
+ on it. Through investigation of the code, I found that attended
+ transfers can have this issue too for the case where a transferee
+ is transferred to an application." The fix employed here is to
+ decouple the creation of snapshots for the transfer messages from
+ the publication of the transfer messages. This way, snapshots can
+ be created to reflect what they are at the time of the transfer
+ operation. Review: https://reviewboard.asterisk.org/r/4135
+ ........ Merged revisions 427848 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-11-14 14:56 +0000 [r427846] Joshua Colp <jcolp@digium.com>
+
+ * /, apps/confbridge/conf_state_multi_marked.c: app_confbridge:
+ Play "leader has left" sound even when musiconhold is enabled.
+ Currently if the leader of a conference bridge leaves any
+ participant that has musiconhold enabled will not hear the
+ "leader has left" sound. This is because musiconhold is started
+ and THEN the sound is played. This change makes it so that the
+ sound is played and THEN musiconhold is started. This provides a
+ better experience for users as they may not have known previously
+ why they went back to musiconhold. Review:
+ https://reviewboard.asterisk.org/r/4177/ ........ Merged
+ revisions 427844 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 427845 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-11-14 14:24 +0000 [r427841] Mark Michelson <mmichelson@digium.com>
+
+ * res/res_pjsip.c, res/res_pjsip_pubsub.c, res/res_pjsip_session.c,
+ include/asterisk/res_pjsip.h: Fix race condition where duplicated
+ requests may be handled by multiple threads. This is the Asterisk
+ 13 version of the patch. The main difference is in the pubsub
+ code since it was completely refactored between Asterisk 12 and
+ 13. Review: https://reviewboard.asterisk.org/r/4175
+
+2014-11-13 22:03 +0000 [r427815] Kevin Harwell <kharwell@digium.com>
+
+ * /, res/res_pjsip_outbound_registration.c: res_pjsip_exten_state:
+ PJSIPShowSubscriptionsInbound causes crash When using a
+ non-default sorcery wizard (in this instance realtime) for
+ outbound registrations and after adding in an appropriate call to
+ ast_sorcery_apply_config() (since it is missing) Asterisk will
+ crash after a stack overflow occurs due to the code infinitely
+ recursing. The fix entails removing the outbound registration
+ state dependency from the outbound registration sorcery object
+ and instead keeping an in memory container that can be used to
+ lookup the state when needed. ASTERISK-24514 Reported by: Mark
+ Michelson Review: https://reviewboard.asterisk.org/r/4164/
+ ........ Merged revisions 427814 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-11-13 15:44 +0000 [r427789] Kinsey Moore <kmoore@digium.com>
+
+ * include/asterisk/stasis.h, include/asterisk/stasis_app.h,
+ res/stasis/app.h, res/res_stasis.c, /, res/stasis/app.c,
+ res/stasis/stasis_bridge.c: Stasis: Fix StasisEnd message
+ ordering This change corrects message ordering in cases where a
+ channel-related message can be received after a Stasis/ARI
+ application has received the StasisEnd message. The StasisEnd
+ message was being passed to applications directly without waiting
+ for the channel topic to empty. As a result of this fix, other
+ bugs were also identified and fixed: * StasisStart messages were
+ also being sent directly to apps and are now routed through the
+ stasis message bus properly * Masquerade monitor datastores were
+ being removed at the incorrect time in some cases and were
+ causing StasisEnd messages to not be sent * General refactoring
+ where necessary for the above * Unsubscription on StasisEnd
+ timing changes to prevent additional messages from following the
+ StasisEnd when they shouldn't A channel sanitization function
+ pointer was added to reduce processing and AO2 lookups. Review:
+ https://reviewboard.asterisk.org/r/4163/ ASTERISK-24501 #close
+ Reported by: Matt Jordan ........ Merged revisions 427788 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-11-13 00:00 +0000 [r427763] Matthew Jordan <mjordan@digium.com>
+
+ * main/rtp_engine.c, /: main/rtp_engine: Fix crash when processing
+ more than one RTCP report info block Asterisk - in
+ res_rtp_asterisk - only understands a single RTCP report info
+ block. When the RTCP information was refactored in the RTP Engine
+ to be pushed over the Stasis message bus, I put in the hooks into
+ the engine to handle multiple RTCP report info blocks, in the
+ hope that a future RTP implementation would be able to provide
+ that data. Unfortunately, res_rtp_asterisk has a tendency to
+ "lie": (1) It will send RTCP reports with a
+ reception_report_count greater than 1 (which is pulled directly
+ from the RTCP packet itself, so that part is correct) (2) It will
+ only provide a single report block When the rtp_engine goes to
+ convert this to a JSON blob, hilarity ensues as it looks for a
+ report block that doesn't exist. This patch updates the
+ rtp_engine to be a bit more skeptical about what it is presented
+ with. While this could also be fixed in res_rtp_asterisk, this
+ patch prefers to fix it in the engine for two reasons: (1) The
+ engine is designed to work with multiple RTP implementation, and
+ hence having it be more robust is a good thing (tm) (2)
+ res_rtp_asterisk's handling of RTCP information is "fun". It
+ should report the correct reception_report_count; ideally it
+ should also be giving us all of the blocks - but it is
+ *definitely* not designed to do that. Going down that road is a
+ non-trivial effort. Review:
+ https://reviewboard.asterisk.org/r/4158/ ASTERISK-24489 #close
+ Reported by: Gregory Malsack Tested by: Gregory Malsack
+ ASTERISK-24498 #close Reported by: Beppo Mazzucato Tested by:
+ Beppo Maazucato ........ Merged revisions 427762 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-11-12 20:39 +0000 [r427737] Corey Farrell <git@cfware.com>
+
+ * /, main/features.c: Fix leak in AMI Action Bridge Add missing
+ reference cleanup for newly created bridge. ASTERISK-24281
+ Reported by: Stefan Engström Review:
+ https://reviewboard.asterisk.org/r/4154/ ........ Merged
+ revisions 427736 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-11-12 16:12 +0000 [r427711] Joshua Colp <jcolp@digium.com>
+
+ * main/pbx.c, /: pbx: Fix off-nominal case where a freed extension
+ may still be used. If during the operation of adding an extension
+ a priority is added but fails it is possible for the extension to
+ be freed but still exist in the PBX core. If this occurs
+ subsequent lookups may try to access the extension and end up in
+ freed memory. This change removes the extension from the PBX core
+ when the priority addition fails and then frees the extension.
+ ASTERISK-24444 #close Reported by: Leandro Dardini Review:
+ https://reviewboard.asterisk.org/r/4162/ ........ Merged
+ revisions 427709 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 427710 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-11-12 13:46 +0000 [r427684] Corey Farrell <git@cfware.com>
+
+ * codecs/ilbc, /, tests, codecs/speex, apps/confbridge,
+ Makefile.rules: Fix compiler error when using ./configure
+ --enable-dev-mode --enable-coverage When DONT_OPTIMIZE is enabled
+ with dev-mode, it causes a shadow compilation to be done with
+ output to /dev/null. This can cause errors with coverage when GCC
+ attempts to write to /dev/null.gcno. This change disables
+ coverage for the shadow compilation. ASTERISK-24502 #close
+ Reported by: Corey Farrell Review:
+ https://reviewboard.asterisk.org/r/4151/ ........ Merged
+ revisions 427682 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 427683 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-11-09 08:00 +0000 [r427643] Corey Farrell <git@cfware.com>
+
+ * main/manager.c, /: manager: Fix HTTP connection reference leaks.
+ Fix reference leak that happens if (session && !blastaway).
+ ASTERISK-24505 #close Reported by: Corey Farrell Review:
+ https://reviewboard.asterisk.org/r/4153/ ........ Merged
+ revisions 427641 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 427642 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-11-09 00:38 +0000 [r427583-427615] Matthew Jordan <mjordan@digium.com>
+
+ * channels/chan_mgcp.c, /: channels/chan_mgcp: Fix regression which
+ causes gateways to be skipped In r227276, a while loop was turned
+ into a for loop. Unfortunately, a portion of the while loop was
+ left in the code such that, when a static gateway is encountered
+ in the list of MGCP gateways, the next gateway would be skipped.
+ At best, we would simply flip past a gateway; at worst, this
+ could lead to a crash. ASTERISK-24500 #close Reported by: Xavier
+ Hienne patches: chan_mgcp.patch uploaded by Xavier Hienne
+ (License 6657) ........ Merged revisions 427613 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 427614 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+ * /, addons/chan_mobile.c: addons/chan_mobile: Increase buffer size
+ of UCS2 encoded SMS messages When UCS2 character encoding is
+ used, one symbol in national language can be expanded to 4 bytes.
+ The current buffer used for receiving message in do_monitor_phone
+ is 256 bytes, which is not large enough for incoming messages.
+ For example: * AT+CMGR phone response prefix '+CMGR: "REC
+ UNREAD","+7**********",,"14/10/29,13:31:39+12"\r\n' - 60 bytes *
+ SMS body with UCS2 encoding (max) - 280 bytes * AT+CMGR phone
+ response suffix '\r\n\r\nOK\r\n' - 8 bytes * Terminating null
+ character - 1 byte This results in a needed buffer size of 349
+ bytes. Hence, this patch opts for a 350 byte buffer.
+ ASTERISK-24468 #close Reported by: Dmitriy Bubnov patches:
+ chan_mobile-1_8.diff uploaded by Dmitriy Bubnov (License 6651)
+ chan_mobile-trunk.diff uploaded by Dmitry Bubnov (License 6651)
+ ........ Merged revisions 427607 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 427610 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+ * apps/app_voicemail.c: app_voicemail: Fix enhancement that allowed
+ multiple recipients in To: header An issue existed in r420577,
+ which added multiple recipients to voicemail emails. The patch,
+ when looking at the intended recipients, looked ahead for the '|'
+ character inside a while loop which already had pulled out the
+ appropriate field parsing on the '|' character. This would cause
+ it to skip the recipients. This patch fixes it such that it
+ relies completely on the while loop to parse through the e-mail
+ fields. Note that the original author of the patch looked at this
+ fix and approved it. ASTERISK-24250 #close Reported by: abelbeck
+ patches: voicemail-420577-to-comma-fix.diff uploaded by abelbeck
+ (License 5903)
+
+ * /, bridges/bridge_native_rtp.c: bridge_native_rtp: Fix T.38
+ issues with remote bridges After r425242 the
+ fax/sip/directmedia_reinvite_t38 test started failing due to the
+ surviving channel not being re-INVITEd back from T.38 to audio.
+ This patch fixes that bug - a deeper explanation of what happened
+ follows. When two RTP channels are in a native bridge, the
+ bridging layer will investigate each via the get_rtp_info glue
+ callback. This callback returns the native bridge preference of
+ the channel *at that moment in time* (that part is key). At
+ different points during the bridging, the native bridging layer
+ will inform the RTP capable channels of the status of the bridge
+ via the update_peer glue callback. In a T.38 scenario with audio
+ direct media, the sequence of events will often look like the
+ following: * SIP/A and SIP/B both have audio and enter a native
+ bridge. * Asterisk re-INVITEs audio between SIP/A and SIP/B
+ directly (via an update_peer callback). * SIP/A sends a re-INVITE
+ to T.38, which causes Asterisk to send a re-INVITE to T.38 to
+ SIP/B. Assuming everyone 200 OKs the process, the UDPTL stack
+ receives UDPTL packets in Asterisk from both endpoints. From the
+ perspective of the channels, we are now in a local bridge for
+ T.38, even though we are technically still in a remote bridge in
+ bridge_native_rtp. (YAY!) * When one side hangs up,
+ bridge_native_rtp is told to stop bridging. It then re-evaluates
+ the channels and asks them how they are bridged - and since T.38
+ is enabled, they reply with a Local bridge (which is correct),
+ but is wrong because the audio portion is still technically in a
+ remote bridge. * Asterisk releases the surviving channel, whose
+ audio is *not* re-INVITED back to Asterisk as bridge_native_rtp
+ incorrectly assumes that it was in a local bridge. Ironically,
+ prior to r425242, this used to work mostly due to a fluke in the
+ bridging layer. The purpose of the get_rtp_info callback
+ shouldn't be modified: it should tell the bridging layer what
+ kind of bridge the channel prefers at that moment in time. If you
+ have T.38 enabled, that *must* be a local bridge, as the UDPTPL
+ stack must be in the media path. As such, this patch does not
+ modify that part of the code. However, we have to tell the
+ channels to re-evaluate themselves when they come out of a native
+ bridge, since we can no longer trust the get_rtp_info callbacks
+ when the native bridge is being stopped. Something else may have
+ changed in the channels, and they may now be lying to us. As
+ such, this patch makes it so that we unilaterally tell the
+ channels that they are no longer bridged via the update_peer
+ callback. This is actually what the channels expect anyway: code
+ in both chan_sip and chan_pjsip's callbacks look at the T.38
+ state and - if they were in T.38 - send a re-INVITE to get the
+ audio back to Asterisk. Review:
+ https://reviewboard.asterisk.org/r/4157/ ........ Merged
+ revisions 427582 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-11-08 18:17 +0000 [r427557] Corey Farrell <git@cfware.com>
+
+ * /, channels/chan_console.c: chan_console: Fix reference leaks to
+ pvt. Fix a bunch of calls to get_active_pvt where the reference
+ is never released. ASTERISK-24504 #close Reported by: Corey
+ Farrell Review: https://reviewboard.asterisk.org/r/4152/ ........
+ Merged revisions 427554 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 427555 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-11-06 19:22 +0000 [r427494-427512] Richard Mudgett <rmudgett@digium.com>
+
+ * apps/app_agent_pool.c, /: app_agent_pool: Made agent alert
+ interruptable by DTMF. Made agent able to interrupt the alerting
+ beep playback with DTMF. Any digit can interrupt if the call does
+ not need to be acknowledged. Only the first digit of the
+ acknowledgement can interrupt if the call needs to be
+ acknowledged. The agent interrupting the alerting playback builds
+ on the ASTERISK-24447 patch because it knows what digit
+ interrupted the playback and needs to be able to pass that digit
+ to the DTMF hook digit collection code. ASTERISK-24257 #close
+ Reported by: Steve Pitts Review:
+ https://reviewboard.asterisk.org/r/4123/ ........ Merged
+ revisions 427508 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+ * /, include/asterisk/bridge_channel.h, main/bridge_channel.c:
+ Bridge DTMF hooks: Made audio pass from the bridge while waiting
+ for more matching digits. * Made collecting DTMF digits for the
+ DTMF feature hooks pass frames from the bridge. * Made collecting
+ DTMF digits possible by other bridge hooks if there is a need.
+ ASTERISK-24447 #close Reported by: Richard Mudgett Review:
+ https://reviewboard.asterisk.org/r/4123/ ........ Merged
+ revisions 427493 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-11-06 18:20 +0000 [r427491] Joshua Colp <jcolp@digium.com>
+
+ * /, res/res_pjsip/pjsip_distributor.c: res_pjsip: Ensure in-dialog
+ responses have an endpoint associated. When handling incoming
+ messages we determine if it is associated with a dialog. If so we
+ use that to determine what serializer and endpoint to use for the
+ message. Previously this would pass the endpoint to the endpoint
+ lookup module to actually place the endpoint completely on the
+ message. For in-dialog responses, however, this did not occur as
+ dialog processing took over and the endpoint lookup did not
+ occur. This change just places the endpoint in the expected spot
+ immediately instead of relying on the endpoint lookup module.
+ In-dialog responses thus have the expected endpoint. AST-1459
+ #close Review: https://reviewboard.asterisk.org/r/4146/ ........
+ Merged revisions 427490 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-11-06 12:13 +0000 [r427384-427466] Corey Farrell <git@cfware.com>
+
+ * main/file.c, /: main/file.c: fix possible extra ast_module_unref
+ to format modules. fn_wrapper only adds a reference to the
+ format's module if the file was able to be opened. If not this
+ causes an unmatched ast_module_unref in filestream_destructor.
+ Move ast_module_ref to get_stream. ASTERISK-24492 #close Reported
+ by: Corey Farrell Review:
+ https://reviewboard.asterisk.org/r/4149/ ........ Merged
+ revisions 427464 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 427465 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+ * res/res_hep.c, /: res_hep: fix major leak that occurs when config
+ is missing or enabled=no. Add missing unreference in
+ hepv3_send_packet. ASTERISK-24491 #close Reported by: Zane Conkle
+ Tested by: Zane Conkle Review:
+ https://reviewboard.asterisk.org/r/4150/ ........ Merged
+ revisions 427400 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+ * /, main/utils.c, include/asterisk/stringfields.h: Fix unintential
+ memory retention in stringfields. * Fix missing / unreachable
+ calls to __ast_string_field_release_active. * Reset pool->used to
+ zero when the current pool->active reaches zero. ASTERISK-24307
+ #close Reported by: Etienne Lessard Tested by: ibercom, Etienne
+ Lessard Review: https://reviewboard.asterisk.org/r/4114/ ........
+ Merged revisions 427380 from
+ http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
+ revisions 427381 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 427382 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-11-06 02:37 +0000 [r427356] George Joseph <george.joseph@fairview5.com>
+
+ * tests/test_strings.c, /: test_strings: Remove string tests that
+ exercise asserts. Since unit tests are run with DO_CRASH, those
+ tests were causing the test to fail. Tested-by: George Joseph
+ ........ Merged revisions 427354 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 427355 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-11-05 19:52 +0000 [r427334] Mark Michelson <mmichelson@digium.com>
+
+ * res/res_pjsip/config_system.c, configs/samples/pjsip.conf.sample,
+ res/res_pjsip.c: Make the disable_tcp_switch PJSIP system object
+ enabled by default. Testing has shown repeatedly that PJSIP's
+ default behavior of switching automatically to TCP for large
+ messages can cause issues. The most common issues are that
+ devices that we are communicating with do not handle the switch
+ to TCP gracefully, thus causing situations such as broken calls
+ or broken subscriptions. Now, in order to have this behavior
+ happen, you must opt into it. The sample file has been updated to
+ warn that enabling the TCP switch behavior may cause issues for
+ you, so use at your own risk.
+
+2014-11-05 12:18 +0000 [r427303] Joshua Colp <jcolp@digium.com>
+
+ * res/res_pjsip_multihomed.c, /: res_pjsip_multihomed: Add logging
+ during startup to aid debugging if local DNS is misbehaving. This
+ change adds a bit of logging so if the local DNS is misbehaving
+ it is easier to track down what is going on and where Asterisk
+ may be hanging. ASTERISK-24438 #close Reported by: Melissa
+ Shepherd Review: https://reviewboard.asterisk.org/r/4148/
+ ........ Merged revisions 427300 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-11-05 00:15 +0000 [r427228-427276] George Joseph <george.joseph@fairview5.com>
+
+ * pbx/pbx_config.c, main/config.c, tests/test_strings.c,
+ include/asterisk/utils.h, /, main/utils.c: config: Make
+ text_file_save and 'dialplan save' escape semicolons in values.
+ When a config file is read, an unescaped semicolon signals
+ comments which are stripped from the value before it's stored.
+ Escaped semicolons are then unescaped and become part of the
+ value. Both of these behaviors are normal and expected. When the
+ config is serialized either by 'dialplan save' or
+ AMI/UpdateConfig however, the now unescaped semicolons are
+ written as-is. If you actually reload the file just saved, the
+ unescaped semicolons are now treated as start of comments. Since
+ true comments are stripped on read, any semicolons in
+ ast_variable.value must have been escaped originally. This patch
+ re-escapes semicolons in ast_variable.values before they're
+ written to file either by 'dialplan save' or
+ config/ast_config_text_file_save which is called by
+ AMI/UpdateConfig. I also fixed a few pre-existing formatting
+ issues nearby in pbx_config.c Tested-by: George Joseph
+ ASTERISK-20127 #close Review:
+ https://reviewboard.asterisk.org/r/4132/ ........ Merged
+ revisions 427275 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+ * main/config.c, /: config: BUG: Restore ability for non-templ to
+ be used as base objs in config. My recent refactor of config.c
+ accidentally removed the capability for an object to inherit from
+ a non-template object. This patch restores the capability to
+ inherit from both template and non-template objects. Tested-by:
+ George Joseph Reported-by: Scott Griepentrog ASTERISK-24487
+ #close Review: https://reviewboard.asterisk.org/r/4147/ ........
+ Merged revisions 427227 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-11-04 19:44 +0000 [r427181-427204] Corey Farrell <git@cfware.com>
+
+ * funcs/func_talkdetect.c, /: func_talkdetect: Fix stasis message
+ leak in audiohook callback. ASTERISK-24482 #close Reported by:
+ Corey Farrell Review: https://reviewboard.asterisk.org/r/4142/
+ ........ Merged revisions 427203 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+ * /, res/res_http_websocket.c: res_http_websockets: Fix extra unref
+ of module In websocket_add_protocol_internal is used to add the
+ "echo" protocol, but ast_websocket_remove_protocol is used to
+ remove it. This causes an extra call to ast_module_unref.
+ ASTERISK-24480 #close Reported by: Corey Farrell Review:
+ https://reviewboard.asterisk.org/r/4140/ ........ Merged
+ revisions 427200 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+ * main/app.c: Fix crash caused by merge error on review 4138 When
+ merging from 12 to 13 there were conflicts, I mistakenly had the
+ loop run ast_closestream(others[0]) when it should be
+ ast_closestream(others[x]).
+
+2014-11-03 18:15 +0000 [r427130] Richard Mudgett <rmudgett@digium.com>
+
+ * /, res/res_pjsip/config_system.c, UPGRADE.txt,
+ configs/samples/pjsip.conf.sample, res/res_pjsip.c: res_pjsip:
+ Add disable_tcp_switch option. When a packet exceeds the MTU,
+ pjproject will switch from UDP to TCP. In some circumstances (on
+ some networks), this can cause some issues with messages not
+ getting sent to the correct destination - and can also cause
+ connections to get dropped due to quirks in pjproject deciding to
+ terminate TCP connections with no messages. While fixing the
+ routing/messaging issues is important, having a configuration
+ option in Asterisk that tells pjproject to not switch over to TCP
+ would be useful. That way, if some glitch is discovered on some
+ other network/site, we can at least disable the behavior until a
+ fix is put into place. AFS-197 #close Review:
+ https://reviewboard.asterisk.org/r/4137/ ........ Merged
+ revisions 427129 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-11-03 02:34 +0000 [r427021-427089] Corey Farrell <git@cfware.com>
+
+ * apps/app_voicemail.c, /: Fix compile error caused by review 4138
+ There is no procedure called ast_closeframe, fix code to use
+ ast_closestream. Reported By: Matt Jordan ........ Merged
+ revisions 427087 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 427088 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+ * main/app.c, apps/app_voicemail.c, /: Fix ast_writestream leaks
+ Fix cleanup in __ast_play_and_record where others[x] may be
+ leaked. This was caught where prepend != NULL && outmsg != NULL,
+ once realfile[x] == NULL any further others[x] would be leaked. A
+ cleanup block was also added for prepend != NULL && outmsg ==
+ NULL. 11+: Fix leak of ast_writestream recording_fs in
+ app_voicemail:leave_voicemail. ASTERISK-24476 #close Reported by:
+ Corey Farrell Review: https://reviewboard.asterisk.org/r/4138/
+ ........ Merged revisions 427023 from
+ http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
+ revisions 427024 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 427025 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+ * /, main/abstract_jb.c: func_jitterbuffer: fix frame leaks. Fix
+ code paths where it is possible for frames to leak. Fix
+ uninitialized variable in jb_get_fixed and jb_get_adaptive.
+ ASTERISK-22409 #related Reported by: Corey Farrell Review:
+ https://reviewboard.asterisk.org/r/4128/ ........ Merged
+ revisions 427019 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 427020 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-11-02 01:01 +0000 [r426996] Matthew Jordan <mjordan@digium.com>
+
+ * /, res/res_stasis.c: res/res_stasis: Fix crash on module unload
+ while performing operation When the res_stasis module is
+ unloaded, it will dispose of the apps_registry container. This is
+ a problem if an ARI operation is in flight that attempts to use
+ the registry, as the shutdown occurs in a separate thread. This
+ patch adds some sanity checks to the various routines that access
+ the registry which cause the operations to fail if the
+ apps_registry does not exist. Crash caught by the Asterisk Test
+ Suite. ........ Merged revisions 426995 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-10-31 16:50 +0000 [r426934] Tzafrir Cohen <tzafrir.cohen@xorcom.com>
+
+ * Makefile, /: install init.d files on GNU/kFreeBSD Review:
+ https://reviewboard.asterisk.org/r/4118/ ........ Merged
+ revisions 426926 from
+ http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
+ revisions 426927 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 426933 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-10-31 16:40 +0000 [r426924-426930] Scott Griepentrog <sgriepentrog@digium.com>
+
+ * /, configs/samples/pjsip.conf.sample, res/res_pjsip.c: pjsip:
+ clarify tls cert and key file usage A question arose as to
+ whether a .pem file could be provided in place of the .crt and
+ .key files in a PJSIP TLS configuration. I tested this and
+ discovered that although a cert will be read from the pem file, a
+ key will not, and thus the priv_key_file entry is still required.
+ This update to the fine documentation clarifies the option usage.
+ AST-1448 #close Review: https://reviewboard.asterisk.org/r/4129/
+ Reported by: John Bigelow ........ Merged revisions 426928 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+ * /, res/res_pjsip_outbound_registration.c: pjsip: Handle outbound
+ unregister correctly This updates the status of the outbound
+ registration to reflect when it has been unregistered. Since the
+ registration is unregistered but is not stopped, the registration
+ schedule remains active as before. The patch also updates the
+ documentation of both the AMI and CLI commands. ASTERISK-24411
+ #close Review: https://reviewboard.asterisk.org/r/4119/ Reported
+ by: John Bigelow patches: unregister-patch1.txt uploaded by John
+ Bigelow (License 5091) ........ Merged revisions 426923 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-10-31 03:26 +0000 [r426865] Matthew Jordan <mjordan@digium.com>
+
+ * /, channels/sip/reqresp_parser.c,
+ channels/sip/include/reqresp_parser.h:
+ channels/sip/reqresp_parser: Fix unit tests for r426594 When
+ r426594 was made, it did not take into account a unit test that
+ verified that the function properly populated the unsupported
+ buffer. The function would previously memset the buffer if it
+ detected it had any contents; since this function can now be
+ called iteratively on successive headers, the unit tests would
+ now fail. This patch updates the unit tests to reset the buffer
+ themselves between successive calls, and updates the
+ documentation of the function to note that this is now required.
+ ........ Merged revisions 426858 from
+ http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
+ revisions 426860 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 426863 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-10-31 03:08 +0000 [r426803-426833] Corey Farrell <git@cfware.com>
+
+ * contrib/Makefile (added), Makefile, /: REF_DEBUG: Install
+ refcounter.py to $(ASTDATADIR)/scripts This change ensures
+ refcounter.py is installed to a place where it can be found by
+ the Asterisk testsuite if REF_DEBUG is enabled. ASTERISK-24432
+ #close Reported by: Corey Farrell Review:
+ https://reviewboard.asterisk.org/r/4094/ ........ Merged
+ revisions 426830 from
+ http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
+ revisions 426831 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 426832 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+ * /, apps/app_queue.c: app_queue: fix a couple leaks to struct
+ call_queue in set_member_value set_member_value has a couple
+ leaks to references in the variable q found through testsuite
+ tests/queues/set_penalty. Also remove the REF_DEBUG_ONLY_QUEUES
+ compiler declaration, this is no longer possible with the updated
+ REF_DEBUG code. ASTERISK-24466 #close Reported by: Corey Farrell
+ Review: https://reviewboard.asterisk.org/r/4125/ ........ Merged
+ revisions 426805 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 426806 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+ * main/audiohook.c: audiohooks: Clean references to formats Cleanup
+ references to in_translate[x].format and out_translate[x].format
+ in ast_audiohook_detach_list. ASTERISK-24465 #close Reported by:
+ Corey Farrell Review: https://reviewboard.asterisk.org/r/4124/
+
+2014-10-30 21:13 +0000 [r426757-426780] Kevin Harwell <kharwell@digium.com>
+
+ * res/res_pjsip_exten_state.c, /: res_pjsip_exten_state:
+ PJSIPShowSubscriptionsInbound causes crash Currently, it is
+ possible for some subscriptions to get into a NULL state. When
+ this occurs and the PJSIPShowSubscriptionsInbound ami action is
+ issued and a device is subscribed for extension state then the
+ associated subscription state object can't be located. The code
+ then attempts to dereference a NULL object. Added a NULL check to
+ avoid the problem. Reported by: John Bigelow ........ Merged
+ revisions 426779 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+ * res/res_pjsip/pjsip_options.c, /: res_pjsip: incorrect qualify
+ statistics after disabling for contact When removing the
+ qualify_frequency from an AoR or a contact the statistics shown
+ when issuing "pjsip show aors" from the CLI are incorrect. This
+ patch deletes the contact's status object from sorcery,
+ disassociating it from the contact, if the qualify_freqency is
+ removed from configuration. ASTERISK-24462 #close Reported by:
+ Mark Michelson Review: https://reviewboard.asterisk.org/r/4116/
+ ........ Merged revisions 426755 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-10-30 09:20 +0000 [r426702] Walter Doekes <walter+asterisk@wjd.nu>
+
+ * apps/app_voicemail.c, /: app_voicemail: Fix unchecked bounds of
+ myArray in IMAP_STORAGE. In update_messages_by_imapuser(),
+ messages were appended to a finite array which resulted in a
+ crash when an IMAP mailbox contained more than 256 entries. This
+ memory is now dynamically increased as needed. Observe that this
+ patch adds a bunch of XXX's to questionable code. See the review
+ (url below) for more information. ASTERISK-24190 #close Reported
+ by: Nick Adams Tested by: Nick Adams Review:
+ https://reviewboard.asterisk.org/r/4126/ ........ Merged
+ revisions 426691 from
+ http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
+ revisions 426692 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 426696 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-10-30 06:09 +0000 [r426668] Igor Goncharovskiy <igor.goncharovsky@gmail.com>
+
+ * channels/chan_unistim.c, /: Add additional checks for NULL
+ pointers to fix several crashes reported. ASTERISK-24304 #close
+ Reported by: dhanapathy sathya ........ Merged revisions 426666
+ from http://svn.asterisk.org/svn/asterisk/branches/11 ........
+ Merged revisions 426667 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-10-30 01:59 +0000 [r426597-426602] Matthew Jordan <mjordan@digium.com>
+
+ * /, channels/chan_sip.c: channels/chan_sip: Add improved support
+ for 4xx error codes This patch adds support for 414, 493, 479,
+ and a stray 400 response in REGISTER response handling. This
+ helps interoperability in a number of scenarios. Review:
+ https://reviewboard.asterisk.org/r/3437 patches: rb3437.patch
+ uploaded by oej (License 5267) ........ Merged revisions 426599
+ from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........
+ Merged revisions 426600 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 426601 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+ * channels/sip/reqresp_parser.c, /, channels/chan_sip.c:
+ channels/chan_sip: Support mutltiple Supported and Required
+ headers A SIP request may contain multiple Supported: and
+ Required: headers. Currently, chan_sip only parses the first
+ Supported/Required header it finds. This patch adds support for
+ multiple Supported/Required headers for INVITE requests. Review:
+ https://reviewboard.asterisk.org/r/2478 ASTERISK-21721 #close
+ Reported by: Olle Johansson patches: rb2478.patch uploaded by oej
+ (License 5267) ........ Merged revisions 426594 from
+ http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
+ revisions 426595 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 426596 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-10-29 10:33 +0000 [r426570] Tzafrir Cohen <tzafrir.cohen@xorcom.com>
+
+ * channels/chan_phone.c: Fix building chan_phone on big endian
+ systems A left over from the formats conversion (Corey Farrell).
+ ASTERISK-24458 #close Review:
+ https://reviewboard.asterisk.org/r/4117/
+
+2014-10-28 21:26 +0000 [r426552] Richard Mudgett <rmudgett@digium.com>
+
+ * /, bridges/bridge_builtin_features.c: bridge_builtin_features:
+ Add missing channel locks around
+ ast_get_chan_features_general_config(). The feature_automonitor()
+ and feature_automixmonitor() functions were not locking the
+ channel around ast_get_chan_features_general_config(). Accessing
+ the channel datastore list without the channel locked is a good
+ way to corrupt the list or follow the pointer chain into
+ oblivion. ........ Merged revisions 426531 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-10-28 21:05 +0000 [r426525-426529] Corey Farrell <git@cfware.com>
+
+ * /, res/res_fax.c: res_fax: Resolve T38 gateway frame leak. When
+ frames are translated by a fax gateway they need to be freed. The
+ existing call to ast_frfree was unreachable. This change
+ reorganizes fax_gateway_framehook to ensure that ast_frfree is
+ called when needed. ASTERISK-24457 #close Reported by: Corey
+ Farrell Review: https://reviewboard.asterisk.org/r/4115/ ........
+ Merged revisions 426527 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 426528 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+ * main/manager.c, /: manager: Unsubscribe from acl_change_sub at
+ shutdown. ASTERISK-24453 #close Reported by: Corey Farrell
+ Review: https://reviewboard.asterisk.org/r/4110/ ........ Merged
+ revisions 426524 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-10-28 18:09 +0000 [r426459] mdavenport <mdavenport@localhost>:
+
+ * configs/samples/manager.conf.sample: ASTERISK-23512, correct
+ inaccurate comment in manager.conf.sample
+
+2014-10-28 16:40 +0000 [r426368-426432] Matthew Jordan <mjordan@digium.com>
+
+ * /, main/bridge.c: main/bridge: Destroy features struct on off
+ nominal path during bridge impart When a channel is imparted to a
+ bridge, the invocation of the function may provide an
+ ast_bridge_features struct. Upon passing this to
+ ast_bridge_impart, the caller must assume that ownership has
+ passed to the function, as in all paths the function destroys the
+ struct prior to returning (as its purpose is to configure the
+ behavior of the channel while in the bridge). On one off nominal
+ path - where the channel already has a PBX thread - the struct
+ was not being destroyed. This patch fixes that glitch.
+ ASTERISK-24437 #close Reported by: Scott Griepentrog ........
+ Merged revisions 426431 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+ * main/manager.c, /: main/manager: Fix typo in AMI event
+ documentation of "OriginateResponse" The parameter name is
+ "Response", not "Resonse". ASTERISK-24430 #close Reported by:
+ Dafi Ni ........ Merged revisions 426366 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 426367 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-10-28 14:56 +0000 [r426294-426362] mdavenport <mdavenport@localhost>:
+
+ * res/res_agi.c: ASTERISK-24323, fix bug in documentation of AGI
+ STREAM FILE CONTROL
+
+ * configs/samples/extensions.conf.sample: ASTERISK-24419, fix
+ incorrect syntax for setting language in extensions.conf.sample
+
+2014-10-28 11:20 +0000 [r426252-426266] Corey Farrell <git@cfware.com>
+
+ * apps/app_queue.c, /: app_queue: Cleanup ao2_iterator Clean
+ ao2_iterator, resolving reference leak to queue members.
+ ASTERISK-24454 #close Reported by: Corey Farrell Review:
+ https://reviewboard.asterisk.org/r/4111/ ........ Merged
+ revisions 426255 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 426260 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+ * funcs/func_cdr.c: func_cdr: Fix CDR_PROP payload leak Remove
+ duplicate allocation of payload, preventing leak. ASTERISK-24455
+ #close Reported by: Corey Farrell Review:
+ https://reviewboard.asterisk.org/r/4113/
+
+2014-10-27 17:54 +0000 [r426234] Sean Bright <sean@malleable.com>
+
+ * build_tools/menuselect-deps.in, configure,
+ include/asterisk/autoconfig.h.in, configure.ac, makeopts.in:
+ configure: Add autoconf check for libopus. Because opus
+ transcoding support cannot be included in the standard Asterisk
+ distribution, a few codec_opus implementations have popped up. To
+ make it easier for people to drop in opus support in their own
+ installations, this patch adds configure checks for libopus.
+ Review: https://reviewboard.asterisk.org/r/4106/
+
+2014-10-27 02:46 +0000 [r426143-426211] Matthew Jordan <mjordan@digium.com>
+
+ * res/res_http_websocket.c, /: res/res_http_websocket: Fix minor
+ nits found by wdoekes on r409681 When Moises committed the fixes
+ for WSS (which was a great patch), wdoekes had a few style nits
+ that were on the review that got missed. This patch resolves what
+ I *think* were all of the ones that were still on the review.
+ Thanks to both moy for the patch, and wdoekes for the reviews.
+ Review: https://reviewboard.asterisk.org/r/3248/ ........ Merged
+ revisions 426209 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 426210 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+ * /, res/res_phoneprov.c: res/res_phoneprov: Fix crash on shutdown
+ caused by container cleanup In res_phoneprov, unloading the
+ module first destroys the http_routes container, followed by the
+ users. However, users may have a route in the http_routes
+ container; the validity of this container is not checked in the
+ users destructor. Hence, we hit an assert as the container has
+ already been set to NULL. This patch does two things: (1) It adds
+ a sanity check in the user destructor (because why not) (2) It
+ switches the order of destruction, so that users are disposed of
+ prior to the HTTP routes they may hold a reference to. Note that
+ this crash was caught by the Test Suite (go go testing!) ........
+ Merged revisions 426174 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+ * res/res_srtp.c, /: res/res_srtp: Fix include issue for libsrtp
+ 1.5.0 In libsrtp 1.5.0, crypto_get_random is no longer resolved
+ simply by including srtp.h. Now, one must include crypto_kernel.h
+ as well. As it turns out, this header file has been provided by
+ the library since 2006, so this is a relatively benign change.
+ ASTERISK-24436 #close Reported by: Patrick Laimbock ........
+ Merged revisions 426140 from
+ http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
+ revisions 426141 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 426142 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-10-24 15:17 +0000 [r426120] Jonathan Rose <jrose@digium.com>
+
+ * main/manager.c: Documentation: Improve documentation for
+ ExtensionStatus AMI events Review:
+ https://reviewboard.asterisk.org/r/4085/
+
+2014-10-24 Asterisk Development Team <asteriskteam@digium.com>
+
+ * Asterisk 13.0.0 Released.
+
+2014-10-22 21:27 +0000 [r426097] Shaun Ruffell <sruffell@digium.com>
+
+ * codecs/codec_dahdi.c: codec_dahdi: Cannot use struct
+ ast_translator.core_{src,src}_codec. This fixes a Segmentation
+ fault introduced in r419044 "media formats: re-architect handling
+ of media for performance improvements". The problem is that
+ codec_dahdi was using core_src_codec and core_dst_codec in the
+ ast_translator structure when these fields were never set. Now
+ instead of trying to map the new core codec descriptions to the
+ way DAHDI defines different codecs, we will store the DAHDI
+ specific formats in 'struct translator' directly so we can refer
+ to them without mapping. This also allows us to remove the
+ "global_format_map" structure, since we can now query the list of
+ translators directly to make sure we do not ever register a DAHDI
+ based translator for a specific path more than once and eliminate
+ the need to keep the list and the map in sync. ASTERISK-24435
+ #close Reported by: Marian Koniuszko Review:
+ https://reviewboard.asterisk.org/r/4105/
+
+2014-10-21 17:47 +0000 [r426079] Richard Mudgett <rmudgett@digium.com>
+
+ * main/translate.c: translage.c: Fix regression when generating
+ translation path strings. Fix the AMI Status action read and
+ write translation path strings from growing for each channel in
+ the status event list by reseting the ast string given to
+ ast_translate_path_to_str() to fill in the given translation
+ path.
+
+2014-10-20 14:15 +0000 [r425991] Matthew Jordan <mjordan@digium.com>
+
+ * res/res_xmpp.c, main/tcptls.c, /: AST-2014-011: Fix POODLE
+ security issues There are two aspects to the vulnerability: (1)
+ res_jabber/res_xmpp use SSLv3 only. This patch updates the module
+ to use TLSv1+. At this time, it does not refactor
+ res_jabber/res_xmpp to use the TCP/TLS core, which should be done
+ as an improvement at a latter date. (2) The TCP/TLS core, when
+ tlsclientmethod/sslclientmethod is left unspecified, will default
+ to the OpenSSL SSLv23_method. This method allows for all
+ encryption methods, including SSLv2/SSLv3. A MITM can exploit
+ this by forcing a fallback to SSLv3, which leaves the server
+ vulnerable to POODLE. This patch adds WARNINGS if a user uses
+ SSLv2/SSLv3 in their configuration, and explicitly disables
+ SSLv2/SSLv3 if using SSLv23_method. For TLS clients, Asterisk
+ will default to TLSv1+ and WARN if SSLv2 or SSLv3 is explicitly
+ chosen. For TLS servers, Asterisk will no longer support SSLv2 or
+ SSLv3. Much thanks to abelbeck for reporting the vulnerability
+ and providing a patch for the res_jabber/res_xmpp modules.
+ Review: https://reviewboard.asterisk.org/r/4096/ ASTERISK-24425
+ #close Reported by: abelbeck Tested by: abelbeck, opsmonitor,
+ gtjoseph patches: asterisk-1.8-jabber-tls.patch uploaded by
+ abelbeck (License 5903) asterisk-11-jabber-xmpp-tls.patch
+ uploaded by abelbeck (License 5903) AST-2014-011-1.8.diff
+ uploaded by mjordan (License 6283) AST-2014-011-11.diff uploaded
+ by mjordan (License 6283) ........ Merged revisions 425987 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-10-19 17:07 +0000 [r425965] George Joseph <george.joseph@fairview5.com>
+
+ * Makefile, /, configure, include/asterisk/autoconfig.h.in,
+ configure.ac, makeopts.in: build: Force -fsigned-char on
+ platforms where the default for char is unsigned gcc on the ARM
+ platform defaults 'char' to 'unsigned char' whereas Intel and
+ SPARC default to 'signed char'. This is only an issue in the rare
+ cases where negative values are assigned to a 'char' but this
+ this patch insures compatibility by detecting platforms that
+ default to 'unsigned' and adding an '-fsigned-char' flag to
+ _ASTCFLAGS. If compiling for ARM (native or cross-compile) be
+ sure to run ./bootstrap.sh and ./configure to regenerate the
+ build files. You shouldn't have to do this for Intel or SPARC.
+ Tested-by: George Joseph Review:
+ https://reviewboard.asterisk.org/r/4091/ ........ Merged
+ revisions 425964 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-10-19 04:01 +0000 [r425923-425944] Matthew Jordan <mjordan@digium.com>
+
+ * res/res_pjsip_sdp_rtp.c: res/res_pjsip_sdp_rtp: Revert 425922
+ This patch for r425922 introduced a bug, wherein sending an
+ INVITE request with no SDP would cause Asterisk to not send an
+ SDP Offer in the 200 OK. The current structure of
+ res_pjsip_sdp_rtp is a bit hard to deal with to fix this, as
+ create_outgoing_sdp has no knowledge of whether or not it is
+ creating an SDP as a new Offer or an Answer. This is something of
+ an oversight in the callback definition, as the caller of it does
+ have this information.
+
+ * res/res_pjsip_sdp_rtp.c: res/res_pjsip_sdp_rtp: Remove left over
+ reference to override_prefs The usage of the local override_prefs
+ variable in create_outgoing_sdp_stream was previously to track an
+ override format preference set by PJSIP_MEDIA_OFFER. Now,
+ however, that function simply sets the joint capabilities
+ structure, session->req_caps. During the media format rework, the
+ override_prefs was instead used to check if there were any
+ formats in session->req_caps. However, this usage isn't useful in
+ create_outgoing_sdp_stream. session->req_caps contains the
+ negotiated formats for *all* streams, not just the current one
+ being created. Thus, so long as any stream of any type has
+ provided a format, override_prefs will be non-zero. Hence, its
+ usage in checking whether or not we should look at the formats on
+ the endpoint or the joint capabilities is generally useless.
+ There's only two things useful to check: (1) Does the endpoint
+ have a format for the media type? (2) Did we negotiate a format
+ for the media type? If either of those is a 'no', then we must
+ kill the media stream.
+
+2014-10-17 22:43 +0000 [r425905] Jonathan Rose <jrose@digium.com>
+
+ * configs/samples/cli_aliases.conf.sample: Sample Configurations:
+ make 'pjsip reload' reload all reloadable pjsip modules AST-1432
+ #close Reported by: John Bigelow
+
+2014-10-17 13:35 +0000 [r425821-425879] Matthew Jordan <mjordan@digium.com>
+
+ * res/res_pjsip_sdp_rtp.c, res/res_pjsip.c,
+ res/res_pjsip_session.c, /: res_pjsip_session/res_pjsip_sdp_rtp:
+ Be more tolerant of offers When an inbound SDP offer is received,
+ Asterisk currently makes a few incorrection assumptions: (1) If
+ the offer contains more than a single audio/video stream,
+ Asterisk will reject the entire stream with a 488. This is an
+ overly strict response; generally, Asterisk should accept the
+ media streams that it can accept and decline the others. (2) If
+ the offer contains a declined media stream, Asterisk will attempt
+ to process it anyway. This can result in attempting to match
+ format capabilities on a declined media stream, leading to a 488.
+ Asterisk should simply ignore declined media streams. (3)
+ Asterisk will currently attempt to handle offers with AVPF with
+ use_avpf=No/AVP with use_avpf=Yes. This mismatch results in
+ invalid SDP answers being sent in response. If there is a
+ mismatch between the media type being offered and the
+ configuration, Asterisk must reject the offer with a 488. This
+ patch does the following: * Asterisk will accept SDP offers with
+ at least one media stream that it can use. Some WARNING messages
+ have been dropped to NOTICEs as a result. * Asterisk will not
+ accept an offer with a media type that doesn't match its
+ configuration. * Asterisk will ignore declined media streams
+ properly. #SIPit31 Review:
+ https://reviewboard.asterisk.org/r/4063/ ASTERISK-24122 #close
+ Reported by: James Van Vleet ASTERISK-24381 #close Reported by:
+ Matt Jordan ........ Merged revisions 425868 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+ * /, channels/chan_sip.c: channels/chan_sip: Respect outboundproxy
+ setting when sending qualify requests The outboundproxy setting
+ is currently ignored when sending OPTIONS requests as a result of
+ the qualify setting. This means that if an Asterisk server is
+ unable to send the packet directly to a peer, it is unable to
+ qualify any non-inbound registered peer (e.g. a peer SIP Trunk).
+ This patch grabs the outboundproxy information for a peer when a
+ qualify attempt is being constructed and, if it finds the
+ information, uses it when sending the OPTIONS request. Review:
+ https://reviewboard.asterisk.org/r/3948 ASTERISK-24063 #close
+ Reported by: Damian Ivereigh patches: outboundproxy-dai.patch
+ uploaded by Damian Ivereigh (License 6632) ........ Merged
+ revisions 425818 from
+ http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
+ revisions 425819 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 425820 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-10-17 02:41 +0000 [r425783] Richard Mudgett <rmudgett@digium.com>
+
+ * main/core_unreal.c, main/channel.c, /: AMI: Add missing VarSet
+ events when a channel inherits variables. There should be AMI
+ VarSet events when channel variables are inherited by an outgoing
+ channel. Also local;2 should generate VarSet events when it gets
+ all of its channel variables from channel local;1. ASTERISK-24415
+ #close Reported by: Richard Mudgett Patches:
+ jira_asterisk_24415_v12.patch (license #5621) patch uploaded by
+ Richard Mudgett Review: https://reviewboard.asterisk.org/r/4074/
+ ........ Merged revisions 425782 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-10-17 01:57 +0000 [r425736-425761] Matthew Jordan <mjordan@digium.com>
+
+ * /, bridges/bridge_native_rtp.c: bridge_native_rtp: Fix audio
+ issues when moving from remote bridge to softmix When a native
+ RTP bridge that is remotely bridging its participants switches to
+ a softmix bridge, it may not properly re-INVITE the media for one
+ or both participants back to Asterisk. This is due to the current
+ bridge_native_rtp code only re-INVITEs if it believes the channel
+ will survive the bridge operation. Currently, that code is
+ failing, as it expects the channels to have a soft hangup flag
+ set on it indicating that a redirect has occurred or that the
+ channel is going to leave the bridge. (The code did not take into
+ account a smart bridge operation). This patch also renames a few
+ things to be more reflective of the underlying types. Review:
+ https://reviewboard.asterisk.org/r/3997/ ASTERISK-24327 #close
+ ........ Merged revisions 425760 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+ * /, tests/test_cel.c: test_cel: Update pickup test to expect
+ CANCEL instead of ANSWSER The CEL pickup test previously looked
+ for a disposition of ANSWER between the original caller/peer when
+ the call is picked up. This is actually incorrect: the
+ disposition should, at the very least, not be ANSWER as the call
+ was never ANSWERed. The disposition is now CANCEL; this patch
+ updates the test accordingly. ........ Merged revisions 425757
+ from http://svn.asterisk.org/svn/asterisk/branches/12
+
+ * main/cdr.c, /: main/cdr: Use 'time' when rescheduling batched
+ CDRs as opposed to 'size' When refactoring CDRs to use the
+ configuration framework, a 'whoops' was introduced where the CDR
+ batch size was used when rescheduling a batch, as opposed to the
+ time duration. This patch corrects that obvious mistake.
+ ASTERISK-24426 #close Reported by: Shane Blaser ........ Merged
+ revisions 425735 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-10-16 17:30 +0000 [r425714] George Joseph <george.joseph@fairview5.com>
+
+ * include/asterisk/config.h, tests/test_config.c, main/config.c, /:
+ config: Fix inf loop using ast_category_browse and
+ ast_variable_retrieve Fix infinite loop when calling
+ ast_variable_retrieve inside an ast_category_browse loop when
+ there is more than 1 category with the same name. Tested-by:
+ George Joseph Review: https://reviewboard.asterisk.org/r/4089/
+ ........ Merged revisions 425713 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-10-16 14:35 +0000 [r425691] Kinsey Moore <kmoore@digium.com>
+
+ * res/res_pjsip_t38.c, res/res_pjsip_registrar_expire.c,
+ res/res_pjsip_mwi_body_generator.c,
+ res/res_pjsip_endpoint_identifier_user.c,
+ res/res_pjsip_send_to_voicemail.c,
+ include/asterisk/res_pjsip_pubsub.h,
+ res/res_pjsip_outbound_authenticator_digest.c,
+ res/res_pjsip_outbound_registration.c,
+ res/res_pjsip_endpoint_identifier_anonymous.c,
+ res/res_pjsip_path.c, res/res_pjsip_one_touch_record_info.c,
+ res/res_pjsip_acl.c, res/res_pjsip_pubsub.c,
+ res/res_pjsip_diversion.c, res/res_pjsip_refer.c,
+ include/asterisk/res_pjsip.h,
+ res/res_pjsip_pidf_body_generator.c, res/res_pjsip_dtmf_info.c,
+ res/res_pjsip_multihomed.c, res/res_pjsip_authenticator_digest.c,
+ res/res_pjsip_sdp_rtp.c, res/res_hep_pjsip.c,
+ res/res_pjsip_messaging.c, res/res_pjsip_caller_id.c,
+ res/res_pjsip_logger.c, res/res_pjsip_nat.c,
+ res/res_pjsip_session.c, res/res_pjsip_exten_state.c,
+ res/res_pjsip_header_funcs.c, res/res_pjsip_rfc3326.c,
+ res/res_pjsip_phoneprov_provider.c, res/res_pjsip_mwi.c,
+ res/res_pjsip_dialog_info_body_generator.c,
+ res/res_pjsip_xpidf_body_generator.c, res/res_pjsip_registrar.c,
+ channels/chan_pjsip.c, res/res_pjsip_transport_websocket.c,
+ res/res_pjsip_pidf_eyebeam_body_supplement.c,
+ include/asterisk/res_pjsip_session.h, /, res/res_pjsip_notify.c,
+ res/res_pjsip_pidf_digium_body_supplement.c,
+ res/res_pjsip_endpoint_identifier_ip.c,
+ res/res_pjsip_publish_asterisk.c: PJSIP: Enforce module load
+ dependencies This enforces that res_pjsip, res_pjsip_session, and
+ res_pjsip_pubsub have loaded properly before attempting to load
+ any modules that depend on them since the module loader system is
+ not currently capable of resolving module dependencies on its
+ own. ASTERISK-24312 #close Reported by: Dafi Ni Review:
+ https://reviewboard.asterisk.org/r/4062/ ........ Merged
+ revisions 425690 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-10-16 06:11 +0000 [r425669] Igor Goncharovskiy <igor.goncharovsky@gmail.com>
+
+ * channels/chan_unistim.c, /: Fix loss of voice after second call
+ drops (on a second line) in case using multiple lines on unistim
+ phones. There is regression was introduced in r391379. Reported
+ by: Rustam Khankishyiev (closes issue ASTERISK-23846) ........
+ Merged revisions 425667 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 425668 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-10-16 01:25 +0000 [r425646] Joshua Colp <jcolp@digium.com>
+
+ * res/res_rtp_asterisk.c, /: res_rtp_asterisk: Fix a bug where ICE
+ state would get reset when it shouldn't. In the case where the
+ ICE negotiation had not yet started current state would get wiped
+ when it shouldn't. This also removes channel binding as in
+ practice this does not work well with other implementations.
+ ........ Merged revisions 425644 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 425645 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-10-15 19:31 +0000 [r425627] Richard Mudgett <rmudgett@digium.com>
+
+ * channels/chan_motif.c: chan_motif: Cleanup
+ jingle_tech.capabilities only once.
+
+2014-10-15 19:05 +0000 [r425611] Jonathan Rose <jrose@digium.com>
+
+ * res/parking/parking_tests.c: parking_tests: Fix assertions and
+ possibly crashes in res_parking unit tests Assertions were caused
+ by attempting to play music on hold to a channel with no formats.
+ Parking unit test channels were given formats and a technology so
+ that they would be able to pretend to read/write frames.
+ ASTERISK-24413 #close Reported by: Matt Jordan Review:
+ https://reviewboard.asterisk.org/r/4075/
+
+2014-10-15 09:59 +0000 [r425590] Alexandr Anikin <may@telecom-service.ru>
+
+ * addons/chan_ooh323.c, /: chan_ooh323: fix rtptimeout general
+ value checking correct condition to check rtptimeout in [general]
+ config section ASTERISK-24393 #close Reported by: Dmitry Melekhov
+ Tested by: Dmitry Melekhov Patches: ASTERISK-24393.patch ........
+ Merged revisions 425547 from
+ http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
+ revisions 425548 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 425589 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-10-14 20:46 +0000 [r425526] George Joseph <george.joseph@fairview5.com>
+
+ * /, include/asterisk/config.h, tests/test_config.c, main/config.c:
+ config: Fix SEGV in unit test with MALLOC_DEBUG With MALLOC_DEBUG
+ the /main/config config_basic_ops test was causing a SEGV while
+ doing an ast_category_delete in an ast_category_browse loop.
+ Apparently this never worked but was also never tested. I removed
+ the test, added 2 notes to config.h indicating that it's not
+ supported and added a few lines of code to ast_category_delete to
+ prevent the SEGV should someone attempt it in the future.
+ Tested-by: George Joseph Review:
+ https://reviewboard.asterisk.org/r/4078/ ........ Merged
+ revisions 425525 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-10-14 19:00 +0000 [r425504] Jonathan Rose <jrose@digium.com>
+
+ * main/sched.c, /: Scheduler: Fix a nasty scheduler caching bug
+ which makes new tasks not execute Tasks that were marked for
+ pending deletion in the scheduler would be moved to the cache for
+ later reuse, but after being recycled the deleted mark wouldn't
+ be removed resulting in fresh tasks being deleted without
+ reason... and immediately moved back into the cache where they
+ could be reused again. This could cause horrendous things to
+ happen in just about anything that used a scheduler.
+ ASTERISK-24321 #close Reported by: Steve Pitts Review:
+ https://reviewboard.asterisk.org/r/4071/ ........ Merged
+ revisions 425503 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-10-14 18:12 +0000 [r425481] George Joseph <george.joseph@fairview5.com>
+
+ * res/res_phoneprov.c, include/asterisk/phoneprov.h, /,
+ res/res_pjsip_phoneprov_provider.c: res_phoneprov: Create
+ accessor for ast_phoneprov_std_variable_lookup Based on feedback
+ from Richard, I created an accessor for
+ res_phoneprov/ast_phoneprov_std_variable_lookup and added load
+ priority to AST_MODULE_INFO. Tested-by: George Joseph Tested-by:
+ Richard Mudgett Review: https://reviewboard.asterisk.org/r/4076/
+ ........ Merged revisions 425480 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-10-14 16:46 +0000 [r425459] Corey Farrell <git@cfware.com>
+
+ * /, res/res_fax.c: res_fax: Fix reference leak caused by gateway
+ sessions Fax gateway session objects can be re-used, causing the
+ same gateway session to be added to faxregistry.container more
+ than once. This change causes fax_session_new to remove the
+ reserved session from the container before it's id is changed,
+ ensuring it's possible for the session to be freed.
+ ASTERISK-24392 #close Reported by: Corey Farrell Review:
+ https://reviewboard.asterisk.org/r/4049/ ........ Merged
+ revisions 425457 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 425458 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-10-14 16:35 +0000 [r425455] Richard Mudgett <rmudgett@digium.com>
+
+ * /, main/stasis_channels.c: stasis_channels.c: Resolve unfinished
+ Dials when doing masquerades (Part 2) Masquerades into and out of
+ channels that are involved in a dial operation don't create the
+ expected dial end event. The missing dial end event goes against
+ the model for things like CDRs and generating Dial end manager
+ actions and such. There are four cases: 1) A channel masquerades
+ into the caller channel. The case happens when performing a
+ blonde transfer using the channel driver's protocol. 2) A channel
+ masquerades into a callee channel. The case happens when
+ performing a directed call pickup. 3) The caller channel
+ masquerades out of dial. The case happens when using the Bridge
+ application on the caller channel. 4) A callee channel
+ masquerades out of dial. The case happens when using the Bridge
+ application on a peer channel. As it turned out, all four cases
+ need to be handled instead of just the first one. ASTERISK-24237
+ Reported by: Richard Mudgett ASTERISK-24394 #close Reported by:
+ Richard Mudgett Review: https://reviewboard.asterisk.org/r/4066/
+ ........ Merged revisions 425430 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-10-14 16:19 +0000 [r425415] Corey Farrell <git@cfware.com>
+
+ * /, res/res_fax.c: res_fax: Resolve module reference leak caused
+ by reserved sessions Remove reference to module providing
+ reserved session after adding a reference to the final module.
+ This re-reference is done to ensure that module references are
+ correct even if the final session selects a different module than
+ the reserved session. ASTERISK-18923 #close Reported by: Grigoriy
+ Puzankin Review: https://reviewboard.asterisk.org/r/4048/
+ ........ Merged revisions 425405 from
+ http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
+ revisions 425407 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 425411 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-10-13 16:10 +0000 [r425384] George Joseph <george.joseph@fairview5.com>
+
+ * apps/app_directory.c, tests/test_sorcery.c, main/config.c,
+ tests/test_sorcery_realtime.c, res/res_sorcery_realtime.c,
+ apps/app_voicemail.c, res/res_sorcery_config.c, main/manager.c,
+ /, include/asterisk/config.h, pbx/pbx_realtime.c,
+ tests/test_config.c: manager/config: Support templates and
+ non-unique category names via AMI This patch provides the
+ capability to manipulate templates and categories with non-unique
+ names via AMI. Summary of changes: GetConfig and GetConfigJSON:
+ Added "Filter" parameter: A comma separated list of
+ name_regex=value_regex expressions which will cause only
+ categories whose variables match all expressions to be
+ considered. The special variable name TEMPLATES can be used to
+ control whether templates are included. Passing 'include' as the
+ value will include templates along with normal categories.
+ Passing 'restrict' as the value will restrict the operation to
+ ONLY templates. Not specifying a TEMPLATES expression results in
+ the current default behavior which is to not include templates.
+ UpdateConfig: NewCat now includes options for allowing duplicate
+ category names, indicating if the category should be created as a
+ template, and specifying templates the category should inherit
+ from. The rest of the actions now accept a filter string as
+ defined above. If there are non-unique category names, you can
+ now update specific ones based on variable values. To facilitate
+ the new capabilities in manager, corresponding changes had to be
+ made to config, most notably the addition of filter criteria to
+ many of the APIs. In some cases it was easy to change the
+ references to use the new prototype but others would have
+ required touching too many files for this patch so a wrapper with
+ the original prototype was created. Macros couldn't be used in
+ this case because it would break binary compatibility with
+ modules such as res_digium_phone that are linked to real symbols.
+ Tested-by: George Joseph Review:
+ https://reviewboard.asterisk.org/r/4033/ ........ Merged
+ revisions 425383 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-10-12 21:09 +0000 [r425362] Joshua Colp <jcolp@digium.com>
+
+ * /, res/res_rtp_asterisk.c: res_rtp_asterisk: Make the ICE
+ transport check case insensitive as some implementations use
+ 'udp'. ........ Merged revisions 425360 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 425361 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-10-12 08:15 +0000 [r425289-425299] Walter Doekes <walter+asterisk@wjd.nu>
+
+ * /, channels/chan_sip.c: chan_sip: Fix so asterisk won't send
+ reINVITE after a BYE. After a reINVITE glare situation, Asterisk
+ would re-send the reINVITE even though the call had been hung up
+ in the mean time. This patch unschedules the reinvite when
+ handling the BYE. ASTERISK-22791 #close Reported by: Paolo
+ Compagnini Tested by: Paolo Compagnini Review:
+ https://reviewboard.asterisk.org/r/4056/ (testcase is in review
+ r4055) ........ Merged revisions 425296 from
+ http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
+ revisions 425297 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 425298 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+ * /, Makefile: build: Relax badshell tilde test to allow for ~ in
+ middle of DESTDIR. The main Makefile has a target test called
+ 'badshell' that tests if DESTDIR does not happen to have an
+ an-expanded tilde (~). This might be the case if you run: make
+ install DESTDIR=~/somewhere/ That test also disallowed valid
+ tildes in directory names. The test is now changed to only
+ trigger on a tilde at the start of the path. ASTERISK-13797
+ #close Reported by: Tzafrir Cohen Review:
+ https://reviewboard.asterisk.org/r/4064/ ........ Merged
+ revisions 425291 from
+ http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
+ revisions 425292 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 425293 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+ * /, res/res_calendar_ews.c: res_calendar_ews: Relax neon version
+ check to work with 0.30 too. Allow res_calendar_ews to work not
+ only with libneon-0.29 but also with 0.30. ASTERISK-24325 #close
+ Reported by: Tzafrir Cohen Review:
+ https://reviewboard.asterisk.org/r/4068/ ........ Merged
+ revisions 425286 from
+ http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
+ revisions 425287 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 425288 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-10-11 21:08 +0000 [r425265] George Joseph <george.joseph@fairview5.com>
+
+ * /, res/res_phoneprov.c: res_phoneprov: Cleanup module load error
+ handling Tested module load/reload interaction between
+ res_phoneprov and res_pjsip_phoneprov_provider in cases where
+ res_phoneprov didn't load correctly (usually misconfiguration or
+ missing phoneprov.conf) Tested-by: George Joseph Review:
+ https://reviewboard.asterisk.org/r/4069/ ........ Merged
+ revisions 425264 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-10-10 20:48 +0000 [r425243] Joshua Colp <jcolp@digium.com>
+
+ * /, main/bridge.c, bridges/bridge_native_rtp.c: bridge: During a
+ smart bridge operation provide a more complete bridge to the old
+ technology. When a smart bridge operation occurs and a bridge
+ transitions from one technology to another the old technology is
+ provided the channels formerly in it and told that they are
+ leaving. Unfortunately the bridge provided along with them is
+ incomplete. The bridge, despite there being channels in it,
+ contains none. This forces technology implementations to have
+ additional logic when channels are leaving or to store their own
+ duplicated state. This change makes the bridge more complete so
+ it contains the expected channels. Now that the bridge is
+ complete special logic within bridge_native_rtp is no longer
+ needed and has been removed. Review:
+ https://reviewboard.asterisk.org/r/4057/ ........ Merged
+ revisions 425242 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-10-10 14:31 +0000 [r425221] Matthew Jordan <mjordan@digium.com>
+
+ * /, res/res_phoneprov.c: res/res_phoneprov: Bail on registration
+ if res_phoneprov didn't load If res_phoneprov failed to fully
+ load (due to not being configured), the providers container will
+ be NULL. If a module attempts to register a phone provisioning
+ provider, it should check for the presence of the container. If
+ there is no providers container, it should return an error. This
+ patch makes the ast_phoneprov_provider_register function do
+ that... otherwise this would be a silly commit message. ........
+ Merged revisions 425220 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-10-10 14:23 +0000 [r425217] Joshua Colp <jcolp@digium.com>
+
+ * /, res/res_pjsip_phoneprov_provider.c:
+ res_pjsip_phoneprov_provider: Add missing dependency on
+ pjproject. ........ Merged revisions 425216 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-10-10 13:01 +0000 [r425155] Kinsey Moore <kmoore@digium.com>
+
+ * /, tests/test_callerid.c, main/callerid.c: CallerID: Fix parsing
+ regression This fixes a regression in callerid parsing introduced
+ when another bug was fixed. This bug occurred when the name was
+ composed entirely of DTMF keys and quoted without a number
+ section (<>). ASTERISK-24406 #close Reported by: Etienne Lessard
+ Tested by: Etienne Lessard Patches: callerid_fix.diff uploaded by
+ Kinsey Moore Review: https://reviewboard.asterisk.org/r/4067/
+ ........ Merged revisions 425152 from
+ http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
+ revisions 425153 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 425154 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-10-10 12:10 +0000 [r425132] Joshua Colp <jcolp@digium.com>
+
+ * res/res_pjsip_nat.c, /: res_pjsip_nat: Place source port into
+ rport of responses if 'force_rport' is on. When the 'force_rport'
+ option is enabled the behavior should be the same as if the
+ remote side placed rport into the message themselves. Therefore
+ any responses we send should include the source port of the
+ request in the rport of the Via header. #SIPit31 ASTERISK-24387
+ #close Reported by: Matt Jordan ........ Merged revisions 425131
+ from http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-10-10 07:32 +0000 [r425071] Walter Doekes <walter+asterisk@wjd.nu>
+
+ * /, channels/chan_sip.c: chan_sip: Fix dialog leak resulting from
+ missing ACK to re-INVITE. If a device re-INVITEs at the same time
+ as the dialog is hung up, and if then the ACK to the re-INVITE
+ never reaches Asterisk, chan_sip would fail to destroy the dialog
+ after a while. This resulted in (most prominently) file handle
+ leaks. (Patch reindented by me.) ASTERISK-20784 #close
+ ASTERISK-15879 #close Reported by: Torrey Searle, Nitesh Bansal
+ Patches: reinvite_ack_timeout.patch uploaded by Torrey Searle
+ (License #5334) patch_asterisk_20784.txt uploaded by Nitesh
+ Bansal (License #6418) Reviewboard:
+ https://reviewboard.asterisk.org/r/4052/ (testcase can be found
+ at r4051) ........ Merged revisions 425068 from
+ http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
+ revisions 425069 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 425070 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-10-09 23:35 +0000 [r425052] George Joseph <george.joseph@fairview5.com>
+
+ * res/res_pjsip_phoneprov_provider.c: res_pjsip_phoneprov_provider:
+ fix compile breakage on AST_VECTOR endpoint->inbound_auths was
+ changed to a vector in 13 and I committed the 12 patch instead of
+ the 13 patch. Tested-by: George Joseph
+
+2014-10-09 21:38 +0000 [r425031] Kevin Harwell <kharwell@digium.com>
+
+ * res/res_rtp_asterisk.c, /: res_rtp_asterisk: Crash if no
+ candidates received for component When starting ice if there is
+ not at least one remote ice candidate with an RTP component
+ asterisk will crash. This is due to an assertion in pjnath as it
+ expects at least one candidate with an RTP component. Added a
+ check to make sure at least one candidate contains an RTP
+ component and at least one candidate has an RTCP component.
+ ASTERISK-24383 #close Review:
+ https://reviewboard.asterisk.org/r/4039/ ........ Merged
+ revisions 425030 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-10-09 20:54 +0000 [r425008] George Joseph <george.joseph@fairview5.com>
+
+ * /, res/res_pjsip_phoneprov_provider.c (added),
+ configs/samples/pjsip.conf.sample: res_pjsip_phoneprov_provider:
+ Provides pjsip integration with res_phoneprov This module allows
+ res_pjsip to integrate with res_phoneprov. It handles the pjsip
+ 'phoneprov' object type. Tested-by: George Joseph Review:
+ https://reviewboard.asterisk.org/r/3976/ ........ Merged
+ revisions 425007 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-10-09 18:37 +0000 [r424986] Matthew Jordan <mjordan@digium.com>
+
+ * /, res/res_phoneprov.c: res/res_phoneprov: Don't cancel Asterisk
+ load on module load failure ........ Merged revisions 424985 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-10-09 17:45 +0000 [r424964] George Joseph <george.joseph@fairview5.com>
+
+ * include/asterisk/phoneprov.h (added), /,
+ configs/samples/phoneprov.conf.sample,
+ include/asterisk/chanvars.h, res/res_phoneprov.c,
+ res/res_phoneprov.exports.in (added), main/chanvars.c:
+ res_phoneprov: Refactor phoneprov to allow pluggable config
+ providers This patch makes res_phoneprov more modular so other
+ modules (like pjsip) can provide configuration information
+ instead of res_phoneprov relying solely on users.conf and
+ sip.conf. To accomplish this a new ast_phoneprov public API is
+ now exposed which allows config providers to register themselves,
+ set defaults (server profile, etc) and add user extensions. *
+ ast_phoneprov_provider_register registers the provider and
+ provides callbacks for loading default settings and loading
+ users. * ast_phoneprov_provider_unregister clears the defaults
+ and users. * ast_phoneprov_add_extension should be called once
+ for each user/extension by the provider's load_users callback to
+ add them. * ast_phoneprov_delete_extension deletes one extension.
+ * ast_phoneprov_delete_extensions deletes all extensions for the
+ provider. Tested-by: George Joseph Review:
+ https://reviewboard.asterisk.org/r/3970/ ........ Merged
+ revisions 424963 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-10-09 16:36 +0000 [r424942] Richard Mudgett <rmudgett@digium.com>
+
+ * /, main/cdr.c: cdr.c: Make turning on CDR debug a one step
+ process instead of two. Now "cdr set debug on" doesn't also
+ require "core set verbose 1" to see CDR debug output. ........
+ Merged revisions 424941 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-10-09 08:08 +0000 [r424880] Walter Doekes <walter+asterisk@wjd.nu>
+
+ * /, contrib/scripts/safe_asterisk: safe_asterisk: Don't
+ automatically exceed MAXFILES value of 2^20. On systems with lots
+ of RAM (e.g. 24GB) /proc/sys/fs/file-max divided by two can
+ exceed the per-process file limit of 2^20. This patch ensures the
+ value is capped. (Patch cleaned up by me.) ASTERISK-24011 #close
+ Reported by: Michael Myles Patches: safe_asterisk-ulimit.diff
+ uploaded by Michael Myles (License #6626) ........ Merged
+ revisions 424875 from
+ http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
+ revisions 424878 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 424879 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-10-08 18:46 +0000 [r424854] Joshua Colp <jcolp@digium.com>
+
+ * /, res/res_rtp_asterisk.c: res_rtp_asterisk: Allow only UDP ICE
+ candidates. The underlying library, pjnath, that res_rtp_asterisk
+ uses for ICE support does not have support for ICE-TCP. As
+ candidates are passed through directly to it this can cause error
+ messages to occur when it receives something unexpected (such as
+ a TCP candidate). This change merely ignores all non-UDP
+ candidates so they never reach pjnath. ASTERISK-24326 #close
+ Reported by: Joshua Colp ........ Merged revisions 424852 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 424853 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-10-08 18:24 +0000 [r424769-424850] Kinsey Moore <kmoore@digium.com>
+
+ * main/stasis.c: Stasis: Relegate log message to dev-mode This
+ error message primarily applies to development tasks and will now
+ only show up when dev-mode is enabled via configure.
+
+ * main/sounds_index.c: Indexer: Format message types may not exist
+ In Asterisk 13+, any given message type is not guaranteed to
+ exist even if Asterisk comes up correctly since creation of the
+ message type could be declined. The indexer should not prevent
+ Asterisk from starting under these conditions.
+
+ * main/stasis.c: Stasis: Only log errors for non-declined types
+ When message type creation is declined via stasis.conf, certain
+ operations log errors assuming that the declined type is being
+ used before initialization or after destruction. These error
+ messages get quite spammy for oft used message types and should
+ not be logged in the first place since the message type is
+ validly NULL. Reported by: Matt DiMeo
+
+2014-10-07 18:33 +0000 [r424752] Joshua Colp <jcolp@digium.com>
+
+ * main/data.c: data: Properly access formats in capabilities
+ structure when adding codecs. Formats within a capabilities
+ structure are addressed starting at 0, not 1. Assuming 1 causes
+ it to exceed an array. ASTERISK-24389 #close Reported by: Kevin
+ Harwell
+
+2014-10-07 17:41 +0000 [r424692-424731] Matthew Jordan <mjordan@digium.com>
+
+ * /, res/res_pjsip_outbound_registration.c:
+ res/res_pjsip_outbound_registration: Initialize
+ auth_reject_permanent parameter Prior to this patch, the
+ auth_reject_permanent parameter was not initialized on the
+ registration client state, leading to the parameter being
+ disabled regardless of the value specified in pjsip.conf. This
+ patch initialized the setting on the registration client state to
+ the provided configuration value. ASTERISK-24398 #close ........
+ Merged revisions 424730 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+ * res/res_pjsip_pubsub.c: res/res_pjsip_pubsub: Fix typo in WARNING
+ message
+
+ * main/message.c, /: message: Don't close an AMI connection on
+ SendMessage action error If SendMessage encounters an error (such
+ as incorrect input provided to the action), it will currently
+ return -1. Actions should only return -1 if the connection to the
+ AMI client should be closed. In this case, SendMessage causing
+ the client to disconnect is inappropriate. This patch causes the
+ action to return 0, which simply causes the action to fail.
+ Review: https://reviewboard.asterisk.org/r/4024 ASTERISK-24354
+ #close Reported by: Peter Katzmann patches: sendMessage.patch
+ uploaded by Peter Katzmann (License 5968) ........ Merged
+ revisions 424690 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 424691 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-10-06 15:38 +0000 [r424669] Richard Mudgett <rmudgett@digium.com>
+
+ * main/features.c, /: features.c: Fix lingering channel ref while
+ Bridge() application is active. Using the Bridge application to
+ bridge a channel that is executing an applicaiton such as Wait
+ results in a lingering Surrogate channel in the CLI "core show
+ channels" output even though it has already hungup. * Fix
+ bridge_exec() to not hold onto the current_dest_chan ref once it
+ has been put into the bridge. * Eliminated bridge_exec()'s use of
+ RAII_VAR(). ASTERISK-24224 #close Reported by: Mark Michelson
+ Review: https://reviewboard.asterisk.org/r/4041/ ........ Merged
+ revisions 424668 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-10-06 12:38 +0000 [r424601-424647] Matthew Jordan <mjordan@digium.com>
+
+ * /, main/sdp_srtp.c: sdp_srtp: Add new lines to some WARNING
+ messages ........ Merged revisions 424646 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+ * /, res/res_pjsip/pjsip_options.c: res_pjsip/pjsip_options: Do not
+ 404 an OPTIONS request not sent to an endpoint An OPTIONS request
+ that is sent to Asterisk but not to a specific endpoint is
+ currently sent a 404 in response. This is because, not
+ surprisingly, an empty extension is never going to be found in
+ the dialplan. This patch makes it so that we only attempt to look
+ up the endpoint in the dialplan if it is specified in the OPTIONS
+ request URI. #SIPit31 ASTERISK-24370 #close Reported by: Matt
+ Jordan ........ Merged revisions 424624 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+ * channels/pjsip/dialplan_functions.c, /: pjsip/dialplan_functions:
+ Handle PJSIP_MEDIA_OFFER called on non-PJSIP channels Calling
+ PJSIP_MEDIA_OFFER on a non-PJSIP channel is hazardous to your
+ health. It will treat the channels as a PJSIP channel, eventually
+ hitting an ao2 error, FRACKing on assertion error, and quite
+ likely crashing. This patch adds checks to the read/write
+ callbacks that ensure that the channel technology is of type
+ 'PJSIP' before attempting to operate on the channel. #SIPit31
+ ASTERISK-24382 #close Reported by: Matt Jordan ........ Merged
+ revisions 424621 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+ * /, res/res_hep_pjsip.c, res/res_pjsip/pjsip_distributor.c,
+ res/res_pjsip_logger.c: res_pjsip: Prevent crashes when PJPROJECT
+ presents an rdata with no message When a message that exceeds the
+ PJ_MAX_PKT_SIZE is sent over a reliable transport, it is possible
+ (although it shouldn't occur) for pjproject to pass up an rdata
+ object with a NULL msg in the msg_info. Needless to say, things
+ that attempt to dereference this are in for a rough ride. In
+ particular, this caused crashes in three different locations, all
+ of which are 'low level' enough to intercept an rdata object
+ early in processing: (1) res_pjsip_logger (2) res_hep_pjsip (3)
+ res_pjsip/distributor Anything that can intercept an rdata object
+ before res_pjsip/distributor should be defensive when looking at
+ the received packet. #SIPit31 ASTERISK-24369 #close Reported by:
+ Matt Jordan ........ Merged revisions 424618 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+ * res/res_pjsip_pubsub.c: res/res_pjsip_pubsub: Gracefully handle
+ errors when re-creating subscriptions A subscription that has
+ been persisted can - for various reasons - fail to be re-created
+ on startup. This patch resolves a number of crashes that occurred
+ when a subscription cannot be re-created on several off-nominal
+ paths. #SIPit31 ASTERISK-24368 #close Reported by: Matt Jordan
+
+2014-10-05 00:48 +0000 [r424552-424580] Corey Farrell <git@cfware.com>
+
+ * main/manager.c, /: Release AMI connections on shutdown.
+ ASTERISK-24378 #close Reported by: Corey Farrell Review:
+ https://reviewboard.asterisk.org/r/4037/ ........ Merged
+ revisions 424578 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 424579 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+ * channels/chan_motif.c: chan_motif: Correct last commit to use
+ ao2_cleanup to free format cap This fix applies to 13 and trunk.
+ ASTERISK-24384 #close Reported by: Corey Farrell Review:
+ https://reviewboard.asterisk.org/r/4043/
+
+ * /, channels/chan_motif.c: chan_motif: Release format capabilities
+ and config on module load error ASTERISK-24384 #close Reported
+ by: Corey Farrell Review:
+ https://reviewboard.asterisk.org/r/4043/ ........ Merged
+ revisions 424550 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 424551 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-10-03 21:56 +0000 [r424472-424529] Richard Mudgett <rmudgett@digium.com>
+
+ * /, CHANGES, res/res_pjsip.c: res_pjsip: Fix XML typo and update
+ CHANGES. ASTERISK-24199 ........ Merged revisions 424528 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+ * main/audiohook.c, apps/app_chanspy.c, apps/app_mixmonitor.c, /,
+ main/framehook.c: audiohooks: Reevaluate the bridge technology
+ when an audiohook is added or removed. Adding a mixmonitor to a
+ channel causes the bridge to change technologies from native to
+ simple_bridge so the call can be recorded. However, when the
+ mixmonitor is stopped the bridge does not switch back to the
+ native technology. * Added unbridge requests to reevaluate the
+ bridge when a channel audiohook is removed. * Moved the unbridge
+ request into ast_audiohook_attach() ensure that the bridge
+ reevaluates whenever an audiohook is attached. This simplified
+ the mixmonitor and chan_spy start code as well. * Added defensive
+ code to stop_mixmonitor_full() in case additional arguments are
+ ever added to the StopMixMonitor application. * Made
+ ast_framehook_detach() not do an unbridge request if the
+ framehook does not exist. * Made ast_framehook_list_fixup() do an
+ unbridge request if there are any framehooks. Also simplified the
+ loop. ASTERISK-24195 #close Reported by: Jonathan Rose Review:
+ https://reviewboard.asterisk.org/r/4046/ ........ Merged
+ revisions 424506 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+ * main/core_unreal.c, main/taskprocessor.c, channels/chan_iax2.c,
+ res/res_pjsip_session.c, main/channel.c, channels/chan_misdn.c,
+ channels/chan_skinny.c, funcs/func_frame_trace.c,
+ channels/chan_motif.c, include/asterisk/frame.h,
+ main/bridge_channel.c, channels/chan_pjsip.c,
+ channels/chan_unistim.c, include/asterisk/res_pjsip_session.h,
+ addons/chan_ooh323.c, /, include/asterisk/taskprocessor.h,
+ channels/chan_sip.c, res/res_pjsip_session.exports.in:
+ chan_pjsip: Fix deadlock when masquerading PJSIP channels.
+ Performing a directed call pickup resulted in a deadlock when
+ PJSIP channels were involved. A masquerade needs to hold onto the
+ channel locks while it swaps channel information between the two
+ channels involved in the masquerade. With PJSIP channels, the
+ fixup routine needed to push a fixup task onto the PJSIP
+ channel's serializer. Unfortunately, if the serializer was also
+ processing a task that needed to lock the channel, you get
+ deadlock. * Added a new control frame that is used to notify the
+ channels that a masquerade is about to start and when it has
+ completed. * Added the ability to query taskprocessors if the
+ current thread is the taskprocessor thread. * Added the ability
+ to suspend/unsuspend the PJSIP serializer thread so a masquerade
+ could fixup the PJSIP channel without using the serializer.
+ ASTERISK-24356 #close Reported by: rmudgett Review:
+ https://reviewboard.asterisk.org/r/4034/ ........ Merged
+ revisions 424471 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-10-03 15:54 +0000 [r424448] George Joseph <george.joseph@fairview5.com>
+
+ * /, main/sorcery.c: sorcery: Prevent SEGV in sorcery_wizard_create
+ when there's no create function When you call
+ ast_sorcery_create() you don't necessarily know which wizard is
+ going to be invoked. If it happens to be a wizard like 'config'
+ that doesn't have a 'create' virtual function you get a segfault
+ in the sorcery_wizard_create callback. This patch catches the
+ null function pointer, does an ast_assert, and logs an error.
+ Review: https://reviewboard.asterisk.org/r/4044/ ........ Merged
+ revisions 424447 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-10-03 13:58 +0000 [r424424-424427] Kinsey Moore <kmoore@digium.com>
+
+ * configs/samples/pjsip.conf.sample, /,
+ res/res_pjsip/pjsip_configuration.c: PJSIP: Restore functional
+ default for callerid_privacy The pjsip config option default
+ fixups from r424263 altered the functional default from
+ "allowed_not_screened" to "allowed". This change restores the
+ functional default value when none is provided. ........ Merged
+ revisions 424426 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+ * main/manager.c, /: Manager: Add missing fields and documentation
+ for CoreShowChannels This corrects some issues introduced in the
+ responses to the CoreShowChannels AMI command as well as adding
+ documentation for the responses. The command in Asterisk 12 was
+ missing the following fields: Duration, Application,
+ ApplicationData, and BridgedChannel and BridgedUniqueID (replaced
+ with BridgeId). ASTERISK-24262 #close Reported by: Mitch Claborn
+ Review: https://reviewboard.asterisk.org/r/4040/ ........ Merged
+ revisions 424423 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-10-03 07:54 +0000 [r424415] Joshua Colp <jcolp@digium.com>
+
+ * res/res_pjsip_session.c, /: res_pjsip_session: Reduce SDP size by
+ removing duplicate connection lines. Due to the architecture of
+ how media streams are handled each individual handler adds
+ connection details (IP address) for it. The first media stream is
+ then used as the top level SDP connection line. In practice each
+ line ends up being the same so to reduce the SDP size
+ stream-level connection information is also added to the SDP if
+ it differs from the top level SDP connection line. ........
+ Merged revisions 424414 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-10-02 21:52 +0000 [r424394] Richard Mudgett <rmudgett@digium.com>
+
+ * /, configs/samples/pjsip.conf.sample, res/res_pjsip.c,
+ res/res_pjsip/config_transport.c: res_pjsip: Make transport
+ cipher option accept a comma separated list of cipher names.
+ Improvements to the res_pjsip transport cipher option. * Made the
+ cipher option accept a comma separated list of OpenSSL cipher
+ names. Users of realtime will be glad if they have more than one
+ name to list. * Added the CLI command 'pjsip list ciphers' so a
+ user can know what OpenSSL names are available for the cipher
+ option. * Updated the cipher option online XML documentation to
+ specify what is expected for the value. * Updated
+ pjsip.conf.sample to not indicate that ALL is acceptable since
+ ALL does not imply a preference order for the ciphers and PJSIP
+ does not simply pass the string to OpenSSL for interpretation.
+ ASTERISK-24199 #close Reported by: Joshua Colp Review:
+ https://reviewboard.asterisk.org/r/4018/ ........ Merged
+ revisions 424393 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-10-02 20:15 +0000 [r424373] Jonathan Rose <jrose@digium.com>
+
+ * /,
+ contrib/ast-db-manage/config/versions/10aedae86a32_add_outgoing_enum_va.py
+ (added): Alembic: Add enumerator value to sippeers -> directmedia
+ - 'outgoing' The 'outgoing' value was left off of the enumerator
+ when first creating the column. This patch adds it, and should
+ gracefully upgrade keeping the existing data in tact.
+ ASTERISK-23781 #close Reported by: Stephen More Review:
+ https://reviewboard.asterisk.org/r/4013/ ........ Merged
+ revisions 424372 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-10-02 13:35 +0000 [r424338] Scott Griepentrog <sgriepentrog@digium.com>
+
+ * /, configs/samples/pjsip.conf.sample: res_pjsip: document use of
+ rewrite_contact in sample conf Without setting rewrite_contact,
+ an invite to an endpoint behind NAT will not reach it - unless
+ the endpoint itself uses STUN or TURN to discover it's public
+ URI. Thus, the use of this should be in the sample documentation.
+ Review: https://reviewboard.asterisk.org/r/4036/ ........ Merged
+ revisions 424337 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-10-01 22:52 +0000 [r424333] Jonathan Rose <jrose@digium.com>
+
+ * channels/chan_pjsip.c: chan_pjsip: Fix an assertion for channels
+ that lack formats on creation ASTERISK-24222 #close Reported by:
+ Mark Michelson Review: https://reviewboard.asterisk.org/r/4017/
+
+2014-10-01 20:36 +0000 [r424313] Corey Farrell <git@cfware.com>
+
+ * res/res_hep.c, /: res_hep: Release allocation reference to
+ configuration. ASTERISK-24362 #close Reported by: Corey Farrell
+ Review: https://reviewboard.asterisk.org/r/4026/ ........ Merged
+ revisions 424312 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-10-01 16:37 +0000 [r424288-424291] Joshua Colp <jcolp@digium.com>
+
+ * /, res/res_pjsip/pjsip_configuration.c,
+ configs/samples/pjsip.conf.sample, res/res_pjsip.c: res_pjsip:
+ Add 'dtls_fingerprint' option to configure DTLS fingerprint hash.
+ During the latest update to DTLS-SRTP support the ability to
+ configure the hash used for fingerprints was added. This gave us
+ two supported ones: SHA-1 and SHA-256. The default was
+ accordingly updated to SHA-256. Unfortunately this configuration
+ ability was not exposed within res_pjsip. This change adds a
+ dtls_fingerprint option that controls it. #SIPit31 ........
+ Merged revisions 424290 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+ * /, res/res_pjsip_sdp_rtp.c: res_pjsip_sdp_rtp: Accept DTLS
+ attributes in top level, not just media session. #SIPit31
+ ........ Merged revisions 424287 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-10-01 12:27 +0000 [r424245-424266] Kinsey Moore <kmoore@digium.com>
+
+ * res/res_pjsip/config_transport.c, /, res/res_pjsip/location.c,
+ res/res_pjsip_endpoint_identifier_ip.c,
+ res/res_pjsip/pjsip_configuration.c,
+ configs/samples/pjsip.conf.sample: PJSIP: Handle defaults
+ properly This updates the code behind PJSIP configuration options
+ with custom handlers to deal with the assigned default values
+ properly where it makes sense and adjusting the default value
+ where it doesn't. Before applying this patch, there were several
+ cases where the default value for an option would prevent that
+ config section from loading properly. Reported by: Thomas
+ Thompson Review: https://reviewboard.asterisk.org/r/4019/
+ ........ Merged revisions 424263 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+ * /, res/res_pjsip_nat.c: PJSIP: Force transport on contact rewrite
+ If contact rewriting is enabled but the contact differs in
+ transport from what is actually being used, messages after the
+ initial INVITE transaction can be sent to an incorrect
+ transport/port combination. In the case where this bug occurred
+ the remote party never received a BYE since it was sent to the
+ remote party's TCP port over UDP. Review:
+ https://reviewboard.asterisk.org/r/4032/ ........ Merged
+ revisions 424244 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-10-01 10:09 +0000 [r424179-424184] Walter Doekes <walter+asterisk@wjd.nu>
+
+ * /, channels/chan_sip.c: chan_sip: Simplify some unref code by
+ removing unlink_peer_from_tables. ASTERISK-22945 #related
+ Reported by: ibercom Patches:
+ asterisk11-chan_sip-simplifies.patch uploaded by ibercom (License
+ #6599) ........ Merged revisions 424181 from
+ http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
+ revisions 424182 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 424183 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+ * /, channels/chan_sip.c: chan_sip: Remove excess ref of realtime
+ peer before sip_poke_peer. The peer is referenced at the end of
+ sip_poke_peer, it should not get an extra ref before the call to
+ sip_poke_peer. This fixes a memory leak. ASTERISK-22945 #close
+ Reported by: ibercom Tested by: Yuriy Gorlichenko Patches:
+ asterisk11.patch uploaded by ibercom (License #6599) Review:
+ https://reviewboard.asterisk.org/r/4031/ ........ Merged
+ revisions 424176 from
+ http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
+ revisions 424177 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 424178 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-09-30 11:40 +0000 [r424153-424156] Joshua Colp <jcolp@digium.com>
+
+ * res/res_pjsip_sdp_rtp.c, /: res_pjsip_sdp_rtp: Don't place an
+ extra whitespace before 'rport' and don't put IPv6 addresses in
+ brackets. #SIPit31 ........ Merged revisions 424155 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+ * res/res_rtp_asterisk.c, /: res_rtp_asterisk: Ensure that the base
+ and mapped address for candidates is present in SDP. This change
+ fixes an issue where ICE candidates put into the SDP did not
+ contain the 'raddr' and 'rport' information for server reflexive
+ and relay candidates. #SIPit31 ........ Merged revisions 424151
+ from http://svn.asterisk.org/svn/asterisk/branches/11 ........
+ Merged revisions 424152 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-09-29 21:59 +0000 [r424129] George Joseph <george.joseph@fairview5.com>
+
+ * /, res/res_pjsip/pjsip_cli.c: pjsip_cli: Suppress header print on
+ error or no objects If there's an error on the pjsip command line
+ or there are no objects, don't print the column headers.
+ ASTERISK-24350 #close Reported-by: Brad Latus Tested-by: George
+ Joseph Tested-by: Brad Latus Review:
+ https://reviewboard.asterisk.org/r/4025/ ........ Merged
+ revisions 424128 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-09-29 21:26 +0000 [r424126] Walter Doekes <walter+asterisk@wjd.nu>
+
+ * /, contrib/scripts/autosupport: autosupport: Fix bashism. '==' is
+ bashism (bashspecific, fails when dash is /bin/sh). Anyway, a
+ 'case' works better there. Originally committed in r375059 and
+ r375060 on 2012-10-16 21:13:08. ASTERISK-20567 #close Reported
+ by: Tzafrir Cohen ........ Merged revisions 424117 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 424125 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-09-29 21:17 +0000 [r424097-424105] Richard Mudgett <rmudgett@digium.com>
+
+ * res/res_pjsip.c, res/res_pjsip_pubsub.c, res/res_pjsip_session.c,
+ /, res/res_pjsip_authenticator_digest.c: Simplify UUID generation
+ in several places. Replace code using ast_uuid_generate() with
+ simpler and faster code using ast_uuid_generate_str(). The new
+ code avoids a malloc(), free(), and copy. ........ Merged
+ revisions 424103 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+ * /, main/threadpool.c: threadpool.c: Minor cleanup fixes. * Fix
+ threadpool_alloc() prototype. * Add missing off-nominal NULL
+ check of pool in threadpool_alloc(). * searializer_create() does
+ not need to create the object with a lock as the lock is not
+ used. ........ Merged revisions 424096 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-09-27 12:43 +0000 [r424057] Joshua Colp <jcolp@digium.com>
+
+ * channels/chan_pjsip.c, res/res_pjsip_session.c, /:
+ res_pjsip_session: Add additional checks for delaying session
+ refreshes. There are certain situations which no checks existed
+ for which need to prevent session refreshes. This includes
+ sending a session refresh with SDP before SDP negotiation has
+ completed and sending a session refresh before the dialog itself
+ has been established. Checks for these have been added.
+ Additionally COLP related UPDATEs were including SDP when it is
+ not needed. Review: https://reviewboard.asterisk.org/r/4008/
+ ........ Merged revisions 424056 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-09-26 15:21 +0000 [r423992] Richard Mudgett <rmudgett@digium.com>
+
+ * /, res/res_fax.c: res_fax: Fix out of bounds error in
+ update_modem_bits(). ASTERISK-24357 #close Reported by: Jeremy
+ Laine Patches: res_fax_bounds.patch (license #6561) patch
+ uploaded by Jeremy Laine Modified patch to not use magic numbers.
+ ........ Merged revisions 423979 from
+ http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
+ revisions 423983 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 423987 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-09-26 08:25 +0000 [r423918] Walter Doekes <walter+asterisk@wjd.nu>
+
+ * /, doc/asterisk.8: docs: Escape unescaped minus sign in
+ asterisk.8 manpage. ASTERISK-23768 #close Reported by: Jeremy
+ Lainé Patches: escape_manpage_hyphen.patch uploaded by Jeremy
+ Lainé (License #6561) ........ Merged revisions 423915 from
+ http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
+ revisions 423916 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 423917 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-09-25 21:01 +0000 [r423895] Richard Mudgett <rmudgett@digium.com>
+
+ * res/res_pjsip.c, /: res_pjsip.c: Add missing off nominal cleanup
+ in ast_sip_push_task_synchronous(). * Made memset the std struct
+ in ast_sip_push_task_synchronous() because if DEBUG_THREADS is
+ enabled then uninitialized lock tracking data is used. ........
+ Merged revisions 423894 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-09-24 18:32 +0000 [r423867] Richard Mudgett <rmudgett@digium.com>
+
+ * /, res/res_pjsip/pjsip_options.c, res/res_pjsip.c:
+ pjsip_options.c: Fix race condition stopping periodic out of
+ dialog OPTIONS request. The crash on the issues is a result of an
+ invalid transport configuration change when asterisk is
+ restarted. The attempt to send the qualify request fails and we
+ cleaned up. However, the callback is also called which results in
+ a double unref of the objects involved. * Put a wrapper around
+ pjsip_endpt_send_request() to detect when the passed in callback
+ is called because of an error so callers can know to not cleanup.
+ * Made send_request_cb() able to handle repeated challenges (Up
+ to 10). * Fix periodic endpoint qualify OPTIONS sched deletion
+ race by avoiding it. The sched entry will no longer self stop and
+ must be externally stopped. * Added REF_DEBUG description tags to
+ struct sched_data in pjsip_options.c. * Fix some off-nominal ref
+ leaks in schedule_qualify(), qualify_and_schedule(). * Reordered
+ pjsip_options.c module start/stop code to cleanup better on
+ error. ASTERISK-24295 #close Reported by: Rogger Padilla Review:
+ https://reviewboard.asterisk.org/r/3954/ ........ Merged
+ revisions 423866 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-09-24 08:53 +0000 [r423803] Walter Doekes <walter+asterisk@wjd.nu>
+
+ * /, channels/chan_sip.c: chan_sip: Unref outbound proxy structure
+ on dialog/pvt destruction. Make sure outbound proxy refs are
+ always unreffed on dialog destruction. Review:
+ https://reviewboard.asterisk.org/r/4016/ ........ Merged
+ revisions 423800 from
+ http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
+ revisions 423801 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 423802 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-09-23 14:29 +0000 [r423783] Mark Michelson <mmichelson@digium.com>
+
+ * tests/test_cel.c, tests/test_cdr.c: Make CDR and CEL unit tests
+ less FRACKy. Prior to this commit, CDR and CEL tests were
+ expected to trigger FRACKs (i.e. assertions) due to the fact that
+ the channels they create have no formats on them. Some code was
+ independently added recently that attempts to prevent FRACKs from
+ occurring by failing early when attempting to set up translation
+ paths if one or both channels support no formats. Unfortunately,
+ this attempt to be helpful made the CDR and CEL tests go from
+ simply FRACKing to outright failing and in some cases, failing so
+ badly as to crash Asterisk. This commit seeks to correct past
+ mistakes by adding the ulaw format to channels created by the CDR
+ and CEL unit tests. This makes setting up translation paths
+ succeed, eliminates previously-seen FRACKs, and ultimately causes
+ the unit tests to succeed again. Review:
+ https://reviewboard.asterisk.org/r/4014
+
+2014-09-22 19:48 +0000 [r423660-423723] Walter Doekes <walter+asterisk@wjd.nu>
+
+ * /, channels/chan_sip.c: chan_sip: On INVITE retransmission, don't
+ add an extra 503 response. INVITE arrives to asterisk, asterisk
+ responds Busy(). If the INVITE is retransmitted, asterisk would
+ generate a 503 in addition to the 486. Thanks Torrey Searle for
+ providing a working regression test. ASTERISK-24335 #close
+ Review: https://reviewboard.asterisk.org/r/4003/ Patches:
+ retrans_486_invite.patch uploaded by Torrey Searle (License
+ #5334) ........ Merged revisions 423720 from
+ http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
+ revisions 423721 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 423722 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+ * /, main/editline/readline.c: cli.c: Fix tab completion "module
+ load" when MALLOC_DEBUG is enabled. r421600 conflicted with
+ r155763. ASTERISK-24348 #close ........ Merged revisions 423657
+ from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........
+ Merged revisions 423658 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 423659 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-09-21 01:15 +0000 [r423618-423641] Matthew Jordan <mjordan@digium.com>
+
+ * main/channel.c: main/channel: Unlock channel in off-nominal path
+ In r423414 (13) / r423415 (trunk), an API call that determines if
+ a format capability structure is empty was added. This returns
+ true if the format capability structure is completely empty or
+ "none". A check for this was added in channel.c's set_format
+ call. Unfortunately, when this check was true, it returned from
+ the function while still holding the channel lock. This caused
+ the CDR unit tests - which have a tendency to create channels
+ with no formats - to deadlock. Whoops. This patch unlocks the
+ channel on the off-nominal path.
+
+ * rest-api/api-docs/events.json, /: rest-api/api-docs/events.json:
+ Remove non-compliant 'extends' attribute Prior to the release of
+ Swagger 1.2, the attribute 'extends' was being promoted as a
+ possible way to show that a particular object extends an existing
+ object. Instead, the Swagger specification went with the
+ 'subTypes' attribute in the base object. This patch removes the
+ unsupported attribute; the object that the offending objects
+ proposed to extend already lists them in its 'subTypes'
+ attribute. ASTERISK-24300 #close Reported by: Bradley Watkins
+ ........ Merged revisions 423620 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+ * rest-api/api-docs/channels.json, rest-api/api-docs/sounds.json,
+ rest-api/api-docs/bridges.json,
+ rest-api/api-docs/recordings.json,
+ rest-api/api-docs/deviceStates.json,
+ rest-api/api-docs/endpoints.json,
+ rest-api/api-docs/mailboxes.json, rest-api/api-docs/events.json,
+ /, rest-api/api-docs/asterisk.json,
+ rest-api/api-docs/applications.json,
+ rest-api/api-docs/playbacks.json: rest-api/api-docs: Correct
+ basePath in resources to match top resources file The
+ resources.json file that defines the resource JSON files used
+ with ARI references a basePath of 'http://localhost:8088/ari'.
+ This does not match what is defined in the resource files
+ themselves, 'http://localhost:8088/stasis'. The correct base path
+ is the one that includes 'ari' in the URL; this patch updates the
+ various resource JSON files to have the correct basePath.
+ ASTERISK-24339 #close Reported by: Bradley Watkins ........
+ Merged revisions 423617 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-09-19 19:51 +0000 [r423580] Joshua Colp <jcolp@digium.com>
+
+ * /, res/res_pjsip_notify.c: res_pjsip_notify: Fix crash on
+ unload/load and don't say the module doesn't exist on reload.
+ When unloading the module did not unregister the CLI commands
+ causing a crash upon load when they were registered again. When
+ reloading the module the return value from the config options
+ framework was not checked to determine if an error occurred or
+ not. This caused a message to be output saying the module did not
+ exist when reloading if no changes were present. AST-1433 #close
+ AST-1434 #close ........ Merged revisions 423579 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-09-19 17:08 +0000 [r423561] Richard Mudgett <rmudgett@digium.com>
+
+ * channels/chan_pjsip.c, res/res_pjsip_sdp_rtp.c:
+ res_pjsip_sdp_rtp.c: Fix native formats containing formats that
+ were not negotiated. Outgoing PJSIP calls can result in
+ non-negotiated formats listed in the channel's native formats if
+ video formats are listed in the endpoint's configuration. The
+ resulting call could then use a non-negotiated format resulting
+ in one way audio. * Simplified the update of session->req_caps in
+ set_caps(). Why do something in five steps when only one is
+ needed? AFS-162 #close Review:
+ https://reviewboard.asterisk.org/r/4000/
+
+2014-09-19 15:18 +0000 [r423524-423530] Jonathan Rose <jrose@digium.com>
+
+ * /, main/stasis_channels.c: Stasis_channels: Resolve unfinished
+ Dials when doing masquerades Masquerades into channels that are
+ in the dialing state don't end their dial and this goes against
+ the model for things like CDRs and generating Dial end manager
+ actions and such. ASTERISK-24237 #close Reported by: Richard
+ Mudgett Review: https://reviewboard.asterisk.org/r/3990/ ........
+ Merged revisions 423525 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+ * channels/chan_iax2.c: chan_iax2: Fix a crash when using chan_iax2
+ jitterbuffer settings Caused by format changes in Asterisk 13
+ ASTERISK-24265 #close Reported by: Dafi Ni Review:
+ https://reviewboard.asterisk.org/r/3999/
+
+2014-09-19 12:45 +0000 [r423504] Kinsey Moore <kmoore@digium.com>
+
+ * include/asterisk/framehook.h, /, main/framehook.c,
+ res/res_pjsip_t38.c: PJSIP: Prevent T38 framehook being put on
+ wrong channel This change gives framehooks a reverse-direction
+ masquerade callback in addition to chan_fixup_cb similar to the
+ callback added to datastores to handle the same situation. The
+ new callback provides the same parameters as the fixup callback,
+ but is called on the new channel's framehooks before moving
+ framehooks from the old channel to the new channel. This gives
+ the framehooks an oppurtunity to decide whether they should
+ remain on the new channel or be removed. This new callback is
+ used to prevent the PJSIP T.38 framehook from remaining on a
+ masqueraded channel if the new channel is not also a PJSIP
+ channel. This was causing a crash when a local channel was
+ masqueraded into a PJSIP channel and the framehook was executed
+ on the local channel since the channel's tech private data was
+ not structured as expected. Review:
+ https://reviewboard.asterisk.org/r/4001/ ........ Merged
+ revisions 423503 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-09-18 19:30 +0000 [r423482] Sean Bright <sean@malleable.com>
+
+ * res/res_pjsip/config_auth.c, /: res_pjsip: Don't require a
+ password when doing userpass authentication. An empty password is
+ valid for username/password authentication so we should allow
+ password to be empty/not supplied. Review:
+ https://reviewboard.asterisk.org/r/3988 ........ Merged revisions
+ 423481 from http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-09-18 19:22 +0000 [r423478] George Joseph <george.joseph@fairview5.com>
+
+ * tests/test_strings.c, /, main/utils.c,
+ include/asterisk/strings.h: utils: Create ast_strsep function
+ that ignores separators inside quotes This function acts like
+ strsep with three exceptions... * The separator is a single
+ character instead of a string. * Separators inside quotes are
+ treated literally instead of like separators. * You can elect to
+ have leading and trailing whitespace and quotes stripped from the
+ result and have '\' sequences unescaped. Like strsep, ast_strsep
+ maintains no internal state and you can call it recursively using
+ different separators on the same storage. Also like strsep, for
+ consistent results, consecutive separators are not collapsed so
+ you may get an empty string as a valid result. Tested by: George
+ Joseph Review: https://reviewboard.asterisk.org/r/3989/ ........
+ Merged revisions 423476 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-09-18 18:31 +0000 [r423462] Mark Michelson <mmichelson@digium.com>
+
+ * res/res_pjsip_pubsub.c: Add subscription state test events. These
+ are needed for a set of batched notification RLS tests that are
+ about to be committed to the testsuite. Review:
+ https://reviewboard.asterisk.org/r/3967
+
+2014-09-18 17:11 +0000 [r423425] Jonathan Rose <jrose@digium.com>
+
+ * res/res_pjsip_endpoint_identifier_ip.c, /:
+ res_pjsip_endpoint_identifier_ip: Fix parsing of match value with
+ CIDR Also fixes comma separates match lists ASTERISK-24290 #close
+ Reported by: Ray Crumrine Review:
+ https://reviewboard.asterisk.org/r/3995/ ........ Merged
+ revisions 423417 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-09-18 17:09 +0000 [r423418-423423] Richard Mudgett <rmudgett@digium.com>
+
+ * bridges/bridge_softmix.c: bridge_softmix.c: Made use
+ ao2_replace() instead of the inline equivalent. * Clarified some
+ read/write format comments. * Fixed a doxygen tag typo.
+
+ * main/astobj2.c, contrib/scripts/refcounter.py, /:
+ astobj2.c/refcounter.py: Fix to deal with invalid object refs. *
+ Make astob2 REF_DEBUG output an invalid object line when an
+ invalid ao2 object ref/unref is attempted. This is similar to the
+ constructor/destructor lines. * Fixed refcounter.py to handle
+ skewed objects that have constructor/destructor states. * Made
+ refcounter.py highlight the invalid ao2 object refs by putting
+ them in their own section of the processed output file. * Made
+ refcounter.py highlight unreffing an object by more than one that
+ results in a negative ref count and the object being destroyed.
+ The abnormally destroyed object is reported in the invalid and
+ finalized object sections of the output. Review:
+ https://reviewboard.asterisk.org/r/3971/ ........ Merged
+ revisions 423349 from
+ http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
+ revisions 423400 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 423416 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-09-18 16:37 +0000 [r423348-423414] Mark Michelson <mmichelson@digium.com>
+
+ * include/asterisk/format_cap.h, main/channel.c, main/format_cap.c,
+ main/translate.c: Add API call to determine if format capability
+ structure is "empty". Empty here means that there are no formats
+ in the format_cap structure or the only format in it is the
+ "none" format. I've added calls to check the emptiness of a
+ format_cap in a few places in order to short-circuit operations
+ that would otherwise be pointless as well as to prevent some
+ assertions from being triggered in cases where channels with no
+ formats are used.
+
+ * /, res/res_fax_spandsp.c: res_fax_spandsp: Properly handle
+ cleanup before starting FAXes. If faxing fails at a very early
+ stage, then it is possible for us to pass a NULL t30 state
+ pointer to spandsp, which spandsp is none too pleased with. This
+ patch ensures that we pass the correct pointer to spandsp in the
+ situation where we have not yet set our local t30 state pointer.
+ ASTERISK-24301 #close Reported by Matt Jordan Patches:
+ ASTERISK-24301-fax.diff Uploaded by Mark Michelson (License
+ #5049) ........ Merged revisions 423360 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 423365 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+ * /, res/res_pjsip_mwi.c,
+ res/res_pjsip_dialog_info_body_generator.c,
+ res/res_pjsip_xpidf_body_generator.c,
+ res/res_pjsip_mwi_body_generator.c, res/res_pjsip_pubsub.c,
+ res/res_pjsip_exten_state.c, include/asterisk/res_pjsip_pubsub.h,
+ res/res_pjsip_pidf_body_generator.c: res_pjsip_pubsub: Add some
+ type safety when generating NOTIFY bodies. res_pjsip_pubsub has
+ two separate checks that it makes when a SUBSCRIBE arrives. * It
+ checks that there is a subscription handler for the Event * It
+ checks that there are body generators for the types in the Accept
+ header The problem is, there's nothing that ensures that these
+ two things will actually mesh with each other. For instance,
+ Asterisk will accept a subscription to MWI that accepts pidf+xml
+ bodies. That doesn't make sense. With this commit, we add some
+ type information to the mix. Subscription handlers state they
+ generate data of type X, and body generators state that they
+ consume data of type X. This way, Asterisk doesn't end up in some
+ hilariously mismatched situation like the one in the previous
+ paragraph. ASTERISK-24136 #close Reported by Mark Michelson
+ Review: https://reviewboard.asterisk.org/r/3877 Review:
+ https://reviewboard.asterisk.org/r/3878 ........ Merged revisions
+ 423344 from http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-09-18 15:13 +0000 [r423284] George Joseph <george.joseph@fairview5.com>
+
+ * /, res/res_pjsip/location.c,
+ res/res_pjsip_endpoint_identifier_ip.c,
+ res/res_pjsip/pjsip_configuration.c,
+ res/res_pjsip/pjsip_options.c, res/res_pjsip/config_transport.c,
+ include/asterisk/res_pjsip.h, res/res_pjsip/config_auth.c:
+ res_pjsip: ami: Fix error in AMI output when an endpoint has no
+ transport When no transport is associated to an endpoint, the AMI
+ output for PJSIPShowEndpoint indicates an error instead of
+ silently ignoring the missing transport. This patch causes the
+ error to appear only if a transport was specified on the endpoint
+ and the transport doesn't exist. It also fixes an issue with
+ counting the objects that were actually found. ASTERISK-24161
+ #close ASTERISK-24331 #close Tested by: George Joseph Review:
+ https://reviewboard.asterisk.org/r/3998/ ........ Merged
+ revisions 423282 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-09-18 15:00 +0000 [r423281] David M. Lee <dlee@digium.com>
+
+ * makeopts.in, Makefile: Only install dahdi_span_config_hook if
+ DAHDI is enabled This patch changes the install to only install
+ the hook script if DAHDI is enabled. It also adds the script to
+ the uninstall task, and moves the DAHDI_UDEV_HOOK_DIR variable so
+ that it's not between the _MAKEOPTS variables and their comment.
+ This allows installs which specify a --prefix to work normally,
+ as long as they don't enable DAHDI. Review:
+ https://reviewboard.asterisk.org/r/3972/
+
+2014-09-18 14:45 +0000 [r423279] George Joseph <george.joseph@fairview5.com>
+
+ * main/manager.c, /, include/asterisk/config.h, main/config.c:
+ config: bug: Fix SEGV in ast_category_insert when matching
+ category isn't found If you call ast_category_insert with a match
+ category that doesn't exist, the list traverse runs out of 'next'
+ categories and you get a SEGV. This patch adds check for the
+ end-of-list condition and changes the signature to return an int
+ for success/failure indication instead of a void. The only
+ consumer of this function is manager and it was also changed to
+ use the return value. Tested by: George Joseph Review:
+ https://reviewboard.asterisk.org/r/3993/ ........ Merged
+ revisions 423276 from
+ http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
+ revisions 423277 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 423278 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-09-17 18:05 +0000 [r423209-423255] Joshua Colp <jcolp@digium.com>
+
+ * res/res_rtp_asterisk.c, /: res_rtp_asterisk: Ensure that the
+ thread terminating pj stuff is registered. ........ Merged
+ revisions 423253 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 423254 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+ * res/res_rtp_asterisk.c, /: res_rtp_asterisk: Fix 100% CPU usage
+ due to timer heap thread spinning. Side note: I need a vacation.
+ ........ Merged revisions 423210 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 423211 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+ * res/res_rtp_asterisk.c, /: res_rtp_asterisk: Fix building when
+ pjproject is not used. ........ Merged revisions 423207 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 423208 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-09-16 16:32 +0000 [r423192] Scott Griepentrog <sgriepentrog@digium.com>
+
+ * apps/app_voicemail.c, include/asterisk/file.h, main/file.c:
+ Voicemail: get correct duration when copying file to vm Changes
+ made during format improvements resulted in the recording to
+ voicemail option 'm' of the MixMonitor app writing a zero length
+ duration in the msgXXXX.txt file. This change introduces a new
+ function ast_ratestream(), which provides the sample rate of the
+ format associated with the stream, and updates the app_voicemail
+ function for ast_app_copy_recording_to_vm to calculate the right
+ duration. Review: https://reviewboard.asterisk.org/r/3996/
+ ASTERISK-24328 #close
+
+2014-09-16 12:12 +0000 [r423152-423173] Joshua Colp <jcolp@digium.com>
+
+ * res/res_pjsip_session.c, /: res_pjsip_session: Fix usage of wrong
+ memory pool when creating local SDP. ........ Merged revisions
+ 423172 from http://svn.asterisk.org/svn/asterisk/branches/12
+
+ * include/asterisk/rtp_engine.h, res/res_rtp_asterisk.c, /:
+ res_rtp_asterisk: Fix a myriad of TURN client issues. 1. The
+ number of file descriptors an ioqueue instance can handle is
+ fixed, so we now spawn the required number to handle the load. 2.
+ Our transport identifiers were exceeding the range supported by
+ pjnath. 3. The TURN client did not set up client binding causing
+ needless bandwidth usage. 4. The code no longer updates address
+ information on each packet. 5. STUN traffic was getting looped
+ back to Asterisk instead of going through the TURN server. 6.
+ Synchronization now ensures things are completely setup or
+ destroyed. 7. Logging now reflects the target the TURN server is
+ sending to/receiving from on our behalf. ASTERISK-23577 #close
+ Reported by: Jay Jideliov ASTERISK-23634 #close Reported by:
+ Roman Skvirsky Review: https://reviewboard.asterisk.org/r/3982/
+ ........ Merged revisions 423150 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 423151 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-09-15 10:49 +0000 [r423069-423129] Walter Doekes <walter+asterisk@wjd.nu>
+
+ * /,
+ contrib/ast-db-manage/config/versions/5950038a6ead_fix_pjsip_verifiy_typo.py
+ (added): contrib: Fix verifyi typo in alembic DB script
+ ps_transport table. Reported by: Zogot (on IRC) Patches: tmp.diff
+ uploaded by Zogot, cleaned up by me. ........ Merged revisions
+ 423128 from http://svn.asterisk.org/svn/asterisk/branches/12
+
+ * configs/samples/sip.conf.sample, /: chan_sip: Clarify that
+ sipdebug=yes cannot be undone by the CLI. Document it in
+ sip.conf. ASTERISK-24249 #close Reported by: Avinash Mohod
+ Review: https://reviewboard.asterisk.org/r/3926/ ........ Merged
+ revisions 423066 from
+ http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
+ revisions 423067 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 423068 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-09-12 16:09 +0000 [r422985] Jonathan Rose <jrose@digium.com>
+
+ * main/config.c, /: Realtime: Fix a bug that caused realtime
+ destroy command to crash Also has could affect with anything that
+ goes through ast_destroy_realtime. If a CLI user used the command
+ 'realtime destroy <family>' with only a single column/value pair,
+ Asterisk would crash when trying to create a variable list from a
+ NULL value. ASTERISK-24231 #close Reported by: Niklas Larsson
+ Review: https://reviewboard.asterisk.org/r/3985/ ........ Merged
+ revisions 422984 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-09-11 22:16 +0000 [r422965] Mark Michelson <mmichelson@digium.com>
+
+ * /, main/app.c: Remove undocumented default behavior of
+ ast_play_and_record_full acceptdtmf. ast_play_and_record_full()
+ has a parameter called "acceptdtmf" that is a string of
+ acceptable DTMF digits that may be pressed by a caller to end and
+ accept the recording. ARI uses this function in order to perform
+ recording, and it provides options for what is passed as
+ acceptdtmf to ast_play_and_record_full(). By default, ARI passes
+ an empty string, with the intention that no DTMF can be used to
+ end the recording. The problem is that ast_play_and_record_full()
+ attempts to be "helpful" by setting "#" as the acceptdtmf if an
+ empty string or NULL pointer has been passed in. With ARI, this
+ results in unexpected behavior occurring if you have attempted to
+ intercept "#" yourself in order to perform some other
+ manipulation of the live recording. This change removes the
+ "helpful" behavior by no longer accepting "#" as a default
+ acceptdtmf if none is specified by the caller of
+ ast_play_and_record_full(). This makes the ARI scenario work as
+ expected. The other callers of ast_play_and_record_full() are
+ app_voicemail and app_minivm, and in both cases, they pass an
+ explicit "#" to ast_play_and_record_full() as acceptdtmf, so they
+ are unaffected by this change. ........ Merged revisions 422964
+ from http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-09-10 16:04 +0000 [r422905] George Joseph <george.joseph@fairview5.com>
+
+ * /, main/config.c: config: bug: fix truncation of included config
+ files on permissions error ast_config_text_file_save() currently
+ truncates include files as they are processed. If a subsequent
+ include file or the main config file has a permissions error that
+ prevents writing, earlier include files are left truncated
+ resulting in a frantic search for backups. This patch causes
+ ast_config_text_file_save to check for write access on all files
+ before it truncates any of them. Will be applied 1.8 > trunk.
+ Tested by: George Joseph Review:
+ https://reviewboard.asterisk.org/r/3986/ ........ Merged
+ revisions 422900 from
+ http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
+ revisions 422903 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 422904 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-09-10 15:59 +0000 [r422901] Sean Bright <sean@malleable.com>
+
+ * res/res_pjsip/config_auth.c, /: pjsip/config_auth.c: Add missing
+ whitespace to log messages. The errors generated when validating
+ 'auth' settings are missing a space which makes the messages a
+ little confusing. ........ Merged revisions 422899 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-09-09 20:01 +0000 [r422883] Rusty Newton <rnewton@digium.com>
+
+ * /, sounds/sounds.xml, sounds/Makefile: Sounds/BuildSystem:
+ Modifications to include new releases and Japanese language.
+ Modifying Makefile and sounds.xml to include new core 1.4.26 and
+ extra 1.4.15 sound prompt releases, plus the new Japanese core
+ sound prompts contributed by QLOOG. ASTERISK-23324 Reported by:
+ Kevin McCoy Tested by: Rusty Newton ........ Merged revisions
+ 422789 from http://svn.asterisk.org/svn/asterisk/branches/1.8
+ ........ Merged revisions 422790 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 422791 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-09-08 18:03 +0000 [r422851-422855] Mark Michelson <mmichelson@digium.com>
+
+ * configs/samples/pjsip.conf.sample: Add note about configuring
+ list_items on a single line.
+
+ * configs/samples/pjsip.conf.sample: Add sample configuration for
+ resource lists. On review /r/3977, it was recommended to note in
+ the sample configuration about the size limitation for resource
+ lists. However, since there was no section in the sample
+ configuration at all for resource list subscriptions, I decided
+ to make a separate commit where I have added the necessary sample
+ configuration as well as the size limitation warning.
+
+ * res/res_pjsip_pubsub.c: Pre-allocate transmission data buffer for
+ RLS NOTIFY requests. PJSIP, unless a constant is modified at
+ compilation time, limits SIP requests to 4000 bytes. Full-state
+ RLS notifications can easily exceed this limit with moderately
+ small lists. This changeset allows for Asterisk to work around
+ this size limit by performing its own allocation of the
+ transmission data buffer. This way, Asterisk can allocate a
+ buffer that exceeds the built-in maximum. We still impose our own
+ limit of 64000 bytes, mainly because making allocations larger
+ than that is a bit absurd. ASTERISK-24181 #close Reported by Mark
+ Michelson Review: https://reviewboard.asterisk.org/r/3977
+
+2014-09-08 15:41 +0000 [r422836] Jonathan Rose <jrose@digium.com>
+
+ * res/res_pjsip_pubsub.c: res_pjsip_pubsub: Check supported headers
+ for eventlist when subscribing to resource list
+ https://wiki.asterisk.org/wiki/display/AST/Resource+List+Subscription+Test+Plan
+ According to the off-nominal plan, if evenlist support is not
+ specified in a SUBSCRIBE's supported header(s), that subscription
+ should be rejected with an error. ASTERISK-23871 Reported by:
+ Mark Michelson Review:
+ https://reviewboard.asterisk.org/r/3960/diff/#index_header
+
+2014-09-06 22:49 +0000 [r422767-422770] Matthew Jordan <mjordan@digium.com>
+
+ * /, main/cdr.c: main/cdr: Copy over location information during a
+ fork When a CDR is forked, a new CDR is created and appended to
+ the CDR chain for the Party A. The forked CDR starts life off as
+ a clone of the last non-finalized for the particular Party A. In
+ the past, merely copying over the snapshots for Party A/Party B
+ would be sufficient. However, as the CDRs now contain cached
+ information from Party A - specifically application/data,
+ context, and extension - we need to copy that over during a fork
+ as well. Huzzah for unit tests catching this when the
+ context/extension were derived from a cached value on the CDR
+ instead of on Party A. ........ Merged revisions 422769 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+ * main/rtp_engine.c, /: main/rtp_engine: Format NTP timestamps as
+ unsigned ints On some systems, a timeval's tv_sec/tv_usec will be
+ unsigned lont ints, as opposed to long ints. When the RTP engine
+ formats these as strings, it was previously formatting them as
+ signed integers, which can result in some odd negative timestamp
+ values (particularly on 32-bit systems). This patch formats the
+ values as unsigned long integers. ........ Merged revisions
+ 422766 from http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-09-06 19:12 +0000 [r422747] Joshua Colp <jcolp@digium.com>
+
+ * res/res_pjsip_sdp_rtp.c, /: res_pjsip_sdp_rtp: Fix retrieval of
+ "ice-pwd" attribute if in session and not media stream. ........
+ Merged revisions 422746 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-09-05 22:03 +0000 [r422716-422719] Matthew Jordan <mjordan@digium.com>
+
+ * main/cdr.c, /, apps/app_macro.c, include/asterisk/channel.h,
+ apps/app_stack.c: main/cdrs: Preserve context/extension when
+ executing a Macro or GoSub The context/extension in a CDR is
+ generally considered the destination of a call. When looking at a
+ 2-party call CDR, users will typically be presented with the
+ following: context exten channel dest_channel app data default
+ 1000 SIP/8675309 SIP/1000 Dial SIP/1000,,20 However, if the Dial
+ actually takes place in a Macro, the current behaviour in 12 will
+ result in the following CDR: context exten channel dest_channel
+ app data macro-dial s SIP/8675309 SIP/1000 Dial SIP/1000,,20 The
+ same is true of a GoSub: context exten channel dest_channel app
+ data subs dial_stuff SIP/8675309 SIP/1000 Dial SIP/1000,,20 This
+ generally makes the context/exten fields less than useful. It
+ isn't hard to preserve these values in the CDR state machine;
+ however, we need to have something that informs us when a channel
+ is executing a subroutine. Prior to this patch, there isn't
+ anything that does this. This patch solves this problem by adding
+ a new channel flag, AST_FLAG_SUBROUTINE_EXEC. This flag is set on
+ a channel when it executes a Macro or a GoSub. The CDR engine
+ looks for this value when updating a Party A snapshot; if the
+ flag is present, we don't override the context/exten on the main
+ CDR object. In a funny quirk, executing a hangup handler must
+ *not* abide by this logic, as the endbeforehexten logic assumes
+ that the user wants to see data that occurs in hangup logic,
+ which includes those subroutines. Since those execute outside of
+ a typical Dial operation (and will typically have their own
+ dedicated CDR anyway), this is unlikely to cause any heartburn.
+ Review: https://reviewboard.asterisk.org/r/3962/ ASTERISK-24254
+ #close Reported by: tm1000, Tony Lewis Tested by: Tony Lewis
+ ........ Merged revisions 422718 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+ * main/cdr.c, /: main/cdr: Fix crash/memory consumption in CDRs in
+ multi-party bridge scenarios This patch fixes an issue where CDRs
+ would get stuck generating an infinite number of CDRs, eventually
+ crashing Asterisk (and consuming a lot of memory along the way).
+ When a channel enters into a multi-party bridge, the CDR engine
+ creates mappings of each participant to each other participant,
+ picking the 'A' party as it goes. So, if we have four channels in
+ a multi-party bridge (Alice, Bob, Charlie, Denise), we would have
+ something like: Alice => Bob Alice => Charlie Alice => Denise Bob
+ => Charlie Bob => Denise Charlie => Denise This works fine when
+ participants enter the bridge a single time. When a participant
+ leaves a bridge, the CDRs for that channel are transitioned to a
+ finalized state. The bug occurs if Bob rejoins. When the CDR
+ engine creates mappings between the channels, it walks through
+ all the participants currently in the bridge, and realizes that
+ no one in the bridge can create a CDR with the channel (Bob). As
+ such it creates a new CDR for the candidate and appends it to
+ that candidate's chain. Unfortunately, on this particular code
+ path, it doesn't stop traversing the candidate's chain. Since we
+ just added ourselves to the chain, this causes the loop to keep
+ going, constantly adding new CDRs. This patch makes it so the
+ engine bails when it creates a CDR match in this case. Review:
+ https://reviewboard.asterisk.org/r/3964/ ASTERISK-24241 #close
+ Reported by: Deepak Singh Rawat Tested by: Deepak Singh Rawat
+ ASTERISK-24208 Reported by: Frankie Chin ........ Merged
+ revisions 422715 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-09-05 20:35 +0000 [r422700] Richard Mudgett <rmudgett@digium.com>
+
+ * funcs/func_channel.c: func_channel.c: Add missing locking to some
+ CHANNEL() requests. * The CHANNEL() audionativeformat,
+ videonativeformat, audioreadformat, and audiowriteformat now need
+ locking since the media format rework when accessing the
+ channel's format pointers. * Increased the buffer size for
+ CHANNEL() audionativeformat and videonativeformat output strings
+ since the allow=all can be a lengthy list. * Tweaked the
+ CHANNEL() XML documentation for secure_bridge_signaling,
+ secure_bridge_media, and state. * Ensured the output buffer is
+ initialized for secure_bridge_signaling and secure_bridge_media.
+ * Made use the locked_copy_string() macro instead of inlining it
+ for trace and checkhangup.
+
+2014-09-05 20:11 +0000 [r422665-422684] Jonathan Rose <jrose@digium.com>
+
+ * main/dial.c, include/asterisk/dial.h: Dial API: Add a dial option
+ to indicate the dialed channel will replace dialer Adds an option
+ to the dial API that marks an outgoing dial as replacing the
+ dialing channel for the purpose of propagating accountcode. When
+ it is used, AST_CHANNEL_REQUESTOR_REPLACEMENT is used instead of
+ AST_CHANNEL_REQUESTOR_BRIDGE_PEER when setting accountcodes on
+ the involved channels with ast_channel_req_accountcodes. Review:
+ https://reviewboard.asterisk.org/r/3968/
+
+ * main/cli.c, /: Call IDs: Fix appearance of call ID in core show
+ channels when NULL NULL call IDs were meant to appear as '(none)'
+ but instead were showing the contents of an uninitialized
+ character buffer. ASTERISK-24223 Review:
+ https://reviewboard.asterisk.org/r/3979/ ........ Merged
+ revisions 422664 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-09-05 17:36 +0000 [r422661] Richard Mudgett <rmudgett@digium.com>
+
+ * main/devicestate.c, channels/chan_iax2.c: devicestate.c: Minor
+ tweaks * In ast_state_chan2dev() use ARRAY_LEN() instead of a
+ sentinel value in chan2dev[]. * Fix some comments in chan_iax2.c.
+
+2014-09-05 13:28 +0000 [r422646] Kinsey Moore <kmoore@digium.com>
+
+ * menuselect/menuselect.c: Menuselect: Fix incorrect enabling on
+ failed deps This corrects a situation where menuselect can
+ incorrectly enable a module by default that has defaultenabled
+ set to "no" and has failed/non-selected dependencies. The bug is
+ due to an inverted test when checking for whether the given
+ module should be set to enabled by default on load. Review:
+ https://reviewboard.asterisk.org/r/3975/ Reported by: John
+ Bigelow
+
+2014-09-04 21:23 +0000 [r422631] Jonathan Rose <jrose@digium.com>
+
+ * main/manager.c, /: Manager: Require read permission for SYSTEM in
+ order to send FullyBooted Review:
+ https://reviewboard.asterisk.org/r/3969/ ........ Merged
+ revisions 422584 from
+ http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
+ revisions 422625 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 422626 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-09-03 14:05 +0000 [r422558] Joshua Colp <jcolp@digium.com>
+
+ * res/res_pjsip_transport_websocket.c, /:
+ res_pjsip_transport_websocket: Fix crash when the Contact header
+ is not a URI. The code for changing the Contact header wrongly
+ assumed that the Contact would always contain a URI. This is
+ incorrect. ASTERISK-24271 Reported by: Dafi Ni ........ Merged
+ revisions 422557 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-09-02 20:29 +0000 [r422542] Mark Michelson <mmichelson@digium.com>
+
+ * /, channels/chan_pjsip.c, res/res_pjsip_diversion.c,
+ res/res_pjsip_session.c, include/asterisk/res_pjsip_session.h:
+ Resolve race condition where channels enter dialplan application
+ before media has been negotiated. Testsuite tests will
+ occasionally fail because on reception of a 200 OK SIP response,
+ an AST_CONTROL_ANSWER frame is queued prior to when media has
+ finished being negotiated. This is because session supplements
+ are called into before PJSIP's inv_session code has told us that
+ media has been updated. Sometimes the queued answer frame is
+ handled by the PBX thread before the ensuing media negotiations
+ occur, causing a test failure. As it turns out, there is another
+ place that session supplements could be called into, which is
+ after media has finished getting negotiated. What this commit
+ introduces is a means for session supplements to indicate when
+ they wish to be called into when handling an incoming SIP
+ response. By default, all session supplements will be run at the
+ same point that they were prior to this commit. However, session
+ supplements may indicate that they wish to be handled earlier
+ than normal on redirects, or they may indicate they wish to be
+ handled after media has been negotiated. In this changeset, two
+ session supplements have been updated to indicate a preference
+ for when they should be run: res_pjsip_diversion executes before
+ handling redirection in order to get information from the
+ Diversion header, and chan_pjsip now handles responses to INVITEs
+ after media negotiation to fix the race condition mentioned
+ previously. ASTERISK-24212 #close Reported by Matt Jordan Review:
+ https://reviewboard.asterisk.org/r/3930 ........ Merged revisions
+ 422536 from http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-09-01 14:16 +0000 [r422504-422507] Matthew Jordan <mjordan@digium.com>
+
+ * main/cli.c, /: main/cli: Do not attempt to show CDR data for
+ internal channels Internal channels don't have CDRs. Querying the
+ CDR engine for their variables will make it cranky. ........
+ Merged revisions 422506 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+ * res/res_stasis.c, /, res/stasis/stasis_bridge.c: res_stasis:
+ Don't play MoH to channels by default when added to holding
+ bridges When ARI manipulates a bridge, it generally doesn't care
+ what the mixing technology is. Operations on a bridge initiated
+ through ARI should perform their action in generally the same
+ way, regardless of the bridge's mixing technology. While the
+ mixing technology may determine how media flows to channels, the
+ actual operations on a bridge themselves should be the same.
+ Currently, this isn't the case with holding bridges. When a
+ channel joins without a role, MoH is started on that channel
+ automatically. Subsequent bridge operations that would stop MoH
+ would fail (as there is no Announcer channel playing MoH to the
+ bridge). Starting MoH on the bridge will also create two MoH
+ streams: one from the MoH being played on the participant
+ channel, and one from the announcer channel. From the perspective
+ of ARI users, this is counter-intuitive - I would not expect MoH
+ to be started for me. The mixing technology determines how media
+ is shared between participants, not the application experience.
+ This patch does the following: * The Stasis bridge class now
+ inspects channels as they are going into a bridge. If the bridge
+ has a holding capability, and the channel has no roles, we give
+ it a participant role and mark the default behaviour to have no
+ entertainment. This allows addChannel operations to continue to
+ set a participant role with an entertainment option if it felt
+ like it (or could do it). * The music on hold channel is now
+ Stasis approved (tm) Review:
+ https://reviewboard.asterisk.org/r/3929/ ASTERISK-24264 #close
+ Reported by: Samuel Galarneau Tested by: Samuel Galarneau
+ ........ Merged revisions 422503 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-08-30 17:32 +0000 [r422442-422445] George Joseph <george.joseph@fairview5.com>
+
+ * apps/app_confbridge.c, /: confbridge: Add Duration to
+ ConfbridgeList event The ConfbridgeList event doesn't include how
+ long the user has been a member of the conference. This patch
+ adds Duration (seconds) which is based on user->chan->answertime.
+ Tested by: George Joseph Review:
+ https://reviewboard.asterisk.org/r/3955/ ........ Merged
+ revisions 422444 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+ * main/manager.c, /: manager: Make WaitEvent action respect
+ eventfilters A WaitEvent issued via an http session isn't
+ respecting eventfilters defined for the user. I just added a
+ match_filter to the predicate that controls astman_append. Tested
+ by: George Joseph Review:
+ https://reviewboard.asterisk.org/r/3958/ ........ Merged
+ revisions 422439 from
+ http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
+ revisions 422440 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 422441 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-08-29 19:40 +0000 [r422374-422379] Matthew Jordan <mjordan@digium.com>
+
+ * doc/smsq.8 (added), /: doc: Add a manpage for the smsq utility
+ This patch adds a manpage for the smsq utility. Note that this is
+ one of the patches the Debian distro applies for the Asterisk
+ project, as per ASTERISK-24191. Review:
+ https://reviewboard.asterisk.org/r/3895/ ASTERISK-24171 #close
+ Reported by: Jeremy Laine patches: smsq.8 uploaded by Jeremy
+ Laine (License 6561) ........ Merged revisions 422376 from
+ http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
+ revisions 422377 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 422378 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+ * doc/aelparse.8 (added), /: doc: Add a manpage for the aelparse
+ utility This patch adds a manpage for the aelparse utility. Note
+ that this is one of the patches the Debian distro applies for the
+ Asterisk project, as per ASTERISK-24191. Review:
+ https://reviewboard.asterisk.org/r/3896/ ASTERISK-24171 #close
+ Reported by: Jeremy Laine patches: aelparse.8 uploaded by Jeremy
+ Laine (License 6561) ........ Merged revisions 422371 from
+ http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
+ revisions 422372 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 422373 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-08-29 19:05 +0000 [r422359] Scott Griepentrog <sgriepentrog@digium.com>
+
+ * channels/chan_sip.c: The assertion that peer was not found on
+ final event message was being triggered on configuration reload.
+ This patch changes that case to just return instead. Review:
+ https://reviewboard.asterisk.org/r/3953/ Commited in trunk
+ revision 422358
+
+2014-08-28 21:54 +0000 [r422296] Matthew Jordan <mjordan@digium.com>
+
+ * LICENSE, /: LICENSE: Clarify language in Asterisk's LICENSE to
+ allow for linking to UniMRCP The UniMRCP project distributes
+ Asterisk modules that integrate Asterisk with UniMRCP, and other
+ Asterisk users use the UniMRCP library as well. Unfortunately,
+ the UniMRCP license is Apache 2.0, which per the Free Software
+ Foundation, is not a compatible license with the GPLv2. "Please
+ note that this license is not compatible with GPL version 2,
+ because it has some requirements that are not in that GPL
+ version. These include certain patent termination and
+ indemnification provisions. The patent termination provision is a
+ good thing, which is why we recommend the Apache 2.0 license for
+ substantial programs over other lax permissive licenses." On the
+ other hand, UniMRCP is a great project and we'd like to let
+ people use it with Asterisk. This patch updates the LICENSE text
+ to allow users to link Asterisk with UniMRCP and distribute the
+ resulting binaries. ........ Merged revisions 422293 from
+ http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
+ revisions 422294 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 422295 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-08-28 20:30 +0000 [r422276] Michael L. Young <elgueromexicano@gmail.com>
+
+ * /, channels/chan_iax2.c: chan_iax2: Fix Dynamic IAX2
+ Registrations After Temporary DNS Failure The reporter on the
+ issue found some issues when upgrading from version 10 to 11 on
+ 55 hosts. Two situations that can occur with dynamic
+ registrations. 1. With dnsmgr disabled, if the host is not
+ resolvable we are not trying to resolve the host again when it is
+ time to attempt to register again. This results in never
+ registering to the host. 2. With dnsmgr enabled, when the host is
+ temporarily not resolvable the address is set to 0.0.0.0:0 and
+ then when the host is resolvable the port is not being restored
+ and stays set to 0. This patch resolves these two issues by: *
+ Storing the hostname so that it can be used for resolving with
+ DNS. * Resolve the hostname on the next scheduled attempt to
+ register. * Storing the port used to reach the host so that when
+ the hostname is resolvable again, we can set the port again if
+ the port is still unset after looking up the host. ASTERISK-23767
+ #close Reported by: David Herselman Tested by: David Herselman,
+ Michael L. Young Patches:
+ asterisk-23767-dns_reg_retry_and_set_port_11_v3.diff uploaded by
+ Michael L. Young (license 5026) Review:
+ https://reviewboard.asterisk.org/r/3856/ ........ Merged
+ revisions 422274 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 422275 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-08-28 17:25 +0000 [r422256] Richard Mudgett <rmudgett@digium.com>
+
+ * /, UPGRADE.txt: Added ConfBridge AMI event note to UPGRADE.txt.
+ ........ Merged revisions 422255 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-08-28 15:49 +0000 [r422239] Mark Michelson <mmichelson@digium.com>
+
+ * res/res_pjsip_pubsub.c: Fix bug that did not allow for multiple
+ batched RLS notifications to be sent. A misunderstanding of how
+ the scheduler worked caused further batched notifications beyond
+ the first not to get scheduled. Now we reset our scheduler ID to
+ -1 after the batched notification is sent. This way, further
+ notifications can be scheduled when they arise.
+
+2014-08-28 00:36 +0000 [r422200-422215] Richard Mudgett <rmudgett@digium.com>
+
+ * res/res_pjsip/pjsip_options.c, /: res/res_pjsip/pjsip_options.c:
+ Eliminate excessive RAII_VAR usage. * Fix off nominal ref leak in
+ find_or_create_contact_status(). * Add missing NULL check of
+ status in update_contact_status() and init_start_time(). ........
+ Merged revisions 422214 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+ * main/sched.c, include/asterisk/sched.h: sched: Fix typo and
+ whitespace change.
+
+2014-08-27 17:29 +0000 [r422177] George Joseph <george.joseph@fairview5.com>
+
+ * /, apps/confbridge/confbridge_manager.c, apps/app_confbridge.c:
+ confbridge: Add 'Admin' param to join, leave, mute, unmute and
+ talking events Currently there's no way to tell if a user is an
+ admin or not when receiving the join, leave, mute, unmute and
+ talking events. This patch adds that capability. Tested by:
+ George Joseph Review: https://reviewboard.asterisk.org/r/3950/
+ ........ Merged revisions 422176 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-08-27 15:31 +0000 [r422154] Kinsey Moore <kmoore@digium.com>
+
+ * include/asterisk/utils.h, /, channels/chan_sip.c,
+ tests/test_callerid.c (added), tests/test_utils.c,
+ main/callerid.c, main/utils.c, res/res_pjsip_caller_id.c:
+ CallerID: Fix parsing of malformed callerid This allows the
+ callerid parsing function to handle malformed input strings and
+ strings containing escaped and unescaped double quotes. This also
+ adds a unittest to cover many of the cases where the parsing
+ algorithm previously failed. Review:
+ https://reviewboard.asterisk.org/r/3923/ Review:
+ https://reviewboard.asterisk.org/r/3933/ ........ Merged
+ revisions 422112 from
+ http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
+ revisions 422113 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 422114 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-08-26 23:28 +0000 [r422091] George Joseph <george.joseph@fairview5.com>
+
+ * apps/app_confbridge.c, /: confbridge: Make kick, mute and unmute
+ handle channel targets consistently. Kick, mute and unmute were a
+ little inconsistent in their handling of channel targets. This
+ patch cleans that up by insuring they all handle the 'all' target
+ consistently and adds the 'participants' target which acts on
+ non-admins. Documentation for kick was also cleaned up as it
+ never supported partial channel names. Tested by: George Joseph
+ Review: https://reviewboard.asterisk.org/r/3944/ ........ Merged
+ revisions 422090 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-08-26 22:13 +0000 [r422071] Mark Michelson <mmichelson@digium.com>
+
+ * main/sched.c, /: Fix race condition in the scheduler when
+ deleting a running entry. When scheduled tasks run, they are
+ removed from the heap (or hashtab). When a scheduled task is
+ deleted, if the task can't be found in the heap (or hashtab), an
+ assertion is triggered. If DO_CRASH is enabled, this assertion
+ causes a crash. The problem is, sometimes it just so happens that
+ someone attempts to delete a scheduled task at the time that it
+ is running, leading to a crash. This change corrects the issue by
+ tracking which task is currently running. If that task is
+ attempted to be deleted, then we mark the task, and then wait for
+ the task to complete. This way, we can be sure to coordinate task
+ deletion and memory freeing. ASTERISK-24212 Reported by Matt
+ Jordan Review: https://reviewboard.asterisk.org/r/3927 ........
+ Merged revisions 422070 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-08-25 16:44 +0000 [r421979-422037] Richard Mudgett <rmudgett@digium.com>
+
+ * res/res_musiconhold.c: res_musiconhold.c: Release any format refs
+ before memset(). * Clear the channel music_state pointer before
+ destroying the music_state object for safety.
+
+ * res/res_musiconhold.c, /: res_musiconhold: Fix MOH restarting
+ where it left off from the last hold. Restore code removed by
+ https://reviewboard.asterisk.org/r/3536/ that introduced a
+ regression that prevents MOH from restarting were it left off the
+ last time. ASTERISK-24019 #close Reported by: Jason Richards
+ Patches: jira_asterisk_24019_v1.8.patch (license #5621) patch
+ uploaded by rmudgett Review:
+ https://reviewboard.asterisk.org/r/3928/ ........ Merged
+ revisions 421976 from
+ http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
+ revisions 421977 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 421978 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-08-24 19:36 +0000 [r421911-421956] Joshua Colp <jcolp@digium.com>
+
+ * res/res_pjsip_transport_websocket.c, /:
+ res_pjsip_transport_websocket: Attach the Websocket module on
+ outgoing INVITEs. In order to alter the Contact header on
+ in-dialog requests and responses the Websocket module must be
+ attached on outgoing INVITEs. The Contact header is modified so
+ that the PJSIP transport layer can find and use the existing
+ Websocket connection based on the source IP address, port, and
+ transport. ASTERISK-24143 #close Reported by: Aleksei Kulakov
+ ........ Merged revisions 421955 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+ * /, res/res_pjsip_transport_websocket.c:
+ res_pjsip_transport_websocket: Fix a progressive memory growth.
+ The packet structure used to receive messages was using the
+ transport pool. This meant that for each parsing the pool would
+ grow accordingly. Since memory can not be reclaimed without
+ resetting it this would cause the memory pool to grow and grow.
+ This change uses a specific memory pool for the packet structure
+ and resets it to a fresh state after the message has been
+ received and handled. ........ Merged revisions 421939 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+ * /, res/res_pjsip_transport_websocket.c:
+ res_pjsip_transport_websocket: Ensure secure Websocket clients
+ can be called. This change enforces the transport in the Contact
+ header for Websocket clients. Previously a client may provide a
+ transport of 'ws' when it is actually using a transport of 'wss'.
+ This would cause outgoing calls to fail as the existing
+ connection could not be found. ........ Merged revisions 421931
+ from http://svn.asterisk.org/svn/asterisk/branches/12
+
+ * /, channels/chan_sip.c: chan_sip: Use the server reflexive ICE
+ candidate RTCP port as provided. This code originally worked
+ around an issue within res_rtp_asterisk itself. The wrong socket
+ was being used for the STUN check for RTCP, causing the port to
+ be the same as RTP. This was subsequently fixed and the RTCP port
+ provided for the ICE candidate is correct and does not need to be
+ incremented. ASTERISK-23997 #close Reported by: Badalian
+ Vyacheslav Patches: plus1.diff submitted by Badalian Vyacheslav
+ (license 5249) ........ Merged revisions 421909 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 421910 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-08-22 16:56 +0000 [r421882] Mark Michelson <mmichelson@digium.com>
+
+ * apps/app_mixmonitor.c: Fix a locking inversion in MixMonitor. We
+ need to unlock the audiohook before trying to lock the channel,
+ since the correct locking order is channel then audiohook.
+
+2014-08-22 16:44 +0000 [r421880] Jonathan Rose <jrose@digium.com>
+
+ * res/res_stasis_answer.c, res/res_stasis.c, res/stasis/command.c,
+ res/res_stasis_playback.c, /, res/stasis/control.c,
+ res/stasis/stasis_bridge.c, res/stasis/command.h,
+ include/asterisk/stasis_app_impl.h, res/res_stasis_recording.c:
+ ARI: Fix a crash caused by hanging during playback to a channel
+ in a bridge ASTERISK-24147 #close Reported by: Edvin Vidmar
+ Review: https://reviewboard.asterisk.org/r/3908/ ........ Merged
+ revisions 421879 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-08-22 14:08 +0000 [r421860] Matthew Jordan <mjordan@digium.com>
+
+ * main/message.c, /: main/message: Add a new-line to a DEBUG
+ message ........ Merged revisions 421859 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-08-21 22:07 +0000 [r421802] Richard Mudgett <rmudgett@digium.com>
+
+ * /, res/res_musiconhold.c: res_musiconhold.c: Remove obsolete
+ REF_DEBUG code. Remove unneeded code that writes to the wrong
+ file location in an obsolete format. ........ Merged revisions
+ 421799 from http://svn.asterisk.org/svn/asterisk/branches/1.8
+ ........ Merged revisions 421800 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 421801 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-08-21 21:42 +0000 [r421790-421797] Mark Michelson <mmichelson@digium.com>
+
+ * res/res_pjsip_session.c, /: Switch from hostname to an IP address
+ in the SDP origin line. Using the hostname in the SDP origin line
+ may not satisfy the requirement of RFC 4566 that we use a FQDN or
+ IP address. This change has us use the same information from the
+ SDP connection line if possible. If not possible, we'll use the
+ configured media address. And if that's not possible, we use the
+ result of a PJLIB call to get the IP address of ourself.
+ ASTERISK-23994 #close Reported by Private Name Review:
+ https://reviewboard.asterisk.org/r/3925 ........ Merged revisions
+ 421796 from http://svn.asterisk.org/svn/asterisk/branches/12
+
+ * /, res/stasis/control.c: Ensure after-bridge behavior is correct
+ when moving from Stasis to a non-Stasis bridge. Because of the
+ departable state of channels that enter Stasis bridges, Stasis
+ has to take responsibility for directing the channel to its
+ intended after-bridge destination if the channel moves from a
+ Stasis bridge to a non-Stasis bridge. This change ensures that
+ when such a move occurs, when the channel leaves the bridging
+ system, any after bridge gotos are honored. Review:
+ https://reviewboard.asterisk.org/r/3920 ........ Merged revisions
+ 421792 from http://svn.asterisk.org/svn/asterisk/branches/12
+
+ * res/res_pjsip_caller_id.c, /: Let's try checking the name and
+ number, instead of the name twice. ........ Merged revisions
+ 421789 from http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-08-21 21:25 +0000 [r421788] Jonathan Rose <jrose@digium.com>
+
+ * /, res/res_musiconhold.c: res_musiconhold: Fix reference leaks
+ caused when reloading with REF_DEBUG set Due to a faulty function
+ for debugging reference decrementing, it was possible to reduce
+ the refcount on the wrong object if two moh classes of the same
+ name were in the moh class container. (closes issue
+ ASTERISK-22252) Reported by: Walter Doekes Patches:
+ 18_moh_debug_ref_patch.diff Uploaded by Jonathan Rose (license
+ 6182) ........ Merged revisions 398937 from
+ http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
+ revisions 421777 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 421779 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-08-21 21:18 +0000 [r421783] Mark Michelson <mmichelson@digium.com>
+
+ * /, res/res_pjsip_caller_id.c: Improve consistency of party ID
+ privacy usage. Prior to this change, the Remote-Party-ID header
+ took the position of "If caller name and number are not
+ explicitly allowed, then they are private" and
+ P-Asserted-Identity took the position of "Caller name and number
+ are only private if marked explicitly so" Now both mechanisms of
+ conveying party identification use the former approach. ........
+ Merged revisions 421778 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-08-21 17:34 +0000 [r421675-421720] Matthew Jordan <mjordan@digium.com>
+
+ * /, channels/chan_sip.c: chan_sip: Don't use port derived from
+ fromdomain if it isn't set If a user does not provide a port in
+ the fromdomain setting, chan_sip will set the fromdomainport to
+ STANDARD_SIP_PORT (5060). The fromdomainport value will then get
+ used unilaterally in certain places. This causes issues with TLS,
+ where the default port is expected to be 5061. This patch
+ modifies chan_sip such that fromdomainport is only used if it is
+ not the standard SIP port; otherwise, the port from the SIP pvt's
+ recorded self IP address is used. Review:
+ https://reviewboard.asterisk.org/r/3893/ ASTERISK-24178 #close
+ Reported by: Elazar Broad patches: fromdomainport_fix.diff
+ uploaded by Elazar Broad (License 5835) ........ Merged revisions
+ 421717 from http://svn.asterisk.org/svn/asterisk/branches/1.8
+ ........ Merged revisions 421718 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 421719 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+ * /, UPGRADE.txt, main/app.c: ARI: Fix implicit answer when
+ playback is initiated on unanswered channel When issuing a POST
+ /channels/{channel_id}/play on a channel that is not yet
+ answered, ARI is supposed to: * Queue up an AST_CONTROL_PROGRESS
+ on the channel * Start up the playback of the media Instead, we
+ sneak an answer on the channel right before starting playing
+ media. This is due to ARI's usage of control_streamfile. This
+ function implicitly answers the channel (and doesn't give ARI the
+ option to stop it). The answering of the channel here is probably
+ unnecessary: * app_voicemail, by far the biggest consumer of this
+ function, always answers the channels anyway * control stream
+ file (in res_agi) and ControlPlayback probably shouldn't be
+ implicitly answering the channel. Answering should not be tied
+ directly to playing back media. As it turns out, the answering of
+ the channel here is pretty old: 356042 twilson if
+ (ast_channel_state(chan) != AST_STATE_UP) { 3087 anthm res =
+ ast_answer(chan); 180259 tilghman } (As in, ancient?) Note that
+ others ran into this problem and commented about it on various
+ mailing lists. Review: https://reviewboard.asterisk.org/r/3907/
+ ASTERISK-24229 #close Reported by: Matt Jordan ........ Merged
+ revisions 421695 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+ * res/stasis/messaging.h, main/dns.c, /, main/format_cache.c: Clean
+ up files that do not end with newlines Trivial patch to add new
+ lines to several files missing them. This fixes warnings when
+ compiling with gcc 4.1.2 on CentOS 5. ASTERISK-24245 #close
+ Reported by: Shaun Ruffell patches:
+ 0002-Trivial-addition-of-newlines-at-end-of-three-files.patch
+ uploaded by Shaun Ruffell (License 5417) ........ Merged
+ revisions 421677 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+ * include/asterisk/uri.h, main/uri.c: uri: Quiet warning about type
+ qualifiers ignored on function return type This patch fixes gcc
+ warnings that occur due to the type qualifier 'const' being
+ ignored on a return type of int. ASTERISK-24246 #close Reported
+ by: Shaun Ruffell patches:
+ 0001-main-uri-Quiet-warning-about-ignored-attribute-on-re.patch
+ uploaded by Shaun Ruffell (License 5417)
+
+2014-08-20 22:49 +0000 [r421616-421645] Richard Mudgett <rmudgett@digium.com>
+
+ * main/bridge.c, res/res_pjsip_sdp_rtp.c, main/file.c,
+ main/bridge_channel.c, channels/chan_pjsip.c, main/channel.c:
+ chan_pjsip: Update media translation paths when new SDP
+ negotiated. On a SIP reinvite that changes media strams, the
+ PJSIP channel driver was flooding the log with "Asked to transmit
+ frame type %s, while native formats is %s" warnings. * Fixes
+ PJSIP not setting up translation paths when the formats change on
+ a reinvite. AFS-63 was effectively reintroduced because of the
+ media formats work. res_pjsip_sdp_rtp.c:set_caps() * Improved the
+ unexpected frame format WARNING message to include more
+ information. * Added protective locking while altering formats on
+ a channel. Reworked set_format() to simplify and protect the
+ formats under manipulation. * Restored some code that got lost in
+ the media_formats work. (channel.c:set_format() and
+ res_pjsip_sdp_rtp.c:set_caps()) AFS-137 #close Reported by: Mark
+ Michelson Review: https://reviewboard.asterisk.org/r/3906/
+
+ * /, main/cli.c: cli.c: Fix tab completion of "module load" when
+ MALLOC_DEBUG is enabled. filename_completion_function() returns
+ memory that was not allocated by the MALLOC_DEBUG allocation
+ tracker so the memory must be freed by ast_std_free(). ........
+ Merged revisions 421600 from
+ http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
+ revisions 421602 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 421608 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-08-20 20:40 +0000 [r421566-421585] Mark Michelson <mmichelson@digium.com>
+
+ * res/res_pjsip_pubsub.c: Set the role for inbound subscriptions
+ correctly. This was causing the AMI show_subscriptions test in
+ the testsuite to fail since all subscriptions were being seen as
+ subscribers instead of notifiers.
+
+ * /, channels/chan_pjsip.c: Move evaluation of set_var options in
+ pjsip to the end of channel initialization. This allows for
+ set_var to override certain defaults such as caller ID and codec
+ values. This also fixes a test suite regression. The "set_var"
+ test suite test attempted to use set_var to override caller ID,
+ but a recent change caused that to no longer work. ........
+ Merged revisions 421565 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-08-20 13:04 +0000 [r421538] Kinsey Moore <kmoore@digium.com>
+
+ * include/asterisk/stasis_bridges.h, tests/test_cel.c,
+ res/ari/ari_model_validators.c, main/stasis_bridges.c,
+ res/ari/ari_model_validators.h, rest-api/api-docs/events.json, /,
+ res/stasis/app.c, main/bridge.c: Stasis: Add information to blind
+ transfer event When a blind transfer occurs that is forced to
+ create a local channel pair to satisfy the transfer request,
+ information about the local channel pair is not published. This
+ adds a field to describe that channel to the blind transfer
+ message struct so that this information is conveyed properly to
+ consumers of the blind transfer message. This also fixes a bug in
+ which Stasis() was unable to properly identify the channel that
+ was replacing an existing Stasis-controlled channel due to a
+ blind transfer. Reported by: Matt Jordan Review:
+ https://reviewboard.asterisk.org/r/3921/ ........ Merged
+ revisions 421537 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-08-19 20:28 +0000 [r421448-421488] Mark Michelson <mmichelson@digium.com>
+
+ * /, res/res_pjsip.c: Alter documentation for callerid_privacy to
+ use correct values. ........ Merged revisions 421485 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+ * res/res_stasis.c, /: Fix compilation error on certain versions of
+ GCC. ........ Merged revisions 421447 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-08-19 19:42 +0000 [r421445] Kinsey Moore <kmoore@digium.com>
+
+ * main/manager.c, /: AMI Docs: Fix Status channel parameter
+ optionality ........ Merged revisions 421442 from
+ http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
+ revisions 421443 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 421444 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-08-19 16:28 +0000 [r421423] Jonathan Rose <jrose@digium.com>
+
+ * res/res_stasis.c, /: ARI: Fix a bug where
+ /channels/{channelID}/continue doesn't execute PBX If
+ /channels/{channelID}/continue is called on a channel that was
+ originated without a PBX (such as the ARI command POST channel
+ with a stasis application argument), the channel will not start
+ dialplan execution. This patch will now run the PBX out of the
+ stasis execution if the channel doesn't currently have an active
+ PBX upon continuing. ASTERISK-24043 #close Reported by: Krandon
+ Bruse Review: https://reviewboard.asterisk.org/r/3917/ Patches:
+ stasis-continue.diff submitted by Krandon Bruse (license 6631)
+ ........ Merged revisions 421416 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-08-19 16:11 +0000 [r421403] Richard Mudgett <rmudgett@digium.com>
+
+ * /, res/res_pjsip_caller_id.c, channels/chan_pjsip.c,
+ res/res_pjsip_session.c: chan_pjsip: Fix attended transfer
+ connected line name update. A calls B B answers B SIP attended
+ transfers to C C answers, B and C can see each other's connected
+ line information B completes the transfer A has number but no
+ name connected line information about C while C has the full
+ information about A I examined the incoming and outgoing party id
+ information handling of chan_pjsip and found several issues: *
+ Fixed ast_sip_session_create_outgoing() not setting up the
+ configured endpoint id as the new channel's caller id. This is
+ why party A got default connected line information. * Made
+ update_initial_connected_line() use the channel's CALLERID(id)
+ information. The core, app_dial, or predial routine may have
+ filled in or changed the endpoint caller id information. * Fixed
+ chan_pjsip_new() not setting the full party id information
+ available on the caller id and ANI party id. This includes the
+ configured callerid_tag string and other party id fields. * Fixed
+ accessing channel party id information without the channel lock
+ held. * Fixed using the effective connected line id without doing
+ a deep copy outside of holding the channel lock. Shallow copy
+ string pointers can become stale if the channel lock is not held.
+ * Made queue_connected_line_update() also update the channel's
+ CALLERID(id) information. Moving the channel to another bridge
+ would need the information there for the new bridge peer. * Fixed
+ off nominal memory leak in update_incoming_connected_line(). *
+ Added pjsip.conf callerid_tag string to party id information from
+ enabled trust_inbound endpoint in caller_id_incoming_request().
+ AFS-98 #close Reported by: Mark Michelson Review:
+ https://reviewboard.asterisk.org/r/3913/ ........ Merged
+ revisions 421400 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-08-18 21:10 +0000 [r421376] Damien Wedhorn <voip@facts.com.au>
+
+ * channels/chan_skinny.c: Skinny: Fixup compile warning for non
+ dev-mode.
+
+2014-08-18 20:19 +0000 [r421337] George Joseph <george.joseph@fairview5.com>
+
+ * funcs/func_config.c, /: func_config: Change 'Not Found' message
+ from ERROR to DEBUG When you call the CONFIG dialplan function
+ with the name of a variable that doesn't exist in the target
+ context you get an ERROR. This does nothing but clutter up the
+ logs with messages that may be perfectly acceptable. Just because
+ a variable wasn't in the context doesn't mean it's an error.
+ Maybei t's optional or just needs to be defaulted or ignored.
+ This patch changes the log level from ERROR to DEBUG. If a
+ dialplan developer wants to debug their dialplan they still canby
+ setting the console debug level as needed. Tested by: George
+ Joseph Review: https://reviewboard.asterisk.org/r/3919/ ........
+ Merged revisions 421327 from
+ http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
+ revisions 421328 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 421329 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-08-18 01:13 +0000 [r421230-421312] Matthew Jordan <mjordan@digium.com>
+
+ * res/ari/resource_channels.c: res/ari/resource_channels: Fix
+ compilation issue Forgot a parameter. Whoops.
+
+ * res/ari/resource_channels.c: res/ari/resource_channels: Don't
+ return allocation failure on failed function If a function fails
+ to execute, it is most likely due to one of two reasons: (1) The
+ function doesn't exist or can't be read from (2) The function is
+ dangerous and is restricted based on the user's permissions
+ Currently we return allocation failure, which is incorrect. This
+ updates the reason code to more accurately reflect why the
+ request failed. ASTERISK-24215
+
+ * /, apps/app_meetme.c: apps/app_meetme: Fix crash when publishing
+ MeetMe messages with no channel The same function,
+ meetme_stasis_generate_msg, handles creating and publishing
+ Stasis message both when there are channels in the MeetMe
+ conference and when there are no channels in the conference. When
+ the performance improvement was made to use cached snapshots,
+ this created a situation where Asterisk would crash: obtaining a
+ cached snapshot is not NULL tolerant. This patch restores the
+ previous implementation, which used a NULL safe set of routines
+ to produce a blob containing the channel snapshot (if available)
+ and information about the MeetMe conference. ASTERISK-24234
+ #close Reported by: Shaun Ruffell Tested by: Shaun Ruffell
+ ........ Merged revisions 421270 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+ * apps/app_dial.c, /: apps/app_dial: Fix Dial 'z' option The 'z'
+ option is supposed to disable the dial timeout in the case of a
+ call forward. Unfortunately, the wrong timeout timer was passed
+ to the do_forward function, resulting in the option not working.
+ ASTERISK-24225 #close Reported by: dimitripietro Tested by:
+ dimitripietro patches: jira_asterisk_24225_v1.8.patch uploaded by
+ rmudgett (License 5621) jira_asterisk_24225_v11.patch uploaded by
+ rmudgett (License 5621) ........ Merged revisions 421232 from
+ http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
+ revisions 421233 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 421234 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+ * /, configure, configure.ac: configure: Undefine FORTIFY_SOURCE
+ prior to defining it for patched gcc Some distributions of Linux
+ patch gcc to define FORTIFY_SOURCE when gcc is executed with
+ optimization. This "help" unfortunately results in re-definition
+ warnings when FORTIFY_SOURCE is later defined in Asterisk's build
+ system. This patch undefines FORTIFY_SOURCE prior to defining it
+ to prevent this warning. Review:
+ https://reviewboard.asterisk.org/r/3912/ ASTERISK-24032 #close
+ Reported by: Kilburn Tested by: Kilburn, wdoekes patches:
+ 1.8.diff uploaded by cloos (License 5956) 10.diff uploaded by
+ cloos (License 5956) 11.diff uploaded by cloos (License 5956)
+ 12.diff uploaded by cloos (License 5956) 13.diff uploaded by
+ cloos (License 5956) ........ Merged revisions 421227 from
+ http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
+ revisions 421228 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 421229 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-08-17 16:10 +0000 [r421210] Joshua Colp <jcolp@digium.com>
+
+ * res/res_http_websocket.c: res_http_websocket: Include query
+ parameters in client connection requests. Review:
+ https://reviewboard.asterisk.org/r/3914/
+
+2014-08-15 17:08 +0000 [r421187] Jonathan Rose <jrose@digium.com>
+
+ * main/channel.c, /: Bridging: Fix a behavioral change when
+ checking if a channel is leaving a bridge r420934 introduced some
+ failures in the test suite. Upon investigating, it was discovered
+ that differences in the way we were evaluating whether a channel
+ was in the process of leaving a bridge were causing some
+ reinvites not to occur (mostly reinvites back to Asterisk when
+ ending a call). This patch fixes that behavioral change.
+ ASTERISK-24027 #close Reported by: Matt Jordan Review:
+ https://reviewboard.asterisk.org/r/3910/ ........ Merged
+ revisions 421186 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-08-15 15:45 +0000 [r421042-421166] Matthew Jordan <mjordan@digium.com>
+
+ * apps/app_voicemail.c, /, main/app.c: app_voicemail/app: Remove
+ test events that were duplicated by r421059 Moving the test event
+ raised when a file is played back (which occurred in r421059)
+ broke the ever loving snot out of the voicemail tests. This
+ caused duplicate test events to get raised, as app_voicemail and
+ main/app were raising events prior to call ast_streamfile. The
+ voicemail tests did not enjoy getting multiple events. Since
+ raising the playback event in ast_streamfile is far more useful
+ to the vast majority of tests, this patch keeps the call there
+ and simply removes the extraneous calls that duplicated the
+ event. ........ Merged revisions 421125 from
+ http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
+ revisions 421164 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 421165 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+ * res/res_hep_rtcp.c, /: res/res_hep_rtcp: Remove dependency on
+ PJSIP The res_hep_rtcp module was incorrectly including
+ <pjsip.h>. This didn't need to be included, as the module does
+ not using PJPROJECT any fashion. Unfortunately, because
+ res_hep_rtcp did not include pjsip in its MODULEINFO as a
+ dependency, this also meant that res_hep_rtcp will fail to
+ compile on a system without PJPROJECT. This patch removes the
+ include. Thanks to Damien Wedhorn for pointing this out in
+ #asterisk-dev. ASTERISK-24236 #close Reported by: Damien Wedhorn,
+ Matt Jordan Tested by: Damien Wedhorn ........ Merged revisions
+ 421064 from http://svn.asterisk.org/svn/asterisk/branches/12
+
+ * /, main/file.c, main/app.c: main/file: Move test event to emit
+ PLAYBACK event more consistently This is being done in advance of
+ the test for ASTERISK-23953 ........ Merged revisions 421059 from
+ http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
+ revisions 421060 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 421061 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+ * tests/test_cel.c, main/cel.c, /: cel: Make sure channels in extra
+ fields include their unique IDs as well CEL typically tracks a
+ lot of information using the unique ID of the channel. This is
+ typically needed due to tying events together using the linked ID
+ of the various channels involved in a "call", which is derived
+ from the channel ID of the oldest channel involved in a bridge
+ (or in the case of a Dial, the parent channel). Previously, we
+ had updated the extra fields to include the involved channel
+ names, but forgot to put in the unique ID. This patch corrects
+ that error. ........ Merged revisions 421037 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-08-14 16:32 +0000 [r420957-421010] Richard Mudgett <rmudgett@digium.com>
+
+ * /, res/ari/resource_channels.c: ARI: Originate to app local
+ channel subscription code optimization. Reduce the scope of
+ local_peer and only get it if the ARI originate is subscribing to
+ the channels. Review: https://reviewboard.asterisk.org/r/3905/
+ ........ Merged revisions 421009 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+ * main/channel_internal_api.c, main/channel.c:
+ channel_internal_api.c: Replace some code with ao2_replace(). Use
+ ao2_replace() instead of ao2_cleanup(); ao2_bump(). ao2_replace()
+ has the advantange of not altering the ref count if the replaced
+ pointer is the same. Review:
+ https://reviewboard.asterisk.org/r/3904/
+
+ * /, res/res_pjsip_send_to_voicemail.c:
+ res_pjsip_send_to_voicemail.c: Fix svn file properties. ........
+ Merged revisions 420956 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-08-13 16:53 +0000 [r420950] Kinsey Moore <kmoore@digium.com>
+
+ * res/res_pjsip.c, /: PJSIP: Prevent crash no-URI contacts This
+ prevents a crash from occurring when a contact with no URI is
+ used for the creation of an outbound out-of-dialog request with
+ no associated endpoint. ........ Merged revisions 420949 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-08-13 16:07 +0000 [r420940] Jonathan Rose <jrose@digium.com>
+
+ * main/bridge_after.c, main/channel_internal_api.c,
+ include/asterisk/channel.h, apps/app_chanspy.c,
+ apps/app_mixmonitor.c, apps/app_stack.c, main/bridge_channel.c,
+ main/channel.c, main/pbx.c, /, main/framehook.c: Bridges: Fix
+ feature interruption/unintended kick caused by external actions
+ If a manager or CLI user attached a mixmonitor to a call running
+ a dynamic bridge feature while in a bridge, the feature would be
+ interrupted and the channel would be forcibly kicked out of the
+ bridge (usually ending the call during a simple 1 to 1 call).
+ This would also occur during any similar action that could set
+ the unbridge soft hangup flag, so the fix for this was to remove
+ unbridge from the soft hangup flags and make it a separate thing
+ all together. ASTERISK-24027 #close Reported by: mjordan Review:
+ https://reviewboard.asterisk.org/r/3900/ ........ Merged
+ revisions 420934 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-08-13 14:24 +0000 [r420919] Kinsey Moore <kmoore@digium.com>
+
+ * main/manager.c: AMI: Improve documentation for Status action
+
+2014-08-13 07:52 +0000 [r420899] Walter Doekes <walter+asterisk@wjd.nu>
+
+ * /, main/logger.c: logger: Don't store verbose-magic in the log
+ files. In r399267, the verbose2magic stuff was edited. This time
+ it results in magic characters in the log files for multiline
+ messages. In trunk (and 13) this was fixed by the "stripping" of
+ those characters from multiline messages (in r414798). This fix
+ is altered to actually strip the characters and not replace them
+ with blanks. Review: https://reviewboard.asterisk.org/r/3901/
+ Review: https://reviewboard.asterisk.org/r/3902/ ........ Merged
+ revisions 420897 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 420898 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-08-12 23:43 +0000 [r420879-420881] Richard Mudgett <rmudgett@digium.com>
+
+ * channels/chan_sip.c: chan_sip: Fix type mismatch when the format
+ is changed. Symptom is most likely an invalid ao2 object bad
+ magic number message or a less likely crash.
+
+ * res/res_stasis_snoop.c: res_stasis_snoop.c: Fix off nominial exit
+ path leaving Snoop channel locked and not hungup. * Made use
+ ast_copy_string() instead of strcpy() for snoop uniqueid for
+ safety. There is no guarantee that the max channel uniqueid
+ length will remain the same as the snoop uniqueid space.
+
+2014-08-12 11:17 +0000 [r420856] Joshua Colp <jcolp@digium.com>
+
+ * apps/app_voicemail.c: app_voicemail: Fix the
+ "test_voicemail_vm_info" unit test.
+
+2014-08-11 20:53 +0000 [r420837] Richard Mudgett <rmudgett@digium.com>
+
+ * res/stasis/command.c, /: res/stasis/command.c: Fix recent commit
+ using spaces instead of tabs. ........ Merged revisions 420836
+ from http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-08-11 18:50 +0000 [r420808] Matthew Jordan <mjordan@digium.com>
+
+ * rest-api/api-docs/playbacks.json,
+ rest-api/api-docs/channels.json, rest-api/api-docs/sounds.json,
+ rest-api/resources.json, include/asterisk/manager.h,
+ rest-api/api-docs/bridges.json,
+ rest-api/api-docs/recordings.json,
+ rest-api/api-docs/deviceStates.json,
+ rest-api/api-docs/endpoints.json,
+ rest-api/api-docs/mailboxes.json, rest-api/api-docs/events.json,
+ /, rest-api/api-docs/asterisk.json,
+ rest-api/api-docs/applications.json: AMI/ARI: Update version to
+ 2.5.0/1.5.0 respectively This is to support the backwards
+ compatible changes made in the next version of Asterisk. ........
+ Merged revisions 420805 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-08-11 18:46 +0000 [r420796-420803] Kinsey Moore <kmoore@digium.com>
+
+ * /, res/res_stasis.c: Stasis: Use the correct return value Return
+ the correct value instead of always returning 0 when setting
+ internal status on unreal channels. Reported by: Richard Mudgett
+ ........ Merged revisions 420802 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+ * res/res_stasis.c, res/ari/resource_bridges.c, /,
+ res/stasis/stasis_bridge.c, include/asterisk/stasis_app.h:
+ Stasis: Allow internal channels directly into bridges The patch
+ to catch channels being shoehorned into Stasis() via external
+ mechanisms also happens to catch Announcer and Recorder channels
+ because they aren't known to be stasis-controlled channels in the
+ usual sense. This marks those channels as Stasis()-internal
+ channels and allows them directly into bridges. Review:
+ https://reviewboard.asterisk.org/r/3903/ ........ Merged
+ revisions 420795 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-08-11 18:32 +0000 [r420758-420794] Mark Michelson <mmichelson@digium.com>
+
+ * include/asterisk/stasis_app.h, main/stasis_channels.c,
+ res/ari/resource_channels.c, CHANGES, res/res_pjsip_pubsub.c,
+ main/manager_channels.c, apps/app_dial.c, res/stasis/app.c,
+ res/stasis/control.c: Improve call forwarding reporting,
+ especially with regards to ARI. This patch addresses a few
+ issues: 1) The order of Dial events have been changed when
+ performing a call forward. The order has now been altered to 1)
+ Dial begins dialing channel A. 2) When A forwards the call to B,
+ we issue the dial end event to channel A, indicating the dial is
+ being canceled due to a forward to B. 3) When the call to channel
+ B occurs, we then issue a new dial begin to channel B. 2) Call
+ forwards are now reported on the calling channel, not the peer
+ channel. 3) AMI DialEnd events have been altered to display the
+ extension the call is being forwarded to when relevant. 4) You
+ can now get the values of channel variables for channels that are
+ not currently in the Stasis application. This brings the
+ retrieval of channel variables more in line with the rest of
+ channel read operations since they may be performed on channels
+ not in Stasis. ASTERISK-24134 #close Reported by Matt Jordan
+ ASTERISK-24138 #close Reported by Matt Jordan Patches:
+ forward-shenanigans.diff uploaded by Matt Jordan (License #6283)
+ Review: https://reviewboard.asterisk.org/r/3899
+
+ * res/res_pjsip_pubsub.c: Fix crashing unit tests with regards to
+ RLS. The unit tests require a sorcery.conf file that has been set
+ up to store resource lists in memory rather than retrieving from
+ configuration. With a setup that is not conducive to running the
+ tests, a fault in sorcery currently causes Asterisk to crash when
+ attempting to run any of the tests. To get around the crash, this
+ adds a function that verifies the current environment and marks
+ the tests as "not run" if the setup is not correct.
+
+ * res/res_pjsip_pubsub.c: Fix crash encountered by the testsuite.
+ Running testsuite tests locally produced no errors, but when run
+ using the continuous integration framework, crashes occurred. The
+ crashes occurred due to a refcounting error that had been fixed
+ for a similar situation.
+
+2014-08-11 13:57 +0000 [r420742] Matthew Jordan <mjordan@digium.com>
+
+ * res/res_hep.c, res/res_hep_pjsip.c, res/res_hep_rtcp.c: res_hep:
+ Remove disabling of modules These modules were originally
+ specified as being disabled, as they were introduced midstream in
+ Asterisk 12. That makes it nicer for folks who are upgrading to a
+ new release in the middle of Asterisk 12. That's not the case for
+ Asterisk 13: it's a brand new release. There's no reason to have
+ the modules disabled by default in that case.
+
+2014-08-11 10:40 +0000 [r420657-420717] Walter Doekes <walter+asterisk@wjd.nu>
+
+ * /, main/utils.c: general: Fix memory Corruption in
+ __ast_string_field_ptr_build_va. If the space left in a
+ stringfield is between 0 and
+ (alignof(ast_string_field_allocation)-1) adding new data would
+ cause memory corruption, because we would assume enough space
+ (unsigned underrun). Thanks Arnd Schmitter for reporting and
+ finding out the cause! ASTERISK-23508 #close Reported by: Arnd
+ Schmitter Tested by: Arnd Schmitter, JoshE Review:
+ https://reviewboard.asterisk.org/r/3898/ ........ Merged
+ revisions 420680 from
+ http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
+ revisions 420715 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 420716 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+ * main/tcptls.c, /: tcptls: Avoid compiler warning on non-dev-mode.
+ ........ Merged revisions 420654 from
+ http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
+ revisions 420655 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 420656 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-08-11 01:31 +0000 [r420607-420639] Matthew Jordan <mjordan@digium.com>
+
+ * funcs/func_jitterbuffer.c: funcs/func_jitterbuffer: Tweak
+ documentation This patch merely reformats and cleans up a bit of
+ the jitterbuffer documentation for the wiki.
+
+ * UPGRADE.txt, configs/samples/extconfig.conf.sample, CHANGES,
+ apps/app_queue.c,
+ contrib/ast-db-manage/config/versions/d39508cb8d8_create_queue_rules.py
+ (added), configs/samples/queuerules.conf.sample: app_queue: Add
+ RealTime support for queue rules This patch gives the optional
+ ability to keep queue rules in RealTime. It is important to note
+ that with this patch: (a) Queue rules in RealTime are only
+ examined on module load/reload (b) Queue rules are loaded both
+ from the queuerules.conf file as well as the RealTime backend To
+ inform app_queue to examine RealTime for queue rules, a new
+ setting has been added to queuerules.conf's general section
+ "realtime_rules". RealTime queue rules will only be used when
+ this setting is set to "yes". The schema for the database table
+ supports a rule_name, time, min_penalty, and max_penalty columns.
+ min_penalty and max_penalty can be relative, if a '-' or '+'
+ literal is provided. Otherwise, the penalties are treated as
+ constants. For example: rule_name, time, min_penalty, max_penalty
+ 'default', '10', '20', '30' 'test2', '20', '30', '55' 'test2',
+ '25', '-11', '+1111' 'test2', '400', '112', '333' 'test3', '0',
+ '4564', '46546' 'test_rule', '40', '15', '50' which would result
+ in : Rule: default - After 10 seconds, adjust QUEUE_MAX_PENALTY
+ to 30 and adjust QUEUE_MIN_PENALTY to 20 Rule: test2 - After 20
+ seconds, adjust QUEUE_MAX_PENALTY to 55 and adjust
+ QUEUE_MIN_PENALTY to 30 - After 25 seconds, adjust
+ QUEUE_MAX_PENALTY by 1111 and adjust QUEUE_MIN_PENALTY by -11 -
+ After 400 seconds, adjust QUEUE_MAX_PENALTY to 333 and adjust
+ QUEUE_MIN_PENALTY to 112 Rule: test3 - After 0 seconds, adjust
+ QUEUE_MAX_PENALTY to 46546 and adjust QUEUE_MIN_PENALTY to 4564
+ Rule: test_rule - After 40 seconds, adjust QUEUE_MAX_PENALTY to
+ 50 and adjust QUEUE_MIN_PENALTY to 15 If you use RealTime, the
+ queue rules will be always reloaded on a module reload, even if
+ the underlying file did not change. With the option disabled, the
+ rules will only be reloaded if the file was modified. Review:
+ https://reviewboard.asterisk.org/r/3607/ ASTERISK-23823 #close
+ Reported by: Michael K patches: app_queue.c_realtime_trunk.patch
+ uploaded by Michael K (License 6621)
+
+ * CHANGES: Update CHANGES file
+
+ * UPGRADE.txt: Update UPGRADE.txt file
+
+2014-08-08 20:08 +0000 [r420577-420592] Jason Parker <jparker@digium.com>
+
+ * apps/app_voicemail.c: Fix build in devmode.
+
+ * CHANGES, configs/samples/voicemail.conf.sample,
+ apps/app_voicemail.c: app_voicemail: Add the ability to specify
+ multiple email addresses. ASTERISK-24045 Reported by: Jacob
+ Barber Review: https://reviewboard.asterisk.org/r/3833/
+
+2014-08-08 17:53 +0000 [r420534-420562] Matthew Jordan <mjordan@digium.com>
+
+ * channels/chan_sip.c, channels/sip/security_events.c,
+ channels/sip/dialplan_functions.c, channels/sip/reqresp_parser.c,
+ channels/sip/route.c, channels/sip/utils.c,
+ channels/sip/config_parser.c: chan_sip: Mark chan_sip and its
+ files as extended support
+
+ * rest-api-templates/make_ari_stubs.py: make_ari_stubs: Update wiki
+ prefix to '13'
+
+ * rest-api-templates/res_ari_resource.c.mustache:
+ res_ari_resource.c.mustache: Update template to emit module
+ support level
+
+ * main/message.c, /: main/message: remove debug message ........
+ Merged revisions 420533 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-08-08 03:03 +0000 [r420514] Kinsey Moore <kmoore@digium.com>
+
+ * tests/test_cel.c, /: CEL: Update unit tests for additional
+ information This updates the CEL unit tests for the new
+ information contained in the attended transfer CEL extra field.
+ ........ Merged revisions 420513 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-08-08 01:31 +0000 [r420494-420496] Matthew Jordan <mjordan@digium.com>
+
+ * UPGRADE.txt: Update UPGRADE file for 13 branch
+
+ * /: Remove old properties
+
+ * / (added): ___ _ _ _ __ _____ / _ \ | | (_) | | / ||____ | / /_\
+ \___| |_ ___ _ __ _ ___| | __ `| | / / | _ / __| __/ _ | '__| /
+ __| |/ / | | \ \ | | | \__ | || __| | | \__ | < _| |.___/ / \_|
+ |_|___/\__\___|_| |_|___|_|\_\ \___\____/
+
+2014-08-07 21:58 +0000 [r420437] Richard Mudgett <rmudgett@digium.com>
+
+ * /, channels/chan_sip.c: chan_sip: Replace sip_tls_read() and
+ resolve the large SDP poll issue. Replace sip_tls_read() and
+ sip_tcp_read() with a single function and resolve the poll/wait
+ issue with large SDP payloads. ASTERISK-18345 #close Reported by:
+ Stephane Chazelas Patches: tcptls_pollv4.diff (license #5835)
+ patch uploaded by Elazar Broad Review:
+ https://reviewboard.asterisk.org/r/3882/ ........ Merged
+ revisions 420434 from
+ http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
+ revisions 420435 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 420436 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-08-07 21:17 +0000 [r420389-420415] Kinsey Moore <kmoore@digium.com>
+
+ * main/stasis_bridges.c, /: Stasis: Correct blind transfer message
+ generation This fixes the json object creation format string and
+ key name for the BridgeBlindTransfer Stasis event allowing it to
+ be published properly. ........ Merged revisions 420414 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+ * main/stasis_bridges.c, /: Stasis: Ensure transfer messages follow
+ validation rules This makes Stasis() event generation for
+ transfer messages follow validation rules. Currently,
+ ast_json_null() is being used in place of omitting a key entirely
+ which falls afoul of these validation rules.
+ https://reviewboard.asterisk.org/r/3892/ ........ Merged
+ revisions 420408 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+ * res/res_pjsip_pubsub.c: Fix build in dev mode
+
+2014-08-07 19:44 +0000 [r420384-420388] Mark Michelson <mmichelson@digium.com>
+
+ * /, main/bridge.c: Ensure bridges exist when trying to determine
+ bridged parties when publishing transfer information. ........
+ Merged revisions 420387 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+ * main/strings.c, include/asterisk/res_pjsip_presence_xml.h,
+ res/res_pjsip_mwi.c, res/res_pjsip_dialog_info_body_generator.c,
+ res/res_pjsip_xpidf_body_generator.c, include/asterisk/strings.h,
+ res/res_pjsip_pubsub.c, res/res_pjsip_exten_state.c,
+ include/asterisk/res_pjsip_pubsub.h,
+ res/res_pjsip_pidf_body_generator.c: Add support for RFC 4662
+ resource list subscriptions. This commit adds the ability for a
+ user to configure a resource list in pjsip.conf. Subscribing to
+ this list simultaneously subscribes the subscriber to all
+ resources listed. This has the potential to reduce the amount of
+ SIP traffic when loads of subscribers on a system attempt to
+ subscribe to each others' states.
+
+2014-08-07 18:51 +0000 [r420364] Richard Mudgett <rmudgett@digium.com>
+
+ * include/asterisk/format_compatibility.h,
+ channels/iax2/format_compatibility.c,
+ channels/iax2/include/codec_pref.h, main/format_compatibility.c,
+ channels/chan_iax2.c, channels/iax2/codec_pref.c,
+ channels/iax2/include/format_compatibility.h: chan_iax2: Several
+ media format fixes. * Fixed the iax.conf bandwidth option. This
+ is the root cause of ASTERISK-24150. * Added checks in
+ iax2_request() to ensure that there are actual formats requested
+ for the new channel to prevent any more fracks from issues like
+ ASTERISK-24150. This is a consequence of the iax.conf bandwidth
+ option not working. * Fixed struct iax2_codec_pref.order member
+ size mismatch issue when converting to and from the codec
+ preference order list passed over the wire. In addition the
+ values sent over the wire are now compatible with previous
+ Asterisk versions. * Fixed several issues dealing with the struct
+ iax2_codec_pref members. Off-by-one, array limit errors, and the
+ order/framing members always need to be updated together. * Made
+ iax2_request() setup the channel's native format preference order
+ according to the user's wishes. The new media format strategy
+ needs the order specified earler. * Fixed usage of
+ ast_format_compatibility_bitfield2format(). The function can
+ return NULL if the bitfield was not associated with a function. *
+ Deleted dead code iax2_codec_pref_getsize() and
+ iax2_codec_pref_setsize(). * Made iax2_parse_allow_disallow() and
+ iax2_codec_pref_string() call iax2_codec_pref_to_cap() instead of
+ inlining it. * Made IAX_CAPABILITY_MEDBANDWIDTH,
+ IAX_CAPABILITY_LOWBANDWIDTH, and IAX_CAPABILITY_LOWFREE constants
+ again as they were in Asterisk v1.8. * Renamed prefs to
+ prefs_global so it won't get confused with the local pref
+ versions. * Fixed too small buffer in
+ handle_cli_iax2_show_peer(). * Fixed ast_cli() calls in
+ handle_cli_iax2_show_peer() to output complete lines. * Changed
+ struct create_addr_info.prefs to be struct iax2_codec_pref as an
+ optimization so iax2_request() and iax2_call() do less work. *
+ Fixed a potential deadlock in ast_iax2_new() on an off-nominal
+ path when the pbx could not get started. * Made set_config()
+ setup a local prefs list along side the local capability format
+ bitfield. Once the config is loaded, then the local copies are
+ put into the global versions. * Fix unininialized codec_buf in
+ function_iaxpeer(). ASTERISK-24150 #close Reported by: Scott
+ Griepentrog Review: https://reviewboard.asterisk.org/r/3890/
+
+2014-08-07 15:30 +0000 [r420338] Kinsey Moore <kmoore@digium.com>
+
+ * include/asterisk/bridge_features.h, res/res_stasis.c,
+ res/stasis/command.c, rest-api/api-docs/events.json, /,
+ res/stasis/app.c, res/stasis/control.c, main/bridge.c,
+ main/bridge_basic.c, res/stasis/stasis_bridge.c,
+ include/asterisk/stasis_bridges.h, res/stasis/command.h,
+ include/asterisk/stasis_app.h, res/stasis/app.h,
+ res/stasis/control.h, apps/app_queue.c,
+ res/ari/ari_model_validators.c, main/cel.c,
+ main/stasis_bridges.c, res/ari/ari_model_validators.h,
+ main/channel.c, include/asterisk/datastore.h, tests/test_cel.c:
+ Stasis: Convey transfer information to applications This fixes a
+ class of issues where Stasis applications were not made aware
+ that their channels were being manipulated or replaced by
+ external entitiessuch as transfers, AMI commands, or dialplan
+ applications such as Bridge(). Inconsistent information such as
+ StasisEnd events with unknown channels as a result of masquerades
+ has also been corrected. To accomplish these fixes, several new
+ fields were added to blind and attended transfer messages as well
+ as StasisStart and BridgeAttendedTransfer Stasis events.
+ ASTERISK-23941 #close Review:
+ https://reviewboard.asterisk.org/r/3865/ Review:
+ https://reviewboard.asterisk.org/r/3857/ Review:
+ https://reviewboard.asterisk.org/r/3852/ Review:
+ https://reviewboard.asterisk.org/r/3816/ Review:
+ https://reviewboard.asterisk.org/r/3731/ Review:
+ https://reviewboard.asterisk.org/r/3729/ Review:
+ https://reviewboard.asterisk.org/r/3728/ ........ Merged
+ revisions 420325 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-08-07 14:37 +0000 [r420314-420315] Joshua Colp <jcolp@digium.com>
+
+ * include/asterisk/res_pjsip_pubsub.h,
+ res/res_pjsip_pubsub.exports.in, res/res_pjsip_publish_asterisk.c
+ (added), res/res_pjsip_pubsub.c: res_pjsip_publish_asterisk: Add
+ support for exchanging device and mailbox state using SIP. This
+ module uses the inbound and outbound PUBLISH support to exchange
+ device and mailbox state between Asterisk instances. Each
+ instance is configured to publish to the other and requires no
+ intermediary server. The functionality provided is similar to the
+ XMPP and Corosync support. Review:
+ https://reviewboard.asterisk.org/r/3780/
+
+ * include/asterisk/res_pjsip_outbound_publish.h (added),
+ res/res_pjsip_outbound_publish.exports.in (added),
+ res/res_pjsip_outbound_publish.c (added):
+ res_pjsip_outbound_publish: Add module which provides outbound
+ PUBLISH support. This module implements the core parts required
+ for doing outbound PUBLISH. It takes care of configuration,
+ lifetime management, and authentication. Additional modules
+ implement the specific events that are published. Review:
+ https://reviewboard.asterisk.org/r/3780/
+
+2014-08-07 14:17 +0000 [r420289-420309] Matthew Jordan <mjordan@digium.com>
+
+ * main/pbx.c: pbx: Filter out pattern matching hints in responses
+ sent to ExtensionStateList Hints that are a pattern match are
+ technically stored in the hint container in the same fashion as
+ concrete implementations of hints. The pattern matching hints,
+ however, are not "real" in the sense that things can subscribe to
+ them: rather, they are stored in the hints container so that when
+ a subscription is made a "real" hint can be generated for the
+ subscription if one does not yet exist. The extension state core
+ takes care of this correctly by matching against non-pattern
+ matching extensions prior to pattern matching extensions. Because
+ of this, however, the ExtensionStateList AMI action was returning
+ pattern matching hints when executed. These hints are meaningless
+ from the perspective of AMI clients: their state will never
+ change, they cannot be subscribed to, and events would never
+ normally be generated from them. As such, we now filter these out
+ of the response.
+
+ * build_tools/post_process_documentation.py: build_tools: Skip
+ managerEvent combining for AMI action responses AMI action
+ responses can (and will) reference AMI events that they return.
+ These event references and definitions should not be combined
+ with AMI events raised elsewhere in the code, as they are
+ specifically tied to the AMI action that raised them.
+ ASTERISK-24156 #close Reported by: Rusty Newton
+
+2014-08-06 18:12 +0000 [r420212-420237] Richard Mudgett <rmudgett@digium.com>
+
+ * contrib/ast-db-manage/config/versions/2fc7930b41b3_add_pjsip_endpoint_options_for_12_1.py,
+ /: Fix alembic script to work properly in offline mode. When run
+ in offline mode, this would attempt to check the database for the
+ presence of a type it was going to try to create. I now check the
+ context to see if we're running in offline mode and change a
+ parameter accordingly. ........ Merged revisions 407567 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+ * contrib/ast-db-manage/config/versions/3855ee4e5f85_add_missing_pjsip_options.py
+ (added), /: Add alembic script that adds contact user_agent and
+ endpoint message_context. ........ Merged revisions 411514 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+ * contrib/ast-db-manage/voicemail/versions/39428242f7f5_increase_recording_column_size.py
+ (added), /,
+ contrib/ast-db-manage/config/versions/43956d550a44_add_tables_for_pjsip.py,
+ contrib/ast-db-manage/config.ini.sample,
+ contrib/ast-db-manage/config/versions/1758e8bbf6b_increase_useragent_column_size.py
+ (added),
+ contrib/ast-db-manage/config/versions/5139253c0423_make_q_member_uniqueid_autoinc.py
+ (added), contrib/ast-db-manage/cdr.ini.sample,
+ contrib/ast-db-manage/voicemail.ini.sample: alembic: Adjust
+ sippeers, queue_members, and voicemail_messages tables. *
+ Increased the sippeers useragent max string size to 255. *
+ Changed the queue_members uniqueid to an auto incremented integer
+ instead of a string. * Increased the voicemail_messages BLOB size
+ to LONGBLOB on mysql. * Fixed the add_tables_for_pjsip config
+ change version downgrade actions to drop a table it created. *
+ Adjusted the sample alembic.ini files cdr.ini.sample,
+ config.ini.sample, and voicemail.ini.sample to give a mysql and
+ postgres sqlalchemy.url lines. ASTERISK-23847 #close Reported by:
+ Stephen More ASTERISK-23825 #close Reported by: Stephen More
+ ASTERISK-23909 #close Reported by: Stephen More Review:
+ https://reviewboard.asterisk.org/r/3870/ ........ Merged
+ revisions 420211 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-08-06 16:12 +0000 [r420149] George Joseph <george.joseph@fairview5.com>
+
+ * /, pbx/pbx_lua.c, main/pbx.c: pbx_lua: fix regression with global
+ sym export and context clash by pbx_config. ASTERISK-23818 (lua
+ contexts being overwritten by contexts of the same name in
+ pbx_config) surfaced because pbx_lua, having the
+ AST_MODFLAG_GLOBAL_SYMBOLS set, was always force loaded before
+ pbx_config. Since I couldn't find any reason for pbx_lua to
+ export it's symbols to the rest of Asterisk, I simply changed the
+ flag to AST_MODFLAG_DEFAULT. Problem solved. What I didn't
+ realize was that the symbols need to be exported not because
+ Asterisk needs them but because any external Lua modules like
+ luasql.mysql need the base Lua language APIs exported
+ (ASTERISK-17279). Back to ASTERISK-23818... It looks like there's
+ an issue in pbx.c where context_merge was only merging includes,
+ switches and ignore patterns if the context was already existing
+ AND has extensions, or if the context was brand new. If pbx_lua
+ is loaded before pbx_config, the context will exist BUT pbx_lua,
+ being implemented as a switch, will never place extensions in it,
+ just the switch statement. The result is that when pbx_config
+ loads, it never merges the switch statement created by pbx_lua
+ into the final context. This patch sets pbx_lua's modflag back to
+ AST_MODFLAG_GLOBAL_SYMBOLS and adds an "else if" in context_merge
+ that catches the case where an existing context has includes,
+ switchs or ingore patterns but no actual extensions.
+ ASTERISK-23818 #close Reported by: Dennis Guse Reported by: Timo
+ Teräs Tested by: George Joseph Review:
+ https://reviewboard.asterisk.org/r/3891/ ........ Merged
+ revisions 420146 from
+ http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
+ revisions 420147 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 420148 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-08-06 15:32 +0000 [r420144] Walter Doekes <walter+asterisk@wjd.nu>
+
+ * funcs/func_channel.c: Add documentation to the ability to
+ retrieve the source port of a SIP call. (belongs with r419970)
+ ASTERISK-24040 #close Patches: func_channel.c.diff uploaded by
+ dtryba Review: https://reviewboard.asterisk.org/r/3781/
+
+2014-08-06 12:55 +0000 [r420124] Kinsey Moore <kmoore@digium.com>
+
+ * configs/samples/stasis.conf.sample (added), main/named_acl.c,
+ apps/app_queue.c, main/stasis_bridges.c, main/loader.c,
+ main/stasis.c, apps/app_forkcdr.c, main/stasis_message.c,
+ funcs/func_cdr.c, res/res_corosync.c, res/res_stun_monitor.c,
+ res/res_stasis_test.c, res/res_stasis.c, apps/app_chanspy.c,
+ main/stasis_cache.c, main/pickup.c, main/security_events.c,
+ include/asterisk/stasis.h, main/devicestate.c, main/core_local.c,
+ res/res_stasis_snoop.c, main/endpoints.c, main/presencestate.c,
+ main/cdr.c, main/channel.c, main/stasis_system.c, main/manager.c,
+ main/test.c, main/file.c, main/app.c, pbx/pbx_realtime.c,
+ main/stasis_channels.c, tests/test_stasis.c,
+ res/parking/parking_manager.c, main/stasis_endpoints.c,
+ main/rtp_engine.c, main/ccss.c, main/bridge.c,
+ tests/test_stasis_channels.c: Stasis: Allow message types to be
+ blocked This introduces stasis.conf and a mechanism to prevent
+ certain message types from being published. Internally, this
+ works by preventing the chosen message types from being created
+ which ensures that those message types can never be published.
+ This patch also adjusts message publishers such that message
+ payloads are not created if the related message type is not
+ available. ASTERISK-23943 #close Review:
+ https://reviewboard.asterisk.org/r/3823/
+
+2014-08-05 21:48 +0000 [r420098-420100] Matthew Jordan <mjordan@digium.com>
+
+ * res/stasis/messaging.c, /: stasis: Fix compilation issue with ao2
+ tagged objects ........ Merged revisions 420099 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+ * res/ari/resource_endpoints.c, rest-api/api-docs/events.json, /,
+ channels/chan_sip.c, res/stasis/app.c, res/stasis/messaging.h
+ (added), res/ari/resource_endpoints.h, res/res_pjsip_messaging.c,
+ tests/test_message.c (added), res/res_xmpp.c,
+ include/asterisk/json.h, CHANGES, include/asterisk/manager.h,
+ res/ari/ari_model_validators.c, res/ari/ari_model_validators.h,
+ main/json.c, res/res_ari_endpoints.c, include/asterisk/message.h,
+ res/ari/resource_channels.c, main/message.c, res/res_stasis.c,
+ res/stasis/messaging.c (added), rest-api/api-docs/endpoints.json:
+ Multiple revisions 420089-420090,420097 ........ r420089 |
+ mjordan | 2014-08-05 15:10:52 -0500 (Tue, 05 Aug 2014) | 72 lines
+ ARI: Add channel technology agnostic out of call text messaging
+ This patch adds the ability to send and receive text messages
+ from various technology stacks in Asterisk through ARI. This
+ includes chan_sip (sip), res_pjsip_messaging (pjsip), and
+ res_xmpp (xmpp). Messages are sent using the endpoints resource,
+ and can be sent directly through that resource, or to a
+ particular endpoint. For example, the following would send the
+ message "Hello there" to PJSIP endpoint alice with a display URI
+ of sip:asterisk@mycooldomain.org:
+ ari/endpoints/sendMessage?to=pjsip:alice&from=sip:asterisk@mycooldomain.org&body=Hello+There
+ This is equivalent to the following as well:
+ ari/endpoints/PJSIP/alice/sendMessage?from=sip:asterisk@mycooldomain.org&body=Hello+There
+ Both forms are available for message technologies that allow for
+ arbitrary destinations, such as chan_sip. Inbound messages can
+ now be received over ARI as well. An ARI application that
+ subscribes to endpoints will receive messages from those
+ endpoints: { "type": "TextMessageReceived", "timestamp":
+ "2014-07-12T22:53:13.494-0500", "endpoint": { "technology":
+ "PJSIP", "resource": "alice", "state": "online", "channel_ids":
+ [] }, "message": { "from": "\"alice\" <sip:alice@127.0.0.1>",
+ "to": "pjsip:asterisk@127.0.0.1", "body": "Watson, come here.",
+ "variables": [] }, "application": "testsuite" } The above was
+ made possible due to some rather major changes in the message
+ core. This includes (but is not limited to): - Users of the
+ message API can now register message handlers. A handler has two
+ callbacks: one to determine if the handler has a destination for
+ the message, and another to handle it. - All dialplan
+ functionality of handling a message was moved into a message
+ handler provided by the message API. - Messages can now have the
+ technology/endpoint associated with them. Various other
+ properties are also now more easily accessible. - A number of ao2
+ containers that weren't really needed were replaced with vectors.
+ Iteration over ao2_containers is expensive and pointless when the
+ lifetime of things is well defined and the number of things is
+ very small. res_stasis now has a new file that makes up its
+ structure, messaging. The messaging functionality implements a
+ message handler, and passes received messages that match an
+ interested endpoint over to the app for processing. Note that
+ inadvertently while testing this, I reproduced ASTERISK-23969.
+ res_pjsip_messaging was incorrectly parsing out the 'to' field,
+ such that arbitrary SIP URIs mangled the endpoint lookup. This
+ patch includes the fix for that as well. Review:
+ https://reviewboard.asterisk.org/r/3726 ASTERISK-23692 #close
+ Reported by: Matt Jordan ASTERISK-23969 #close Reported by:
+ Andrew Nagy ........ r420090 | mjordan | 2014-08-05 15:16:37
+ -0500 (Tue, 05 Aug 2014) | 2 lines Remove automerge properties
+ :-( ........ r420097 | mjordan | 2014-08-05 16:36:25 -0500 (Tue,
+ 05 Aug 2014) | 2 lines test_message: Fix strict-aliasing
+ compilation issue ........ Merged revisions 420089-420090,420097
+ from http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-08-05 13:59 +0000 [r420028] Jonathan Rose <jrose@digium.com>
+
+ * main/format.c: chan_iax2: Fix a crash that occurs when using
+ allow=all for an IAX2 peer Or any combination of codecs that
+ includes Opus. ASTERISK-24107 #close Review:
+ https://reviewboard.asterisk.org/r/3885/
+
+2014-08-04 21:00 +0000 [r420007] Richard Mudgett <rmudgett@digium.com>
+
+ * main/format_cache.c, include/asterisk/format_cache.h: Remove
+ duplicate definitions of ast_format_vp8.
+
+2014-08-04 20:25 +0000 [r419970] Mark Michelson <mmichelson@digium.com>
+
+ * channels/sip/dialplan_functions.c: Add the ability to retrieve
+ the source port of a SIP call. This adds the ability to call
+ CHANNEL(recvport) on chan_sip channels to see the port on which
+ an INVITE was received. ASTERISK-24040 #close Reported by dtryba
+ Patches: dialplan_functions.patch uploaded by dtryba (License
+ #6628) Review: https://reviewboard.asterisk.org/r/3781
+
+2014-08-04 19:47 +0000 [r419945] Rusty Newton <rnewton@digium.com>
+
+ * main/manager.c, /: Manager - Improve documentation for manager
+ commands Getvar and Setvar. The documentation for these commands
+ did not make it clear that they could accept expressions and
+ functions. Modified to make this clear, but tried not to be
+ overly explicit. ASTERISK-21178 #close Reported by: Rusty Newton
+ Tested by: Rusty Newton Review:
+ https://reviewboard.asterisk.org/r/3854 ........ Merged revisions
+ 419942 from http://svn.asterisk.org/svn/asterisk/branches/1.8
+ ........ Merged revisions 419943 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 419944 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-08-02 03:37 +0000 [r419914] Kinsey Moore <kmoore@digium.com>
+
+ * res/res_pjsip.c: Manager: Add PJSIPShowEndpoint[s] documentation
+ This adds a large swath of response documentation for
+ PJSIPShowEndpoint and PJSIPShowEndpoints AMI commands. It relies
+ heavily on the existing text in the configInfo documentation via
+ xi:include tags to avoid documentation duplication. Review:
+ https://reviewboard.asterisk.org/r/3888/
+
+2014-08-01 14:48 +0000 [r419888] Mark Michelson <mmichelson@digium.com>
+
+ * CHANGES, res/res_pjsip/pjsip_options.c: Add ContactStatusDetail
+ to PJSIPShowEndpoint AMI output. Now when running
+ PJSIPShowEndpoint, you will receive a ContactStatusDetail for
+ each bound contact that Asterisk is qualifying. This information
+ includes the URI of the contact, current reachability, and
+ roundtrip time. AFS-91 #close Reported by Mark Michelson Review:
+ https://reviewboard.asterisk.org/r/3797
+
+2014-07-31 16:19 +0000 [r419851] Jonathan Rose <jrose@digium.com>
+
+ * CHANGES, res/res_pjsip_notify.c: PJSIP: Send Notify AMI and CLI
+ commands can now send to URI instead of endpoint Review:
+ https://reviewboard.asterisk.org/r/3817/
+
+2014-07-31 11:57 +0000 [r419822-419825] Matthew Jordan <mjordan@digium.com>
+
+ * main/rtp_engine.c, /, res/res_hep_rtcp.c (added), CHANGES,
+ channels/chan_pjsip.c, res/res_rtp_asterisk.c: res_hep_rtcp: Add
+ module that sends RTCP information to a Homer Server This patch
+ adds a new module to Asterisk, res_hep_rtcp. The module
+ subscribes to the RTCP topics in Stasis and receives RTCP
+ information back from the message bus. It encodes into HEPv3
+ packets and sends the information to the res_hep module for
+ transmission. Using this, someone with a Homer server can get
+ live call quality monitoring for all RTP-based channels in their
+ Asterisk 12+ systems. In addition, there were a few bugs in the
+ RTP engine, res_rtp_asterisk, and chan_pjsip that were uncovered
+ by the tests written for the Asterisk Test Suite. This patch
+ fixes the following: 1) chan_pjsip failed to set its channel
+ unique ids on its RTP instance on outbound calls. It now does
+ this in the appropriate location, in the serialized call
+ callback. 2) The rtp_engine was overflowing some values when
+ packed into JSON. Specifically, some longs and unsigned ints
+ can't be be packed into integer values, for obvious reasons.
+ Since libjansson only supports integers, floats, strings,
+ booleans, and objects, we print these values into strings. 3)
+ res_rtp_asterisk had a few problems: (a) it would emit a source
+ IP address of 0.0.0.0 if bound to that IP address. We now use
+ ast_find_ourip to get a better IP address, and properly marshal
+ the result into an ast_strdupa'd string. (b) Reports can be
+ generated with no report bodies. In particular, this occurs when
+ a sender is transmitting information to a receiver (who will send
+ no RTP back to the sender). As such, the sender has no report
+ body for what it received. We now properly handle this case, and
+ the sender will emit SR reports with no body. Likewise, if we
+ receive an RTCP packet with no report body, we will still
+ generate the appropriate events. ASTERISK-24119 #close ........
+ Merged revisions 419823 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+ * funcs/func_jitterbuffer.c, doc/appdocsxml.dtd, main/xmldoc.c:
+ xmldocs: Add support for an <example> tag in the Asterisk XML
+ Documentation This patch adds support for an <example /> tag in
+ the XML documentation schema. For CLI help, this doesn't change
+ the formatting too much: - Preceeding white space is removed -
+ Unlike with para elements, new lines are preserved However,
+ having an <example /> tag in the XML schema allows for the wiki
+ documentation generation script to surround the documentation
+ with {code} or {noformat} tags, generating much better content
+ for the wiki - and allowing us to put dialplan examples (and
+ other code snippets, if desired) into the documentation for an
+ application/function/AMI command/etc. Review:
+ https://reviewboard.asterisk.org/r/3807/
+
+2014-07-30 18:32 +0000 [r419806] Kinsey Moore <kmoore@digium.com>
+
+ * main/manager.c, res/res_manager_presencestate.c,
+ res/res_manager_devicestate.c, main/pbx.c: manager: Add state
+ list commands This patch adds three new AMI commands: *
+ ExtensionStateList (pbx.c) - list all known extension state hints
+ and their current statuses. Events emitted by the list action are
+ equivalent to the ExtensionStatus events. * PresenceStateList
+ (res_manager_presencestate) - list all known presence state
+ values. Events emitted are generated by the stasis message type,
+ and hence are PresenceStateChange events. * DeviceStateList
+ (res_manager_devicestate) - list all known device state values.
+ Events emitted are generated by the stasis message type, and
+ hence are DeviceStateChange events. Patch-by: Matt Jordan Review:
+ https://reviewboard.asterisk.org/r/3799/
+
+2014-07-29 19:41 +0000 [r419789] Mark Michelson <mmichelson@digium.com>
+
+ * main/manager.c: Do not omit the first header of a UserEvent AMI
+ action from the corresponding emitted UserEvent. ASTERISK-24124
+ #close Reported by Matt Jordan AFS-131 #close Reported by Matt
+ Jordan Patches: userevent.patch uploaded by Matt Jordan (License
+ #6283)
+
+2014-07-29 10:56 +0000 [r419751-419766] Joshua Colp <jcolp@digium.com>
+
+ * res/res_pjsip_session.c, /: res_pjsip_session: Fix race condition
+ where redirecting information may not be set. Since the PJSIP
+ INVITE session module is invoked before any session supplements
+ it was possible for it to handle a redirect before the
+ res_pjsip_diversion module interpreted and set redirecting
+ information on the channel. This would cause the redirecting
+ information to get lost. This patch ensures that session
+ supplements are *always* invoked before a redirect occurs by
+ explicitly calling them in the redirect handler. Review:
+ https://reviewboard.asterisk.org/r/3850/ ........ Merged
+ revisions 419764 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+ * /, res/res_pjsip_xpidf_body_generator.c,
+ res/res_pjsip_pidf_body_generator.c:
+ res_pjsip_pidf_body_generator / res_pjsip_xpidf_body_generator:
+ Ensure local entity is unquoted. The local entity as provided by
+ PJSIP is quoted within '<' and '>'. As a result placing this
+ value into XML will result in malformed XML being produced. This
+ patch now unquotes the local entity so it can go safely into the
+ XML. Review: https://reviewboard.asterisk.org/r/3851/ ........
+ Merged revisions 419750 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-07-28 18:58 +0000 [r419688] Richard Mudgett <rmudgett@digium.com>
+
+ * apps/app_speech_utils.c, main/channel.c, /,
+ funcs/func_frame_trace.c, main/abstract_jb.c: datastores: Audit
+ ast_channel_datastore_remove usage. Audit of v1.8 usage of
+ ast_channel_datastore_remove() for datastore memory leaks. *
+ Fixed leaks in app_speech_utils and func_frame_trace. * Fixed
+ app_speech_utils not locking the channel when accessing the
+ channel datastore list. Review:
+ https://reviewboard.asterisk.org/r/3859/ Audit of v11 usage of
+ ast_channel_datastore_remove() for datastore memory leaks. *
+ Fixed leak in func_jitterbuffer. (Was not in v12) Review:
+ https://reviewboard.asterisk.org/r/3860/ Audit of v12 usage of
+ ast_channel_datastore_remove() for datastore memory leaks. *
+ Fixed leaks in abstract_jb. * Fixed leak in
+ ast_channel_unsuppress(). Used by ARI mute control and
+ res_mutestream. * Fixed ref leak in ast_channel_suppress(). Used
+ by ARI mute control and res_mutestream. Review:
+ https://reviewboard.asterisk.org/r/3861/ ........ Merged
+ revisions 419684 from
+ http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
+ revisions 419685 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 419686 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-07-25 18:09 +0000 [r419612] Joshua Colp <jcolp@digium.com>
+
+ * main/loader.c: loader: Fix an infinite loop when printing modules
+ using "module show". When creating the alphabetical sorted list
+ each module is added to a list temporarily. On the second
+ iteration each module already has a pointer to another module,
+ causing stuff to go into a loop. ASTERISK-24123 #close Reported
+ by: Malcolm Davenport
+
+2014-07-25 16:47 +0000 [r419592] Mark Michelson <mmichelson@digium.com>
+
+ * res/res_ari_sounds.c, res/res_stasis.c, res/res_fax_spandsp.c,
+ res/res_timing_kqueue.c, res/res_odbc.c,
+ res/res_pjsip_transport_websocket.c, apps/app_voicemail.c,
+ res/res_calendar.c, channels/chan_unistim.c, cel/cel_radius.c,
+ channels/chan_multicast_rtp.c, res/res_pjsip_notify.c,
+ res/res_snmp.c, formats/format_sln.c, apps/app_meetme.c,
+ apps/app_dictate.c, codecs/codec_gsm.c, res/res_stasis_snoop.c,
+ res/res_musiconhold.c, res/res_format_attr_h264.c,
+ res/res_http_websocket.c, apps/app_followme.c,
+ res/res_config_sqlite.c, formats/format_siren7.c, cdr/cdr_csv.c,
+ formats/format_ilbc.c, channels/chan_phone.c,
+ apps/app_setcallerid.c, apps/app_osplookup.c, cel/cel_custom.c,
+ apps/app_mp3.c, res/res_agi.c, channels/chan_motif.c,
+ res/res_timing_timerfd.c, apps/app_confbridge.c,
+ res/res_format_attr_silk.c, formats/format_siren14.c,
+ res/res_sorcery_realtime.c, channels/chan_mgcp.c,
+ apps/app_jack.c, codecs/codec_lpc10.c,
+ res/res_pjsip_pidf_body_generator.c, res/res_config_pgsql.c,
+ funcs/func_dialplan.c, apps/app_nbscat.c, cdr/cdr_syslog.c,
+ res/res_pjsip_authenticator_digest.c, apps/app_festival.c,
+ res/res_fax.c, apps/app_waitforsilence.c, res/res_adsi.c,
+ res/res_crypto.c, res/res_ari_applications.c,
+ res/res_hep_pjsip.c, pbx/pbx_lua.c, res/res_pjsip_messaging.c,
+ res/res_pjsip_caller_id.c, channels/chan_console.c,
+ apps/app_getcpeid.c, res/res_stasis_answer.c,
+ channels/chan_oss.c, res/res_pjsip_nat.c,
+ res/res_pjsip_session.c, cdr/cdr_tds.c,
+ res/res_pjsip_header_funcs.c, res/res_parking.c,
+ formats/format_vox.c, res/res_pjsip_rfc3326.c,
+ res/res_ari_endpoints.c, res/res_stun_monitor.c,
+ res/res_pjsip_mwi.c, res/res_stasis_recording.c,
+ res/res_pjsip_xpidf_body_generator.c, apps/app_sms.c,
+ codecs/codec_ulaw.c, channels/chan_nbs.c, apps/app_stack.c,
+ channels/chan_pjsip.c, formats/format_g729.c, cel/cel_pgsql.c,
+ res/res_sorcery_config.c, res/res_ari.c, addons/chan_ooh323.c,
+ cdr/cdr_sqlite3_custom.c, codecs/codec_adpcm.c,
+ res/res_ari_asterisk.c, res/res_calendar_caldav.c,
+ apps/app_image.c, apps/app_ices.c, formats/format_wav_gsm.c,
+ main/cli.c, res/res_format_attr_celt.c, res/res_rtp_multicast.c,
+ channels/chan_dahdi.c, funcs/func_pitchshift.c, res/res_smdi.c,
+ res/res_pjsip_one_touch_record_info.c, pbx/pbx_ael.c,
+ pbx/pbx_realtime.c, apps/app_amd.c, channels/chan_alsa.c,
+ formats/format_h263.c, apps/app_url.c, res/res_pjsip_acl.c,
+ apps/app_externalivr.c, res/res_curl.c, formats/format_gsm.c,
+ res/res_speech.c, cdr/cdr_manager.c, res/res_calendar_exchange.c,
+ codecs/codec_g722.c, res/res_pjsip_multihomed.c,
+ res/res_ari_mailboxes.c, cel/cel_tds.c, res/res_sorcery_memory.c,
+ apps/app_fax.c, codecs/codec_speex.c, res/res_pjsip_sdp_rtp.c,
+ codecs/codec_g726.c, formats/format_ogg_vorbis.c,
+ apps/app_talkdetect.c, res/res_ari_channels.c,
+ res/res_pjsip_exten_state.c, apps/app_speech_utils.c,
+ apps/app_agent_pool.c, apps/app_waitforring.c, res/res_statsd.c,
+ addons/cdr_mysql.c, formats/format_g726.c, res/res_ari_bridges.c,
+ addons/app_mysql.c, res/res_stasis_playback.c,
+ addons/format_mp3.c, res/res_pjsip_endpoint_identifier_ip.c,
+ res/res_phoneprov.c, res/res_pjsip_t38.c,
+ res/res_pjsip_registrar_expire.c, cdr/cdr_pgsql.c,
+ cdr/cdr_radius.c, res/res_chan_stats.c,
+ res/res_format_attr_opus.c, res/res_config_odbc.c,
+ funcs/func_audiohookinherit.c,
+ res/res_pjsip_outbound_registration.c, cel/cel_manager.c,
+ funcs/func_odbc.c, res/res_pjsip_endpoint_identifier_anonymous.c,
+ funcs/func_frame_trace.c, funcs/func_aes.c, cdr/cdr_sqlite.c,
+ apps/app_minivm.c, res/res_pjsip_log_forwarder.c,
+ formats/format_h264.c, res/res_config_ldap.c, apps/app_ivrdemo.c,
+ addons/chan_mobile.c, apps/app_stasis.c,
+ res/res_pjsip_diversion.c, cdr/cdr_custom.c, apps/app_adsiprog.c,
+ res/res_pjsip_dtmf_info.c, res/res_rtp_asterisk.c,
+ res/res_calendar_icalendar.c, res/res_hep.c, channels/chan_sip.c,
+ channels/chan_bridge_media.c, codecs/codec_alaw.c,
+ apps/app_queue.c, res/res_srtp.c, funcs/func_presencestate.c,
+ res/res_timing_pthread.c, res/res_manager_presencestate.c,
+ res/res_corosync.c, apps/app_celgenuserevent.c,
+ cel/cel_sqlite3_custom.c, res/snmp/agent.c, pbx/pbx_dundi.c,
+ formats/format_g723.c, funcs/func_devstate.c,
+ res/res_pjsip_registrar.c,
+ res/res_pjsip_pidf_eyebeam_body_supplement.c,
+ addons/res_config_mysql.c,
+ res/res_pjsip_pidf_digium_body_supplement.c, apps/app_test.c,
+ res/res_timing_dahdi.c, cdr/cdr_adaptive_odbc.c,
+ apps/app_alarmreceiver.c, apps/app_chanisavail.c,
+ res/res_format_attr_h263.c, res/res_pjsip_mwi_body_generator.c,
+ res/res_xmpp.c, res/res_http_post.c, channels/chan_iax2.c,
+ res/res_pjsip_endpoint_identifier_user.c, res/res_pjsip.c,
+ res/res_pktccops.c, res/res_pjsip_send_to_voicemail.c,
+ main/loader.c, cel/cel_odbc.c, res/res_ari_model.c,
+ channels/chan_skinny.c,
+ res/res_pjsip_outbound_authenticator_digest.c,
+ res/res_mwi_external.c, apps/app_skel.c, formats/format_pcm.c,
+ include/asterisk/module.h, res/res_pjsip_path.c,
+ res/res_ari_playbacks.c, res/res_pjsip_pubsub.c, cdr/cdr_odbc.c,
+ funcs/func_periodic_hook.c, res/res_stasis_test.c,
+ formats/format_jpeg.c, res/res_pjsip_refer.c,
+ formats/format_g719.c, res/res_clialiases.c,
+ res/res_config_sqlite3.c, res/res_ari_device_states.c,
+ formats/format_wav.c, apps/app_saycounted.c, apps/app_dahdiras.c,
+ apps/app_morsecode.c, res/res_stasis_mailbox.c,
+ res/res_ael_share.c, res/res_mwi_external_ami.c,
+ res/res_pjsip_logger.c, res/res_stasis_device_state.c,
+ res/res_calendar_ews.c, res/res_monitor.c, apps/app_playback.c,
+ res/res_ari_recordings.c, res/res_manager_devicestate.c,
+ res/res_config_curl.c, channels/chan_misdn.c, funcs/func_curl.c,
+ res/res_ari_events.c, res/res_pjsip_dialog_info_body_generator.c,
+ res/res_sorcery_astdb.c, codecs/codec_dahdi.c,
+ apps/app_zapateller.c, pbx/pbx_config.c: Add module support level
+ to ast_module_info structure. Print it in CLI "module show" .
+ ASTERISK-23919 #close Reported by Malcolm Davenport Review:
+ https://reviewboard.asterisk.org/r/3802
+
+2014-07-25 14:47 +0000 [r419563-419567] Matthew Jordan <mjordan@digium.com>
+
+ * CHANGES, res/ari/ari_model_validators.c,
+ rest-api/api-docs/recordings.json,
+ res/ari/ari_model_validators.h, /, res/res_stasis_recording.c:
+ Multiple revisions 419565-419566 ........ r419565 | mjordan |
+ 2014-07-25 09:41:23 -0500 (Fri, 25 Jul 2014) | 21 lines ARI:
+ report duration values in LiveRecording objects This patch adds
+ three new fields to the LiveRecording model: - total_duration:
+ the total length of the live recording - talking_duration:
+ optional. The duration of talking energy that was detected while
+ the recording was made. - silence_duration: optional. The
+ duration of silence that was detected while the recording was
+ made. These values are reported in the RecordingFinished ARI
+ event. When a DSP is enabled on the channel during the recording
+ - which occurs when the recording is created with
+ max_silence_seconds (indicating that the user actually cares
+ about how much silence is in the file), we will report the
+ talking_duration and silence_duration in addition to the
+ total_duration. Review: https://reviewboard.asterisk.org/r/3770/
+ ASTERISK-24037 #close Reported by: Samuel Galarneau ........
+ r419566 | mjordan | 2014-07-25 09:46:15 -0500 (Fri, 25 Jul 2014)
+ | 1 line Update CHANGES for r419565 ........ Merged revisions
+ 419565-419566 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+ * main/loader.c, res/res_calendar.c: module loader: Unload modules
+ in reverse order of their start order When Asterisk starts a
+ module (calling its load_module function), it re-orders the
+ module list, sorting it alphabetically. Ostensibly, this was done
+ so that the output of 'module show' listed modules in alphabetic
+ order. This had the unfortunate side effect of making modules
+ with complex usage patterns unloadable. A module that has a large
+ number of modules that depend on it is typically abandoned during
+ the unloading process. This results in its memory not being
+ reclaimed during exit. Generally, this isn't harmful - when the
+ process is destroyed, the operating system will reclaim all
+ memory allocated by the process. Prior to Asterisk 12, we also
+ didn't have many modules with complex dependencies. However, with
+ the advent of ARI and PJSIP, this can make make unloading those
+ modules successfully nearly impossible, and thus tracking memory
+ leaks or ref debug leaks a real pain. While this patch is not a
+ complete overhaul of the module loader - such an effort would be
+ beyond the scope of what could be done for Asterisk 13 - this
+ does make some marginal improvements to the loader such that
+ modules like res_pjsip or res_stasis *may* be made properly
+ un-loadable in the future. 1. The linked list of modules has been
+ replaced with a doubly linked list. This allows traversal of the
+ module list to occur backwards. The module shutdown routine now
+ walks the global list backwards when it attempts to unload
+ modules. 2. The alphabetic reorganization of the module list on
+ startup has been removed. Instead, a started module is placed at
+ the end of the module list. 3. The ast_update_module_list
+ function - which is used by the CLI to display the modules - now
+ does the sorting alphabetically itself. It creates its own linked
+ list and inserts the modules into it in alphabetic order. This
+ allows for the intent of the previous code to be maintained. This
+ patch also contains a fix for res_calendar. Without
+ calendar.conf, the calendar modules were improperly bumping the
+ use count of res_calendar, then failing to load themselves. This
+ patch makes it so that we detect whether or not calendaring is
+ enabled before altering the use count. Review:
+ https://reviewboard.asterisk.org/r/3777/
+
+2014-07-25 10:54 +0000 [r419537-419539] Joshua Colp <jcolp@digium.com>
+
+ * apps/app_bridgewait.c, /: app_bridgewait: Remove possibility of
+ race condition between channels leaving/joining. Bridges created
+ by app_bridgewait previously had the "dissolve when empty" flag
+ set. This caused the bridge core to destroy them when the last
+ channel had left. This introduced a race condition where we may
+ have a reference to the bridge but it is not actually joinable
+ when we try to join it. This flag has now been removed and the
+ bridge is guaranteed to be joinable at all times. ASTERISK-23987
+ #close Reported by: Matt Jordan Review:
+ https://reviewboard.asterisk.org/r/3836/ ........ Merged
+ revisions 419538 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+ * /, main/bridge.c: bridge: Make "bridge destroy" only available in
+ developer mode and add "all" to "bridge kick". The "bridge
+ destroy" CLI command is invasive to bridges and can leave them in
+ an unexpected state for the users of them. Since this command may
+ be useful for developers it is now only available when developer
+ mode is available. To take its place "all" has been added as a
+ valid option to the "bridge kick" CLI command. It will kick all
+ of the channels in the bridge out. ASTERISK-23987 Reported by:
+ Matt Jordan Review: https://reviewboard.asterisk.org/r/3840/
+ ........ Merged revisions 419536 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-07-24 22:48 +0000 [r419520] Richard Mudgett <rmudgett@digium.com>
+
+ * main/bridge.c, main/bridge_basic.c, main/core_unreal.c,
+ UPGRADE.txt, include/asterisk/channel.h, CHANGES,
+ apps/app_followme.c, apps/app_queue.c, main/cel.c,
+ res/parking/parking_bridge_features.c, apps/app_dial.c,
+ main/channel.c, main/dial.c, main/pbx.c: accountcode: Slightly
+ change accountcode propagation. The previous behavior was to
+ simply set the accountcode of an outgoing channel to the
+ accountcode of the channel initiating the call. It was done this
+ way a long time ago to allow the accountcode set on the SIP/100
+ channel to be propagated to a local channel so the dialplan
+ execution on the Local;2 channel would have the SIP/100
+ accountcode available. SIP/100 -> Local;1/Local;2 -> SIP/200
+ Propagating the SIP/100 accountcode to the local channels is very
+ useful. Without any dialplan manipulation, all channels in this
+ call would have the same accountcode. Using dialplan, you can set
+ a different accountcode on the SIP/200 channel either by setting
+ the accountcode on the Local;2 channel or by the Dial
+ application's b(pre-dial), M(macro) or U(gosub) options, or by
+ the FollowMe application's b(pre-dial) option, or by the Queue
+ application's macro or gosub options. Before Asterisk v12, the
+ altered accountcode on SIP/200 will remain until the local
+ channels optimize out and the accountcode would change to the
+ SIP/100 accountcode. Asterisk v1.8 attempted to add peeraccount
+ support but ultimately had to punt on the support. The
+ peeraccount support was rendered useless because of how the CDR
+ code needed to unconditionally force the caller's accountcode
+ onto the peer channel's accountcode. The CEL events were thus
+ intentionally made to always use the channel's accountcode as the
+ peeraccount value. With the arrival of Asterisk v12, the
+ situation has improved somewhat so peeraccount support can be
+ made to work. Using the indicated example, the the accountcode
+ values become as follows when the peeraccount is set on SIP/100
+ before calling SIP/200: SIP/100 ---> Local;1 ---- Local;2 --->
+ SIP/200 acct: 100 \/ acct: 200 \/ acct: 100 \/ acct: 200 peer:
+ 200 /\ peer: 100 /\ peer: 200 /\ peer: 100 If a channel already
+ has an accountcode it can only change by the following explicit
+ user actions: 1) A channel originate method that can specify an
+ accountcode to use. 2) The calling channel propagating its
+ non-empty peeraccount or its non-empty accountcode if the
+ peeraccount was empty to the outgoing channel's accountcode
+ before initiating the dial. e.g., Dial and FollowMe. The
+ exception to this propagation method is Queue. Queue will only
+ propagate peeraccounts this way only if the outgoing channel does
+ not have an accountcode. 3) Dialplan using CHANNEL(accountcode).
+ 4) Dialplan using CHANNEL(peeraccount) on the other end of a
+ local channel pair. If a channel does not have an accountcode it
+ can get one from the following places: 1) The channel driver's
+ configuration at channel creation. 2) Explicit user action as
+ already indicated. 3) Entering a basic or stasis-mixing bridge
+ from a peer channel's peeraccount value. You can specify the
+ accountcode for an outgoing channel by setting the
+ CHANNEL(peeraccount) before using the Dial, FollowMe, and Queue
+ applications. Queue adds the wrinkle that it will not overwrite
+ an existing accountcode on the outgoing channel with the calling
+ channels values. Accountcode and peeraccount values propagate to
+ an outgoing channel before dialing. Accountcodes also propagate
+ when channels enter or leave a basic or stasis-mixing bridge. The
+ peeraccount value only makes sense for mixing bridges with two
+ channels; it is meaningless otherwise. * Made peeraccount
+ functional by changing accountcode propagation as described
+ above. * Fixed CEL extracting the wrong ie value for the
+ peeraccount. This was done intentionally in Asterisk v1.8 when
+ that version had to punt on peeraccount. * Fixed a few places
+ dealing with accountcodes that were reading from channels without
+ the lock held. AFS-65 #close Review:
+ https://reviewboard.asterisk.org/r/3601/
+
+2014-07-24 21:01 +0000 [r419504] Michael L. Young <elgueromexicano@gmail.com>
+
+ * main/db.c, include/asterisk/astdb.h: core/db: Revert Patch Added
+ In Attempt To Improve I/O Performance Reverting the patch since
+ it was causing a regression and after fixing the regression,
+ there were no performance gains. At least based on my method for
+ measurement. ASTERISK-24050 Review:
+ https://reviewboard.asterisk.org/r/3841/
+
+2014-07-24 17:50 +0000 [r419438-419439] Corey Farrell <git@cfware.com>
+
+ * include/asterisk/astobj.h: Deprecate astobj.h This flags astobj.h
+ as deprecated, warns people to use astobj2.h instead. Only
+ netsock.c (also deprecated) still uses astobj.h. ASTERISK-24069
+ #close Reported by: Corey Farrell Review:
+ https://reviewboard.asterisk.org/r/3818/
+
+ * channels/sip/include/sip.h, channels/chan_sip.c: chan_sip:
+ complete upgrade to ao2 This change upgrades sip_registry and
+ sip_subscription_mwi to astobj2. ASTERISK-24067 #close Reported
+ by: Corey Farrell Review:
+ https://reviewboard.asterisk.org/r/3759/
+
+2014-07-24 16:52 +0000 [r419377] Jason Parker <jparker@digium.com>
+
+ * addons/chan_ooh323.c, /: Don't cause Asterisk to exit if
+ ooh323.conf not found. (closes issue ASTERISK-23814) ........
+ Merged revisions 419374 from
+ http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
+ revisions 419375 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 419376 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-07-24 15:20 +0000 [r419358] Matthew Jordan <mjordan@digium.com>
+
+ * main/devicestate.c, channels/chan_pjsip.c: device state: Update
+ the core to report ONHOLD if a channel is on hold In Asterisk, it
+ is possible for a device to have a status of ONHOLD. This is not
+ typically an easy thing to determine, as a channel being on hold
+ is not a direct channel state. Typically, this has to be
+ calculated outside of the core independently in channel drivers,
+ notably, chan_sip and chan_pjsip. Both of these channel drivers
+ already have to calculate device state in a fashion more complex
+ than the core can handle, as they aggregate all state of all
+ channels associated with a peer/endpoint; they also independently
+ track whether or not one of those channels is currently on hold
+ and mark the device state appropriately. In 12+, we now have the
+ ability to report an AST_DEVICE_ONHOLD state for all channels
+ that defer their device state to the core. This is due to channel
+ hold state actually now being tracked on the channel itself. If a
+ channel driver defers its device state to the core (which many,
+ such as DAHDI, IAX2, and others do in most situations), the
+ device state core already goes out to get a channel associated
+ with the device. As such, it can now also factor the channel hold
+ state in its calculation. This patch adds this logic to the
+ device state core. It also uses an existing mapping between
+ device state and channel state to handle more channel states.
+ chan_pjsip has been updated slightly as well to make use of this
+ (as it was, for some reason, reporting a channel state of BUSY as
+ a device state of INUSE, which feels slightly wrong). Review:
+ https://reviewboard.asterisk.org/r/3771/ ASTERISK-24038 #close
+
+2014-07-24 13:00 +0000 [r419342] Kinsey Moore <kmoore@digium.com>
+
+ * include/asterisk/manager.h, doc/appdocsxml.dtd, main/xmldoc.c,
+ main/manager_bridges.c, main/manager.c,
+ include/asterisk/xmldoc.h, main/config_options.c: AMI: Allow for
+ command response documentation Allow for responses to AMI
+ actions/commands to be documented properly in XML and displayed
+ via the CLI. Response events are documented exactly as standard
+ AMI events are documented. Review:
+ https://reviewboard.asterisk.org/r/3812/
+
+2014-07-23 16:46 +0000 [r419319] Matthew Jordan <mjordan@digium.com>
+
+ * main/endpoints.c, tests/test_stasis_endpoints.c, /: endpoints:
+ Fix failing unit tests from r419196 This patch does two things:
+ (1) It updates the unit tests to expect additional stasis
+ messages. More messages are now sent to the endpoint topic, due
+ to forwarding all channel messages and the forwarding
+ relationship set up between endpoints themselves. (2) Remove the
+ technology forwarding subscription during ast_endpoint_shutdown.
+ This prevents an improper double shutdown of an endpoint from
+ occurring. ........ Merged revisions 419318 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-07-23 14:00 +0000 [r419286] Scott Griepentrog <sgriepentrog@digium.com>
+
+ * apps/app_voicemail.c, /: app_voicemail: use a consistent
+ generator string When updating voicemail.conf when a user changes
+ their pin, change the generator string to be the same as the
+ module name when reading so that the same config_hook will be
+ called. Review: https://reviewboard.asterisk.org/r/3837/ ........
+ Merged revisions 419284 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 419285 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-07-23 01:28 +0000 [r419268] Corey Farrell <git@cfware.com>
+
+ * main/manager.c, res/res_fax.c: res_fax: unregister manager
+ actions on unload * Unregister manager actions FAXSessions,
+ FAXSession and FAXStats at unload. * Update ast_manager_register2
+ use ao2_t_alloc tagged with the action name. ASTERISK-24058
+ #close Reported by: Corey Farrell Review:
+ https://reviewboard.asterisk.org/r/3831/
+
+2014-07-22 20:22 +0000 [r419222-419252] Michael L. Young <elgueromexicano@gmail.com>
+
+ * CHANGES, main/bridge_channel.c: core/bridge_channel: Substitute
+ Variables In Features Application Map Say you wanted to include
+ variables in an application map and have those variables
+ substituted and passed along to the application being executed;
+ currently this does not happen. This patch adds this ability to
+ pass channel variable values to an application before being
+ executed. ASTERISK-22608 #close Reported by: Michael L. Young
+ patches: features_substitute_arguments_v2.diff uploaded by
+ Michael L. Young (license 5026) Review:
+ https://reviewboard.asterisk.org/r/3819/
+
+ * CHANGES, apps/app_mixmonitor.c: apps/app_mixmonitor: Add Options
+ To Play Beep At Start Or Stop We have a new periodic beep feature
+ but sometimes a user needs some sort of feedback, without the
+ need to have a periodic beep during the recording, to let them
+ know that MixMonitor started recording or ended the recording.
+ The use case where this patch is being used is when using Dynamic
+ Features to start and end MixMonitor. This patch adds an option
+ to play a beep when MixMonitor starts and an option to play a
+ beep when MixMonitor ends. ASTERISK-24051 #close Reported by:
+ Michael L. Young patches: mixmonitor-play-beep-start-stop.diff
+ uploaded by Michael L. Young (license 5026) Review:
+ https://reviewboard.asterisk.org/r/3820/
+
+ * main/db.c, include/asterisk/astdb.h: core/db: Improve I/O When
+ Updating Rows When updating a row, we are currently doing an
+ INSERT OR REPLACE INTO. The downside to this is that the row is
+ deleted if it exists and then a new row is inserted. So, we are
+ hitting the disk twice. One for the deletion and one for the
+ insertion. This patch changes this statement to an INSERT INTO
+ and if the insert fails because a row with that key exists, we
+ will IGNORE the failure. Then we will attempt to perform an
+ UPDATE on the existing row if that row wasn't just INSERTed.
+ ASTERISK-24050 #close Reported by: Michael L. Young patches:
+ astdb-insert-update-io-help_trunk_v2.diff uploaded by Michael L.
+ Young (license 5026) Review:
+ https://reviewboard.asterisk.org/r/3815/
+
+2014-07-22 17:10 +0000 [r419206] Richard Mudgett <rmudgett@digium.com>
+
+ * codecs/codec_speex.c: codec_speex: Fix trashing normal static
+ frame for AST_FRAME_CNG. Made use a local static frame to
+ generate the AST_FRAME_CNG frame when silence starts. I don't
+ think the handling of the AST_FRAME_CNG has ever really worked
+ because there doesn't seem to be any consumers of it. Review:
+ https://reviewboard.asterisk.org/r/3813/
+
+2014-07-22 16:20 +0000 [r419203] Matthew Jordan <mjordan@digium.com>
+
+ * include/asterisk/endpoints.h,
+ rest-api/api-docs/applications.json, include/asterisk/xmpp.h,
+ main/channel_internal_api.c, channels/chan_motif.c,
+ include/asterisk/channel.h, res/ari/resource_applications.h,
+ res/res_xmpp.c, channels/chan_iax2.c, main/endpoints.c,
+ channels/chan_pjsip.c, main/channel.c,
+ res/ari/resource_endpoints.c, /, channels/chan_sip.c: ARI: Fix
+ endpoint/channel subscription issues; allow for subscriptions to
+ tech This patch serves two purposes: (1) It fixes some bugs with
+ endpoint subscriptions not reporting all of the channel events
+ (2) It serves as the preliminary work needed for ASTERISK-23692,
+ which allows for sending/receiving arbitrary out of call text
+ messages through ARI in a technology agnostic fashion. The
+ messaging functionality described on ASTERISK-23692 requires two
+ things: (1) The ability to send/receive messages associated with
+ an endpoint. This is relatively straight forwards with the
+ endpoint core in Asterisk now. (2) The ability to send/receive
+ messages associated with a technology and an arbitrary technology
+ defined URI. This is less straight forward, as endpoints are
+ formed from a tech + resource pair. We don't have a mechanism to
+ note that a technology that *may* have endpoints exists. This
+ patch provides such a mechanism, and fixes a few bugs along the
+ way. The first major bug this patch fixes is the forwarding of
+ channel messages to their respective endpoints. Prior to this
+ patch, there were two problems: (1) Channel caching messages
+ weren't forwarded. Thus, the endpoints missed most of the
+ interesting bits (such as channel creation, destruction, state
+ changes, etc.) (2) Channels weren't associated with their
+ endpoint until after creation. This resulted in endpoints missing
+ the channel creation message, which limited the usefulness of the
+ subscription in the first place (a major use case being 'tell me
+ when this endpoint has a channel'). Unfortunately, this meant
+ another parameter to ast_channel_alloc. Since not all channel
+ technologies support an ast_endpoint, this patch makes such a
+ call optional and opts for a new function,
+ ast_channel_alloc_with_endpoint. When endpoints are created, they
+ will implicitly create a technology endpoint for their technology
+ (if one does not already exist). A technology endpoint is special
+ in that it has no state, cannot have channels created for it,
+ cannot be created explicitly, and cannot be destroyed except on
+ shutdown. It does, however, have all messages from other
+ endpoints in its technology forwarded to it. Combined with the
+ bug fixes, we now have Stasis messages being properly forwarded.
+ Consider the following scenario: two PJSIP endpoints (foo and
+ bar), where bar has a single channel associated with it and foo
+ has two channels associated with it. The messages would be
+ forwarded as follows: channel PJSIP/foo-1 -- \ --> endpoint
+ PJSIP/foo -- / \ channel PJSIP/foo-2 -- \ ---- > endpoint PJSIP /
+ channel PJSIP/bar-1 -----> endpoint PJSIP/bar -- ARI, through the
+ applications resource, can: - subscribe to endpoint:PJSIP/foo and
+ get notifications for channels PJSIP/foo-1,PJSIP/foo-2 and
+ endpoint PJSIP/foo - subscribe to endpoint:PJSIP/bar and get
+ notifications for channels PJSIP/bar-1 and endpoint PJSIP/bar -
+ subscribe to endpoint:PJSIP and get notifications for channels
+ PJSIP/foo-1,PJSIP/foo-2,PJSIP/bar-1 and endpoints
+ PJSIP/foo,PJSIP/bar Note that since endpoint PJSIP never changes,
+ it never has events itself. It merely provides an aggregation
+ point for all other endpoints in its technology (which in turn
+ aggregate all channel messages associated with that endpoint).
+ This patch also adds endpoints to res_xmpp and chan_motif,
+ because the actual messaging work will need it (messaging without
+ XMPP is just sad). Review:
+ https://reviewboard.asterisk.org/r/3760/ ASTERISK-23692 ........
+ Merged revisions 419196 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-07-22 14:36 +0000 [r419180] Joshua Colp <jcolp@digium.com>
+
+ * channels/chan_iax2.c: chan_iax2: Restore previous behavior of
+ iax2_best_codec. The iax2_best_codec function was changed to
+ convert the formats into a format compatibilities structure and
+ grab the first format from it. The resulting order differs from
+ the previous order of iax2_best_codec which causes unexpected
+ formats to get chosen (such as g723). This commit brings back the
+ old behavior of iax2_best_codec by having a specified preference
+ list. Review: https://reviewboard.asterisk.org/r/3835/
+
+2014-07-22 14:22 +0000 [r419110-419175] Kinsey Moore <kmoore@digium.com>
+
+ * addons/ooh323c/src/printHandler.c, tests/test_sorcery_realtime.c,
+ tests/test_json.c, addons/ooh323c/src/ooq931.c,
+ tests/test_astobj2_thrash.c, addons/chan_ooh323.c, /,
+ tests/test_optional_api.c, tests/test_abstract_jb.c,
+ apps/app_meetme.c, tests/test_logger.c, tests/test_event.c,
+ tests/test_hashtab_thrash.c, res/res_mwi_external_ami.c,
+ tests/test_sorcery.c, res/res_corosync.c,
+ tests/test_voicemail_api.c, tests/test_aoc.c,
+ tests/test_astobj2.c, tests/test_config.c: Fix more dev-mode
+ build issues ........ Merged revisions 419129 from
+ http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
+ revisions 419162 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 419163 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+ * main/dial.c: Dial API: Prevent crash on NULL cap This prevents a
+ crash in the Dial API triggered by use of the Page() application
+ where a format capability struct was used before checking whether
+ it was NULL. ASTERISK-24074 #close
+
+ * channels/chan_skinny.c, tests/test_core_format.c: Fix build in
+ dev-mode
+
+2014-07-21 16:26 +0000 [r419109] Jonathan Rose <jrose@digium.com>
+
+ * channels/chan_iax2.c: chan_iax2: Restore codec choice behavior
+ from media formats branch After merging the media formats branch,
+ chan_iax2 was discarding codec preferences for the purpose of
+ choosing which codec a channel would use once a call started.
+ This patch restores the Asterisk 1.8-12 codec choice behaviors.
+ ASTERISK-23958 #close Review:
+ https://reviewboard.asterisk.org/r/3800/
+
+2014-07-21 16:09 +0000 [r419093] Joshua Colp <jcolp@digium.com>
+
+ * channels/chan_iax2.c: chan_iax2: Only send mini frames if the
+ underlying format has not changed, not if it has. ASTERISK-24072
+ #close Reported by: Matt Jordan
+
+2014-07-21 14:49 +0000 [r419077] Sean Bright <sean@malleable.com>
+
+ * configure, configure.ac: Fix build when pjproject is installed in
+ a non-standard location. When configuring Asterisk to build
+ against a version of pjproject installed in a non-standard
+ location, the checks for "PJSIP Transaction Group Lock Support"
+ and "PJSIP Media Stream Replacement Support" fail. This is
+ because these secondary checks are not taking the CFLAGS and LIBS
+ returned by the pkg-config check into account. Review:
+ https://reviewboard.asterisk.org/r/3830
+
+2014-07-21 08:41 +0000 [r419060] Corey Farrell <git@cfware.com>
+
+ * channels/sig_analog.c, res/res_smdi.c, channels/chan_motif.c,
+ include/asterisk/smdi.h, apps/app_voicemail.c,
+ channels/chan_dahdi.c: res_smdi: convert to astobj2 Remove
+ functions: ast_smdi_interface_unref ast_smdi_md_message_putback
+ ast_smdi_mwi_message_putback ast_smdi_md_message destructor
+ ast_smdi_mwi_message destructor Includes for astobj.h are removed
+ everywhere it's possible. ASTERISK-24066 #close Review:
+ https://reviewboard.asterisk.org/r/3758/
+
+2014-07-20 22:06 +0000 [r419044] Matthew Jordan <mjordan@digium.com>
+
+ * apps/app_confbridge.c, res/ari/resource_channels.c,
+ include/asterisk/rtp_engine.h, include/asterisk/slinfactory.h,
+ res/res_calendar.c, codecs/codec_g722.c,
+ include/asterisk/res_pjsip_session.h, main/frame.c,
+ codecs/ex_lpc10.h, apps/app_dictate.c, res/res_fax.c,
+ apps/app_echo.c, include/asterisk/slin.h, codecs/codec_g726.c,
+ formats/format_ogg_vorbis.c, codecs/codec_gsm.c,
+ codecs/ex_alaw.h, formats/format_wav_gsm.c,
+ channels/iax2/provision.c, channels/chan_iax2.c,
+ res/res_format_attr_h264.c, main/data.c, main/manager.c,
+ include/asterisk/audiohook.h, formats/format_pcm.c,
+ main/config_options.c, res/res_format_attr_silk.c,
+ main/bridge_channel.c, res/res_speech.c, channels/chan_pjsip.c,
+ res/res_clioriginate.c, formats/format_g729.c,
+ channels/chan_unistim.c, res/res_rtp_asterisk.c,
+ include/asterisk/smoother.h (added), main/rtp_engine.c,
+ addons/format_mp3.c, formats/format_wav.c,
+ apps/confbridge/conf_chan_record.c, include/asterisk/speech.h,
+ codecs/ex_adpcm.h, channels/iax2/codec_pref.c (added),
+ include/asterisk/codec.h (added), formats/format_siren7.c,
+ include/asterisk/file.h, channels/chan_dahdi.c,
+ include/asterisk/image.h, funcs/func_channel.c,
+ main/abstract_jb.c, formats/format_h263.c, codecs/codec_dahdi.c,
+ main/dsp.c, apps/app_voicemail.c, apps/app_jack.c,
+ funcs/func_talkdetect.c, channels/chan_vpb.cc,
+ channels/chan_sip.c, formats/format_sln.c,
+ tests/test_abstract_jb.c, codecs/codec_alaw.c, UPGRADE.txt,
+ main/smoother.c (added), codecs/ex_speex.h,
+ channels/chan_console.c, apps/app_talkdetect.c,
+ main/format_pref.c (removed), main/indications.c,
+ include/asterisk/format_cap.h, main/media_index.c,
+ apps/app_agent_pool.c, res/res_pjsip_session.c, main/cli.c,
+ res/res_format_attr_celt.c, channels/chan_skinny.c,
+ tests/test_core_format.c (added), funcs/func_frame_trace.c,
+ res/res_pjsip/pjsip_configuration.c, main/file.c,
+ include/asterisk/frame.h, formats/format_g726.c,
+ apps/app_mixmonitor.c, channels/chan_mgcp.c, main/sorcery.c,
+ codecs/ex_ilbc.h, codecs/codec_lpc10.c, tests/test_format_cache.c
+ (added), apps/app_meetme.c, main/translate.c,
+ apps/app_originate.c, res/parking/parking_applications.c,
+ apps/app_ices.c, channels/iax2/parser.c, res/res_rtp_multicast.c,
+ pbx/pbx_spool.c, funcs/func_pitchshift.c, formats/format_vox.c,
+ main/format_cap.c, tests/test_cel.c, include/asterisk/format.h,
+ formats/format_h264.c, apps/app_chanspy.c, apps/app_nbscat.c,
+ addons/chan_ooh323.c, bridges/bridge_holding.c,
+ channels/iax2/include/codec_pref.h (added), codecs/codec_adpcm.c,
+ apps/app_waitforsilence.c, res/res_pjsip_sdp_rtp.c,
+ addons/chan_ooh323.h, bridges/bridge_simple.c,
+ apps/app_alarmreceiver.c, bridges/bridge_softmix.c,
+ res/res_stasis_snoop.c, main/sounds_index.c, main/core_local.c,
+ main/codec_builtin.c (added), include/asterisk/format_cache.h
+ (added), apps/app_speech_utils.c, res/res_format_attr_opus.c,
+ include/asterisk/abstract_jb.h, main/channel.c,
+ include/asterisk/format_compatibility.h (added), apps/app_mp3.c,
+ tests/test_voicemail_api.c, channels/chan_alsa.c, main/app.c,
+ formats/format_g723.c, codecs/codec_ilbc.c, tests/test_config.c,
+ formats/format_gsm.c, apps/app_milliwatt.c, codecs/ex_ulaw.h,
+ main/asterisk.c, include/asterisk/res_pjsip.h, main/format.c,
+ main/ccss.c, main/bridge.c, codecs/codec_speex.c,
+ include/asterisk/format_pref.h (removed), apps/app_record.c,
+ main/slinfactory.c, res/res_adsi.c, main/core_unreal.c,
+ res/ari/resource_bridges.c, include/asterisk/callerid.h,
+ channels/pjsip/dialplan_functions.c, main/dial.c,
+ channels/dahdi/bridge_native_dahdi.c, main/format_cache.c
+ (added), include/asterisk/mod_format.h, apps/app_sms.c,
+ codecs/codec_resample.c, main/format_compatibility.c (added),
+ main/audiohook.c, formats/format_jpeg.c, res/res_stasis.c,
+ formats/format_g719.c, include/asterisk/translate.h,
+ funcs/func_speex.c, codecs/codec_a_mu.c,
+ channels/iax2/format_compatibility.c (added),
+ apps/app_festival.c, main/channel_internal_api.c,
+ tests/test_format_api.c (removed), codecs/ex_g722.h,
+ main/utils.c, res/ari/resource_sounds.c,
+ res/res_format_attr_h263.c, codecs/ex_g726.h,
+ include/asterisk/_private.h, channels/chan_oss.c,
+ channels/chan_misdn.c, main/codec.c (added), main/callerid.c,
+ addons/ooh323cDriver.c, apps/app_amd.c, codecs/codec_ulaw.c,
+ main/image.c, channels/chan_nbs.c, bridges/bridge_native_rtp.c,
+ channels/iax2/include/format_compatibility.h (added),
+ formats/format_siren14.c, res/res_fax_spandsp.c,
+ addons/chan_mobile.c, addons/ooh323cDriver.h,
+ channels/sip/include/sip.h, tests/test_format_cap.c (added),
+ channels/chan_multicast_rtp.c, include/asterisk/vector.h,
+ channels/chan_bridge_media.c, apps/app_fax.c,
+ main/bridge_basic.c, apps/app_test.c, include/asterisk/channel.h,
+ include/asterisk/data.h, tests/test_core_codec.c (added),
+ res/res_musiconhold.c, codecs/ex_gsm.h, formats/format_ilbc.c,
+ include/asterisk/config_options.h, channels/chan_phone.c,
+ include/asterisk/bridge_channel.h, apps/app_dumpchan.c,
+ channels/chan_motif.c, res/res_agi.c: media formats: re-architect
+ handling of media for performance improvements In the old times
+ media formats were represented using a bit field. This was fast
+ but had a few limitations. 1. Asterisk was limited in how many
+ formats it could handle. 2. Formats, being a bit field, could not
+ include any attribute information. A format was strictly its
+ type, e.g., "this is ulaw". This was changed in Asterisk 10 (see
+ https://wiki.asterisk.org/wiki/display/AST/Media+Architecture+Proposal
+ for notes on that work) which led to the creation of the
+ ast_format structure. This structure allowed Asterisk to handle
+ attributes and bundle information with a format. Additionally,
+ ast_format_cap was created to act as a container for multiple
+ formats that, together, formed the capability of some entity.
+ Another mechanism was added to allow logic to be registered which
+ performed format attribute negotiation. Everywhere throughout the
+ codebase Asterisk was changed to use this strategy.
+ Unfortunately, in software, there is no free lunch. These new
+ capabilities came at a cost. Performance analysis and profiling
+ showed that we spend an inordinate amount of time comparing,
+ copying, and generally manipulating formats and their related
+ structures. Basic prototyping has shown that a reasonably large
+ performance improvement could be made in this area. This patch is
+ the result of that project, which overhauled the media format
+ architecture and its usage in Asterisk to improve performance.
+ Generally, the new philosophy for handling formats is as follows:
+ * The ast_format structure is reference counted. This removed a
+ large amount of the memory allocations and copying that was done
+ in prior versions. * In order to prevent race conditions while
+ keeping things performant, the ast_format structure is immutable
+ by convention and lock-free. Violate this tenet at your peril! *
+ Because formats are reference counted, codecs are also reference
+ counted. The Asterisk core generally provides built-in codecs and
+ caches the ast_format structures created to represent them.
+ Generally, to prevent inordinate amounts of module reference
+ bumping, codecs and formats can be added at run-time but cannot
+ be removed. * All compatibility with the bit field representation
+ of codecs/formats has been moved to a compatibility API. The
+ primary user of this representation is chan_iax2, which must
+ continue to maintain its bit-field usage of formats for
+ interoperability concerns. * When a format is negotiated with
+ attributes, or when a format cannot be represented by one of the
+ cached formats, a new format object is created or cloned from an
+ existing format. That format may have the same codec underlying
+ it, but is a different format than a version of the format with
+ different attributes or without attributes. * While formats are
+ reference counted objects, the reference count maintained on the
+ format should be manipulated with care. Formats are generally
+ cached and will persist for the lifetime of Asterisk and do not
+ explicitly need to have their lifetime modified. An exception to
+ this is when the user of a format does not know where the format
+ came from *and* the user may outlive the provider of the format.
+ This occurs, for example, when a format is read from a channel:
+ the channel may have a format with attributes (hence, non-cached)
+ and the user of the format may last longer than the channel (if
+ the reference to the channel is released prior to the format's
+ reference). For more information on this work, see the API design
+ notes:
+ https://wiki.asterisk.org/wiki/display/AST/Media+Format+Rewrite
+ Finally, this work was the culmination of a large number of
+ developer's efforts. Extra thanks goes to Corey Farrell, who took
+ on a large amount of the work in the Asterisk core, chan_sip, and
+ was an invaluable resource in peer reviews throughout this
+ project. There were a substantial number of patches contributed
+ during this work; the following issues/patch names simply reflect
+ some of the work (and will cause the release scripts to give
+ attribution to the individuals who work on them). Reviews:
+ https://reviewboard.asterisk.org/r/3814
+ https://reviewboard.asterisk.org/r/3808
+ https://reviewboard.asterisk.org/r/3805
+ https://reviewboard.asterisk.org/r/3803
+ https://reviewboard.asterisk.org/r/3801
+ https://reviewboard.asterisk.org/r/3798
+ https://reviewboard.asterisk.org/r/3800
+ https://reviewboard.asterisk.org/r/3794
+ https://reviewboard.asterisk.org/r/3793
+ https://reviewboard.asterisk.org/r/3792
+ https://reviewboard.asterisk.org/r/3791
+ https://reviewboard.asterisk.org/r/3790
+ https://reviewboard.asterisk.org/r/3789
+ https://reviewboard.asterisk.org/r/3788
+ https://reviewboard.asterisk.org/r/3787
+ https://reviewboard.asterisk.org/r/3786
+ https://reviewboard.asterisk.org/r/3784
+ https://reviewboard.asterisk.org/r/3783
+ https://reviewboard.asterisk.org/r/3778
+ https://reviewboard.asterisk.org/r/3774
+ https://reviewboard.asterisk.org/r/3775
+ https://reviewboard.asterisk.org/r/3772
+ https://reviewboard.asterisk.org/r/3761
+ https://reviewboard.asterisk.org/r/3754
+ https://reviewboard.asterisk.org/r/3753
+ https://reviewboard.asterisk.org/r/3751
+ https://reviewboard.asterisk.org/r/3750
+ https://reviewboard.asterisk.org/r/3748
+ https://reviewboard.asterisk.org/r/3747
+ https://reviewboard.asterisk.org/r/3746
+ https://reviewboard.asterisk.org/r/3742
+ https://reviewboard.asterisk.org/r/3740
+ https://reviewboard.asterisk.org/r/3739
+ https://reviewboard.asterisk.org/r/3738
+ https://reviewboard.asterisk.org/r/3737
+ https://reviewboard.asterisk.org/r/3736
+ https://reviewboard.asterisk.org/r/3734
+ https://reviewboard.asterisk.org/r/3722
+ https://reviewboard.asterisk.org/r/3713
+ https://reviewboard.asterisk.org/r/3703
+ https://reviewboard.asterisk.org/r/3689
+ https://reviewboard.asterisk.org/r/3687
+ https://reviewboard.asterisk.org/r/3674
+ https://reviewboard.asterisk.org/r/3671
+ https://reviewboard.asterisk.org/r/3667
+ https://reviewboard.asterisk.org/r/3665
+ https://reviewboard.asterisk.org/r/3625
+ https://reviewboard.asterisk.org/r/3602
+ https://reviewboard.asterisk.org/r/3519
+ https://reviewboard.asterisk.org/r/3518
+ https://reviewboard.asterisk.org/r/3516
+ https://reviewboard.asterisk.org/r/3515
+ https://reviewboard.asterisk.org/r/3512
+ https://reviewboard.asterisk.org/r/3506
+ https://reviewboard.asterisk.org/r/3413
+ https://reviewboard.asterisk.org/r/3410
+ https://reviewboard.asterisk.org/r/3387
+ https://reviewboard.asterisk.org/r/3388
+ https://reviewboard.asterisk.org/r/3389
+ https://reviewboard.asterisk.org/r/3390
+ https://reviewboard.asterisk.org/r/3321
+ https://reviewboard.asterisk.org/r/3320
+ https://reviewboard.asterisk.org/r/3319
+ https://reviewboard.asterisk.org/r/3318
+ https://reviewboard.asterisk.org/r/3266
+ https://reviewboard.asterisk.org/r/3265
+ https://reviewboard.asterisk.org/r/3234
+ https://reviewboard.asterisk.org/r/3178 ASTERISK-23114 #close
+ Reported by: mjordan media_formats_translation_core.diff uploaded
+ by kharwell (License 6464) rb3506.diff uploaded by mjordan
+ (License 6283) media_format_app_file.diff uploaded by kharwell
+ (License 6464) misc-2.diff uploaded by file (License 5000)
+ chan_mild-3.diff uploaded by file (License 5000)
+ chan_obscure.diff uploaded by file (License 5000) jingle.diff
+ uploaded by file (License 5000) funcs.diff uploaded by file
+ (License 5000) formats.diff uploaded by file (License 5000)
+ core.diff uploaded by file (License 5000) bridges.diff uploaded
+ by file (License 5000) mf-codecs-2.diff uploaded by file (License
+ 5000) mf-app_fax.diff uploaded by file (License 5000)
+ mf-apps-3.diff uploaded by file (License 5000)
+ media-formats-3.diff uploaded by file (License 5000)
+ ASTERISK-23715 rb3713.patch uploaded by coreyfarrell (License
+ 5909) rb3689.patch uploaded by mjordan (License 6283)
+ ASTERISK-23957 rb3722.patch uploaded by mjordan (License 6283)
+ mf-attributes-3.diff uploaded by file (License 5000)
+ ASTERISK-23958 Tested by: jrose rb3822.patch uploaded by
+ coreyfarrell (License 5909) rb3800.patch uploaded by jrose
+ (License 6182) chan_sip.diff uploaded by mjordan (License 6283)
+ rb3747.patch uploaded by jrose (License 6182) ASTERISK-23959
+ #close Tested by: sgriepentrog, mjordan, coreyfarrell
+ sip_cleanup.diff uploaded by opticron (License 6273)
+ chan_sip_caps.diff uploaded by mjordan (License 6283)
+ rb3751.patch uploaded by coreyfarrell (License 5909)
+ chan_sip-3.diff uploaded by file (License 5000) ASTERISK-23960
+ #close Tested by: opticron direct_media.diff uploaded by opticron
+ (License 6273) pjsip-direct-media.diff uploaded by file (License
+ 5000) format_cap_remove.diff uploaded by opticron (License 6273)
+ media_format_fixes.diff uploaded by opticron (License 6273)
+ chan_pjsip-2.diff uploaded by file (License 5000) ASTERISK-23966
+ #close Tested by: rmudgett rb3803.patch uploaded by rmudgetti
+ (License 5621) chan_dahdi.diff uploaded by file (License 5000)
+ ASTERISK-24064 #close Tested by: coreyfarrell, mjordan, opticron,
+ file, rmudgett, sgriepentrog, jrose rb3814.patch uploaded by
+ rmudgett (License 5621) moh_cleanup.diff uploaded by opticron
+ (License 6273) bridge_leak.diff uploaded by opticron (License
+ 6273) translate.diff uploaded by file (License 5000) rb3795.patch
+ uploaded by rmudgett (License 5621) tls_fix.diff uploaded by
+ mjordan (License 6283) fax-mf-fix-2.diff uploaded by file
+ (License 5000) rtp_transfer_stuff uploaded by mjordan (License
+ 6283) rb3787.patch uploaded by rmudgett (License 5621)
+ media-formats-explicit-translate-format-3.diff uploaded by file
+ (License 5000) format_cache_case_fix.diff uploaded by opticron
+ (License 6273) rb3774.patch uploaded by rmudgett (License 5621)
+ rb3775.patch uploaded by rmudgett (License 5621)
+ rtp_engine_fix.diff uploaded by opticron (License 6273)
+ rtp_crash_fix.diff uploaded by opticron (License 6273)
+ rb3753.patch uploaded by mjordan (License 6283) rb3750.patch
+ uploaded by mjordan (License 6283) rb3748.patch uploaded by
+ rmudgett (License 5621) media_format_fixes.diff uploaded by
+ opticron (License 6273) rb3740.patch uploaded by mjordan (License
+ 6283) rb3739.patch uploaded by mjordan (License 6283)
+ rb3734.patch uploaded by mjordan (License 6283) rb3689.patch
+ uploaded by mjordan (License 6283) rb3674.patch uploaded by
+ coreyfarrell (License 5909) rb3671.patch uploaded by coreyfarrell
+ (License 5909) rb3667.patch uploaded by coreyfarrell (License
+ 5909) rb3665.patch uploaded by mjordan (License 6283)
+ rb3625.patch uploaded by coreyfarrell (License 5909) rb3602.patch
+ uploaded by coreyfarrell (License 5909)
+ format_compatibility-2.diff uploaded by file (License 5000)
+ core.diff uploaded by file (License 5000)
+
+2014-07-18 21:48 +0000 [r419022] Matthew Jordan <mjordan@digium.com>
+
+ * rest-api/api-docs/recordings.json, res/ari/resource_recordings.c,
+ res/stasis_recording/stored.c, res/res_ari_recordings.c, /,
+ include/asterisk/stasis_app_recording.h,
+ res/ari/resource_recordings.h, CHANGES: ari: Add a copy operation
+ for stored recordings This patch adds a new operation for stored
+ recordings, copy. It takes an existing stored recording and makes
+ a copy of it in the same directory or a relative directory under
+ the stored recording directory.
+ /ari/recordings/stored/{recordingName}/copy?destinationRecordingName={copy_name}
+ This is particularly useful for voicemail-esque applications,
+ which may need to copy or move recordings around a directory
+ structure. Review: https://reviewboard.asterisk.org/r/3768/
+ ASTERISK-24036 #close Reported by: Sam Galarneau Tested by: Sam
+ Galarneau ........ Merged revisions 419021 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-07-18 21:25 +0000 [r418997-419020] Corey Farrell <git@cfware.com>
+
+ * main/stasis_message_router.c, /: stasis: fix call to ao2_t_alloc
+ for stasis_message_router_create This fixes a build failure
+ introduced by r3821. struct stasis_topic is opaque, so
+ topic->name is unavailable. Switch to using stasis_topic_name().
+ ........ Merged revisions 419019 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+ * main/stasis.c, main/stasis_cache_pattern.c,
+ main/stasis_message.c, main/stasis_message_router.c, /: stasis:
+ use ao2_t_alloc for certain object allocators Add tags to stasis
+ objects using the name. This makes it easier to track the source
+ of certain stasis ref leaks. Review:
+ https://reviewboard.asterisk.org/r/3821/ ........ Merged
+ revisions 418996 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-07-18 19:07 +0000 [r418980] Kinsey Moore <kmoore@digium.com>
+
+ * res/res_fax_spandsp.c: Fix build in dev-mode
+
+2014-07-18 17:55 +0000 [r418961-418963] Scott Griepentrog <sgriepentrog@digium.com>
+
+ * res/res_pjsip_pubsub.c, main/astobj2.c,
+ include/asterisk/astobj2.h, main/logger.c, main/utils.c: astobj2:
+ assert on invalid ref and backtrace cleanup If a reference count
+ goes negative, instead of just logging that fact, be more helpful
+ with a backtrace and an assert that will DO_CRASH. This patch
+ also removes the duplicate ao2_bt() function and cleans up
+ extraneous usage of the ast_log_backtrace() call. Review:
+ https://reviewboard.asterisk.org/r/3765/
+
+ * /, channels/chan_sip.c: media formats: fix ref leak of peer for
+ mwi subscription Holding a reference to the peer during mwi
+ subscriptions resulted in a circular reference because the final
+ event message would not be sent until destruction of the peer.
+ Instead, pass the name of the peer to the event callback so that
+ it can fail gracefully after the peer has gone. ASTERISK-23959
+ Review: https://reviewboard.asterisk.org/r/3754/ ........ Merged
+ revisions 418636 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+ * /, main/features_config.c: feature_config: insure featuregroups
+ and applicationmaps are initialized If the features.conf is
+ missing, the cfg->featurgroups and cfg->applicationmaps is not
+ initialized, resulting in assert on ao2_find of a null container.
+ This patch changes the initialization call and adds asserts for a
+ safeguard. Review: https://reviewboard.asterisk.org/r/3809/
+ ........ Merged revisions 418886 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-07-18 16:47 +0000 [r418938] Richard Mudgett <rmudgett@digium.com>
+
+ * funcs/func_audiohookinherit.c, /: func_audiohookinherit.c: Fixup
+ some XML documentation wording. ........ Merged revisions 418937
+ from http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-07-18 16:28 +0000 [r418911-418936] Jonathan Rose <jrose@digium.com>
+
+ * main/channel.c, funcs/func_audiohookinherit.c, /,
+ include/asterisk/audiohook.h, main/framehook.c, res/res_fax.c,
+ main/bridge_basic.c, include/asterisk/res_fax.h,
+ bridges/bridge_native_rtp.c, main/audiohook.c, CHANGES,
+ include/asterisk/framehook.h, res/res_pjsip_refer.c: Channels:
+ Masquerades to automatically move frame/audio hooks Whenever
+ possible, audiohooks and framehooks will now be copied over to
+ the channel that the masquerading channel gets cloned into. This
+ should occur for all audiohooks and most framehooks. As a result,
+ in Asterisk 12.5 and up, the AUDIOHOOK_INHERIT function is now
+ deprecated and its behavior is essentially the new default for
+ all audiohooks, plus some additional audiohooks/framehooks.
+ Review: https://reviewboard.asterisk.org/r/3721/ ........ Merged
+ revisions 418914 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+ * res/res_fax.c, include/asterisk/res_fax.h, CHANGES,
+ res/res_fax.exports.in, res/res_fax_spandsp.c: res_fax: Provide
+ AMI equivalents for fax CLI commands Specifically the following
+ equivalents were created: fax show session -> FAXSession fax show
+ sessions -> FAXSessions fax show stats -> FAXStats Review:
+ https://reviewboard.asterisk.org/r/3666/
+
+2014-07-18 00:11 +0000 [r418893-418895] Sean Bright <sean@malleable.com>
+
+ * config.sub, menuselect/config.guess, menuselect/config.sub,
+ config.guess: Update config.guess and config.sub
+
+ * autoconf/ast_ext_tool_check.m4: Add missing file from previous
+ commit.
+
+ * menuselect/aclocal.m4, menuselect/configure,
+ menuselect/acinclude.m4 (removed), menuselect/bootstrap.sh,
+ menuselect/autoconfig.h.in: Import Asterisk's autoconf magic
+ instead of using our own.
+
+2014-07-17 21:17 +0000 [r418832-418870] Matthew Jordan <mjordan@digium.com>
+
+ * configs/samples/acl.conf.sample (added),
+ configs/samples/extensions.conf.sample (added),
+ configs/res_parking.conf.sample (removed),
+ configs/samples/cel_sqlite3_custom.conf.sample (added),
+ configs/cdr_sqlite3_custom.conf.sample (removed),
+ configs/modules.conf.sample (removed),
+ configs/samples/cli_aliases.conf.sample (added),
+ configs/meetme.conf.sample (removed),
+ configs/cdr_pgsql.conf.sample (removed),
+ configs/samples/extensions.ael.sample (added),
+ configs/samples/cdr_adaptive_odbc.conf.sample (added),
+ configs/samples/motif.conf.sample (added),
+ configs/samples/extensions_minivm.conf.sample (added),
+ configs/samples/res_curl.conf.sample (added),
+ configs/res_config_sqlite3.conf.sample (removed),
+ configs/mgcp.conf.sample (removed), configs/dsp.conf.sample
+ (removed), configs/udptl.conf.sample (removed),
+ configs/sip.conf.sample (removed), configs/dbsep.conf.sample
+ (removed), configs/queuerules.conf.sample (removed),
+ configs/samples/cdr_mysql.conf.sample (added),
+ configs/confbridge.conf.sample (removed),
+ configs/samples/cdr_odbc.conf.sample (added),
+ configs/samples/minivm.conf.sample (added),
+ configs/enum.conf.sample (removed),
+ configs/samples/codecs.conf.sample (added),
+ configs/samples/chan_dahdi.conf.sample (added),
+ configs/samples/cdr_custom.conf.sample (added),
+ configs/samples/res_config_mysql.conf.sample (added),
+ configs/samples/dundi.conf.sample (added),
+ configs/samples/oss.conf.sample (added),
+ configs/samples/app_mysql.conf.sample (added),
+ configs/samples/queues.conf.sample (added),
+ configs/samples/cdr.conf.sample (added),
+ configs/samples/cdr_syslog.conf.sample (added),
+ configs/festival.conf.sample (removed),
+ configs/samples/cel_pgsql.conf.sample (added),
+ configs/http.conf.sample (removed), configs/phoneprov.conf.sample
+ (removed), configs/alarmreceiver.conf.sample (removed),
+ configs/samples/features.conf.sample (added),
+ configs/cdr_tds.conf.sample (removed),
+ configs/func_odbc.conf.sample (removed),
+ configs/samples/logger.conf.sample (added),
+ configs/samples/res_odbc.conf.sample (added),
+ configs/samples/agents.conf.sample (added),
+ configs/res_fax.conf.sample (removed),
+ configs/samples/xmpp.conf.sample (added),
+ configs/iaxprov.conf.sample (removed),
+ configs/res_pgsql.conf.sample (removed),
+ configs/extensions.conf.sample (removed),
+ configs/chan_mobile.conf.sample (removed), configs/asterisk.adsi
+ (removed), configs/cel_sqlite3_custom.conf.sample (removed),
+ configs/users.conf.sample (removed),
+ configs/samples/res_pktccops.conf.sample (added),
+ configs/samples/amd.conf.sample (added), configs/rtp.conf.sample
+ (removed), configs/samples/res_parking.conf.sample (added),
+ configs/hep.conf.sample (removed),
+ configs/samples/modules.conf.sample (added),
+ configs/cel_tds.conf.sample (removed),
+ configs/res_curl.conf.sample (removed),
+ configs/samples/skinny.conf.sample (added),
+ configs/samples/cdr_pgsql.conf.sample (added),
+ configs/samples/sip_notify.conf.sample (added),
+ configs/samples/test_sorcery.conf.sample (added),
+ configs/samples/dsp.conf.sample (added),
+ configs/ss7.timers.sample (removed),
+ configs/samples/udptl.conf.sample (added),
+ configs/cdr_odbc.conf.sample (removed),
+ configs/samples/sip.conf.sample (added),
+ configs/minivm.conf.sample (removed),
+ configs/res_config_sqlite.conf.sample (removed),
+ configs/codecs.conf.sample (removed), configs/osp.conf.sample
+ (removed), configs/samples/cel_custom.conf.sample (added),
+ configs/samples/dbsep.conf.sample (added),
+ configs/samples/app_skel.conf.sample (added),
+ configs/console.conf.sample (removed),
+ configs/cdr_manager.conf.sample (removed),
+ configs/cdr_custom.conf.sample (removed),
+ configs/chan_dahdi.conf.sample (removed),
+ configs/res_config_mysql.conf.sample (removed),
+ configs/samples/statsd.conf.sample (added),
+ configs/cli.conf.sample (removed), configs/queues.conf.sample
+ (removed), configs/cdr_syslog.conf.sample (removed), UPGRADE.txt,
+ configs/manager.conf.sample (removed),
+ configs/samples/res_corosync.conf.sample (added),
+ configs/features.conf.sample (removed), configs/sla.conf.sample
+ (removed), configs/logger.conf.sample (removed),
+ configs/res_odbc.conf.sample (removed),
+ configs/agents.conf.sample (removed),
+ configs/samples/ooh323.conf.sample (added), Makefile,
+ configs/xmpp.conf.sample (removed),
+ configs/samples/phoneprov.conf.sample (added),
+ configs/samples/alarmreceiver.conf.sample (added),
+ configs/samples/cdr_tds.conf.sample (added),
+ configs/extconfig.conf.sample (removed),
+ configs/samples/func_odbc.conf.sample (added),
+ configs/samples/res_fax.conf.sample (added),
+ configs/samples/iaxprov.conf.sample (added),
+ configs/samples/res_ldap.conf.sample (added),
+ configs/samples/dnsmgr.conf.sample (added),
+ configs/res_pktccops.conf.sample (removed),
+ configs/cel.conf.sample (removed),
+ configs/samples/res_pgsql.conf.sample (added),
+ configs/samples/chan_mobile.conf.sample (added),
+ configs/samples/asterisk.adsi (added),
+ configs/samples/users.conf.sample (added),
+ configs/samples/rtp.conf.sample (added),
+ configs/phone.conf.sample (removed), configs/skinny.conf.sample
+ (removed), configs/muted.conf.sample (removed),
+ configs/samples/hep.conf.sample (added), configs/iax.conf.sample
+ (removed), configs/samples/cel_tds.conf.sample (added),
+ configs/sip_notify.conf.sample (removed),
+ configs/samples/telcordia-1.adsi (added),
+ configs/samples/alsa.conf.sample (added),
+ configs/samples/adsi.conf.sample (added),
+ configs/test_sorcery.conf.sample (removed),
+ configs/samples/followme.conf.sample (added),
+ configs/samples/asterisk.conf.sample (added),
+ configs/extensions.lua.sample (removed), configs/say.conf.sample
+ (removed), configs/cel_custom.conf.sample (removed),
+ configs/samples/ss7.timers.sample (added),
+ configs/samples/cel_odbc.conf.sample (added),
+ configs/app_skel.conf.sample (removed),
+ configs/samples/ccss.conf.sample (added),
+ configs/cli_permissions.conf.sample (removed),
+ configs/statsd.conf.sample (removed),
+ configs/samples/res_config_sqlite.conf.sample (added),
+ configs/config_test.conf.sample (removed),
+ configs/indications.conf.sample (removed),
+ configs/samples/osp.conf.sample (added),
+ configs/samples/cdr_manager.conf.sample (added),
+ configs/samples/console.conf.sample (added),
+ configs/voicemail.conf.sample (removed),
+ configs/res_corosync.conf.sample (removed),
+ configs/misdn.conf.sample (removed),
+ configs/samples/cli.conf.sample (added), configs/ari.conf.sample
+ (removed), configs/ooh323.conf.sample (removed),
+ configs/samples/calendar.conf.sample (added),
+ configs/samples/res_stun_monitor.conf.sample (added),
+ configs/samples/manager.conf.sample (added),
+ configs/samples/pjsip_notify.conf.sample (added),
+ configs/samples/sla.conf.sample (added),
+ configs/musiconhold.conf.sample (removed),
+ configs/pjsip.conf.sample (removed), configs/sorcery.conf.sample
+ (removed), configs/vpb.conf.sample (removed),
+ configs/unistim.conf.sample (removed),
+ configs/res_ldap.conf.sample (removed),
+ configs/dnsmgr.conf.sample (removed),
+ configs/samples/extconfig.conf.sample (added),
+ configs/samples/res_snmp.conf.sample (added),
+ configs/acl.conf.sample (removed),
+ configs/samples/smdi.conf.sample (added),
+ configs/samples/cel.conf.sample (added),
+ configs/cli_aliases.conf.sample (removed),
+ configs/samples/cdr_sqlite3_custom.conf.sample (added),
+ configs/extensions.ael.sample (removed),
+ configs/cdr_adaptive_odbc.conf.sample (removed),
+ configs/samples/phone.conf.sample (added),
+ configs/extensions_minivm.conf.sample (removed),
+ configs/motif.conf.sample (removed), configs/telcordia-1.adsi
+ (removed), configs/samples/meetme.conf.sample (added),
+ configs/adsi.conf.sample (removed), configs/alsa.conf.sample
+ (removed), configs/samples/muted.conf.sample (added),
+ configs/followme.conf.sample (removed),
+ configs/asterisk.conf.sample (removed),
+ configs/samples/iax.conf.sample (added),
+ configs/samples/res_config_sqlite3.conf.sample (added),
+ configs/samples/mgcp.conf.sample (added),
+ configs/cel_odbc.conf.sample (removed), configs/ccss.conf.sample
+ (removed), configs/cdr_mysql.conf.sample (removed),
+ configs/samples/extensions.lua.sample (added),
+ configs/samples/say.conf.sample (added),
+ configs/dundi.conf.sample (removed),
+ configs/samples/queuerules.conf.sample (added),
+ configs/oss.conf.sample (removed), configs/app_mysql.conf.sample
+ (removed), configs/samples/confbridge.conf.sample (added),
+ configs/samples/cli_permissions.conf.sample (added),
+ configs/samples/enum.conf.sample (added),
+ configs/samples/config_test.conf.sample (added),
+ configs/cdr.conf.sample (removed),
+ configs/samples/indications.conf.sample (added),
+ configs/cel_pgsql.conf.sample (removed),
+ configs/res_stun_monitor.conf.sample (removed),
+ configs/calendar.conf.sample (removed),
+ configs/samples/voicemail.conf.sample (added),
+ configs/pjsip_notify.conf.sample (removed),
+ configs/samples/misdn.conf.sample (added),
+ configs/samples/ari.conf.sample (added),
+ configs/samples/festival.conf.sample (added),
+ configs/samples/http.conf.sample (added),
+ configs/res_snmp.conf.sample (removed),
+ configs/samples/musiconhold.conf.sample (added),
+ configs/samples/pjsip.conf.sample (added),
+ configs/samples/sorcery.conf.sample (added),
+ configs/samples/vpb.conf.sample (added), configs/smdi.conf.sample
+ (removed), configs/samples/unistim.conf.sample (added),
+ configs/samples (added), configs/amd.conf.sample (removed):
+ configs: Move sample config files into a subdirectory of configs
+ This moves all samples configs from configs/ to configs/samples.
+ This allows for additional sets of sample configuration files to
+ be added in the future. Review:
+ https://reviewboard.asterisk.org/r/3804/
+
+ * channels/chan_sip.c, UPGRADE.txt: chan_sip: Make
+ progressinband=never really mean 'never' progressinband=never in
+ sip.conf is easily defeated if an onward trunk sends a progress
+ indication of its own. This is almost certain to happen if the
+ onward trunk is ISDN or IAX as these technologies send a progress
+ indication even if early media is not required. This progress
+ message is passed to the caller, and causes the "never" option to
+ be rather badly named. This patch changes the behaviour of this
+ setting in the following ways: 1) In sip_write(), do not pass the
+ media unless we have either progressed beyond INV_EARLY_MEDIA, or
+ we are in INV_EARLY_MEDIA state, and early media is both set-up
+ and wanted. This helps resolve double-ringing on some buggy
+ handsets. 2) In sip_indicate(), if we see AST_CONTROL_PROGRESS,
+ but SIP_PROG_INBAND_NEVER is set, send a 180 Ringing instead to
+ avoid implicitly enabling early media. Avoid sending double ring
+ indications. NOTE: the meaning of the SIP_PROGRESS_SENT flag
+ changes slightly in this patch to also encapsulate the fact that
+ a channel has *sent or received* a 183 Progress indication. This
+ makes the updated code in sip_write() much more simple. Review:
+ https://reviewboard.asterisk.org/r/3700 ASTERISK-23972 #close
+ Reported by: Steve Davies patches:
+ inband_never_present_early_media2 uploaded by Steve Davies
+ (License 5012)
+
+ * menuselect: Add svn:ignore property
+
+ * UPGRADE.txt, menuselect/configure, menuselect/configure.ac,
+ configure, configure.ac: configure: Fix libxml2 development
+ library dependency checking The commit that added libxml2 support
+ didn't fully check for the libxml2 development script in the
+ Asterisk configure file. As a result, Asterisk could be
+ configured, then fail on menuselect. This patch fixes it so that
+ Asterisk should detect the libxml2 dependency failure first.
+
+ * menuselect/makeopts.in, menuselect/autoconfig.h.in,
+ menuselect/menuselect.h, menuselect/example_menuselect-tree,
+ configure, include/asterisk/autoconfig.h.in, menuselect/Makefile,
+ menuselect/README, menuselect/aclocal.m4, configure.ac,
+ UPGRADE.txt, menuselect/configure, menuselect/configure.ac,
+ menuselect/menuselect.c, menuselect/acinclude.m4: menuselect: Add
+ libxml2 support (Patch 3) This is the final patch in adding
+ menuselect to Asterisk. - The first patch (r418832) added
+ menuselect along with mxml - The second patch (r418833) removed
+ mxml from menuselect This patch adds support for libxml2 to
+ menuselect, and makes libxml2 a required library for Asterisk.
+ Note that the libxml2 portion of this patch was written by Sean
+ Bright, and was made available on a team branch:
+ http://svn.digium.com/svn/menuselect/team/seanbright/libxml2/
+ Review: https://reviewboard.asterisk.org/r/3773/ ASTERISK-20703
+ #close patches: some_mysterious_team_branch uploaded by
+ seanbright (License 5060)
+
+ * menuselect/mxml (removed): menuselect: Remove mxml from
+ menuselect (Patch 2) This is the second patch that adds
+ menuselect to Asterisk trunk. The previous commit (r418832) added
+ menuselect along with mxml; this patch removes mxml completely
+ from Menuselect. A subsequent patch will switch menuselect over
+ to using libxml2, and make libxml2 a required dependency for
+ Asterisk. ASTERISK-20703
+
+ * menuselect/mxml/configure.in (added), menuselect/acinclude.m4
+ (added), menuselect/mxml/mxml.list.in (added),
+ menuselect/mxml/README (added), menuselect/linkedlists.h (added),
+ menuselect/mxml (added), menuselect/mxml/config.h.in (added),
+ menuselect/aclocal.m4 (added), menuselect/install-sh (added),
+ menuselect/mxml/mxml-string.c (added),
+ menuselect/menuselect_stub.c (added), menuselect/make_version
+ (added), menuselect/mxml/mxml-entity.c (added),
+ menuselect/bootstrap.sh (added), menuselect/makeopts.in (added),
+ menuselect/autoconfig.h.in (added), menuselect/config.guess
+ (added), menuselect/mxml/install-sh (added),
+ menuselect/test/build_tools/menuselect-deps (added), /,
+ menuselect/contrib/menuselect-dummy (added),
+ menuselect/config.sub (added), menuselect/mxml/configure (added),
+ menuselect/mxml/Makefile.in (added), menuselect (added),
+ menuselect/contrib (added), menuselect/mxml/mxml.pc.in (added),
+ menuselect/configure.ac (added), menuselect/mxml/mxml-set.c
+ (added), menuselect/contrib/Makefile-dummy (added),
+ menuselect/mxml/ANNOUNCEMENT (added), menuselect/missing (added),
+ menuselect/menuselect_curses.c (added),
+ menuselect/example_menuselect-tree (added), menuselect/Makefile
+ (added), menuselect/mxml/mxml-search.c (added), menuselect/test
+ (added), menuselect/test/menuselect-tree (added),
+ menuselect/mxml/mxml.h (added), menuselect/mxml/mxml-index.c
+ (added), menuselect/configure (added),
+ menuselect/menuselect_newt.c (added), menuselect/mxml/mxml-attr.c
+ (added), menuselect/mxml/mxml-private.c (added),
+ menuselect/menuselect.c (added), menuselect/mxml/CHANGES (added),
+ menuselect/mxml/COPYING (added), menuselect/mxml/mxml-file.c
+ (added), menuselect/menuselect.h (added),
+ menuselect/menuselect_gtk.c (added), menuselect/README (added),
+ menuselect/strcompat.c (added), menuselect/mxml/mxml-node.c
+ (added), menuselect/test/build_tools (added): menuselect: Add
+ menuselect to Asterisk trunk (Patch 1) This is the first patch
+ that adds menuselect to Asterisk trunk, and removes the
+ svn:externals property. This is being done for two reasons: (1)
+ The removal of external repositories eases a future migration to
+ git (2) Asterisk is now the only thing that uses menuselect; as a
+ result, there's little need to keep it in an external repository
+ Subsequent patches will remove the mxml dependency from
+ menuselect and tidy up the build system. ASTERISK-20703
+
+2014-07-17 14:28 +0000 [r418811] Kinsey Moore <kmoore@digium.com>
+
+ * /, main/bridge_channel.c: TEST_FRAMEWORK: Fix threewaytransfer
+ reporting Ensure that three-way transfers can be reported even if
+ featuremap is non-NULL. ........ Merged revisions 418810 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-07-16 23:08 +0000 [r418788] Corey Farrell <git@cfware.com>
+
+ * /, channels/dahdi/bridge_native_dahdi.c: Remove include of
+ astobj.h from channels/dahdi/bridge_native_dahdi.c. The include
+ was unneeded, this is split off from r3758 as it applies to 12.
+ ........ Merged revisions 418787 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-07-16 14:03 +0000 [r418717-418757] Matthew Jordan <mjordan@digium.com>
+
+ * res/res_pjsip/pjsip_configuration.c, CHANGES, res/res_pjsip.c,
+ channels/chan_pjsip.c, include/asterisk/res_pjsip.h,
+ contrib/ast-db-manage/config/versions/1d50859ed02e_create_accountcode.py
+ (added), /, configs/pjsip.conf.sample: res_pjsip: Support setting
+ a default accountcode on endpoints Most channel drivers let you
+ specify a default accountcode to be set on channels associated
+ with a particular peer/endpoint/object. Prior to this patch,
+ chan_pjsip/res_pjsip did not support such a setting. This patch
+ adds a new setting to the res_pjsip endpoint object,
+ 'accountcode'. When a channel is created that is associated with
+ an endpoint with this value set, the channel will automatically
+ have its accountcode property set to the value configured for the
+ endpoint. Review: https://reviewboard.asterisk.org/r/3724/
+ ASTERISK-24000 #close Reported by: Matt Jordan ........ Merged
+ revisions 418756 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+ * cdr/cdr_pgsql.c, CHANGES, configs/cdr_pgsql.conf.sample,
+ configs/res_pgsql.conf.sample, cel/cel_pgsql.c,
+ res/res_config_pgsql.c, configs/cel_pgsql.conf.sample: cel_pgsql,
+ cdr_pgsql, res_config_pgsql: Add PostgreSQL application_name
+ support This patch adds support for the PostgreSQL
+ application_name connection setting. When the appropriate
+ PostgreSQL module's configuration is set with an application
+ name, the name will be passed to PostgreSQL on connection and
+ displayed in the database's pg_stat_activity view, as well as in
+ CSV logs. This aids in managing which applications/servers are
+ connected to a PostgreSQL database, as well as tracing the
+ activity of those connections. Review:
+ https://reviewboard.asterisk.org/r/3591 ASTERISK-23737 #close
+ Reported by: Gergely Domodi patches: pgsql_application_name.patch
+ uploaded by Gergely Domodi (License 6610)
+
+ * codecs/codec_adpcm.c, main/format.c: codec_adpcm: Change
+ description of codec "ADPCM" to "Dialogic ADPCM" Technically,
+ ADPCM is a method that can be applied to several codecs.
+ Asterisk's ADPCM codec is the Dialogic ADPCM or VOX codec. See
+ http://en.wikipedia.org/wiki/Dialogic_ADPCM for more information
+ about said codec. Review: https://reviewboard.asterisk.org/r/3744
+ patches: rb3744.patch uploaded by dennis.guse (License 6513)
+
+ * UPGRADE.txt, main/manager.c, /: manager: Return ActionID on
+ nominal responses to PresenceState action When the PresenceState
+ action is executed, the nominal path fails to include the
+ ActionID in the successful response. This patch adds a call to
+ astman_start_ack, which guarantees that an ActionID (if provided)
+ will be sent back to the AMI client. Unlike the Asterisk 11 and
+ 12 patches, this patch also deprecates the duplicate Message key
+ in the response to the action, replacing it with the key
+ 'PresenceMessage'. Review:
+ https://reviewboard.asterisk.org/r/3776/ ASTERISK-23985 #close
+ ........ Merged revisions 418713 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 418714 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-07-15 23:03 +0000 [r418716] Kinsey Moore <kmoore@digium.com>
+
+ * /, main/bridge_channel.c: TEST_FRAMEWORK: Fix ref leak in feature
+ activation This fixes two reference leaks that would occur when
+ TEST_FRAMEWORK was enabled and features were successfully
+ executed. ........ Merged revisions 418715 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-07-15 17:57 +0000 [r418654] Jonathan Rose <jrose@digium.com>
+
+ * funcs/func_uri.c, /: func_uri: URIENCODE/URIDECODE - allow empty
+ strings as argument Previously these two dialplan functions would
+ issue warnings and return failure when an empty string is used as
+ the argument. Now they will not issue a warning and will
+ successfully return an empty string. ASTERISK-23911 #close
+ Reported by: Matt Jordan Review:
+ https://reviewboard.asterisk.org/r/3745/ ........ Merged
+ revisions 418641 from
+ http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
+ revisions 418649 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 418650 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-07-15 12:11 +0000 [r418616] Sean Bright <sean@malleable.com>
+
+ * main/asterisk.c: Update Asterisk copyright year in
+ main/asterisk.c It's been 2014 for like... 6 months.
+
+2014-07-14 14:55 +0000 [r418566-418587] Richard Mudgett <rmudgett@digium.com>
+
+ * include/asterisk/logger.h, /: logger.h: Extract DEBUG_ATLEAST()
+ to complement VERBOSITY_ATLEAST(). ........ Merged revisions
+ 418586 from http://svn.asterisk.org/svn/asterisk/branches/12
+
+ * include/asterisk/jabber.h (removed), include/asterisk/jingle.h
+ (removed), include/asterisk/frame_defs.h (removed),
+ configs/h323.conf.sample (removed): Actually delete the removed
+ files.
+
+2014-07-13 21:57 +0000 [r418507] Corey Farrell <git@cfware.com>
+
+ * /, main/astobj2.c, contrib/scripts/refcounter.py: astobj2: work
+ around REF_DEBUG race which causes out of order log entries *
+ Update refcounter.py to use delta's to track the current
+ reference count. * Use result from internal_ao2_ref to write
+ old_refcount to refs_log. Review:
+ https://reviewboard.asterisk.org/r/3756/ ........ Merged
+ revisions 418504 from
+ http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
+ revisions 418505 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 418506 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-07-13 20:08 +0000 [r418488] Scott Griepentrog <sgriepentrog@digium.com>
+
+ * include/asterisk/astobj2.h: astobj2: correct define for
+ ao2_t_cleanup This change maps the ao2_t_cleanup() function to
+ the correct debug function so that it can be used. Review:
+ https://reviewboard.asterisk.org/r/3764/
+
+2014-07-13 16:48 +0000 [r418448-418467] Corey Farrell <git@cfware.com>
+
+ * main/manager.c, /, apps/app_skel.c: Fix minor reference leaks in
+ app_skel and TEST_FRAMEWORK * Cleanup games object in app_skel. *
+ Cleanup stasis subscription to TEST_FRAMEWORK in manager.c (12+).
+ Review: https://reviewboard.asterisk.org/r/3757/ ........ Merged
+ revisions 418465 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 418466 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+ * include/asterisk/jabber.h, include/asterisk/jingle.h,
+ configs/h323.conf.sample: Remove files left behind on removal of
+ h323, jingle and jabber. This change removes h323.conf.sample,
+ jingle.h, jabber.h left behind by r3698. Review:
+ https://reviewboard.asterisk.org/r/3755/
+
+2014-07-11 23:00 +0000 [r418419] Matthew Jordan <mjordan@digium.com>
+
+ * main/astobj2.c, include/asterisk/astobj2.h: astobj2: Add tag
+ variants for ao2_bump, ao2_cleanup, and ao2_replace Tags are
+ useful in hunting down ref imbalances; this patch adds tag
+ variants for these commonly used macros/functions. Review:
+ https://reviewboard.asterisk.org/r/3750/
+
+2014-07-11 21:10 +0000 [r418397] Corey Farrell <git@cfware.com>
+
+ * /, include/asterisk/astobj2.h: astobj2: tweak ao2_replace to do
+ nothing when it would be a NoOp This change causes ao2_replace to
+ do nothing when src == dst. This avoids REF_DEBUG logging when
+ we're not actually doing anything. Review:
+ https://reviewboard.asterisk.org/r/3743/ ........ Merged
+ revisions 418396 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-07-11 16:42 +0000 [r418370] Scott Griepentrog <sgriepentrog@digium.com>
+
+ * /, main/config.c: config: inform config hook of change when
+ writing file When updated configuration is written back to the
+ conf file - for example when a user changes their voicemail pin,
+ make sure that any config hook that wants to know of changes is
+ informed. Review: https://reviewboard.asterisk.org/r/3708/
+ ........ Merged revisions 418366 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 418369 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-07-10 15:36 +0000 [r418325] Matthew Jordan <mjordan@digium.com>
+
+ * /, include/asterisk/xmpp.h: include/asterisk/xmpp.h: Convert
+ indentation to tabs This is a whitespace only change. ........
+ Merged revisions 418323 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 418324 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-07-10 01:59 +0000 [r418226-418264] Richard Mudgett <rmudgett@digium.com>
+
+ * channels/sig_pri.c, /: chan_dahdi/sig_pri: Fix type mismatch in
+ the idledial feature's channel creation. Square pegs in round
+ holes don't work very well. ........ Merged revisions 418261 from
+ http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
+ revisions 418262 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 418263 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+ * res/stasis/stasis_bridge.h (added), main/bridge_channel.c,
+ res/res_stasis.c, /, res/stasis/stasis_bridge.c (added),
+ include/asterisk/bridge_channel.h, main/bridge_basic.c: ARI: Make
+ mixing bridges propagate linkedids and accountcodes. * Create a
+ Stasis bridge sub-class to propagate linkedids and accountcodes.
+ * Fixed the basic bridge sub-class to update peeraccount codes
+ when the number of channels in the bridge drops back down to two
+ parties. * Refactored ast_bridge_channel_update_accountcodes() to
+ handle channels joining/leaving the bridge. * Fixed the basic
+ bridge sub-class to not call the base bridge class pull method
+ twice. AFS-105 #close ASTERISK-23852 #close Reported by: Richard
+ Mudgett Review: https://reviewboard.asterisk.org/r/3720/ ........
+ Merged revisions 418225 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-07-08 14:48 +0000 [r418174-418183] Matthew Jordan <mjordan@digium.com>
+
+ * rest-api/api-docs/deviceStates.json,
+ rest-api/api-docs/endpoints.json,
+ rest-api/api-docs/mailboxes.json, rest-api/api-docs/events.json,
+ /, rest-api/api-docs/asterisk.json,
+ rest-api/api-docs/applications.json,
+ rest-api/api-docs/playbacks.json,
+ rest-api/api-docs/channels.json, rest-api/api-docs/sounds.json,
+ rest-api/resources.json, include/asterisk/manager.h,
+ rest-api/api-docs/bridges.json,
+ rest-api/api-docs/recordings.json: manager/ARI: Update version to
+ 2.4.0/1.4.0; Update UPGRADE.txt ........ Merged revisions 418182
+ from http://svn.asterisk.org/svn/asterisk/branches/12
+
+ * res/res_rtp_asterisk.c, /: res_rtp_asterisk: Fix undefined
+ function when PJPROJECT is not installed The
+ dtls_perform_handshake function was mistakenly placed under the
+ guards for USE_PJPROJECT. If PJPROJECT was not installed, the
+ function would not be defined, while other functions would
+ attempt to still use it. This prevented res_rtp_asterisk from
+ being loaded. ASTERISK-24001 #close Reported by: Don Fanning
+ ........ Merged revisions 418172 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-07-07 16:08 +0000 [r418117] Joshua Colp <jcolp@digium.com>
+
+ * include/asterisk/res_pjsip_body_generator_types.h,
+ res/res_pjsip_dialog_info_body_generator.c (added),
+ res/res_pjsip_exten_state.c, res/res_pjsip/presence_xml.c, /,
+ include/asterisk/res_pjsip_presence_xml.h:
+ res_pjsip_dialog_info_body_generator: Add dialog-info+xml support
+ for presence. This module implements dialog-info+xml for the
+ purposes of presence. This means that phones such as Grandstreams
+ can now subscribe to receive presence information for an
+ extension. ASTERISK-21443 #close Reported by: Matt Jordan Review:
+ https://reviewboard.asterisk.org/r/3705/ ........ Merged
+ revisions 418116 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-07-07 02:15 +0000 [r418090] Matthew Jordan <mjordan@digium.com>
+
+ * include/asterisk/stasis_app.h, res/ari/resource_channels.c,
+ res/res_stasis.c, /, res/stasis/app.c: ARI/res_stasis: Subscribe
+ to both Local channel halves when originating to app This patch
+ fixes two bugs: 1. When originating a channel into a Stasis
+ application, we already create a subscription for the channel
+ that is going into our Stasis app. Unfortunately, when you create
+ a Local channel and pass it off to a Stasis app, you really
+ aren't creating just one channel: you're creating two. This patch
+ snags the second half of the Local channel pair (assuming it is a
+ Local channel pair, but luckily core_local is kind about such
+ assumptions) and subscribes to it as well. 2. Subscriptions are a
+ bit sticky right now. If a subscription is made, the 'interest'
+ count gets bumped on the Stasis subscription - but unless
+ something explicitly unsubscribes the channel, said subscription
+ sticks around. This is not much of a problem is a user is
+ creating the subscription - if they made it, they must want it.
+ However, when we are creating implicit subscriptions, we need to
+ make sure something clears them out. This patch takes a
+ pessimistic approach: it watches the cache updates coming from
+ Stasis and, if we notice that the cache just cleared out an
+ object, we delete our subscription object. This keeps our ao2
+ container of Stasis forwards in an application from growing out
+ of hand; it also is a bit more forgiving for end users who may
+ not realize they were supposed to unsubscribe from that channel
+ that just hung up. Review:
+ https://reviewboard.asterisk.org/r/3710/ #ASTERISK-23939 #close
+ ........ Merged revisions 418089 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-07-07 01:22 +0000 [r418067-418084] Kinsey Moore <kmoore@digium.com>
+
+ * tests/test_cel.c, main/cel.c, channels/chan_pjsip.c,
+ res/res_pjsip_session.c, /: CEL: Fix incorrect/missing extra
+ field information This corrects two issues with the extra field
+ information in Asterisk 12+ in channel event logs. It is possible
+ to inject custom values into the dialstatus provided by
+ ast_channel_dial_type() Stasis messages that fall outside the
+ enumeration allowed for the DIALSTATUS channel variable. CEL now
+ filters for the allowed values and ignores other values. The
+ "hangupsource" extra field key is always blank if the far end
+ channel is a chan_pjsip channel. This is because the hangupsource
+ is never set for the pjsip channel driver. This change sets the
+ hangupsource whenever a hangup is queued for chan_pjsip channels.
+ This corrects an issue with the pjsip channel driver where the
+ hangupcause information was not being set properly. Review:
+ https://reviewboard.asterisk.org/r/3690/ ........ Merged
+ revisions 418071 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+ * /, main/http.c: HTTP: Fix build for gcc 4.10 ........ Merged
+ revisions 418066 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-07-04 15:26 +0000 [r418019-418050] Matthew Jordan <mjordan@digium.com>
+
+ * main/Makefile: main/Makefile: fix compilation error of buildinfo
+ occurring on 'make install' Egads. Another bad deletion of too
+ much when attempting to remove h323 stuff.
+
+ * configure.ac, build_tools/menuselect-deps.in, configure,
+ main/Makefile: configure: Remove last vestiges of h323; DO create
+ menuselect-deps The previous patch (r418034) fixed the 'glitch'
+ that the channels/h323 Makefile no longer existed. Unfortunately,
+ removing the entire line was a bit of a blunder, as it meant that
+ build_tools/menuselect-deps was never generated. Hilarity ensued
+ when actually trying to compile. But hey! At least configure
+ worked. This patch fixes *that* glitch, and removes some more of
+ the vestiges of h323. (It had tendrils in the main Makefile?
+ Crazy.)
+
+ * configure.ac, configure: configure: Update script to pass if
+ channels/h323/Makefile.in does not exist This simply removes that
+ check from the configure script, as r418019 removed chan_h323.
+
+ * apps/app_dahdibarge.c (removed), configs/gtalk.conf.sample
+ (removed), main/pbx.c, apps/app_readfile.c (removed),
+ channels/chan_sip.c, configs/jingle.conf.sample (removed),
+ UPGRADE.txt, res/res_musiconhold.c, channels/chan_gtalk.c
+ (removed), channels/Makefile, CHANGES, res/res_jabber.c
+ (removed), channels/h323 (removed), utils/conf2ael.c,
+ channels/chan_jingle.c (removed), res/ael/pval.c,
+ configs/jabber.conf.sample (removed),
+ configs/asterisk.conf.sample, res/res_agi.c, channels/chan_h323.c
+ (removed), addons/Makefile, pbx/pbx_realtime.c, utils/ael_main.c,
+ include/asterisk/options.h, main/asterisk.c,
+ addons/app_saycountpl.c (removed): Remove many deprecated modules
+ Billing records are fair, To get paid is quite bright, You should
+ really use ODBC; Good-bye cdr_sqlite. Microsoft did once push
+ H.323, Hell, we all remember NetMeeting. But try to compile
+ chan_h323 now And you will take quite a beating. The XMPP and SIP
+ war was fierce, And in the distant fray Was birthed
+ res_jabber/chan_jingle; But neither to stay. For everyone did
+ care and chase what Google professed. "Free Internet Calling" was
+ what devotees cried, But Google did change the specs so often
+ That the developers were happy the day chan_gtalk died. And then
+ there was that odd application Dedicated to the Polish tongue.
+ app_saycountpl was subsumed by Say; One could say its bell was
+ rung. To read and parse a file from the dialplan You could (I
+ guess) use an application. app_readfile did fill that purpose,
+ but I think A function is perhaps better in its creation. Barging
+ is rude, I'm not sure why we do it. Inwardly, the caller will
+ probably sigh. But if you really must do it, Don't use
+ app_dahdibarge, use ChanSpy. We all despise the sound of tinny
+ robots It makes our queues so cold. To control such an
+ abomination It's better to not use Wait/SetMusicOnHold. It's
+ often nice to know properties of a channel It makes our calls
+ right We have a nice function called CHANNEL And so SIPCHANINFO
+ is sent off into the night. And now things get odd; Apparently
+ one could delimit with a colon Properties from the SIPPEER
+ function! Commas are in; all others are done. Finally, a word on
+ pipes and commas. We're sorry. We can't say it enough. But those
+ compatibility options in asterisk.conf; To maintain them forever
+ was just too tough. This patch removes: * cdr_sqlite * chan_gtalk
+ * chan_jingle * chan_h323 * res_jabber * app_saycountpl *
+ app_readfile * app_dahdibarge It removes the following
+ applications/functions: * WaitMusicOnHold * SetMusicOnHold *
+ SIPCHANINFO It removes the colon delimiter from the SIPPEER
+ function. Finally, it also removes all compatibility options that
+ were configurable from asterisk.conf, as these all applied to
+ compatibility with Asterisk 1.4 systems. Review:
+ https://reviewboard.asterisk.org/r/3698/
+
+2014-07-03 22:22 +0000 [r417933-417976] Richard Mudgett <rmudgett@digium.com>
+
+ * channels/sig_pri.h, channels/chan_dahdi.c,
+ configs/chan_dahdi.conf.sample, /, UPGRADE.txt,
+ channels/sig_pri.c: chan_dahdi: Add inband_on_setup_ack
+ compatibility option. The new inband_on_setup_ack option causes
+ Asterisk to assume inband audio may be present when a
+ SETUP_ACKNOWLEDGE message is received. Q.931 Section 5.1.3 says
+ that in scenarios with overlap dialing, when a dialtone is sent
+ from the network side, progress indicator 8 "Inband info now
+ available" MAY be sent to the CPE if no digits were received with
+ the SETUP. It is thus implied that the ie is mandatory if digits
+ came with the SETUP and dialtone is needed. This option should be
+ enabled, when the network sends dialtone and you want to hear it,
+ but the network doesn't send the progress indicator when needed.
+ NOTE: For Q.SIG setups this option should be enabled when
+ outgoing overlap dialing is also enabled because Q.SIG does not
+ send the progress indicator with the SETUP ACK. The commit
+ -r413714 (AST-1338) which causes this issue was dealing with a
+ SIP-to-ISDN interoperability issue. This commit is a merge of the
+ two patches indicated below. ASTERISK-23897 #close Reported by:
+ Pavel Troller Patches: pri-4.diff (license #6302) patch uploaded
+ by Pavel Troller jira_asterisk_23897_v11.patch (license #5621)
+ patch uploaded by rmudgett Review:
+ https://reviewboard.asterisk.org/r/3633/ ........ Merged
+ revisions 417956 from
+ http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
+ revisions 417957 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 417958 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+ * res/ari/resource_channels.c, res/res_ari.c, main/manager.c, /:
+ res_ari: Fix some off-nominal paths just dropping the HTTP
+ connection. * Removed some incorrect newlines on ast_http_error()
+ messages in manager.c. * Removed an incorrect newline in
+ res_ari_channels.c. Addendum to ASTERISK-23552 ........ Merged
+ revisions 417932 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-07-03 17:34 +0000 [r417910-417916] Jonathan Rose <jrose@digium.com>
+
+ * CHANGES, channels/chan_dahdi.c: chan_dahdi: Add AMI commands for
+ controlling PRI debugging output Adds the following AMI commands:
+ PRIDebugSet - Set PRI debug levels for a specific span
+ PRIDebugFileSet - Set the file used for PRI debug message output
+ PRIDebugFileUnset - Disables file output for PRI debug messages
+ Review: https://reviewboard.asterisk.org/r/3681/
+
+ * CHANGES, pbx/pbx_config.c, main/pbx.c: pbx_config: Add manager
+ actions to add/remove extensions Adds two new manager commands to
+ pbx_config - DialplanExtensionAdd and DialplanExtensionRemove
+ which allow manager users to create and delete extensions
+ respectively. Review: https://reviewboard.asterisk.org/r/3650/
+
+2014-07-03 17:16 +0000 [r417901] Richard Mudgett <rmudgett@digium.com>
+
+ * res/res_phoneprov.c, main/http.c, UPGRADE.txt,
+ include/asterisk/tcptls.h, res/res_http_post.c,
+ res/res_http_websocket.c, configs/http.conf.sample,
+ include/asterisk/http.h, main/tcptls.c, res/res_ari.c,
+ main/manager.c, /: HTTP: Add persistent connection support.
+ Persistent HTTP connection support is needed due to the increased
+ usage of the Asterisk core HTTP transport and the frequency at
+ which REST API calls are going to be issued. * Add http.conf
+ session_keep_alive option to enable persistent connections. *
+ Parse and discard optional chunked body extension information and
+ trailing request headers. * Increased the maximum
+ application/json and application/x-www-form-urlencoded body size
+ allowed to 4k. The previous 1k was kind of small. * Removed a
+ couple inlined versions of ast_http_manid_from_vars() by calling
+ the function. manager.c:generic_http_callback() and
+ res_http_post.c:http_post_callback() * Add missing va_end() in
+ ast_ari_response_error(). * Eliminated unnecessary RAII_VAR() use
+ in http.c:auth_create(). ASTERISK-23552 #close Reported by: Scott
+ Griepentrog Review: https://reviewboard.asterisk.org/r/3691/
+ ........ Merged revisions 417880 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-07-03 16:55 +0000 [r417900] Matthew Jordan <mjordan@digium.com>
+
+ * main/tcptls.c, configure, include/asterisk/autoconfig.h.in,
+ configure.ac: main/tcptls: Add checks for OpenSSL Elliptic Curve
+ support The patch for ASTERISK-23905 that added PFS support in
+ Asterisk depends on the elliptic curve library support being
+ present in OpenSSL. As it turns out, some versions of OpenSSL
+ don't have this library - notably the version running on our
+ build agents. This patch fixes the build by providing a configure
+ check for the specific library calls that the PFS patch relies
+ on. Review: https://reviewboard.asterisk.org/r/3709/
+
+2014-07-03 16:14 +0000 [r417877-417879] sgalarneau <sgalarneau@localhost>:
+
+ * res/ari/resource_events.h, rest-api/api-docs/channels.json,
+ res/ari/resource_channels.h, rest-api/api-docs/events.json, /:
+ ARI: Improvements to body parameters documentation The variables
+ body parameter under the originate and originate with id
+ operations of the channel resource showed invalid JSON in its
+ description. The variables body parameter under the userEvent
+ operation of the event resource made no mention that the custom
+ key/value pairs should be wrapped in a variables key in order to
+ be added to the custom user event. ASTERISK-23975 #close Review:
+ https://reviewboard.asterisk.org/r/3692/ ........ Merged
+ revisions 417878 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+ * rest-api-templates/api.wiki.mustache,
+ rest-api-templates/swagger_model.py, /: api.wiki.mustache: Update
+ wiki template to support body parameters This patch updates the
+ api.wiki.mustache template and the swagger_model python script to
+ understand if an operation has a body parameter. If an operation
+ does have a body parameter, it will now be displayed in the
+ corresponding wiki entry. ........ Merged revisions 407389 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-07-03 14:08 +0000 [r417863] Tzafrir Cohen <tzafrir.cohen@xorcom.com>
+
+ * Makefile, contrib/scripts/dahdi_span_config_hook (added):
+ dahdi_span_config_hook: automatically register new dahdi channels
+ Install a hook script for DAHDI to register new spans with
+ Asterisk automatically by running: asterisk -rx 'dahdi create
+ channel FIRST LAST' Review:
+ https://reviewboard.asterisk.org/r/3157/
+
+2014-07-03 12:10 +0000 [r417800-417803] Matthew Jordan <mjordan@digium.com>
+
+ * main/tcptls.c, CHANGES: main/tcptls: Add support for Perfect
+ Forward Secrecy This patch enables Perfect Forward Secrecy (PFS)
+ in Asterisk's core TLS API. Modules that wish to enable PFS
+ should consider the following: - Ephemeral ECDH (ECDHE) is
+ enabled by default. To disable it, do not specify a ECDHE cipher
+ suite in a module's configuration, for example:
+ tlscipher=AES128-SHA:DES-CBC3-SHA - Ephemeral DH (DHE) is
+ disabled by default. To enable it, add DH parameters into the
+ private key file, i.e., tlsprivatekey. For an example, see the
+ default dh2048.pem at
+ http://www.opensource.apple.com/source/OpenSSL098/OpenSSL098-35.1/src/apps/dh2048.pem?txt
+ - Because clients expect the server to prefer PFS, and because
+ OpenSSL sorts its cipher suites by bit strength, (see "openssl
+ ciphers -v DEFAULT") consider re-ordering your cipher suites in
+ the conf file. For example:
+ tlscipher=AES128+kEECDH:AES128+kEDH:3DES+kEDH:AES128-SHA:DES-CBC3-SHA:-ADH:-AECDH
+ will use PFS when offered by the client. Clients which do not
+ offer PFS fall-back to AES-128 (or even 3DES as recommend by RFC
+ 3261). Review: https://reviewboard.asterisk.org/r/3647/
+ ASTERISK-23905 #close Reported by: Alexander Traud patches:
+ tlsPFS_for_HEAD.patch uploaded by Alexander Traud (License 6520)
+ tlsPFS.patch uploaded by Alexander Traud (License 6520)
+
+ * /, main/utils.c: main/untils: Prevent potential infinite loop in
+ ast_careful_fwrite A loop in ast_careful_fwrite exists that will
+ continually attempt to write to a file stream, even in the
+ presence of EAGAIN/EINTR errors. However, if a connection that
+ uses ast_careful_fwrite closes suddenly, ast_careful_fwrite's
+ call to fflush may return EAGAIN/EINTER along with EOF. A
+ subsequent call to fflush will return EOF but not clear errno,
+ resulting in an infinite loop. This patch clears errno after it
+ is detected and handled the loop, such that any subsequent call
+ to fflush will not get erroneously stuck. Review:
+ https://reviewboard.asterisk.org/r/3704 #ASTERISK-23984 #close
+ Reported by: Steve Davies patches: fflush_loop_fix uploaded by
+ one47 (License 5012) ........ Merged revisions 417797 from
+ http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
+ revisions 417798 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 417799 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-07-02 21:13 +0000 [r417770] Jonathan Rose <jrose@digium.com>
+
+ * res/ari/resource_events.h, res/ari/resource_asterisk.h,
+ res/ari/resource_applications.h, res/ari/resource_playbacks.h,
+ res/ari/resource_channels.h, res/ari/resource_sounds.h, /,
+ res/ari/resource_bridges.h, res/ari/resource_recordings.h,
+ rest-api-templates/ari_resource.h.mustache,
+ res/ari/resource_device_states.h, res/ari/resource_endpoints.h,
+ res/ari/resource_mailboxes.h: ARI: Remove unnecessary \briefs
+ from automatically generated documentation Review:
+ https://reviewboard.asterisk.org/r/3440/ ........ Merged
+ revisions 412653 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-07-01 14:42 +0000 [r417679-417706] Joshua Colp <jcolp@digium.com>
+
+ * /, res/res_rtp_asterisk.c: res_rtp_asterisk: Don't leak memory or
+ reset state if DTLS configuration is set multiple times. ........
+ Merged revisions 417705 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+ * res/res_rtp_asterisk.c,
+ contrib/ast-db-manage/config/versions/51f8cb66540e_add_further_dtls_options.py
+ (added), include/asterisk/res_pjsip_session.h, main/rtp_engine.c,
+ /, channels/chan_sip.c, main/sdp_srtp.c, res/res_pjsip_sdp_rtp.c,
+ res/res_pjsip/pjsip_configuration.c, configs/sip.conf.sample,
+ include/asterisk/rtp_engine.h, res/res_pjsip.c,
+ channels/sip/include/sip.h, include/asterisk/res_pjsip.h,
+ include/asterisk/sdp_srtp.h: Recorded merge of revisions 417677
+ from http://svn.asterisk.org/svn/asterisk/branches/11 ........
+ res_rtp_asterisk: Add SHA-256 support for DTLS and perform DTLS
+ negotiation on RTCP. This change fixes up DTLS support in
+ res_rtp_asterisk so it can accept and provide a SHA-256
+ fingerprint, so it occurs on RTCP, and so it occurs after ICE
+ negotiation completes. Configuration options to chan_sip and
+ chan_pjsip have also been added to allow behavior to be tweaked
+ (such as forcing the AVP type media transports in SDP).
+ ASTERISK-22961 #close Reported by: Jay Jideliov Review:
+ https://reviewboard.asterisk.org/r/3679/ Review:
+ https://reviewboard.asterisk.org/r/3686/ ........ Merged
+ revisions 417678 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-06-30 18:39 +0000 [r417663] Mark Michelson <mmichelson@digium.com>
+
+ * res/res_pjsip_pubsub.c: Reverse logic during subscription
+ persistence recreation. In the abstraction effort, this bit of
+ logic got messed up. We want to recreate the persistence if
+ things go well, not if things fail.
+
+2014-06-30 13:02 +0000 [r417590-417649] Matthew Jordan <mjordan@digium.com>
+
+ * apps/app_voicemail.c: apps/app_voicemail: Fix compilation error
+ introduced in r417591 Not sure why that change to
+ ast_channel_alloc was made but ... okay.
+
+ * apps/app_voicemail.c, main/say.c, CHANGES: app_voicemail, say:
+ Add support for Japanese Language This patch adds support for the
+ Japanese language to both the say family of applications, as well
+ as for VoiceMail and VoiceMailMain. A new pack of language sounds
+ will be released at the same time as the next major version of
+ Asterisk to support the new language features. The language
+ features can be enabled using a language code of 'ja'. Review:
+ https://reviewboard.asterisk.org/r/3477 ASTERISK-23324 #close
+ Reported by: Kevin McCoy patches:
+ app_voicemail.c.20140226.jb.patch uploaded by Kevin McCoy
+ (License 6586) say.c.20140226.jb.patch uploaded by Kevin McCoy
+ (License 6586)
+
+ * /, channels/chan_sip.c: chan_sip: be more tolerant of whitespace
+ between attributes in SDP fmtp line This patch is essentially a
+ backport of a small portion of r397526 from ASTERISK-21981. In
+ that patch, pass through support and format attribute negotiation
+ was added for Opus. Part of that included being more tolerant to
+ whitespace in the fmtp line of an SDP; that part of the patch is
+ being applied here. As the author of the backport pointed out, in
+ SDP, the fmtp line is allowed to include whitespace between
+ attributes. RFC 3267 chapter 8.3 (from 2001) includes an example
+ for this. This was not removed in the updated RFC 4867 in 2007.
+ Review: https://reviewboard.asterisk.org/r/3658 #ASTERISK-23916
+ #close Reported by: Alexander Traud patches:
+ sdpFMTPspace_Asterisk11.patch uploaded by Alexander Traud
+ (License 6520) ........ Merged revisions 417587 from
+ http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
+ revisions 417588 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 417589 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-06-27 23:21 +0000 [r417571] Richard Mudgett <rmudgett@digium.com>
+
+ * /, main/event.c: event.c: Fix type mismatch errors in ie_maps[].
+ In v12+ the type values from the table are only used by the CEL
+ unit tests. Since the unit tests were only comparing a generated
+ expected event with a real event to see if the ie contents
+ matched and using the same table IE_PLTYPE values to read the
+ event contents, the type mismatches were not detected. ........
+ Merged revisions 417565 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-06-27 19:27 +0000 [r417485-417511] Corey Farrell <git@cfware.com>
+
+ * /, main/astobj2.c: Ensure REF_DEBUG records entrys for attempts
+ to ao2_ref an invalid object This change ensures that
+ __ao2_ref_debug writes to ref_log when given a non-NULL pointer
+ to an invalid ao2 object. This is to ensure that we record any
+ attempt manipulate references of already freed objects.
+ ASTERISK-23948 #close Reported by: Corey Farrell Review:
+ https://reviewboard.asterisk.org/r/3677/ ........ Merged
+ revisions 417500 from
+ http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
+ revisions 417505 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 417509 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+ * /, contrib/scripts/refcounter.py: refcounter.py: prevent use of
+ excessive RAM with large refs logs When processing a 212MB refs
+ file, refcounter.py used over 3GB of RAM. This change greatly
+ reduces memory usage in two ways: * Saving object history in
+ whole lines instead of separated values. * Not saving
+ normal/skewed/leaked object lists unless they are requested.
+ ASTERISK-23921 #close Reported by: Corey Farrell Review:
+ https://reviewboard.asterisk.org/r/3668/ ........ Merged
+ revisions 417480 from
+ http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
+ revisions 417481 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 417483 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-06-27 13:50 +0000 [r417461] Matthew Jordan <mjordan@digium.com>
+
+ * res/res_pjsip/pjsip_configuration.c, res/res_pjsip_pubsub.c,
+ res/res_pjsip_registrar.c, include/asterisk/res_pjsip.h, /,
+ res/res_pjsip_outbound_registration.c: res_pjsip: Add ActionID to
+ events created as a result of PJSIP AMI actions A number of
+ various PJSIP AMI actions were failing to parse out and place the
+ ActionID into their responses. This patch updates the various
+ PJSIP actions such that the passed in ActionID is emitted on any
+ event list complete events, as well as any intermediate events
+ created as a result of the action. #ASTERISK-23947 #close
+ Reported by: Mark Michelson Review:
+ https://reviewboard.asterisk.org/r/3675/ ........ Merged
+ revisions 417460 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-06-27 02:04 +0000 [r417423-417447] Kinsey Moore <kmoore@digium.com>
+
+ * tests/test_cel.c: CEL: Update unit tests for bridge tech field
+ Update the CEL unit tests that handle BRIDGE_ENTER and
+ BRIDGE_EXIT events to expect the "bridge_technology" extra field
+ key.
+
+ * CHANGES: CHANGES: Add missing changes Add missing CHANGES changes
+ from r417361 and r417383.
+
+2014-06-26 18:27 +0000 [r417400-417421] Matthew Jordan <mjordan@digium.com>
+
+ * res/res_http_websocket.exports.in, /: res_http_websocket: Export
+ symbol for ast_websocket_set_timeout Thanks to Sean Bright for
+ pointing out that this was missed in #asterisk-dev. ........
+ Merged revisions 417419 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 417420 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+ * channels/chan_pjsip.c, /: chan_pjsip: Add a test event for fast
+ picture updates This will drive the test on review r3419. Note
+ that the patch for this was done by Ben Ford, although it was
+ slightly modified for this commit. ASTERISK-23562 Reported by:
+ Matt Jordan ........ Merged revisions 417399 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-06-26 14:48 +0000 [r417361-417383] Kinsey Moore <kmoore@digium.com>
+
+ * main/cel.c: CEL: Add bridge tech to relevant CEL records Add the
+ "bridge_technology" extra field key to BRIDGE_ENTER and
+ BRIDGE_EXIT CEL events to convey the bridge technology in use at
+ the time the record was generated.
+
+ * main/bridge.c, include/asterisk/channel.h,
+ include/asterisk/bridge_features.h,
+ tests/test_channel_feature_hooks.c (added),
+ main/bridge_channel.c, main/channel.c: Bridging: Allow channels
+ to define bridging hooks This patch allows the current owner of a
+ channel to define various feature hooks to be made available once
+ the channel has entered a bridge. This includes any hooks that
+ are setup on the ast_bridge_features struct such as DTMF hooks,
+ bridge event hooks (join, leave, etc.), and interval hooks.
+ Review: https://reviewboard.asterisk.org/r/3649/
+
+2014-06-26 12:43 +0000 [r417317-417360] Matthew Jordan <mjordan@digium.com>
+
+ * CHANGES, apps/app_jack.c: app_jack: Support audio with a sampling
+ rate higher than 8kHz This patch enables the jack-audiohook to
+ cope with dynamic sampling rates from and to Asterisk.
+ Information from the channel is taken to derive the channel's
+ sampling rate, suiting SLINxx format and frame->datalen. There
+ are stil a few limitations after this patch: * Required
+ information is taken from the channel during initialization as
+ the audiohook does not provide this information.
+ Audiohook.internal_sampl_rate(...) is set later, but no callback
+ is available to inform app_jack. * Frame.datalen is computed
+ using "rate / 50" assuming a ptime of 20ms. There is no internal
+ API available to determine datalen for a SLINxx. * Ringbuffer
+ size is now dynamic depending on the value of frame.datalen (see
+ above) and the number of frames, which are in
+ RINGBUFFER_FRAME_CAPACITY, that need to fit. Review:
+ https://reviewboard.asterisk.org/r/3618 Note that the patch being
+ committed here is based on the patch posted on ASTERISK-23836.
+ However, Matthis Schmieder also provided a patch to enable this
+ functionality, and that patch is noted below. ASTERISK-20696
+ #close Reported by: Matthis Schmieder patches: app_jack.patch
+ uploaded by Matthis Schmieder (License 6445) ASTERISK-23836
+ #close Reported by: Dennis Guse patches: patch-app_jack.c
+ uploaded by Dennis Guse (License 6513)
+
+ * main/udptl.c, /: udptl: Correct FEC to not consider negative
+ sequence numbers as missing When using FEC, with span=3 and
+ entries=4 Asterisk will attempt to repair the packet with
+ sequence number 5, as it will see that packet -4 is missing. The
+ result is Asterisk sending garbage packets that can kill a fax.
+ This patch adds a check to see if the sequence number is valid
+ before checking if the packet is missing. Review:
+ https://reviewboard.asterisk.org/r/3657/ #ASTERISK-23908 #close
+ Reported by: Torrey Searle patches: udptl_fec.patch uploaded by
+ Torrey Searle (License 5334) ........ Merged revisions 417318
+ from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........
+ Merged revisions 417320 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 417324 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+ * res/ari/internal.h, configs/ari.conf.sample,
+ res/res_http_websocket.c, res/res_pjsip.c,
+ configs/pjsip.conf.sample, include/asterisk/http_websocket.h,
+ configs/sip.conf.sample, res/res_pjsip/config_transport.c,
+ res/ari/ari_websockets.c, res/res_pjsip_transport_websocket.c,
+ res/ari/config.c, channels/sip/include/sip.h,
+ include/asterisk/res_pjsip.h, res/res_ari.c, /,
+ channels/chan_sip.c, UPGRADE.txt: res_http_websocket: Close
+ websocket correctly and use careful fwrite When a client takes a
+ long time to process information received from Asterisk, a write
+ operation using fwrite may fail to write all information. This
+ causes the underlying file stream to be in an unknown state, such
+ that the socket must be disconnected. Unfortunately, there are
+ two problems with this in Asterisk's existing websocket code: 1.
+ Periodically, during the read loop, Asterisk must write to the
+ connected websocket to respond to pings. As such, Asterisk
+ maintains a reference to the session during the loop. When
+ ast_http_websocket_write fails, it may cause the session to
+ decrement its ref count, but this in and of itself does not break
+ the read loop. The read loop's write, on the other hand, does not
+ break the loop if it fails. This causes the socket to get in a
+ 'stuck' state, preventing the client from reconnecting to the
+ server. 2. More importantly, however, is that the fwrite in
+ ast_http_websocket_write fails with a large volume of data when
+ the client takes awhile to process the information. When it does
+ fail, it fails writing only a portion of the bytes. With some
+ debugging, it was shown that this was failing in a similar
+ fashion to ASTERISK-12767. Switching this over to
+ ast_careful_fwrite with a long enough timeout solved the problem.
+ Note that this version of the patch, unlike r417310 in Asterisk
+ 11, exposes configuration options beyond just chan_sip's
+ sip.conf. Configuration options to configure the write timeout
+ have also been added to pjsip.conf and ari.conf. #ASTERISK-23917
+ #close Reported by: Matt Jordan Review:
+ https://reviewboard.asterisk.org/r/3624/ ........ Merged
+ revisions 417310 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 417311 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-06-26 10:06 +0000 [r417251] Corey Farrell <git@cfware.com>
+
+ * /, channels/chan_sip.c: chan_sip: Fix handling of "From" headers
+ longer than 256 characters From headers were processed using a
+ 256 character buffer on the stack. This change replaces that with
+ a heap allocation by ast_strdup. ASTERISK-23790 #close Reported
+ by: uniken1 Tested by: uniken1 Review:
+ https://reviewboard.asterisk.org/r/3669/ Patches:
+ chan_sip-large-from-header-1.8-r3.patch uploaded by wdoekes
+ (license 5674) ........ Merged revisions 417248 from
+ http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
+ revisions 417249 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 417250 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-06-25 20:57 +0000 [r417233] Mark Michelson <mmichelson@digium.com>
+
+ * res/res_pjsip_pubsub.c, res/res_pjsip_exten_state.c,
+ include/asterisk/res_pjsip_pubsub.h,
+ res/res_pjsip_pidf_body_generator.c,
+ res/res_pjsip_pubsub.exports.in, res/res_pjsip_mwi.c,
+ res/res_pjsip_xpidf_body_generator.c: Abstract PJSIP-specific
+ elements from the pubsub API. This helps to pave the way for RLS
+ work that is to come. Since this is a self-contained change and
+ subscription tests still pass, this work is being committed
+ directly to trunk instead of a working branch. ASTERISK-23865
+ #close Review: https://reviewboard.asterisk.org/r/3628
+
+2014-06-25 18:57 +0000 [r417213] Corey Farrell <git@cfware.com>
+
+ * main/astobj2_container.c, /: ao2_container node object ignores
+ REF_DEBUG in all places except one Almost every reference
+ operation against container node's uses __ao2_alloc or __ao2_ref,
+ thereby preventing ref logging for the nodes. One node reference
+ is released with ao2_t_ref, causing refcounter.py to falsely
+ report skews and leaks for many nodes. ASTERISK-23922 #close
+ Reported by: Corey Farrell Review:
+ https://reviewboard.asterisk.org/r/3670/ ........ Merged
+ revisions 417212 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-06-25 00:45 +0000 [r417193] Damien Wedhorn <voip@facts.com.au>
+
+ * channels/chan_skinny.c: Skinny: cleanup some log messages around
+ sessions.
+
+2014-06-24 02:50 +0000 [r417167] Corey Farrell <git@cfware.com>
+
+ * include/asterisk/netsock.h, main/utils.c, main/netsock.c,
+ include/asterisk/res_pjsip_session.h: Move eid functions to
+ utils.c, mark netsock.h deprecated Move eid functions from
+ netsock.c to utils.c. These functions were already published by
+ utils.h. Flag netsock.h as deprecated and switch
+ res_pjsip_session.h to use netsock2.h. The only code that still
+ uses netsock.h is chan_iax2. ASTERISK-23920 #close Reported by:
+ Corey Farrell Review: https://reviewboard.asterisk.org/r/3661/
+
+2014-06-23 18:50 +0000 [r417143] Joshua Colp <jcolp@digium.com>
+
+ * /, res/res_rtp_asterisk.c: res_rtp_asterisk: Return the length of
+ data written when sending via ICE instead of 0. ASTERISK-23834
+ #close Reported by: Richard Kenner ........ Merged revisions
+ 417141 from http://svn.asterisk.org/svn/asterisk/branches/11
+ ........ Merged revisions 417142 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-06-23 16:04 +0000 [r417120] Richard Mudgett <rmudgett@digium.com>
+
+ * /, main/core_unreal.c: core_unreal: Fix off by one buffer
+ overwrite error. Appending the ;2 to the user supplied ;1
+ uniqueid to create the ;2 version if the user did not also supply
+ an extra uniqueid for the ;2 channel resulted in allocating a
+ buffer that was one byte too small. * Fix off by one error in
+ ast_unreal_new_channels() when generating the ;2 uniqueid from
+ the user suppled ;1 version. * Pulled some long assignment lines
+ from if tests to improve line break readability in
+ ast_unreal_new_channels(). ........ Merged revisions 417119 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-06-23 07:44 +0000 [r417059] Tzafrir Cohen <tzafrir.cohen@xorcom.com>
+
+ * channels/sig_pri.c, channels/sig_pri.h, channels/chan_dahdi.c:
+ suspended destructions of pri spans on events If a DAHDI span
+ disappears, we wish for its representation in Asterisk to be
+ destroyed as well. The information about the span's removal may
+ come from several paths: 1. DAHDI sends DAHDI_EVENT_REMOVE on
+ every channel. 2. An extra DAHDI_EVENT_REMOVED is sent on every
+ subsequent call to DAHDI_GET_EVENT. 3. Every read (including the
+ internal one by libpri on the D-channel) returns -ENODEV.
+ Asterisk responsds to DAHDI_EVENT_REMOVE on a channel by
+ destroying it. Destroying a channel requires holding the channel
+ list lock (iflock). Destroying a channel that is part of a span
+ requires holding the span's lock. Destroying a channel from a
+ context that holds the span lock, while at the same time another
+ channel is destroyed directly, leads to a deadlock. Solution:
+ don't destroy span while holding the channels list lock. Thus
+ changes in this patch: * Deferring removal of PRI spans in
+ response to events: doomed spans are collected on a list. *
+ Doomed spans are removed periodically by the monitor thread. *
+ ENODEV reads from the D-channel will warant the same deferred
+ removal. Review: https://reviewboard.asterisk.org/r/3548/
+
+2014-06-22 18:53 +0000 [r416996] George Joseph <george.joseph@fairview5.com>
+
+ * include/asterisk/astobj2.h, Makefile.rules, Makefile, /: astobj2:
+ Add an ao2_replace macro to astobj2.h This macro replaces one
+ object reference with another cleaning up the original. param dst
+ Pointer to the object that will be cleaned up. param src Pointer
+ to the object replacing it. src's ref count is bumped if it's
+ non-NULL. dst's ref count is decremented if it's non-NULL. src is
+ assigned to dst, This patch was reviewed on IRC by coreyfarrell
+ and mjordan. Tested by: George Joseph ........ Merged revisions
+ 416995 from http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-06-20 23:18 +0000 [r416872-416935] George Joseph <george.joseph@fairview5.com>
+
+ * /, configure, include/asterisk/autoconfig.h.in: build: Allow
+ autoconf/ast_ext_tool_check to handle cross-compiling better.
+ ast_ext_tool_check.m4 isn't handling cases where a path to a
+ package is provided (E.G. --with-mysqlclient=/some/sysroot) and
+ the package has a config tool (E.G. mysql_config) and the package
+ has its own subdirectories in include or lib. For example,
+ mysql's libraries are in ${MYSQLCLIENT_DIR}/usr/lib/mysql but
+ ast_ext_tool_check sets MYSQLCLIENT_LIB to
+ ${MYSQLCLIENT_DIR}/usr/lib. libxml2 has the same problem with its
+ includes. They're in ${LIBXML2_DIR}/usr/include/libxml2 not
+ directly in ${LIBXML2_DIR}/usr/include. Both cause configure to
+ fail and there are others in the same boat. The problem is caused
+ by logic in ast_ext_tool_check that overrides the result of the
+ config tool's --cflags and --libs options if package_DIR is set.
+ This patch prepends package_DIR (if specified) to the -L and -I
+ results from the package's config tool instead of overriding
+ them. A regenerated ./configure and
+ include/asterisk/autoconfig.h.in are included but can be
+ regenerated by running ./bootstrap.sh at any time. Tested by:
+ George Joseph Tested by: Matt Jordan Review:
+ https://reviewboard.asterisk.org/r/3550/ ........ Merged
+ revisions 416929 from
+ http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
+ revisions 416930 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 416931 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+ * autoconf/ast_ext_tool_check.m4, /: build: Allow
+ autoconf/ast_ext_tool_check to handle cross-compiling better.
+ ast_ext_tool_check.m4 isn't handling cases where a path to a
+ package is provided (E.G. --with-mysqlclient=/some/sysroot) and
+ the package has a config tool (E.G. mysql_config) and the package
+ has its own subdirectories in include or lib. For example,
+ mysql's libraries are in ${MYSQLCLIENT_DIR}/usr/lib/mysql but
+ ast_ext_tool_check sets MYSQLCLIENT_LIB to
+ ${MYSQLCLIENT_DIR}/usr/lib. libxml2 has the same problem with its
+ includes. They're in ${LIBXML2_DIR}/usr/include/libxml2 not
+ directly in ${LIBXML2_DIR}/usr/include. Both cause configure to
+ fail and there are others in the same boat. The problem is caused
+ by logic in ast_ext_tool_check that overrides the result of the
+ config tool's --cflags and --libs options if package_DIR is set.
+ This patch prepends package_DIR (if specified) to the -L and -I
+ results from the package's config tool instead of overriding
+ them. Tested by: George Joseph Tested by: Matt Jordan Review:
+ https://reviewboard.asterisk.org/r/3550/ ........ Merged
+ revisions 416870 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 416871 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-06-20 20:57 +0000 [r416848-416850] Jonathan Rose <jrose@digium.com>
+
+ * res/parking/parking_manager.c, /: res_parking: Make manager
+ commands register with module information Previously module
+ information was not included due to an oversight. Review:
+ https://reviewboard.asterisk.org/r/3626/ ........ Merged
+ revisions 416849 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+ * main/logger.c, CHANGES, include/asterisk/logger.h,
+ main/manager.c: Logger: Add manager command 'LoggerRotate' to
+ rotate logger Part of a series of AMI command equivalents to
+ existing CLI commands Review:
+ https://reviewboard.asterisk.org/r/3651/
+
+2014-06-20 17:06 +0000 [r416830] Richard Mudgett <rmudgett@digium.com>
+
+ * apps/app_voicemail.c, include/asterisk/app.h, main/app.c,
+ apps/app_directory.c, apps/app_chanspy.c: voicemail API
+ callbacks: Extract the sayname API call to its own registerd
+ callback. * Extract the sayname API call to its own registerd
+ callback. This allows the app_directory and app_chanspy
+ applications to say a mailbox owner's name using an alternate
+ provider when app_voicemail is not available because you are
+ using res_mwi_external. app_directory still uses the
+ voicemail.conf file. AFS-64 #close Reported by: Mark Michelson
+
+2014-06-20 15:27 +0000 [r416738-416807] George Joseph <george.joseph@fairview5.com>
+
+ * main/astobj2_private.h, main/astobj2_container_private.h,
+ main/astobj2_container.c, main/astobj2_hash.c,
+ main/astobj2_rbtree.c, build_tools/cflags.xml, /,
+ tests/test_astobj2.c: astobj2: Additional refactoring to push
+ impl specific code down into the impls. Move some implementation
+ specific code from astobj2_container.c into astobj2_hash.c and
+ astobj2_rbtree.c. This completely removes the need for
+ astobj2_container to switch on RTTI and it no longer has any
+ knowledge of the implementation details. Also adds AO2_DEBUG as a
+ new compile option in menuselect which controls astobj2 debugging
+ independently of AST_DEVMODE and REF_DEBUG. Tested by: George
+ Joseph Review: https://reviewboard.asterisk.org/r/3593/ ........
+ Merged revisions 416806 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+ * /, res/res_pjsip_endpoint_identifier_ip.c, main/acl.c,
+ include/asterisk/netsock2.h, include/asterisk/acl.h,
+ main/netsock2.c: pjsip cli: Change Identify to show CIDR notation
+ instead of netmasks. * Added ast_sockaddr_cidr_bits() to count
+ the 1 bits in an ast_sockaddr. * Added ast_ha_join_cidr() which
+ uses ast_sockaddr_cidr_bits() for the netmask instead of
+ ast_sockaddr_stringify_addr. * Changed
+ res_pjsip_endpoint_identifier_ip to call ast_ha_join_cidr()
+ instead of ast_ha_join() for the CLI output. This is a CLI change
+ only. AMI was not affected. Tested by: George Joseph Review:
+ https://reviewboard.asterisk.org/r/3652/ ........ Merged
+ revisions 416737 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-06-19 19:40 +0000 [r416736] Kinsey Moore <kmoore@digium.com>
+
+ * /, main/bridge.c, res/parking/parking_tests.c,
+ channels/sip/reqresp_parser.c, main/logger.c, main/test.c: Fix
+ build warnings with TEST_FRAMEWORK enabled ........ Merged
+ revisions 416732 from
+ http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
+ revisions 416733 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 416734 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-06-19 16:04 +0000 [r416589-416670] George Joseph <george.joseph@fairview5.com>
+
+ * pbx/pbx_lua.c, /: Remove the problematic and unneeded
+ AST_MODFLAG_GLOBAL_SYMBOLS from pbx_lua.c
+ AST_MODFLAG_GLOBAL_SYMBOLS was causing the module to be
+ incorrectly loaded before pbx_config. pbx_config was therefore
+ blowing away contexts that were created by pbx_lua. With
+ AST_MODFLAG_DEFAULT the load order is now correct and contexs are
+ being properly merged. AST_MODFLAG_GLOBAL_SYMBOLS was not needed
+ anyway since no other modules needed its global symbols that
+ early. ASTERISK-23818 #close Reported by: Dennis Guse Tested by:
+ Dennis Guse Tested by: George Joseph Review:
+ https://reviewboard.asterisk.org/r/3629/ ........ Merged
+ revisions 416668 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 416669 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+ * configs/extensions.lua.sample, /: Update extensions.lua.sample
+ with naming conflict guidance. The sample extensions.lua was
+ causing pbx_lua to fail to load when parsing 'app.goto("default",
+ "s", 1)' because in Lua 5.2, 'goto' is now a reserved word. This
+ patch adds guidance to extensions.lua.sample and changed
+ 'app.goto("default", "s", 1)' to 'app.['goto']("default", "s",
+ 1)'. ASTERISK-23844 #close Reported by: rnewton Tested by:
+ gtjoseph Review: https://reviewboard.asterisk.org/r/3627/
+ ........ Merged revisions 416581 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 416582 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-06-18 04:22 +0000 [r416561] Matthew Jordan <mjordan@digium.com>
+
+ * /, main/stasis_channels.c: stasis_channels: Update the stasis
+ cache if manager variables are needed In r416211, the publishing
+ of variable changes was modified such that a cached channel
+ snapshot was used if manager variables were not requested with
+ each AMI event. This was done to reduce the amount of channel
+ snapshots created. However, an assumption was made that
+ generating a channel snapshot and publishing the snapshot to the
+ channel topic was sufficient to ensure that the cache would be
+ updated; this is not the case. The channel snapshot type must be
+ used to force a snapshot update. This patch updates the
+ publication of channel variables such that the cache is updated
+ prior to publication of the channel variable message if manager
+ variables are in use. This ensures that all AMI events receive
+ the variable update when they are supposed to. Note that this
+ issue was caught by the Asterisk Test Suite (go go testing)
+ ........ Merged revisions 416557 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-06-17 18:45 +0000 [r416444-416503] Mark Michelson <mmichelson@digium.com>
+
+ * /, funcs/func_strings.c: Allow the PUSH and UNSHIFT functions to
+ set inheritable channel variables. ........ Merged revisions
+ 416500 from http://svn.asterisk.org/svn/asterisk/branches/1.8
+ ........ Merged revisions 416501 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 416502 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+ * res/res_pjsip_pidf_body_generator.c, /,
+ res/res_pjsip_xpidf_body_generator.c: Fix string growth algorithm
+ for XML presence bodies. pjpidf_print() does not return < 0 if
+ there is not enough room for the document to be printed. Rather,
+ it returns 39, the length of the XML prolog. The algorithm also
+ had a bug in that it would return if it attempted to grow the
+ string larger. ........ Merged revisions 416442 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-06-17 16:33 +0000 [r416443] Kinsey Moore <kmoore@digium.com>
+
+ * res/res_musiconhold.c, /: MoH: Don't restart stream on repeated
+ start calls Currently, music on hold will stop and then start
+ again from the beginning if ast_moh_start() is called multiple
+ times. This can happen if a call is put on hold repeatedly (the
+ channel receives multiple HOLD control frames) and can be
+ triggered from ARI by starting MoH on a channel multiple times.
+ This is fairly jarring/annoying to users. This change prevents
+ MoH from being restarted if the requested music class is the same
+ as the one currently playing. This includes an extra check to
+ prevent the errors previously experienced in the testsuite and
+ has 100+ test runs behind it. Review:
+ https://reviewboard.asterisk.org/r/3615/ ........ Merged
+ revisions 416439 from
+ http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
+ revisions 416440 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 416441 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-06-16 18:27 +0000 [r416416] Richard Mudgett <rmudgett@digium.com>
+
+ * channels/chan_dahdi.c, configs/chan_dahdi.conf.sample,
+ channels/sig_ss7.h, configure, channels/chan_dahdi.h,
+ configure.ac, UPGRADE.txt, configs/ss7.timers.sample (added),
+ CHANGES, channels/sig_ss7.c: chan_dahdi: Adds support for major
+ update to libss7. * SS7 support now requires libss7 v2.0 or
+ later. The new libss7 is not backwards compatible. * Added SS7
+ support for connected line and redirecting. * Most SS7 CLI
+ commands are reworked as well as new SS7 commands added. See
+ online CLI help. * Added several SS7 config option parameters
+ described in chan_dahdi.conf.sample. * ISUP timer support
+ reworked and now requires explicit configuration. See
+ ss7.timers.sample. Special thanks to Kaloyan Kovachev for his
+ support and persistence in getting the original patch by adomjan
+ updated and ready for release. SS7-27 #close Reported by: adomjan
+
+2014-06-16 16:22 +0000 [r416394] Kevin Harwell <kharwell@digium.com>
+
+ * include/asterisk/http_websocket.h, tests/test_websocket_client.c,
+ res/res_http_websocket.c: res_http_websocket: read/write string
+ fixup There was a problem when reading a string from the
+ websocket. It assumed the received data had a null terminator and
+ tried to write the data to an ast_str. This of course could/would
+ read past the end of the given buffer while writing the data to
+ the internal buffer of ast_str. Modified the the code to
+ correctly place a null terminator on the result string.
+
+2014-06-16 09:04 +0000 [r416339] Igor Goncharovskiy <igor.goncharovsky@gmail.com>
+
+ * cel/cel_sqlite3_custom.c, main/db.c, res/res_config_sqlite3.c,
+ cdr/cdr_sqlite3_custom.c, /: We have faced situation when using
+ CDR and CEL by sqlite3 modules. With system having high load
+ (~100 concurrent calls created by sipp) we found many cdr and cel
+ records missed. There is special finction in sqlite3, that make
+ able to fix this situation - sqlite3_wait_timeout, that also can
+ replace awful code cdr_sqlite3 ad cel_sqlite3 modules. Also this
+ function can be used for aastdb and res_config_sqlite3 to avoid
+ missed writes to sqlite db. #ASTERISK-23766 #close Reported by:
+ Igor Goncharovsky Review:
+ https://reviewboard.asterisk.org/r/3559/ ........ Merged
+ revisions 416336 from
+ http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
+ revisions 416337 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 416338 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-06-16 02:40 +0000 [r416267-416319] Matthew Jordan <mjordan@digium.com>
+
+ * /, channels/chan_sip.c: channels/chan_sip: Forbid remote bridging
+ if T.38 is negotiated When a framehook is removed - such as the
+ fax gateway framehook - the bridge framework will re-evaluate the
+ bridge mixing technologies to see if it can improve the bridging.
+ When this occurs, get_rtp_info will be called to determine if
+ local or remote bridging can be used. Using remote bridging will
+ cause a fax to fail, as direct media negotiation will cause some
+ small number of packets to not arrive at the remote endpoint.
+ This patch forces local native bridging if T.38 negotiation is in
+ progress or has been established. ........ Merged revisions
+ 416318 from http://svn.asterisk.org/svn/asterisk/branches/12
+
+ * /, main/channel_internal_api.c: channel_internal_api: Publish a
+ snapshot change when linkedids change Snapshots are now not
+ published *quite* as much as they used to. One instance where
+ they are not published any longer is during bridge enter and exit
+ - the state of the channel doesn't change, the bridge does.
+ However, channels are changed when a linkedid is propagated;
+ previously, the channel's state would be updated and published
+ during the bridge enter event. Now this must be explicitly done.
+ ........ Merged revisions 416300 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+ * /, tests/test_stasis_endpoints.c: test_stasis_endpoints: Remove
+ expected channel snapshot We no longer publish a channel snapshot
+ when it is associated with an endpoint; after all, the channel
+ itself hasn't changed - the endpoint state has changed. This
+ updates the channel_messages unit test accordingly. ........
+ Merged revisions 416298 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+ * /, res/res_musiconhold.c: MoH: Undo commit r416150 (1.8) This
+ patch reverts r416150. When the comparison between mohclass->name
+ and state->class->name is made, you are not guaranteed that (a)
+ state->class is non-NULL or that state or state->class are in a
+ safe state. Crashes caught by the bridges/transfer_capabilities
+ test. ........ Merged revisions 416251 from
+ http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
+ revisions 416252 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 416255 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-06-14 19:26 +0000 [r416237] Corey Farrell <git@cfware.com>
+
+ * res/res_manager_devicestate.c, res/res_manager_presencestate.c:
+ res_manager_devicestate and res_manager_presencestate missing
+ support level Add MODULEINFO comment block to define support
+ level core for these new modules. Review:
+ https://reviewboard.asterisk.org/r/3620/
+
+2014-06-13 18:24 +0000 [r416216] Matthew Jordan <mjordan@digium.com>
+
+ * res/res_agi.c, res/res_pjsip/pjsip_configuration.c,
+ main/stasis_channels.c, res/ari/resource_channels.c,
+ main/bridge_channel.c, main/pbx.c, main/stasis_cache.c, /,
+ apps/app_meetme.c, main/pickup.c, main/channel_internal_api.c,
+ include/asterisk/channel.h, main/core_local.c, main/aoc.c,
+ main/endpoints.c, main/cel.c, apps/app_queue.c,
+ main/stasis_bridges.c, apps/app_agent_pool.c, main/cli.c,
+ main/channel.c, main/dial.c, main/manager.c,
+ include/asterisk/stasis_channels.h: stasis: Reduce creation of
+ channel snapshots to improve performance During some performance
+ testing of Asterisk with AGI, ARI, and lots of Local channels, we
+ noticed that there's quite a hit in performance during channel
+ creation and releasing to the dialplan (ARI continue). After
+ investigating the performance spike that occurs during channel
+ creation, we discovered that we create a lot of channel snapshots
+ that are technically unnecessary. This includes creating
+ snapshots during: * AGI execution * Returning objects for ARI
+ commands * During some Local channel operations * During some
+ dialling operations * During variable setting * During some
+ bridging operations And more. This patch does the following: - It
+ removes a number of fields from channel snapshots. These fields
+ were rarely used, were expensive to have on the snapshot, and
+ hurt performance. This included formats, translation paths, Log
+ Call ID, callgroup, pickup group, and all channel variables. As a
+ result, AMI Status, "core show channel", "core show channelvar",
+ and "pjsip show channel" were modified to either hit the live
+ channel or not show certain pieces of data. While this is
+ unfortunate, the performance gain from this patch is worth the
+ loss in behaviour. - It adds a mechanism to publish a cached
+ snapshot + blob. A large number of publications were changed to
+ use this, including: - During Dial begin - During Variable
+ assignment (if no AMI variables are emitted - if AMI variables
+ are set, we have to make snapshots when a variable is changed) -
+ During channel pickup - When a channel is put on hold/unhold -
+ When a DTMF digit is begun/ended - When creating a bridge
+ snapshot - When an AOC event is raised - During Local channel
+ optimization/Local bridging - When endpoint snapshots are
+ generated - All AGI events - All ARI responses that return a
+ channel - Events in the AgentPool, MeetMe, and some in Queue -
+ Additionally, some extraneous channel snapshots were being made
+ that were unnecessary. These were removed. - The result of
+ ast_hashtab_hash_string is now cached in stasis_cache. This
+ reduces a large number of calls to ast_hashtab_hash_string, which
+ reduced the amount of time spent in this function in gprof by
+ around 50%. #ASTERISK-23811 #close Reported by: Matt Jordan
+ Review: https://reviewboard.asterisk.org/r/3568/ ........ Merged
+ revisions 416211 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-06-13 13:11 +0000 [r416149-416153] Kinsey Moore <kmoore@digium.com>
+
+ * res/res_musiconhold.c, /: MoH: Don't restart stream on repeated
+ start calls Currently, music on hold will stop and then start
+ again from the beginning if ast_moh_start() is called multiple
+ times. This can happen if a call is put on hold repeatedly (the
+ channel receives multiple HOLD control frames) and can be
+ triggered from ARI by starting MoH on a channel multiple times.
+ This is fairly jarring/annoying to users. This change prevents
+ MoH from being restarted if the requested music class is the same
+ as the one currently playing. Review:
+ https://reviewboard.asterisk.org/r/3615/ ........ Merged
+ revisions 416150 from
+ http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
+ revisions 416151 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 416152 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+ * main/cel.c, /: CEL: Expose parking retreiver in extra field This
+ exposes the retreiver of a parked call under the "retreiver" key
+ of the extra field when this information is available. Review:
+ https://reviewboard.asterisk.org/r/3608/ ........ Merged
+ revisions 416148 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-06-13 05:16 +0000 [r416071] Richard Mudgett <rmudgett@digium.com>
+
+ * main/http.c, include/asterisk/tcptls.h, main/tcptls.c,
+ main/manager.c, /, channels/chan_sip.c: AST-2014-007: Fix of fix
+ to allow AMI and SIP TCP to send messages. ASTERISK-23673 #close
+ Reported by: Richard Mudgett Review:
+ https://reviewboard.asterisk.org/r/3617/ ........ Merged
+ revisions 416066 from
+ http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
+ revisions 416067 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 416070 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-06-12 21:27 +0000 [r416024] Rusty Newton <rnewton@digium.com>
+
+ * main/pbx.c: main/pbx - documentation - enhance 'core show hints'
+ and 'core show hint' help text Adds descriptive help text to
+ 'core show hints' and 'core show hint'. The text describes the
+ various columns for the sake of clarity. It takes into account
+ recent changes to the content displayed by the commands
+ https://reviewboard.asterisk.org/r/3604/ and
+ https://reviewboard.asterisk.org/r/3611/. ASTERISK-23764 Review:
+ https://reviewboard.asterisk.org/r/3610/
+
+2014-06-12 20:17 +0000 [r415982] Kinsey Moore <kmoore@digium.com>
+
+ * res/res_pjsip_pubsub.c, /: Fix build in devmode for GCC 4.10
+ ........ Merged revisions 415980 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-06-12 17:00 +0000 [r415907] Richard Mudgett <rmudgett@digium.com>
+
+ * include/asterisk/utils.h, main/tcptls.c, main/manager.c, /,
+ channels/chan_sip.c, main/http.c, UPGRADE.txt, main/utils.c,
+ include/asterisk/tcptls.h, res/res_http_websocket.c,
+ configs/http.conf.sample: AST-2014-007: Fix DOS by consuming the
+ number of allowed HTTP connections. Simply establishing a TCP
+ connection and never sending anything to the configured HTTP port
+ in http.conf will tie up a HTTP connection. Since there is a
+ maximum number of open HTTP sessions allowed at a time you can
+ block legitimate connections. A similar problem exists if a HTTP
+ request is started but never finished. * Added http.conf
+ session_inactivity timer option to close HTTP connections that
+ aren't doing anything. Defaults to 30000 ms. * Removed the
+ undocumented manager.conf block-sockets option. It interferes
+ with TCP/TLS inactivity timeouts. * AMI and SIP TLS connections
+ now have better authentication timeout protection. Though I
+ didn't remove the bizzare TLS timeout polling code from chan_sip.
+ * chan_sip can now handle SSL certificate renegotiations in the
+ middle of a session. It couldn't do that before because the
+ socket was non-blocking and the SSL calls were not restarted as
+ documented by the OpenSSL documentation. * Fixed an off nominal
+ leak of the ssl struct in handle_tcptls_connection() if the FILE
+ stream failed to open and the SSL certificate negotiations
+ failed. The patch creates a custom FILE stream handler to give
+ the created FILE streams inactivity timeout and timeout after a
+ specific moment in time capability. This approach eliminates the
+ need for code using the FILE stream to be redesigned to deal with
+ the timeouts. This patch indirectly fixes most of ASTERISK-18345
+ by fixing the usage of the SSL_read/SSL_write operations.
+ ASTERISK-23673 #close Reported by: Richard Mudgett ........
+ Merged revisions 415841 from
+ http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
+ revisions 415854 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 415896 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-06-12 15:50 +0000 [r415839] Scott Griepentrog <sgriepentrog@digium.com>
+
+ * /, apps/app_queue.c: app_queue: delayed state can cause early
+ leavewhenempty ringing In app_queue, device state changes arrive
+ in event messages and update the queue member status value. That
+ value is checked in get_member_status() to decide that the caller
+ should leave when there are no available members. Although event
+ messages can be delayed by other activity, there is no adverse
+ affect by lagged status except in one specific case: there is
+ only one available member, it was just rung, and leavewhenempty
+ is enabled set for ringing members. This change adds a direct
+ check of the device state only under this condition where the
+ caller may be dropped incorrectly, resolving this issue without
+ affecting performance of app_queue normally. AST-1248 #close
+ Review: https://reviewboard.asterisk.org/r/3595/ Reported by:
+ Thomas Arimont ........ Merged revisions 415833 from
+ http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
+ revisions 415835 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 415836 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-06-12 15:39 +0000 [r415834] Jonathan Rose <jrose@digium.com>
+
+ * apps/app_mixmonitor.c, /, UPGRADE.txt: MixMontior: Add class
+ authorization requirements to MixMonitor AMI commands MixMonitor
+ AMI commands StartMixMonitor and StopMixMonitor lacked class
+ authorization. StopMixMonitor now requires that the manager user
+ either have the call or system class authorization.
+ StartMixMonitor is a slightly larger issue since it can execute
+ shell commands if the right arguments are passed into it, and we
+ consider this a permission escalation. A security release will be
+ issued for problem this shortly. ASTERISK-23609 #close Reported
+ by: Corey Farrell ........ Merged revisions 415825 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 415832 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-06-12 14:39 +0000 [r415813] Kevin Harwell <kharwell@digium.com>
+
+ * res/res_pjsip_pubsub.c, /: res_pjsip_pubsub: unauthenticated
+ remote crash in PJSIP pub/sub framework A remotely exploitable
+ crash vulnerability exists in the PJSIP channel driver's pub/sub
+ framework. If an attempt is made to unsubscribe when not
+ currently subscribed and the endpoint's "sub_min_expiry" is set
+ to zero, Asterisk tries to create an expiration timer with zero
+ seconds, which is not allowed, so an assertion raised. The fix
+ was to reject a subscription that is attempting to unsubscribe
+ when not being already subscribed. Asterisk now checks for this
+ situation appropriately and responds with a 400 instead of
+ crashing. AST-2014-005 ASTERISK-23489 #close ........ Merged
+ revisions 415812 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-06-12 14:15 +0000 [r415795] Mark Michelson <mmichelson@digium.com>
+
+ * res/res_pjsip.c, /: Fix potential deadlock situation in
+ res_pjsip. SIP transaction timeouts are handled in the PJSIP
+ monitor thread. When this happens on a subscription, and the
+ subscription is destroyed, the subscription destruction is
+ dispatched synchronously to the threadpool. The issue is that the
+ PJSIP dialog is locked by the monitor thread, and then the
+ dispatched task attempts to lock the dialog. This leads to a
+ deadlock that causes SIP traffic to no longer be accepted on the
+ Asterisk server. The fix here is to treat the monitor thread as
+ if it were a threadpool thread when it attempts to dispatch
+ synchronous tasks. This way, the dispatched task turns into a
+ simple function call within the same thread, and the locking
+ issue is averted. AST-2014-008 ASTERISK-23802 #close ........
+ Merged revisions 415794 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-06-12 11:34 +0000 [r415767] Joshua Colp <jcolp@digium.com>
+
+ * res/res_pjsip.c, res/res_pjsip_pubsub.c,
+ res/res_pjsip_exten_state.c, include/asterisk/res_pjsip.h,
+ include/asterisk/res_pjsip_pubsub.h,
+ res/res_pjsip_pubsub.exports.in, /,
+ contrib/ast-db-manage/config/versions/c6d929b23a8_create_pjsip_subscription_persistence_.py
+ (added), res/res_pjsip_mwi.c: res_pjsip_pubsub: Persist
+ subscriptions in sorcery so they are recreated on startup. This
+ change makes res_pjsip_pubsub persist inbound subscriptions in
+ sorcery. By default this uses the local astdb but it can also be
+ configured to store within an outside database. When Asterisk is
+ started these subscriptions are recreated if they have not
+ expired. Notifications are sent to the devices which have
+ subscribed and they are none the wiser that the system has
+ restarted. Review: https://reviewboard.asterisk.org/r/3598/
+ ........ Merged revisions 415766 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-06-12 07:52 +0000 [r415749] Walter Doekes <walter+asterisk@wjd.nu>
+
+ * UPGRADE.txt, contrib/scripts/safe_asterisk, Makefile, /:
+ safe_asterisk: Overwrite old safe_asterisk on make install. From
+ now on, make install will overwrite safe_asterisk with the latest
+ version. You need to move any local modifications to files inside
+ /etc/asterisk/startup.d, if you have any. See also commits
+ r394939 and r397938. ASTERISK-21965 #close Patches:
+ safe_asterisk.patch uploaded by jkister (License 6232, modified
+ by me) ........ Merged revisions 415748 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-06-11 23:01 +0000 [r415730] Richard Mudgett <rmudgett@digium.com>
+
+ * main/format.c, /: format.c: Fix misuse of hash container
+ function. The supplied hash function to a container must be
+ idempotent given the object's key value to figure out which
+ container bucket the object belongs in. Returning a random number
+ or the current container count is not idempotent. The "computed
+ hash" value doesn't help find the object later in those cases. *
+ Fixed the format_list container to actually be a list since that
+ is how the container is used. Conceptually, if more than 283
+ formats were added to the format_list then odd things may have
+ happened before the fix. ........ Merged revisions 415728 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 415729 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-06-11 20:22 +0000 [r415698-415715] Scott Griepentrog <sgriepentrog@digium.com>
+
+ * main/pbx.c: CLI: correct presence information on core show hints
+ Adds presence to core show hint and changes presence string
+ conversion to use the correct function. ASTERISK-23858 #close
+ Review: https://reviewboard.asterisk.org/r/3611/
+
+ * main/pbx.c: CLI: add presence information to core show hints Adds
+ presence state value to output of core show hints. Also reformats
+ the output slightly so it doesn't use as much space as it would
+ otherwise. Was: 1000@demo : SIP/1000 State:Unavailable Watchers 0
+ Now: 1000@demo : SIP/1000 State:Unavailable Presence:Idle
+ Watchers 0 AFS-53 #close Review:
+ https://reviewboard.asterisk.org/r/3604/
+
+2014-06-10 18:32 +0000 [r415679] Kinsey Moore <kmoore@digium.com>
+
+ * main/channel.c, /: Fix build in dev mode due to signed/unsigned
+ mismatch ........ Merged revisions 415678 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-06-10 16:06 +0000 [r415659] Jonathan Rose <jrose@digium.com>
+
+ * main/message.c, /, res/res_pjsip_notify.c: PJSIP: PJSIPNotify -
+ Strip content-length headers and add documentation Documentation
+ for how to add custom headers/content to notifies created with
+ the PJSIPNotify manager action was a little sparse and it also
+ wasn't vetting application of Content-length headers like its
+ chan_sip equivalent was (so two Content-length headers could be
+ applied... and PJSIP determines the content length anyway, so it
+ just opens people up for error). This patch also flips the
+ variable order so that the variables are interpreted in the same
+ order as they are put in the AMI action. Review:
+ https://reviewboard.asterisk.org/r/3587/ ........ Merged
+ revisions 415658 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-06-10 09:28 +0000 [r415630] Alexandr Anikin <may@telecom-service.ru>
+
+ * addons/chan_ooh323.c, /: chan_ooh323: fix loading module failure
+ if there no accessible h323_log or ooh323 config file change
+ return 1 to return AST_MODULE_LOAD_FAILURE on module load routine
+ few cosmetic changes ASTERISK-23814 #close (closes issue
+ ASTERISK-23814) Reported by: Igor Goncharovsky Patches:
+ ASTERISK-23814-ast11.patch ........ Merged revisions 415599 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 415602 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-06-09 20:21 +0000 [r415580] Mark Michelson <mmichelson@digium.com>
+
+ * res/res_pjsip_header_funcs.c, /: chan_pjsip: Fix bug where custom
+ SIP headers could be duplicated on outgoing INVITEs. When using
+ PJSIP_HEADER() to add custom headers to outgoing INVITE requests,
+ certain situations could result in the headers being duplicated.
+ For instance, if the request were retransmitted, or if the INVITE
+ were re-sent with authentication credentials, the custom headers
+ would be re-added to the request. The fix here is to, after
+ adding the custom headers to the outbound INVITE, remove the
+ datastore that holds the custom headers to add. This way, there
+ is no risk in accidentally adding them if the session supplement
+ is called into a second or third time. ........ Merged revisions
+ 415579 from http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-06-09 12:12 +0000 [r415524] Walter Doekes <walter+asterisk@wjd.nu>
+
+ * /, UPGRADE.txt, contrib/scripts/safe_asterisk: safe_asterisk:
+ Cleanup additions to r415132. * Replaced a stray echo that
+ should've been a message call in safe_asterisk. This replaces a
+ conditional log message by a slightly different message. Please
+ update your log parsing scripts. * Made the $NOTIFY mail Subject
+ more verbose by adding the machine name and exitstatus. (Note
+ that a 'make install' still won't overwrite your old
+ safe_asterisk if it exists. See ASTERISK-21965.) ASTERISK-23492
+ #close ........ Merged revisions 415521 from
+ http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
+ revisions 415522 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 415523 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-06-09 03:50 +0000 [r415466] Corey Farrell <git@cfware.com>
+
+ * /, main/autoservice.c: autoservice: stop thread on graceful
+ shutdown This change adds thread shutdown to autoservice for
+ graceful shutdowns only. ast_register_cleanup is backported to
+ 1.8 to allow this. The logger callid is also released on shutdown
+ in 11+. ASTERISK-23827 #close Reported by: Corey Farrell Review:
+ https://reviewboard.asterisk.org/r/3594/ ........ Merged
+ revisions 415463 from
+ http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
+ revisions 415464 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 415465 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-06-08 18:12 +0000 [r415444] Matthew Jordan <mjordan@digium.com>
+
+ * include/asterisk/channel.h, bridges/bridge_native_rtp.c,
+ main/bridge_channel.c, main/channel.c, main/pbx.c, /,
+ main/framehook.c, main/bridge_after.c: bridges/bridge_native_rtp:
+ Reconfigure bridge on removal of framehook This patch is a re-do
+ of r414122. When r414122 was merged, a major problem with it was
+ uncovered. UNBRIDGE soft hangup flags have a catastrophic effect
+ on the pbx core if they leak out from the bridge layer: the
+ channel gets hung up. With the number of threads involved in a
+ blind transfer, and with the initial patch, it was likely that
+ this would occur. This caused a large number of test failures
+ This patch is nearly identical with the one proposed in r414122,
+ save for the following changes: - We explicitly clear the
+ UNBRIDGE flag when setting an after goto on a channel in a bridge
+ - Defensively, if we encounter an UNBRIDGE flag in the pbx core,
+ we handle it https://reviewboard.asterisk.org/r/3585/ ........
+ Merged revisions 415443 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-06-07 00:42 +0000 [r415428] Richard Mudgett <rmudgett@digium.com>
+
+ * include/asterisk/bridge.h, /: bridge.h: Remove redundant struct
+ ast_bridge_channel forward declaration. ........ Merged revisions
+ 415427 from http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-06-06 21:44 +0000 [r415411] Jonathan Rose <jrose@digium.com>
+
+ * include/asterisk/manager.h, main/config.c, main/manager.c, /,
+ channels/chan_sip.c, include/asterisk/config.h: chan_sip: Fix
+ order of variables specified in SIPNotify action Prior to this
+ patch, sequential variables would be ordered in reverse from the
+ order specified in the manager action. Review:
+ https://reviewboard.asterisk.org/r/3588/ ........ Merged
+ revisions 415359 from
+ http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
+ revisions 415390 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 415410 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-06-06 20:45 +0000 [r415358] Kevin Harwell <kharwell@digium.com>
+
+ * main/uri.c, tests/test_websocket_client.c: core uri: Custom uri
+ parsing error when no query parameters If using the custom URI
+ parsing code (not external uriparser lib) and there was no query
+ parameters the resulting pointer would be NULL and then an
+ attempt was made to subtract from it. The pointer is now set to a
+ valid value if there is no query parameter(s). Also, in the
+ 'ast_uri_make_host_with_port' function when setting the
+ terminator on the resulting string it was writing it one past the
+ end of allocated memory. It now writes the string terminator
+ appropriately.
+
+2014-06-06 19:13 +0000 [r415343] Kinsey Moore <kmoore@digium.com>
+
+ * /, res/res_pjsip_sdp_rtp.c: PJSIP: Remove premature write of raw
+ formats Currently, there are situations that can occur when using
+ chan_pjsip and certain dialplan applications (notably ChanSpy())
+ that can cause the channel to get no audio with scrolling
+ warnings about format mismatches. This is caused by a failure to
+ update translation paths on a mid-call native format update since
+ the raw formats have already been updated by res_pjsip_sdp_rtp.c
+ in set_caps(). Removing the premature raw format updates allows
+ the translation paths to be setup correctly and the raw read and
+ write formats with them. AFS-63 #close ........ Merged revisions
+ 415342 from http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-06-06 14:12 +0000 [r415319] George Joseph <george.joseph@fairview5.com>
+
+ * tests/test_astobj2.c, main/astobj2_private.h (added),
+ main/astobj2.c, main/astobj2_container_private.h (added),
+ main/astobj2_container.c (added), main/astobj2_hash.c (added),
+ main/astobj2_rbtree.c (added), /, include/asterisk/astobj2.h:
+ Split astobj2.c into more maintainable components. Split
+ astobj2.c into the following files to improve maintainability.
+ astobj2.c - object primitives, object primitive misc and
+ initialization code. astobj2_private.h - internal object
+ declarations needed by the containers. astobj2_container.c -
+ generic conainer and container misc code.
+ astobj2_container_hash.c - hash container specific code.
+ astobj2_container_rbtree.c - rbtree container specific code.
+ astobj2_container_private.h - generic container definitions and
+ rtti prototypes. https://reviewboard.asterisk.org/r/3576/
+ ........ Merged revisions 415317 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-06-06 12:49 +0000 [r415302] Rusty Newton <rnewton@digium.com>
+
+ * /, configs/cli_aliases.conf.sample: configs/cli_aliases.conf: Two
+ new aliases, plus enhancements for context names. Changed naming
+ of included alias templates to avoid confusion between version
+ names. For example, asterisk12 was for asterisk 1.2, so I changed
+ it to asterisk_1dot2, so that later we can use asterisk_12 for
+ Asterisk 12. Added alias for "features reload" to the template
+ for Asterisk 11 style syntax template, as features reload was
+ removed in 12, but you can still do "module reload features"
+ Added alias for "pjsip reload" to the friendly template. It is
+ shorter than "module reload res_pjsip.so" and if some are like
+ me; I constantly forget that reloading chan_pjsip doesn't parse
+ config. Remembering "pjsip reload" is just easier. ASTERISK-23654
+ #close ASTERISK-23654 #comment Fixed by adding two new aliases
+ and enhancements for context names. Review:
+ https://reviewboard.asterisk.org/r/3572/ ........ Merged
+ revisions 415301 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-06-05 19:04 +0000 [r415231-415288] Richard Mudgett <rmudgett@digium.com>
+
+ * main/config.c: config: Fix indentation and missing curlies in
+ config_text_file_load().
+
+ * main/config.c, /: config: Fix config files not reloading when
+ only an included file changes. The twisted logic determining if a
+ config file should be reloaded was mostly broken and disabled.
+ The incorrect test that ASTERISK-23383 fixed actually reenabled
+ the broken logic. The incorrect test was causing the timestamp to
+ always be cleared which caused config files with includes to
+ always be reloaded. * Made wildcard includes always cause a
+ reload. Determining if a file was deleted cannot be determined
+ without restructuring the cache to determine if any files are
+ missing from the last files actually loaded. Also without
+ refactoring config_text_file_load(), the glob loop couldn't check
+ more than one file for changes anyway. * Made remove the cache
+ entry if the file no longer exists when trying to get its
+ timestamp or it is no longer a regular file. This fixes the
+ corner case where the file was loaded, then deleted, then the
+ config reloaded, then the file restored with the same timestamp,
+ and then the config reloaded again. * Made remove the cache entry
+ include list when actually loading the file. This gets rid of any
+ stale includes the file had from the last time the file was
+ loaded. ASTERISK-23683 #close Reported by: tootai Review:
+ https://reviewboard.asterisk.org/r/3575/ ........ Merged
+ revisions 415225 from
+ http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
+ revisions 415229 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 415230 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-06-05 17:22 +0000 [r415223] Kevin Harwell <kharwell@digium.com>
+
+ * tests/test_uri.c (added), include/asterisk/http_websocket.h,
+ main/http.c, main/uri.c (added), tests/test_websocket_client.c
+ (added), res/res_http_websocket.c, include/asterisk/http.h,
+ include/asterisk/uri.h (added),
+ res/res_http_websocket.exports.in: res_http_websocket: Create a
+ websocket client Added a websocket server client in Asterisk.
+ Asterisk has a websocket server, but not a client. The ability to
+ have Asterisk be able to connect to a websocket server can
+ potentially be useful for future work (for instance this could
+ allow ARI to connect back to some external system, although more
+ work would be needed in order to incorporate that). Also a couple
+ of things to note - proxy connection support has not been
+ implemented and there is limited http response code handling
+ (basically, it is connect or not). Also added an initial new URI
+ handling mechanism to core. Internet type URI's are parsed into a
+ data structure that contains pointers to the various parts of the
+ URI. (closes issue ASTERISK-23742) Reported by: Kevin Harwell
+ Review: https://reviewboard.asterisk.org/r/3541/
+
+2014-06-05 14:49 +0000 [r415208] Matthew Jordan <mjordan@digium.com>
+
+ * /, apps/app_confbridge.c: app_confbridge: Allow muting of users
+ waiting to enter a ConfBridge Prior to this patch, users waiting
+ to enter a ConfBridge were not considered when muted via the CLI
+ or via AMI. Instead, a confusing message would be emitted stating
+ that the channel did not exist. This patch allows a user to be
+ muted when waiting to enter a ConfBridge conference. This is
+ equivalent to start when muted, only toggled via the CLI or AMI.
+ Review: https://reviewboard.asterisk.org/r/3582 #ASTERISK-23824
+ #close patches: rb3582.patch uploaded by tm1000 (License 6524)
+ ........ Merged revisions 415206 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 415207 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-06-05 11:59 +0000 [r415192] Kinsey Moore <kmoore@digium.com>
+
+ * /, channels/chan_pjsip.c: PJSIP: Send initial connected line
+ information This makes chan_pjsip send connected line information
+ when it is called so that connected line information is available
+ on the connected channel. (closes issue DPMA-442) Reported by:
+ John Bigelow Review: https://reviewboard.asterisk.org/r/3584/
+ ........ Merged revisions 415191 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-06-04 20:16 +0000 [r415173] Walter Doekes <walter+asterisk@wjd.nu>
+
+ * /, contrib/scripts/safe_asterisk: safe_asterisk: Cleanup and
+ debian compatibility. Cleans up the safe_asterisk script and adds
+ the ASTSAFE_FOREGROUND option that allows the debian asterisk
+ init script to capture the right pid. * Drop the vim #modeline
+ which wasn't used. Use test consistently without the odd
+ configure xno syntax. Double quote all paths. General cleanup. *
+ Don't output message()s to the console but only to TTY if set. *
+ Allow TTY to be "no" as well as empty (debian compatibility with
+ debian/patches/safe_asterisk-config). * Add option to export
+ ASTSAFE_FOREGROUND=1 from the init script that calls this to
+ disable backgrounding. Debian uses a similar method in
+ debian/patches/safe_asterisk-nobg). ASTERISK-23492 #close Review:
+ https://reviewboard.asterisk.org/r/3574/ ........ Merged
+ revisions 415132 from
+ http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
+ revisions 415171 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 415172 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-06-04 14:13 +0000 [r415116-415118] Matthew Jordan <mjordan@digium.com>
+
+ * /, channels/chan_pjsip.c: chan_pjsip: Add debug in RTP Engine
+ glue callback This patch adds some debug statements that aid with
+ determining why a direct media request may or may not be
+ initiated. ........ Merged revisions 415117 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+ * res/res_pjsip_session.c, /: res_pjsip_session: Add debug
+ statement for session refreshes This small patch adds a debug
+ level 3 statement indicating how a session refresh is being sent
+ - either as a re-INVITE or as an UPDATE - and where the session
+ refresh is going. ........ Merged revisions 415115 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-06-04 07:27 +0000 [r415080] Corey Farrell <git@cfware.com>
+
+ * /, apps/confbridge/include/confbridge.h, apps/app_confbridge.c:
+ app_confbridge: Correct verification of conference name length
+ Conference names were not checked for maximum length, allowing
+ unexpected behaviour. This change adds checking to ensure the
+ maximum length is not exceeded. The maximum length is also
+ changed from 32 to AST_MAX_EXTENSION. ASTERISK-23035 #close
+ Reported by: Iñaki Cívico Tested by: Iñaki Cívico Patches:
+ confbridge-enforce_max-1.8.patch uploaded by coreyfarrell
+ (license 5909) confbridge-enforce_max-11up.patch uploaded by
+ coreyfarrell (license 5909) ........ Merged revisions 415060 from
+ http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
+ revisions 415066 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 415078 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-06-03 07:36 +0000 [r415000] Walter Doekes <walter+asterisk@wjd.nu>
+
+ * /, funcs/func_odbc.c: func_odbc: Fix fixed size buffers fix
+ (r414968). The change that removed the fixed size buffers in
+ odbc-related code -- removing arbitrary column width limits --
+ was incomplete. This change adds: no segfault on writesql without
+ insertsql and return value checks after strdup. While I was in
+ the vicinity I cleaned up the linefeeds in the odbc function
+ descriptions, moved some code for clarity, removed some blobs and
+ noted (but didn't fix) that the 'odbc write ... exec' CLI command
+ doesn't behave as the dialplan equivalent when insertsql= is
+ used. ASTERISK-23582 #close Review:
+ https://reviewboard.asterisk.org/r/3579/ ........ Merged
+ revisions 414997 from
+ http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
+ revisions 414998 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 414999 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-06-01 15:32 +0000 [r414976] Joshua Colp <jcolp@digium.com>
+
+ * /, bridges/bridge_native_rtp.c: bridge_native_rtp: Take the
+ bridge type choice of both channels into account. The
+ bridge_native_rtp module currently uses the bridge result of the
+ first channel that joins a bridge as the ultimate result. This
+ means that if the first channel has direct media enabled but the
+ second does not a direct media bridge will still occur. This
+ change makes it so that both sides are taken into account. If
+ either side forbids the bridge or responds with a local bridge
+ result then either a generic or local bridge occurs.
+ ASTERISK-23541 #close Reported by: Justin E Review:
+ https://reviewboard.asterisk.org/r/3577/ ........ Merged
+ revisions 414975 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-05-30 14:53 +0000 [r414949] Kinsey Moore <kmoore@digium.com>
+
+ * res/res_pjsip_refer.c, /: PJSIP: Prevent crash on blind transfer
+ Blind transfers don't go too well with NULL channels which can
+ occur if the channel has already been transferred away. (closes
+ issue ASTERISK-23718) Reported by: Jonathan Rose ........ Merged
+ revisions 414948 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-05-30 12:42 +0000 [r414883-414935] Matthew Jordan <mjordan@digium.com>
+
+ * main/audiohook.c, CHANGES, res/ari/ari_model_validators.c,
+ res/ari/ari_model_validators.h, funcs/func_talkdetect.c (added),
+ include/asterisk/stasis_channels.h,
+ rest-api/api-docs/events.json, /, main/stasis_channels.c:
+ TALK_DETECT: A channel function that raises events when talking
+ is detected This patch adds a new channel function TALK_DETECT
+ that, when set on a channel, causes events indicating the
+ start/stop of talking on a channel to be emitted to both AMI and
+ ARI clients. The function allows setting both the silence
+ threshold (the length of silence after which we decide no one is
+ talking) as well as the talking threshold (the amount of energy
+ that counts as talking). Parameters can be updated on a channel
+ after talk detection has been enabled, and talk detection can be
+ removed at any time. The events raised by the function use a
+ nomenclature similar to existing AMI/ARI events. For AMI:
+ ChannelTalkingStart/ChannelTalkingStop For ARI:
+ ChannelTalkingStarted/ChannelTalkingFinished Review:
+ https://reviewboard.asterisk.org/r/3563/ #ASTERISK-23786 #close
+ Reported by: Matt Jordan ........ Merged revisions 414934 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+ * main/config.c, /: main/config.c: AMI action UpdateConfig EmptyCat
+ clears all categories When invoking UpdateConfig AMI action with
+ Action set to EmptyCat, Asterisk will make all categories empty
+ in the config but the one requested with a Cat variable. This is
+ due to a bug in ast_category_empty (main/config.c) that makes an
+ incorrect comparison for a category name. This patch corrects the
+ comparison such that only the requested category is cleared.
+ Review: https://reviewboard.asterisk.org/r/3573/ #ASTERISK-23803
+ #close Reported by: zvision patches: manager.c.diff uploaded by
+ zvision (License 5755) ........ Merged revisions 414880 from
+ http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
+ revisions 414881 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 414882 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-05-29 18:51 +0000 [r414861] Kinsey Moore <kmoore@digium.com>
+
+ * main/pbx.c, /: PBX: Prevent incorrect hint parsing Dynamic and
+ pattern matching hints should not be checked for their last known
+ state until they are instantiated by subscribers. (closes issue
+ AFS-56) Reported by: John Hardin Patch AFS-56-pbx.diff submitted
+ by Matt Jordan (license 6283) ........ Merged revisions 414813
+ from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........
+ Merged revisions 414859 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 414860 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-05-28 22:54 +0000 [r414798] Matthew Jordan <mjordan@digium.com>
+
+ * main/loader.c, include/asterisk/logger.h, res/res_config_curl.c,
+ cel/cel_odbc.c, res/res_config_odbc.c,
+ bridges/bridge_builtin_features.c, main/optional_api.c,
+ main/logger.c, main/config_options.c, cdr/cdr_odbc.c,
+ apps/app_mixmonitor.c, main/asterisk.c, res/res_odbc.c,
+ main/xmldoc.c, apps/app_voicemail.c, cel/cel_pgsql.c,
+ channels/chan_unistim.c, res/res_config_pgsql.c, main/pbx.c,
+ cdr/cdr_sqlite3_custom.c, res/res_fax.c, main/bridge.c,
+ apps/app_waitforsilence.c, cdr/cdr_adaptive_odbc.c,
+ res/parking/parking_applications.c, cdr/cdr_pgsql.c,
+ res/res_jabber.c: Logger/CLI/etc.: Fix some aesthetic issues;
+ reduce chatty verbose messages This patch addresses some
+ aesthetic issues in Asterisk. These are all just minor tweaks to
+ improve the look of the CLI when used in a variety of settings.
+ Specifically: * A number of chatty verbose messages were removed
+ or demoted to DEBUG messages. Verbose messages with a verbosity
+ level of 5 or higher were - if kept as verbose messages - demoted
+ to level 4. Several messages that were emitted at verbose level 3
+ were demoted to 4, as announcement of dialplan applications being
+ executed occur at level 3 (and so the effects of those
+ applications should generally be less). * Some verbose messages
+ that only appear when their respective 'debug' options are
+ enabled were bumped up to always be displayed. *
+ Prefix/timestamping of verbose messages were moved to the
+ verboser handlers. This was done to prevent duplication of
+ prefixes when the timestamp option (-T) is used with the CLI. *
+ Verbose magic is removed from messages before being emitted to
+ non-verboser handlers. This prevents the magic in multi-line
+ verbose messages (such as SIP debug traces or the output of
+ DumpChan) from being written to files. * _Slightly_ better
+ support for the "light background" option (-W) was added. This
+ includes using ast_term_quit in the output of XML documentation
+ help, as well as changing the "Asterisk Ready" prompt to bright
+ green on the default background (which stands a better chance of
+ being displayed properly than bright white). Review:
+ https://reviewboard.asterisk.org/r/3547/
+
+2014-05-28 20:53 +0000 [r414781] Rusty Newton <rnewton@digium.com>
+
+ * /, configs/pjsip.conf.sample: pjsip.conf: privkey_file should be
+ priv_key_file, mediaencryption=yes should be mediaencryption=sdes
+ privkey_file was missed in the snake case update. An example
+ included an invalid value for the mediaencryption option.
+ ........ Merged revisions 414780 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-05-28 17:46 +0000 [r414764-414766] Matthew Jordan <mjordan@digium.com>
+
+ * rest-api/api-docs/deviceStates.json,
+ rest-api/api-docs/endpoints.json,
+ rest-api/api-docs/mailboxes.json, rest-api/api-docs/events.json,
+ /, rest-api/api-docs/asterisk.json,
+ rest-api/api-docs/applications.json,
+ rest-api/api-docs/playbacks.json,
+ rest-api/api-docs/channels.json, rest-api/api-docs/sounds.json,
+ rest-api/resources.json, include/asterisk/manager.h,
+ rest-api/api-docs/bridges.json,
+ rest-api/api-docs/recordings.json: AMI/ARI: Update version
+ numbers Update the semantic versioning of ARI to 1.3.0 and AMI to
+ 2.3.0 to account for backwards compatible changes going from
+ 12.2.0 to 12.3.0. ........ Merged revisions 414765 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+ * contrib/ast-db-manage/cdr/env.py, /: ast-db-manage/cdr/env.py:
+ Don't fail if a config file can't be loaded When generating SQL
+ files via the repotools alembic_creator.py script, a
+ configuration object is used programatically with SQLAlechemy, as
+ opposed to a configuration file. This patch ignores failures to
+ interpret a config file, as ... there isn't one in this case.
+ ........ Merged revisions 414763 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-05-28 16:56 +0000 [r414748-414750] Richard Mudgett <rmudgett@digium.com>
+
+ * res/res_pjsip_session.c, include/asterisk/res_pjsip_session.h, /,
+ res/res_pjsip_t38.c: res_pjsip_session: Fix leaked video RTP
+ ports. Simply enabling PJSIP to negotiage a video codec (e.g.,
+ h264) would leak video RTP ports if the codec were not negotiated
+ by an incoming call. * Made add_sdp_streams() associate the
+ handler with the media stream if the handler handled the media
+ stream. Otherwise, when the ast_sip_session_media object was
+ destroyed it didn't know how to clean up the RTP resources. *
+ Fixed sdp_requires_deferral() associating the handler with the
+ media stream when deciding if the SDP processing needs to be
+ deferred for T.38. Like the leaked video RTP ports, the T.38
+ handler needs to clean up allocated resources from deciding if
+ SDP processing needs to be deffered. * Cleaned up some dead code
+ in handle_incoming_sdp() and sdp_requires_deferral().
+ ASTERISK-23721 #close Reported by: cervajs Review:
+ https://reviewboard.asterisk.org/r/3571/ ........ Merged
+ revisions 414749 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+ * /, CHANGES, apps/app_agent_pool.c: app_agent_pool: Return to
+ dialplan if the agent fails to ack the call. Improvements to the
+ agent pool functionality. * AgentRequest no longer hangs up the
+ caller if the agent fails to connect with the caller. It now
+ continues in the dialplan. * AgentRequest returns AGENT_STATUS
+ set to NOT_CONNECTED if the agent failed to connect with the
+ call. Most likely because the agent did not acknowledge the call
+ in time or got disconnected. * The agent alerting play file
+ configured by the agent.conf custom_beep option can now be
+ disabled by setting the option to an empty string. The agent is
+ effectively alerted to a call presence when MOH stops. * Fixed
+ bridge reference leak when the agent connects with a caller.
+ ASTERISK-23499 #close Reported by: Matt Jordan Review:
+ https://reviewboard.asterisk.org/r/3551/ ........ Merged
+ revisions 414747 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-05-28 11:37 +0000 [r414696] Joshua Colp <jcolp@digium.com>
+
+ * res/res_config_odbc.c, /, funcs/func_odbc.c: res_config_odbc: Use
+ dynamically sized buffers to store row data so values do not get
+ truncated. ASTERISK-23582 #close ASTERISk-23582 #comment Reported
+ by: Walter Doekes Review:
+ https://reviewboard.asterisk.org/r/3557/ ........ Merged
+ revisions 414693 from
+ http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
+ revisions 414694 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 414695 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-05-28 09:43 +0000 [r414567-414679] Walter Doekes <walter+asterisk@wjd.nu>
+
+ * /, channels/chan_unistim.c: chan_unistim: Unlock mutex in rare
+ OOM condition. #ASTERISK-23792 #close Reported by: Peter Whisker
+ Review: https://reviewboard.asterisk.org/r/3567/ ........ Merged
+ revisions 414677 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 414678 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+ * /, channels/chan_sip.c: chan_sip: Start session timer at 200, not
+ at INVITE. Asterisk started counting the session timer at INVITE
+ while the other end correctly started at 200. This meant that for
+ short session-expiries (90 seconds) combined with long ringing
+ times (e.g. 30 seconds), asterisk would wrongly assume that the
+ timer was hit before the other end thought it was time to send a
+ session refresh. This resulted in prematurely ended calls. This
+ changes the session timer to start counting first at 200 like RFC
+ says it should. (Also removed a few excess NULL checks that would
+ never hit, because if they did, asterisk would have crashed
+ already.) ASTERISK-22551 #close Reported by: i2045 Review:
+ https://reviewboard.asterisk.org/r/3562/ ........ Merged
+ revisions 414620 from
+ http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
+ revisions 414628 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 414636 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+ * res/res_config_odbc.c, /: res_config_odbc: Fix old and new
+ ast_string_field memory leaks. The ODBC realtime driver uses ^NN
+ parameter encoding to cope with the special meaning of the
+ semi-colon. A semi-colon in a field is interpreted as if the key
+ was supplied twice, something which isn't otherwise possible with
+ fixed database columns. E.g. allow=alaw;ulaw is parsed as
+ allow=alaw and allow=ulaw. A literal semi-colon is rewritten to
+ ^3B when stored in the database. The module uses a stringfield to
+ efficiently store the encoded parameters. However, this
+ stringfield wasn't always freed in some off-nominal cases. Commit
+ r413241 fixed initialization so the encoding for INSERT and
+ DELETE queries wouldn't crash. (Only SELECTs and UPDATEs worked
+ apparently.) But that commit forgot the frees. This change cleans
+ that up. Review: https://reviewboard.asterisk.org/r/3555/
+ ........ Merged revisions 414564 from
+ http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
+ revisions 414565 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 414566 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-05-25 02:37 +0000 [r414543] Matthew Jordan <mjordan@digium.com>
+
+ * /, main/core_unreal.c: core_unreal: Prevent double free of
+ core_unreal pvt When a channel is destroyed (such as via
+ ast_channel_release in off nominal paths in core_unreal), it will
+ attempt to free (via ast_free) the channel tech pvt. This is
+ problematic for a few reasons: 1. The channel tech pvt is an ao2
+ object in core_unreal. Free'ing the pvt directly is no good. 2.
+ The channel tech pvt's reference count is dropped just prior to
+ calling ast_channel_release, resulting in the pvt's destruction.
+ Hence, the channel destructor is free'ing an invalid pointer.
+ This patch keeps the dropping of the reference count, but sets
+ the pvt to NULL on the channel prior to releasing it. This models
+ what would occur if the channel was hung up directly. ........
+ Merged revisions 414542 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-05-23 17:36 +0000 [r414529] Matthew Jordan <mjordan@digium.com>
+
+ * tests/test_cel.c, /: test_cel: Fix unit tests broken due to event
+ def changes from res_corosync This patch instructs test_cel to
+ skip any IE types it doesn't care about. The addition of the raw
+ and bitfield types caused the tests to fail. ........ Merged
+ revisions 414528 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-05-23 14:36 +0000 [r414475] Kinsey Moore <kmoore@digium.com>
+
+ * main/event.c, /: Fix signed/unsigned build warnings ........
+ Merged revisions 414474 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-05-22 16:19 +0000 [r414417] Richard Mudgett <rmudgett@digium.com>
+
+ * /, apps/app_meetme.c: app_meetme: Don't interrupt MOH for
+ waitmarked users. Occasionally, when the last marked user leaves
+ the conference, waitmarked users don't get MOH if MOH is supposed
+ to be played while a waitmarked user is waiting for another
+ marked user. * Made not interrupt MOH when the user is a
+ waitmarked user. The waitmarked user doesn't need to hear any
+ leave announcements from the conference as the user would have
+ already heard different leave announcements if they were enabled.
+ Apparently DAHDI occasionally sends unending non-silent streams
+ to these users or a normal user still in the conference has
+ continuous high background noise. These non-silent streams cause
+ MOH to be suspended while the never ending "announcement" is
+ played. Issue caused by ASTERISK-13680. AST-1349 #close Reported
+ by: Tyler Stewart Review:
+ https://reviewboard.asterisk.org/r/3543/ ........ Merged
+ revisions 414401 from
+ http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
+ revisions 414402 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 414404 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-05-22 16:09 +0000 [r414406] Scott Griepentrog <sgriepentrog@digium.com>
+
+ * rest-api/api-docs/events.json, /, res/stasis/app.c,
+ res/ari/resource_events.c, include/asterisk/stasis_app.h,
+ include/asterisk/stasis.h, apps/app_userevent.c,
+ res/ari/resource_events.h, res/ari/ari_model_validators.c,
+ CHANGES, main/stasis.c, res/ari/ari_model_validators.h,
+ include/asterisk/stasis_channels.h, res/res_ari_events.c,
+ main/stasis_channels.c, res/res_stasis.c,
+ main/manager_channels.c, main/stasis_endpoints.c: ARI: Add
+ ability to raise arbitrary User Events User events can now be
+ generated from ARI. Events can be signalled with arbitrary json
+ variables, and include one or more of channel, bridge, or
+ endpoint snapshots. An application must be specified which will
+ receive the event message (other applications can subscribe to
+ it). The message will also be delivered via AMI provided a
+ channel is attached. Dialplan generated user event messages are
+ still transmitted via the channel, and will only be received by a
+ stasis application they are attached to or if the channel is
+ subscribed to. This change also introduces the multi object blob
+ mechanism used to send multiple snapshot types in a single
+ message. The dialplan app UserEvent was also changed to use multi
+ object blob, and a new stasis message type created to handle
+ them. ASTERISK-22697 #close Review:
+ https://reviewboard.asterisk.org/r/3494/ ........ Merged
+ revisions 414405 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-05-22 15:52 +0000 [r414403] Jonathan Rose <jrose@digium.com>
+
+ * include/asterisk/bridge.h, res/parking/parking_bridge_features.c,
+ channels/chan_mgcp.c, res/res_pjsip_refer.c,
+ channels/chan_dahdi.c, channels/sig_analog.c, /,
+ channels/chan_sip.c, main/parking.c, main/bridge.c,
+ main/bridge_basic.c, res/parking/parking_applications.c,
+ include/asterisk/parking.h: res_pjsip_refer: Fix bugs involving
+ Parking/PJSIP/transfers PJSIP would never send the final 200
+ Notify for a blind transfer when transferring to parking. This
+ patch fixes that. In addition, it fixes a reference leak when
+ performing blind transfers to non-bridging extensions. Review:
+ https://reviewboard.asterisk.org/r/3485/ ........ Merged
+ revisions 414400 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-05-22 14:02 +0000 [r414331-414348] Matthew Jordan <mjordan@digium.com>
+
+ * /, UPGRADE.txt: UPGRADE: Add note for REF_DEBUG flag ........
+ Merged revisions 414345 from
+ http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
+ revisions 414346 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 414347 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+ * res/res_corosync.c, include/asterisk/stasis.h, main/app.c,
+ main/devicestate.c, main/event.c, main/stasis.c,
+ include/asterisk/devicestate.h, include/asterisk/event.h,
+ main/stasis_message.c, /, include/asterisk/event_defs.h:
+ res_corosync: Update module to work with Stasis (and compile)
+ This patch fixes res_corosync such that it works with Asterisk
+ 12. This restores the functionality that was present in previous
+ versions of Asterisk, and ensures compatibility with those
+ versions by restoring the binary message format needed to pass
+ information from/to them. The following changes were made in the
+ core to support this: * The event system has been partially
+ restored. All event definition and event types in this patch were
+ pulled from Asterisk 11. Previously, we had hoped that this
+ information would live in res_corosync; however, the approach in
+ this patch seems to be better for a few reasons: (1)
+ Theoretically, ast_events can be used by any module as a binary
+ representation of a Stasis message. Given the structure of an
+ ast_event object, that information has to live in the core to be
+ used universally. For example, defining the payload of a device
+ state ast_event in res_corosync could result in an incompatible
+ device state representation in another module. (2) Much of this
+ representation already lived in the core, and was not easily
+ extensible. (3) The code already existed. :-) * Stasis message
+ types now have a message formatter that converts their payload to
+ an ast_event object. * Stasis message forwarders now handle
+ forwarding to themselves. Previously this would result in an
+ infinite recursive call. Now, this simply creates a new
+ forwarding object with no forwards set up (as it is the thing it
+ is forwarding to). This is advantageous for res_corosync, as
+ returning NULL would also imply an unrecoverable error. Returning
+ a subscription in this case allows for easier handling of message
+ types that are published directly to an aggregate topic that has
+ forwarders. Review: https://reviewboard.asterisk.org/r/3486/
+ ASTERISK-22912 #close ASTERISK-22372 #close ........ Merged
+ revisions 414330 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-05-21 22:24 +0000 [r414297] Richard Mudgett <rmudgett@digium.com>
+
+ * /, main/core_unreal.c: core_unreal: Only block media frames when
+ a generator is on both ends of an unreal channel. The fix for
+ ASTERISK-12292 was a bit too aggressive. You could have
+ generators pointed at each other on local channels but need to
+ get other kinds of frames such as DTMF or CONNECTED_LINE frames
+ accross. ........ Merged revisions 414269 from
+ http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
+ revisions 414270 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 414272 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-05-21 19:08 +0000 [r414217] Scott Griepentrog <sgriepentrog@digium.com>
+
+ * /, funcs/func_strings.c: pbx.c: prevent potential crash from
+ recursive replace() Recurisve usage of replace() resulted in
+ corruption of the temporary string storage and potential crash.
+ By changing the string to be allocated separtely per instance,
+ this is eliminated. ASTERISK-23650 #comment Reported by: Roel van
+ Meer ASTERISK-23650 #close Review:
+ https://reviewboard.asterisk.org/r/3539/ ........ Merged
+ revisions 414214 from
+ http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
+ revisions 414215 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 414216 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-05-19 19:52 +0000 [r414196] Paul Belanger <paul.belanger@polybeacon.com>
+
+ * res/res_stasis_answer.c, /: Replace __ast_answer with
+ ast_raw_answer in app_control_answer While load testing an ARI
+ application, I noticed asterisk was returning HTTP 500 internal
+ server errors on channels/:id/answer. After talking to
+ #asterisk-dev, the issue appeared to be a lack of media flowing
+ after __ast_answer() was called. So now, we call ast_raw_answer
+ instead and no longer wait for media. ASTERISK-23758 #close
+ Review: https://reviewboard.asterisk.org/r/3549/ ........ Merged
+ revisions 414195 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-05-19 01:10 +0000 [r414123-414138] Matthew Jordan <mjordan@digium.com>
+
+ * include/asterisk/channel.h, bridges/bridge_native_rtp.c,
+ main/bridge_channel.c, res/res_pjsip_refer.c,
+ res/res_pjsip_session.c, main/channel.c, /, main/framehook.c:
+ Undo r414123 The Test Suite caught a few problems, undoing until
+ those are resolved
+
+ * include/asterisk/channel.h, bridges/bridge_native_rtp.c,
+ main/bridge_channel.c, res/res_pjsip_session.c, main/channel.c,
+ /, main/framehook.c: bridge_native_rtp/bridge_channel: Fix direct
+ media issues due to frame hook This patch fixes issues with
+ direct media bridges that occur after a blind transfer. These
+ issues were caught by the (currently failing)
+ pjsip/transfers/blind_transfer/caller_direct_media test. The test
+ currently fails primarily for two reasons: (1) When Bob and
+ Charlie (the transfer target and the transfer destination) enter
+ a bridge together, the framehook remains on the transfer target
+ channel until both channels are in the bridge. As it consumes
+ voice frames, the initial bridge type is a simple bridge. The
+ framehook is removed when both channels are in the bridge;
+ however, this does not currently cause the bridging framework to
+ re-evaluate the bridge. This patch adds a AST_SOFTHANGUP_UNBRIDGE
+ poke to the transfer target channel when a framehook is removed
+ so the bridge can re-evaluate itself. (2) When a channel leaves a
+ native RTP bridge, it may be leaving due to being hung up.
+ Sending a re-INVITE to a channel that is about to be hung up is
+ not nice - in fact, there's a good chance we'll send the BYE
+ request before the channel has had a chance to send back a 200
+ OK. To be somewhat nicer, this patch adds a function to channel.h
+ that allows the bridging framework to query for exactly why a
+ channel is leaving a bridge via the channel's soft hangup flags.
+ This allows it to only send the re-INVITE if there's a chance the
+ channel will survive the native bridging experience. Review:
+ https://reviewboard.asterisk.org/r/3535/ ........ Merged
+ revisions 414122 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-05-16 20:06 +0000 [r413994-414070] Richard Mudgett <rmudgett@digium.com>
+
+ * /, channels/chan_dahdi.c: chan_dahdi: Fix analog dialtone
+ detection. * Check if waitingfordt (waitfordialtone) is enabled
+ in dahdi_read() to allow the DSP to operate early enough to
+ detect dialtone. * Made use the correct variable in
+ my_check_waitingfordt(). ASTERISK-23709 #close Reported by: Steve
+ Davies Patches: dialtone_detect_fix (license #5012) patch
+ uploaded by Steve Davies Review:
+ https://reviewboard.asterisk.org/r/3534/ ........ Merged
+ revisions 414067 from
+ http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
+ revisions 414068 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 414069 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+ * channels/sig_pri.c, /: sig_pri.c: Pull the pri_dchannel()
+ PRI_EVENT_RING case into its own function. * Populate the
+ CALLERID(ani2) value (and the special CALLINGANI2 channel
+ variable) with the ANI2 value in addition to the PRI specific
+ ANI2 channel variable. * Made complete snapshot staging with the
+ channel lock held. All channel snapshots need to be done while
+ the channel lock is held. ........ Merged revisions 414050 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 414051 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+ * /, apps/app_meetme.c: app_meetme: Fix overwrite of DAHDI
+ conference data structure. Starting a conference recording using
+ the admin menu overwrites the DAHDI conference data structure
+ used to modify the admin user's conference mute mode. * Made no
+ longer pass the user's DAHDI conference data structure into the
+ menu functions. The menu now uses its own DAHDI conference data
+ structure to start the recording channel. * Moved the unlock
+ conf->playlock to before playing the conf-full message. No sense
+ keeping the lock while that prompt is playing. The user is never
+ going to get into the conference at that point. ........ Merged
+ revisions 413991 from
+ http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
+ revisions 413992 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 413993 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-05-14 15:41 +0000 [r413897] Walter Doekes <walter+asterisk@wjd.nu>
+
+ * /, res/res_musiconhold.c: res_musiconhold: Minor cleanup. Fix a
+ few free()'s that should be ast_free()'s. Reverted an old
+ workaround that isn't necessary. Reorder a tiny bit of code.
+ Remove a bit of commented-out code. Review:
+ https://reviewboard.asterisk.org/r/3536/ ........ Merged
+ revisions 413894 from
+ http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
+ revisions 413895 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 413896 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-05-13 18:09 +0000 [r413878] Jonathan Rose <jrose@digium.com>
+
+ * main/netsock2.c, /, channels/chan_sip.c,
+ include/asterisk/netsock2.h: chan_sip: Add TLS and SRTP status to
+ CLI command 'sip show channel' ASTERISK-23564 #close Reported by:
+ Patrick Laimbock Review: https://reviewboard.asterisk.org/r/3474/
+ ........ Merged revisions 413876 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 413877 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-05-13 13:53 +0000 [r413790-413793] Walter Doekes <walter+asterisk@wjd.nu>
+
+ * res/res_format_attr_h264.c, /: h264: Fix H264 SDP payload format.
+ https://tools.ietf.org/html/rfc3984#section-8.1 says
+ profile-level-id takes 3 bytes in base16 (6 hex digits). This
+ fixes video setup in certain cases. ASTERISK-23664 #close
+ ASTERISK-23664 #comment Patch r3530.patch uploaded by Guillaume
+ Maudoux. Review: https://reviewboard.asterisk.org/r/3530/
+ ........ Merged revisions 413791 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 413792 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+ * /, main/rtp_engine.c: rtp: Fix case typo in H263+ mime.
+ http://tools.ietf.org/html/rfc3555#section-4.2.6 says the
+ canonical mime subtype is "H263-1998", not "h263-1998". Original
+ code was added in r183101 on 2009-03-19 02:26:50 +0100. This
+ fixes issues with Polycom phones. ASTERISK-23665 #close
+ ASTERISK-23665 #comment Patch r3529.patch uploaded by Guillaume
+ Maudoux, backported by me. Review:
+ https://reviewboard.asterisk.org/r/3529/ ........ Merged
+ revisions 413787 from
+ http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
+ revisions 413788 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 413789 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-05-13 00:35 +0000 [r413770-413772] Richard Mudgett <rmudgett@digium.com>
+
+ * configure.ac, channels/sig_pri.c, /, configure,
+ include/asterisk/autoconfig.h.in: chan_dahdi/sig_pri: Prevent
+ unnecessary PROGRESS events when overlap dialing is enabled. When
+ overlap dialing is enabled, the lack of inband audio available
+ information in the SETUP_ACKNOWLEDGE events causes an
+ interoperability problem with SIP. sig_pri doesn't know if there
+ is dialtone present when a SETUP_ACKNOWLEDGE is received so it
+ assumes it is there and posts an AST_CONTROL_PROGRESS frame. The
+ SIP channel driver then sends out a 183 Session Progress and
+ blocks the desired 180 Ringing message when the ALERTING message
+ comes in. * Made the configure script detect if the installed
+ version of libpri supports the SETUP_ACKNOWLEDGE enhancements. *
+ Using the new API, made generate an AST_CONTROL_PROGRESS frame on
+ an incoming SETUP_ACKNOWLEDGE message when the message indicates
+ inband audio is present instead of assuming that dialtone is
+ present. * Using the new API, made SETUP_ACKNOWLEDGE send out an
+ inband audio available indication only if dialtone is expected.
+ The change also makes the fallback behaviour of sending the
+ PROGRESS message better by sending it only if dialtone is
+ expected. * Changed receiving a PROCEEDING message to not
+ generate an AST_CONTROL_PROGRESS frame if the progress indication
+ ie indicates non-end-to-end-ISDN. This helps interoperability
+ with SIP. * Changed sending a PROCEEDING message in response to
+ an AST_CONTROL_PROCEEDING frame to not indicate inband audio
+ available. It was silly to do so anyway because the channel
+ driver doesn't know if inband audio is even available. This helps
+ interoperability with SIP. This patch and a corresponding change
+ in libpri work together to allow Asterisk to control the inband
+ audio available progress indication ie on the SETUP_ACKNOWLEDGE
+ message when dialtone is present. AST-1338 #close Reported by:
+ Tyler Stewart Review: https://reviewboard.asterisk.org/r/3521/
+ ........ Merged revisions 413714 from
+ http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
+ revisions 413765 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 413771 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+ * /, channels/sig_pri.c: Fix compiler warning from GCC 4.10 fixup.
+ ........ Merged revisions 413766 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-05-12 22:33 +0000 [r413713] Jonathan Rose <jrose@digium.com>
+
+ * apps/app_chanspy.c, /: app_chanspy: Fix a test that was failing
+ on account of r413551 ASTERISK-23381 #close ASTERISK-23381
+ #comment Reported by: Robert Moss Review:
+ https://reviewboard.asterisk.org/r/3505/ ........ Merged
+ revisions 413710 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 413712 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-05-11 02:09 +0000 [r413651-413682] Joshua Colp <jcolp@digium.com>
+
+ * main/bridge_basic.c, include/asterisk/channel.h,
+ bridges/bridge_native_rtp.c, include/asterisk/framehook.h,
+ main/channel.c, /, main/framehook.c: framehooks: Add callback for
+ determining if a hook is consuming frames of a specific type. In
+ the past framehooks have had no capability to determine what
+ frame types a hook is actually interested in consuming. This has
+ meant that code has had to assume they want all frames, thus
+ preventing native bridging. This change adds a callback which
+ allows a framehook to be queried for whether it is consuming a
+ frame of a specific type. The native RTP bridging module has also
+ been updated to take advantange of this, allowing native bridging
+ to occur when previously it would not. ASTERISK-23497 #comment
+ Reported by: Etienne Lessard ASTERISK-23497 #close Review:
+ https://reviewboard.asterisk.org/r/3522/ ........ Merged
+ revisions 413681 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+ * include/asterisk/channel.h, bridges/bridge_native_rtp.c,
+ include/asterisk/framehook.h, main/channel.c, /,
+ main/framehook.c, main/bridge_basic.c: Undoing framehook support.
+ Issues were uncovered by Bamboo.
+
+ * /, main/framehook.c, main/bridge_basic.c,
+ include/asterisk/channel.h, bridges/bridge_native_rtp.c,
+ include/asterisk/framehook.h, main/channel.c: framehooks: Add
+ callback for determining if a hook is consuming frames of a
+ specific type. In the past framehooks have had no capability to
+ determine what frame types a hook is actually interested in
+ consuming. This has meant that code has had to assume they want
+ all frames, thus preventing native bridging. This change adds a
+ callback which allows a framehook to be queried for whether it is
+ consuming a frame of a specific type. The native RTP bridging
+ module has also been updated to take advantange of this, allowing
+ native bridging to occur when previously it would not.
+ ASTERISK-23497 #comment Reported by: Etienne Lessard
+ ASTERISK-23497 #close Review:
+ https://reviewboard.asterisk.org/r/3522/ ........ Merged
+ revisions 413650 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-05-09 23:18 +0000 [r413589-413599] Kinsey Moore <kmoore@digium.com>
+
+ * /, funcs/func_env.c: Fix 32bit build for func_env ........ Merged
+ revisions 413592 from
+ http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
+ revisions 413595 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 413597 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+ * apps/app_festival.c, pbx/dundi-parser.c, apps/app_getcpeid.c,
+ main/netsock.c, funcs/func_channel.c, main/audiohook.c,
+ pbx/pbx_config.c, res/res_pjsip_registrar.c, main/xmldoc.c,
+ channels/iax2/firmware.c, apps/app_voicemail.c, main/format.c,
+ cel/cel_pgsql.c, main/rtp_engine.c, main/parking.c,
+ main/bridge.c, res/res_jabber.c, res/res_http_websocket.c,
+ main/config.c, res/res_format_attr_opus.c, main/loader.c,
+ res/parking/parking_bridge.c, main/cdr.c, main/manager.c,
+ include/asterisk/astobj.h, main/bucket.c, apps/app_dumpchan.c,
+ main/app.c, res/res_pjsip/config_transport.c,
+ res/res_pjsip_refer.c, channels/chan_mgcp.c,
+ res/res_rtp_asterisk.c, main/slinfactory.c, main/core_unreal.c,
+ res/res_pjsip_sdp_rtp.c, res/res_crypto.c, main/acl.c,
+ channels/sig_pri.c, res/res_monitor.c, res/res_srtp.c,
+ main/data.c, res/res_corosync.c, channels/sip/config_parser.c,
+ res/res_fax_spandsp.c, apps/app_stack.c, main/asterisk.c,
+ main/udptl.c, res/res_sorcery_config.c, main/security_events.c,
+ res/res_timing_dahdi.c, res/res_pjsip_t38.c,
+ res/res_musiconhold.c, main/taskprocessor.c,
+ res/res_format_attr_h263.c, res/res_xmpp.c, res/res_pktccops.c,
+ funcs/func_hangupcause.c, channels/chan_phone.c,
+ main/manager_bridges.c, cel/cel_odbc.c, channels/chan_skinny.c,
+ channels/chan_motif.c, res/res_agi.c, main/logger.c,
+ funcs/func_srv.c, channels/chan_alsa.c, apps/app_confbridge.c,
+ res/res_pjsip_pubsub.c, channels/sip/include/sip.h, main/sched.c,
+ apps/app_adsiprog.c, main/pbx.c, channels/chan_sip.c,
+ res/res_fax.c, main/aoc.c, res/res_calendar_ews.c,
+ res/parking/parking_bridge_features.c, channels/iax2/parser.c,
+ main/callerid.c, main/file.c,
+ res/res_pjsip/pjsip_configuration.c, main/adsi.c,
+ main/config_options.c, pbx/pbx_dundi.c, funcs/func_iconv.c,
+ main/bridge_channel.c, res/res_odbc.c, channels/chan_pjsip.c,
+ res/parking/parking_manager.c, res/res_calendar.c, /,
+ funcs/func_sysinfo.c, main/utils.c, cdr/cdr_adaptive_odbc.c,
+ res/res_calendar_caldav.c, res/res_stasis_snoop.c,
+ res/res_format_attr_h264.c, main/channel.c, res/ael/pval.c,
+ res/res_ari_model.c, channels/chan_dahdi.c,
+ channels/sig_analog.c, funcs/func_frame_trace.c,
+ res/res_format_attr_silk.c, main/manager_channels.c,
+ apps/app_dial.c, res/res_calendar_icalendar.c, main/translate.c,
+ apps/app_queue.c, channels/chan_jingle.c, res/res_stun_monitor.c,
+ main/abstract_jb.c, res/res_stasis_recording.c, apps/app_sms.c,
+ main/event.c, apps/app_verbose.c, main/dsp.c,
+ channels/chan_unistim.c, main/frame.c, res/res_stasis_playback.c,
+ main/ccss.c, funcs/func_env.c, main/devicestate.c,
+ bridges/bridge_softmix.c, channels/chan_gtalk.c,
+ channels/chan_iax2.c, main/enum.c, main/cli.c,
+ res/res_format_attr_celt.c, apps/confbridge/conf_config_parser.c,
+ main/io.c, channels/pjsip/dialplan_functions.c,
+ res/res_config_odbc.c, res/res_pjsip/location.c,
+ res/res_pjsip_outbound_registration.c, formats/format_pcm.c,
+ apps/app_minivm.c, main/stdtime/localtime.c, main/stun.c: Allow
+ Asterisk to compile under GCC 4.10 This resolves a large number
+ of compiler warnings from GCC 4.10 which cause the build to fail
+ under dev mode. The vast majority are signed/unsigned mismatches
+ in printf-style format strings. ........ Merged revisions 413586
+ from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........
+ Merged revisions 413587 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 413588 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-05-09 18:15 +0000 [r413572] Richard Mudgett <rmudgett@digium.com>
+
+ * main/http.c: http.c: Remove dead code.
+
+2014-05-09 17:03 +0000 [r413557] Jonathan Rose <jrose@digium.com>
+
+ * apps/app_chanspy.c, /: app_chanspy: Fix a bug where Barge mode
+ could fail If the barge audiohook was attached prior to the spyee
+ and its peer actually being bridged, the audiohook would not be
+ applied and the connected peer would not be able to hear audio
+ from the spy when the spy is in barge mode. (closes issue
+ ASTERISK-23381) Reported by: Robert Moss Review:
+ https://reviewboard.asterisk.org/r/3505/ ........ Merged
+ revisions 413551 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 413556 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-05-08 00:36 +0000 [r413488] Joshua Colp <jcolp@digium.com>
+
+ * apps/app_queue.c, main/manager.c, /: app_queue: Extend
+ documentation for various Manager actions and events. ........
+ Merged revisions 413485 from
+ http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
+ revisions 413486 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 413487 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-05-07 21:58 +0000 [r413469] Mark Michelson <mmichelson@digium.com>
+
+ * funcs/func_presencestate.c: Ensure that presence state is decoded
+ properly on Asterisk startup. The CustomPresence provider
+ callback will automatically base64 decode stored data if the 'e'
+ option was present when the state was set. However, since the
+ provider callback was bypassed on Asterisk startup, encoded
+ presence subtypes and messages were being sent instead. This fix
+ makes it so the provider callback is always used when providing
+ presence state updates.
+
+2014-05-07 20:59 +0000 [r413453-413455] Richard Mudgett <rmudgett@digium.com>
+
+ * apps/app_confbridge.c, /: app_confbridge: Fixed "CBAnn" channels
+ not going away. Fixed a ref leak in conf_handle_talker_cb()
+ everytime the conference bridge was found to report a channel's
+ talker status change. The resulting leak caused the "CBAnn"
+ channels and the conference bridge to never be destroyed. Thanks
+ to Richard Kenner on the asterisk-user's list for locating the
+ problem. Reported by: Richard Kenner ........ Merged revisions
+ 413454 from http://svn.asterisk.org/svn/asterisk/branches/12
+
+ * apps/app_confbridge.c, /: app_confbridge: Fix ref leak in CLI
+ "confbridge kick" command. Fixed ref leak in the CLI "confbridge
+ kick" command when the channel to be kicked was not in the
+ conference. ........ Merged revisions 413451 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 413452 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-05-07 17:56 +0000 [r413307-413399] Mark Michelson <mmichelson@digium.com>
+
+ * res/res_config_odbc.c, /: Fix encoding of custom prepare extra
+ data. Patches: res_config_odbc-take2.patch by John Hardin
+ (License #6512) ........ Merged revisions 413396 from
+ http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
+ revisions 413397 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 413398 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+ * res/res_pjsip/presence_xml.c, /,
+ res/res_pjsip_pidf_digium_body_supplement.c: Improve XML
+ sanitization in NOTIFYs, especially for presence subtypes and
+ messages. Embedded carriage return line feed combinations may
+ appear in presence subtypes and messages since they may be
+ derived from user input in an instant messenger client. As such,
+ they need to be properly escaped so that XML parsers do not vomit
+ when the messages are received. ........ Merged revisions 413372
+ from http://svn.asterisk.org/svn/asterisk/branches/12
+
+ * res/res_pjsip_registrar.c, /: Check for an act on failures to
+ update contacts during registration. There was an underlying
+ issue in a realtime backend where database updates would fail.
+ Since we were not checking for failure, we would end up in a
+ strange state where the old database entry was still present but
+ Asterisk thought that it had been updated. Now when an entry
+ fails to update, we print a warning and delete the old contact
+ from sorcery so there is no mismatch between foreground and
+ backend state. Patches: res_pjsip_registrar.patch by John Hardin
+ (License #6512) ........ Merged revisions 413358 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+ * res/res_config_odbc.c, /: Ensure that all parts of SQL UPDATEs
+ and DELETEs are encoded. Patches: res_config_odbc.patch by John
+ Hardin (License #6512) ........ Merged revisions 413304 from
+ http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
+ revisions 413305 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 413306 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-05-02 20:28 +0000 [r413227-413263] Mark Michelson <mmichelson@digium.com>
+
+ * /, res/res_config_odbc.c: Prevent crashes in res_config_odbc due
+ to uninitialized string fields. Patches: odbc-crash.patch by John
+ Hardin (License #6512) ........ Merged revisions 413241 from
+ http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
+ revisions 413251 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 413258 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+ * res/res_config_pgsql.c, /: Return the number of rows affected by
+ a SQL insert, rather than an object ID. The realtime API
+ specifies that the store callback is supposed to return the
+ number of rows affected. res_config_pgsql was instead returning
+ an Oid cast as an int, which during any nominal execution would
+ be cast to 0. Returning 0 when more than 0 rows were inserted
+ causes problems to the function's callers. To give an idea of how
+ strange code can be, this is the necessary code change to fix a
+ device state issue reported against chan_pjsip in Asterisk 12+.
+ The issue was that the registrar would attempt to insert contacts
+ into the database. Because of the 0 return from res_config_pgsql,
+ the registrar would think that the contact was not successfully
+ inserted, even though it actually was. As such, even though the
+ contact was query-able and it was possible to call the endpoint,
+ Asterisk would "think" the endpoint was unregistered, meaning it
+ would report the device state as UNAVAILABLE instead of
+ NOT_INUSE. The necessary fix applies to all versions of Asterisk,
+ so even though the bug reported only applies to Asterisk 12+, the
+ code correction is being inserted into 1.8+. Closes issue
+ ASTERISK-23707 Reported by Mark Michelson ........ Merged
+ revisions 413224 from
+ http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
+ revisions 413225 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 413226 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-05-02 16:39 +0000 [r413211] Richard Mudgett <rmudgett@digium.com>
+
+ * UPGRADE.txt, res/res_pjsip_refer.c, /, channels/chan_sip.c:
+ res_pjsip_refer: Add Referred-By header on INVITE for blind
+ transfers. Per rfc3892, the Referred-By header in a REFER must be
+ copied into the referenced request (IE. The outgoing INVITE to
+ the transfer target). * Automatically put the Referred-By header
+ in the outgoing INVITE message if the SIPREFERREDBYHDR channel
+ variable is defined with a value. * Made
+ chan_sip.c:get_refer_info() set SIPREFERREDBYHDR for inheritance
+ so chan_pjsip has a better chance to interoperate. * Fixed
+ refer_blind_callback() and refer_incoming_refer_request() to not
+ modify the data in the pointer returned by
+ pjsip_msg_find_hdr_by_name(). It seems wrong to modify that data
+ since the calling routine doesn't own the buffer. ASTERISK-23501
+ #close Reported by: John Bigelow Review:
+ https://reviewboard.asterisk.org/r/3514/ ........ Merged
+ revisions 413210 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-05-02 16:06 +0000 [r413197] Jonathan Rose <jrose@digium.com>
+
+ * res/parking/res_parking.h, /, CHANGES,
+ res/parking/parking_bridge_features.c,
+ res/parking/parking_manager.c: Parking: Add 'AnnounceChannel'
+ argument to manager action 'Park' (closes ASTERISK-23397)
+ Reported by: Denis Review:
+ https://reviewboard.asterisk.org/r/3446/ ........ Merged
+ revisions 413196 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-05-01 16:21 +0000 [r413174-413183] Mark Michelson <mmichelson@digium.com>
+
+ * funcs/func_presencestate.c: Make behavior of the PRESENCE_STATE
+ 'e' option more consistent. When writing presence state, if 'e'
+ is specified, then the presence state will be stored in the astdb
+ encoded. However, consumers of presence state events or those
+ that query for the presence state will be given decoded
+ information. If base64 encoding is desired for consumers, then
+ the information can be base64-encoded manually and the 'e' option
+ can be omitted. closes issue ASTERISK-23671 Reported by Mark
+ Michelson Review: https://reviewboard.asterisk.org/r/3482
+
+ * res/res_pjsip_exten_state.c, /: Remove unnecessary repetition
+ checks from res_pjsip_exten_state The PBX core already takes care
+ of ensuring that repeated state changes are not communicated to
+ exten state consumers. Because the check in res_pjsip_exten_state
+ was incomplete, it was causing valid presence state changes not
+ to be sent out. For instance, if the presence state did not
+ change but the message or subtype did, then no presence-related
+ NOTIFY request would be sent out. closes issue ASTERISK-23672
+ Reported by Mark Michelson ........ Merged revisions 413173 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-05-01 12:31 +0000 [r413160] Joshua Colp <jcolp@digium.com>
+
+ * res/res_pjsip/config_transport.c, /: res_pjsip: Add the ability
+ to configure ciphers based on name. Previously this code would
+ only accept the OpenSSL identifier instead of the documented
+ name. ASTERISK-23498 #close ASTERISK-23498 #comment Reported by:
+ Anthony Messina Review: https://reviewboard.asterisk.org/r/3491/
+ ........ Merged revisions 413159 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-04-30 21:03 +0000 [r413144] Richard Mudgett <rmudgett@digium.com>
+
+ * main/message.c, /, channels/chan_sip.c,
+ include/asterisk/message.h, res/res_pjsip_messaging.c:
+ chan_sip.c: Fixed off-nominal message iterator ref count and
+ alloc fail issues. * Fixed early exit in sip_msg_send() not
+ destroying the message iterator. * Made
+ ast_msg_var_iterator_next() and ast_msg_var_iterator_destroy()
+ tolerant of a NULL iter parameter in case
+ ast_msg_var_iterator_init() fails. * Made
+ ast_msg_var_iterator_destroy() clean up any current message data
+ ref. * Made struct ast_msg_var_iterator,
+ ast_msg_var_iterator_init(), ast_msg_var_iterator_next(),
+ ast_msg_var_unref_current(), and ast_msg_var_iterator_destroy()
+ use iter instead of i. * Eliminated RAII_VAR usage in
+ res_pjsip_messaging.c:vars_to_headers(). ........ Merged
+ revisions 413139 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 413142 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-04-30 20:39 +0000 [r413141] Joshua Colp <jcolp@digium.com>
+
+ * /, channels/chan_pjsip.c: chan_pjsip: Fix deadlock when
+ retrieving call-id of channel. If a task was in-flight which
+ required the channel or bridge lock it was possible for the
+ synchronous task retrieving the call-id to deadlock as it holds
+ those locks. After discussing with Mark Michelson the synchronous
+ task was removed and the call-id accessed directly. This should
+ be safe as each object involved is guaranteed to exist and the
+ call-id will never change. ........ Merged revisions 413140 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-04-30 13:08 +0000 [r413125] Kinsey Moore <kmoore@digium.com>
+
+ * res/res_http_websocket.c, /: Websocket: Add session locking and
+ delay close This resolves a race condition where data could be
+ written to a NULL FILE pointer causing a crash as a websocket
+ connection was in the process of shutting down by adding locking
+ to websocket session writes and by deferring session teardown
+ until session destruction. (closes issue ASTERISK-23605) Review:
+ https://reviewboard.asterisk.org/r/3481/ Reported by: Matt Jordan
+ ........ Merged revisions 413123 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 413124 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-04-30 12:42 +0000 [r413118-413122] Joshua Colp <jcolp@digium.com>
+
+ * /, res/stasis/control.c: res_stasis: Add progress indications to
+ operations which perform media. This change fixes operations
+ which did not account for the fact that they may be executed on
+ channels which have not been answered. These operations will now
+ indicate progress when invoked. ASTERISK-23560 #close
+ ASTERISk-23560 #comment Reported by: Jan Svoboda Review:
+ https://reviewboard.asterisk.org/r/3495/ ........ Merged
+ revisions 413121 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+ * /, res/res_pjsip_sdp_rtp.c: res_pjsip_sdp_rtp: Fix issue where
+ sending a hold SDP twice could cause an unhold. This change fixes
+ a bug where if an SDP with media address and sendonly was
+ received twice the underlying call would go off hold, instead of
+ remaining on hold. This occured because the code did not properly
+ take into account that the SDP may contain both a valid media
+ address and the sendonly attribute. The code now examines the
+ sendonly attribute and media address first, so if the SDP is
+ received again no change will occur. ASTERISK-23558 #comment
+ Reported by: John Bigelow Review:
+ https://reviewboard.asterisk.org/r/3472/ ........ Merged
+ revisions 413119 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+ * channels/chan_pjsip.c, res/res_pjsip_session.c, /: chan_pjsip:
+ Add support for picking up calls in the configured pickup group.
+ AST-1363 Review: https://reviewboard.asterisk.org/r/3478/
+ ........ Merged revisions 413117 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-04-29 15:10 +0000 [r413103] George Joseph <george.joseph@fairview5.com>
+
+ * /, include/asterisk/spinlock.h: Add "destroy" implementation for
+ spinlock. The original commit for spinlock was missing "destroy"
+ implementations. Most of them are no-ops but phtread_spin and
+ pthread_mutex do need their locks destroyed. ........ Merged
+ revisions 413102 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-04-29 11:27 +0000 [r413089] Joshua Colp <jcolp@digium.com>
+
+ * channels/chan_pjsip.c, /: chan_pjsip: Implement core ability to
+ get Call-ID of a channel. This changes implement the
+ "get_pvt_uniqueid" which is used to return the technology
+ specific unique identifier. In the case of SIP this is the
+ Call-ID of the dialog. Review:
+ https://reviewboard.asterisk.org/r/3480/ ........ Merged
+ revisions 413088 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-04-28 20:07 +0000 [r413074] Kinsey Moore <kmoore@digium.com>
+
+ * /, main/bridge.c, main/bridge_basic.c: Bridging: Don't lock NULL
+ bridges When bridge locking was added for bridge snapshot
+ creation, some locations where bridge locking was added were not
+ guaranteed to actually have a bridge and locking NULL AO2 objects
+ tends to cause segfaults. This ensures that NULL bridges aren't
+ locked. ........ Merged revisions 413073 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-04-28 14:40 +0000 [r413060] Mark Michelson <mmichelson@digium.com>
+
+ * res/res_manager_presencestate.c (added), main/devicestate.c,
+ CHANGES, main/presencestate.c, res/res_manager_devicestate.c
+ (added): Add DeviceStateChanged and PresenceStateChanged AMI
+ events. These events are controlled by two new modules,
+ res_manager_devicestate and res_manager_presencestate. Review:
+ https://reviewboard.asterisk.org/r/3417
+
+2014-04-28 07:43 +0000 [r413048] Igor Goncharovskiy <igor.goncharovsky@gmail.com>
+
+ * UPGRADE.txt, CHANGES, channels/chan_unistim.c,
+ configs/unistim.conf.sample: Introducing changes proposed to
+ chan_unistim driver: 1) Added the unistim.conf variable
+ dtmf_duration which can select the DTMF playback duration from
+ 0ms to 150ms (0 is off and is the new default) 2) Enabled the
+ transmission of month names, which are sent with the date and
+ changed the dateformat variable to accept the values 0-3 as per
+ the UNISTIM standard (2 & 3 match the previous 1 & 2 formats). 3)
+ Enabled the "Mute" packet so muting microphone works as expected
+ and microphone muted for all calls while LED light on 4) Changed
+ Duree to Timer on i2004 display (closes issue ASTERISK-23592)
+
+2014-04-27 19:29 +0000 [r413036] Olle Johansson <oej@edvina.net>
+
+ * main/tcptls.c: tcptls.c : Log errors as ERROR, not warning or
+ something else.
+
+2014-04-25 19:26 +0000 [r413012] Matthew Jordan <mjordan@digium.com>
+
+ * res/res_rtp_asterisk.c, /: res_rtp_asterisk: Add support for DTLS
+ handshake retransmissions On congested networks, it is possible
+ for the DTLS handshake messages to get lost. This patch adds a
+ timer to res_rtp_asterisk that will periodically check to see if
+ the handshake has succeeded. If not, it will retransmit the DTLS
+ handshake. Review: https://reviewboard.asterisk.org/r/3337
+ ASTERISK-23649 #close Reported by: Nitesh Bansal patches:
+ dtls_retransmission.patch uploaded by Nitesh Bansal (License
+ 6418) ........ Merged revisions 413008 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 413009 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-04-24 14:37 +0000 [r412993] Kevin Harwell <kharwell@digium.com>
+
+ * /,
+ contrib/ast-db-manage/config/versions/e96a0b8071c_increase_pjsip_column_size.py
+ (added): pjsip realtime: increase the size of some columns The
+ string lengths on certain columns created through alembic for
+ PJSIP were too short. For instance, columns containing URIs are
+ currently set to 40 characters, but this can be too small and
+ result in truncated values. Added an alembic migration script
+ that increases the size of these columns and a few others to 255.
+ ASTERISK-23639 #close Reported by: Mark Michelson Review:
+ https://reviewboard.asterisk.org/r/3475/ ........ Merged
+ revisions 412992 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-04-23 20:13 +0000 [r412977] George Joseph <george.joseph@fairview5.com>
+
+ * include/asterisk/spinlock.h (added), /, configure,
+ include/asterisk/autoconfig.h.in, configure.ac: This patch adds
+ support for spinlocks in Asterisk. There are cases in Asterisk
+ where it might be desirable to lock a short critical code section
+ but not incur the context switch and yield penalty of a mutex or
+ rwlock. The primary spinlock implementations execute exclusively
+ in userspace and therefore don't incur those penalties. Spinlocks
+ are NOT meant to be a general replacement for mutexes. They
+ should be used only for protecting short blocks of critical code
+ such as simple compares and assignments. Operations that may
+ block, hold a lock, or cause the thread to give up it's timeslice
+ should NEVER be attempted in a spinlock. The first use case for
+ spinlocks is in astobj2 - internal_ao2_ref. Currently the
+ manipulation of the reference counter is done with an
+ ast_atomic_fetchadd_int which works fine. When weak reference
+ containers are introduced however, there's an additional
+ comparison and assignment that'll need to be done while the lock
+ is held. A mutex would be way too expensive here, hence the
+ spinlock. Given that lock contention in this situation would be
+ infrequent, the overhead of the spinlock is only a few more
+ machine instructions than the current ast_atomic_fetchadd_int
+ call. ASTERISK-23553 #close Review:
+ https://reviewboard.asterisk.org/r/3405/ ........ Merged
+ revisions 412976 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-04-23 18:03 +0000 [r412925] Richard Mudgett <rmudgett@digium.com>
+
+ * /, main/http.c: http: Fix spurious ERROR message in responses
+ with no content. Backport -r411687 and fix the fix because
+ content_length is the length of out plus the length of the file
+ controlled by fd. When a response has an out content length of 0,
+ fwrite would be called to write a buffer with no data in it. This
+ resulted in the following classic error message: [Apr 3 11:49:17]
+ ERROR[26421] http.c: fwrite() failed: Success This patch makes it
+ so that we only attempt to write the content of out if the out
+ string is non-zero. ........ Merged revisions 412922 from
+ http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
+ revisions 412923 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 412924 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-04-23 15:02 +0000 [r412910] Russell Bryant <russell@russellbryant.com>
+
+ * res/res_monitor.c, funcs/func_periodic_hook.exports.in (added),
+ main/asterisk.dynamics, funcs/func_periodic_hook.c: Fix error
+ loading res_monitor. For some odd reason, loading app_mixmonitor
+ was fine, but res_monitor was not. This patch fixes a set of
+ issues related to func_periodic_hook exporting the beep functions
+ that gets res_monitor working again.
+
+2014-04-22 10:09 +0000 [r412883] Joshua Colp <jcolp@digium.com>
+
+ * /, res/stasis/app.c: res_stasis: Fix crash when handling a failed
+ blind transfer message. This changes fixes a crash that occurs
+ when stasis determines if it should send a message out to an
+ application or not. The code incorrectly assumed that a bridge
+ snapshot would always be present when in reality for failure
+ cases it may not be. ASTERISK-23573 #close ........ Merged
+ revisions 412882 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-04-21 17:56 +0000 [r412759-412824] Jonathan Rose <jrose@digium.com>
+
+ * CHANGES, /: chan_sip: trust_id_outbound CHANGES message
+ improvement (closes issue AST-1301) (closes issue ASTERISK-19465)
+ Reported by: Krzysztof Chmielewski ........ Merged revisions
+ 412821 from http://svn.asterisk.org/svn/asterisk/branches/1.8
+ ........ Merged revisions 412822 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 412823 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+ * /, channels/chan_sip.c, configs/sip.conf.sample, CHANGES,
+ channels/sip/include/sip.h: chan_sip: Add sendrpid trust options
+ In r411189, some behavior was changed which made sendrpid
+ behavior act in a more trusting manner by sending full user data
+ for peers set with private caller presence in P-Asserted-Identity
+ headers. Since this changed long time expected behaviors, we
+ decided to pull that patch when that was pointed out by the
+ community. Instead, this patch provides a trust_id_outbound
+ setting which will expose the data per RFC-3325 if set to 'yes'
+ and simply not send the PAI/RPID headers at all if set to 'no'.
+ By default trust_id_outbound will be set to 'legacy' which will
+ preserve the behavior prior to these patches. Extra special
+ thanks to Walter Doekes for providing advice and feedback.
+ (closes issue AST-1301) (closes issue ASTERISK-19465) Reported
+ by: Krzysztof Chmielewski Review:
+ https://reviewboard.asterisk.org/r/3447/ ........ Merged
+ revisions 412744 from
+ http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
+ revisions 412746 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 412747 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-04-21 16:16 +0000 [r412729-412750] Kinsey Moore <kmoore@digium.com>
+
+ * main/http.c, main/manager.c, /: HTTP: Add TCP_NODELAY to accepted
+ connections This adds the TCP_NODELAY option to accepted
+ connections on the HTTP server built into Asterisk. This option
+ disables the Nagle algorithm which controls queueing of outbound
+ data and in some cases can cause delays on receipt of response by
+ the client due to how the Nagle algorithm interacts with TCP
+ delayed ACK. This option is already set on all non-HTTP AMI
+ connections and this change would cover standard HTTP requests,
+ manager HTTP connections, and ARI HTTP requests and websockets in
+ Asterisk 12+ along with any future use of the HTTP server.
+ Review: https://reviewboard.asterisk.org/r/3466/ ........ Merged
+ revisions 412745 from
+ http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
+ revisions 412748 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 412749 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+ * apps/app_confbridge.c, /: Confbridge: Fix ConfbridgeKick AMI
+ documentation This adds documentation for the "all" channel
+ option for the ConfbridgeKick AMI action and adjusts AMI
+ responses accordingly. (issue ASTERISK-23282) Reported by: Dorian
+ Logan ........ Merged revisions 412730 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+ * /, apps/app_confbridge.c: Confbridge: Add references for kick all
+ option After the ability to kick all attendees from a conference
+ was added, a rework removed the comment about that feature from
+ the CLI documentation. This adds that documentation and adds
+ "all" to the participant tab completion list for the confbridge
+ kick command. (closes issue ASTERISK-23282) Reported by: Dorian
+ Logan ........ Merged revisions 412728 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-04-21 08:36 +0000 [r412714] Igor Goncharovskiy <igor.goncharovsky@gmail.com>
+
+ * /, channels/chan_unistim.c: Fix wrong dialtone. The "modulation"
+ should not be referenced for tone+tone as it refers to the on-off
+ characteristic - this often resulted in a single tone rather than
+ the multitone as in the UK. ........ Merged revisions 412712 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 412713 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-04-19 02:14 +0000 [r412697-412699] Matthew Jordan <mjordan@digium.com>
+
+ * /, main/asterisk.c: main/asterisk: Fix startup sequence for
+ realtime features When ASTERISK-23265/ASTERISK-23320 was fixed,
+ it inadvertently led to realtime features breaking. This was due
+ to features loading prior to realtime. This patch fixes this by
+ loading features after loading dynamic modules. ASTERISK-23487
+ #close Reported by: Denis Tested by: Denis ........ Merged
+ revisions 412698 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+ * /, apps/app_sms.c: app_sms: Fix uninitialized values; hangup
+ channel when REL is sent successfully This patch fixes two issues
+ in app_sms: (1) Firstly, the 'flags' field on the stack in
+ sms_exec() is uninitialised, causing it to use the wrong protocol
+ in some cases. This patch correctly initializes the flags fields.
+ (2) Secondly, when disconnect supervision is not working or
+ inbanddisconnect=yes is set in chan_dahdi.conf, app_sms was
+ failing to terminate the call after it sent the REL(ease) message
+ and the peer stopped talking to it. This patch fixes the code to
+ handle the 'bad stop bit' message more gracefully in that case,
+ and hang up the call. Review:
+ https://reviewboard.asterisk.org/r/1392/ ASTERISK-18331 #close
+ Reported by: David Woodhouse patches: asterisk-fix-sms.patch
+ uploaded by David Woodhouse (License 5754) ........ Merged
+ revisions 412655 from
+ http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
+ revisions 412656 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 412657 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-04-18 20:09 +0000 [r412641] Jonathan Rose <jrose@digium.com>
+
+ * /, res/ari/resource_bridges.h, res/stasis/control.c,
+ include/asterisk/stasis_app.h, res/stasis/control.h,
+ res/ari/resource_channels.c, CHANGES, res/res_stasis.c,
+ rest-api/api-docs/bridges.json, res/ari/resource_bridges.c,
+ res/res_ari_bridges.c, res/res_stasis_playback.c: ARI: Make
+ bridges/{bridgeID}/play queue sound files Previously multiple
+ play actions against a bridge at one time would cause the sounds
+ to play simultaneously on the bridge. Now if a sound is already
+ playing, the play action will queue playback to occur after the
+ completion of other sounds currently on the queue. (closes issue
+ ASTERISK-22677) Reported by: John Bigelow Review:
+ https://reviewboard.asterisk.org/r/3379/ ........ Merged
+ revisions 412639 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-04-18 17:17 +0000 [r412589] Rusty Newton <rnewton@digium.com>
+
+ * sounds/sounds.xml, sounds/Makefile, /: sounds: Fix Sounds
+ Makefile and XML that didn't support new sound prompt sets In
+ sounds/Makefile 1 Adds and moves some lines necessary for the
+ en_GB core set. I'm just following how the other sets are defined
+ here. 2 removes the ES extra sounds related lines as we don't
+ have ES extra sound sets. In sounds/sounds.xml 3 Adds member
+ definitons for EN_AU, EN_GB, IT for core sound sets, and EN_GB in
+ extra sound sets ASTERISK-23550 #close Review:
+ https://reviewboard.asterisk.org/r/3464/ ........ Merged
+ revisions 412586 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 412587 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-04-18 17:02 +0000 [r412584] Mark Michelson <mmichelson@digium.com>
+
+ * /, res/res_pjsip/location.c: Allow for multiple contacts to be
+ configured in a single contact= line. This is useful for
+ configuring multiple permanent contacts for an AOR when using
+ realtime AORs. Review: https://reviewboard.asterisk.org/r/3462
+ ........ Merged revisions 412582 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-04-18 16:44 +0000 [r412580-412583] Richard Mudgett <rmudgett@digium.com>
+
+ * main/dial.c, main/pbx.c, /, apps/app_originate.c,
+ include/asterisk/pbx.h: Originated calls: Fix several originate
+ call problems. * Restore the reason value set by
+ pbx_outgoing_attempt() to use AST_CONTROL_xxx values as all the
+ consumers were expecting rather than cause codes. * Fixed the
+ dial routines to set cause codes for more than just ast_request()
+ so pbx_outgoing_attempt() reason codes will function. * Fix
+ inconsistent locked_channel return status in
+ pbx_outgoing_attempt(). The chanel may not have been locked or
+ the channel may have been a stale pointer. * Fixed the
+ OutgoingSpoolFailed channel to run dialplan whenever the dialing
+ fails for an originate exten and 1 < synchronous. * Fix incorrect
+ ast_cond_wait() usage in pbx_outgoing_attempt(). Indroduced by
+ issue ASTERISK-22212 patch. * Made struct pbx_outgoing use the
+ ao2 lock instead of its own lock for the cond wait mutex. No
+ sense in having two locks associated with the same struct when
+ only one is needed. Review:
+ https://reviewboard.asterisk.org/r/3421/ ........ Merged
+ revisions 412581 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+ * main/stasis_channels.c, apps/app_queue.c, apps/app_dial.c, /:
+ app_dial and app_queue: Make lock the forwarding channel while
+ taking the channel snapshot. * Fixed
+ ast_channel_publish_dial_forward() not locking the forwarded
+ channel when taking the channel snapshot. * Fixed
+ app_dial.c:do_forward() using the wrong channel to get the
+ original call forwarding string. * Removed unnecessary locking
+ when calling ast_channel_publish_dial() and
+ ast_channel_publish_dial_forward() in app_dial and app_queue.
+ Holding channel locks when calling
+ ast_channel_publish_dial_forward() with a forwarded channel could
+ result in pausing the system while the stasis bus completes
+ processsing a forwarded channel subscription. Review:
+ https://reviewboard.asterisk.org/r/3451/ ........ Merged
+ revisions 412579 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-04-18 14:25 +0000 [r412566] Kinsey Moore <kmoore@digium.com>
+
+ * res/ari/ari_websockets.c, res/res_ari.c, main/manager.c, /: ARI:
+ Add debug logging for events and responses This adds DEBUG level
+ logging for ARI websocket events and HTTP responses similar to
+ what is available for AMI. Logging for ARI HTTP requests is
+ already adequate for debugging purposes. ........ Merged
+ revisions 412565 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-04-17 22:50 +0000 [r412552] Joshua Colp <jcolp@digium.com>
+
+ * /, res/res_pjsip/location.c, res/res_pjsip/pjsip_configuration.c,
+ res/res_pjsip/pjsip_options.c, res/res_pjsip.c,
+ res/res_pjsip_registrar.c: res_pjsip: Handle reloading when
+ permanent contacts exist and qualify is configured. This change
+ fixes a problem where permanent contacts being qualified were not
+ being updated. This was caused by the permanent contacts getting
+ a uuid and not a known identifier, causing an inability to look
+ them up when updating in the qualify code. A bug also existed
+ where the new configuration may not be available immediately when
+ updating qualifies. (closes issue ASTERISK-23514) Reported by:
+ Richard Mudgett Review: https://reviewboard.asterisk.org/r/3448/
+ ........ Merged revisions 412551 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-04-17 22:42 +0000 [r412536-412550] Jonathan Rose <jrose@digium.com>
+
+ * /, main/app.c: Fix a silly shadowed variable mistake that was
+ missed from play tones patch ........ Merged revisions 412549
+ from http://svn.asterisk.org/svn/asterisk/branches/12
+
+ * /, res/ari/resource_bridges.h, main/app.c,
+ rest-api/api-docs/channels.json, CHANGES,
+ rest-api/api-docs/bridges.json, res/ari/resource_channels.h,
+ include/asterisk/app.h, res/res_stasis_playback.c: ARI: Add tones
+ playback resource Adds a tones URI type to the playback resource.
+ The tone can be specified by name (from indications.conf) or by a
+ tone pattern. In addition, tonezone can be specified in the URI
+ (by appending ;tonezone=<zone>). Tones must be stopped manually
+ in order for a stasis control to move on from playback of the
+ tone. Tones may be paused, resumed, restarted, and stopped. They
+ may not be rewound or fast forwarded (tones can't be controlled
+ in a way that lets you skip around from note to note and pausing
+ and resuming will also restart the tone from the beginning).
+ Tests are currently in development for this feature
+ (https://reviewboard.asterisk.org/r/3428/). (closes issue
+ ASTERISK-23433) Reported by: Matt Jordan Review:
+ https://reviewboard.asterisk.org/r/3427/ ........ Merged
+ revisions 412535 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-04-17 20:25 +0000 [r412467-412484] Matthew Jordan <mjordan@digium.com>
+
+ * channels/chan_oss.c, /, main/Makefile: main/Makefile: Fix build
+ failure on SmartOS/Illumos/SunOS This patch fixes two issues when
+ building on SmartOS: - channels/chan_oss.c: it makes sure
+ soundcard.h is found - main/Makefile: only use
+ "-Wl,--version-script" when GNU LD is used as the Sun Linker
+ doesn't support that. Similar checks are already used elswhere in
+ the Makefile Review: https://reviewboard.asterisk.org/r/3426
+ ASTERISK-23576 #close Reported by: Sebastian Wiedenroth patches:
+ fix-sunos.diff uploaded by Sebastian Wiedenroth (License 6597)
+ ........ Merged revisions 412468 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 412483 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+ * channels/sip/include/sip.h, channels/chan_sip.c, CHANGES:
+ chan_sip: Add SIPURIPHONECONTEXT channel variable for Request TEL
+ URIs This patch is a continuation of
+ https://reviewboard.asterisk.org/r/3349/, committed in r412303.
+ It resolves a finding oej had that the phone-context be available
+ in a channel variable separate from SIPDOMAIN. This patch adds
+ that variable as SIPURIPHONECONTEXT. It also allows a local
+ number (or global number specified in the TEL URI) to be used to
+ look up as a peer. (issue ASTERISK-17179) Review:
+ https://reviewboard.asterisk.org/r/3349/
+
+2014-04-17 15:17 +0000 [r412454] Kevin Harwell <kharwell@digium.com>
+
+ * res/res_pjsip_refer.c, /: res_pjsip_refer: Channel variable
+ SIPREFERTOHDR not being set during blind transfer The
+ SIPREFERTOHDR channel variable is not being set on any channel
+ when performing a blind transfer using PJSIP. The
+ 'refer->refer_to' was not being set during a blind transfer.
+ Updated so the 'refer_to' is set to the target uri on a blind
+ transfer. (closes issue ASTERISK-23502) Reported by: John Bigelow
+ Review: https://reviewboard.asterisk.org/r/3445/ ........ Merged
+ revisions 412453 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-04-16 19:14 +0000 [r412440] Kinsey Moore <kmoore@digium.com>
+
+ * /, include/asterisk/stasis_app.h: Stasis: Add a usage note on
+ stasis_app_get_bridge This function returns an ast_bridge without
+ a refcount bump and the caller must increment the count if it
+ intends to hold the pointer. (closes issue ASTERISK-23588)
+ Review: https://reviewboard.asterisk.org/r/3450/ Reported by:
+ Matt Jordan ........ Merged revisions 412439 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-04-15 23:21 +0000 [r412427] Russell Bryant <russell@russellbryant.com>
+
+ * bridges/bridge_builtin_features.c, include/asterisk/monitor.h,
+ CHANGES, apps/app_queue.c, funcs/func_periodic_hook.c,
+ apps/app_mixmonitor.c, include/asterisk/beep.h (added),
+ res/res_monitor.c: (mix)monitor: Add options to enable a periodic
+ beep Add an option to enable a periodic beep to be played into a
+ call if it is being recorded. If enabled, it uses the
+ PERIODIC_HOOK() function internally to play the 'beep' prompt
+ into the call at a specified interval. This option is provided
+ for both Monitor() and MixMonitor(). Review:
+ https://reviewboard.asterisk.org/r/3424/
+
+2014-04-15 18:30 +0000 [r412384-412414] Richard Mudgett <rmudgett@digium.com>
+
+ * main/stasis_channels.c, main/features_config.c,
+ res/res_parking.c, main/rtp_engine.c, /: Eliminate some more
+ unnecessary RAII_VAR() uses. RAII_VAR() is not a hammer
+ appropriate to pound all nails. ........ Merged revisions 412413
+ from http://svn.asterisk.org/svn/asterisk/branches/12
+
+ * res/res_stasis_playback.c, /, res/stasis/app.c, res/res_fax.c,
+ res/res_pjsip/security_events.c,
+ res/parking/parking_applications.c, channels/chan_oss.c,
+ main/stasis_bridges.c, res/res_pjsip_session.c,
+ res/stasis_recording/stored.c, main/cdr.c, res/res_parking.c,
+ channels/chan_skinny.c, res/res_pjsip/location.c,
+ res/res_stasis_recording.c, main/stasis_channels.c,
+ res/ari/resource_channels.c, res/parking/parking_manager.c,
+ res/ari/resource_recordings.c, res/res_pjsip_refer.c,
+ res/res_ari.c, main/pbx.c: Remove unused RAII_VAR() declarations.
+ * Remove unused RAII_VAR() declarations. The compiler cannot
+ catch these because the cleanup function "references" the unused
+ variable. Some actually allocated and released resources that
+ were never used. * Fixed some whitespace issues in
+ stasis_bridges.c. ........ Merged revisions 412399 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+ * include/asterisk/rtp_engine.h, main/rtp_engine.c, /,
+ channels/chan_sip.c: chan_sip.c: Fix channel staging assertion
+ failure. The failing assertion ensures that the final snapshot
+ gets generated so CDR records can get finalized. The only place
+ where a channel staging snapshot flag could be left set is in
+ chan_sip.c:handle_request_bye(). The function could return before
+ clearing the flag because the channel could dissappear while the
+ function had to have the channel unlocked. * Fixed
+ handle_request_bye() channel snapshot staging coverage area to
+ not have a return in the middle of it and be unable to clear the
+ staging flag. * Pushed the channel snapshot staging coverage area
+ into ast_rtp_instance_set_stats_vars() to ensure that the staging
+ is not interrutped. * Made callers of
+ ast_rtp_instance_set_stats_vars() not call it with any channels
+ or channel driver private locks held to eliminate the deadlock
+ potential. The callers must hold references to the passed in
+ channel and rtp objects. * Eliminated sip_hangup() trying to get
+ the bridge peer. It is futile at this point because the channel
+ could never be in a bridge. Review:
+ https://reviewboard.asterisk.org/r/3431/ ........ Merged
+ revisions 412385 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+ * /, channels/chan_sip.c: chan_sip.c: Moved some sip_pvt unrefs
+ after their last use. * Moved sip_pvt unref in ast_hangup() and
+ handle_request_do() to the end of the function. The unref needs
+ to happen after the last use of the pointer. ........ Merged
+ revisions 412348 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 412383 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-04-15 16:13 +0000 [r412331] Jonathan Rose <jrose@digium.com>
+
+ * configs/sip.conf.sample, /, channels/chan_sip.c: Reverting
+ r411189 so that it can be put up for public review --- r411189 |
+ jrose | 2014-03-26 10:50:48 -0500 (Wed, 26 Mar 2014) | 12 lines
+ chan_sip: Send real CallerID information with
+ P-Assserted-Identity (RFC-3325) Prior to this patch, the
+ P-Asserted-Identity header would include anonymous caller id
+ information which seems to go against the point of the
+ P-Asserted-Identity header. Now the real caller ID information
+ will be included in this header. Also, no privacy header would be
+ included. This patch adds 'Privacy: id' to outgoing SIP messages
+ that include the P-Asserted-Identity header. (closes issue
+ AST-1301) --- ........ Merged revisions 412328 from
+ http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
+ revisions 412329 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 412330 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-04-14 15:54 +0000 [r412307] Corey Farrell <git@cfware.com>
+
+ * main/autoservice.c, /: autoservice: fix reference leak of logger
+ callid. autoservice acquires a local reference to the logger
+ callid of each channel in a loop. This local reference was not
+ released, causing the callid of every channel in autoservice to
+ leak. This change moves the callid unref inside the loop.
+ ASTERISK-23616 #close Reported by: ibercom ........ Merged
+ revisions 412305 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 412306 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-04-12 02:27 +0000 [r412292] Matthew Jordan <mjordan@digium.com>
+
+ * channels/sip/reqresp_parser.c, CHANGES, channels/chan_sip.c:
+ chan_sip: Support RFC-3966 TEL URIs in inbound INVITE requests
+ This patch adds support for handling TEL URIs in inbound INVITE
+ requests. This includes the Request URI and the From URI. The
+ number specified in the Request URI will be the destination of
+ the inbound channel in the dialplan. The phone-context specified
+ in the Request URI will be stored in the TELPHONECONTEXT channel
+ variable. Review: https://reviewboard.asterisk.org/r/3349
+ ASTERISK-17179 #close Reported by: Geert Van Pamel Tested by:
+ Geert Van Pamel patches:
+ asterisk-12.0.0-chan_sip-RFC3966_patch.txt uploaded by Geert Van
+ Pamel (License 6140)
+ asterisk-12.0.0-reqresp_parser-RFC3966_patch.txt uploaded by
+ Geert Van Pamel (License 6140)
+
+2014-04-12 01:35 +0000 [r412279-412280] Russell Bryant <russell@russellbryant.com>
+
+ * funcs/func_periodic_hook.c: func_periodic_hook: move module ref
+ The previous code left one error path where the module would be
+ unref'd twice instead of once. It was done once in the error
+ handling block, and again inside of datastore destruction. Now
+ the module ref is only released in the datastore destructor and
+ only acquired when the datastore has been successfully allocated.
+
+ * funcs/func_periodic_hook.c: func_periodic_hook: add module ref
+ counting This module lacked necessary module ref count
+ incrementing and decrementing when used. This patch adds it.
+ There's already a datastore used, so doing the ref counting along
+ with the lifetime of the datastore provides a convenient place to
+ do it.
+
+2014-04-11 21:43 +0000 [r412213-412228] Richard Mudgett <rmudgett@digium.com>
+
+ * apps/app_stack.c, /: app_stack: Add missing unlock in off-nominal
+ path of STACK_PEEK function. ASTERISK-23620 #close Reported by:
+ Bradley Watkins Patches: ASTERISK-23620_unlock_oldlist.patch
+ (license #5021) patch uploaded by Bradley Watkins ........ Merged
+ revisions 412225 from
+ http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
+ revisions 412226 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 412227 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+ * utils/Makefile, utils: utils dir: Remove no longer needed traces
+ of refcounter except in the clean make target. * Removed no
+ longer needed files from the svn:ignore property to make them
+ visible.
+
+2014-04-11 12:43 +0000 [r412194] Kinsey Moore <kmoore@digium.com>
+
+ * /, main/bridge.c, main/bridge_basic.c,
+ include/asterisk/stasis_bridges.h, tests/test_cel.c,
+ apps/app_confbridge.c, res/ari/resource_bridges.c: bridging:
+ Ensure locking during snapshot creation While the vast majority
+ of bridge snapshot creation is locked properly, there are
+ currently some instances that are not. This adds the missing
+ locking to ensure bridge state is not malleable during snapshot
+ creation. (closes issue ASTERISK-22904) Review:
+ https://reviewboard.asterisk.org/r/3415/ Reported by: Matt Jordan
+ ........ Merged revisions 412193 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-04-11 08:28 +0000 [r412168-412180] Olle Johansson <oej@edvina.net>
+
+ * main/audiohook.c: Formatting: Remove invisible characters
+
+ * main/audiohook.c: Formatting only.
+
+2014-04-11 02:59 +0000 [r412154] Matthew Jordan <mjordan@digium.com>
+
+ * main/astobj2.c, contrib/scripts/refcounter.py (added),
+ main/asterisk.c, utils/refcounter.c (removed),
+ build_tools/cflags.xml, utils/utils.xml, /, channels/chan_sip.c,
+ channels/sip/security_events.c, include/asterisk/astobj2.h,
+ UPGRADE.txt: main/astobj2: Make REF_DEBUG a menuselect item;
+ improve REF_DEBUG output This patch does the following: (1) It
+ makes REF_DEBUG a meneselect item. Enabling REF_DEBUG now enables
+ REF_DEBUG globally throughout Asterisk. (2) The ref debug log
+ file is now created in the AST_LOG_DIR directory. Every run will
+ now blow away the previous run (as large ref files sometimes
+ caused issues). We now also no longer open/close the file on each
+ write, instead relying on fflush to make sure data gets written
+ to the file (in case the ao2 call being performed is about to
+ cause a crash) (3) It goes with a comma delineated format for the
+ ref debug file. This makes parsing much easier. This also now
+ includes the thread ID of the thread that caused ref change. (4)
+ A new python script instead for refcounting has been added in the
+ contrib/scripts folder. (5) The old refcounter implementation in
+ utils/ has been removed. Review:
+ https://reviewboard.asterisk.org/r/3377/ ........ Merged
+ revisions 412114 from
+ http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
+ revisions 412115 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 412153 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-04-11 01:12 +0000 [r412102] Russell Bryant <russell@russellbryant.com>
+
+ * res/res_monitor.c: monitor: use app options parsing helper code
+ This app is pretty ancient, so it was never converted to use the
+ option parsing helper code. I'd like to add an option to this app
+ that takes an argument, and that's a pain to do when not using
+ this helper, so start by doing this conversion. Review:
+ https://reviewboard.asterisk.org/r/3429/
+
+2014-04-10 21:28 +0000 [r412089] Matthew Jordan <mjordan@digium.com>
+
+ * /, res/res_hep_pjsip.c: res_hep_pjsip: Use the channel name
+ instead of the call ID when it is available During discussions
+ with Alexandr Dubovikov at Kamailio World, it became apparent
+ that while the SIP call ID is a useful identifier prior to an
+ Asterisk channel being created, it is far more preferable to use
+ the channel name (or some channel based identifier) when the
+ channel is available. Homer is smart enough to tie the various
+ messages together. This patch opts to use the channel name when
+ it is available, falling back to the call ID otherwise. ........
+ Merged revisions 412088 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-04-10 21:10 +0000 [r412075] Kevin Harwell <kharwell@digium.com>
+
+ * /, res/res_pjsip_pubsub.c: res_pjsip_pubsub: Set the body
+ generation result to 0 for a valid path The result of the
+ "ast_sip_pubsub_generate_body_content" was not set/initialized.
+ Consequently, the nominal path potentially returned an invalid
+ value, thus not sending mwi notifications. ........ Merged
+ revisions 412074 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-04-09 21:43 +0000 [r412050] Mark Michelson <mmichelson@digium.com>
+
+ * /, CHANGES, apps/app_mixmonitor.c: Add a Command header to the
+ AMI Mixmonitor action. This fixes a parsing error that occurred
+ during the processing of the AMI action. The error did not result
+ in MixMonitor itself misbehaving, but it could result in the AMI
+ response not giving correct information back. The new header
+ allows for one to specify a post-process command to run when
+ recording finishes. Previously, in order to do this, the
+ post-process command would have to be placed at the end of the
+ Options: header. Patches: mixmonitor_command_2.patch by jhardin
+ (License #6512) ........ Merged revisions 412048 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-04-09 18:17 +0000 [r412035] Kinsey Moore <kmoore@digium.com>
+
+ * /, res/res_stasis_answer.c: res_stasis_answer: Add missing
+ newlines ........ Merged revisions 412034 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-04-08 21:25 +0000 [r411946-411990] Richard Mudgett <rmudgett@digium.com>
+
+ * /, main/asterisk.c: Internal timing: Add notice that the -I and
+ internal_timing option are no longer needed. Add notice messages
+ during execution that the -I command line option and the
+ astersik.conf internal_timing option are no longer needed. The
+ internal timing functionality is now always enabled if there is a
+ timing module loaded. NOTE: Since the command line options and
+ the asterisk.conf config file are processed before the logging
+ system is initialized, the messages are output to stderr. Change
+ requested as a result of asterisk-dev list comments about the
+ commit for ASTERISK-22846 that removed the -I and internal_timing
+ options. Review: https://reviewboard.asterisk.org/r/3423/
+ ........ Merged revisions 411964 from
+ http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
+ revisions 411974 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 411985 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+ * main/config.c, /: config: Fix CB_ADD_LEN() to work as originally
+ intended. Fix a long standing bug in CB_ADD_LEN() behaving like
+ CB_ADD(). ASTERISK-23546 #close Reported by: Walter Doekes
+ ........ Merged revisions 411960 from
+ http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
+ revisions 411961 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 411962 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+ * apps/confbridge/conf_config_parser.c, /: app_confbridge: Fix
+ confbridge.conf dsp_talking_threshold option setting wrong
+ parameter. Fixed copy pasta error. ASTERISK-23545 #close Reported
+ by: John Knott ........ Merged revisions 411944 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 411945 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-04-08 14:49 +0000 [r411928] Joshua Colp <jcolp@digium.com>
+
+ * /, res/res_pjsip.c: res_pjsip: Ignore explicit transport
+ configuration if a WebSocket transport is specified. This change
+ makes it so if a transport is configured on an endpoint that is a
+ WebSocket type the option will be ignored. In practice this is
+ fine because the WebSocket transport can not create outgoing
+ connections, it can only reuse existing ones. By ignoring the
+ option the existing PJSIP logic for using the existing connection
+ will be invoked and stuff will proceed. (closes issue
+ ASTERISK-23584) Reported by: Rusty Newton ........ Merged
+ revisions 411927 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-04-08 00:26 +0000 [r411897] Russell Bryant <russell@russellbryant.com>
+
+ * funcs/func_periodic_hook.c: func_periodic_hook: List more modules
+ as dependencies This module makes use of some existing Asterisk
+ components. app_chanspy was already listed as a dependency. There
+ are a few function modules used, as well, so list them.
+
+2014-04-07 20:41 +0000 [r411884] Kinsey Moore <kmoore@digium.com>
+
+ * /, res/res_pjsip_pubsub.c: PJSIP: Ensure test event has new state
+ The change that fixed the pubsub test event's use of a dangling
+ pointer also changed when it was processed relative to the pjsip
+ subscription state change processing. This change corrects the
+ order of events while holding a reference to the pointer that was
+ previously dangling. ........ Merged revisions 411883 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-04-07 16:15 +0000 [r411870] Jonathan Rose <jrose@digium.com>
+
+ * main/manager_channels.c, /: AGI/Manager: Prevent multiple
+ NewExten events during AGI application changes AGI applications
+ would trigger NewExten events every time the state of the AGI
+ application changed. This has historically not been the behavior
+ and this behavior was introduced with a CDR patch. This patch
+ corrects that. (closes issue ASTERISK-23390) Reported by:
+ Benjamin Keith Ford Review:
+ https://reviewboard.asterisk.org/r/3406/ ........ Merged
+ revisions 411868 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-04-07 14:57 +0000 [r411812] Walter Doekes <walter+asterisk@wjd.nu>
+
+ * apps/app_queue.c, /: app_queue: Re-add HoldTime to
+ QueueCallerAbandon event (simple typo during ast12 refactor).
+ Reported by: Ibrahim22 (on IRC) Tested by: Ibrahim22 ........
+ Merged revisions 411811 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-04-07 14:29 +0000 [r411791-411806] Kinsey Moore <kmoore@digium.com>
+
+ * /, res/res_stasis.c: Stasis: Fix Stasis() bridge refcount issue
+ The Stasis() dialplan application monitors what bridge a channel
+ is in and so necessarily holds on to a bridge pointer. This
+ change ensures that it also holds on to a reference for that
+ bridge to prevent the bridge pointer from becoming a dangling
+ pointer. ........ Merged revisions 411804 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+ * res/res_pjsip_pubsub.c, /: PJSIP: Fix crash introduced in r411671
+ The test event introduced in revision 411671 uses a dangling
+ pointer to access information about pubsub state changes. This
+ moves the event to within the lifetime of the pointer. ........
+ Merged revisions 411790 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-04-05 13:06 +0000 [r411768] Russell Bryant <russell@russellbryant.com>
+
+ * CHANGES, funcs/func_periodic_hook.c (added): func_periodic_hook:
+ New function for periodic hooks. This commit introduces a new
+ dialplan function, PERIODIC_HOOK(). It allows you run to a
+ dialplan hook on a channel periodically. The original use case
+ that inspired this was the ability to play a beep periodically
+ into a call being recorded. The implementation is much more
+ generic though and could be used for many other things. The
+ implementation makes heavy use of existing Asterisk components.
+ It uses a combination of Local channels and ChanSpy() to run some
+ custom dialplan and inject any audio it generates into an active
+ call. The other important bit of the implementation is how it
+ figures out when to trigger the beep playback. This
+ implementation uses the audiohook API, even though it's not
+ actually touching the audio in any way. It's a convenient way to
+ get a callback and check if it's time to kick off another beep.
+ It would be nice if this was timer event based instead of polling
+ based, but unfortunately I don't see a way to do it that won't
+ interfere with other things. Review:
+ https://reviewboard.asterisk.org/r/3362/
+
+2014-04-04 19:19 +0000 [r411702-411724] Richard Mudgett <rmudgett@digium.com>
+
+ * include/asterisk/options.h, main/asterisk.c, main/channel.c, /,
+ channels/chan_sip.c, configs/asterisk.conf.sample, UPGRADE.txt,
+ include/asterisk/channel.h, utils/extconf.c: internal_timing:
+ Remove the option and always make it enabled if a timing module
+ is loaded. The masquerade supertest frequently fails because
+ either the local channel chain doesn't completely optimize out or
+ the DTMF handshake doesn't completely get accross. Local channel
+ optimization requires frames flowing to trigger when optimization
+ can happen. When optimization happens the media frame that
+ triggered the optimization is dropped. Sending DTMF requires
+ frames to flow in the other direction for timing purposes while
+ sending nothing. If internal timing is not enabled when MOH is
+ playing, Asterisk switches to received timing when an audio frame
+ is received. With optimization dropping media frames and MOH not
+ sending frames unless it receives frames, occasionaly there are
+ no more frames being passed and the test fails. * The asterisk
+ command line -I option and the asterisk.conf internal_timing
+ option are removed. Asterisk now always uses internal timing when
+ needed if any timing module is loaded. The issue ASTERISK-14861
+ did this quite awhile ago in v1.4 but effectively is broken if
+ other internal timing modules besides DAHDI are used. The
+ ast_read_generator_actions() now only does received timing if it
+ has no choice for frame generators like MOH, silence, and
+ playback streaming. * Cleaned up some code dealing with frame
+ generators in ast_deactivate_generator(),
+ generator_write_format_change(), ast_activate_generator(), and
+ ast_channel_stop_silence_generator(). * Removed
+ ast_internal_timing_enabled(), AST_OPT_FLAG_INTERNAL_TIMING, and
+ ast_opt_internal_timing. ASTERISK-22846 #close Reported by: Matt
+ Jordan Review: https://reviewboard.asterisk.org/r/3414/ ........
+ Merged revisions 411715 from
+ http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
+ revisions 411716 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 411717 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+ * main/utils.c, res/res_musiconhold.c, main/channel.c,
+ main/stasis_cache.c, /: Add some asserts that were handy when
+ looking for a stasis cache problem. * Assert if a channel is
+ destroyed but has the snapshot staging flag set. In this case the
+ final channel destruction snapshot would never get taken. *
+ Assert if what we just got out of the stasis cache is not what we
+ were looking for. This assert would have saved several days
+ searching for a bug and a lot of my hair. * Assert if the music
+ on hold message posts could not find the associated channel. A
+ crash will happen later when manager tries to send the MOH AMI
+ message. This assert catches the problem when the stasis message
+ is posted instead of by the thread processing the defective
+ message. * Always generate a backtrace when an ast_assert()
+ fails. Review: https://reviewboard.asterisk.org/r/3411/ ........
+ Merged revisions 411701 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-04-04 15:13 +0000 [r411688] Matthew Jordan <mjordan@digium.com>
+
+ * /, main/http.c: http: Fix spurious ERROR message in responses
+ with no content When a response has a content length of 0, fwrite
+ would be called to write a buffer with no data in it. This
+ resulted in the following classic error message: [Apr 3 11:49:17]
+ ERROR[26421] http.c: fwrite() failed: Success This patch makes it
+ so that we only attempt to write out the content if the
+ calculated content_length is non-zero. ........ Merged revisions
+ 411687 from http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-04-03 12:06 +0000 [r411671] Kinsey Moore <kmoore@digium.com>
+
+ * /, res/res_pjsip_pubsub.c: res_pjsip_pubsub: Add test event for
+ state change This adds a test event when subscription state
+ changes so that integration tests may trigger new actions at the
+ appropriate times. Review:
+ https://reviewboard.asterisk.org/r/3383/ ........ Merged
+ revisions 411670 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-04-03 11:47 +0000 [r411669] Matthew Jordan <mjordan@digium.com>
+
+ * res/res_hep.c, /: res_hep: Fix crash when hep.conf not available
+ Parts of res_hep properly checked for a valid configuration
+ object before attempting to access the configuration. A check,
+ however, was missed when a packet is sent. This patch fixes the
+ crash caused by not checking if the configuration object is
+ valid. ........ Merged revisions 411668 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-04-02 18:57 +0000 [r411656] Mark Michelson <mmichelson@digium.com>
+
+ * main/sorcery.c, /, res/res_mwi_external.c,
+ res/res_pjsip/config_system.c, configs/sorcery.conf.sample,
+ main/bucket.c, include/asterisk/sorcery.h,
+ res/res_pjsip/pjsip_configuration.c, tests/test_sorcery_astdb.c,
+ tests/test_sorcery.c, tests/test_sorcery_realtime.c: Prevent
+ duplicate sorcery wizards from being applied to sorcery object
+ types. This commit contains several changes to sorcery: 1)
+ Application of sorcery configuration based on module name is
+ automatically performed when sorcery is opened for a module. 2)
+ Sorcery will not attempt to apply the same wizard to an object
+ type more than once. 3) Sorcery gives more exact results when
+ attempting to apply a wizard, whether as the default or based on
+ configuration. Sorcery unit tests still pass for me after making
+ these changes. Review: https://reviewboard.asterisk.org/r/3326
+ ........ Merged revisions 411159 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-04-01 22:42 +0000 [r411637-411639] Richard Mudgett <rmudgett@digium.com>
+
+ * res/parking/parking_bridge.c, /: res_parking: Minor tweaks. * Use
+ ast_bridge_channel_lock()/ast_bridge_channel_unlock() instead of
+ ao2_lock()/ao2_unlock() for struct ast_bridge_channel variables.
+ * Use ast_copy_string() instead of inlining it. * Remove an
+ already done TODO comment. * Some whitespace tweaks. ........
+ Merged revisions 411638 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+ * main/stasis_channels.c, /: stasis_channels.c: Eliminate another
+ overuse of RAII_VAR(). ........ Merged revisions 411636 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-04-01 16:52 +0000 [r411587] Joshua Colp <jcolp@digium.com>
+
+ * /, apps/app_queue.c: app_queue: Fix a bug where realtime members
+ would be deleted during reload causing waiting callers to get
+ ejected. This patch causes realtime queue members to remain in
+ queues during the reload process. Previously these members would
+ be removed causing any waiting callers to be ejected from the
+ queue with a reason of "EXITEMPTY". ASTERISK-23547 #close
+ ASTERISK-23547 #comment Patch
+ app_queue_fix_realtime_reload_1.8_trunk.patch submitted by Italo
+ Rossi (license 6409) Review:
+ https://reviewboard.asterisk.org/r/3404/ ........ Merged
+ revisions 411584 from
+ http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
+ revisions 411585 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 411586 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-03-28 18:32 +0000 [r411556] Matthew Jordan <mjordan@digium.com>
+
+ * include/asterisk/res_hep.h (added), res/res_hep_pjsip.c (added),
+ res/res_hep.exports.in (added), configs/hep.conf.sample (added),
+ CHANGES, res/res_hep.c (added), /: res_hep/res_hep_pjsip: Add a
+ HEPv3 capture agent module and a logger for PJSIP This patch adds
+ the following: (1) A new module, res_hep, which implements a
+ generic packet capture agent for the Homer Encapsulation Protocol
+ (HEP) version 3. Note that this code is based on a patch provided
+ by Alexandr Dubovikov; I basically just wrapped it up, added
+ configuration via the configuration framework, and threw in a
+ taskprocessor. (2) A new module, res_hep_pjsip, which forwards
+ all SIP message traffic that passes through the res_pjsip stack
+ over to res_hep for encapsulation and transmission to a HEPv3
+ capture server. Much thanks to Alexandr for his Asterisk patch
+ for this code and for a *lot* of patience waiting for me to port
+ it to 12/trunk. Due to some dithering on my part, this has taken
+ the better part of a year to port forward (I still blame CDRs for
+ the delay). ASTERISK-23557 #close Review:
+ https://reviewboard.asterisk.org/r/3207/ ........ Merged
+ revisions 411534 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-03-28 18:00 +0000 [r411533] Alexandr Anikin <may@telecom-service.ru>
+
+ * addons/ooh323c/src/ooh323.c, addons/ooh323c/src/ooGkClient.c,
+ addons/chan_ooh323.c, /, addons/ooh323c/src/oochannels.c,
+ addons/ooh323c/src/ooCmdChannel.c, addons/ooh323c/src/ooq931.c:
+ process stack command even if gatekeeper client isn't register
+ don't destroy gatekeeper client if it is not started don't
+ destroy gatekeeper client in some sort of gatekeeper errors
+ signal rtp create condition when call cleared before rtp
+ structure created (closes issue ASTERISK-23460) Reported by:
+ Dmitry Melekhov Patches: ASTERISK-23460-2.patch Tested by: Dmitry
+ Melekhov ........ Merged revisions 411531 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 411532 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-03-28 17:41 +0000 [r411515-411530] Matthew Jordan <mjordan@digium.com>
+
+ * rest-api/api-docs/channels.json,
+ rest-api/api-docs/recordings.json,
+ rest-api/api-docs/endpoints.json, rest-api/api-docs/events.json,
+ /, rest-api/api-docs/playbacks.json, UPGRADE.txt,
+ rest-api/api-docs/sounds.json, rest-api/resources.json, CHANGES,
+ include/asterisk/manager.h, rest-api/api-docs/bridges.json,
+ rest-api/api-docs/deviceStates.json,
+ rest-api/api-docs/mailboxes.json,
+ rest-api/api-docs/asterisk.json,
+ rest-api/api-docs/applications.json: Update API versions and
+ UPGRADE/CHANGES for 12.2.0 This patch does the following: * It
+ updates the AMI version to 2.2.0 to indicate backwards compatible
+ changes have been made since the last release * It updates the
+ ARI version to 1.2.0 to indicate backwards compatible changes
+ have been made since the last release * It updates the
+ UPGRADE/CHANGES files with changes that were not mentioned
+ ........ Merged revisions 411529 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+ * UPGRADE.txt, res/res_config_odbc.c: res_config_odbc: Fix for
+ nullable integer columns and keyfield existence check in
+ update_odbc. This patch fixes setting nullable integer columns to
+ NULL instead of an empty string, which fails for PostgreSQL, for
+ example. The current code is supposed to do so, but the check is
+ broken. The patch also allows the first column in the list to be
+ a nullable integer. Also, the check for existence of a mandatory
+ column checked for the first column in the list instead of the
+ key field lookup column. This patch fixes that issue as well.
+ Finally, the compatibility option allow_empty_string_in_nontext,
+ which was added to previous revisions to allow for some database
+ backends with certain schemas to function, has been removed.
+ Review: https://reviewboard.asterisk.org/r/3335 ASTERISK-23459
+ #close ASTERISK-23351 #close (closes issue ASTERISK-23459)
+ Reported by: zvision patches: res_config_odbc.diff uploaded by
+ zvision (License 5755)
+
+2014-03-28 16:18 +0000 [r411469] Scott Griepentrog <sgriepentrog@digium.com>
+
+ * main/tcptls.c, main/manager.c, /, main/http.c: http: response
+ body often missing after specific request This patch works around
+ a problem with the HTTP body being dropped from the response to a
+ specific client and under specific circumstances: a) Client
+ request comes from node.js user agent "Shred" via use of
+ swagger-client library. b) Asterisk and Client are *not* on the
+ same host or TCP/IP stack In testing this problem, it has been
+ determined that the write of the HTTP body is lost, even if the
+ data is written using low level write function. The only solution
+ found is to instruct the TCP stack with the shutdown function to
+ flush the last write and finish the transmission. See review for
+ more details. ASTERISK-23548 #close (closes issue ASTERISK-23548)
+ Reported by: Sam Galarneau Review:
+ https://reviewboard.asterisk.org/r/3402/ ........ Merged
+ revisions 411462 from
+ http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
+ revisions 411463 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 411465 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-03-28 15:48 +0000 [r411375-411460] Matthew Jordan <mjordan@digium.com>
+
+ * UPGRADE.txt, /: UPGRADE: Note IAX2 compatibility issue between
+ 1.4 and 1.8+ systems. ........ Merged revisions 411457 from
+ http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
+ revisions 411458 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 411459 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+ * contrib/realtime/mysql/voicemail_messages.sql (removed),
+ contrib/realtime/postgresql/realtime.sql (removed),
+ contrib/realtime/mysql/voicemail_data.sql (removed),
+ contrib/realtime/mysql/musiconhold.sql (removed),
+ contrib/realtime/mysql/queue_log.sql (removed),
+ contrib/realtime/mysql/voicemail.sql (removed),
+ contrib/realtime/mysql/sippeers.sql (removed), /,
+ contrib/realtime/mysql/iaxfriends.sql (removed),
+ contrib/realtime/mysql/meetme.sql (removed): contrib/realtime:
+ Remove empty SQL script files Since the relatime scripts are now
+ managed by Alembic, the previous realtime scripts were previously
+ removed. However, the removal process messed up, as the files
+ were still in the repository. The contents were just empty. This
+ removes the files from the tree. ........ Merged revisions 411442
+ from http://svn.asterisk.org/svn/asterisk/branches/12
+
+ * /, channels/sip/include/sip.h: chan_sip: Add MESSAGE request to
+ allowed methods The allowed methods advertised by chan_sip did
+ not previously note the MESSAGE request. Even in Asterisk 1.8, we
+ do accept in-dialog MESSAGE requests; we should advertise that we
+ support MESSAGE requests. ASTERISK-23504 #close ASTERISK-23504
+ #comment Reported by: Martin Kontsek ASTERISK-23504 #comment
+ Patch sip.h_patch.diff uploaded by Martin Kontsek (license 6587)
+ Review: https://reviewboard.asterisk.org/r/3396/ ........ Merged
+ revisions 411372 from
+ http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
+ revisions 411373 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 411374 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-03-27 19:21 +0000 [r411312-411328] Corey Farrell <git@cfware.com>
+
+ * funcs/func_global.c, apps/app_speech_utils.c,
+ apps/confbridge/conf_config_parser.c,
+ funcs/func_callcompletion.c, funcs/func_frame_trace.c,
+ funcs/func_callerid.c, main/message.c, /, res/res_mutestream.c,
+ channels/pjsip/dialplan_functions.c,
+ res/res_pjsip_header_funcs.c, funcs/func_pitchshift.c,
+ funcs/func_groupcount.c, funcs/func_volume.c, funcs/func_odbc.c,
+ funcs/func_channel.c, funcs/func_cdr.c, funcs/func_blacklist.c,
+ apps/app_stack.c, apps/app_voicemail.c, res/res_calendar.c,
+ apps/app_jack.c, funcs/func_dialplan.c, funcs/func_speex.c,
+ channels/chan_sip.c, funcs/func_math.c, funcs/func_strings.c,
+ funcs/func_jitterbuffer.c, res/res_xmpp.c, channels/chan_iax2.c,
+ main/features_config.c, res/res_jabber.c: Fix dialplan function
+ NULL channel safety issues (closes issue ASTERISK-23391) Reported
+ by: Corey Farrell Review:
+ https://reviewboard.asterisk.org/r/3386/ ........ Merged
+ revisions 411313 from
+ http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
+ revisions 411314 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 411315 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+ * main/format.c, include/asterisk.h, /: main/formats: Fix crash in
+ ast_format_cmp during non-clean shutdown. * Update asterisk.h to
+ reflect availability of ast_register_cleanup in 11.9. * Use
+ ast_register_cleanup for format_attr_shutdown. (closes issue
+ ASTERISK-23103) Reported by: JoshE ........ Merged revisions
+ 411310 from http://svn.asterisk.org/svn/asterisk/branches/11
+ ........ Merged revisions 411311 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-03-27 14:21 +0000 [r411296] Mark Michelson <mmichelson@digium.com>
+
+ * main/sorcery.c, /: Give sorcery instances a reference to their
+ wizards. On graceful shutdown, sorcery wizards are all killed
+ off, but it is possible for sorcery instances to still have
+ dangling pointers after this, possibly causing a crash. Giving
+ the sorcery instances a reference to their wizards ensures that
+ the wizard reference will remain valid for the lifetime of the
+ sorcery instance. Review: https://reviewboard.asterisk.org/r/3401
+ ........ Merged revisions 411295 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-03-26 22:45 +0000 [r411246] Joshua Colp <jcolp@digium.com>
+
+ * /, main/say.c: say: Fix a bug where SayNumber in Polish tries to
+ play incorrect sound. This change fixes a bug where calling
+ SayNumber with a number divisible by 100 using the Polish
+ language would cause the code to attempt to play a sound file
+ with an empty name. (closes issue ASTERISK-23509) Reported by:
+ zvision Review: https://reviewboard.asterisk.org/r/3378/ ........
+ Merged revisions 411243 from
+ http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
+ revisions 411244 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 411245 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-03-26 16:15 +0000 [r411194] Jonathan Rose <jrose@digium.com>
+
+ * /, channels/chan_sip.c, configs/sip.conf.sample: chan_sip: Send
+ real CallerID information with P-Assserted-Identity (RFC-3325)
+ Prior too this patch, the P-Asserted-Identity header would
+ include anonymous caller id information which seems to go against
+ the point of the P-Asserted-Identity header. Now the real caller
+ ID information will be included in this header. Also, no privacy
+ header would be included. This patch adds 'Privacy: id' to
+ outgoing SIP messages that include the P-Asserted-Identity
+ header. (closes issue AST-1301) ........ Merged revisions 411189
+ from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........
+ Merged revisions 411190 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 411193 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-03-26 16:05 +0000 [r411192] Richard Mudgett <rmudgett@digium.com>
+
+ * /,
+ contrib/ast-db-manage/config/versions/4c573e7135bd_fix_tos_field_types.py:
+ Fix 'alembic branches' merge conflict as described by the web
+ page. ........ Merged revisions 411191 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-03-25 18:44 +0000 [r411174] Sean Bright <sean@malleable.com>
+
+ * /, res/ari/config.c: ARI: Don't complain about missing ARI users
+ when we aren't enabled Currently, if ARI is not enabled it will
+ still complain that there are no configured users. This patch
+ checks to see if ARI is enabled before logging and error or
+ iterating the container to validate the users. Review:
+ https://reviewboard.asterisk.org/r/3391/ ........ Merged
+ revisions 411173 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-03-25 17:40 +0000 [r411158] Mark Michelson <mmichelson@digium.com>
+
+ * /, res/res_pjsip/pjsip_configuration.c, UPGRADE.txt,
+ res/res_pjsip_messaging.c, res/res_pjsip.c,
+ include/asterisk/res_pjsip.h: Add a "message_context" option for
+ PJSIP endpoints. ........ Merged revisions 411157 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-03-25 16:57 +0000 [r411142] Richard Mudgett <rmudgett@digium.com>
+
+ * res/res_pjsip/pjsip_options.c, res/res_pjsip.c,
+ include/asterisk/res_pjsip.h, /: res_pjsip: Fix contact
+ authenticate_qualify endpoint lookup when qualifing a contact. *
+ Fixed bad use of ao2_find() in on_endpoint(). * Replaced use of
+ find_endpoints() with find_an_endpoint() since only the first
+ found endpoint is ever needed. * Fixed qualify_contact_cb() to
+ update the contact with the aor authenticate_qualify setting.
+ Otherwise, permanent contacts in the aor type sections would have
+ a config line order dependancy. * Fixed off nominal path contact
+ ref leak in qualify_contact(). The comment saying the unref is
+ not needed was wrong. * Fixed off nominal path use of the
+ endpoint parameter if it is NULL in send_out_of_dialog_request().
+ * Added missing off nominal path unref of pjsip tdata in
+ send_out_of_dialog_request(). * Fixed off nominal path failing to
+ call the callback in send_request_cb() when the request is
+ challenged for authentication. * Eliminated silly RAII_VAR() use
+ in qualify_contact_cb(). * Updated ast_sip_send_request() doxygen
+ to better reflect reality. (closes issue ASTERISK-23254) Reported
+ by: rmudgett Review: https://reviewboard.asterisk.org/r/3381/
+ ........ Merged revisions 411141 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-03-25 16:06 +0000 [r411092] Kinsey Moore <kmoore@digium.com>
+
+ * /, channels/chan_sip.c: chan_sip: Fix incorrect use of timers If
+ update_provisional_keepalive() is called while
+ send_provisional_keepalive_full() is waiting on the PVT lock,
+ then pvt->provisional_keepalive_sched_id will be changed to a new
+ sched_id value by update_provisional_keepalive(), but that new
+ sched_id then may be overwritten with -1 by
+ send_provisional_keepalive_full(), killing the pvt's reference to
+ a schedule and "leaking" the reference. (closes issue
+ ASTERISK-22079) Review: https://reviewboard.asterisk.org/r/3368/
+ Reported by: Jamuel Starkey, Matteo, Leif Madsen, Steve Davies
+ Patches: provisional_keepalive_fix.diff uploaded by Steve Davies
+ (license 5012) ........ Merged revisions 411088 from
+ http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
+ revisions 411089 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 411091 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-03-25 15:56 +0000 [r411090] Jonathan Rose <jrose@digium.com>
+
+ * /, res/res_stasis.c: ARI: Resolve a subscription leak against
+ implicit bridge subscriptions When a channel in a stasis
+ application is joined to a bridge, a subscription for that bridge
+ is created implicitly for the stasis application serving the
+ channel. Prior to this patch, subsequent removals of the channel
+ from the bridge would leave the subscription open. Review:
+ https://reviewboard.asterisk.org/r/3380/ ........ Merged
+ revisions 411086 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-03-25 15:47 +0000 [r411073-411087] Richard Mudgett <rmudgett@digium.com>
+
+ * utils/conf2ael.c, main/lock.c, utils/ael_main.c: Revert -r411073.
+ It didn't help and blew up the system.
+
+ * utils/ael_main.c, utils/conf2ael.c, main/lock.c: locking: Add
+ temporary sanity checks. Add some temporary sanity checks to hunt
+ for locking problems with the masquerade supertest.
+
+2014-03-24 21:39 +0000 [r411024] Joshua Colp <jcolp@digium.com>
+
+ * /, channels/chan_sip.c: chan_sip: Always use fromdomain if set
+ for domain, even if callerid is set to restricted. (closes issue
+ ASTERISK-20841) Reported by: Kelly Goedert ........ Merged
+ revisions 411021 from
+ http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
+ revisions 411022 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 411023 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-03-21 16:04 +0000 [r410996] Richard Mudgett <rmudgett@digium.com>
+
+ * /, res/res_pjsip_registrar.c: res_pjsip_registrar.c:
+ Miscellaneous cleanup in rx_task(). * Fix variable shadowing of
+ 'updated' by renaming it to 'contact_update'. * Checked
+ 'contact_update' for ast_sorcery_copy() failure. * Removed silly
+ use of RAII_VAR() for 'contact_update'. ........ Merged revisions
+ 410995 from http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-03-21 15:50 +0000 [r410981-410994] Sean Bright <sean@malleable.com>
+
+ * res/ael/ael.flex, utils/Makefile, pbx/pbx_ael.c,
+ res/ael/ael_lex.c: Make the AEL load process less chatty.
+ Switched a bunch of LOG_NOTICEs to ast_debug. This time without
+ breaking the build.
+
+ * pbx/pbx_ael.c, res/ael/ael_lex.c, res/ael/ael.flex: Revert
+ r410981. aelparse blew up.
+
+ * main/config.c: Remove a LOG_NOTICE from
+ ast_config_engine_register. There is enough indication from the
+ CLI that we are loading a realtime engine as it is.
+
+ * pbx/pbx_ael.c, res/ael/ael_lex.c, res/ael/ael.flex: Make the AEL
+ load process less chatty. Switched a bunch of LOG_NOTICEs to
+ ast_debug.
+
+2014-03-20 23:02 +0000 [r410967] Jonathan Rose <jrose@digium.com>
+
+ * apps/app_confbridge.c, /: app_confbridge: Fix bug - users with
+ startmuted set don't start muted (closes issue ASTERISK-23461)
+ Reported by: Chico Manobela Review:
+ https://reviewboard.asterisk.org/r/3373/ ........ Merged
+ revisions 410965 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 410966 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-03-20 16:35 +0000 [r410950] Richard Mudgett <rmudgett@digium.com>
+
+ * include/asterisk/rtp_engine.h, main/dial.c, main/manager.c, /,
+ main/channel_internal_api.c, main/core_unreal.c,
+ include/asterisk/channel.h, res/ari/resource_channels.c,
+ res/res_stasis_snoop.c: assigned-uniqueids: Miscellaneous cleanup
+ and fixes. * Fix memory leak in ast_unreal_new_channels(). Made
+ it generate the ;2 uniqueid on a stack variable instead of
+ mallocing it. * Made send error response to ARI and AMI requests
+ instead of just logging excessive uniqueid length and allowing
+ truncation. action_originate() and
+ ari_channels_handle_originate_with_id(). * Fixed minor truncating
+ uniqueid hole when generating the ;2 uniqueid string length.
+ Created public and internal lengths of uniqueid. The internal
+ length can handle a max public uniqueid plus an appended ;2. *
+ free() and ast_free() are NULL tolerant so they don't need a NULL
+ test before calling. * Made use better struct initialization
+ format instead of the position dependent initialization format.
+ Also anything not explicitly initialized in the struct is
+ initialized to zero by the compiler. * Made
+ ast_channel_internal_set_fake_ids() use the safer
+ ast_copy_string() instead of strncpy(). Review:
+ https://reviewboard.asterisk.org/r/3371/ ........ Merged
+ revisions 410949 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-03-19 17:27 +0000 [r410934] Mark Michelson <mmichelson@digium.com>
+
+ * /, res/res_pjsip_endpoint_identifier_ip.c: PJSIP: Allow for
+ identify sections to be specified in sorcery.conf. "identify" is
+ a special type of configuration object in PJSIP because unlike
+ the other objects, it is not provided by the base res_pjsip
+ module. Instead, it is provided by the
+ res_pjsip_endpoint_identifier_ip module. If using the default
+ sorcery wizard (config,criteria=type=identify) then things work
+ because the module that applies the default wizard is the correct
+ module. However, if attempting to use sorcery.conf to apply an
+ alternate wizard, it was not possible. If you attempted to
+ specify the identify object type in the res_pjsip section, then
+ the object could not be registered since the object was
+ undocumented for the res_pjsip module. There was no alternate
+ configuration section defined for it, so you were out of luck if
+ you wanted to override the default wizard. With this change, the
+ identify section will properly have a sorcery.conf-based wizard
+ applied when the identify definition is within the
+ res_pjsip_endpoint_identifier_ip section. ........ Merged
+ revisions 410933 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-03-19 14:25 +0000 [r410905-410919] Joshua Colp <jcolp@digium.com>
+
+ * res/res_stasis.c, /: res_stasis: Fix a bug where the default
+ bridge type was not set. ........ Merged revisions 410918 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+ * CHANGES, res/res_stasis.c, rest-api/api-docs/bridges.json, /,
+ res/ari/resource_bridges.h: res_stasis: Extend bridge type to be
+ a comma separated list of bridge attributes. This change turns
+ the bridge type field into a comma separated list of attributes.
+ These attributes include: mixing, holding, dtmf_events, and
+ proxy_media. By setting the various attributes a user can control
+ the type of bridge created with the behavior they need for their
+ application. (closes issue ASTERISK-23437) Reported by: Matt
+ Jordan Review: https://reviewboard.asterisk.org/r/3359/ ........
+ Merged revisions 410904 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-03-19 02:33 +0000 [r410891] Matthew Jordan <mjordan@digium.com>
+
+ * res/res_ari.c, /: res_ari: Fix documentation schema error
+ ........ Merged revisions 410890 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-03-18 23:32 +0000 [r410877] Rusty Newton <rnewton@digium.com>
+
+ * res/res_ari.c, /: res_ari: Add notes about Asterisk HTTP server
+ to the "enabled" config option for the res_ari general section
+ Added note and see-also reminding user to enable the HTTP server.
+ (closes issue ASTERISK-22499) Reported by: Rusty Newton ........
+ Merged revisions 410876 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-03-18 15:45 +0000 [r410863] Scott Griepentrog <sgriepentrog@digium.com>
+
+ * /, main/http.c: ARI: allow json content type with zero length
+ body When a request was received with a Content-type of json, the
+ body was sent for json parsing - even if it was zero length. This
+ resulted in ARI requests failing that were valid, such as a
+ channel DELETE with no parameters. The code has now been changed
+ to skip json parsing with zero content length. (closes issue
+ SWP-6748) Reported by: Samuel Galarneau Review:
+ https://reviewboard.asterisk.org/r/3360/ ........ Merged
+ revisions 410858 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-03-18 15:28 +0000 [r410862] Matthew Jordan <mjordan@digium.com>
+
+ * main/cdr.c, /: cdr: Add asserts for when we don't know about a
+ CDR for a channel In the CDR core, every channel should either be
+ filtered out (due to being an 'internal' channel used as an
+ implementation detail, such as playing media back into a bridge)
+ or it should get a CDR. Even if that CDR ends up being discarded,
+ we still give the channel a CDR in case we end up needing it. If
+ we hit a situation where a channel does not have a CDR, we should
+ blow up in -dev-mode. Asserts are appropriate for that. This
+ patch adds those asserts, as they would have quickly caught the
+ error fixed by r410814. ........ Merged revisions 410861 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-03-18 12:45 +0000 [r410845] Joshua Colp <jcolp@digium.com>
+
+ * /, res/res_pjsip/config_system.c: res_pjsip: Fix memory leak of
+ nameservers in off-nominal resolver creation failure. Thanks
+ Walter Doekes! ........ Merged revisions 410844 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-03-18 11:52 +0000 [r410831] Sean Bright <sean@malleable.com>
+
+ * res/res_fax_spandsp.c, /: res_fax_spandsp: Use g711_free() when
+ available. Per Johann Steinwendtner on the asterisk-dev mailing
+ list:
+ http://lists.digium.com/pipermail/asterisk-dev/2014-March/066102.html
+ g711_free() was introduced in spandsp 0.0.6pre4 and
+ g711_release() became a noop. I opted not to remove the call to
+ g711_release() since it is harmless and to call g711_free() if we
+ have a sufficiently recent version of spandsp. (issue
+ ASTERISK-20149) Reported by: Alexandr Gordeev ........ Merged
+ revisions 410829 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 410830 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-03-18 02:09 +0000 [r410814] Richard Mudgett <rmudgett@digium.com>
+
+ * main/stasis_cache.c, /: stasis_cache: Use the right variable in
+ the cache entry ao2 cmp function. ........ Merged revisions
+ 410813 from http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-03-17 22:54 +0000 [r410794-410796] Joshua Colp <jcolp@digium.com>
+
+ * include/asterisk/dns.h, CHANGES,
+ res/res_pjsip/include/res_pjsip_private.h, res/res_pjsip.c,
+ main/dns.c, /, res/res_pjsip/config_system.c: res_pjsip: Enable
+ PJSIP DNS client support. This change enables DNS client support
+ within PJSIP. System nameservers are automatically discovered
+ using res_init or res_ninit. If this fails then PJSIP will resort
+ to using gethostbyname for resolution. By enabling this support
+ we gain SRV support, failover, and weight support. (closes issue
+ ASTERISK-23435) Reported by: Matt Jordan Review:
+ https://reviewboard.asterisk.org/r/3343/ ........ Merged
+ revisions 410795 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+ * res/res_pjsip_multihomed.c, /: res_pjsip_multihomed: Make address
+ replacement less aggressive. This change makes the
+ res_pjsip_multihomed module less aggressive when changing the
+ address in messages. It will now only occur if the transport in
+ use is bound to the any address OR if the system determined
+ source address matches the bound address of the transport in use.
+ Review: https://reviewboard.asterisk.org/r/3369/ ........ Merged
+ revisions 410793 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-03-17 22:24 +0000 [r410775] Russ Meyerriecks <rmeyerreicks@digium.com>
+
+ * /, main/callerid.c: callerid: Logic error in checksum processing
+ Callerid checksum-ing was being handled incorrectly here. When
+ the checksum is calculated to be 0x00, it will perform 0x100-0x00
+ which results in 0x100. This value will then fail the otherwise
+ correct callerid message. This patch changes the logic to simply
+ add the calculated checksum to the transmitted 2's compliment
+ checksum. Review: https://reviewboard.asterisk.org/r/3356/
+ (closes issue ASTERISK-23488) ........ This is a merge of merged
+ revisions 410750 410747 from
+ http://svn.asterisk.org/svn/asterisk/branches/12 I didn't want a
+ broken patch to be comitted to trunk so I pre-merge merged them.
+
+2014-03-17 19:35 +0000 [r410684-410699] Mark Michelson <mmichelson@digium.com>
+
+ * res/res_mwi_external.c, res/res_pjsip/config_system.c,
+ configs/sorcery.conf.sample, include/asterisk/sorcery.h,
+ res/res_pjsip/pjsip_configuration.c, tests/test_sorcery_astdb.c,
+ tests/test_sorcery.c, tests/test_sorcery_realtime.c,
+ main/sorcery.c, /: Revert changes to sorcery that accidentally
+ got committed. These changes were still up for review and have
+ not been approved yet. I must have had the changes in my working
+ copy when making a different change. ........ Merged revisions
+ 410696 from http://svn.asterisk.org/svn/asterisk/branches/12
+
+ * bridges/bridge_softmix.c, tests/test_sorcery.c, main/channel.c,
+ res/res_pjsip/config_system.c, res/res_mwi_external.c,
+ include/asterisk/bridge_channel.h, funcs/func_frame_trace.c,
+ configs/sorcery.conf.sample, res/res_pjsip/pjsip_configuration.c,
+ include/asterisk/sorcery.h, tests/test_sorcery_astdb.c,
+ include/asterisk/frame.h, main/bridge_channel.c,
+ tests/test_sorcery_realtime.c, main/sorcery.c,
+ res/res_stasis_playback.c, main/frame.c, /: Fix stuck channel in
+ ARI through the introduction of synchronous bridge actions.
+ Playing back a file to a channel in an ARI bridge would attempt
+ to wait until the playback concluded before returning. The method
+ used involved signaling the waiting thread in the ARI custom
+ playback function. The problem with this is that there were some
+ corner cases that were not accounted for: * If a bridge channel
+ could not be found, then we never would attempt the playback but
+ would still attempt to wait for the playback to complete. * If
+ the bridge playfile action failed to queue, we would still
+ attempt to wait for the playback to complete. * If the bridge
+ playfile action were queued but some circumstance caused the
+ playback not to occur (the bridge dies, the channel is removed
+ from the bridge), then we would never be notified. The solution
+ to this is to move the waiting logic into the bridge code. A new
+ bridge API function is added to queue a synchronous action on a
+ bridge. The waiting thread is notified when the queued frame has
+ been freed, either due to an error occurring or due to successful
+ playback. As a failsafe, the waiting thread has a 10 minute
+ timeout just in case there is a frame leak somewhere. Review:
+ https://reviewboard.asterisk.org/r/3338 ........ Merged revisions
+ 410673 from http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-03-17 16:48 +0000 [r410672] Richard Mudgett <rmudgett@digium.com>
+
+ * /, apps/confbridge/conf_chan_announce.c: app_confbridge: Add
+ missing destructor call to announcer channel destructor. ........
+ Merged revisions 410671 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-03-16 20:27 +0000 [r410651] Matthew Jordan <mjordan@digium.com>
+
+ * /, res/stasis/app.c: stasis/app.c: Add some extra debugging for
+ subscription counts Events are sent to a connected ARI
+ application based on the things that ARI application cares about.
+ These subscriptions can be set up implicitly - such as when that
+ ARI application creates a new object - or explicitly, via the
+ application resource's subscription operations. Debugging *why*
+ something was being sent to an application - or why something was
+ not being sent to an application - was a bit tricky, as there was
+ no debug information for the subscriptions. This patch adds some
+ debug level 3 statements that show the subscription counts for
+ applications. (Level 3 was chosen as it matches the verbose level
+ 3 statements elsewhere) ........ Merged revisions 410650 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-03-15 15:24 +0000 [r410639] Russell Bryant <russell@russellbryant.com>
+
+ * include/asterisk/framehook.h: framehook.h: Fix some doc typos.
+ There were a number of instances in this header file where
+ "function all" was intended to be "function call". This patch
+ fixes that up.
+
+2014-03-14 21:56 +0000 [r410626] Mark Michelson <mmichelson@digium.com>
+
+ * /, tests/test_sorcery_realtime.c: Fix failing realtime sorcery
+ tests. The store realtime callback needs to return a positive
+ value for sorcery to treat the store as a success. ........
+ Merged revisions 410625 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-03-14 21:36 +0000 [r410624] Jonathan Rose <jrose@digium.com>
+
+ * main/manager.c, /: manager: fix memory leak in manager_add_filter
+ function (closes issue ASTERISK-23420) Reported by: Etienne
+ Lessard Patches: manager_eventfilter_leak uploaded by Etienne
+ Lessard (license 6394) ........ Merged revisions 410609 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 410623 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-03-14 20:55 +0000 [r410591-410608] Mark Michelson <mmichelson@digium.com>
+
+ * /, main/db.c: Remove an extra ast_cond_wait() that slipped
+ through the patch. ........ Merged revisions 410606 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 410607 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+ * /, main/config.c, res/res_sorcery_realtime.c: Handle the return
+ values of realtime updates and stores more accurately. Realtime
+ backends' update and store callbacks return the number of rows
+ affected, or -1 if there was a failure. There were a couple of
+ issues: * The config API was treating 0 as a successful return,
+ and positive values as a failure. Now the config API treats
+ anything >= 0 as a success. * res_sorcery_realtime was treating 0
+ as a successful return from the store procedure, and any positive
+ values as a failure. Now sorcery treats anything > 0 as a
+ success. It still considers 0 a "failure" since there is no
+ change to report to observers. Review:
+ https://reviewboard.asterisk.org/r/3341 ........ Merged revisions
+ 410592 from http://svn.asterisk.org/svn/asterisk/branches/12
+
+ * /, res/res_pjsip_mwi.c: Prevent conflicts regarding unsolicited
+ and solicited MWI to an endpoint. If an endpoint is receiving
+ unsolicited MWI for a mailbox and then attempts to subscribe to
+ an AOR that provides MWI for the same mailbox, then the SUBSCRIBE
+ is rejected with a 500 response. Review:
+ https://reviewboard.asterisk.org/r/3345 ........ Merged revisions
+ 410590 from http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-03-14 17:56 +0000 [r410589] Scott Griepentrog <sgriepentrog@digium.com>
+
+ * /, CHANGES: uniqueid: Update CHANGES to reflect new features Note
+ the new features provided by uniqueid in the CHANGES file. (issue
+ ASTERISK-23120) Review: https://reviewboard.asterisk.org/r/3316/
+ ........ Merged revisions 410588 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-03-14 16:42 +0000 [r410575] Jonathan Rose <jrose@digium.com>
+
+ * /, main/acl.c, res/res_pjsip/pjsip_configuration.c,
+ contrib/ast-db-manage/config/versions/4c573e7135bd_fix_tos_field_types.py,
+ CHANGES, res/res_pjsip/config_transport.c,
+ include/asterisk/acl.h: PJSIP: TOS values should be represented
+ as decimals in sorcery objects (closes issue ASTERISK-23235)
+ Reported by: George Joseph Review:
+ https://reviewboard.asterisk.org/r/3324/ ........ Merged
+ revisions 410574 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-03-14 16:19 +0000 [r410567] Mark Michelson <mmichelson@digium.com>
+
+ * /, main/db.c: Prevent delayed astdb syncs. The syncing thread
+ sleeps for a second before waiting to be told to attempt to sync
+ again. If a signal were sent during this sleeping period, we
+ would end up having to wait until the next sync signal occurred
+ in order to sync up the astdb. This code rearrangement also
+ ensures that any pending transactions will be synced prior to
+ Asterisk shutting down. Patches: db_sync.patch by John Hardin
+ (License #6512) ........ Merged revisions 410556 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 410559 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-03-14 16:17 +0000 [r410560] Jonathan Rose <jrose@digium.com>
+
+ * res/ari/resource_bridges.c, /: ARI/bridges: Forward
+ Playback/Recording Started/Finished to bridge topic (closes issue
+ ASTERISK-23444) Reported by: Ben Merrills Review:
+ https://reviewboard.asterisk.org/r/3340/ ........ Merged
+ revisions 410558 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-03-14 16:01 +0000 [r410542-410557] Richard Mudgett <rmudgett@digium.com>
+
+ * include/asterisk/app.h, /, res/res_mwi_external.c, main/app.c:
+ res_mwi_external: Clear the stasis cache entry when the external
+ MWI is deleted. One of the things missing when external MWI
+ support was added was the ability to clear the stasis cache entry
+ of deleted external MWI mailboxes. Review:
+ https://reviewboard.asterisk.org/r/3325/ ........ Merged
+ revisions 410555 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+ * /, main/cdr.c: cdr.c: Add missing aow_unlock(cdr) in off nominal
+ path of handle_dial_message(). * Trivial common code hoisting in
+ handle_bridge_leave_message(). * Some whitespace fixing. ........
+ Merged revisions 410541 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-03-13 19:33 +0000 [r410528] Kinsey Moore <kmoore@digium.com>
+
+ * res/stasis/control.h, res/res_stasis.c, /, res/stasis/control.c:
+ ARI: Ensure managing application receives ChannelEnteredBridge
+ messages This fixes an issue where a Stasis application running
+ over ARI and subscribed to ari/events could miss the
+ ChannelEnteredBridge event because it did not subscribe to the
+ new bridge fast enough. To accomplish this, it subscribes the
+ application controlling the channel to the new bridge before
+ adding it to that bridge which required the stasis_app_control
+ structure to maintain a reference to the stasis_app. (closes
+ issue ASTERISK-23295) Review:
+ https://reviewboard.asterisk.org/r/3336/ ........ Merged
+ revisions 410527 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-03-13 13:25 +0000 [r410511] Joshua Colp <jcolp@digium.com>
+
+ * res/res_pjsip_multihomed.c, /: Multiple revisions 410509-410510
+ ........ r410509 | file | 2014-03-13 06:23:14 -0700 (Thu, 13 Mar
+ 2014) | 2 lines res_pjsip_multihomed: Fix a bug where the 200 OK
+ for a REGISTER would contain the wrong contact. ........ r410510
+ | file | 2014-03-13 06:24:17 -0700 (Thu, 13 Mar 2014) | 2 lines
+ res_pjsip_multihomed: Remove change for testing fix. ........
+ Merged revisions 410509-410510 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-03-12 19:06 +0000 [r410492-410494] Richard Mudgett <rmudgett@digium.com>
+
+ * res/res_musiconhold.c, main/channel.c, /: res_musiconhold.c:
+ Generate MOH start/stop events whenever the MOH stream is
+ started/stopped. * Made res_musiconhold.c always post the
+ MusicOnHoldStart/MusicOnHoldStop events when it actually
+ starts/stops the music streams. This allows the events to always
+ happen when MOH starts/stops. The event posting code was moved to
+ the MOH alloc/release routines. * Made channel_do_masquerade()
+ stop any MOH on the original channel before masquerading so the
+ original channel will get a stop event with correct information.
+ * Cleaned up a couple odd codings in moh_files_alloc() and
+ moh_alloc() dealing with the music state variable. (issue
+ ASTERISK-23311) Reported by: Benjamin Keith Ford Review:
+ https://reviewboard.asterisk.org/r/3306/ ........ Merged
+ revisions 410493 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+ * apps/confbridge/conf_state.c,
+ apps/confbridge/conf_state_single.c,
+ apps/confbridge/conf_state_inactive.c,
+ apps/confbridge/conf_state_single_marked.c, /: app_confbridge:
+ Make explicitly stop MOH if a user is kicked or hangs up while
+ MOH is playing. When MOH is playing to a user in a conference and
+ the user is kicked or hangs up from the conference then the AMI
+ MusicOnHoldStop events didn't happen. (Asterisk v11 AMI event:
+ MusicOnHold, state:Stop) (closes issue ASTERISK-23311) Reported
+ by: Benjamin Keith Ford Review:
+ https://reviewboard.asterisk.org/r/3306/ ........ Merged
+ revisions 410490 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 410491 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-03-12 12:51 +0000 [r410452-410472] Joshua Colp <jcolp@digium.com>
+
+ * res/res_pjsip_multihomed.c, /: res_pjsip_multihomed: Fix a bug
+ where outgoing messages for TCP would go out using UDP. This
+ change fixes a bug where the code which changes the transport did
+ not check whether the message is going out over UDP or not before
+ changing it. For TCP and TLS transports we don't need to change
+ the transport as the correct one is already chosen. ........
+ Merged revisions 410471 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+ * res/res_pjsip_multihomed.c (added), /: res_pjsip_multihomed: Add
+ module which places the correct address within messages. Due to
+ how messages are handled within PJSIP it is not until a message
+ is actually sent that the destination is reliably known. This
+ means that the addresses placed within the message may not be of
+ the interface the message is being sent out on. This module
+ determines what interface a message is being sent on and updates
+ the message to contain the correct address if applicable. This
+ module was tested by myself in a virtualized environment with
+ multiple interfaces and also by Kinsey Moore in the following
+ configuration: Networks: * 10.24.16.0/21 ** hard phone ** default
+ gateway * 10.24.64.0/21 ** softphone with pjsip-based stack
+ Transport details: bind address: 0.0.0.0 protocol: UDP All
+ endpoints were tested with explicitly configured transports and
+ unconfigured transports. This was tested with inbound and
+ outbound calls, both of which were experiencing detrimental
+ effects from incorrect IP addresses in SIP messages. These
+ effects were only experienced by the soft phone on the 10.24.64.0
+ network since the messages to the hard phone on the 10.24.16.0
+ network had the correct IP address. (closes issue ASTERISK-23020)
+ Reported by: xrobau Review:
+ https://reviewboard.asterisk.org/r/3102/ ........ Merged
+ revisions 410451 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-03-10 17:21 +0000 [r410395] Richard Mudgett <rmudgett@digium.com>
+
+ * /, main/http.c: AST-2014-001: Stack overflow in HTTP processing
+ of Cookie headers. Sending a HTTP request that is handled by
+ Asterisk with a large number of Cookie headers could overflow the
+ stack. Another vulnerability along similar lines is any HTTP
+ request with a ridiculous number of headers in the request could
+ exhaust system memory. (closes issue ASTERISK-23340) Reported by:
+ Lucas Molas, researcher at Programa STIC, Fundacion; and Dr.
+ Manuel Sadosky, Buenos Aires, Argentina ........ Merged revisions
+ 410380 from http://svn.asterisk.org/svn/asterisk/branches/1.8
+ ........ Merged revisions 410381 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 410383 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-03-10 16:33 +0000 [r410369] Scott Griepentrog <sgriepentrog@digium.com>
+
+ * res/ari/resource_channels.c, main/manager.c, /: unqiueid: correct
+ max uniqueid length test This patch adds null string test prior
+ to checking for a max uniqueid value that was added in r410157.
+ ........ Merged revisions 410368 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-03-10 13:30 +0000 [r410346] Kinsey Moore <kmoore@digium.com>
+
+ * /, channels/chan_sip.c: AST-2014-002: chan_sip: Exit early on bad
+ session timers request This change allows chan_sip to avoid
+ creation of the channel and consumption of associated file
+ descriptors altogether if the inbound request is going to be
+ rejected anyway. (closes issue ASTERISK-23373) Reported by: Corey
+ Farrell Patches: chan_sip-earlier-st-1.8.patch uploaded by Corey
+ Farrell (license 5909) chan_sip-earlier-st-11.patch uploaded by
+ Corey Farrell (license 5909) ........ Merged revisions 410308
+ from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........
+ Merged revisions 410311 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 410329 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-03-10 12:53 +0000 [r410307] Joshua Colp <jcolp@digium.com>
+
+ * /, res/res_pjsip/pjsip_options.c, res/res_pjsip.c: AST-2014-003:
+ res_pjsip: When handling 401/407 responses don't assume a request
+ will have an endpoint. This change removes the assumption that an
+ outgoing request will always have an endpoint and makes the
+ authenticate_qualify option work once again. (closes issue
+ ASTERISK-23210) Reported by: Joshua Colp ........ Merged
+ revisions 410306 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-03-08 16:50 +0000 [r410288] George Joseph <george.joseph@fairview5.com>
+
+ * res/res_pjsip/config_auth.c, /, res/res_pjsip/location.c,
+ res/res_pjsip_outbound_registration.c,
+ res/res_pjsip_endpoint_identifier_ip.c,
+ include/asterisk/res_pjsip_cli.h, include/asterisk/sorcery.h,
+ res/res_pjsip/pjsip_cli.c, res/res_pjsip/pjsip_configuration.c,
+ res/res_pjsip/config_transport.c, main/sorcery.c,
+ include/asterisk/res_pjsip.h: pjsip_cli: Create pjsip show
+ channel and contact, and general cli code cleanup. Created the
+ 'pjsip show channel' and 'pjsip show contact' commands.
+ Refactored out the hated ast_hashtab. Replaced with
+ ao2_container. Cleaned up function naming. Internal only, no
+ public name changes. Cleaned up whitespace and brace formatting
+ in cli code. Changed some NULL checking from "if"s to
+ ast_asserts. Fixed some register/unregister ordering to reduce
+ deadlock potential. Fixed ast_sip_location_add_contact where the
+ 'name' buffer was too short. Fixed some self-assignment issues in
+ res_pjsip_outbound_registration. (closes issue ASTERISK-23276)
+ Review: http://reviewboard.asterisk.org/r/3283/ ........ Merged
+ revisions 410287 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-03-08 15:45 +0000 [r410275] Matthew Jordan <mjordan@digium.com>
+
+ * /, res/ari/resource_channels.c: resource_channels: Check if a
+ passed in ID is NULL before checking its length Calling strlen on
+ a NULL string is explosive. This patch checks whether or not the
+ passed in string is NULL or zero length before checking to see if
+ the string is too long. ........ Merged revisions 410274 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-03-07 22:56 +0000 [r410227] Corey Farrell <git@cfware.com>
+
+ * /, channels/chan_sip.c: chan_sip: Fix deadlock of monlock between
+ unload_module and do_monitor Release monlock before calling
+ pthread_join. This ensures do_monitor cannot freeze by locking
+ monlock during module unload. (closes issue ASTERISK-21406)
+ Reported by: Corey Farrell Review:
+ https://reviewboard.asterisk.org/r/3284/ ........ Merged
+ revisions 410224 from
+ http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
+ revisions 410225 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 410226 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-03-07 22:08 +0000 [r410212] Scott Griepentrog <sgriepentrog@digium.com>
+
+ * /, include/asterisk/sorcery.h: sorcery: correct field register
+ argument list This fixes mistakes I previously made in merging
+ gtjoseph's changes with mine. ........ Merged revisions 410211
+ from http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-03-07 21:54 +0000 [r410208-410210] Matthew Jordan <mjordan@digium.com>
+
+ * /, main/config_options.c: config_options: Display the see-also
+ information for CLI config option help The config option help
+ information has always parsed the <see-also> tags in the XML
+ documentation. Unfortunately, it just never bothered displaying
+ them on the CLI. With this patch, when you execute 'config show
+ help [module] [obj] [option]', it will display what other options
+ are useful to you. (closes issue ASTERISK-22008) Reported by:
+ Richard Mudgett ........ Merged revisions 410209 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+ * res/res_pjsip.c, /: res_pjsip: Fix documentation for one touch
+ recording see-also links The one touch recording options have
+ several see-also links between the various configuration options.
+ These were 'broken' by the snake casing of those options. This
+ patch corrects the see-also links such that they reference the
+ correct option names. ........ Merged revisions 410194 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-03-07 21:23 +0000 [r410207] Mark Michelson <mmichelson@digium.com>
+
+ * main/sorcery.c, res/res_sorcery_realtime.c, /,
+ include/asterisk/sorcery.h, tests/test_sorcery_realtime.c: Make
+ res_sorcery_realtime filter unknown retrieved results. When
+ retrieving data from a database or other realtime backend, it's
+ quite possible to retrieve variables that Asterisk does not care
+ about but that are legitimate to exist. Asterisk does not need to
+ throw a hissy fit when these variables are encountered but rather
+ just filter them out. Review:
+ https://reviewboard.asterisk.org/r/3305 ........ Merged revisions
+ 410187 from http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-03-07 21:11 +0000 [r410191] Scott Griepentrog <sgriepentrog@digium.com>
+
+ * main/sorcery.c, /, include/asterisk/sorcery.h,
+ res/res_pjsip/pjsip_configuration.c: pjsip: allow and disallow
+ show same codecs In order to prevent confusion over the allow and
+ disallow list of codecs being the same an option for registering
+ a field as an alias is added. The alias field will be read from
+ the configuration file, but afterwards is not listed as a known
+ field. With disallow set as an alias, the CLI command pjsip show
+ endpoint # will list the allow= field, but not the disallow
+ field. (closes issue ASTERISK-23092) Review:
+ https://reviewboard.asterisk.org/r/3193/ ........ Merged
+ revisions 410190 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-03-07 20:41 +0000 [r410174-410185] Richard Mudgett <rmudgett@digium.com>
+
+ * include/asterisk/devicestate.h, main/stasis_cache.c,
+ main/stasis_message.c, /, tests/test_devicestate.c,
+ include/asterisk/stasis.h, main/app.c, main/devicestate.c,
+ tests/test_stasis.c: stasis cache: Enhance to keep track of an
+ item from different entities. A stasis cache entry now contains
+ more than a single message/snapshot. It contains
+ messages/snapshots for the local entity as well as any remote
+ entities that post to the cached item. In addition callbacks can
+ be supplied when the cache is created to compute and post the
+ aggregate message/snapshot representing all entities stored in
+ the cache entry. * All stasis messages now have an eid to
+ indicate what entity posted it. * The stasis cache enhancements
+ allow device state to cache and aggregate the device states from
+ local and remote entities in a single operation. The cached
+ aggregate device state is available immediately after it is
+ posted to the stasis bus. This improves performance by
+ eliminating a cache dump and associated ao2 container traversals
+ to calculate the aggregate state. (closes issue ASTERISK-23204)
+ Reported by: Mark Michelson Review:
+ https://reviewboard.asterisk.org/r/3281/ ........ Merged
+ revisions 410184 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+ * tests/test_cel.c, channels/sig_pri.c, channels/sig_ss7.c,
+ include/asterisk/bridge.h, tests/test_cdr.c, channels/sig_pri.h,
+ channels/chan_dahdi.c, channels/sig_ss7.h, /: uniqueid: Fix
+ chan_dahdi, sig_pri, sig_ss7, test_cdr, and test_cel compiler
+ errors. (issue ASTERISK-23120) ........ Merged revisions 410171
+ from http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-03-07 15:47 +0000 [r410158] Scott Griepentrog <sgriepentrog@digium.com>
+
+ * tests/test_cdr.c, res/res_clioriginate.c, res/res_ari_bridges.c,
+ tests/test_substitution.c, res/res_stasis_playback.c,
+ channels/chan_multicast_rtp.c, apps/app_meetme.c, /,
+ main/bridge_basic.c, include/asterisk/channel_internal.h,
+ tests/test_app.c, apps/confbridge/conf_chan_record.c,
+ main/core_unreal.c, channels/chan_gtalk.c,
+ include/asterisk/stasis_app_playback.h,
+ res/ari/resource_bridges.c, channels/chan_jingle.c,
+ channels/chan_phone.c, pbx/pbx_spool.c,
+ res/ari/resource_bridges.h, res/parking/parking_tests.c,
+ channels/chan_motif.c, apps/app_confbridge.c,
+ res/ari/resource_channels.c, include/asterisk/pbx.h,
+ res/res_stasis.c, include/asterisk/bridge.h,
+ apps/app_voicemail.c, res/ari/resource_channels.h,
+ apps/app_dial.c, res/res_calendar_exchange.c,
+ channels/chan_vpb.cc, apps/app_page.c, apps/app_chanisavail.c,
+ include/asterisk/dial.h, main/core_local.c,
+ res/parking/parking_bridge_features.c,
+ tests/test_stasis_endpoints.c, res/parking/parking_bridge.c,
+ channels/chan_skinny.c, include/asterisk/stasis_app_snoop.h,
+ addons/chan_mobile.c, main/bridge_channel.c,
+ channels/chan_pjsip.c, channels/chan_mgcp.c,
+ channels/chan_unistim.c, main/pbx.c,
+ res/res_calendar_icalendar.c, main/ccss.c,
+ channels/chan_bridge_media.c, main/bridge.c,
+ tests/test_stasis_channels.c, apps/app_bridgewait.c,
+ apps/app_originate.c, res/res_calendar_caldav.c,
+ include/asterisk/channel.h, res/parking/parking_applications.c,
+ apps/app_followme.c, main/cel.c, apps/app_queue.c,
+ res/res_ari_channels.c, res/res_calendar_ews.c,
+ rest-api/api-docs/bridges.json, main/dial.c,
+ channels/chan_dahdi.c, channels/chan_h323.c, tests/test_cel.c,
+ rest-api/api-docs/channels.json,
+ include/asterisk/bridge_internal.h,
+ apps/confbridge/conf_chan_announce.c, res/res_calendar.c,
+ include/asterisk/core_unreal.h, addons/chan_ooh323.c,
+ res/stasis/control.c, channels/chan_sip.c,
+ main/channel_internal_api.c, include/asterisk/stasis_app.h,
+ res/res_stasis_snoop.c, channels/chan_console.c,
+ channels/chan_iax2.c, channels/chan_oss.c, apps/app_agent_pool.c,
+ main/channel.c, main/manager.c, channels/chan_misdn.c,
+ tests/test_voicemail_api.c, channels/chan_alsa.c,
+ channels/chan_nbs.c, main/message.c: uniqueid: channel linkedid,
+ ami, ari object creation with id's Much needed was a way to
+ assign id to objects on creation, and much change was necessary
+ to accomplish it. Channel uniqueids and linkedids are split into
+ separate string and creation time components without breaking
+ linkedid propgation. This allowed the uniqueid to be specified by
+ the user interface - and those values are now carried through to
+ channel creation, adding the assignedids value to every function
+ in the chain including the channel drivers. For local channels,
+ the second channel can be specified or left to default to a ;2
+ suffix of first. In ARI, bridge, playback, and snoop objects can
+ also be created with a specified uniqueid. Along the way, the
+ args order to allocating channels was fixed in chan_mgcp and
+ chan_gtalk, and linkedid is no longer lost as masquerade occurs.
+ (closes issue ASTERISK-23120) Review:
+ https://reviewboard.asterisk.org/r/3191/ ........ Merged
+ revisions 410157 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-03-07 05:04 +0000 [r410108] Matthew Jordan <mjordan@digium.com>
+
+ * /, channels/chan_sip.c: chan_sip: Allow static realtime members
+ to be qualified during module load. When a static realtime peer
+ with qualify=yes is loaded, Asterisk will fail to send an OPTIONS
+ request due to the lastms being equal to 0. This results in the
+ peer being unable to receive calls from Asterisk because the
+ status is permanently UNKNOWN. This patch allows an OPTIONS
+ request to be sent during module load by ignoring the lastms
+ value on startup only. Review:
+ https://reviewboard.asterisk.org/r/3294/ (closes issue
+ ASTERISK-17523) Reported by: Maciej Krajewski Tested by:
+ wushumasters patches: realtime_fix_11.7.0.txt uploaded by Trevor
+ Peirce (license 6112) ........ Merged revisions 410105 from
+ http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
+ revisions 410106 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 410107 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-03-06 23:47 +0000 [r410092] Richard Mudgett <rmudgett@digium.com>
+
+ * main/sorcery.c, /: sorcery.c: Fix off-nominal path ref and memory
+ leak in ast_sorcery_objectset_json_create(). * Made exit a loop
+ early on error in ast_sorcery_objectset_json_create(). * Removed
+ some dead code in ast_sorcery_objectset_create2(). ........
+ Merged revisions 410089 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-03-06 23:43 +0000 [r410091] Russell Bryant <russell@russellbryant.com>
+
+ * /, res/res_musiconhold.c: moh: fix a refcount error with realtime
+ MOH I observed a crash in res_musiconhold on an Asterisk 11
+ system using realtime MOH. Investigation of the backtrace showed
+ a corrupt mohclass, implying that it got destroyed before the
+ code expected it to. I went looking for reference counting errors
+ that could have caused this crash and this patch this result. It
+ contains 2 changes. 1) Remove a usless block of code that was
+ impossible to reach. There was even a comment indicating that it
+ was impossible to reach. The conditional includes
+ "!ast_test_flag(global_flags, MOH_CACHERTCLASSES)" and it's
+ inside of an if block with the opposite check
+ "ast_test_flag(global_flags, MOH_CACHERTCLASSES)". There's no
+ good reason to keep it around. 2) A similar block to #1 contained
+ a reference counting error. It stores state->class in the local
+ variable mohclass without increasing its reference count. The
+ reference count on mohclass is decremented at the end of the
+ function. This block of code probably very rarely runs, which
+ would help explain why this system was working fine for many
+ months before experiencing a crash. Review:
+ https://reviewboard.asterisk.org/r/3282/ ........ Merged
+ revisions 410043 from
+ http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
+ revisions 410044 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 410090 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-03-06 22:39 +0000 [r410042] George Joseph <george.joseph@fairview5.com>
+
+ * res/res_pjsip/config_auth.c, funcs/func_sorcery.c (added),
+ res/res_pjsip/location.c, res/res_pjsip_outbound_registration.c,
+ main/bucket.c, res/res_pjsip_endpoint_identifier_ip.c,
+ include/asterisk/config.h, include/asterisk/sorcery.h,
+ res/res_pjsip/pjsip_configuration.c, res/res_pjsip_acl.c,
+ CHANGES, tests/test_sorcery.c, res/res_pjsip/config_transport.c,
+ main/config.c, main/sorcery.c: sorcery: Create AST_SORCERY
+ dialplan function. This patch creates the AST_SORCERY dialplan
+ function which allows someone to retrieve any value from a
+ sorcery-based config file. It's similar to AST_CONFIG. The
+ creation of the function itself was fairly straightforward but it
+ required changes to the underlying sorcery infrastructure that
+ rippled into individual sorcery objects. The changes stemmed from
+ inconsistencies in how sorcery created ast_variable objectsets
+ from sorcery objects and the inconsistency in how individual
+ objects used that feature especially when it came to parameters
+ that can be specified multiple times like contact in aor and
+ match in identify. You can read more here...
+ http://lists.digium.com/pipermail/asterisk-dev/2014-February/065202.html
+ So, what this patch does, besides actually creating the
+ AST_SORCERY function, is the following... * Creates
+ ast_variable_list_append which is a helper to append one
+ ast_variable list to another. * Modifies the
+ ast_sorcery_object_field_register functions to accept the
+ already-defined sorcery_fields_handler callback. * Modifies
+ ast_sorcery_objectset_create to accept a parameter indicating
+ return type preference...a single ast_variable with all values
+ concatenated or an ast_variable list with multiple entries. Also
+ fixed a few bugs. * Modifies individual sorcery object
+ implementations to use the new function definition of the
+ ast_sorcery_object_field_register functions. * Modifies
+ location.c and res_pjsip_endpoint_identifier_ip.c to implement
+ sorcery_fields_handler handlers so they return multiple
+ occurrences as an ast_variable_list. * Added a whole bunch of
+ tests to test_sorcery. (closes issue ASTERISK-22537) Review:
+ http://reviewboard.asterisk.org/r/3254/
+
+2014-03-06 19:04 +0000 [r410029] Jonathan Rose <jrose@digium.com>
+
+ * include/asterisk/acl.h, /, main/acl.c,
+ res/res_pjsip/pjsip_configuration.c, UPGRADE.txt,
+ contrib/ast-db-manage/config/versions/4c573e7135bd_fix_tos_field_types.py
+ (added), res/res_pjsip/config_transport.c: pjsip configuration:
+ Make transport TOS values consistent with endpoints Transport TOS
+ values were interpreted as DSCP values without being documented
+ as such. Endpoint TOS values (tos_audio/tos_video) behaved
+ normally as TOS values have historically. This patch makes the
+ transport TOS values behave as TOS values and makes all TOS
+ values readable as string values (e.g. AF11). In addition,
+ alembic scripts have been updated to use the proper field types
+ for all TOS/COS values. (issue ASTERISK-23235) Reported by:
+ George Joseph Review: https://reviewboard.asterisk.org/r/3304/
+ ........ Merged revisions 410028 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-03-06 18:20 +0000 [r410027] Joshua Colp <jcolp@digium.com>
+
+ * res/ari/resource_channels.c, CHANGES,
+ res/ari/ari_model_validators.c,
+ rest-api/api-docs/recordings.json, res/ari/resource_bridges.c,
+ res/ari/ari_model_validators.h, /,
+ include/asterisk/stasis_app_recording.h,
+ res/res_stasis_recording.c: res_stasis_recording: Add a
+ "target_uri" field to recording events. This change adds a
+ target_uri field to the live recording object. It contains the
+ URI of what is being recorded. (closes issue ASTERISK-23258)
+ Reported by: Ben Merrills Review:
+ https://reviewboard.asterisk.org/r/3299/ ........ Merged
+ revisions 410025 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-03-06 15:58 +0000 [r410012] Mark Michelson <mmichelson@digium.com>
+
+ * res/res_pjsip_mwi.c, /: Don't attempt to link in an aggregate MWI
+ subscription if an endpoint does not aggregate MWI. Attempting to
+ link a NULL object into an ao2 container had been benign
+ previously, but since enabling DO_CRASH in the testsuite, this is
+ now causing a crash. It's better to be right here anyway.
+ ........ Merged revisions 410011 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-03-06 02:22 +0000 [r409996] Matthew Jordan <mjordan@digium.com>
+
+ * res/res_fax_spandsp.c, /: res_fax_spandsp: Fix crash when passing
+ ulaw/alaw data to spandsp When acting as a T.38 fax gateway,
+ res_fax_spandsp would at times cause a crash in libspandsp. This
+ would occur when, during fax tone detection, a ulaw/alaw frame
+ would be passed to modem_connect_tones_rx. That particular
+ routine expects the data to be in slin format. This patch looks
+ at the frame type and, if the data is ulaw/alaw, converts the
+ format to slin before passing it to modem_connect_tones_rx.
+ Review: https://reviewboard.asterisk.org/r/3296 (closes issue
+ ASTERISK-20149) Reported by: Alexandr Gordeev Tested by: Michal
+ Rybarik patches: spandsp_g711decode.diff uploaded by Michal
+ Rybarik (license 6578) ........ Merged revisions 409990 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 409991 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-03-06 00:33 +0000 [r409970-409977] Richard Mudgett <rmudgett@digium.com>
+
+ * apps/confbridge/conf_state_multi.c,
+ apps/confbridge/conf_state_inactive.c, /: app_confbridge: Remove
+ some noop code. ........ Merged revisions 409976 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+ * /, res/res_musiconhold.c: res_musiconhold.c: Remove some
+ unnecessary RAII_VAR() usage. * Made the moh_register() define
+ use useful parameter names. ........ Merged revisions 409967 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-03-05 20:41 +0000 [r409904-409919] Kinsey Moore <kmoore@digium.com>
+
+ * main/config.c, /: config: Fix inverted test The test of the
+ result of the stat() call was inverted such that its output was
+ only used if the call failed. This inverts the test so that the
+ output of stat() is used correctly. This was causing full reloads
+ on unchanged files. (closes issue ASTERISK-23383) Reported by:
+ David Woolley ........ Merged revisions 409916 from
+ http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
+ revisions 409917 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 409918 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+ * bridges/bridge_native_rtp.c, /: bridge_native_rtp: Fix crash
+ involving masquerade It is possible for a channel to be
+ masqueraded out of a bridge which means it may no longer have RTP
+ glue to check upon leaving said bridge. If this situation
+ occurred (it's possible at least during dial and call pickup)
+ then Asterisk would crash. This change makes sure the glue is
+ checked before use. (closes issue AST-1290) Reported by: John
+ Bigelow ........ Merged revisions 409900 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-03-05 18:51 +0000 [r409889] Richard Mudgett <rmudgett@digium.com>
+
+ * contrib/ast-db-manage/cdr/versions,
+ contrib/ast-db-manage/cdr/versions/210693f3123d_create_cdr_table.py,
+ /,
+ contrib/ast-db-manage/config/versions/28887f25a46f_create_queue_tables.py
+ (added), contrib/ast-db-manage/cdr.ini.sample (added),
+ contrib/ast-db-manage/cdr/env.py, contrib/ast-db-manage/cdr
+ (added), contrib/ast-db-manage/cdr/script.py.mako: alembic: Add
+ missing queue and CDR table creation scripts. * Added the queues
+ and queue_members tables to the config alembic scripts. * Added
+ the CDR table alembic creation script. The CDR table is more of
+ an example for new setups since the actual table can be fully
+ customized in cdr_adaptive_odbc.conf. (closes issue
+ ASTERISK-23233) Reported by: jmls Review:
+ https://reviewboard.asterisk.org/r/3227/ ........ Merged
+ revisions 409885 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-03-05 18:47 +0000 [r409888] Mark Michelson <mmichelson@digium.com>
+
+ * funcs/func_presencestate.c, /: Fix documentation for
+ PRESENCE_STATE to properly illustrate how to create a presence
+ hint. There was a missing comma. This was discovered by Dan
+ Kaplan. ........ Merged revisions 409886 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 409887 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-03-05 16:58 +0000 [r409836] David M. Lee <dlee@digium.com>
+
+ * main/config.c, /, configure, include/asterisk/autoconfig.h.in,
+ configure.ac: Corrected cross-platform stat nanosecond code When
+ nanosecond time resolution was added for identifying config file
+ changes, it didn't cover all of the myriad of ways that one might
+ obtain nanosecond time resolution off of struct stat. Rather than
+ complicate the #if even further figuring out one system from the
+ next, this patch directly tests for the three struct members I
+ know about today, and #ifdef's accordingly. Review:
+ https://reviewboard.asterisk.org/r/3273/ ........ Merged
+ revisions 409833 from
+ http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
+ revisions 409834 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 409835 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-03-05 16:26 +0000 [r409831-409832] Moises Silva <moises.silva@gmail.com>
+
+ * res/res_http_websocket.c: Fix res/res_http_websocket.c build
+ failure in 32bit due to incorrect print format for uint64_t
+
+ * res/res_http_websocket.c, /: Fix WebRTC over WSS not working
+ Several fixes for the WebSockets implementation in
+ res/res_http_websocket.c * Flush the websocket session FILE* as
+ fwrite() may not actually guarantee sending the data to the
+ network. If we do not flush, it seems that buffering on the SSL
+ socket for outbound messages causes issues * Refactored
+ ast_websocket_read to take into account that SSL file descriptors
+ may be ready to read via fread() but poll() will not actually say
+ so because the data was already read from the network buffers and
+ is now in the libc buffers (closes issue ASTERISK-23099) (closes
+ issue ASTERISK-21930) Review:
+ https://reviewboard.asterisk.org/r/3248/ ........ Merged
+ revisions 409681 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 409697 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-03-05 12:06 +0000 [r409780] Sean Bright <sean@malleable.com>
+
+ * contrib/scripts/astgenkey, contrib/scripts/astgenkey.8, /: Fix
+ references to 'keys' CLI commands in astgenkey ........ Merged
+ revisions 409777 from
+ http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
+ revisions 409778 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 409779 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-03-05 06:17 +0000 [r409747] Igor Goncharovskiy <igor.goncharovsky@gmail.com>
+
+ * channels/chan_unistim.c: Add update_peer function to
+ unistim_rtp_glue, improve other unistim_rtp_glue functions
+ conforming to other channel drivers. Do not forget auto-detected
+ and user-selected phone settings on 'unistim reload' ........
+ Merged revisions 409705 from
+ http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
+ revisions 409745 from
+ http://svn.asterisk.org/svn/asterisk/branches/11
+
+2014-03-05 01:05 +0000 [r409683] Richard Mudgett <rmudgett@digium.com>
+
+ * /, include/asterisk/stasis_internal.h: stasis: Made
+ internal_stasis_subscribe() prototype and definition match
+ exactly. ........ Merged revisions 409682 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-03-04 19:34 +0000 [r409627] Michael L. Young <elgueromexicano@gmail.com>
+
+ * funcs/func_audiohookinherit.c, /: func_audiohookinheritance:
+ Check If A Channel Was Specified This patch prevents a crash when
+ using the function audiohookinheritance without setting the
+ channel. (closes issue ASTERISK-23104) Reported by: Joel Vandal
+ Tested by: Joel Vandal Patches:
+ asterisk-23104_audiohook_inherit_no_channel-11.diff uploaded by
+ Michael L. Young (license 5026) Review:
+ https://reviewboard.asterisk.org/r/3272/ ........ Merged
+ revisions 409623 from
+ http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
+ revisions 409625 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 409626 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-03-04 17:22 +0000 [r409587] Jonathan Rose <jrose@digium.com>
+
+ * /, res/res_rtp_asterisk.c: res_rtp_asterisk: Fix one way audio
+ problems with hold/unhold when using ICE ICE sessions will now be
+ restarted if sessions are changed to use new sets of remote
+ candidates. (closes issue ASTERISK-22911) Reported by: Vytis
+ Valentinavičius Review: https://reviewboard.asterisk.org/r/3275/
+ ........ Merged revisions 409565 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 409570 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-03-04 16:55 +0000 [r409569] Kinsey Moore <kmoore@digium.com>
+
+ * /, main/astobj2.c: AO2: Add an assert for bad objects This adds
+ an assert that will only be active if Asterisk is compiled with
+ DO_CRASH and allows the testsuite to fail tests that would
+ otherwise require log file parsing. ........ Merged revisions
+ 409566 from http://svn.asterisk.org/svn/asterisk/branches/1.8
+ ........ Merged revisions 409567 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 409568 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-03-04 14:55 +0000 [r409475] Sean Bright <sean@malleable.com>
+
+ * /, channels/chan_sip.c: Minor whitespace change to 'sip show
+ peers' output. (closes issue ASTERISK-23406) Reported by: ibercom
+ Tested by: ibercom Patches: asterisk-11.patch uploaded by ibercom
+ ........ Merged revisions 409472 from
+ http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
+ revisions 409473 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 409474 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-03-03 19:44 +0000 [r409423] Joshua Colp <jcolp@digium.com>
+
+ * /, res/res_stasis_recording.c: res_stasis_recording: Fix memory
+ leak of the absolute name. ........ Merged revisions 409422 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-03-03 02:08 +0000 [r409364] Matthew Jordan <mjordan@digium.com>
+
+ * main/asterisk.c, /: doxygen: Tweak the link back to ye olde
+ Digium website ........ Merged revisions 409361 from
+ http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
+ revisions 409362 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 409363 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-03-02 17:03 +0000 [r409350] Tzafrir Cohen <tzafrir.cohen@xorcom.com>
+
+ * /, Makefile.rules: Makefile: replace -O6 with -O3 -O6 is not a
+ legal option of gcc. Unofficially gcc considers it to be
+ equivalent of -O3. clang chalks on it, though. This commit sets
+ the default optimization flag to be -O3, like gcc actually
+ considered it. Review: https://reviewboard.asterisk.org/r/3280/
+ ........ Merged revisions 409308 from
+ http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
+ revisions 409344 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 409346 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-03-01 20:28 +0000 [r409288] Joshua Colp <jcolp@digium.com>
+
+ * res/res_pjsip_session.c, /: res_pjsip_session: Set options
+ (100rel, timers) on incoming sessions. This change passes options
+ to the UAS creation function. This in turn sets up 100rel and
+ session timer properties on the incoming session. Reported by
+ Julian Russell on asterisk-users mailing list. ........ Merged
+ revisions 409287 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-03-01 00:05 +0000 [r409257-409275] Richard Mudgett <rmudgett@digium.com>
+
+ * /, main/devicestate.c: devicestate.c: Simplified some logic in
+ _ast_device_state(). ........ Merged revisions 409274 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+ * main/stasis_cache.c, /: stasis_cache.c: Remove some unnecessary
+ RAII_VAR() usage. ........ Merged revisions 409272 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+ * main/stasis.c, /: stasis.c: Misc code cleanups. * Remove some
+ unnecessary RAII_VAR() usage. * Made the struct
+ stasis_subscription ao2 object use the ao2 lock instead of a
+ redundant join_lock in the struct for ast_cond_wait(). * Removed
+ locks on some ao2 objects that don't need the lock. * Made the
+ topic pool entries container use the ao2 template functions. *
+ Add some missing allocation failure checks. * Add missing cleanup
+ in off nominal path of dispatch_message(). ........ Merged
+ revisions 409270 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+ * /, channels/chan_sip.c: chan_sip: Add precautionary p->owner
+ checks. * Add precautionary p->owner checks in sip_hangup(),
+ get_refer_info(), get_also_info(), and
+ interpret_t38_parameters(). * Simplify some tangled logic in
+ get_refer_info(), get_also_info(), and add_rpid(). * Removed some
+ dead code in handle_request_invite(). (closes issue
+ ASTERISK-23323) Reported by: Walter Doekes Patches:
+ issueA23323-more_p_owner_checks-1.8.x.patch (license #5674)
+ uploaded by wdoekes (modified)
+ issueA23323-more_p_owner_checks-11.x.patch (license #5674)
+ uploaded by wdoekes (modified)
+ issueA23323-more_p_owner_checks-12.x.patch (license #5674)
+ uploaded by wdoekes (modified)
+ issueA23323-more_p_owner_checks-trunk.patch (license #5674)
+ uploaded by wdoekes (modified) ........ Merged revisions 409207
+ from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........
+ Merged revisions 409255 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 409256 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-02-28 21:24 +0000 [r409237] Kinsey Moore <kmoore@digium.com>
+
+ * apps/app_queue.c, /: app_queue: Fix documented AMI event name
+ During the rewrite of AMI events to use the Stasis bus, the name
+ of the QueueMemberPaused event was changed to QueueMemberPause.
+ This corrects documentation to reflect that. ........ Merged
+ revisions 409234 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-02-28 18:03 +0000 [r409159] Richard Mudgett <rmudgett@digium.com>
+
+ * /, channels/chan_sip.c: chan_sip: Fix crash in
+ ast_channel_hangupcause_set(). * Fix crash in
+ ast_channel_hangupcause_set() because p->owner not checked before
+ calling. Regression introduced by the fix for ASTERISK-22621.
+ (closes issue ASTERISK-23135) Reported by: OK (issue
+ ASTERISK-23323) Reported by: Walter Doekes ........ Merged
+ revisions 409156 from
+ http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
+ revisions 409157 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 409158 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-02-27 19:54 +0000 [r409132] Jonathan Rose <jrose@digium.com>
+
+ * res/res_rtp_asterisk.c, /: Multiple revisions 409129-409130
+ ........ r409129 | jrose | 2014-02-27 13:19:02 -0600 (Thu, 27 Feb
+ 2014) | 15 lines res_rtp_asterisk: Fix checklist creating
+ problems in ICE sessions Prior to this patch, local candidate
+ lists including SRFLX would fail to start properly when building
+ ICE candidate check lists. This patch fixes that problem by
+ making sure that each SRFLX candidate is associated with the
+ proper base address so that the check list can create matches
+ properly. This patch was written by jcolp. The issue will be left
+ open to await testing by the issue participants. (issue
+ ASTERISK-23213) Reported by: Andrea Suisani Review:
+ https://reviewboard.asterisk.org/r/3256/ ........ r409130 | jrose
+ | 2014-02-27 13:38:10 -0600 (Thu, 27 Feb 2014) | 8 lines
+ res_rtp_asterisk: correct build error from r409129 Accidentally
+ placed a declaration below functional code (issue ASTERISK-23213)
+ Reported by: Andrea Suisani Review:
+ https://reviewboard.asterisk.org/r/3256/ ........ Merged
+ revisions 409129-409130 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 409131 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-02-27 16:26 +0000 [r409091] David M. Lee <dlee@digium.com>
+
+ * utils/astman.c, /: Fix memory stomping bug in astman. This memset
+ complained in dev mod on my Ubuntu box. The memset is both
+ unnecessary and dangerous. At this point, m hasn't been
+ initialized yet, so the memset will write off to whatever address
+ happens to be on the stack at the time. ........ Merged revisions
+ 409077 from http://svn.asterisk.org/svn/asterisk/branches/1.8
+ ........ Merged revisions 409083 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 409087 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-02-27 16:08 +0000 [r409055] Corey Farrell <git@cfware.com>
+
+ * /, configs/res_fax.conf.sample: res_fax: Comment out default
+ settings from res_fax.conf. Comment out many settings in
+ res_fax.conf.sample. The defaults are set in res_fax.c, so
+ setting the same value in sample config does nothing but make the
+ sample config more fragile. (closes issue ASTERISK-23231)
+ Reported by: David Brillert Review:
+ https://reviewboard.asterisk.org/r/3261/ ........ Merged
+ revisions 409052 from
+ http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
+ revisions 409053 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 409054 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-02-27 12:29 +0000 [r409000] Matthew Jordan <mjordan@digium.com>
+
+ * /, res/res_pjsip_sdp_rtp.c: res_pjsip_sdp_rtp: Apply
+ packetization rules on inbound SDP handling The setting
+ 'use_ptime' is supposed to tell Asterisk to honour the ptime
+ attribute in an offer, preferring it to whatever packetization
+ preferences have been set internally. Currently, however,
+ something rather quirky will happen: (1) The SDP answer will be
+ constructed in create_outgoing_sdp_stream. This will use the
+ preferences from the endpoint, such that the 200 OK response will
+ add the packetization preferences from the endpoint, and not what
+ was offered. (2) When the 200 response is issued,
+ apply_negotiated_sdp_stream is called. This will call
+ apply_packetization, which will use the ptime attribute from the
+ offer internally. We end up telling the offerer to use the
+ internal ptime attribute, but we end up using the offered ptime
+ attribute. Hilarity ensues. This patch modifies the behaviour by
+ calling apply_packetization from negotiate_incoming_sdp_stream,
+ which is called prior to create_outgoing_sdp_stream. This causes
+ the format preferences on the session's media object to be set to
+ the inbound ptime value (if 'use_ptime' is enabled), such that
+ the construction of the answer gets the right value immediately.
+ Review: https://reviewboard.asterisk.org/r/3244/ ........ Merged
+ revisions 408999 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-02-26 23:35 +0000 [r408984] Richard Mudgett <rmudgett@digium.com>
+
+ * /, tests/test_stasis.c: test_stasis.c: Misc cleanups. * Make the
+ consumer ao2 object use the ao2 lock instead of a redundant lock
+ in the struct for ast_cond_wait(). * Fixed some curly brace
+ placements. * Fixed use of malloc(0). malloc(0) has variant
+ behavior. It is up to the implementation to determine if it
+ returns NULL or a valid pointer that can be later passed to
+ free(). ........ Merged revisions 408983 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-02-26 19:00 +0000 [r408971] Scott Griepentrog <sgriepentrog@digium.com>
+
+ * channels/chan_pjsip.c, /: pjsip: avoid edge case potential crash
+ in answer() When accidentally compiling against a wrong version
+ of pjsip headers with a different pjsip_inv_session size, the
+ invite_tsx structure could be null in the answer() function. This
+ led to a crash because it attempted to send the session response
+ with an uninitialized packet pointer. This patch presets packet
+ to null and adds a diagnostic log message to explain why the call
+ fails. Review: https://reviewboard.asterisk.org/r/3267/ ........
+ Merged revisions 408970 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-02-26 17:04 +0000 [r408958] Joshua Colp <jcolp@digium.com>
+
+ * res/res_ari.c, /: res_ari: Make some additional error responses
+ consistent with the rest of the system. This change makes some
+ error cases use ast_ari_response_error to construct their error
+ responses instead of manually doing it. This ensures they are
+ consistent with the other error responses. Based on the original
+ patch as done by Paul Belanger on the associated review. Review:
+ https://reviewboard.asterisk.org/r/2904/ ........ Merged
+ revisions 408957 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-02-26 13:47 +0000 [r408942-408944] Kinsey Moore <kmoore@digium.com>
+
+ * include/asterisk/res_pjsip_session.h, /: PJSIP: Fix some bad
+ spacing ........ Merged revisions 408943 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+ * /, res/res_pjsip_refer.c: PJSIP: Prevent crash if channel has
+ gone away It is currently possible for an ast_sip_session to
+ exist without an associated channel as is the case when a new
+ invite is coming in or just after a hangup is issued on a
+ chan_pjsip channel. Part of the attended transfer code assumed
+ the channel would be non-NULL and used it as such causing a
+ crash. This bug was exposed thanks to the attended transfer ARI
+ test in the test suite. (closes issue ASTERISK-23287) Reported
+ by: Matt Jordan ........ Merged revisions 408941 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-02-26 08:57 +0000 [r408932] Igor Goncharovskiy <igor.goncharovsky@gmail.com>
+
+ * channels/chan_unistim.c: Implement functions handling keypress,
+ display icons and text for i2004 KEM support.
+
+2014-02-25 17:51 +0000 [r408881-408883] Kevin Harwell <kharwell@digium.com>
+
+ * res/res_pjsip_exten_state.c, /,
+ res/res_pjsip_pidf_digium_body_supplement.c (added),
+ include/asterisk/res_pjsip_body_generator_types.h:
+ res_pjsip_exten_state: Presence for digium phones Added presence
+ support for digium phones. Review:
+ https://reviewboard.asterisk.org/r/3239/ ........ Merged
+ revisions 408882 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+ * /, res/res_pjsip_send_to_voicemail.c (added),
+ res/res_pjsip_header_funcs.c: res_pjsip_send_to_voicemail:
+ transferring to voicemail for digium phones Added the ability for
+ transferring directly to voicemail on digium phones. Added a new
+ module that checks for the presence of a custom header and/or
+ diversion header within a sip REFER. If either is found and they
+ specify a sending to voicemail action then variables are added to
+ the channel allowing the user access to them in the dialplan.
+ Dialplan can then be written that branches based upon these
+ values allowing, for instace, for a single number to be used for
+ dialing and/or accessing voicemail directly. Also fixed a problem
+ where the PJSIP_HEADER function was allowing non pjsip channels
+ through (checked to make sure it has the correct channel type
+ before proceeding). Review:
+ https://reviewboard.asterisk.org/r/3245/ ........ Merged
+ revisions 408880 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-02-25 17:44 +0000 [r408879] Rusty Newton <rnewton@digium.com>
+
+ * configs/voicemail.conf.sample, /: configs/voicemail.conf.sample -
+ Make mailcmd sample text more explicit Made the wording a bit
+ more explicit. Didn't really change the meaning. ........ Merged
+ revisions 408876 from
+ http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
+ revisions 408877 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 408878 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-02-22 23:31 +0000 [r408859] Matthew Jordan <mjordan@digium.com>
+
+ * /, main/asterisk.c: main: Initialize dialplan providing core
+ components prior to module pre-load It is possible to pre-load
+ pbx_config. As a result, pbx_config - which will load and parse
+ the dialplan - will attempt to use various dialplan components,
+ such as device state providers and presence state providers,
+ prior to them being initialized by the core. This would lead to a
+ crash, as the components had not created their Stasis cache
+ entries. This patch moves a number of core component
+ initializations before the module pre-load. This guarantees that
+ if someone does pre-load pbx_config - or other pbx modules - that
+ the Stasis caches for the various core components are created.
+ (closes issue ASTERISK-23320) Reported by: xrobau (closes issue
+ ASTERISK-23265) Reported by: Andrew Nagy Tested by: Andrew Nagy,
+ Rusty Newton ........ Merged revisions 408855 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-02-22 18:01 +0000 [r408840] Alexandr Anikin <may@telecom-service.ru>
+
+ * addons/chan_ooh323.c, /: ignore AST_CONTROL_PVT_CAUSE_CODE
+ without any messages (closes issue ASTERISK-23336) Reported by:
+ Alexander Semych ........ Merged revisions 408838 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 408839 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-02-22 02:31 +0000 [r408788] Corey Farrell <git@cfware.com>
+
+ * /, utils/extconf.c, utils/conf2ael.c, res/ael/pval.c, main/pbx.c:
+ Remove extra defines of AST_PBX_MAX_STACK. * Ensure
+ AST_PBX_MAX_STACK is only defined in extconf.h and pbx.h. * Fix
+ incorrect function parameters in utils/extconf.c. (closes issue
+ ASTERISK-23141) Reported by: Maxim Review:
+ https://reviewboard.asterisk.org/r/3241/ ........ Merged
+ revisions 408785 from
+ http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
+ revisions 408786 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 408787 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-02-21 18:37 +0000 [r408731] Kevin Harwell <kharwell@digium.com>
+
+ * main/rtp_engine.c, /: rtp_engine: Dynamic payload change in rtp
+ mapping not supported Asterisk didn't support the dynamic payload
+ change in rtp mapping in the 200 OK response. Scenario: Asterisk
+ sends the INVITE proposing alaw and telephone-event, it proposes
+ rtpmap:101 for telephone-event. Peer responds with 2xx, it
+ answers with alaw and telephone-event also, but it proposes a
+ different rtpmap number (rtpmap:103) for telephone-event.
+ Expected Behaviour: Asterisk should honour the rtpmapping in the
+ response and send DTMF packets using 103 as payload type for
+ DTMF. Actual Behaviour: Asterisk sends DTMF packets using payload
+ type 101. With this patch asterisk now supports changes that can
+ occur in the rtp mapping in the response. (closes issue
+ ASTERISK-23279) Reported by: NITESH BANSAL Review:
+ https://reviewboard.asterisk.org/r/3225/ Patches:
+ dynamic_payload_change.patch uploaded by nbansal (license 6418)
+ ........ Merged revisions 408729 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 408730 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-02-21 18:19 +0000 [r408712-408723] Richard Mudgett <rmudgett@digium.com>
+
+ * main/manager.c, /: manager: Fix AMI Status action of a single
+ channel. Fixed use of uninitialized ao2 container iterator in an
+ off-nominal condition. Either a memory allocation error or the
+ requested channel is an internal channel not exposed to the
+ outside. ........ Merged revisions 408715 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+ * main/sorcery.c, res/ari/resource_endpoints.c, /,
+ apps/app_meetme.c, res/res_fax.c, res/res_stasis_recording.c,
+ main/stasis_channels.c, res/res_sorcery_astdb.c,
+ include/asterisk/json.h: json: Fix off-nominal json ref counting
+ issues. * Fixed off-nominal json ref counting issue with using
+ the following API calls: ast_json_object_set() and
+ ast_json_array_append(). * Fixed off-nominal error reporting in
+ ast_ari_endpoints_list(). * Fixed some miscellaneous off-nominal
+ json ref counting issues in report_receive_fax_status() and
+ dial_to_json(). ........ Merged revisions 408713 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+ * main/json.c, /: json: Fix json API wrapper code for json library
+ versions earlier than 2.3.0. * Fixed json ref counting issue with
+ json API wrapper code for ast_json_object_update_existing() and
+ ast_json_object_update_missing() when the json library is earlier
+ than version 2.3.0. ........ Merged revisions 408711 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-02-21 16:49 +0000 [r408699] Corey Farrell <git@cfware.com>
+
+ * channels/chan_sip.c: chan_sip: prevent add_route from adding
+ empty header. Fix regression caused by ASTERISK-22582. Empty
+ Route headers were added when the route had a single strict hop.
+ (closes issue ASTERISK-23306) Reported by: Matt Jordan Review:
+ https://reviewboard.asterisk.org/r/3236/
+
+2014-02-21 16:27 +0000 [r408645-408652] Kevin Harwell <kharwell@digium.com>
+
+ * main/rtp_engine.c, /: rtp_engine: Output mixup in
+ ${CHANNEL(rtpqos,audio,all)} Fixed the output of
+ CHANNEL(rtpqos,audio,all) to use txjitter instead of rxjitter.
+ (closes issue ASTERISK-23261) Reported by: rsw686 Patches:
+ rtpqos.patch uploaded by rsw686 (license 5887) ........ Merged
+ revisions 408646 from
+ http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
+ revisions 408647 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 408649 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+ * main/channel.c, /: channel.c: MOH is not working for transferee
+ after attended transfer Updated the code to check to see if MOH
+ is playing on the transferor and if so then start it on the
+ channel that replaces it during a masquerade. Example scenario of
+ the problem: Alice calls Bob and then Bob begins the attended
+ transfer process into a queue. Upon going on hold Alice hears
+ music and so does Bob once he is in the queue. Bob then transfers
+ Alice into the queue and then music for Alice stops even though
+ she should be hearing it since has now replaced Bob in the queue.
+ The problem that was occurring is that once the channel was
+ masqueraded the app (queues, confbridge, etc...) had no way of
+ knowing that the channel had just been swapped out thus it did
+ not start music for the present channel. Credit to Olle Johansson
+ for pointing me in the right direction on this issue. (closes
+ issue ASTERISK-19499) Reported by: Timo Teräs Review:
+ https://reviewboard.asterisk.org/r/3226/ ........ Merged
+ revisions 408642 from
+ http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
+ revisions 408643 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 408644 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-02-21 10:45 +0000 [r408592] Alexandr Anikin <may@telecom-service.ru>
+
+ * /, addons/ooh323c/src/ooCalls.h: Fix type of roundTripDelay
+ variables ........ Merged revisions 408589 from
+ http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
+ revisions 408590 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 408591 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-02-21 00:50 +0000 [r408539] Michael L. Young <elgueromexicano@gmail.com>
+
+ * /, apps/app_chanspy.c: app_chanspy: Documentation Update To
+ Clarify "x" Option When using the "x" option (specify a DTMF
+ digit to exit the application), it is not obvious in the
+ documentation that this only works when spying on a channel. If a
+ channel being used to spy on other channels is waiting to connect
+ to a channel or is no longer attached to a channel, the DTMF is
+ ignored. As noted on the issue tracker, since there are
+ workarounds available and this is a rarely used option we are
+ opting for a documentation change here. (closes issue
+ ASTERISK-22661) Reported by: Chris Hillman Patches:
+ asterisk-22661-doc-clarify-chan_spy.diff uploaded by Michael L.
+ Young (license 5026) Review:
+ https://reviewboard.asterisk.org/r/2990/ ........ Merged
+ revisions 408536 from
+ http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
+ revisions 408537 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 408538 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-02-20 21:12 +0000 [r408519-408523] George Joseph <george.joseph@fairview5.com>
+
+ * /, res/res_pjsip/location.c,
+ res/res_pjsip_outbound_registration.c: pjsip_cli: Add pjsip
+ commands 'show registrations' and 'show contacts'. Added 'show
+ registrations' and 'show contacts' to pjsip cli to make things a
+ little more consistent. The output is exactly the same as the
+ list command. Just needed to add entries to their respective
+ ast_cli_entry structures. (closes issue ASTERISK-23275) Review:
+ http://reviewboard.asterisk.org/r/3210/ ........ Merged revisions
+ 408522 from http://svn.asterisk.org/svn/asterisk/branches/12
+
+ * /, res/res_pjsip/pjsip_cli.c, main/config.c: pjsip_cli: Fix
+ memory leak in ast_sip_cli_print_sorcery_objectset. Fixed memory
+ leaks in ast_sip_cli_print_sorcery_objectset and
+ ast_variable_list_sort. (closes issue ASTERISK-23266) Review:
+ http://reviewboard.asterisk.org/r/3200/ ........ Merged revisions
+ 408520 from http://svn.asterisk.org/svn/asterisk/branches/12
+
+ * include/asterisk/sorcery.h,
+ res/res_pjsip/include/res_pjsip_private.h, res/res_pjsip.c,
+ tests/test_sorcery.c, main/sorcery.c, /,
+ res/res_pjsip/config_system.c: sorcery: Create sorcery instance
+ registry. In order to retrieve an arbitrary sorcery instance from
+ a dialplan function (or any place else) there needs to be a
+ registry of sorcery instances. ast_sorcery_init now creates a
+ hashtab as a registry. ast_sorcery_open now checks the hashtab
+ for an existing sorcery instance matching the caller's module
+ name. If it finds one, it bumps the refcount and returns it. If
+ not, it creates a new sorcery instance, adds it to the hashtab,
+ then returns it. ast_sorcery_retrieve_by_module_name is a new
+ function that does a hashtab lookup by module name. It can be
+ called by the future dialplan function. res_pjsip/config_system
+ needed a small change to share the main res_pjsip sorcery
+ instance. tests/test_sorcery was updated to include a test for
+ the registry. (closes issue ASTERISK-22537) Review:
+ http://reviewboard.asterisk.org/r/3184/ ........ Merged revisions
+ 408518 from http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-02-20 19:02 +0000 [r408503] Matthew Jordan <mjordan@digium.com>
+
+ * res/res_pjsip.c, /: res_pjsip: Update documentation for
+ 'use_avpf' option When 'use_avpf' is set to True, inbound offers
+ must use the AVPF/SAVPF RTP profile. However, when 'use_avpf' is
+ set to False, Asterisk will accept both AVP/SAVP or AVPF/SAVPF
+ RTP profiles in inbound offers. The documentation previously
+ implied that Asterisk would reject AVPF/SAVPF if 'use_avpf' was
+ set to False and a UA offered said profile in an INVITE request.
+ ........ Merged revisions 408502 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-02-20 02:44 +0000 [r408450] Rusty Newton <rnewton@digium.com>
+
+ * /, apps/app_queue.c: apps/app_queue - Fix incorrect Macro
+ parameter documentation Macro is executed on the called channel,
+ not the calling channel. (closes issue ASTERISK-23069) Reported
+ By: Bryan Anderson ........ Merged revisions 408447 from
+ http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
+ revisions 408448 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 408449 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-02-19 19:09 +0000 [r408386-408390] Richard Mudgett <rmudgett@digium.com>
+
+ * /, main/config.c: config: Add file size and nanosecond resolution
+ fields to the cached modified config file information. Repeatedly
+ modifying config files and reloading too fast sometimes fails to
+ reload the configuration because the cached modification
+ timestamp has one second resolution. * Added file size and
+ nanosecond resolution fields to the cached config file
+ modification timestamp information. Now if the file size changes
+ or the file system supports nanosecond resolution the modified
+ file has a better chance of being detected for reload. * Added a
+ missing unlock in an off-nominal code path. (closes issue
+ AST-1303) Review: https://reviewboard.asterisk.org/r/3235/
+ ........ Merged revisions 408387 from
+ http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
+ revisions 408388 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 408389 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+ * /, res/res_sorcery_astdb.c: res_sorcery_astdb.c: Fix regex
+ handling and keep simple prefix matching performance. The sorcery
+ astDB wizzard does not handle regex correctly if the pattern
+ begins with an anchor character. This patch attempts to convert
+ the anchored regex pattern to a prefix pattern supported by astDB
+ for performance reasons. If it is not able to convert the pattern
+ it falls back to getting all astDB members of the family and
+ doing a normal regex pattern matching on the retrieved records.
+ Review: https://reviewboard.asterisk.org/r/3161/ ........ Merged
+ revisions 408385 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-02-19 12:04 +0000 [r408315-408332] Alexandr Anikin <may@telecom-service.ru>
+
+ * addons/ooh323c/src/ooCapability.c, /,
+ addons/ooh323c/src/ooh245.c: process receiveAndTransmit user
+ input remote caps instead of receive only send receiveAndTransmit
+ user input our caps instead of receive only ........ Merged
+ revisions 408328 from
+ http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
+ revisions 408330 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 408331 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+ * addons/ooh323c/src/ooh323.c, /: Allow different socket and
+ signalling ip on h.323 connection if gk mode is active Reported
+ by: Gabriele Odone Patches: ASTERISK-22738-1.patch Tested by:
+ Gabriele Odone (closes issue ASTERISK-22738) ........ Merged
+ revisions 408312 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 408314 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-02-18 19:19 +0000 [r408299] Richard Mudgett <rmudgett@digium.com>
+
+ * contrib/ast-db-manage/config/env.py,
+ contrib/ast-db-manage/config/versions/4da0c5f79a9c_create_tables.py,
+ contrib/ast-db-manage/config,
+ contrib/ast-db-manage/voicemail/env.py,
+ contrib/ast-db-manage/voicemail,
+ contrib/ast-db-manage/config/versions/581a4264e537_adding_extensions.py,
+ contrib/ast-db-manage/config/versions,
+ contrib/ast-db-manage/config/versions/21e526ad3040_add_pjsip_debug_option.py,
+ contrib/ast-db-manage/voicemail/versions/a2e9769475e_create_tables.py,
+ contrib/ast-db-manage/voicemail/versions, contrib/ast-db-manage,
+ /: alembic: Add svn:ignore *.pyc to directories and
+ svn:executable to *.py files. ........ Merged revisions 408297
+ from http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-02-17 15:36 +0000 [r408272] Mark Michelson <mmichelson@digium.com>
+
+ * /, res/res_pjsip/location.c, UPGRADE.txt, res/res_pjsip.c,
+ res/res_pjsip_registrar.c, include/asterisk/res_pjsip.h: Store
+ SIP User-Agent information in contacts. When an endpoint sends a
+ REGISTER request to Asterisk, we now will associate the
+ User-Agent header with all contacts that were bound in that
+ REGISTER request. ........ Merged revisions 408270 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-02-16 03:25 +0000 [r408199-408227] Matthew Jordan <mjordan@digium.com>
+
+ * /, main/pbx.c: pbx: Handle a completely empty dialplan during a
+ context merge It is highly unlikely, but - at least in Asterisk
+ 12 - theoretically possible to load Asterisk with no dialplan
+ whatsoever. If that occurs, and some other module (that is not a
+ pbx module) attempts to merge its contexts into the dialplan, the
+ existing merge routine will crash. This is because it is not
+ insane, and rightly believes that you provided some sort of
+ dialplan, somewhere. This patch will gracefully merge the
+ contexts in such a case. Note that this is highly unlikely to
+ occur in 1.8/11, as features will most likely provide some
+ dialplan via parking. However, in Asterisk 12, parking is now
+ provided by res_parking, and hence may create its dialplan later.
+ (closes issue ASTERISK-23297) Reported by: CJ Oster Review:
+ https://reviewboard.asterisk.org/r/3222 ........ Merged revisions
+ 408200 from http://svn.asterisk.org/svn/asterisk/branches/1.8
+ ........ Merged revisions 408201 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 408220 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+ * /, Makefile: buildsystem: Unbreak the build (infloop) on Asterisk
+ 11+ Apparently r408084 ( https://reviewboard.asterisk.org/r/3212/
+ ) broke the build. This patch fixes it by ignoring the .lastclean
+ dependencies if the MENUSELECT_EMBED variable is not defined.
+ patches: tmp.diff uploaded by wdoekes (License 5674) Review:
+ https://reviewboard.asterisk.org/r/3228/ ........ Merged
+ revisions 408193 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 408194 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-02-14 21:44 +0000 [r408139-408141] Scott Griepentrog <sgriepentrog@digium.com>
+
+ * main/stasis_endpoints.c, /: ARI: correct upper/lower case URI
+ discrepancies URI's are supposed to be case sensitive and all
+ lower case. In practice some portions of URI's in ARI are case
+ insensitive and others are not, such as TECH, which in one
+ instance would match a lower case name and in another would not.
+ In this patch, the ast_endpoint_lastest_snapshot() function is
+ modified to change the TECH portion to full upper case before
+ lookup. This resolves the discrepancy noted by the reporter.
+ However I chose to avoid forcing the /ari prefix of the URI's to
+ be lower case for now. Except for the two cases here, all URI's
+ should be lower case, unless they are part of a resource name or
+ id. Review: https://reviewboard.asterisk.org/r/3211/ Reported by:
+ Zane Conkle (closes issue ASTERISK-23125) ........ Merged
+ revisions 408140 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+ * main/format.c, /: format.c: correct possible null pointer
+ dereference In ast_format_sdp_parse and ast_format_sdp_generate
+ the check checks for a valid interface and function were
+ potentially confusing, and hid an error in the test of the
+ presence of the function that is called later. This patch clears
+ up and corrects the test. Review:
+ https://reviewboard.asterisk.org/r/3208/ (closes issue
+ ASTERISK-23098) Reported by: marcelloceschia Patches:
+ main_format.patch uploaded by marcelloceschia (license 6036)
+ ASTERISK-23098.patch uploaded by coreyfarrell (license 5909)
+ ........ Merged revisions 408137 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 408138 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-02-14 13:31 +0000 [r408086] Walter Doekes <walter+asterisk@wjd.nu>
+
+ * Makefile, /: buildsystem: Don't force main to depend on
+ everything else. Directory 'main' only needs to depend on
+ embedded modules. If no module embedding is selected, the
+ dependency is dropped. Review:
+ https://reviewboard.asterisk.org/r/3212/ ........ Merged
+ revisions 408083 from
+ http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
+ revisions 408084 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 408085 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-02-14 12:41 +0000 [r408070] Matthew Jordan <mjordan@digium.com>
+
+ * /, channels/chan_sip.c: chnan_sip: Set SIP_DEFER_BYE_ON_TRANSFER
+ prior to calling bridge blind transfer This patch moves setting
+ SIP_DEFER_BY_ON_TRANSFER prior to calling
+ ast_bridge_transfer_blind. This prevents a BYE from being sent
+ prior to the NOTIFY request that informs the transferor if the
+ transfer succeeded or failed. This patch also clears said flag
+ from the off nominal NOTIFY paths in the local_attended_transfer
+ code, as once we've sent the NOTIFY request it is safe to send by
+ the BYE request. This was caught by the
+ blind-transfer-accountcode test in the Asterisk Test Suite.
+ (closes issue ASTERISK-23290) Reported by: Matt Jordan Review:
+ https://reviewboard.asterisk.org/r/3214/ ........ Merged
+ revisions 408069 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-02-14 08:52 +0000 [r408059] Tzafrir Cohen <tzafrir.cohen@xorcom.com>
+
+ * Makefile, build_tools/install_subst (added): install_subst:
+ helper script for installing with path substitution A helper
+ script to copy a source file substituting any
+ __ASTERISK_<foo>_DIR__ with the content of $AST<foo>DIR. Review:
+ https://reviewboard.asterisk.org/r/3202/
+
+2014-02-13 18:52 +0000 [r407990-408006] Mark Michelson <mmichelson@digium.com>
+
+ * res/res_pjsip_pubsub.c, /, res/res_pjsip_mwi.c: Remove all PJSIP
+ MWI-specific use from our MWI code. PJSIP has built-in MWI code
+ that could be useful to some degree, but our utilization of the
+ API actually made our code a bit more cluttered since we had to
+ have special cases peppered throughout. With this change, we move
+ to using the pjsip_evsub API instead, which streamlines the code
+ by removing special cases. Review:
+ https://reviewboard.asterisk.org/r/3205 ........ Merged revisions
+ 408005 from http://svn.asterisk.org/svn/asterisk/branches/12
+
+ * /, res/res_pjsip/location.c: Fix crash in AMI PJSIPShowEndpoint
+ action. If an AOR has no permanent contacts, then the
+ permanent_contacts container is never allocated. This makes the
+ code safe in the face of NULLs. I also changed the variable that
+ counts contacts from "num" to "total_contacts" since there are
+ now two variables that are indicate numbers of things. ........
+ Merged revisions 407988 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-02-13 15:51 +0000 [r407989] Kinsey Moore <kmoore@digium.com>
+
+ * main/logger.c, CHANGES: Logger: Add dynamic logger channels This
+ adds the ability to dynamically add and remove logger channels
+ from Asterisk via the CLI. (closes issue AST-1150) Review:
+ https://reviewboard.asterisk.org/r/3185/
+
+2014-02-12 08:25 +0000 [r407970] Walter Doekes <walter+asterisk@wjd.nu>
+
+ * /, main/config.c: realtime: Fix ast_update2_realtime() on
+ raspberry pi. The old code depended on undefined va_arg
+ behaviour: calling a function twice with the same va_list
+ parameter and expecting it to continue where it left off. The
+ changed code behaves like the manpage says it should. Also added
+ a bunch of early returns to trap errors (e.g. OOM) instead of
+ crashing. The problem was found by Julian Lyndon-Smith. The
+ deviant behaviour on the raspberry PI also uncovered another bug
+ (fixed in r407875) in the res_config_pgsql.so driver. Reported
+ by: jmls Tested by: jmls Review:
+ https://reviewboard.asterisk.org/r/3201/ ........ Merged
+ revisions 407968 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-02-11 20:17 +0000 [r407958] Joshua Colp <jcolp@digium.com>
+
+ * main/sched.c: scheduler: Remove hashtab usage. This is a first
+ stab at tweaking the performance profile of the scheduler.
+ Removing the hashtab usage removes an extra memory allocation
+ when scheduling something and makes it so rescheduling does not
+ incur any memory allocation at all. Review:
+ https://reviewboard.asterisk.org/r/3199/
+
+2014-02-11 03:18 +0000 [r407940] Matthew Jordan <mjordan@digium.com>
+
+ * res/ari/resource_channels.c, /: ari/resource_channels: Add
+ channel variables earlier in the creation process This patch
+ tweaks the behaviour of POST /channels with channel variables
+ such that the variables are passed into the pbx.c routines that
+ perform the origination. This allows the variables to be assigned
+ to the newly created channels immediately upon their
+ construction, as opposed to be assigned after the originate has
+ completed. The upshot of this is that the variables are available
+ on the channels if they execute in the dialplan, as opposed to
+ only being available once the channels are answered. Review:
+ https://reviewboard.asterisk.org/r/3183/ ........ Merged
+ revisions 407937 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-02-10 18:28 +0000 [r407926] Corey Farrell <git@cfware.com>
+
+ * channels/sip/include/reqresp_parser.h,
+ channels/sip/include/route.h (added), channels/chan_sip.c,
+ channels/sip/route.c (added), channels/sip/include/sip.h:
+ chan_sip: Isolate code that manages struct sip_route. * Move
+ route code to sip/route.c + sip/include/route.h * Rename
+ functions to sip_route_* * Replace ad-hoc list code with macro's
+ from linkedlists.h * Create sip_route_process_header() to
+ processes Path and Record-Route headers (previously done with
+ different code in build_route and build_path) * Add use of const
+ where possible * Move struct uriparams, struct contact and
+ contactliststruct from sip.h to reqresp_parser.h. sip/route.c
+ uses reqresp_parser.h but not sip.h, this was a problem. These
+ moved declares are not used outside of reqresp_parser. * While
+ modifying reqprep() the lack of {} caused me trouble. I added
+ them. * Code outside route.c treats sip_route as an opaque
+ structure, using macro's or procedures for all access. (closes
+ issue ASTERISK-22582) Reported by: Corey Farrell Review:
+ https://reviewboard.asterisk.org/r/3173/
+
+2014-02-10 16:49 +0000 [r407876] Walter Doekes <walter+asterisk@wjd.nu>
+
+ * res/res_config_pgsql.c, /: res_config_pgsql: Fix
+ ast_update2_realtime calls. Fix so multiple updates from a single
+ call works (add missing ','). Remove bogus ast_free's that
+ weren't supposed to be there. Moved a few spaces for readability.
+ Review: https://reviewboard.asterisk.org/r/3194/ ........ Merged
+ revisions 407873 from
+ http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
+ revisions 407874 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 407875 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-02-10 16:01 +0000 [r407859] Kinsey Moore <kmoore@digium.com>
+
+ * apps/app_confbridge.c, apps/confbridge/conf_state_multi_marked.c,
+ apps/confbridge/conf_state_empty.c,
+ apps/confbridge/conf_config_parser.c,
+ configs/confbridge.conf.sample, /,
+ apps/confbridge/include/confbridge.h, UPGRADE.txt: ConfBridge:
+ Correct prompt playback target Currently, when the first marked
+ user enters the conference that contains waitmarked users, a
+ prompt is played indicating that the user is being placed into
+ the conference. Unfortunately, this prompt is played to the
+ marked user and not the waitmarked users which is not very
+ helpful. This patch changes that behavior to play a prompt
+ stating "The conference will now begin" to the entire conference
+ after adding and unmuting the waitmarked users since the design
+ of confbridge is not conducive to playing a prompt to a subset of
+ users in a conference in an asynchronous manner. (closes issue
+ PQ-1396) Review: https://reviewboard.asterisk.org/r/3155/
+ Reported by: Steve Pitts ........ Merged revisions 407857 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 407858 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-02-07 20:52 +0000 [r407767] Richard Mudgett <rmudgett@digium.com>
+
+ * /, channels/chan_iax2.c: chan_iax2: Add some more iaxs[] NULL
+ checks to a routine already full of them. ........ Merged
+ revisions 407764 from
+ http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
+ revisions 407765 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 407766 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-02-07 20:17 +0000 [r407752] Matthew Jordan <mjordan@digium.com>
+
+ * /, main/security_events.c: security_events: Fix assertion failure
+ in dev-mode on optional IE parsing When formatting an optional
+ IE, the value is, of course, optional. As such, it is entirely
+ appropriate for ast_json_object_get to return NULL. If that
+ occurs, we now simply skip the IE that was requested, as it was
+ not provided by the entity that raised the event. Thanks to
+ George Joseph (gtjoseph) for catching this and reporting it in
+ #asterisk-dev ........ Merged revisions 407750 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-02-07 20:01 +0000 [r407749] Joshua Colp <jcolp@digium.com>
+
+ * main/timing.c, res/res_timing_pthread.c, res/res_timing_dahdi.c,
+ res/res_timing_timerfd.c, include/asterisk/timing.h,
+ res/res_timing_kqueue.c: timing: Improve performance for most
+ timing implementations. This change allows timing implementation
+ data to be stored directly on the timer itself thus removing the
+ requirement for many implementations to do a container lookup for
+ the same information. This means that API calls into timing
+ implementations can directly access the information they need
+ instead of having to find it. Review:
+ https://reviewboard.asterisk.org/r/3175/
+
+2014-02-07 19:40 +0000 [r407748] Matthew Jordan <mjordan@digium.com>
+
+ * /, funcs/func_cdr.c: funcs/func_cdr: Handle empty time values
+ when extracting parsed values When extracting timestamps that are
+ parsed, time stamp values that are not set (time values of
+ 0.000000) should not actually result in a parsed string. The
+ value should be skipped, and the result of the CDR function
+ should be an empty string. Prior to this patch, the result was
+ fed to the time formatting, which would result in an output of a
+ date/time in 1969. ........ Merged revisions 407747 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-02-07 18:29 +0000 [r407731] Richard Mudgett <rmudgett@digium.com>
+
+ * channels/chan_iax2.c, include/asterisk/frame.h,
+ configs/iax.conf.sample, /: chan_iax2: Block unnecessary control
+ frames to/from the wire. Establishing an IAX2 call between
+ Asterisk v1.4 and v1.8 (or later) results in an unexpected call
+ disconnect. The problem happens because newer values in the enum
+ ast_control_frame_type are not consistent between the branch
+ versions of Asterisk. For example: 1) v1.4 calls v1.8 (or later)
+ using IAX2 2) v1.8 answers and sends a connected line update
+ control frame. (on v1.8 AST_CONTROL_CONNECTED_LINE = 22) 3) v1.4
+ receives the control frame as an end-of-q (on v1.4
+ AST_CONTROL_END_OF_Q = 22) 4) v1.4 disconnects the call once the
+ receive queue becomes empty. Several things are done by this
+ patch to fix the problem and attempt to prevent it from happening
+ again in the future: * Added a warning at the definition of enum
+ ast_control_frame_type about how to add new control frame values.
+ * Made block sending and receiving control frames that have no
+ reason to go over the wire. * Extended the connectedline iax.conf
+ parameter to also include the redirecting information updates. *
+ Updated the connectedline iax.conf parameter documentation to
+ include a notice that the parameter must be "no" when the peer is
+ an Asterisk v1.4 instance. (closes issue AST-1302) Review:
+ https://reviewboard.asterisk.org/r/3174/ ........ Merged
+ revisions 407678 from
+ http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
+ revisions 407727 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 407729 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-02-07 16:47 +0000 [r407677] Matthew Jordan <mjordan@digium.com>
+
+ * /, main/security_events.c: security_events: Fix error caused by
+ DTD validation error The appdocsxml.dtd specifies that a
+ "required" attribute in a parameter may have a value of yes, no,
+ true, or false. On some systems, specifying "False" instead of
+ "false" would cause a validation error. This patch fixes the
+ casing to explicitly match the DTD. ........ Merged revisions
+ 407676 from http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-02-07 13:15 +0000 [r407625] Tzafrir Cohen <tzafrir.cohen@xorcom.com>
+
+ * /, configs/indications.conf.sample: indications.conf: add stutter
+ tone; end properly * If the "stutter" (voicemail indication) tone
+ is indeed a stutter tone, and it ends with a constant tone, make
+ sure that it is the dial tone. This was done for India (in),
+ Mexico (mx) and the Philippines (ph). * If no "stutter" tone
+ exists for a country, provide one. This was done for Spain (es),
+ Malaysia (my) and Venezuela (ve). Review:
+ https://reviewboard.asterisk.org/r/3158/ ........ Merged
+ revisions 407622 from
+ http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
+ revisions 407623 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 407624 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-02-06 21:24 +0000 [r407602] Matthew Jordan <mjordan@digium.com>
+
+ * /, main/security_events.c, UPGRADE.txt, CHANGES: security_events:
+ Add AMI documentation; output optional fields This patch adds
+ documentation for the Security Events that are emited over AMI.
+ It also notes these events in the UPGRADE/CHANGES file. ........
+ Merged revisions 407589 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-02-06 19:58 +0000 [r407588] Rusty Newton <rnewton@digium.com>
+
+ * /, configs/pjsip.conf.sample: configs/pjsip.conf.sample:
+ Configuration section naming in pjsip.conf.sample needs a little
+ clarification There is a bit of nuance to how you name things in
+ pjsip.conf. This is a documentation patch to at least clear it up
+ a little for users. Review:
+ https://reviewboard.asterisk.org/r/3180/ ........ Merged
+ revisions 407587 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-02-06 18:11 +0000 [r407574] Kevin Harwell <kharwell@digium.com>
+
+ * /,
+ contrib/ast-db-manage/config/versions/2fc7930b41b3_add_pjsip_endpoint_options_for_12_1.py:
+ pjsip realtime: already created enum failure for postgresql If an
+ enum had been previously created the alembic script would attempt
+ to re-create it and an error would be generated while running
+ migrations for a postgresql server. The work around for this is
+ to use the ENUM object type for postgres as opposed to the
+ generic enum type used by sqlalchemy. Using this type in the
+ script seems to work properly for both postgres and mysql.
+ ........ Merged revisions 407572 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-02-06 17:55 +0000 [r407573] Richard Mudgett <rmudgett@digium.com>
+
+ * res/res_pjsip_logger.c,
+ res/res_pjsip/include/res_pjsip_private.h,
+ res/res_pjsip/pjsip_options.c, res/res_pjsip/config_transport.c,
+ include/asterisk/res_pjsip.h, res/res_pjsip/config_global.c,
+ res/res_pjsip/config_auth.c, /, res/res_pjsip/location.c,
+ res/res_pjsip_outbound_registration.c,
+ res/res_pjsip_endpoint_identifier_ip.c,
+ include/asterisk/res_pjsip_cli.h, res/res_pjsip/pjsip_cli.c,
+ res/res_pjsip/pjsip_configuration.c,
+ res/res_pjsip/config_domain_aliases.c: res_pjsip: Updates and
+ adds more PJSIP CLI commands. * Adds identify, transport, and
+ registration support to the PJSIP CLI. * Creates three additional
+ callbacks, one for an iterator, one for a comparator, and one for
+ a container. This eliminates the link dependency from higher
+ level modules to lower level ones. * Eliminates duplicate sorting
+ in PJSIP CLI commands. * Cleans up PJSIP CLI output formatting. *
+ Pushes CLI command registration down to the implementing source
+ file. * Adds several ast_sip_destroy_sorcery functions to
+ complement existing ast_sip_sorcery_initialize functions. The
+ destroy functions unregister PJSIP CLI commands and PJSIP CLI
+ formatters. Reported by: George Joseph Review:
+ https://reviewboard.asterisk.org/r/3104/ ........ Merged
+ revisions 407568 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-02-05 23:04 +0000 [r407514] Rusty Newton <rnewton@digium.com>
+
+ * /, formats/format_wav.c: formats/format_wav: enhancing log
+ message "Not a wav file" to be clear on what is supported
+ Modifying the log message to be more specific as to what is
+ supported. Specifically it seems format_wav supports only PCM
+ encoded versions with a lower-case '.wav' extension. (closes
+ issues ASTERISK-22310) Reported by: Jim Credland Review:
+ https://reviewboard.asterisk.org/r/3188/ ........ Merged
+ revisions 407511 from
+ http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
+ revisions 407512 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 407513 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-02-05 20:56 +0000 [r407462] Jonathan Rose <jrose@digium.com>
+
+ * CHANGES, /: CHANGES: Improved description of Name/Creator changes
+ to bridge ARI, adds AMI The changes log was written with language
+ that was a little too internal Asterisk specific, so it's been
+ changed to be more in the frame of reference of an ARI user.
+ Also, previously the AMI event changes were omitted from the
+ change log as well as the ability to include a bridge name in the
+ ARI post bridges command. ........ Merged revisions 407461 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-02-05 20:43 +0000 [r407459] Kinsey Moore <kmoore@digium.com>
+
+ * main/logger.c, /: Logger: Fix handling of absolute paths This
+ fixes path handling for log files so that an extra / is not
+ appended to the file path when the path is absolute (begins with
+ /). This would previously result in different but functionally
+ equivalent paths in the output of 'logger show channels'.
+ ........ Merged revisions 407455 from
+ http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
+ revisions 407456 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 407458 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-02-05 19:42 +0000 [r407443] Kevin Harwell <kharwell@digium.com>
+
+ * res/res_pjsip/config_global.c, /: res_pjsip: When no global type
+ the debug option defaults to "yes" If the global section was not
+ specified in pjsip.conf then the configuration object does not
+ exist in sorcery so when retrieving "debug" option it would
+ return NULL. Then the NULL result was passed to ast_false utils
+ function which would return false because it wasn't set to some
+ representation of false, thus enabling sip debug logging. Made it
+ so if the global config object does not exist then it will return
+ a default of "no" for sip debugging. (issue ASTERISK-23038)
+ Reported by: Rusty Newton ........ Merged revisions 407442 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-02-05 17:42 +0000 [r407422-407425] Jonathan Rose <jrose@digium.com>
+
+ * CHANGES: CHANGES: Update changes log to include r403414 entry
+ Adds note of additional 0 for operator option on app_record
+
+ * CHANGES, /: CHANGES: Update changes log to include new bridge
+ fields added in r404042 ........ Merged revisions 407419 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-02-05 15:29 +0000 [r407407] Matthew Jordan <mjordan@digium.com>
+
+ * rest-api/api-docs/playbacks.json, UPGRADE.txt,
+ rest-api/api-docs/sounds.json, rest-api/resources.json, CHANGES,
+ include/asterisk/manager.h, rest-api/api-docs/bridges.json,
+ rest-api/api-docs/deviceStates.json,
+ rest-api/api-docs/mailboxes.json,
+ rest-api/api-docs/asterisk.json,
+ rest-api/api-docs/applications.json,
+ rest-api/api-docs/channels.json,
+ rest-api/api-docs/recordings.json,
+ rest-api/api-docs/endpoints.json, rest-api/api-docs/events.json,
+ /: ARI/AMI: Update versions; update UPGRADE/CHANGES notes for
+ 12.1.0 changes Due to backwards compatible changes made to
+ AMI/ARI, the version needs to be bumped to 1.1.0/2.1.0,
+ respectively. ........ Merged revisions 407402 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-02-04 20:15 +0000 [r407275-407340] Richard Mudgett <rmudgett@digium.com>
+
+ * include/asterisk/devicestate.h, /, main/devicestate.c:
+ devicestate: Make ast_devstate_changed_literal() return value and
+ doxygen consistent. Nothing actually cares about the value
+ anyway. (closes issue ASTERISK-23178) Reported by: Jonathan Rose
+ ........ Merged revisions 407337 from
+ http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
+ revisions 407338 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 407339 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+ * /, res/res_pjsip/pjsip_configuration.c: res_pjsip: Fix assertion
+ for pjsip.conf authorization list options. (closes issue
+ ASTERISK-23168) Reported by: George Joseph Review:
+ https://reviewboard.asterisk.org/r/3143/ ........ Merged
+ revisions 407324 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+ * configs/sip.conf.sample, main/tcptls.c, /: tcptls.c: Made TLS
+ handle a certificate chain file. Thanks to Guillaume Martres for
+ doing the necessary research to validate the change. (closes
+ issue ASTERISK-17727) Reported by: LN Patches:
+ use_certificate_chain.patch (license #5864) patch uploaded by st
+ documente_certificate_chain.patch (license #6576) patch uploaded
+ by Guillaume Martres ........ Merged revisions 407272 from
+ http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
+ revisions 407273 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 407274 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-02-04 16:55 +0000 [r407260] Matthew Jordan <mjordan@digium.com>
+
+ * /, funcs/func_cdr.c: funcs/func_cdr: Fix non-epoch timestamps
+ broken by improper char array deref Thanks to snuffy for pointing
+ this issue out and fixing it. (closes issue ASTERISK-23250)
+ Reported by: snuffy patches: func_cdr-fix.diff uploaded by snuffy
+ (License 5024) ........ Merged revisions 407259 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-02-04 02:22 +0000 [r407217] Joshua Colp <jcolp@digium.com>
+
+ * res/res_clialiases.c, /: res_clialiases: Fix crash when reloading
+ and re-aliasing an alias that is in use. The code assumed that
+ unregistering the alias would always succeed while in practice
+ this is not actually true. A common case is the "reload" command
+ itself. If the cli_aliases.conf configuration file was changed
+ and reload executed the command would fail to unregister and
+ ultimately point to freed memory. The reload process now checks
+ whether unregistering succeeded or not and if not the old CLI
+ alias is retained. (closes issue ASTERISK-19773) Reported by:
+ Joel Vandal (closes issue ASTERISK-22757) Reported by: Gareth
+ Blades ........ Merged revisions 407205 from
+ http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
+ revisions 407210 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 407213 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-02-04 02:07 +0000 [r407198] Damien Wedhorn <voip@facts.com.au>
+
+ * /, channels/chan_skinny.c: Skinny - Fix deadlock when pickup of
+ no call. Locking issues in skinny when picking up a call that
+ doesn't exist. Cleaned up sub locking by fully removing and using
+ the chan lock instead. Also changed ast_call_pickup to check
+ whether chan was masq'd. (closes issue ASTERISK-23249) Reported
+ by: wedhorn Tested by: snuffy, myself Patches:
+ skinny-locking01.diff uploaded by wedhorn (license 5019) ........
+ Merged revisions 407197 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-02-03 01:31 +0000 [r407169] Matthew Jordan <mjordan@digium.com>
+
+ * main/cdr.c, /: cdrs: Check for applications to lock onto during
+ dial begin handling This patch brings CDR processing further in
+ line with r407085. During some dial operations, the application
+ would not be locked to the Dial application and would instead
+ continue to show the previously known application. In particular,
+ this would occur when a Parked call would time out. This was due
+ to a previous snapshot already locking the application to Park -
+ processing this in a Dial Begin allows the Dial application to
+ reassert its rightful place. (CDRs. Ugh.) But hooray for the
+ Parked Call tests for catching this in the Asterisk Test Suite.
+ ........ Merged revisions 407166 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-02-01 16:26 +0000 [r407154] Joshua Colp <jcolp@digium.com>
+
+ * res/ari/ari_model_validators.h, rest-api/api-docs/events.json, /,
+ res/stasis/app.c, res/ari/ari_model_validators.c,
+ res/res_stasis.c, main/stasis_bridges.c: res_stasis: Enable
+ transfers and provide events when they occur. This change enables
+ transfers within ARI created bridges and adds events for when
+ they occur. Unlike other events these will be received if *any*
+ subscribed object is involved in the transfer. (closes issue
+ ASTERISK-22984) Reported by: David M. Lee Review:
+ https://reviewboard.asterisk.org/r/3120/ ........ Merged
+ revisions 407153 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-02-01 00:25 +0000 [r407105] Corey Farrell <git@cfware.com>
+
+ * apps/app_stack.c, /: app_stack: protect against missing
+ parameters to STACK_PEEK and LOCAL_PEEK STACK_PEEK requires 2
+ parameters and LOCAL_PEEK requires 1 parameter. This protects
+ against situations where those parameters are blank or missing by
+ logging an error and returning. (closes issue ASTERISK-23220)
+ Reported by: James Sharp ........ Merged revisions 407100 from
+ http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
+ revisions 407103 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 407104 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-01-31 23:40 +0000 [r407083-407085] Matthew Jordan <mjordan@digium.com>
+
+ * apps/app_dial.c, main/cdr.c, main/pbx.c, /, main/bridge_after.c,
+ UPGRADE.txt, main/manager_channels.c: CDRs: fix a variety of dial
+ status problems, h/hangup handler creating CDRs This patch fixes
+ a number of small-ish problems that were noticed when witnessing
+ the records that the FreePBX dialplan produces: (1) Mid-call
+ events (as well as privacy options) have the ability to change
+ the overall state of the Dial operation after the called party
+ answers. This means that publishing the DialEnd event when the
+ called party is premature; we have to wait for the execution of
+ these subroutines to complete before we can signal the overall
+ status of the DialEnd. This patch moves that publication and adds
+ handlers for the mid-call events. (2) The AST_FLAG_OUTGOING
+ channel flag is cleared if an after bridge goto datastore is
+ detected. This flag was preventing CDRs from being recorded for
+ all outbound channels that had a 'continue' option enabled on
+ them by the Dial application. (3) The CDR engine now locks the
+ 'Dial' application as being the CDR application if it detects
+ that the current CDR has entered that app. This is similar to the
+ logic that is done for Parking. In general, if we entered into
+ Dial, then we want that CDR to record the application as such -
+ this prevents pre-dial handlers, mid-call handlers, and other
+ shenaniganry from changing the application value. (4) The CDR
+ engine now checks for the AST_SOFTHANGUP_HANGUP_EXEC in more
+ places to determine if the channel is in hangup logic or dead. In
+ either case, we don't want to record changes in the channel. (5)
+ The default option for "endbeforehexten" has been changed to
+ "yes". In general, you don't want to see CDRs in the 'h' exten or
+ in hangup logic. Since the semantics of that option changed in
+ 12, it made sense to update the default value as well. (6)
+ Finally, because we now have the ability to synchronize on the
+ messages published to the CDR topic, on shutdown the CDR engine
+ will now synchronize to the messages currently in flight. This
+ helps to ensure that all in-flight CDRs are written before
+ shutting down. (closes issue ASTERISK-23164) Reported by: Matt
+ Jordan Review: https://reviewboard.asterisk.org/r/3154 ........
+ Merged revisions 407084 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+ * apps/app_dial.c, /: app_dial: Allow macro/gosub pre-bridge
+ execution to occur on priorities The parsing for the destination
+ of the macro/gosub uses the '^' character to separate out
+ context, extension, and priority. However, the logic for the
+ macro/gosub execution was written such that it would only do the
+ actual macro/gosub jump if a '^' character existed. This doesn't
+ apply when the macro/gosub jump occurs in a priority/priority
+ label. This patch changes the logic so that the parsing still
+ occurs, but the jump will occur even for priorities/priority
+ labels. (issue ASTERISK-23164) Review:
+ https://reviewboard.asterisk.org/r/3154 ........ Merged revisions
+ 407041 from http://svn.asterisk.org/svn/asterisk/branches/1.8
+ ........ Merged revisions 407074 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 407082 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-01-31 23:15 +0000 [r407035-407037] Kevin Harwell <kharwell@digium.com>
+
+ * res/res_pjsip_logger.c, CHANGES, res/res_pjsip.c,
+ include/asterisk/res_pjsip.h, res/res_pjsip/config_global.c,
+ contrib/ast-db-manage/config/versions/21e526ad3040_add_pjsip_debug_option.py
+ (added), /, configs/pjsip.conf.sample, UPGRADE.txt: res_pjsip:
+ Config option to enable PJSIP logger at load time. Added a
+ "debug" configuration option for res_pjsip that when set to "yes"
+ enables SIP messages to be logged. It is specified under the
+ "system" type. Also added an alembic script to add the option to
+ realtime. (closes issue ASTERISK-23038) Reported by: Rusty Newton
+ Review: https://reviewboard.asterisk.org/r/3148/ ........ Merged
+ revisions 407036 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+ * res/res_pjsip_exten_state.c, /: res_pjsip_exten_state: Exporting
+ global symbols caused load order issues Removed the exportation
+ of global symbols from the module as it is no longer needed and
+ it could potentially cause load problems as on some systems it
+ would try to load before res_pjsip_pubsub ........ Merged
+ revisions 407034 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-01-31 23:04 +0000 [r407033] Richard Mudgett <rmudgett@digium.com>
+
+ * CHANGES, apps/app_chanspy.c: ChanSpy: Add ability to specify
+ channel uniqueids as well as channel names. * Made ChanSpy accept
+ a channel uniqueid or a fully specified channel name as the
+ chanprefix parameter if the 'u' option is specified. (closes
+ issue AFS-42) Review: https://reviewboard.asterisk.org/r/3160/
+
+2014-01-31 22:39 +0000 [r407030-407032] Mark Michelson <mmichelson@digium.com>
+
+ * include/asterisk/res_pjsip_presence_xml.h (added), /: Add file
+ that apparently got missed in the merge. ........ Merged
+ revisions 407031 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+ * res/res_pjsip_pidf_body_generator.c (added),
+ include/asterisk/res_pjsip_exten_state.h (removed),
+ res/res_pjsip_pubsub.exports.in, /,
+ include/asterisk/res_pjsip_body_generator_types.h (added),
+ res/res_pjsip_mwi.c, res/res_pjsip_xpidf_body_generator.c
+ (added), res/res_pjsip_mwi_body_generator.c (added),
+ res/res_pjsip_pubsub.c, res/res_pjsip_pidf.c (removed),
+ res/res_pjsip_pidf_eyebeam_body_supplement.c (added),
+ res/res_pjsip_exten_state.c, res/res_pjsip/presence_xml.c
+ (added), include/asterisk/res_pjsip_pubsub.h: Decouple
+ subscription handling from NOTIFY/PUBLISH body generation. When
+ the PJSIP pubsub framework was created, subscription handlers
+ were required to state what event they handled along with what
+ body types they knew how to generate. While this serves well when
+ implementing a base RFC, it has problems when trying to extend
+ the body to support non-standard or proprietary body elements.
+ The code also was NOTIFY-specific, meaning that when the time
+ comes that we start writing code to send out PUBLISH requests
+ with MWI or presence bodies, we would likely find ourselves
+ duplicating code that had previously been written. This changeset
+ introduces the concept of body generators and body supplements. A
+ body generator is responsible for allocating a native structure
+ for a given body type, providing the primary body content,
+ converting the native structure to a string, and deallocating
+ resources. A body supplement takes the primary body content (the
+ native structure, not a string) generated by the body generator
+ and adds nonstandard elements to the body. With these elements
+ living in their own module, it becomes easy to extend our support
+ for body types and to re-use resources when sending a PUBLISH
+ request. Body generators and body supplements register themselves
+ with the pubsub core, similar to how subscription and publish
+ handlers had done. Now, subscription handlers do not need to know
+ what type of body content they generate, but they still need to
+ inform the pubsub core about what the default body type for a
+ given event package is. The pubsub core keeps track of what body
+ generators and body supplements have been registered. When a
+ SUBSCRIBE arrives, the pubsub core will check that there is a
+ subscription handler for the event in the SUBSCRIBE, then it will
+ check that there is a body generator that can provide the content
+ specified in the Accept header(s). Because of the nature of body
+ generators and supplements, it means res_pjsip_exten_state and
+ res_pjsip_mwi have been completely gutted. They no longer worry
+ about body types, instead calling
+ ast_sip_pubsub_generate_body_content() when they need to generate
+ a NOTIFY body. Review: https://reviewboard.asterisk.org/r/3150
+ ........ Merged revisions 407016 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-01-31 22:23 +0000 [r407015-407029] Kevin Harwell <kharwell@digium.com>
+
+ * contrib/ast-db-manage/config/versions/581a4264e537_adding_extensions.py,
+ contrib/ast-db-manage/config/versions/2fc7930b41b3_add_pjsip_endpoint_options_for_12_1.py,
+ /, UPGRADE.txt: alembic: script modifications due to errors A
+ couple of the scripts had errors that would not allow a full
+ migration to take place. The extensions table needed to make its
+ 'id' column a primary key in order to work with mysql. The other
+ script ...add_endpoints... was missing tables that it was trying
+ to add columns to. Added the primary key on id for extensions and
+ added the tables in for the missing pjsip configuration options.
+ While it is not ideal to modify already released scripts this was
+ a case where it had to be done due to errors in the script and
+ lacking a better alternative. Review:
+ https://reviewboard.asterisk.org/r/3167/ ........ Merged
+ revisions 407019 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+ * /, res/res_pjsip_mwi.c: res_pjsip_mwi: Subscribe fails when
+ missing aor name When subscribing to MWI (res_pjsip_mwi) and the
+ sip uri did not contain a name (ex: sip:<ip address>) then the
+ subscription would fail since it would be unable to locate an
+ associated aor. This patch makes it so that when a subscribe
+ comes with no aor name then it will subscribe to all aors on the
+ located endpoint. (closes issue ASTERISK-23072) Reported by: Bob
+ M Review: https://reviewboard.asterisk.org/r/3164/ ........
+ Merged revisions 407014 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-01-31 15:08 +0000 [r407001] Kinsey Moore <kmoore@digium.com>
+
+ * res/res_pjsip_nat.c, /: PJSIP: Fix address for ACK in NAT
+ situations In NAT scenarios where a call is placed to a
+ Grandstream phone, res_pjsip will sometimes send the ACK to a 200
+ OK to the private address of the device behind the NAT instead of
+ the address of the NAT device. This corrects that behavior by
+ rewriting the address in the Contact header in the incoming 200
+ OK and the dialog's target address if necessary (since it has
+ already been rewritten to the incorrect private address). (closes
+ issue ASTERISK-23106) Review:
+ https://reviewboard.asterisk.org/r/3168/ Reported by: Matt Jordan
+ ........ Merged revisions 407000 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-01-31 05:31 +0000 [r406988] Damien Wedhorn <voip@facts.com.au>
+
+ * /, channels/chan_skinny.c: Skinny: fix up possible double unlock
+ of chan. Return before chan is possibly unlocked a second time
+ when hanging up a channel in SUBSTATE_OFFHOOK. ........ Merged
+ revisions 406987 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-01-30 20:36 +0000 [r406936] Corey Farrell <git@cfware.com>
+
+ * main/udptl.c, res/res_rtp_asterisk.c, /: res_rtp_asterisk &
+ udptl: fix port selection to work with SELinux restrictions
+ ast_bind to a port reserved for another program by SELinux causes
+ errno == EACCES. This caused random failures when binding rtp or
+ udptl sockets. Treat EACCES as a non-fatal error, try next port.
+ (closes issue ASTERISK-23134) Reported by: Corey Farrell ........
+ Merged revisions 406933 from
+ http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
+ revisions 406934 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 406935 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-01-30 17:35 +0000 [r406920] Sean Bright <sean@malleable.com>
+
+ * main/manager.c, /: Make a NOTICE about an invalid channel name
+ more useful. ........ Merged revisions 406918 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 406919 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-01-29 00:44 +0000 [r406863] Russell Bryant <russell@russellbryant.com>
+
+ * /, configs/queues.conf.sample: queues.conf.sample Fix documented
+ default for persistentmembers Closes issue ASTERISK-22662
+ ........ Merged revisions 406860 from
+ http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
+ revisions 406861 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 406862 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-01-28 23:40 +0000 [r406789-406848] Kevin Harwell <kharwell@digium.com>
+
+ * res/res_pjsip_pubsub.c, /: res_pjsip_pubsub: potential crash on
+ timeout What seems to be happening is if a subscription has been
+ terminated and the subscription timeout/expires is less than the
+ time it takes for all pending transactions (currently on the
+ subscription) to end then the subscription timer will not have
+ been canceled yet and sub will be null. Since the subscription
+ has already been canceled nothing needs to be done so a null
+ check in the asterisk code is sufficient in working around this
+ problem. (closes issue ASTERISK-23129) Reported by: Dan Jenkins
+ ........ Merged revisions 406847 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+ * cdr/cdr_radius.c, cel/cel_radius.c, /, configure,
+ include/asterisk/autoconfig.h.in, configure.ac: cdr_radius,
+ cel_radius: build agains libfreeradius-client Asterisk's RADIUS
+ module currently build against libradiusclient-ng, but this
+ project has been superseeded by libfreeradius-client. The API is
+ 99% compatible except that the header name has changed, the
+ library name has changed, and the configuration file location has
+ changed. (closes issue ASTERISK-22980) Reported by: Jeremy Lainé
+ Patches: freeradius-client.patch uploaded by sharky (license
+ 6561) ........ Merged revisions 406801 from
+ http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
+ revisions 406802 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 406803 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+ * res/res_pjsip/include/res_pjsip_private.h, /,
+ include/asterisk/compat.h: res_pjsip,compat: INFINITY and NAN
+ undefined On some systems the values for INFINITY and NAN are not
+ defined thus causing a build error on those systems. Added
+ definitions for those if they had not previously been defined.
+ (closes issue ASTERISK-23056) Reported by: capouch Patches:
+ inf-nan-patch.txt uploaded by capouch (license 6564) ........
+ Merged revisions 406788 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-01-28 19:19 +0000 [r406778] Kinsey Moore <kmoore@digium.com>
+
+ * /, res/res_stasis_device_state.c: ARI: Make double subscribe
+ respond with success Currently, attempting to subscribe an
+ application to a device state that it has already subscribed to
+ will generate a 500 error response. This will now be treated as a
+ subscription refresh even though ARI subscriptions don't
+ currently support lifetimes and will respond with the normal
+ response for a successful subscription (200 OK). (closes issue
+ ASTERISK-23143) Reported by: Matt Jordan ........ Merged
+ revisions 406775 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-01-28 16:43 +0000 [r406724] Scott Griepentrog <sgriepentrog@digium.com>
+
+ * main/rtp_engine.c, /: rtp_engine: improved handling of
+ get_rtp_info failure In ast_rtp_instance_make_compatible(), after
+ a failure of channel tech call get_rtp_info() to return
+ peer_instance, the null pointer would be passed to ao2_ref,
+ producing an error that looked like a refernce counting problem
+ but is not. This patch corrects that and adds helpful LOG_ERROR
+ messages to indicate which failure path occurred. (issue
+ AST-1276) Review: https://reviewboard.asterisk.org/r/3156/
+ ........ Merged revisions 406721 from
+ http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
+ revisions 406722 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 406723 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-01-28 00:20 +0000 [r406710] Richard Mudgett <rmudgett@digium.com>
+
+ * /, tests/test_cel.c, tests/test_cdr.c: test_cdr.c, test_cel.c:
+ Correctly destroy created bridges. * Fixed the
+ test_cel_attended_transfer_bridges_link unit test to also account
+ for the local channel link being destroyed now that the bridges
+ are actually destroyed. * Made CDR unit test use its own version
+ of do_sleep() from the CEL unit tests. ........ Merged revisions
+ 406707 from http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-01-27 22:54 +0000 [r406647-406696] Kevin Harwell <kharwell@digium.com>
+
+ * CHANGES: manager: ExtensionStatus event status human readable
+ Added a note in the changes file about the new 'StatusText' field
+ that was added to the 'ExtensionStatus' event. (issue
+ ASTERISK-23154) Reported by: Jonathan Rose
+
+ * main/manager.c: manager: ExtensionStatus event status human
+ readable When an 'ExtensionStatus' event was raised it included
+ the status as a numerical value, but did not include a text
+ description of the status. Added a 'StatusText' field to the
+ event which is a string representation of the extension status.
+ Also added this to the 'Extension State' command response.
+ (closes issue ASTERISK-23154) Reported by: Jonathan Rose
+
+2014-01-27 20:38 +0000 [r406646] Russell Bryant <russell@russellbryant.com>
+
+ * main/config.c, /: Allow nested #includes in extconfig.conf
+ extconfig.conf was hard-coded to not allow nested includes for
+ some reason. The code has been this way since a patch was merged
+ for ASTERISK-3333 (revision 4889), which was a significant update
+ to this code ("Merge config updates"). I can't figure out any
+ good reason why this should be limited. This patch just removes
+ the limit and uses the default nesting depth limit. Closes issue
+ ASTERISK-17837 Review: https://reviewboard.asterisk.org/r/3159/
+ ........ Merged revisions 406643 from
+ http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
+ revisions 406644 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 406645 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-01-27 08:17 +0000 [r406618] Walter Doekes <walter+asterisk@wjd.nu>
+
+ * main/manager.c, UPGRADE.txt, configs/manager.conf.sample:
+ manager: The eventfilter= option now takes an extended regex. In
+ pre-trunk versions (...12) it accepts a basic regex, which is
+ confusing because all other regexes in asterisk are of the
+ extended kind. Review: https://reviewboard.asterisk.org/r/3147/
+
+2014-01-27 01:25 +0000 [r406595] Russell Bryant <russell@russellbryant.com>
+
+ * main/file.c, include/asterisk/channel.h, main/channel.c, /:
+ Protect ast_filestream object when on a channel The
+ ast_filestream object gets tacked on to a channel via
+ chan->timingdata. It's a reference counted object, but the
+ reference count isn't used when putting it on a channel. It's
+ theoretically possible for another thread to interfere with the
+ channel while it's unlocked and cause the filestream to get
+ destroyed. Use the astobj2 reference count to make sure that as
+ long as this code path is holding on the ast_filestream and
+ passing it into the file.c playback code, that it knows it's
+ valid. Bug reported by Leif Madsen. Review:
+ https://reviewboard.asterisk.org/r/3135/ ........ Merged
+ revisions 406566 from
+ http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
+ revisions 406567 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 406574 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-01-26 23:04 +0000 [r406517] Richard Mudgett <rmudgett@digium.com>
+
+ * /, main/tcptls.c: tcptls.c: Add missing cleanup on off nominal
+ path. ........ Merged revisions 406514 from
+ http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
+ revisions 406515 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 406516 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-01-26 14:19 +0000 [r406503] Tzafrir Cohen <tzafrir.cohen@xorcom.com>
+
+ * contrib/scripts/live_ast: live_ast: run wrapped programs with
+ exec live_ast can be used as a wrapper script to run asterisk,
+ gdb or valgrind. In those cases it runs them and returns the
+ result. It is more useful to use 'exec' to avoid having another
+ odd process in the chain. Review:
+ https://reviewboard.asterisk.org/r/3110/
+
+2014-01-26 02:11 +0000 [r406490] Joshua Colp <jcolp@digium.com>
+
+ * res/res_pjsip_session.c, /: res_pjsip_session: Be less strict
+ with core requested outgoing capabilities. The core may
+ (depending on circumstances) request a single codec on outgoing
+ calls. Many channel drivers ignore or treat this as a suggestion
+ while still including configured codecs. The res_pjsip_session
+ logic treated this as an explicit request, leaving out other
+ configured codecs. This change makes res_pjsip_session behave
+ like other channel driver and simply adds the requested codec to
+ the list. (closes issue ASTERISK-23082) Reported by: xrobau
+ Review: https://reviewboard.asterisk.org/r/3140/ ........ Merged
+ revisions 406489 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-01-24 23:33 +0000 [r406466] Richard Mudgett <rmudgett@digium.com>
+
+ * /, main/cel.c: CEL: Protect data structures during reload and
+ shutdown. The CEL data structures need to be protected during a
+ configuration reload and shutdown. Asterisk crashed during a
+ shutdown because CEL events were still in flight and the CEL data
+ structures were already destroyed. * Protected the cel_backends,
+ cel_dialstatus_store, and cel_linkedids ao2 containers with a
+ global ao2 object wrapper. * Added NULL checks before use of the
+ cel_backends, cel_dialstatus_store, and cel_linkedids ao2
+ containers in case the CEL module is already shutdown. * Fixed
+ overloading of the cel_linkedids held objects reference count.
+ During shutdown any held objects would be leaked. * Fixed memory
+ leak of cel_linkedids held objects if the LINKEDID_END is not
+ being tracked. The objects in the cel_linkedids container were
+ not removed if the LINKEDID_END event is not used. * Added access
+ protection to the cel_backends container during the CLI "cel show
+ status" command. * Made cel_backends, cel_dialstatus_store, and
+ cel_linkedids use the standard ao2 callback templates for the
+ hash and cmp functions. * Eliminated unnecessary uses of
+ RAII_VAR(). * Made ast_cel_engine_init() cleanup alocated
+ resources on failure. (closes issue AST-1253) Reported by:
+ Guenther Kelleter Review:
+ https://reviewboard.asterisk.org/r/3128/ ........ Merged
+ revisions 406417 from
+ http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
+ revisions 406418 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 406465 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-01-24 22:34 +0000 [r406416] Jonathan Rose <jrose@digium.com>
+
+ * main/utils.c, CHANGES: Thread Debugging: Add LWP to core show
+ locks output This patch adds the LWP to core show locks output if
+ it is available. Review: https://reviewboard.asterisk.org/r/3142/
+
+2014-01-24 22:18 +0000 [r406407] Richard Mudgett <rmudgett@digium.com>
+
+ * main/manager.c, /: manager: Register atexit shutdown routine only
+ once. * Made register atexit shutdown routine only once in
+ __init_manager(). * Fixed some initial load failure conditions in
+ __init_manager(). * Made reset options to defaults on reload when
+ the reload will actually happen. * Removed unnecessary container
+ traversals of the white/black filters during manager_free_user().
+ * ast_free() does not need a NULL check before calling. ........
+ Merged revisions 406359 from
+ http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
+ revisions 406400 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 406401 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-01-24 21:46 +0000 [r406399] Jonathan Rose <jrose@digium.com>
+
+ * res/res_config_pgsql.c, /: res_config_pgsql: Fix a memory leak
+ and use RAII_VAR for cleanup when practical Review:
+ https://reviewboard.asterisk.org/r/3141/ ........ Merged
+ revisions 406360 from
+ http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
+ revisions 406361 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 406389 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-01-24 18:13 +0000 [r406343] Richard Mudgett <rmudgett@digium.com>
+
+ * main/manager.c, /: manager: Protect data structures during
+ shutdown. Occasionally, the manager module would get an
+ "INTERNAL_OBJ: bad magic number" error on a "core restart
+ gracefully" command if an AMI connection is established. * Added
+ ao2_global_obj protection to the sessions global container. *
+ Fixed the order of unreferencing a session object in
+ session_destroy(). * Removed unnecessary container traversals of
+ the white/black filters during session_destructor(). (closes
+ issue AST-1242) Reported by: Guenther Kelleter Review:
+ https://reviewboard.asterisk.org/r/3144/ ........ Merged
+ revisions 406341 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 406342 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-01-23 23:43 +0000 [r406328] Mark Michelson <mmichelson@digium.com>
+
+ * /: Today is not my day for writing code that compiles. ........
+ Merged revisions 406327 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-01-23 22:56 +0000 [r406312] Michael L. Young <elgueromexicano@gmail.com>
+
+ * /, addons/res_config_mysql.c: res_config_mysql: Fix Setting The
+ Column Name Incorrectly When support for a realtime sorcery
+ module was added in revision 386731, the wrong property was
+ accidentally used for setting the column name to be updated in
+ the database table. This patch fixes the typo. (closes issue
+ ASTERISK-23177) Reported by: Denis Tested by: Denis Patches:
+ asterisk-23177-use-field-name.diff by Michael L. Young (license
+ 5026) ........ Merged revisions 406311 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-01-23 21:18 +0000 [r406298] Mark Michelson <mmichelson@digium.com>
+
+ * res/res_pjsip_pidf.c, /: Multiple revisions 406294-406295
+ ........ r406294 | mmichelson | 2014-01-23 15:00:24 -0600 (Thu,
+ 23 Jan 2014) | 11 lines Fix presence body errors found during
+ testing: * PIDF bodies were reporting an "open" state in many
+ cases where it should have been reporting "closed" * XPIDF bodies
+ had XML nodes placed incorrectly within the hierarchy. * SIP URIs
+ in XPIDF bodies did not go through XML sanitization * XML
+ sanitization had some errors: * Right angle bracket was being
+ replaced with "&rt;" instead of ">" * Double quote,
+ apostrophe, and ampersand were not being escaped. ........
+ r406295 | mmichelson | 2014-01-23 15:09:35 -0600 (Thu, 23 Jan
+ 2014) | 11 lines Fix presence body errors found during testing: *
+ PIDF bodies were reporting an "open" state in many cases where it
+ should have been reporting "closed" * XPIDF bodies had XML nodes
+ placed incorrectly within the hierarchy. * SIP URIs in XPIDF
+ bodies did not go through XML sanitization * XML sanitization had
+ some errors: * Right angle bracket was being replaced with "&rt;"
+ instead of ">" * Double quote, apostrophe, and ampersand were
+ not being escaped. ........ Merged revisions 406294-406295 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-01-22 22:24 +0000 [r406269] Scott Griepentrog <sgriepentrog@digium.com>
+
+ * main/pbx.c, /, utils/extconf.c: pbx.c: Pre-initialize timezone to
+ avoid crash on destroy In ast_build_timing, initialize the
+ timezone value to NULL in order to avoid deferencing an
+ uninitialized value later when calling ast_destroy_timing. The
+ timezone value could be uninitialized if ast_build_timing were to
+ fail due to a zero length time string. (closes issue
+ ASTERISK-22861) Reported by: Sebastian Murray-Roberts Review:
+ https://reviewboard.asterisk.org/r/3134/ Patches:
+ ast_build_timing-initialize-timezone.patch uploaded by
+ coreyfarrell (license 5909) ........ Merged revisions 406241 from
+ http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
+ revisions 406245 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 406264 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-01-22 19:36 +0000 [r406153-406224] Kinsey Moore <kmoore@digium.com>
+
+ * /, apps/app_confbridge.c: ConfBridge: Fix channel parameter
+ documentation Confbridge AMI and CLI commands for mute, unmute,
+ and setting the single video source can accept channel prefixes
+ in lieu of a full channel name, but documentation states only
+ that it is required and is a channel name. This corrects the
+ documentation. (closes issue PQ-1397) Reported by: Steve Pitts
+ ........ Merged revisions 406217 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 406223 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+ * /, channels/chan_sip.c: chan_sip: Decline image streams on
+ unsupported transports This change allows chan_sip to decline
+ individual image streams over unsupported transports in the SDP
+ of the 200 response. Previously, an image stream offer with
+ RTP/AVP as the transport would cause chan_sip to respond with a
+ 488. (closes issue ASTERISK-22988) Reported by: adomjan Original
+ patch by: adomjan ........ Merged revisions 406170 from
+ http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
+ revisions 406171 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 406172 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+ * res/res_stasis_playback.c, /: res_stasis_playback: Correct error
+ argument order Several of the playback error messages for invalid
+ media input in res_stasis_playback.c had the media name and
+ channel name reversed. They now correctly identify the channel
+ name and media name. Reported by: skrusty ........ Merged
+ revisions 406152 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-01-21 21:48 +0000 [r406134] Rusty Newton <rnewton@digium.com>
+
+ * /, res/res_pjsip.c: res_pjsip: Documentation improvement for
+ Endpoint and AOR mailbox options. Making the help text for both
+ more explicit regarding the format of mailbox identifiers. i.e.
+ clarifying the format for app_voicemail mailboxes vs mailboxes
+ from external MWI sources through modules such as
+ res_external_mwi. ........ Merged revisions 406133 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-01-21 21:08 +0000 [r406082] Walter Doekes <walter+asterisk@wjd.nu>
+
+ * main/manager.c, /, configs/manager.conf.sample: manager: Clarify
+ eventfilter documentation. Textual changes only. Review:
+ https://reviewboard.asterisk.org/r/3133/ ........ Merged
+ revisions 406079 from
+ http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
+ revisions 406080 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 406081 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-01-21 20:28 +0000 [r406006-406078] Kinsey Moore <kmoore@digium.com>
+
+ * channels/chan_mgcp.c, /: chan_mgcp: Enforce locking for oseq This
+ restricts direct usage of global oseq so that all accesses are
+ locked and threads are not racing to get oseq values that they
+ did not claim. This also fixes a build error in res_pktccops
+ under dev mode. (closes issue ASTERISK-23100) Reported by:
+ adomjan Patch by: adomjan ........ Merged revisions 406037 from
+ http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
+ revisions 406038 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 406049 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+ * /, res/res_pjsip_outbound_registration.c, res/res_pjsip.c: PJSIP:
+ Handle headers in a list appropriately The PJSIP header parsing
+ function (pjsip_parse_hdr) can generate more than one header
+ instance from a single header field. These header instances exist
+ as a list attached to the returned header and must be handled
+ appropriately when they are added to a message or else only the
+ first header instance will be used. This changes the linked list
+ functions used in outbound proxy code to merge the lists
+ properly. ........ Merged revisions 406020 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+ * res/ari/resource_sounds.h, res/ari/resource_bridges.h,
+ res/ari/resource_device_states.h, res/ari/resource_mailboxes.h,
+ res/ari/resource_asterisk.h, rest-api/api-docs/channels.json,
+ res/ari/resource_applications.h, res/ari/resource_channels.c,
+ res/res_ari_playbacks.c, res/res_ari_sounds.c,
+ rest-api-templates/asterisk_processor.py,
+ res/ari/resource_channels.h, res/res_ari_bridges.c, /,
+ res/res_ari_device_states.c,
+ rest-api-templates/ari_resource.h.mustache,
+ res/res_ari_mailboxes.c, res/res_ari_asterisk.c,
+ res/res_ari_applications.c,
+ rest-api-templates/res_ari_resource.c.mustache,
+ rest-api-templates/body_parsing.mustache (added),
+ res/res_ari_channels.c, res/ari/resource_playbacks.h,
+ rest-api-templates/param_parsing.mustache: ARI: Support channel
+ variables in originate This adds back in support for specifying
+ channel variables during an originate without compromising the
+ ability to specify query parameters in the JSON body. This was
+ accomplished by generating the body-parsing code in a separate
+ function instead of being integrated with the URI query parameter
+ parsing code such that it could be called by paths with body
+ parameters. This is transparent to the user of the API and
+ prevents manual duplication of code or data structures. (closes
+ issue ASTERISK-23051) Review:
+ https://reviewboard.asterisk.org/r/3122/ Reported by: Matt Jordan
+ ........ Merged revisions 406003 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-01-20 23:25 +0000 [r405985] Damien Wedhorn <voip@facts.com.au>
+
+ * /, channels/chan_skinny.c: Skinny: fix up handling of fragmented
+ packets. Bad offset in reading second or more fragment of skinny
+ packets. Fixed to offset by char (single byte) rather than size
+ of req. ........ Merged revisions 405982 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-01-20 22:23 +0000 [r405947] Richard Mudgett <rmudgett@digium.com>
+
+ * channels/sig_pri.c, /: chan_dahdi/PRI: Suppress CONNECTED_LINE
+ updates when nothing in the udpate is valid. * Also simplified
+ some subddress handling code. (closes issue ASTERISK-23008)
+ Reported by: Michael Cargile ........ Merged revisions 405926
+ from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........
+ Merged revisions 405927 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 405928 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-01-20 21:56 +0000 [r405925] Damien Wedhorn <voip@facts.com.au>
+
+ * /, channels/chan_skinny.c: Skinny: fix up session logging.
+ Logging from the skinny session loop was providing some incorrect
+ reasons for exiting the loop. Cleaned up messages and handling so
+ correct reason displayed. ........ Merged revisions 405924 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-01-20 18:18 +0000 [r405910] Jonathan Rose <jrose@digium.com>
+
+ * channels/chan_pjsip.c, /: chan_pjsip: Provide a means for
+ tracking device state when holding/unholding Previously PJSIP did
+ not track hold/unhold and it would always simply be 'inuse'. This
+ patch fixes that. review:
+ https://reviewboard.asterisk.org/r/3129/ ........ Merged
+ revisions 405908 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-01-19 00:01 +0000 [r405894] Damien Wedhorn <voip@facts.com.au>
+
+ * /, channels/chan_skinny.c: Skinny: fix reversed device reset from
+ CLI. Existing code would do a full device restart when "skinny
+ reset device" was entered at the CLI and do a reset when "skinny
+ reset device restart" entered. ........ Merged revisions 405893
+ from http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-01-17 22:09 +0000 [r405878] Sean Bright <sean@malleable.com>
+
+ * /, channels/chan_sip.c: Make sure the maxptime attribute is added
+ to the correct offers. ........ Merged revisions 405877 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-01-17 21:33 +0000 [r405862-405876] Scott Griepentrog <sgriepentrog@digium.com>
+
+ * main/format_pref.c, main/sorcery.c, main/frame.c, /,
+ include/asterisk/format_pref.h, res/res_pjsip_sdp_rtp.c: pjsip:
+ fix support for allow=all This change adds improvements to
+ support for allow=all in pjsip.conf so that it functions as
+ intended. Previously, the allow/disallow socery configuration
+ would set & clear codecs from the media.codecs and media.prefs
+ list, but if all was specified the prefs list was not updated.
+ Then a call would fail when create_outgoing_sdp_stream() created
+ an SDP with no audio codecs. A new function
+ ast_codec_pref_append_all() is provided to add all codecs to the
+ prefs list - only those not already on the list. This enables the
+ configuration to specify a codec preference, but still add all
+ codecs, and even then remove some codecs, as shown in this
+ example: allow = ulaw, alaw, all, !g729, !g723 Also, the display
+ order of allow in cli output is updated to match the
+ configuration by using prefs instead of caps when generating a
+ human readable string. Finally, a change to
+ create_outgoing_sdp_stream() skips a codec when it does not have
+ a payload code instead of the call failing. (closes issue
+ ASTERISK-23018) Reported by: xrobau Review:
+ https://reviewboard.asterisk.org/r/3131/ ........ Merged
+ revisions 405875 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+ * /, main/http.c: http: supported chunked Transfer-Encoding This
+ change implements support for HTTP Transfer-Encoding chunked in
+ both JSON and Form (post vars) body content. A new function
+ ast_http_get_contents() handles both regular and chunked mode
+ body, returning after the entire body is received. (closes issue
+ ASTERISK-23068) Reported by: Matt Jordan Review:
+ https://reviewboard.asterisk.org/r/3125/ ........ Merged
+ revisions 405861 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-01-17 18:55 +0000 [r405778-405844] Rusty Newton <rnewton@digium.com>
+
+ * res/res_pjsip.c, /: Fixing some XML syntax issues with my
+ previous commit at r405777 for ASTERISK-23071 ........ Merged
+ revisions 405843 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+ * /, channels/chan_sip.c, doc/asterisk.8, main/features.c,
+ configs/sip.conf.sample, apps/app_queue.c, apps/app_transfer.c,
+ channels/chan_iax2.c: Documentation: doc fixes across various
+ parts of the code for ASTERISK issues 23061,23028,23046,23027
+ Fixes typos of "transfered" instead of "transferred" in various
+ code. Fixes incorrect gosub param help text for app_queue. Fixes
+ Asterisk man pages containing unquoted minus signs. Adds note
+ about the "textsupport" option in sip.conf.sample. (issue
+ ASTERISK-23061) (issue ASTERISK-23028) (issue ASTERISK-23046)
+ (issue ASTERISK-23027) (closes issue ASTERISK-23061) (closes
+ issue ASTERISK-23028) (closes issue ASTERISK-23046) (closes issue
+ ASTERISK-23027) Reported by: Eugene, Jeremy Laine, Denis
+ Pantsyrev Patches: transferred.patch uploaded by Jeremy Laine
+ (license 6561) hyphen.patch uploaded by Jeremy Laine (license
+ 6561) sip.conf.sample.patch uploaded by Eugene (license 6360)
+ ........ Merged revisions 405791 from
+ http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
+ revisions 405792 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 405829 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+ * res/res_pjsip.c, /: res_pjsip: enhance documentation for
+ mailboxes options, for both endpoints and aors Made documentation
+ more explicit as to the use of the both options. (issue
+ ASTERISK-23071) (closes issue ASTERISK-23071) Reported by: Matt
+ Jordan ........ Merged revisions 405777 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-01-17 14:17 +0000 [r405766] Walter Doekes <walter+asterisk@wjd.nu>
+
+ * res/res_musiconhold.c, CHANGES: Enable wide band audio in
+ musiconhold streams. Review:
+ https://reviewboard.asterisk.org/r/3112/
+
+2014-01-16 20:06 +0000 [r405747-405749] Kevin Harwell <kharwell@digium.com>
+
+ * res/res_pjsip/pjsip_options.c, /: res_pjsip: AOR option
+ qualify_frequency not respected on startup If an endpoint had
+ previously dynamically registered a contact and the contact
+ information was successfully stored in astdb then upon restart
+ the qualify notifications would not be sent out if the
+ qualify_frequency was set. This was due to the fact that only
+ permanent contacts were being checked and scheduled for qualifies
+ on startup. Modified the code to check and schedule all
+ registered contacts at startup. (closes issue ASTERISK-23062)
+ Reported by: Rusty Newton Review:
+ https://reviewboard.asterisk.org/r/3124/ ........ Merged
+ revisions 405748 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+ * main/manager.c, /: manager: Originate doesn't abort on failed
+ format_cap allocation action_originate responds to the remote
+ system with an error when cap==NULL, but doesn't return (abort
+ the originate). Patched to return. (closes issue ASTERISK-23034)
+ Reported by: Corey Farrell Patches: ASTERISK-23034.patch uploaded
+ by coreyfarrell (license 5909) ........ Merged revisions 405745
+ from http://svn.asterisk.org/svn/asterisk/branches/11 ........
+ Merged revisions 405746 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-01-16 19:33 +0000 [r405744] Kinsey Moore <kmoore@digium.com>
+
+ * /, res/res_pjsip.c: PJSIP: Fix outbound OPTIONS support When path
+ support was added and contacts were made available during request
+ creation and transmission, the code path used by outbound qualify
+ support was not modified correctly and was causing request
+ creation to fail. This ensures that outbound request creation
+ with only a contact and no dialog, endpoint, or uri can succeed
+ which restores qualify support. Reported by: gtjoseph Reported
+ by: kharwell ........ Merged revisions 405743 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-01-16 19:13 +0000 [r405644-405695] Kevin Harwell <kharwell@digium.com>
+
+ * /, res/res_fax.c, configs/res_fax.conf.sample: res_fax:
+ check_modem_rate() returned incorrect rate for V.27 According to
+ the new standard for V.27 and V.32 they are able to transmit at a
+ bit rate of 4,800 or 9,600. The check_mode_rate function needed
+ to be updated to reflect this. Also, because of this change the
+ default 'minrate' value was updated to be 4800. (closes issue
+ ASTERISK-22790) Reported by: Paolo Compagnini Patches:
+ res_fax.txt uploaded by looserouting (license 6548) ........
+ Merged revisions 405656 from
+ http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
+ revisions 405693 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 405694 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+ * /, channels/chan_pjsip.c: chan_pjsip: initial device state on
+ endpoints is INVALID When endpoints get loaded their device state
+ gets set to 'INVALID' because the channel driver has not been
+ loaded yet. Fixed by updating the device state for every endpoint
+ upon load of the channel driver. (closes issue ASTERISK-23065)
+ Reported by: Rusty Newton Review:
+ https://reviewboard.asterisk.org/r/3123/ ........ Merged
+ revisions 405643 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-01-15 16:51 +0000 [r405586-405589] Jonathan Rose <jrose@digium.com>
+
+ * CHANGES: Make 12 - 12.1 CHANGES log the same as in 12
+
+ * CHANGES, /: Include CHANGES info for r405553 ........ Merged
+ revisions 405585 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-01-15 16:36 +0000 [r405584] Joshua Colp <jcolp@digium.com>
+
+ * /, cel/cel_manager.c: cel_manager: Don't crash if configuration
+ file is invalid. The cel_manager module did not properly handle
+ the case where the configuration file was invalid. The module
+ will now output a warning message and disable itself if this
+ occurs. Reported by: Bryan Walters ........ Merged revisions
+ 405581 from http://svn.asterisk.org/svn/asterisk/branches/1.8
+ ........ Merged revisions 405582 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 405583 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-01-15 13:16 +0000 [r405566] Kinsey Moore <kmoore@digium.com>
+
+ * res/res_pjsip/location.c, res/res_pjsip_outbound_registration.c,
+ res/res_pjsip_path.c (added), res/res_pjsip_mwi.c,
+ res/res_pjsip/pjsip_distributor.c, res/res_pjsip_diversion.c,
+ channels/chan_pjsip.c, res/res_pjsip_registrar.c,
+ res/res_pjsip_refer.c, include/asterisk/res_pjsip.h,
+ include/asterisk/res_pjsip_session.h, res/res_pjsip_notify.c, /,
+ res/res_pjsip_messaging.c, res/res_pjsip_caller_id.c,
+ res/res_pjsip_t38.c, res/res_pjsip.c,
+ res/res_pjsip/pjsip_options.c, res/res_pjsip_nat.c,
+ res/res_pjsip_session.c,
+ contrib/ast-db-manage/config/versions/2fc7930b41b3_add_pjsip_endpoint_options_for_12_1.py
+ (added), res/res_pjsip_header_funcs.c: PJSIP: Add Path header
+ support This adds Path support to chan_pjsip in res_pjsip_path.c
+ with minimal additions in res_pjsip_registrar.c to store the path
+ and additions in res_pjsip_outbound_registration.c to enable
+ advertisement of path support to registrars and intervening
+ proxies. Path information is stored on contacts and is enabled
+ via Address of Record (AoRs) and Registration configuration
+ sections. While adding path support, it became necessary to be
+ able to add SIP supplements that handled messages outside of
+ sessions, so a framework for handling these types of hooks was
+ added in parallel to the already-existing session supplements and
+ several senders of out-of-dialog requests were refactored as a
+ result. (closes issue ASTERISK-21084) Review:
+ https://reviewboard.asterisk.org/r/3050/ ........ Merged
+ revisions 405565 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-01-14 23:44 +0000 [r405554] Jonathan Rose <jrose@digium.com>
+
+ * res/res_stasis_mailbox.exports.in (added),
+ res/ari/ari_model_validators.h, rest-api/api-docs/mailboxes.json
+ (added), include/asterisk/stasis_app_mailbox.h (added),
+ res/ari/resource_mailboxes.c (added), /, res/ari.make,
+ res/res_ari_mailboxes.c (added), res/ari/resource_mailboxes.h
+ (added), res/res_stasis_mailbox.c (added),
+ rest-api/resources.json, res/ari/ari_model_validators.c: ARI: Add
+ mailboxes resource for controlling and polling external MWI Adds
+ the following AMI commands: PUT mailboxes/mailboxName modifies
+ mailbox state and implicitly creates new mailboxes GET
+ mailboxes/mailboxName retrieves a JSON representation of a single
+ mailbox if it exists GET mailboxes retrieves a JSON array of all
+ mailboxes DELETE mailbox/mailboxName deletes a mailbox Note that
+ res_mwi_external must be loaded for these functions to actually
+ do anything. Review: https://reviewboard.asterisk.org/r/3117/
+ ........ Merged revisions 405553 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-01-14 21:46 +0000 [r405542] Richard Mudgett <rmudgett@digium.com>
+
+ * main/strings.c, /: string container: Remove unnecessary RAII_VAR
+ usage and string object lock. ........ Merged revisions 405541
+ from http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-01-14 18:15 +0000 [r405437] Scott Griepentrog <sgriepentrog@digium.com>
+
+ * /, channels/chan_sip.c: chan_sip: fix Local From tag on outbound
+ register regression In ASTERISK-12117, an improvement to insure
+ consistant local from tags on outbound registrations resulted in
+ an undesirable behavior - caused by leftover unexpired sip_pvt
+ dialogs (with the previous cseq number), resulting in many
+ uncessary REGISTER requests. Instead of significant rework of
+ transmit_register(), this change deletes the dialogs after a 200
+ OK response indiciating a successful registration, keeping the
+ old dialogs from interfering with normal operation. (closes issue
+ ASTERISK-22946) Reported by: Stephan Eisvogel Review:
+ https://reviewboard.asterisk.org/r/3109/ ........ Merged
+ revisions 405433 from
+ http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
+ revisions 405434 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 405435 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-01-14 18:14 +0000 [r405436] Richard Mudgett <rmudgett@digium.com>
+
+ * apps/app_verbose.c, main/asterisk.c, configs/logger.conf.sample,
+ main/cli.c, include/asterisk/logger.h, main/pbx.c,
+ main/manager.c, /, funcs/func_timeout.c, apps/app_dumpchan.c,
+ main/logger.c, UPGRADE.txt: verbosity: Fix performance of console
+ verbose messages. The per console verbose level feature as
+ previously implemented caused a large performance penalty. The
+ fix required some minor incompatibilities if the new rasterisk is
+ used to connect to an earlier version. If the new rasterisk
+ connects to an older Asterisk version then the root console
+ verbose level is always affected by the "core set verbose"
+ command of the remote console even though it may appear to only
+ affect the current console. If an older version of rasterisk
+ connects to the new version then the "core set verbose" command
+ will have no effect. * Fixed the verbose performance by not
+ generating a verbose message if nothing is going to use it and
+ then filtered any generated verbose messages before actually
+ sending them to the remote consoles. * Split the "core set debug"
+ and "core set verbose" CLI commands to remove the per module
+ verbose support that cannot work with the per console verbose
+ level. * Added a silent option to the "core set verbose" command.
+ * Fixed "core set debug off" tab completion. * Made "core show
+ settings" list the current console verbosity in addition to the
+ root console verbosity. * Changed the default verbose level of
+ the 'verbose' setting in the logger.conf [logfiles] section. The
+ default is now to once again follow the current root console
+ level. As a result, using the AMI Command action with "core set
+ verbose" could again set the root console verbose level and
+ affect the verbose level logged. (closes issue AST-1252) Reported
+ by: Guenther Kelleter Review:
+ https://reviewboard.asterisk.org/r/3114/ ........ Merged
+ revisions 405431 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 405432 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-01-14 16:43 +0000 [r405420] Mark Michelson <mmichelson@digium.com>
+
+ * res/res_pjsip/pjsip_distributor.c: Fix erroneous behavior when
+ sending auth rejection to artificial endpoint. We were not
+ including an authentication challenge when sending a 401 response
+ to unmatched endpoints. This was due to the conversion to use a
+ vector for authentication section names on an endpoint. The
+ vector for artificial endpoints was empty, resulting in the
+ challenge being sent back containing no challenges. This is
+ worked around by placing a bogus value in the artificial
+ endpoint's auth vector. This value is never looked up by
+ anything, since they instead will directly call
+ ast_sip_get_artificial_auth().
+
+2014-01-14 03:27 +0000 [r405369] Damien Wedhorn <voip@facts.com.au>
+
+ * /, channels/chan_skinny.c: Skinny: do not add call to missed
+ calls list if answered elsewhere. Patch updates skinny devices
+ with a SKINNY_CONNECTED callstate if an inbound ringing or
+ callwaiting call is answered elsewhere. ........ Merged revisions
+ 405367 from http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-01-13 13:34 +0000 [r405339] Kinsey Moore <kmoore@digium.com>
+
+ * /, res/res_pjsip/pjsip_cli.c: res_pjsip: Fix CLI tab completion
+ issues This fixes several issues with the new res_pjsip CLI tab
+ completion such as output of headers during tab completion and
+ being able to tab-complete more items than the code actually
+ handled (further items would simply be ignored). (closes issue
+ ASTERISK-23081) Review: https://reviewboard.asterisk.org/r/3115/
+ Reported by: xrobau ........ Merged revisions 405338 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-01-12 22:24 +0000 [r405326] Joshua Colp <jcolp@digium.com>
+
+ * res/ari/resource_playbacks.c, res/ari/resource_channels.c,
+ include/asterisk/ari.h, res/ari/resource_bridges.c,
+ res/ari/resource_recordings.c, res/ari/resource_device_states.c,
+ res/res_ari.c, res/ari/resource_endpoints.c, /,
+ res/ari/resource_applications.c: res_ari: Fix various memory
+ leaks. This change fixes a few memory leaks that were found based
+ on a mailing list post. 1. Some JSON response messages were never
+ freed. This was caused by the documentation stating that message
+ references were stolen when in reality they were not. The code
+ now follows the documentation and usage has been updated. 2. HTTP
+ response headers were never freed. 3. The variable list for
+ wildcards paths was never freed. (closes issue ASTERISK-23128)
+ Reported by: Kenneth Watson (on list) Review:
+ https://reviewboard.asterisk.org/r/3119/ ........ Merged
+ revisions 405325 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-01-12 22:13 +0000 [r405313-405314] Matthew Jordan <mjordan@digium.com>
+
+ * apps/app_forkcdr.c, /, funcs/func_cdr.c, include/asterisk/cdr.h,
+ apps/app_cdr.c, main/cdr.c: CDRs: Synchronize dialplan
+ applications that manipulate CDRs with the engine In
+ https://reviewboard.asterisk.org/r/3057/, applications and
+ functions that manipulate CDRs were made to interact over Stasis.
+ This was done to synchronize manipulations of CDRs from the
+ dialplan with the updates the engine itself receives over the
+ message bus. This change rested on a faulty premise: that
+ messages published to the CDR topic or to a topic that forwards
+ to the CDR topic are synchronized with the messages handled by
+ the CDR topic subscription in the CDR engine. This is not the
+ case. There is no ordering guaranteed for two messages published
+ to the same topic; ordering is only guaranteed if a message is
+ published to the same subscriber. Stasis was modified in r405311
+ to allow a publisher to synchronize on the subscriber. This patch
+ uses that API to synchronize the CDR publishers with the CDR
+ engine message router, which maintains the overall topic
+ subscription. (closes issue ASTERISK-22884) Reported by: Matt
+ Jordan Review: https://reviewboard.asterisk.org/r/3099/ ........
+ Merged revisions 405312 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+ * main/stasis.c, main/stasis_message_router.c, /,
+ include/asterisk/stasis.h,
+ include/asterisk/stasis_message_router.h, tests/test_stasis.c:
+ stasis: Add methods to allow for synchronous publishing to
+ subscriber This patch adds an API call to Stasis that allows a
+ publisher to publish a stasis message that will not return until
+ a specific subscriber handles the message. Since a subscriber can
+ have their own forwarding topic which orders messages from many
+ topics, this allows a publisher who knows of that subscriber to
+ synchronize to that subscriber regardless of the forwarding
+ relationships between topics. This is of particular use for
+ dialplan applications that need to synchronize on a particular
+ subscriber's handling of a message. (issue ASTERISK-22884)
+ Reported by: Matt Jordan Review:
+ https://reviewboard.asterisk.org/r/3099/ ........ Merged
+ revisions 405311 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-01-10 20:00 +0000 [r405299] Mark Michelson <mmichelson@digium.com>
+
+ * /, res/res_pjsip/security_events.c: Print "<unknown>" for
+ artificial endpoint in PJSIP security events. Previously, this
+ printed a UUID, which was not very clear when dealing with an
+ artificial endpoint. Review:
+ https://reviewboard.asterisk.org/r/3113 ........ Merged revisions
+ 405298 from http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-01-10 18:17 +0000 [r405284] Richard Mudgett <rmudgett@digium.com>
+
+ * /, main/logger.c: Logging callid: Fix some sizeof() references
+ per coding guidelines. ........ Merged revisions 405281 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 405282 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-01-09 23:52 +0000 [r405270] Jonathan Rose <jrose@digium.com>
+
+ * res/res_pjsip_session.c: PJSIP: Add unhold on reinvite without
+ SDP behavior Review: https://reviewboard.asterisk.org/r/3106/
+
+2014-01-09 23:50 +0000 [r405269] Damien Wedhorn <voip@facts.com.au>
+
+ * channels/chan_dahdi.c, /: Fix chan_dahdi copile issue in
+ dev-mode. Error "unused variable i in dahdi_create_channel_range"
+ when compiling in dev-mode. Small restructure to
+ dahdi_create_channel_range to move the for(x) loop and int i,x to
+ a block within the IFDEF. ........ Merged revisions 405268 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-01-09 23:39 +0000 [r405267] Kevin Harwell <kharwell@digium.com>
+
+ * res/res_pjsip.c, /, res/res_pjsip_messaging.c:
+ res_pjsip_messaging: potential for field values in from/to
+ headers to be missing Added in ability to specify display name
+ format ("name" <sip:name@ipaddr:port>) for a given URI and made
+ sure it was fully propagated to the outgoing message. Also made
+ it so outoing messages in res_pjsip always send as "sip:".
+ (closes issue ASTERISK-22924) Reported by: Anthony Messina
+ Review: https://reviewboard.asterisk.org/r/3094/ ........ Merged
+ revisions 405266 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-01-09 20:34 +0000 [r405254] Kinsey Moore <kmoore@digium.com>
+
+ * main/astobj2.c, res/res_pjsip_session.c, /,
+ include/asterisk/astobj2.h: astobj2: Correct ao2_iterator opacity
+ violations This corrects the ao2_iterator opacity violations in
+ res_pjsip_session.c by adding a global function to get the number
+ of elements inside the container hidden behind the iterator.
+ (closes issue ASTERISK-23053) Review:
+ https://reviewboard.asterisk.org/r/3111/ Reported by: Richard
+ Mudgett ........ Merged revisions 405253 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-01-09 16:52 +0000 [r405236] Kevin Harwell <kharwell@digium.com>
+
+ * res/res_rtp_asterisk.c, /: res_rtp_asterisk: Fails to resume
+ WebRTC call from hold In ast_rtp_ice_start if the ice session
+ create check list failed, start check was never initiated and
+ ice_started was never set to true. Upon re-entering the function
+ (for instance, [un]hold) it would try to create the check list
+ again with duplicate remote candidates. Fixed so that if the
+ create check list fails the necessary data structures are
+ properly re-initialized for any subsequent retries. Note, it was
+ decided to not stop ice support (by calling ast_rtp_ice_stop) on
+ a check list failure because it possible things might still work.
+ However, a debug message was added to help with any future
+ troubleshooting. (closes issue ASTERISK-22911) Reported by: Vytis
+ Valentinavičius Patches: works_on_my_machine.patch uploaded by
+ xytis (license 6558) ........ Merged revisions 405234 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 405235 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-01-09 15:50 +0000 [r405217] Matthew Jordan <mjordan@digium.com>
+
+ * /, apps/app_confbridge.c,
+ apps/confbridge/conf_state_multi_marked.c: app_confbridge: Fix
+ crash caused when waitmarked/marked users leave together When
+ waitmarked users join a ConfBridge, the conference state is
+ transitioned from EMPTY -> INACTIVE. In this state, the users are
+ maintined in a waiting users list. When a marked user joins, the
+ ConfBridge conference transitions from INACTIVE -> MULTI_MARKED,
+ and all users are put onto the active list of users. This process
+ works correctly. When the marked user leaves, if they are the
+ last marked user, the MULTI_MARKED state does the following: (1)
+ It plays back a message to the bridge stating that the leader has
+ left the conference. This requires an unlocking of the bridge.
+ (2) It moves waitmarked users back to the waiting list (3) It
+ transitions to the appropriate state: in this case, INACTIVE
+ However, because it plays the prompt back to the bridge before
+ moving the users and before finishing the state transition, this
+ creates a race condition: with the bridge unlocked, waitmarked
+ users who leave the conference (or are kicked from it) can cause
+ a state transition of the bridge to another state before the
+ conference is transitioned to the INACTIVE state. This causes the
+ state machine to get a bit wonky, often leading to a crash when
+ the MULTI_MARKED state attempts to conclude its processing. This
+ patch fixes this problem: (1) It prevents kicked users from being
+ kicked again. That's just a nicety. (2) More importantly, it
+ fixes the race condition by only playing the prompt once the
+ state has transitioned correctly to INACTIVE. If waitmarked users
+ sneak out during the prompt being played, no harm no foul.
+ Review: https://reviewboard.asterisk.org/r/3108/ Note that the
+ patch committed here is essentially the same as uploaded by Simon
+ Moxon on ASTERISK-22740, with the addition of the double kick
+ prevention. (closes issue AST-1258) Reported by: Steve Pitts
+ (closes issue ASTERISK-22740) Reported by: Simon Moxon patches:
+ ASTERISK-22740.diff uploaded by Simon Moxon (license 6546)
+ ........ Merged revisions 405215 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 405216 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-01-09 14:15 +0000 [r405163] Walter Doekes <walter+asterisk@wjd.nu>
+
+ * /, apps/app_dumpchan.c: "Minimun" typo. ........ Merged revisions
+ 405160 from http://svn.asterisk.org/svn/asterisk/branches/1.8
+ ........ Merged revisions 405161 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 405162 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-01-08 17:23 +0000 [r405144] Mark Michelson <mmichelson@digium.com>
+
+ * /, res/res_pjsip/security_events.c: Use proper case for checking
+ if digest authentication is used. ........ Merged revisions
+ 405131 from http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-01-08 16:34 +0000 [r405129-405130] Kinsey Moore <kmoore@digium.com>
+
+ * /, configure, configure.ac, pbx/pbx_lua.c: pbx_lua: Add support
+ for Lua 5.2 This adds support for Lua 5.2 in pbx_lua which is
+ available on newer operating systems. (closes issue
+ ASTERISK-23011) Review: https://reviewboard.asterisk.org/r/3075/
+ Reported by: George Joseph Patch by: George Joseph ........
+ Merged revisions 405090 from
+ http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
+ revisions 405091 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 405124 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+ * /, channels/chan_sip.c: Add the missing part of r400140 When the
+ patch to add retry-on-forbidden-response was committed, part of
+ the patch for chan_sip was not committed which caused the feature
+ to be entirely nonfunctional. This corrects the code in question.
+ (closes issue ASTERISK-17138) Review:
+ https://reviewboard.asterisk.org/r/2874 ........ Merged revisions
+ 405033 from http://svn.asterisk.org/svn/asterisk/branches/1.8
+ ........ Merged revisions 405081 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 405083 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-01-07 19:56 +0000 [r405020-405035] Joshua Colp <jcolp@digium.com>
+
+ * /, res/res_pjsip_acl.c: res_pjsip_acl: Fix another case of
+ assuming a contact will always contain a URI. ........ Merged
+ revisions 405034 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+ * /, res/res_pjsip_nat.c: res_pjsip_nat: Don't assume a Contact
+ header will always contain a URI. If the 'rewrite_contact' option
+ was enabled and a Contact header was received which contained a
+ '*' a crash would occur. This change makes the res_pjsip_nat
+ module ignore the Contact header if it contains only a '*'.
+ (closes issue ASTERISK-23101) Reported by: Matt Jordan ........
+ Merged revisions 405019 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-01-06 21:55 +0000 [r404953-405007] Richard Mudgett <rmudgett@digium.com>
+
+ * apps/app_voicemail.c, /: app_voicemail: Explicitly set
+ defaultenabled=yes ........ Merged revisions 405006 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+ * /, res/res_mwi_external_ami.c (added): External MWI AMI support.
+ The external MWI AMI interface provides a thin wrapper around the
+ core external MWI resource. The resource adds the following AMI
+ actions: MWIGet, MWIDelete, and MWIUpdate. (closes issue AFS-46)
+ Review: https://reviewboard.asterisk.org/r/3061/ ........ Merged
+ revisions 404954 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+ * /, res/res_mwi_external.c (added), configs/sorcery.conf.sample,
+ include/asterisk/res_mwi_external.h (added),
+ res/res_mwi_external.exports.in (added), apps/app_voicemail.c:
+ External MWI core support. * The core external MWI resource
+ provides for MWI message counts persistence using sorcery. With
+ sorcery, the user is able to configure which sorcery wizzard
+ backend to use if the default astdb is not desired. * The core
+ external MWI resoruce provides some debugging CLI commands
+ enabled by defining MWI_DEBUG_CLI. The debugging CLI commands
+ are: "mwi delete all", "mwi delete like <regex>", "mwi delete
+ mailbox <mailbox>", "mwi list all", "mwi list like <regex>", "mwi
+ show mailbox <mailbox>", and "mwi update mailbox <mailbox> [<new>
+ [<old>]]". (closes issue AFS-43) Review:
+ https://reviewboard.asterisk.org/r/3061/ ........ Merged
+ revisions 404952 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-01-05 16:01 +0000 [r404924-404936] Joshua Colp <jcolp@digium.com>
+
+ * /, res/res_pjsip_outbound_registration.c:
+ res_pjsip_outbound_registration: Don't assume that a registration
+ client will always exist. ........ Merged revisions 404935 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+ * /, res/res_pjsip_outbound_registration.c:
+ res_pjsip_outbound_registration: Create registration client in pj
+ thread. Depending on which threading was loading the outbound
+ registration it was possible for the registration client to be
+ allocated outside of a pj thread. This change moves the creation
+ inside the synchronous task where it is guaranteed it will occur
+ in a pj thread. Reported by: Rob Thomas ........ Merged revisions
+ 404923 from http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-01-04 10:52 +0000 [r404912] Tzafrir Cohen <tzafrir.cohen@xorcom.com>
+
+ * main/asterisk.c, /: asterisk.c: suppress live_dangerously warning
+ on rasterisk Even since the fixes of AST-2013-007, Asterisk
+ prints the following warning on startup if the user decided to
+ live dangerously: Privilege escalation protection disabled! See
+ https://wiki.asterisk.org/wiki/x/1gKfAQ for more details. This
+ message is intended for the logs and interactive startup. No need
+ for it to appear on a remote console. This commit removes it from
+ there. (closes issue ASTERISK-23084) Review:
+ https://reviewboard.asterisk.org/r/3101/ ........ Merged
+ revisions 404861 from
+ http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
+ revisions 404888 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 404911 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-01-03 22:00 +0000 [r404860] Kevin Harwell <kharwell@digium.com>
+
+ * cel/cel_pgsql.c, /: cel_pgsql: module not correctly reloading
+ Upon reload the module unconditionally "unloaded" the module
+ (freeing memory and setting pointers to NULL) and then when
+ attempting a "load" if the config file had not changed then
+ nothing would be reinitialized. By moving the "unload" to occur
+ conditionally (reload only) after an attempted configuration
+ load, but before module "loading" alleviates the issue. The
+ module now loads/unloads/reloads correctly. (closes issue
+ ASTERISK-22871) Reported by: Matteo ........ Merged revisions
+ 404857 from http://svn.asterisk.org/svn/asterisk/branches/1.8
+ ........ Merged revisions 404858 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 404859 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-01-03 21:45 +0000 [r404844-404856] Matthew Jordan <mjordan@digium.com>
+
+ * /, res/res_pjsip_logger.c: res_pjsip_logger: Add the
+ ASTERISK_FILE_VERSION macro Registering yourself with the
+ Asterisk core is the nice thing to do, even when you're a logging
+ module. ........ Merged revisions 404855 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+ * /, res/res_pjsip_authenticator_digest.c, tests/test_utils.c:
+ res_pjsip_authenticator_digest: Fix md5 hash buffer An md5 hash
+ is 32 bytes long. The char buffer must be at least 33 bytes to
+ avoid clobbering of the stack. This patch also fixes a potential
+ clobbering in test_utils.c. Thanks to Andrew Nagy for reporting
+ and testing this out in #asterisk-dev Reported by: Andrew Nagy
+ Tested by: Andrew Nagy ........ Merged revisions 404843 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-01-03 20:02 +0000 [r404787-404832] Kevin Harwell <kharwell@digium.com>
+
+ * main/manager.c: manager: UserEvent including action on output AMI
+ action UserEvent event response would include the action header
+ in its keyvalue pairs list. Adjusted the start of the header loop
+ to skip over the action part. (closes issue ASTERISK-22899)
+ Reported by: outtolunc Patches:
+ svn_manager.c.skip_action.diff.txt uploaded by outtolunc (license
+ 5198)
+
+ * channels/chan_dahdi.c, /: chan_dahdi: dahdi show channels slices
+ PRI channel dnid on output dahdi show channels output slices the
+ callerid (which is dnid copied over on PRI channels). If the
+ channel naming structures look like: 'DAHDI/i1/1408409XXXX-6'
+ then the output slices 1408409XXXX down to 1408409XXX. This patch
+ just opens it up to 15 chars so you can see the whole thing.
+ (closes issue ASTERISK-22918) Reported by: outtolunc Patches:
+ svn_chan_dahdi.c.format12_15.diff.txt uploaded by outtolunc
+ (license 5198) ........ Merged revisions 404784 from
+ http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
+ revisions 404785 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 404786 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-01-03 18:33 +0000 [r404783] Richard Mudgett <rmudgett@digium.com>
+
+ * tests/test_stasis.c, /: test_stasis.c: Fix ref leak in normal
+ execution path. ........ Merged revisions 404764 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-01-03 18:31 +0000 [r404782] Kevin Harwell <kharwell@digium.com>
+
+ * /, apps/app_meetme.c: app_meetme: compiler warning Fixed a
+ compiler warning (errors in 'dev-mode') given by gcc version
+ 4.8.1. The one in app_meetme involved the
+ 'sizeof-pointer-memaccess' (see:
+ http://gcc.gnu.org/gcc-4.8/porting_to.html) warning. Fixed so it
+ would no longer issue a warning and can compile again in
+ 'dev-mode'. Review: https://reviewboard.asterisk.org/r/3098/
+ ........ Merged revisions 404742 from
+ http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
+ revisions 404773 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 404781 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-01-03 17:27 +0000 [r404726-404738] Joshua Colp <jcolp@digium.com>
+
+ * res/res_pjsip/pjsip_configuration.c, /, res/res_pjsip/location.c:
+ res_pjsip: Ensure more URI validation happens in pj threads.
+ ........ Merged revisions 404737 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+ * /, res/res_pjsip_outbound_registration.c:
+ res_pjsip_outbound_registration: Ensure URI validation happens in
+ a pjlib thread. This change moves outbound registration URI
+ validation into the task executed within a pjlib thread. Reported
+ by: Andrew Nagy ........ Merged revisions 404725 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-01-02 19:38 +0000 [r404677] Scott Griepentrog <sgriepentrog@digium.com>
+
+ * /, funcs/func_strings.c: func_strings: use memmove to prevent
+ overlapping memory on strcpy When calling REPLACE() with an empty
+ replace-char argument, strcpy is used to overwrite the the
+ matching <find-char>. However as the src and dest arguments to
+ strcpy must not overlap, it causes other parts of the string to
+ be overwritten with adjacent characters and the result is
+ mangled. Patch replaces call to strcpy with memmove and adds a
+ test suite case for REPLACE. (closes issue ASTERISK-22910)
+ Reported by: Gareth Palmer Review:
+ https://reviewboard.asterisk.org/r/3083/ Patches:
+ func_strings.patch uploaded by Gareth Palmer (license 5169)
+ ........ Merged revisions 404674 from
+ http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
+ revisions 404675 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 404676 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2014-01-02 19:08 +0000 [r404664] Kevin Harwell <kharwell@digium.com>
+
+ * channels/chan_pjsip.c, include/asterisk/res_pjsip.h, /,
+ configs/pjsip.conf.sample, res/res_pjsip/pjsip_configuration.c,
+ CHANGES, res/res_pjsip.c: res_pjsip: add 'set_var' support on
+ endpoints Added a new 'set_var' option for ast_sip_endpoint(s).
+ For each variable specified that variable gets set upon creation
+ of a pjsip channel involving the endpoint. (closes issue
+ ASTERISK-22868) Reported by: Joshua Colp Review:
+ https://reviewboard.asterisk.org/r/3095/ ........ Merged
+ revisions 404663 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2013-12-31 22:51 +0000 [r404620-404653] Joshua Colp <jcolp@digium.com>
+
+ * channels/chan_pjsip.c, res/res_pjsip_session.c, /: chan_pjsip:
+ Handle hanging up before calling. Channel creation in Asterisk is
+ broken up into two steps: requesting and calling. In some cases a
+ channel may be requested but never called. This happens in the
+ ChanIsAvail dialplan application for determining if something is
+ reachable or not. The PJSIP channel driver did not take this
+ situation into account and attempted to end a session that was
+ never called out on. The code now checks the session state to
+ determine if the session has been called out on and if not
+ terminates it instead of ending it. (closes issue ASTERISK-23074)
+ Reported by: Kilburn ........ Merged revisions 404652 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+ * /, res/res_pjsip_endpoint_identifier_ip.c:
+ res_pjsip_endpoint_identifier_ip: Accept hostnames in the 'match'
+ field. Hostnames specified in the 'match' field will be resolved
+ and all addresses returned. Each address will be added to the
+ endpoint identifier for the matching process. Reported by: Rob
+ Thomas ........ Merged revisions 404613 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2013-12-31 21:39 +0000 [r404606] Kevin Harwell <kharwell@digium.com>
+
+ * cel/cel_pgsql.c, /: cel_pgsql: deadlock on unload and
+ core_event_dispatcher A deadlock can happen between a thread
+ unloading or reloading the cel_pgsql module and the
+ core_event_dispatcher taskprocessor thread. Description of what
+ is happening: Thread 1 (for example, a netconsole thread): a
+ "module reload cel_pgsql" is launched the thread enter the
+ "my_unload_module" function (cel_pgsql.c) the thread acquire the
+ write lock on psql_columns the thread enter the
+ "ast_event_unsubscribe" function (event.c) the thread try to
+ acquire the write lock on ast_event_subs[sub->type] Thread 2
+ (core_event_dispatcher taskprocessor thread): the taskprocessor
+ pop a CEL event the thread enter the "handle_event" function
+ (event.c) the thread acquire the read lock on
+ ast_event_subs[sub->type] the thread callback the "pgsql_log"
+ function (cel_pgsql.c), since it's a subscriber of CEL events the
+ thread try to acquire a read lock on psql_columns (closes issue
+ ASTERISK-22854) Reported by: Etienne Lessard Patches:
+ cel_pgsql_fix_deadlock_event.patch uploaded by hexanol (license
+ 6394) ........ Merged revisions 404603 from
+ http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
+ revisions 404604 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 404605 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2013-12-31 20:27 +0000 [r404593] Joshua Colp <jcolp@digium.com>
+
+ * res/res_pjsip_outbound_registration.c, /:
+ res_pjsip_outbound_registration: Add validation for 'server_uri'
+ and 'client_uri'. When applying configuration for outbound
+ registrations the 'server_uri' and 'client_uri' fields were not
+ validated. The code will now confirm that they exist and that
+ they contain parseable SIP URIs. Reported by: Andrew Nagy
+ ........ Merged revisions 404592 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2013-12-30 23:25 +0000 [r404582] Kevin Harwell <kharwell@digium.com>
+
+ * main/channel.c, /: channels.c: core show channeltypes slicing
+ 'core show channeltypes' type column is being sliced, resulting
+ in incomplete type names. (closes issue ASTERISK-22919) Reported
+ by: outtolunc Patches: svn_channel.c.format_15.diff.txt uploaded
+ by outtolunc (license 5198) ........ Merged revisions 404579 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 404581 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2013-12-24 17:12 +0000 [r404567-404569] David M. Lee <dlee@digium.com>
+
+ * UPGRADE-12.txt, /: Added note to UPGRADE.txt about the default
+ value of live_dangerously changing ........ Merged revisions
+ 404568 from http://svn.asterisk.org/svn/asterisk/branches/12
+
+ * /, main/http.c: http: Properly reject requests with
+ Transfer-Encoding set Asterisk does not support any of the
+ transfer encodings specified in HTTP/1.1, other than the default
+ "identity" encoding. According to RFC 2616: A server which
+ receives an entity-body with a transfer-coding it does not
+ understand SHOULD return 501 (Unimplemented), and close the
+ connection. A server MUST NOT send transfer-codings to an
+ HTTP/1.0 client. This patch adds the 501 Unimplemented response,
+ instead of the hard work of actually implementing other
+ recordings. This behavior is especially problematic for Node.js
+ clients, which use chunked encoding by default. (closes issue
+ ASTERISK-22486) Review: https://reviewboard.asterisk.org/r/3092/
+ ........ Merged revisions 404565 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2013-12-24 02:20 +0000 [r404554] Joshua Colp <jcolp@digium.com>
+
+ * /, res/res_pjsip_pubsub.c: res_pjsip_pubsub: Ensure dialog
+ manipulation happens on proper thread. When destroying a
+ subscription we remove the serializer from its dialog and
+ decrease its reference count. Depending on which thread dropped
+ the subscription reference count to 0 it was possible for this to
+ occur in a thread where it is not possible. (closes issue
+ ASTERISK-22952) Reported by: Matt Jordan ........ Merged
+ revisions 404553 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2013-12-23 16:38 +0000 [r404542] Tzafrir Cohen <tzafrir.cohen@xorcom.com>
+
+ * channels/chan_dahdi.c, configs/chan_dahdi.conf.sample,
+ UPGRADE-12.txt: chan_dahdi: enable ignore_failed_channels by
+ default If ignore_failed_channels is set to "true" for a channel,
+ the channel will continue to be configured even if configuring it
+ has failed. This allows Asterisk to start before all the DAHDI
+ initialization is done and thus not force the starting order
+ dahdi -> asterisk. Review:
+ https://reviewboard.asterisk.org/r/3063/
+
+2013-12-21 03:35 +0000 [r404532] Matthew Jordan <mjordan@digium.com>
+
+ * /, res/res_pjsip/pjsip_cli.c: res_pjsip/pjsip_cli: fix
+ compilation error caused by passing ast_free When wanting to pass
+ *free as a function pointer, ast_free_ptr has to be used instead
+ of ast_free. This allows it to be compiled with MALLOC_DEBUG
+ enabled. ........ Merged revisions 404531 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2013-12-20 22:04 +0000 [r404511-404512] David M. Lee <dlee@digium.com>
+
+ * rest-api/api-docs/channels.json, res/ari/resource_channels.c,
+ res/res_ari_channels.c, res/ari/resource_channels.h, /,
+ rest-api/api-docs/applications.json: ari: Remove support for
+ specifying channel vars during origination. When we added support
+ for specifying channel variables for an origination, we didn't
+ consider how that would interact with another feature, namely
+ specifying request parameters in a JSON request body. The method
+ of specifying channel variables (as a flat JSON object passed in
+ the JSON body) interferes with parsing parameters out of the
+ request body. Unfortunately, fixing this would be a backward
+ incompatible change. In the interest of keeping the API sane and
+ keeping our release schedule, we're dropping the feature for
+ specifying channel variables in the origination request. We will
+ bring the feature back soon, as a backward compatible addition to
+ the API. (closes issue ASTERISK-23051) Review:
+ https://reviewboard.asterisk.org/r/3088 ........ Merged revisions
+ 404509 from http://svn.asterisk.org/svn/asterisk/branches/12
+
+ * /: Remove automerge properties ........ Merged revisions 404488
+ from http://svn.asterisk.org/svn/asterisk/branches/12
+
+2013-12-20 21:32 +0000 [r404507] Matthew Jordan <mjordan@digium.com>
+
+ * include/asterisk/config.h, main/config.c, main/channel.c,
+ res/res_pjsip/location.c, include/asterisk/res_pjsip_cli.h
+ (added), res/res_pjsip/pjsip_cli.c (added),
+ include/asterisk/sorcery.h, res/res_pjsip/pjsip_configuration.c,
+ res/res_pjsip/include/res_pjsip_private.h,
+ res/res_pjsip_registrar.c, main/sorcery.c,
+ include/asterisk/res_pjsip.h, CREDITS,
+ res/res_pjsip/config_auth.c, /,
+ res/res_pjsip_endpoint_identifier_ip.c: res_pjsip: Add PJSIP CLI
+ commands Implements the following cli commands: pjsip list aors
+ pjsip list auths pjsip list channels pjsip list contacts pjsip
+ list endpoints pjsip show aor(s) pjsip show auth(s) pjsip show
+ channels pjsip show endpoint(s) Also... Minor modifications made
+ to the AMI command implementations to facilitate reuse. New
+ function ast_variable_list_sort added to config.c and config.h to
+ implement variable list sorting. (issue ASTERISK-22610) patches:
+ pjsip_cli_v2.patch uploaded by george.joseph (License 6322)
+ ........ Merged revisions 404480 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2013-12-20 21:18 +0000 [r404461] Scott Griepentrog <sgriepentrog@digium.com>
+
+ * /, main/say.c: say.c: correct time for polish In
+ ast_say_date_with_format_pl(), change ast_say_number() to use
+ tm_sec instead of tm_mn. (closes issue ASTERISK-22856) Reported
+ by: Robert Mordec Review:
+ https://reviewboard.asterisk.org/r/3082/ Patches: say.c.patch
+ uploaded by veilen (license 6555) ........ Merged revisions
+ 404456 from http://svn.asterisk.org/svn/asterisk/branches/1.8
+ ........ Merged revisions 404457 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 404458 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2013-12-20 20:28 +0000 [r404452] Mark Michelson <mmichelson@digium.com>
+
+ * /, res/res_pjsip_refer.c: Fix issue where PJSIP blind transferer
+ dialog may not complete as planned. When transferring to a
+ dialplan extension that will not place any outbound calls, the
+ only control frames that the PJSIP REFER framehook will receive
+ are inconsequential (such as unhold or srcchange). As such, we
+ shouldn't allow for the reception of those types of frames
+ prevent us from signaling to the transferring party that the
+ transfer has completed successfully once voice frames are read.
+ Thanks to Jonathan Rose for pointing this out. ........ Merged
+ revisions 404439 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2013-12-20 20:05 +0000 [r404438] Matthew Jordan <mjordan@digium.com>
+
+ * /, res/ari/resource_applications.h,
+ res/res_stasis_device_state.c: res_stasis_device_state: Set
+ resource type for subscriptions to deviceState The documentation
+ for ARI already specifies that the device state resource when
+ used for subscribing for events is "deviceState", not
+ "device_state". The code, however, used "device_state"; although
+ this was inconsistent as well in doxygen comments in
+ resource_applications. Because the actual resource being
+ subscribed to is /deviceStates/{device}/, it makes sense for the
+ resource type specifier to be deviceState. Note that the key
+ value in the events is still "device_state". ........ Merged
+ revisions 404437 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2013-12-20 20:00 +0000 [r404436] Richard Mudgett <rmudgett@digium.com>
+
+ * res/ari/resource_channels.c, tests/test_scoped_lock.c,
+ tests/test_stasis.c, res/parking/parking_manager.c,
+ res/ari/resource_bridges.c, res/ari/resource_endpoints.c, /,
+ res/res_pjsip/location.c, tests/test_cel.c: ao2_iterator:
+ Mini-audit of the ao2_iterator loops in the new code files. *
+ Fixed several places where ao2_iterator_destroy() was not called.
+ * Fixed several iterator loop object variable reference problems.
+ * Fixed res_parking AMI actions returning non-zero. Only the AMI
+ logoff action can return non-zero. Review:
+ https://reviewboard.asterisk.org/r/3087/ ........ Merged
+ revisions 404434 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2013-12-20 19:25 +0000 [r404433] Matthew Jordan <mjordan@digium.com>
+
+ * include/asterisk/manager.h, /: manager: bump version to 2.0.0 AMI
+ has received substantial updates over the past year. Not only has
+ the syntax been vastly improved and made consistent (which
+ entails many event changes), but the underlying things that those
+ events convey have changed substantially as well. After some
+ conversation in #asterisk-dev, it was agreed that this is a good
+ time to jump to 2. At the same time, since ARI will most likely
+ use semantic versioning, we might as well use that for AMI as
+ well. That also affords us greater meaning for the AMI version.
+ ........ Merged revisions 404421 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2013-12-20 19:06 +0000 [r404420] Richard Mudgett <rmudgett@digium.com>
+
+ * /, main/sounds_index.c: Whitespace fixes. ........ Merged
+ revisions 404419 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2013-12-20 17:22 +0000 [r404406] Rusty Newton <rnewton@digium.com>
+
+ * /, configs/pjsip.conf.sample: Documentation: Updates for info
+ about NAT-related settings and fixes for pjsip.conf.sample Added
+ another NAT example to pjsip.conf.sample. We had a few mentions
+ of NAT configuration throughout the sample, but I added another
+ for a little bit more clarity. Additionally many pjsip options
+ were affected by the change to snake case, so I fixed any
+ instances of those options in pjsip.conf. I regenerated the
+ config option list (at the bottom of the file) from a new xml
+ config doc dump, so all the snake case changes should be
+ reflected there, as well as any other changes to those options.
+ (issue ASTERISK-23004) (closes issue ASTERISK-23004) Reported by:
+ Matt Jordan Review: https://reviewboard.asterisk.org/r/3086/
+ ........ Merged revisions 404405 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2013-12-19 20:48 +0000 [r404387] Scott Griepentrog <sgriepentrog@digium.com>
+
+ * main/security_events.c: security_events: log events with
+ descriptive names This patch updates the log messages to include
+ descriptive names for event types. This is an improvement over
+ having only cryptic type numbers. (closes issue ASTERISK-22909)
+ Reported by: outtolunc Review:
+ https://reviewboard.asterisk.org/r/3081/ Patches:
+ svn_security_events.c.names.diff.txt uploaded by outtolunc
+ (license 5198)
+
+2013-12-19 18:16 +0000 [r404376] Richard Mudgett <rmudgett@digium.com>
+
+ * /, CHANGES: Put notice in CHANGES as well as UPGRADE.txt.
+ ........ Merged revisions 404375 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2013-12-19 18:00 +0000 [r404370-404372] Joshua Colp <jcolp@digium.com>
+
+ * res/res_pjsip/pjsip_outbound_auth.c, /: res_pjsip: Ignore 401/407
+ responses for transactions and dialogs we don't know about. Under
+ normal conditions it is unlikely we will ever receive a response
+ for a transaction or dialog we don't know about but if any are
+ received ignore them. ........ Merged revisions 404371 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+ * /, res/res_pjsip_session.c: res_pjsip_session: Fix SDP
+ negotiation when resending an INVITE with authentication. The
+ process for resending an INVITE with authentication involves
+ restarting the UAC session. We were incorrectly passing in that a
+ new offer is being sent, causing the SDP negotiation to get into
+ a (technically speaking) funky state. ........ Merged revisions
+ 404369 from http://svn.asterisk.org/svn/asterisk/branches/12
+
+2013-12-19 17:45 +0000 [r404368] Mark Michelson <mmichelson@digium.com>
+
+ * include/asterisk/channel.h, res/res_pjsip.c, main/channel.c, /,
+ include/asterisk/autochan.h: Fix a deadlock that occurred due to
+ a conflict of masquerades. For the explanation, here is a
+ copy-paste of the review board explanation: Initially, it was
+ discovered that performing an attended transfer of a multiparty
+ bridge with a PJSIP channel would cause a deadlock. A PBX thread
+ started a masquerade and reached the point where it was calling
+ the fixup() callback on the "original" channel. For chan_pjsip,
+ this involves pushing a synchronous task to the session's
+ serializer. The problem was that a task ahead of the fixup task
+ was also attempting to perform a channel masquerade. However,
+ since masquerades are designed in a way to only allow for one to
+ occur at a time, the task ahead of the fixup could not continue
+ until the masquerade already in progress had completed. And of
+ course, the masquerade in progress could not complete until the
+ task ahead of the fixup task had completed. Deadlock. The initial
+ fix was to change the fixup task to be asynchronous. While this
+ prevented the deadlock from occurring, it had the frightful side
+ effect of potentially allowing for tasks in the session's
+ serializer to operate on a zombie channel. Taking a step back
+ from this particular deadlock, it became clear that the problem
+ was not really this one particular issue but that masquerades
+ themselves needed to be addressed. A PJSIP attended transfer
+ operation calls ast_channel_move(), which attempts to both set up
+ and execute a masquerade. The problem was that after it had set
+ up the masquerade, the PBX thread had swooped in and tried to
+ actually perform the masquerade. Looking at changes that had been
+ made to Asterisk 12, it became clear that there never is any time
+ now that anyone ever wants to set up a masquerade and allow for
+ the channel thread to actually perform the masquerade. Everyone
+ always is calling ast_channel_move(), performs the masquerade
+ itself before returning. In this patch, I have removed all blocks
+ of code from channel.c that will attempt to perform a masquerade
+ if ast_channel_masq() returns true. Now, there is no distinction
+ between setting up a masquerade and performing the masquerade. It
+ is one operation. The only remaining checks for
+ ast_channel_masq() and ast_channel_masqr() are in ast_hangup()
+ since we do not want to interrupt a masquerade by hanging up the
+ channel. Instead, now ast_hangup() will wait for a masquerade to
+ complete before moving forward with its operation. The
+ ast_channel_move() function has been modified to basically
+ in-line the logic that used to be in ast_channel_masquerade().
+ ast_channel_masquerade() has been killed off for real.
+ ast_channel_move() now has a lock associated with it that is used
+ to prevent any simultaneous moves from occurring at once. This
+ means there is no need to make sure that ast_channel_masq() or
+ ast_channel_masqr() are already set on a channel when
+ ast_channel_move() is called. It also means the channel container
+ lock is not pulling double duty by both keeping the container
+ locked and preventing multiple masquerades from occurring
+ simultaneously. The ast_do_masquerade() function has been renamed
+ to do_channel_masquerade() and is now internal to channel.c. The
+ function now takes explicit arguments of which channels are
+ involved in the masquerade instead of a single channel. While it
+ probably is possible to do some further refactoring of this
+ method, I feel that I would be treading dangerously. Instead, all
+ I did was change some comments that no longer are true after this
+ changeset. The other more minor change introduced in this patch
+ is to res_pjsip.c to make ast_sip_push_task_synchronous() run the
+ task in-place if we are already a SIP servant thread. This is
+ related to this patch because even when we isolate the channel
+ masquerade to only running in the SIP servant thread, we would
+ still deadlock when the fixup() callback is reached since we
+ would essentially be waiting forever for ourselves to finish
+ before actually running the fixup. This makes it so the fixup is
+ run without having to push a task into a serializer at all.
+ (closes issue ASTERISK-22936) Reported by Jonathan Rose Review:
+ https://reviewboard.asterisk.org/r/3069 ........ Merged revisions
+ 404356 from http://svn.asterisk.org/svn/asterisk/branches/12
+
+2013-12-19 17:13 +0000 [r404355] Richard Mudgett <rmudgett@digium.com>
+
+ * main/udptl.c, addons/chan_ooh323.c, /, channels/chan_sip.c,
+ include/asterisk/udptl.h: udptl: Dead code elimination.
+ ast_udptl_bridge was not used. Removing dead code starting with
+ ast_udptl_bridge() eliminated the code in this change. Note: This
+ code has actually been dead since Asterisk v1.4 when it was first
+ put in. Review: https://reviewboard.asterisk.org/r/3079/ ........
+ Merged revisions 404354 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2013-12-19 17:03 +0000 [r404353] Scott Griepentrog <sgriepentrog@digium.com>
+
+ * /, res/res_fax.c: res_fax.c: crash on framehook with no dsp in
+ fax detect In fax_detect_framehook() a null pointer reference can
+ occur where a voice frame is processed but no dsp is attached to
+ the fax detection structure. The code block that rejects frames
+ that detection cannot be processed on is checking for dsp but
+ falls through when it should instead return, as this change
+ implements. (closes issue ASTERISK-22942) Reported by: adomjan
+ Review: https://reviewboard.asterisk.org/r/3076/ ........ Merged
+ revisions 404351 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 404352 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2013-12-19 16:52 +0000 [r404350] Richard Mudgett <rmudgett@digium.com>
+
+ * configs/skinny.conf.sample, res/res_xmpp.c, res/res_jabber.c,
+ CHANGES, channels/chan_iax2.c, channels/sig_pri.c,
+ channels/h323/chan_h323.h, configs/iax.conf.sample,
+ channels/sig_pri.h, channels/chan_dahdi.c,
+ include/asterisk/app.h, channels/chan_skinny.c,
+ channels/chan_dahdi.h, channels/chan_h323.c, main/app.c,
+ UPGRADE-12.txt, configs/sip.conf.sample,
+ channels/sip/include/sip.h, channels/chan_mgcp.c,
+ apps/app_voicemail.c, channels/chan_unistim.c,
+ configs/chan_dahdi.conf.sample, /, channels/chan_sip.c,
+ configs/voicemail.conf.sample, funcs/func_vmcount.c: Voicemail:
+ Remove mailbox identifier format (box@context) assumptions in the
+ system. This change is in preparation for external MWI support.
+ Removed code from the system for normal mailbox handling that
+ appends @default to the mailbox identifier if it does not have a
+ context. The only exception is the legacy hasvoicemail users.conf
+ option. The legacy option will only work for app_voicemail
+ mailboxes. The system cannot make any assumptions about the
+ format of the mailbox identifer used by app_voicemail. chan_sip
+ and chan_dahdi/sig_pri had the most changes because they both
+ tried to interpret the mailbox identifier. chan_sip just stored
+ and compared the two components. chan_dahdi actually used the box
+ information. The ISDN MWI support configuration options had to be
+ reworked because chan_dahdi was parsing the box@context format to
+ get the box number. As a result the mwi_vm_boxes chan_dahdi.conf
+ option was added and is documented in the chan_dahdi.conf.sample
+ file. Review: https://reviewboard.asterisk.org/r/3072/ ........
+ Merged revisions 404348 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2013-12-19 16:33 +0000 [r404346] Scott Griepentrog <sgriepentrog@digium.com>
+
+ * main/db.c, /: astdb: crash in sqlite3 during shutdown When
+ Asterisk is shut down, the astdb_atexit() function releases
+ (finalize) the previously initiated (prepared) SQL statements in
+ sqlite3. Another thread making a subsequent request can cause a
+ crash in sqlite3. This patch eliminates that issue by resetting
+ the statement pointer after it is released/cleared. The sqlite3
+ code detects the null pointer, and aborts the operation cleanly.
+ (closes issue AST-1265) Reported by: Alexander Hömig (closes
+ issue ASTERISK-22350) Reported by: Birger "WIMPy" Harzenetter
+ Review: https://reviewboard.asterisk.org/r/3078/ ........ Merged
+ revisions 404344 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 404345 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2013-12-19 12:18 +0000 [r404333] Joshua Colp <jcolp@digium.com>
+
+ * main/channel.c, /: channel: Add a missing ast_channel_unlock when
+ allocating a Surrogate channel. ........ Merged revisions 404332
+ from http://svn.asterisk.org/svn/asterisk/branches/12
+
+2013-12-19 08:35 +0000 [r404321] Alexandr Anikin <may@telecom-service.ru>
+
+ * addons/ooh323c/src/oochannels.c, addons/ooh323c/src/ooGkClient.c,
+ addons/chan_ooh323.c, /, addons/ooh323c/src/ooGkClient.h: Handle
+ temporary failures on gk registration Introduce new 'stopped'
+ state for gk client and restart gk client on failures Remove
+ ooh323 stack command lock as it is not need now. (closes issue
+ ASTERISK-21960) Reported by: Dmitry Melekhov Patches:
+ ASTERISK-21960.patch ASTERISK-21960-stacklockup-2.patch Tested
+ by: Dmitry Melekhov ........ Merged revisions 404318 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 404320 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2013-12-19 02:59 +0000 [r404307] Damien Wedhorn <voip@facts.com.au>
+
+ * /, channels/chan_skinny.c: Fixup some skinny bugs causing Fracks
+ and ao2 cleanup issues. Moved channel locking into setsubstate so
+ that a process can complete working on a sub before another
+ starts changing it. The existing code was causing some Fracks
+ with schedule deletion. Removed multiple rtp cleanup. Now only
+ cleansup up once, fixing ao2 object cleanup issues. ........
+ Merged revisions 404306 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2013-12-19 00:50 +0000 [r404295] Matthew Jordan <mjordan@digium.com>
+
+ * include/asterisk/cdr.h, CHANGES, apps/app_cdr.c, main/cdr.c,
+ apps/app_forkcdr.c, main/pbx.c, /, funcs/func_cdr.c,
+ apps/app_disa.c, UPGRADE-12.txt: app_cdr,app_forkcdr,func_cdr:
+ Synchronize with engine when manipulating state When doing the
+ rework of the CDR engine that pushed all of the logic into cdr.c
+ and made it respond to changes in channel state over Stasis, we
+ knew that accessing the CDR engine from the dialplan would be
+ "slightly" non-deterministic. Dialplan threads would be accessing
+ CDRs while Stasis threads would be updating the state of said
+ CDRs - whereas in the past, everything happened on the dialplan
+ threads. Tests have shown that "slightly" is in reality "very".
+ This patch synchronizes things by making the dialplan
+ applications/functions that manipulate CDRs do so over Stasis.
+ ForkCDR, NoCDR, ResetCDR, CDR, and CDR_PROP now all use Stasis to
+ send their requests over to the CDR engine, and synchronize on
+ the channel Stasis topic via a subscription so that they return
+ their values/control to the dialplan at the appropriate time.
+ While going through this, the following changes were also made: *
+ DISA, which can reset the CDR when a user successfully
+ authenticates, now just uses the ResetCDR app to do this. This
+ prevents having to duplicate the same Stasis synchronization
+ logic in that application. * Answer no longer disables CDRs. It
+ actually didn't work anyway - calling DISABLE on the channel's
+ CDR doesn't stop the CDR from getting the Answer time - it just
+ kills all CDRs on that channel, which isn't what the caller would
+ intend. (closes issue ASTERISK-22884) (closes issue
+ ASTERISK-22886) Review: https://reviewboard.asterisk.org/r/3057/
+ ........ Merged revisions 404294 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2013-12-19 00:32 +0000 [r404293] Damien Wedhorn <voip@facts.com.au>
+
+ * /, channels/chan_skinny.c: Fixup skinny registration following
+ network issues. On session registration, if device is already
+ reporting that it is connected to a device, an innocuous packet
+ (update time) is sent to the already connected device. If the tcp
+ connection is down, the device will be unregistered and the new
+ connection allowed. Without this patch, network issues can see a
+ situation where a device can not reregister until after
+ 3*timeout. ........ Merged revisions 404292 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2013-12-18 23:00 +0000 [r404280] Jason Parker <jparker@digium.com>
+
+ * main/manager.c, /: Add AMI event for presence state. Review:
+ https://reviewboard.asterisk.org/r/3039/ ........ Merged
+ revisions 404275 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 404279 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2013-12-18 21:12 +0000 [r404264] Richard Mudgett <rmudgett@digium.com>
+
+ * addons/ooh323c/src/ooTimer.c, /: ooh323c: Fix gcc 4.6.3 compiler
+ warnings. ........ Merged revisions 404212 from
+ http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
+ revisions 404219 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 404263 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2013-12-18 20:48 +0000 [r404260-404262] Kevin Harwell <kharwell@digium.com>
+
+ * channels/chan_oss.c, /: chan_oss.c: channel being locked twice
+ and unlocked once Removed channel lock as it is now being down in
+ ast_channel_alloc ........ Merged revisions 404261 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+ * pbx/pbx_realtime.c, channels/chan_alsa.c, main/stasis_channels.c,
+ addons/chan_mobile.c, main/bridge_channel.c, tests/test_cdr.c,
+ channels/chan_pjsip.c, res/parking/parking_manager.c,
+ channels/chan_mgcp.c, channels/chan_unistim.c, main/pbx.c,
+ funcs/func_timeout.c, /, apps/app_meetme.c, main/bridge.c,
+ tests/test_stasis_channels.c, include/asterisk/channel.h,
+ channels/chan_gtalk.c, channels/sig_pri.c, apps/app_queue.c,
+ main/cel.c, main/stasis_bridges.c, channels/chan_jingle.c,
+ channels/chan_phone.c, channels/chan_dahdi.c, main/dial.c,
+ channels/sig_analog.c, include/asterisk/stasis_channels.h,
+ res/res_agi.c, channels/chan_motif.c, tests/test_cel.c,
+ apps/app_confbridge.c, res/res_stasis.c, res/res_pjsip_refer.c,
+ apps/app_voicemail.c, apps/app_dial.c, channels/chan_vpb.cc,
+ addons/chan_ooh323.c, main/pickup.c, include/asterisk/aoc.h,
+ include/asterisk/stasis_bridges.h, apps/app_userevent.c,
+ apps/app_disa.c, channels/chan_console.c,
+ include/asterisk/channelstate.h, main/core_local.c,
+ channels/chan_iax2.c, main/endpoints.c, channels/chan_oss.c,
+ res/parking/parking_bridge_features.c, apps/app_agent_pool.c,
+ main/channel.c, channels/chan_misdn.c, channels/chan_skinny.c:
+ channel locking: Add locking for channel snapshot creation
+ Original commit message by mmichelson (asterisk 12 r403311):
+ "This adds channel locks around calls to create channel snapshots
+ as well as other functions which operate on a channel and then
+ end up creating a channel snapshot. Functions that expect the
+ channel to be locked prior to being called have had their
+ documentation updated to indicate such." The above was initially
+ committed and then reverted at r403398. The problem was found to
+ be in core_local.c in the publish_local_bridge_message function.
+ The ast_unreal_lock_all function locks and adds a reference to
+ the returned channels and while they were being unlocked they
+ were not being unreffed when no longer needed. Fixed by unreffing
+ the channels. Also in bridge.c a lock was obtained on
+ "other->chan", but then an attempt was made to unlock "other" and
+ not the previously locked channel. Fixed by unlocking
+ "other->chan" (closes issue ASTERISK-22709) Reported by: John
+ Bigelow ........ Merged revisions 404237 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2013-12-18 19:36 +0000 [r404211] Alexandr Anikin <may@telecom-service.ru>
+
+ * addons/chan_ooh323.c, configs/ooh323.conf.sample: Introduce new
+ config option 'aniasdni'. If yes then asterisk set dialed number
+ as own id back to the caller on incoming h.323 calls. Option can
+ be set globally or per user section. (closes issue
+ ASTERISK-22020) Reported by: Ross Beer
+
+2013-12-18 19:28 +0000 [r404210] Joshua Colp <jcolp@digium.com>
+
+ * channels/chan_mgcp.c, main/pbx.c, channels/chan_sip.c,
+ apps/confbridge/conf_chan_record.c, tests/test_app.c,
+ tests/test_stasis_channels.c, main/core_unreal.c,
+ include/asterisk/channel.h, channels/chan_console.c,
+ channels/chan_oss.c, channels/chan_jingle.c,
+ channels/chan_misdn.c, channels/chan_h323.c, tests/test_cel.c,
+ channels/chan_nbs.c, channels/chan_pjsip.c, res/res_calendar.c,
+ apps/app_voicemail.c, channels/chan_unistim.c,
+ tests/test_substitution.c, channels/chan_vpb.cc,
+ addons/chan_ooh323.c, channels/chan_multicast_rtp.c, /,
+ apps/app_meetme.c, res/res_stasis_snoop.c, channels/chan_gtalk.c,
+ channels/chan_iax2.c, main/channel.c, channels/chan_dahdi.c,
+ channels/chan_phone.c, channels/chan_skinny.c,
+ res/parking/parking_tests.c, channels/chan_motif.c,
+ tests/test_voicemail_api.c, channels/chan_alsa.c, main/message.c,
+ addons/chan_mobile.c, tests/test_cdr.c: channels: Return
+ allocated channels locked. This change makes ast_channel_alloc
+ return allocated channels locked. By doing so no other thread can
+ acquire, lock, and manipulate the channel before it is completely
+ set up. (closes issue AST-1256) Review:
+ https://reviewboard.asterisk.org/r/3067/ ........ Merged
+ revisions 404204 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2013-12-18 19:10 +0000 [r404198] Alexandr Anikin <may@telecom-service.ru>
+
+ * addons/chan_ooh323.c: Implement module reload command for
+ chan_ooh323 (close issue ASTERISK-22817) Patches:
+ ooh323_module_reload.patch
+
+2013-12-18 12:46 +0000 [r404185] Matthew Jordan <mjordan@digium.com>
+
+ * rest-api/api-docs/applications.json,
+ rest-api/api-docs/playbacks.json,
+ rest-api/api-docs/channels.json, rest-api/api-docs/sounds.json,
+ rest-api/resources.json, rest-api/api-docs/bridges.json,
+ rest-api/api-docs/recordings.json,
+ rest-api/api-docs/deviceStates.json,
+ rest-api/api-docs/endpoints.json, rest-api/api-docs/events.json,
+ /, rest-api/api-docs/asterisk.json: ari: Bump the version of ARI
+ to 1.0.0 (closes issue ASTERISK-23007) ........ Merged revisions
+ 404184 from http://svn.asterisk.org/svn/asterisk/branches/12
+
+2013-12-18 12:01 +0000 [r404138] Joshua Colp <jcolp@digium.com>
+
+ * res/res_calendar.c, /: res_calendar: Protect channel when adding
+ datastore. This change adds a missing channel lock when adding a
+ datastore to a channel. ........ Merged revisions 404135 from
+ http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
+ revisions 404136 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 404137 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2013-12-18 00:36 +0000 [r404100] Rusty Newton <rnewton@digium.com>
+
+ * /, funcs/func_strings.c: func_strings: Documentation fix for
+ QUOTE() Example output was inaccurate. (issue ASTERISK-22970)
+ (closes issue ASTERISK-22970) Reported by: Gareth Palmer Patches:
+ func_strings.patch uploaded by Gareth Palmer (license 5169)
+ ........ Merged revisions 404081 from
+ http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
+ revisions 404087 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 404099 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2013-12-18 00:17 +0000 [r404051] Matthew Jordan <mjordan@digium.com>
+
+ * /, LICENSE: LICENSE: Update language to include ARI ........
+ Merged revisions 404050 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2013-12-17 23:57 +0000 [r404049] Jonathan Rose <jrose@digium.com>
+
+ * /, tests/test_cel.c, tests/test_cdr.c: tests: fix
+ ast_bridge_base_new calls not using the additional arguments
+ r404042 gave ast_bridge_base_new two new arguments for setting a
+ bridge creator and name. Unfortunately since a couple test
+ modules aren't compiled by default, I missed the fact that this
+ change impacted those tests and caused compilation failures
+ against them. ........ Merged revisions 404048 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2013-12-17 23:38 +0000 [r404047] Rusty Newton <rnewton@digium.com>
+
+ * include/asterisk/test.h, main/channel.c, main/rtp_engine.c, /,
+ channels/chan_iax2.c, apps/app_chanspy.c, apps/app_mixmonitor.c:
+ Several components: fixing Typos in comments and code,
+ "avaliable" instead of "available" (issue ASTERISK-23021) (closes
+ issue ASTERISK-23021) Reported by: Jeremy Lainé Tested by: Rusty
+ Newton Patches: available.patch uploaded by Jeremy Lainé (license
+ 6561) ........ Merged revisions 404046 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2013-12-17 23:25 +0000 [r404043] Jonathan Rose <jrose@digium.com>
+
+ * apps/app_bridgewait.c, res/ari/ari_model_validators.c,
+ doc/appdocsxml.xslt, main/stasis_bridges.c,
+ rest-api/api-docs/bridges.json, res/ari/resource_bridges.c,
+ apps/app_agent_pool.c, res/parking/parking_bridge.c,
+ res/ari/ari_model_validators.h, main/manager_bridges.c,
+ res/ari/resource_bridges.h, include/asterisk/bridge_internal.h,
+ apps/app_confbridge.c, res/res_stasis.c,
+ include/asterisk/bridge.h, res/res_ari_bridges.c, /,
+ main/bridge.c, main/bridge_basic.c,
+ include/asterisk/stasis_bridges.h, include/asterisk/stasis_app.h:
+ bridging: Give bridges a name and a known creator Bridges have
+ two new optional properties, a creator and a name. Certain
+ consumers of bridges will automatically provide bridges that they
+ create with these properties. Examples include app_bridgewait,
+ res_parking, app_confbridge, and app_agent_pool. In addition, a
+ name may now be provided as an argument to the POST function for
+ creating new bridges via ARI. (closes issue AFS-47) Review:
+ https://reviewboard.asterisk.org/r/3070/ ........ Merged
+ revisions 404042 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2013-12-17 18:35 +0000 [r404028-404030] Joshua Colp <jcolp@digium.com>
+
+ * res/res_sorcery_config.c, /: res_sorcery_config: Output an error
+ message when an object can't be created. If object creation fails
+ an error message will now be output with the id, type, and
+ configuration file. ........ Merged revisions 404029 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+ * /, main/framehook.c: framehooks: Re-iterate if framehook provides
+ different frame. Framehooks can be used in a reactive manner to
+ execute specific logic when a frame is received with a certain
+ type and payload. Since it is possible for framehooks to provide
+ frames it was possible for this reactive framehook to be unaware
+ of frames it is looking for. This change makes it so that when
+ framehooks return a modified frame the code will now re-iterate
+ (from the beginning) and call any previous framehooks that have
+ not provided a modified frame themselves. Review:
+ https://reviewboard.asterisk.org/r/3046/ ........ Merged
+ revisions 404027 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2013-12-17 14:41 +0000 [r404008-404009] David M. Lee <dlee@digium.com>
+
+ * /, configs/asterisk.conf.sample, main/asterisk.c: Changed the
+ default for live_dangerously to no ........ Merged revisions
+ 404006 from http://svn.asterisk.org/svn/asterisk/branches/12
+
+ * channels/pjsip, /: Setting svn:ignore ........ Merged revisions
+ 403748 from http://svn.asterisk.org/svn/asterisk/branches/12
+
+2013-12-17 12:59 +0000 [r403994] Matthew Jordan <mjordan@digium.com>
+
+ * /, res/ari/resource_channels.c: ari/resource_channels: When
+ creating a channel, specify a default format (SLIN) When creating
+ channels via ARI, the current code fails to provide any default
+ format capabilities. For non-virtual channels this isn't really a
+ problem - the channels typically receive their capabilities as a
+ result of the underlying channel driver configuration. For
+ virtual channels (such as Local channels), the lack of any format
+ capabilities causes the Asterisk core to make some 'odd' choices
+ with respect to the translation paths. The issue reporter had
+ some paths that had 3 hops on each channel leg, causing multiple
+ transcodings and some really crappy audio/performance. By
+ specifying a baseline of SLIN, we prevent that from occurring.
+ Note that this is what AMI does when it performs an Originate, as
+ does res_clioriginate. Review:
+ https://reviewboard.asterisk.org/r/3068/ (issue ASTERISK-22962)
+ Reported by: Matt DiMeo ........ Merged revisions 403993 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2013-12-16 19:11 +0000 [r403960] David M. Lee <dlee@digium.com>
+
+ * include/asterisk/pbx.h, main/asterisk.c, funcs/func_realtime.c,
+ main/pbx.c, main/tcptls.c, funcs/func_db.c, /,
+ README-SERIOUSLY.bestpractices.txt, configs/asterisk.conf.sample,
+ funcs/func_shell.c, funcs/func_env.c, funcs/func_lock.c,
+ UPGRADE-12.txt: security: Inhibit execution of privilege
+ escalating functions This patch allows individual dialplan
+ functions to be marked as 'dangerous', to inhibit their execution
+ from external sources. A 'dangerous' function is one which
+ results in a privilege escalation. For example, if one were to
+ read the channel variable SHELL(rm -rf /) Bad Things(TM) could
+ happen; even if the external source has only read permissions.
+ Execution from external sources may be enabled by setting
+ 'live_dangerously' to 'yes' in the [options] section of
+ asterisk.conf. Although doing so is not recommended. Also, the
+ ABI was changed to something more reasonable, since Asterisk 12
+ does not yet have a public release. (closes issue ASTERISK-22905)
+ Review: http://reviewboard.digium.internal/r/432/ ........ Merged
+ revisions 403913 from
+ http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
+ revisions 403917 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 403959 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2013-12-16 18:31 +0000 [r403958] Jonathan Rose <jrose@digium.com>
+
+ * /, main/bridge.c: transfers: Fix bug setting both BLINDTRANSFER
+ and ATTENDEDTRANSFER The ast_bridge_set_transfer_variables
+ function is supposed to wipe whichever variable isn't being set.
+ Instead it was setting both to the new value. Oops. (issue
+ AFS-24) ........ Merged revisions 403957 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2013-12-16 16:12 +0000 [r403857-403865] Scott Griepentrog <sgriepentrog@digium.com>
+
+ * main/pbx.c, /: pbx.c: put copy of ast_exten.data on stack to
+ prevent memory corruption During dialplan execution in
+ pbx_extension_helper(), the contexts global read lock prevents
+ link list corruption, but was released with a pointer to the
+ ast_exten and data later used in variable substitution. Instead,
+ this patch removes pbx_substitute_variables() and locates a copy
+ of the ast_exten data on the stack before releasing the lock,
+ where ast_exten could get free'd by another thread performing a
+ module reload. (issue AST-1179) Reported by: Thomas Arimont
+ (issue AST-1246) Reported by: Alexander Hömig Review:
+ https://reviewboard.asterisk.org/r/3055/ ........ Merged
+ revisions 403862 from
+ http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
+ revisions 403863 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 403864 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+ * /, apps/app_sms.c: app_sms: BufferOverflow when receiving odd
+ length 16 bit message This patch prevents an infinite loop
+ overwriting memory when a message is received into the
+ unpacksms16() function, where the length of the message is an odd
+ number of bytes. (closes issue ASTERISK-22590) Reported by: Jan
+ Juergens Tested by: Jan Juergens ........ Merged revisions 403856
+ from http://svn.asterisk.org/svn/asterisk/branches/12
+
+2013-12-15 01:39 +0000 [r403824] Matthew Jordan <mjordan@digium.com>
+
+ * channels/pjsip/dialplan_functions.c, /: pjsip/dialplan_functions:
+ Use the right buffer length when printing URIs While
+ entertaining, sizeof(buflen) is not the same as buflen. Doh.
+ ........ Merged revisions 403823 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2013-12-14 17:28 +0000 [r403810-403812] Joshua Colp <jcolp@digium.com>
+
+ * include/asterisk/res_pjsip.h, /, res/res_pjsip/location.c,
+ res/res_pjsip/pjsip_options.c, res/res_pjsip.c: res_pjsip: Apply
+ outbound proxy to all SIP requests. Objects which are involved in
+ SIP request creation and sending now allow an outbound proxy to
+ be specified. For cases where an endpoint is used the outbound
+ proxy specified there will be applied. (closes issue
+ ASTERISK-22673) Reported by: Antti Yrjola Review:
+ https://reviewboard.asterisk.org/r/3022/ ........ Merged
+ revisions 403811 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+ * main/stasis_channels.c, apps/app_queue.c,
+ res/ari/ari_model_validators.c, apps/app_dial.c,
+ res/ari/ari_model_validators.h, main/dial.c,
+ include/asterisk/stasis_channels.h,
+ rest-api/api-docs/events.json, /, res/stasis/app.c: res_stasis:
+ Expose event for call forwarding and follow forwarded channel.
+ This change adds an event for when an originated call is
+ redirected to another target. This event contains the original
+ channel and the newly created channel. If a stasis subscription
+ exists on the original originated channel for a stasis
+ application then a new subscription will also be created on the
+ stasis application to the redirected channel. This allows the
+ application to follow the call path completely. (closes issue
+ ASTERISK-22719) Reported by: Joshua Colp Review:
+ https://reviewboard.asterisk.org/r/3054/ ........ Merged
+ revisions 403808 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2013-12-13 21:35 +0000 [r403797] Jonathan Rose <jrose@digium.com>
+
+ * /, res/res_pjsip_messaging.c, main/message.c: documentation: Add
+ PJSIP technology to messaging documentation ........ Merged
+ revisions 403796 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2013-12-13 20:17 +0000 [r403784] Richard Mudgett <rmudgett@digium.com>
+
+ * /, main/test.c: test.c: Fix too sticky unit test failed status.
+ Rerunning a failed unit test after loading any required modules
+ should allow the test to report a pass status if it now passes.
+ ........ Merged revisions 403782 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2013-12-13 20:13 +0000 [r403783] Jonathan Rose <jrose@digium.com>
+
+ * /, main/bridge.c, main/bridge_basic.c, include/asterisk/bridge.h,
+ res/parking/parking_bridge_features.c,
+ res/parking/parking_manager.c: Transfers: Make Asterisk set
+ ATTENDEDTRANSFER/BLINDTRANSFER more reliably There were still a
+ few cases in which ATTENDEDTRANSFER and BLINDTRANSFER wouldn't be
+ set on channels involved with blind and attended transfers. This
+ would happen with features that were initialized by channel
+ driver specific mechanisms in multiparty calls. This patch
+ resolves those cases while attempted to keep the behavior for
+ setting those variables as consistent as possible. (closes issue
+ AFS-24) Review: https://reviewboard.asterisk.org/r/3040/ ........
+ Merged revisions 403781 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2013-12-13 18:33 +0000 [r403750-403768] Kevin Harwell <kharwell@digium.com>
+
+ * main/channel.c, /, channels/chan_sip.c,
+ include/asterisk/channel.h, bridges/bridge_native_rtp.c,
+ channels/chan_pjsip.c: bridge_native_rtp: Deadlock during 4-way
+ conference creation The change contains a slightly adjusted patch
+ that was on the issue (submitted by kmoore). A fix was made by
+ adding in a bridge lock while calling bridge_start/stop from the
+ framehook callback. Since the framehook callback is not called
+ from the bridging core the bridge is not locked, but needs to be
+ before calling bridge_start. (closes issue ASTERISK-22749)
+ Reported by: Kinsey Moore Review:
+ https://reviewboard.asterisk.org/r/3066/ Patches:
+ lock_inversion.diff uploaded by kmoore (license 6273) ........
+ Merged revisions 403767 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+ * rest-api/api-docs/channels.json, res/ari/resource_channels.c,
+ res/res_ari_channels.c, res/ari/resource_channels.h, /,
+ main/http.c: ARI: Allow specifying channel variables during a
+ POST /channels Added the ability to specify channel variables
+ when creating/originating a channel in ARI. The variables are
+ sent in the body of the request and should be formatted as a
+ single level JSON object. No nested objects allowed. For example:
+ {"variable1": "foo", "variable2": "bar"}. (closes issue
+ ASTERISK-22872) Reported by: Matt Jordan Review:
+ https://reviewboard.asterisk.org/r/3052/ ........ Merged
+ revisions 403752 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+ * res/res_stasis_answer.c, rest-api/api-docs/bridges.json,
+ res/ari/resource_bridges.c, res/res_ari_bridges.c,
+ res/stasis/command.c, res/res_stasis_playback.c, /,
+ res/stasis/control.c, res/stasis/command.h,
+ include/asterisk/stasis_app.h,
+ include/asterisk/stasis_app_impl.h, res/res_stasis_recording.c:
+ ARI: Adding a channel to a bridge while a live recording is
+ active blocks Added the ability to have rules that are checked
+ when adding and/or removing channels to/from a bridge. In this
+ case, if a channel is currently recording and someone attempts to
+ add it to a bridge an "is recording" rule is checked, fails, and
+ a 409 conflict is returned. Also command functions now return an
+ integer value that can be descriptive of what kind of problems,
+ if any, occurred before or during execution. (closes issue
+ ASTERISK-22624) Reported by: Joshua Colp Review:
+ https://reviewboard.asterisk.org/r/2947/ ........ Merged
+ revisions 403749 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2013-12-13 05:00 +0000 [r403737] Matthew Jordan <mjordan@digium.com>
+
+ * /, channels/Makefile: channels/Makefile: clean pjsip directory
+ ........ Merged revisions 403736 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2013-12-13 00:40 +0000 [r403726] Richard Mudgett <rmudgett@digium.com>
+
+ * include/asterisk/app.h, tests/test_voicemail_api.c, main/app.c:
+ test_voicemail_api: Add check for a registered voicemail provider
+ before tests. It is much nicer diagnosing a test failure if
+ app_voicemail is actually loaded.
+
+2013-12-12 19:46 +0000 [r403714] Scott Griepentrog <sgriepentrog@digium.com>
+
+ * contrib/ast-db-manage/config/versions/581a4264e537_adding_extensions.py
+ (added), /: realtime: Create extensions in alembic ast-db-manage
+ contribution When the alembic scripts were written for creating
+ Asterisk realtime databases the extensions table for dialplan
+ wasn't included. This update creates the extensions table.
+ (closes issue ASTERISK-22815) Reported by: Zone Conkle Review:
+ https://reviewboard.asterisk.org/r/3064/ ........ Merged
+ revisions 403713 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2013-12-12 19:18 +0000 [r403707] Jonathan Rose <jrose@digium.com>
+
+ * /, channels/chan_pjsip.c: chan_pjsip: Revert r403587 This patch
+ was intended to eliminate a deadlock that occurs when masquerades
+ occur in pjsip channels, but has some potential side effects.
+ Mark Michelson is currently working on addressing this problem
+ from another angle. (issue ASTERISK-22936) Reported by: Jonathan
+ Rose ........ Merged revisions 403705 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2013-12-11 20:24 +0000 [r403687] Kevin Harwell <kharwell@digium.com>
+
+ * include/asterisk/res_pjsip.h, res/res_pjsip/config_global.c, /,
+ configs/pjsip.conf.sample, res/res_pjsip/pjsip_configuration.c,
+ res/res_pjsip_messaging.c,
+ res/res_pjsip/include/res_pjsip_private.h, res/res_pjsip.c:
+ res_pjsip_messaging: send message to a default outbound endpoint
+ In some cases messages need to be sent to a direct URI (sip:<ip
+ address>). This patch adds in that support by using a default
+ outbound endpoint. When sending messages, if no endpoint can be
+ found then the default one is used. To facilitate this a new
+ default_outbound_endpoint option was added to the globals section
+ for pjsip.conf. Review: https://reviewboard.asterisk.org/r/2944/
+ ........ Merged revisions 403680 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2013-12-11 19:22 +0000 [r403652] Russell Bryant <russell@russellbryant.com>
+
+ * /, channels/chan_sip.c: Reset peer outboundproxy on sip.conf
+ reload If you set a peer's outboundproxy and then removed it from
+ the config, this would not get picked up in a config reload. This
+ patch fixes that by resetting it in set_peer_defaults(). Closes
+ ASTERISK-19454 Review: https://reviewboard.asterisk.org/r/3065/
+ ........ Merged revisions 403634 from
+ http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
+ revisions 403635 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 403639 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2013-12-11 19:19 +0000 [r403643] Richard Mudgett <rmudgett@digium.com>
+
+ * apps/app_voicemail.c, include/asterisk/app.h,
+ include/asterisk/doxyref.h, main/app.c: app_voicemail: Voicemail
+ callback registration/unregistration function improvements. * The
+ voicemail registration/unregistration functions now take a struct
+ of callbacks instead of a lengthy parameter list of callbacks. *
+ The voicemail registration/unregistration functions now prevent a
+ competing module from interfering with an already registered
+ callback supplying module.
+
+2013-12-11 13:06 +0000 [r403617-403619] Matthew Jordan <mjordan@digium.com>
+
+ * channels/pjsip/dialplan_functions.c,
+ include/asterisk/res_pjsip_session.h, channels/pjsip (added), /,
+ funcs/func_channel.c, channels/pjsip/include,
+ channels/pjsip/include/dialplan_functions.h, res/res_pjsip_t38.c,
+ channels/pjsip/include/chan_pjsip.h, channels/Makefile,
+ channels/chan_pjsip.c, main/xmldoc.c: func_channel, chan_pjsip:
+ Add CHANNEL read function support for chan_pjsip This patch adds
+ CHANNEL read support for chan_pjsip. This allows the dialplan to
+ use the CHANNEL function on a chan_pjsip channel to obtain
+ run-time information about the channel from the PJSIP channel
+ driver and the PJSIP stack. This includes: * RTP information,
+ including source/destination media addresses, whether or not the
+ media is secure, held, and other properties. * RTCP information.
+ This includes sets of parseable information, as well as
+ individual statistic attriutes. * PJSIP information. This
+ includes URIs, local/remote signalling addresses, whether or not
+ the signalling is secure, and other properties. * The endpoint
+ name. This can be used in conjunction with the PJSIP_ENDPOINT
+ function to obtain more detailed endpoint information. Review:
+ https://reviewboard.asterisk.org/r/3038/ ........ Merged
+ revisions 403618 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+ * Makefile, funcs/func_pjsip_endpoint.c (added), doc/snapshots.xslt
+ (removed), /, doc/appdocsxml.xslt (added), doc/appdocsxml.dtd,
+ main/sorcery.c: func_pjsip_endpoint: Add PJSIP_ENDPOINT function
+ for querying endpoint details This patch adds a new function,
+ PJSIP_ENDPOINT, which lets the dialplan query, for any endpoint,
+ any property configured on an endpoint. This function is a
+ companion to the CHANNEL function, which can be used to extract
+ the endpoint name for a channel. Review:
+ https://reviewboard.asterisk.org/r/3035 ........ Merged revisions
+ 403616 from http://svn.asterisk.org/svn/asterisk/branches/12
+
+2013-12-10 15:15 +0000 [r403605] Mark Michelson <mmichelson@digium.com>
+
+ * res/res_pjsip_authenticator_digest.c: Fix correct authentication
+ behavior for artificial endpoint. When switching to using a
+ vector for authentication, I initialized the vector for the
+ artificial endpoint to be of size 1. However, this does not
+ result in AST_VECTOR_SIZE() returning 1 since there isn't
+ actually anything in the vector. Rather than trifle with the
+ vector by putting unnecessary elements in, I simply changed the
+ callback in res_pjsip_authenticator_digest.c to explicitly report
+ that the artificial endpoint requires authentication. Thanks to
+ Joshua Colp for pointing this out.
+
+2013-12-09 22:59 +0000 [r403576-403588] Jonathan Rose <jrose@digium.com>
+
+ * /, channels/chan_pjsip.c: chan_pjsip: Fix a sticking channel lock
+ caused by channel masquerades (closes issue ASTERISK-22936)
+ Reported by: Jonathan Rose Review:
+ https://reviewboard.asterisk.org/r/3042/ ........ Merged
+ revisions 403587 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+ * CHANGES, main/dial.c, apps/app_page.c, include/asterisk/dial.h:
+ app_page: Add predial handlers for app_page. (closes issue
+ AFS-14) Review: https://reviewboard.asterisk.org/r/3045/
+
+2013-12-09 19:24 +0000 [r403544-403560] Richard Mudgett <rmudgett@digium.com>
+
+ * /, res/res_sorcery_astdb.c: Reverting regex part of -r403545 at
+ request of file. res_sorcery_astdb.c: Fix get multiple records by
+ regex. * Fix sorcery_astdb_retrieve_regex() pattern matching. Let
+ the regexec() function match the stored key values instead of
+ having astdb prefilter them. Previoiusly you could only use a
+ simple regex pattern when the pattern began with '^'. ........
+ Merged revisions 403559 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+ * /, res/res_sorcery_astdb.c: res_sorcery_astdb.c: Fix get multiple
+ records by regex. * Fix sorcery_astdb_retrieve_regex() pattern
+ matching. Let the regexec() function match the stored key values
+ instead of having astdb prefilter them. Previoiusly you could
+ only use a simple regex pattern when the pattern began with '^'.
+ * Fix off nominal memory leak in sorcery_astdb_retrieve_regex().
+ ........ Merged revisions 403545 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+ * main/sorcery.c, /: sorcery: Eliminate shadowing a varaible that
+ caused confusion. * Eliminated shadowing of the
+ __ast_sorcery_apply_config() name parameter causing confusion. *
+ Fix potential crash from sorcery.conf user input in
+ __ast_sorcery_apply_config() if the user supplied a malformed
+ config line that is missing the sorcery object type name. *
+ Remove redundant test in __ast_sorcery_apply_config(). !config
+ and config == CONFIGS_STATUS_FILEMISSING are identical. ........
+ Merged revisions 403541 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2013-12-09 18:32 +0000 [r403543] Joshua Colp <jcolp@digium.com>
+
+ * /, main/endpoints.c: endpoints: Keep a reference to channel ids
+ when creating snapshot. The snapshot process for endpoints uses
+ the channel ids present on the endpoint itself. Without keeping a
+ reference it was possible for the strings to be freed underneath
+ any consumer of an endpoint snapshot. A reference is now held by
+ the snapshot to the channel ids and released when the snapshot is
+ destroyed. (issue ASTERISK-22801) Reported by: Matt Jordan
+ ........ Merged revisions 403542 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2013-12-09 18:14 +0000 [r403528] Richard Mudgett <rmudgett@digium.com>
+
+ * main/sorcery.c, /: sorcery: Whitespace You would think that a new
+ file would start off without any whitespace oddities. ........
+ Merged revisions 403527 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2013-12-09 17:29 +0000 [r403512-403526] Mark Michelson <mmichelson@digium.com>
+
+ * apps/app_confbridge.c, CHANGES,
+ apps/confbridge/conf_state_multi_marked.c: Add a
+ CONFBRIDGE_RESULT channel variable to discern why a channel left
+ a ConfBridge. Review: https://reviewboard.asterisk.org/r/3009
+
+ * CHANGES, apps/app_mixmonitor.c: Create function for retrieving
+ Mixmonitor instance data. For the time, this is only useful for
+ retrieving the filename. The purpose of this function is to
+ better facilitate multiple mixmonitors per channel. Setting a
+ MIXMONITOR_FILENAME channel variable is not conducive to such
+ behavior, so allowing finer grained access to individual
+ mixmonitor properties improves the situation. The
+ MIXMONITOR_FILENAME channel variable is still set, though, so
+ there is no worry about backwards compatibility. Review:
+ https://reviewboard.asterisk.org/r/3023
+
+2013-12-09 16:41 +0000 [r403511] Joshua Colp <jcolp@digium.com>
+
+ * res/res_pjsip_nat.c, /: res_pjsip_nat: Add NAT module to session
+ dialogs. Due to the way pjproject internally works it was
+ possible for the NAT module to not be invoked on messages with-in
+ a session dialog. This means that the various parts of the
+ message would not get rewritten with the source IP address and
+ port. This change uses a session supplement to add the NAT module
+ to the dialog on the first incoming or outgoing INVITE. (closes
+ issue ASTERISK-22941) Reported by: Leif Madsen ........ Merged
+ revisions 403510 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2013-12-09 16:10 +0000 [r403499] Mark Michelson <mmichelson@digium.com>
+
+ * res/res_pjsip/config_auth.c,
+ res/res_pjsip_outbound_authenticator_digest.c,
+ res/res_pjsip_authenticator_digest.c,
+ res/res_pjsip_outbound_registration.c,
+ res/res_pjsip/pjsip_configuration.c,
+ res/res_pjsip/pjsip_distributor.c, res/res_pjsip.c,
+ include/asterisk/res_pjsip.h: Switch PJSIP auth to use a vector.
+ Since Asterisk has a vector API now, places where arrays are
+ manually resized don't really make sense any more. Since the auth
+ work in PJSIP was freshly-written, it was easy to reform it to
+ use a vector. Review: https://reviewboard.asterisk.org/r/3044
+
+2013-12-09 03:21 +0000 [r403436-403466] Matthew Jordan <mjordan@digium.com>
+
+ * /, res/res_fax_spandsp.c: res_fax_spandsp: Always init T.38
+ session to avoid crashes during state change Prior to this patch,
+ res_fax_spandsp was conservative with how it initialized the
+ spandsp T.38 context. It would only initialize it if the driver
+ thought the current state was a T.38 fax. While this works fine
+ in nominal situations, in certain off nominal situations,
+ res_fax_spandsp can believe that a T.38 fax will not occur when
+ in fact one has started. In particular, this was discovered when
+ res_fax would fall back to audio after timing out on a T.38
+ upgrade. The SIP channel driver would continue to retry the
+ re-INVITE and - if the remote end responded after res_fax timed
+ out with a 200 OK - a T.38 frame would be delivered to the
+ res_fax stack when it no longer expected it. As it turns out,
+ there does not appear to be any downside to always initializing
+ the T.38 context, other than the actual memory allocation. Since
+ that avoids this off nominal situation (and others which are
+ equally likely hard to predict), this is the safest way to avoid
+ this problem. Much thanks to Torrey as well for providing a
+ scenario that reproduces this issue. (closes issue
+ ASTERISK-21242) Reported by: Ashley Winters Tested by: Torrey
+ Searle patches: always-init-t38.patch uploaded by awinters
+ (License 6477) A_PARTY.xml uploaded by tsearle (License 5334)
+ ........ Merged revisions 403449 from
+ http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
+ revisions 403450 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 403458 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+ * /, res/res_config_sqlite.c: res_config_sqlite: Check for CDR
+ unregistration failures If the CDR unregistration fails due to an
+ inflight CDR, the res_config_sqlite module needs to bail on
+ unloading itself. Otherwise, the config could be unloaded
+ (including the CDR table name) while the CDR engine posts a CDR
+ to the still registered backend, resulting in a crash. ........
+ Merged revisions 403435 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2013-12-05 23:40 +0000 [r403414] Jonathan Rose <jrose@digium.com>
+
+ * apps/app_record.c: app_record: Add an option that allows DTMF '0'
+ to act as an additional terminator Using this terminator when
+ active results in ${RECORD_STATUS} being set to 'OPERATOR'
+ instead of 'DTMF' (closes issue AFS-7) Review:
+ https://reviewboard.asterisk.org/r/3041/
+
+2013-12-05 22:10 +0000 [r403402-403404] David M. Lee <dlee@digium.com>
+
+ * addons/chan_mobile.c, main/bridge_channel.c, tests/test_cdr.c,
+ channels/chan_pjsip.c, res/parking/parking_manager.c,
+ channels/chan_mgcp.c, channels/chan_unistim.c, main/pbx.c, /,
+ apps/app_meetme.c, funcs/func_timeout.c, main/bridge.c,
+ tests/test_stasis_channels.c, main/core_unreal.c,
+ include/asterisk/channel.h, channels/chan_gtalk.c, main/cel.c,
+ apps/app_queue.c, channels/sig_pri.c, main/stasis_bridges.c,
+ channels/chan_jingle.c, channels/chan_phone.c,
+ channels/chan_dahdi.c, main/dial.c, channels/sig_analog.c,
+ include/asterisk/stasis_channels.h, res/res_agi.c,
+ channels/chan_motif.c, channels/chan_h323.c, tests/test_cel.c,
+ apps/app_confbridge.c, res/res_stasis.c, res/res_pjsip_refer.c,
+ apps/app_voicemail.c, apps/app_dial.c, channels/chan_vpb.cc,
+ addons/chan_ooh323.c, channels/chan_sip.c, main/pickup.c,
+ include/asterisk/aoc.h, include/asterisk/stasis_bridges.h,
+ apps/app_userevent.c, apps/app_disa.c, main/core_local.c,
+ include/asterisk/channelstate.h, channels/chan_console.c,
+ channels/chan_iax2.c, main/endpoints.c, channels/chan_oss.c,
+ res/parking/parking_bridge_features.c, apps/app_agent_pool.c,
+ main/channel.c, channels/chan_misdn.c, channels/chan_skinny.c,
+ pbx/pbx_realtime.c, channels/chan_alsa.c, main/stasis_channels.c,
+ channels/chan_nbs.c: Reverting r403311. It's causing ARI tests to
+ hang. ........ Merged revisions 403398 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+ * /, res/stasis/control.c: ari: Fix deadlock problem with functions
+ that use autoservice. The code for getting channel variables from
+ ARI assumed that you needed to lock the channel in order to
+ properly execute functions and read channel variables.
+ Apparently, this is not the case, since any dialplan function
+ that puts the channel into autoservice deadlocks when attempting
+ to remove the channel from autoservice. ........ Merged revisions
+ 403342 from http://svn.asterisk.org/svn/asterisk/branches/12
+
+ * /: Multiple revisions 403304,403310 ........ r403304 | dlee |
+ 2013-12-02 12:34:50 -0600 (Mon, 02 Dec 2013) | 1 line Fixed the
+ filename for the ari.conf docs ........ r403310 | file |
+ 2013-12-03 10:32:12 -0600 (Tue, 03 Dec 2013) | 5 lines Revert
+ revision 403304: Fixed the filename for the ari.conf docs The
+ changed value refers to the name of the module. The name of the
+ configuration file is specified in the configFile section.
+ ........ Merged revisions 403304,403310 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2013-12-04 21:42 +0000 [r403378] Kevin Harwell <kharwell@digium.com>
+
+ * /, res/res_pjsip_registrar.c: res_pjsip_registrar: undefined
+ function pointer symbol Used a static wrapper around the
+ offending function to alleviate the issue. Reported by: rmudgett
+ ........ Merged revisions 403377 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2013-12-04 20:54 +0000 [r403365] Joshua Colp <jcolp@digium.com>
+
+ * res/res_pjsip_t38.c, /: res_pjsip_t38: Don't pass T.38 control
+ frames through to other hooks. This crept up during gateway
+ testing where the gateway would receive the request to negotiate
+ and assume it came from the remote side, causing the gateway
+ state machine to go a little, to a use a technical term, "wonky".
+ ........ Merged revisions 403364 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2013-12-04 18:41 +0000 [r403350] Mark Michelson <mmichelson@digium.com>
+
+ * /, res/res_pjsip.c: Initialize the hash value argument to
+ pj_hash_get() to 0. Passing a non-zero value causes PJLIB to use
+ the given input as the hash value. Passing zero causes the
+ parameter to become an output parameter that receives the hash
+ value that was computed based on the given key. This change
+ essentially makes ast_sip_dict_get() properly retrieve the
+ desired value. ........ Merged revisions 403349 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2013-12-03 18:01 +0000 [r403330] Joshua Colp <jcolp@digium.com>
+
+ * /, configure, include/asterisk/autoconfig.h.in, configure.ac,
+ res/res_pjsip_session.c: res_pjsip_session: Add support for
+ PJMEDIA_SDP_NEG_ALLOW_MEDIA_CHANGE flag. Newer versions of PJSIP
+ have changed to using a flag for the
+ PJMEDIA_SDP_NEG_ALLOW_MEDIA_CHANGE instead of a define. This adds
+ a configure check to detect the presence of the flag and use it
+ if found. ........ Merged revisions 403329 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2013-12-03 17:35 +0000 [r403327] Richard Mudgett <rmudgett@digium.com>
+
+ * include/asterisk/sorcery.h, res/res_pjsip/pjsip_configuration.c,
+ res/res_pjsip_registrar_expire.c, res/res_pjsip/pjsip_options.c,
+ tests/test_sorcery.c, include/asterisk/bucket.h, main/sorcery.c,
+ /, main/bucket.c: sorcery, bucket: Change observer remove calls
+ to take const callbacks struct. * Make
+ ast_sorcery_observer_remove() accept a const callbacks struct. *
+ Make ast_sorcery_observer_remove() tolerant of the sorcery
+ parameter being NULL. Now it can be called within a module unload
+ routine if the sorcery initialization fails. * Fix
+ ast_sorcery_observer_add() to fail if the container link fails.
+ ........ Merged revisions 403324 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2013-12-03 17:07 +0000 [r403314] Mark Michelson <mmichelson@digium.com>
+
+ * channels/chan_nbs.c, main/bridge_channel.c, res/res_stasis.c,
+ channels/chan_pjsip.c, res/parking/parking_manager.c,
+ apps/app_voicemail.c, channels/chan_unistim.c,
+ channels/chan_vpb.cc, addons/chan_ooh323.c, /,
+ include/asterisk/aoc.h, apps/app_meetme.c, main/bridge.c,
+ apps/app_userevent.c, channels/chan_gtalk.c,
+ channels/chan_iax2.c, main/endpoints.c, main/stasis_bridges.c,
+ main/channel.c, channels/chan_phone.c, channels/chan_dahdi.c,
+ main/dial.c, channels/sig_analog.c, channels/chan_skinny.c,
+ res/res_agi.c, channels/chan_motif.c, pbx/pbx_realtime.c,
+ channels/chan_alsa.c, main/stasis_channels.c,
+ apps/app_confbridge.c, addons/chan_mobile.c, tests/test_cdr.c,
+ res/res_pjsip_refer.c, channels/chan_mgcp.c, apps/app_dial.c,
+ main/pbx.c, channels/chan_sip.c, main/pickup.c,
+ funcs/func_timeout.c, tests/test_stasis_channels.c,
+ main/core_unreal.c, include/asterisk/stasis_bridges.h,
+ apps/app_disa.c, include/asterisk/channel.h, main/core_local.c,
+ include/asterisk/channelstate.h, channels/chan_console.c,
+ main/cel.c, apps/app_queue.c, channels/sig_pri.c,
+ channels/chan_oss.c, res/parking/parking_bridge_features.c,
+ apps/app_agent_pool.c, channels/chan_jingle.c,
+ channels/chan_misdn.c, include/asterisk/stasis_channels.h,
+ channels/chan_h323.c, tests/test_cel.c: Add channel locking for
+ channel snapshot creation. This adds channel locks around calls
+ to create channel snapshots as well as other functions which
+ operate on a channel and then end up creating a channel snapshot.
+ Functions that expect the channel to be locked prior to being
+ called have had their documentation updated to indicate such.
+ ........ Merged revisions 403311 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2013-12-03 16:39 +0000 [r403313] Joshua Colp <jcolp@digium.com>
+
+ * main/media_index.c, /: media_index: Make media indexing tolerable
+ of bad symlinks. Media indexing will now skip over files and
+ directories that stat will not return information about. This can
+ occur under normal conditions when a symbolic link points to a
+ location that no longer exists. ........ Merged revisions 403312
+ from http://svn.asterisk.org/svn/asterisk/branches/12
+
+2013-12-02 18:12 +0000 [r403292] Alexandr Anikin <may@telecom-service.ru>
+
+ * addons/chan_ooh323.c, /: Check and reject non-digits e164 values
+ on peers and general sections in ooh323.conf Regenerate e164
+ endpoint list on reload ooh323 (issue ASTERISK-22901) Reported
+ by: Cyril CONSTANTIN Patches: ASTERISK-22901.patch ........
+ Merged revisions 403288 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 403290 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2013-12-01 21:13 +0000 [r403257-403272] Joshua Colp <jcolp@digium.com>
+
+ * /, res/res_pjsip_session.c: res_pjsip_session: Apply fromuser and
+ fromdomain to all requests as documented. ........ Merged
+ revisions 403271 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+ * res/res_pjsip_t38.c, /: res_pjsip_t38: Add the framehook to the
+ channel only on first INVITE. The check for determining whether
+ the T.38 framehook should be added to the channel or not has now
+ been changed to guarantee adding only occurs on the first
+ incoming or outgoing INVITE. ........ Merged revisions 403258
+ from http://svn.asterisk.org/svn/asterisk/branches/12
+
+ * res/res_pjsip/security_events.c, res/res_pjsip/pjsip_options.c,
+ res/res_pjsip.c, res/res_pjsip_transport_websocket.c,
+ include/asterisk/res_pjsip.h, /, res/res_pjsip/location.c:
+ res_pjsip_transport_websocket: Fix security events and simplify
+ implementation. Transport type determination for security events
+ has been simplified to use the type present on the message itself
+ instead of searching through configured transports to find the
+ transport used. The actual WebSocket transport has also been
+ simplified. It now leverages the existing PJSIP transport manager
+ for finding the active WebSocket transport for outgoing messages.
+ This removes the need for res_pjsip_transport_websocket to store
+ a mapping itself. (closes issue ASTERISK-22897) Reported by: Max
+ E. Reyes Vera J. Review: https://reviewboard.asterisk.org/r/3036/
+ ........ Merged revisions 403256 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2013-11-30 14:12 +0000 [r403241] Joshua Colp <jcolp@digium.com>
+
+ * res/ari/ari_model_validators.h, rest-api/api-docs/events.json, /,
+ res/ari/ari_model_validators.c: res_ari: Add Recording events to
+ the validator. ........ Merged revisions 403240 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2013-11-28 02:12 +0000 [r403208-403224] Joshua Colp <jcolp@digium.com>
+
+ * res/res_pjsip_sdp_rtp.c, /: res_pjsip_sdp_rtp: Don't produce an
+ invalid media stream with no formats. Depending on configuration
+ it was possible for a media stream to be created without any
+ media formats. The produced SDP would fail internal validation
+ and cause a crash. The code will now no longer add media streams
+ with no formats to the SDP, allowing it to pass validation and
+ work. (closes issue ASTERISK-22858) Reported by: Anthony Messina
+ ........ Merged revisions 403223 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+ * res/res_pjsip_header_funcs.c, /: res_pjsip_header_funcs: Don't
+ add headers to re-INVITEs. When sending a re-INVITE to an
+ endpoint it was possible for received headers to be added as well
+ (since they are stored for retrieval using the PJSIP_HEADER
+ dialplan function). This caused a broken (and potentially large)
+ SIP INVITE to be produced and sent. This changes the module so it
+ will no longer add headers to re-INVITEs. (closes issue
+ ASTERISK-22882) Reported by: David M. Lee ........ Merged
+ revisions 403221 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+ * res/res_stasis_playback.c, /: res_stasis_playback: Add 'number',
+ 'digits', and 'characters' URI scheme implementations. This
+ change adds new URI scheme implementations for playing numbers,
+ digits, and characters. This is done as part of the normal
+ playback mechanism and can be used with queueing to create a
+ combined sentence. Review:
+ https://reviewboard.asterisk.org/r/3028/ ........ Merged
+ revisions 403209 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+ * /, res/res_pjsip/pjsip_configuration.c, res/res_pjsip.c,
+ res/res_pjsip_session.c, include/asterisk/res_pjsip.h:
+ res_pjsip_session: Add configurable behavior for redirects. The
+ action taken when a redirect occurs is now configurable on a
+ per-endpoint basis. The redirect can either be treated as a
+ redirect to a local extension, to a URI that is dialed through
+ the Asterisk core, or to a URI that is dialed within PJSIP
+ itself. (closes issue ASTERISK-21710) Reported by: Matt Jordan
+ Review: https://reviewboard.asterisk.org/r/2963/ ........ Merged
+ revisions 403207 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2013-11-27 17:32 +0000 [r403192] Richard Mudgett <rmudgett@digium.com>
+
+ * include/asterisk/astdb.h: astdb: Tweak some doxygen comments.
+
+2013-11-27 16:12 +0000 [r403180] Joshua Colp <jcolp@digium.com>
+
+ * /, res/res_pjsip/pjsip_configuration.c: res_pjsip: Fix crash when
+ reloading certain configurations. Certain options available that
+ specify a SIP URI perform validation on the provided URI using
+ the PJSIP URI parser. This operation requires that the thread
+ executing it be registered with the PJLIB library. During reloads
+ this was done on a thread which was NOT registered with it. This
+ fixes the problem by creating a task which reloads the
+ configuration on a PJSIP thread. (closes issue ASTERISK-22923)
+ Reported by: Anthony Messina ........ Merged revisions 403179
+ from http://svn.asterisk.org/svn/asterisk/branches/12
+
+2013-11-27 15:48 +0000 [r403177] David M. Lee <dlee@digium.com>
+
+ * res/res_ari_channels.c, include/asterisk/ari.h,
+ rest-api-templates/param_parsing.mustache,
+ include/asterisk/http.h, res/res_ari_recordings.c,
+ res/res_ari_endpoints.c, main/http.c,
+ rest-api-templates/swagger_model.py, res/res_ari_playbacks.c,
+ res/res_ari_sounds.c, rest-api-templates/asterisk_processor.py,
+ res/res_ari_bridges.c, tests/test_ari.c, res/res_ari.c, /,
+ res/res_ari_device_states.c, res/res_ari_asterisk.c,
+ rest-api-templates/res_ari_resource.c.mustache,
+ res/res_ari_applications.c: ari:Add application/json parameter
+ support The patch allows ARI to parse request parameters from an
+ incoming JSON request body, instead of requiring the request to
+ come in as query parameters (which is just weird for POST and
+ DELETE) or form parameters (which is okay, but a bit asymmetric
+ given that all of our responses are JSON). For any operation that
+ does _not_ have a parameter defined of type body (i.e.
+ "paramType": "body" in the API declaration), if a request
+ provides a request body with a Content type of
+ "application/json", the provided JSON document is parsed and
+ searched for parameters. The expected fields in the provided JSON
+ document should match the query parameters defined for the
+ operation. If the parameter has 'allowMultiple' set, then the
+ field in the JSON document may optionally be an array of values.
+ (closes issue ASTERISK-22685) Review:
+ https://reviewboard.asterisk.org/r/2994/
+
+2013-11-27 15:31 +0000 [r403161-403174] Joshua Colp <jcolp@digium.com>
+
+ * /, res/res_pjsip/pjsip_configuration.c: res_pjsip: Update
+ handling of some options to work with new option names. Some
+ options (such as call_group and pickup_group) share the same
+ configuration handler and decide what logic to use based on the
+ name of the option. These handlers were not updated to check for
+ the new option names and were treating the options as invalid.
+ This change simply updates the handlers with the proper names of
+ the options. (closes issue ASTERISK-22922) Reported by: Anthony
+ Messina ........ Merged revisions 403173 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+ * /, configure, include/asterisk/autoconfig.h.in, configure.ac: Fix
+ a configure issue with PJSIP transaction group lock detection.
+ The configure check did not use the provided paths for pjproject
+ if provided when looking for transaction group lock support.
+ ........ Merged revisions 403160 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2013-11-23 17:48 +0000 [r403133-403135] Kevin Harwell <kharwell@digium.com>
+
+ * res/ari.make, rest-api/api-docs/applications.json,
+ res/ari/resource_device_states.h (added),
+ include/asterisk/stasis_app_device_state.h (added),
+ res/ari/resource_applications.h, res/res_stasis.c,
+ include/asterisk/devicestate.h, rest-api/api-docs/events.json,
+ res/res_stasis_device_state.exports.in (added), res/stasis/app.c,
+ res/res_ari_device_states.c (added), /,
+ include/asterisk/stasis_app.h, main/devicestate.c,
+ res/stasis/app.h, rest-api/resources.json,
+ res/res_stasis_device_state.c (added),
+ res/ari/ari_model_validators.c, res/ari/ari_model_validators.h,
+ res/ari/resource_device_states.c (added),
+ rest-api/api-docs/deviceStates.json (added),
+ rest-api-templates/ari.make.mustache: ARI: Implement device state
+ API Created a data model and implemented functionality for an ARI
+ device state resource. The following operations have been added
+ that allow a user to manipulate an ARI controlled device:
+ Create/Change the state of an ARI controlled device PUT
+ /deviceStates/{deviceName}&{deviceState} Retrieve all ARI
+ controlled devices GET /deviceStates Retrieve the current state
+ of a device GET /deviceStates/{deviceName} Destroy a device-state
+ controlled by ARI DELETE /deviceStates/{deviceName} The ARI
+ controlled device must begin with 'Stasis:'. An example
+ controlled device name would be Stasis:Example. A
+ 'DeviceStateChanged' event has also been added so that an
+ application can subscribe and receive device change events. Any
+ device state, ARI controlled or not, can be subscribed to. While
+ adding the event, the underlying subscription control mechanism
+ was refactored so that all current and future resource
+ subscriptions would be the same. Each event resource must now
+ register itself in order to be able to properly handle
+ [un]subscribes. (issue ASTERISK-22838) Reported by: Matt Jordan
+ Review: https://reviewboard.asterisk.org/r/3025/ ........ Merged
+ revisions 403134 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+ * res/res_pjsip_registrar.c, main/sorcery.c,
+ include/asterisk/res_pjsip.h, include/asterisk/acl.h,
+ res/res_pjsip/config_auth.c, include/asterisk/utils.h,
+ res/res_pjsip.exports.in, /,
+ res/res_pjsip_endpoint_identifier_ip.c, main/acl.c, main/utils.c,
+ res/res_pjsip.c, res/res_pjsip_exten_state.c,
+ include/asterisk/res_pjsip_pubsub.h, res/res_pjsip/location.c,
+ res/res_pjsip_outbound_registration.c, res/res_pjsip_mwi.c,
+ res/res_pjsip/pjsip_configuration.c, include/asterisk/sorcery.h,
+ include/asterisk/strings.h,
+ res/res_pjsip/include/res_pjsip_private.h,
+ res/res_pjsip_pubsub.c, res/res_pjsip/config_transport.c:
+ res_pjsip: AMI commands and events. Created the following AMI
+ commands and corresponding events for res_pjsip:
+ PJSIPShowEndpoints - Provides a listing of all pjsip endpoints
+ and a few select attributes on each. Events: EndpointList - for
+ each endpoint a few attributes. EndpointlistComplete - after all
+ endpoints have been listed. PJSIPShowEndpoint - Provides a detail
+ list of attributes for a specified endpoint. Events:
+ EndpointDetail - attributes on an endpoint. AorDetail - raised
+ for each AOR on an endpoint. AuthDetail - raised for each
+ associated inbound and outbound auth TransportDetail - transport
+ attributes. IdentifyDetail - attributes for the identify object
+ associated with the endpoint. EndpointDetailComplete - last event
+ raised after all detail events. PJSIPShowRegistrationsInbound -
+ Provides a detail listing of all inbound registrations. Events:
+ InboundRegistrationDetail - inbound registration attributes for
+ each registration. InboundRegistrationDetailComplete - raised
+ after all detail records have been listed.
+ PJSIPShowRegistrationsOutbound - Provides a detail listing of all
+ outbound registrations. Events: OutboundRegistrationDetail -
+ outbound registration attributes for each registration.
+ OutboundRegistrationDetailComplete - raised after all detail
+ records have been listed. PJSIPShowSubscriptionsInbound - A
+ detail listing of all inbound subscriptions and their attributes.
+ Events: SubscriptionDetail - on each subscription detailed
+ attributes SubscriptionDetailComplete - raised after all detail
+ records have been listed. PJSIPShowSubscriptionsOutbound - A
+ detail listing of all outboundbound subscriptions and their
+ attributes. Events: SubscriptionDetail - on each subscription
+ detailed attributes SubscriptionDetailComplete - raised after all
+ detail records have been listed. (issue ASTERISK-22609) Reported
+ by: Matt Jordan Review: https://reviewboard.asterisk.org/r/2959/
+ ........ Merged revisions 403131 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2013-11-23 12:52 +0000 [r403118-403120] Joshua Colp <jcolp@digium.com>
+
+ * res/res_stasis_playback.c, rest-api/api-docs/events.json, /,
+ res/res_stasis_recording.c, res/ari/ari_model_validators.c,
+ rest-api/api-docs/recordings.json,
+ res/ari/ari_model_validators.h: ari: Add events for playback and
+ recording. While there were events defined for playback and
+ recording these were not actually sent. This change implements
+ the to_json handlers which produces them. (closes issue
+ ASTERISK-22710) Reported by: Jonathan Rose Review:
+ https://reviewboard.asterisk.org/r/3026/ ........ Merged
+ revisions 403119 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+ * res/res_stasis_snoop.exports.in (added), /,
+ include/asterisk/stasis_app_snoop.h (added),
+ rest-api/api-docs/channels.json, res/res_stasis_snoop.c (added),
+ main/audiohook.c, res/ari/resource_channels.c,
+ res/res_ari_channels.c, res/ari/resource_channels.h: ari: Add
+ Snoop operation for spying/whispering on channels. The Snoop
+ operation can be invoked on a channel to spy or whisper on it. It
+ returns a channel that any channel operations can then be invoked
+ on (such as record to do monitoring). (closes issue
+ ASTERISK-22780) Reported by: Matt Jordan Review:
+ https://reviewboard.asterisk.org/r/3003/ ........ Merged
+ revisions 403117 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2013-11-23 00:22 +0000 [r403106] Rusty Newton <rnewton@digium.com>
+
+ * apps/app_voicemail.c: app_voicemail: when forwarding a message,
+ play vm-msgforwarded instead of vm-msgsaved In the last release
+ of sounds, 1.4.25 we added a vm-msgforwarded prompt for various
+ core languages. Now we use that prompt. (issue ASTERISK-21413)
+ (closes issue ASTERISK-21413) Reported by: netwrkr Tested by:
+ newtonr
+
+2013-11-22 23:57 +0000 [r403095] Kinsey Moore <kmoore@digium.com>
+
+ * tests/test_stasis.c, /, tests/test_stasis_channels.c: Make sure
+ unit tests compile This fixes the unit tests that were broken by
+ r403069 and several functions requiring a new parameter for
+ sanitization of JSON messages generated from object snapshots.
+ ........ Merged revisions 403094 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2013-11-22 22:37 +0000 [r403083] Kevin Harwell <kharwell@digium.com>
+
+ * /,
+ contrib/ast-db-manage/config/versions/43956d550a44_add_tables_for_pjsip.py,
+ res/res_pjsip/pjsip_configuration.c: res_pjsip: convert
+ configuration settings names to snake case some more Updated the
+ alembic script for pjsip. Also, the dtls config parsing stuff was
+ expecting strings with no underscores, so removed the underscores
+ from the option name before passing it to the parser. ........
+ Merged revisions 403082 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2013-11-22 20:10 +0000 [r403070] Kinsey Moore <kmoore@digium.com>
+
+ * res/res_stasis.c, main/stasis_endpoints.c,
+ res/ari/resource_endpoints.c, main/rtp_engine.c, /,
+ res/stasis/app.c, include/asterisk/stasis_bridges.h,
+ include/asterisk/stasis.h, include/asterisk/stasis_app.h,
+ main/stasis_bridges.c, res/ari/resource_bridges.c, main/json.c,
+ main/stasis_message.c, include/asterisk/stasis_channels.h,
+ main/stasis_channels.c, res/ari/resource_channels.c,
+ include/asterisk/stasis_endpoints.h: ARI: Don't leak
+ implementation details This change prevents channels used as
+ implementation details from leaking out to ARI. It does this by
+ preventing creation of JSON blobs of channel snapshots created
+ from those channels and sanitizing JSON blobs of bridge snapshots
+ as they are created. This introduces a framework for excluding
+ information from output targeted at Stasis applications on a
+ consumer-by-consumer basis using channel sanitization callbacks
+ which could be extended to bridges or endpoints if necessary.
+ This prevents unhelpful error messages from being generated by
+ ast_json_pack. This also corrects a bug where BridgeCreated
+ events would not be created. (closes issue ASTERISK-22744)
+ Review: https://reviewboard.asterisk.org/r/2987/ Reported by:
+ David M. Lee ........ Merged revisions 403069 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2013-11-22 17:27 +0000 [r403051] Kevin Harwell <kharwell@digium.com>
+
+ * res/res_pjsip_acl.c, res/res_pjsip.c,
+ res/res_pjsip/config_transport.c, res/res_pjsip/config_global.c,
+ /, configs/pjsip.conf.sample, res/res_pjsip/config_system.c,
+ contrib/scripts/sip_to_pjsip/sip_to_pjsip.py,
+ res/res_pjsip/pjsip_configuration.c: res_pjsip: convert
+ configuration settings names to snake case Renamed, where
+ appropriate, the configuration options for chan/res_pjsip to use
+ snake case (compound words separated by an underscore). For
+ example, faxdetect will become fax_detect, recordofffeature will
+ become record_off_feature, etc... Review:
+ https://reviewboard.asterisk.org/r/3002/ ........ Merged
+ revisions 403022 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2013-11-22 17:12 +0000 [r403017] Joshua Colp <jcolp@digium.com>
+
+ * /, main/translate.c: translate: Move freeing of frame to after it
+ is used. When translating from one format to another it is
+ possible to inform the translation function that the source frame
+ should be freed. This was previously done immediately but shortly
+ afterwards the frame that was freed was accessed and used again.
+ This change moves code around a bit so that the frame is now
+ freed after it has been completely used. (closes issue
+ ASTERISK-22788) Reported by: Corey Farrell Patches:
+ translate-access-after-free-11up.patch uploaded by coreyfarrell
+ (license 5909) translate-access-after-free-1.8.patch uploaded by
+ coreyfarrell (license 5909) ........ Merged revisions 403014 from
+ http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
+ revisions 403015 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 403016 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2013-11-22 16:43 +0000 [r403013] Richard Mudgett <rmudgett@digium.com>
+
+ * apps/app_directed_pickup.c, CHANGES: PickupChan: Add ability to
+ specify channel uniqueids as well as channel names. * Made
+ PickupChan() search by channel uniqueids if the search could not
+ find a channel by name. * Ensured PickupChan() never considers
+ the picking channel for pickup. * Made PickupChan() option p use
+ a common search by name routine. The original search was
+ erroneously case sensitive. (issue AFS-42) Review:
+ https://reviewboard.asterisk.org/r/3017/
+
+2013-11-21 22:38 +0000 [r402995] Jonathan Rose <jrose@digium.com>
+
+ * CHANGES, apps/app_directory.c: app_directory: Set variable
+ indicating reason directory exited By the time the directory
+ application exits, a channel variable DIRECTORY_RESULT will be
+ set for the channel that invoked it which can be used to
+ determine the reason for exit. The changes log and the
+ app_directory documentation contain specific details about each
+ of the possible values for DIRECTORY_RESULT. Review:
+ https://reviewboard.asterisk.org/r/3016/
+
+2013-11-21 22:36 +0000 [r402982-402994] David M. Lee <dlee@digium.com>
+
+ * rest-api-templates/ari_resource.c.mustache, /,
+ rest-api-templates/res_ari_resource.c.mustache: ari: Fix #include
+ to match generated headers for snakeCase resource files ........
+ Merged revisions 402993 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+ * rest-api-templates/make_ari_stubs.py, /: ari: Fix generators for
+ resources with camelCase names. For the new deviceState resource,
+ we need to properly generate device_state.[ch] files. ........
+ Merged revisions 402981 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2013-11-21 19:22 +0000 [r402969] Matthew Jordan <mjordan@digium.com>
+
+ * res/res_pjsip_session.c, /: res_pjsip_session: Fix memory leak of
+ direct media format capabilities The direct media format
+ capabilities are always allocated in ast_sip_session_alloc and
+ were not freed in the session destructor. Whoops. (This being the
+ third whoops caught by Scott and Nitesh's valgrind work for the
+ Asterisk Test Suite. Nifty!) ........ Merged revisions 402968
+ from http://svn.asterisk.org/svn/asterisk/branches/12
+
+2013-11-21 19:09 +0000 [r402945-402957] Richard Mudgett <rmudgett@digium.com>
+
+ * include/asterisk/app.h, /: voicemail: Fixup some doxygen
+ comments. ........ Merged revisions 402956 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+ * /, main/bucket.c: bucket: Fix scheme ref leak in
+ __ast_bucket_scheme_register(). ........ Merged revisions 402944
+ from http://svn.asterisk.org/svn/asterisk/branches/12
+
+2013-11-21 17:53 +0000 [r402942-402943] Matthew Jordan <mjordan@digium.com>
+
+ * res/res_pjsip_sdp_rtp.c, /: res_pjsip_sdp_rtp: Fix use of
+ uninitialized value in PJSIP In PJMEDIA,
+ pjmedia_sdp_rtpmap_to_attr will attempt to use the string
+ rtpmap.param regardless of its length value. Simply setting the
+ length to 0 does not prevent the garbage on the stack in
+ rtpmap.param.ptr from being formatted in a sprintf call. This
+ patch initializes the string to NULL so that at the very least,
+ something is provided to the function that is predictable.
+ ........ Merged revisions 402941 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+ * /, res/res_pjsip_mwi.c: res_pjsip_mwi: Fix memory leak of MWI
+ subscriptions container This patch fixes a reference counting
+ memory leak on the ao2_container created as part of
+ create_mwi_subscriptions. When we create the container in this
+ routine, the intent is to hand lifetime ownership over to the
+ global container unsolicited_mwi. When
+ ao2_global_obj_replace_unref is called, the reference count on
+ mwi_subscriptions (the container) will be bumped by 1; however,
+ the function does not decrement the reference count on
+ mwi_subscriptions when this occurs. This will prevent the
+ container from being fully disposed of when Asterisk exits (or on
+ any subsequent call to this operation, such as during a reload).
+ ........ Merged revisions 402940 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2013-11-21 15:57 +0000 [r402928-402929] David M. Lee <dlee@digium.com>
+
+ * res/res_stasis.c, /: stasis: Fixed scoping problem with bridge
+ tracking. ........ Merged revisions 402817 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+ * res/ari/resource_channels.c, res/res_ari_channels.c,
+ res/ari/resource_channels.h, /, res/stasis/control.c,
+ include/asterisk/stasis_app.h, rest-api/api-docs/channels.json:
+ ari: Add silence generator controls This patch adds the ability
+ to start a silence generator on a channel via ARI. This generator
+ will play silence on the channel (avoiding audio timeouts on the
+ peer) until it is stopped, or some other media operation is
+ started (like playing media, starting music on hold, etc.).
+ (closes issue ASTERISK-22514) Review:
+ https://reviewboard.asterisk.org/r/3019/ ........ Merged
+ revisions 402926 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2013-11-19 23:17 +0000 [r402892] Joshua Colp <jcolp@digium.com>
+
+ * /, res/res_pjsip_caller_id.c: res_pjsip_caller_id: Don't
+ overwrite user portion of the From header when fromuser is set.
+ The fromuser option is used to explicitly set the user within the
+ From header. The res_pjsip_caller_id module did not take this
+ setting into account when determining if the From header could be
+ modified or not. (closes issue ASTERISK-22866) Reported by:
+ Anthony Messina ........ Merged revisions 402891 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2013-11-16 13:51 +0000 [r402865] Joshua Colp <jcolp@digium.com>
+
+ * res/res_pjsip/pjsip_distributor.c, /, configure,
+ include/asterisk/autoconfig.h.in, configure.ac: res_pjsip: Add
+ support for building against pjproject with SIP transaction group
+ lock support. SIP transaction group lock support has been
+ backported into our pjproject. Since the code now internally uses
+ a group lock the code is now changed to unlock it if present.
+ Note that the act of finding the transaction is what actually
+ returns it locked. For further information about group locks
+ check out the wiki page at:
+ http://trac.pjsip.org/repos/wiki/Group_Lock (issue
+ ASTERISK-22818) Reported by: Matt Jordan ........ Merged
+ revisions 402864 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2013-11-15 22:38 +0000 [r402854] Jonathan Rose <jrose@digium.com>
+
+ * apps/app_confbridge.c, CHANGES,
+ apps/confbridge/conf_config_parser.c,
+ configs/confbridge.conf.sample,
+ apps/confbridge/include/confbridge.h: Confbridge: Add option to
+ review the recording similar to announce_join_leave Review:
+ https://reviewboard.asterisk.org/r/3008/
+
+2013-11-15 14:37 +0000 [r402839] Kinsey Moore <kmoore@digium.com>
+
+ * /, main/cel.c: CEL: Fix crash when using CELGenUserEvent This
+ fixes a crash when CELGenUserEvent is called from the dialplan
+ while CEL is disabled. Currently, CEL does not create its topics
+ and forwards if it is not enabled and external entities may
+ depend on these topics blindly since they should always be
+ available. This patch breaks up route creation and topic/forward
+ creation such that the CEL topics and forwards will always exist
+ while the router and its associated routes will be torn down and
+ recreated as necessary. (closes issue ASTERISK-22799) Review:
+ https://reviewboard.asterisk.org/r/3010/ Reported by: Matt Jordan
+ ........ Merged revisions 402838 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2013-11-14 21:36 +0000 [r402820-402829] Richard Mudgett <rmudgett@digium.com>
+
+ * apps/app_directed_pickup.c: Pickup: Pickup() and PickupChan()
+ parameter parsing improvements. * Made Pickup() and PickupChan()
+ tollerate empty pickup values. i.e., You can now have
+ Pickup(&&exten@context). * Made PickupChan() use the standard
+ option flag parsing code.
+
+ * apps/app_directed_pickup.c: Pickup: Ensure using PICKUPMARK never
+ considers the picking channel.
+
+2013-11-14 20:32 +0000 [r402819] Jonathan Rose <jrose@digium.com>
+
+ * CHANGES, main/pbx.c, apps/app_sayunixtime.c: Say: If
+ SAY_DTMF_INTERRUPT is set to an ast_true value, jump on DTMF
+ Similar to how background works, if a say application is called
+ with this variable set to 'true', 'yes', 'on', etc. then using
+ DTMF while the say action is in progress will result in the
+ channel jumping to that extension in the dialplan. Review:
+ https://reviewboard.asterisk.org/r/3011/
+
+2013-11-13 23:11 +0000 [r402805] Joshua Colp <jcolp@digium.com>
+
+ * rest-api/api-docs/channels.json, res/ari/resource_channels.c,
+ res/res_ari_channels.c, res/ari/resource_channels.h, /,
+ res/stasis/control.c, include/asterisk/stasis_app.h:
+ res_ari_channels: Add the ability to stop locally generated
+ ringing on a channel. Using the 'ring' operation it is possible
+ to start locally generated ringback if the channel is answered.
+ This change adds the ability to stop it by using DELETE. ........
+ Merged revisions 402804 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2013-11-12 23:17 +0000 [r402788-402795] Kevin Harwell <kharwell@digium.com>
+
+ * res/ari/resource_endpoints.c, /: ari endpoints: GET
+ /ari/endpoints/{invalid-tech} should return a 404 Was returning a
+ 404 on a valid technology with an empty list of endpoints. Now
+ checking against the channel tech to make sure the tech itself is
+ valid and not just an empty list of endpoints. (issue
+ ASTERISK-22803) Reported by: David M. Lee ........ Merged
+ revisions 402793 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+ * rest-api/api-docs/endpoints.json, res/ari/resource_endpoints.c,
+ /, res/res_ari_endpoints.c: ari endpoints: GET
+ /ari/endpoints/{invalid-tech} should return a 404 Implementation
+ listing endpoints by technology returned an empty array if no
+ matching endpoints were found. Fixed so a "404 Not Found" will be
+ returned instead. (closes issue ASTERISK-22803) Reported by:
+ David M. Lee ........ Merged revisions 402787 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2013-11-12 19:38 +0000 [r402768-402778] Mark Michelson <mmichelson@digium.com>
+
+ * /, main/channel.c: Switch to a scoped lock to avoid missing
+ unlocks in failure returns. ........ Merged revisions 402769 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+ * main/channel.c, /: Move a NULL check to a place that makes more
+ sense. Two variables were being checked for NULLity immediately
+ after being declared NULL. I moved the NULL check until after the
+ variables are allocated. This allows for the "channelvars" option
+ in manager.conf to work as intended again. ........ Merged
+ revisions 402767 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2013-11-12 16:49 +0000 [r402758] Kevin Harwell <kharwell@digium.com>
+
+ * res/res_pjsip_messaging.c, res/res_pjsip_header_funcs.c, /:
+ pjsip_messaging, pjsip_header_funcs: Crashes due to NULL pointer
+ dereferences Both res_pjsip_messaging and res_pjsip_header_funcs
+ were causing asterisk to crash because they were trying to
+ dereference a NULL pointer. In the case of res_pjsip_messaging it
+ was attempting to "print" a contact header that did not exist. In
+ fact contact headers should not be part of a SIP MESSAGE, so the
+ offending code was simply removed. In the case of
+ res_pjsip_header_funcs a null private channel tech was being
+ passed to the function and then later dereferenced. Added null
+ checks (and error logging) to the read/write function handlers to
+ guard against crashing. (closes issue ASTERISK-22821) Reported
+ by: Anthony Messina ........ Merged revisions 402757 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2013-11-12 16:34 +0000 [r402756] Kinsey Moore <kmoore@digium.com>
+
+ * /, apps/app_celgenuserevent.c: CELGenUserEvent: Fix error message
+ from ast_json_pack This prevents NULL from being passed into an
+ ast_json_pack call when no extra information is passed to the
+ application which prevents an error message about NULL arguments
+ from being generated. ........ Merged revisions 402755 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2013-11-12 15:27 +0000 [r402741] David M. Lee <dlee@digium.com>
+
+ * res/ari/ari_model_validators.h, rest-api/api-docs/events.json, /:
+ Fixed a typ. ........ Merged revisions 402738 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2013-11-12 15:03 +0000 [r402711] Kinsey Moore <kmoore@digium.com>
+
+ * channels/chan_dahdi.c, /: chan_dahdi: Fix crash during caller ID
+ read Asterisk will sometimes core dump during caller id read on
+ analog channels due to a negative return value from the read() in
+ my_get_callerid that slips through as a negative length argument
+ to callerid_feed() if the errno returned by DAHDI is ELAST. This
+ change ensures that the negative return is treated properly even
+ when it is ELAST. (closes issue ASTERISK-22746) Reported by:
+ Michael Walton Patches: chan_dahdi_cid_crash_fix.r401410.patch
+ uploaded by Michael Walton (License 6502) ........ Merged
+ revisions 402708 from
+ http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
+ revisions 402709 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 402710 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2013-11-11 20:28 +0000 [r402698] Jonathan Rose <jrose@digium.com>
+
+ * apps/app_confbridge.c: Confbridge: add test events for dynamic
+ menus test Adds a couple of test events for conference menu
+ actions so that it's easy to discern when those menu actions have
+ been triggered. (issue ASTERISK-22760) Reported by: Matt Jordan
+ Review: https://reviewboard.asterisk.org/r/2999/
+
+2013-11-11 19:31 +0000 [r402688] Mark Michelson <mmichelson@digium.com>
+
+ * apps/app_confbridge.c, /: Get rid of some inaccurate comments.
+ I'm doing some unrelated work in app_confbridge and finding these
+ "invalid pin" comments to be annoying. Get out! ........ Merged
+ revisions 402686 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 402687 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2013-11-11 15:37 +0000 [r402648] Kinsey Moore <kmoore@digium.com>
+
+ * /, apps/app_queue.c: app_queue: Honor penalty limits of 0 In the
+ current app_queue code from 1.8 up to trunk the upper and lower
+ penalties can be set to 0 but the value is interpreted to be
+ disabled instead of actually setting limits. This is especially
+ evident if min and max limits are set to 0 and members with
+ penalties of 0 and 1 are in the queue since the member with
+ penalty 1 will still receive calls. This patch adjusts the
+ special disabled value to be INT_MAX instead of 0. (closes issue
+ ASTERISK-20862) Review: https://reviewboard.asterisk.org/r/2995/
+ Reported by: Schmooze Com ........ Merged revisions 402645 from
+ http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
+ revisions 402646 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 402647 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2013-11-08 23:07 +0000 [r402607] Scott Griepentrog <sgriepentrog@digium.com>
+
+ * /, channels/chan_sip.c, channels/sip/include/sip.h: chan_sip:
+ keep same local (from) tag for outgoing register requests For
+ outbound register requests the tag on the From line was updated
+ every 20 seconds prior to a successful registration and also once
+ for each registration renewal. That behavior can possibly cause
+ the registration to be denied because of the different tag, and
+ is not aligned with the intention of RFC 3261 8.1.3.5 "...
+ request constitutes a new transaction and SHOULD have the same
+ value of the Call-ID, To, and From of the previous request...".
+ This updates chan_sip to have a field to keep the local tag in
+ the registration structure and use that tag for registration
+ requests where the callid is also unchanged. (closes issue
+ ASTERISK-12117) Reported by: Pawel Pierscionek Review:
+ https://reviewboard.asterisk.org/r/2988/ ........ Merged
+ revisions 402604 from
+ http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
+ revisions 402605 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 402606 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2013-11-08 20:37 +0000 [r402595] Richard Mudgett <rmudgett@digium.com>
+
+ * /, res/res_stasis.c: res_stasis.c: Fix locking issues with the
+ app_bridge_moh container. * Fix unlinking from the
+ app_bridges_moh container in remove_bridge_moh() without a lock
+ under normal circumstances. * Made check
+ ast_bridge_set_after_callback() return value in
+ bridge_moh_create() to handle failure. * Fixed SCOPED_AO2LOCK()
+ locking over too much scope in stasis_app_bridge_moh_channel()
+ and stasis_app_bridge_moh_stop(). * Fixed unusual usage of
+ ao2_unlink_flag() in control_unlink(). * Fixed orphaned bridge
+ from off nominal path in stasis_app_bridge_create(). * Fixed
+ strange construct in stasis_app_unsubscribe(). From a bad merge?
+ * Made load_module() cleanup on failure. Review:
+ https://reviewboard.asterisk.org/r/2962/ ........ Merged
+ revisions 402593 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2013-11-08 19:33 +0000 [r402585] Jonathan Rose <jrose@digium.com>
+
+ * /, main/security_events.c, configs/manager.conf.sample, CHANGES,
+ include/asterisk/manager.h, main/manager.c: security_events: Push
+ out security events over AMI events Security Events will now be
+ written to any listener of the new 'security' class Review:
+ https://reviewboard.asterisk.org/r/2998/ ........ Merged
+ revisions 402584 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2013-11-08 19:22 +0000 [r402583] Mark Michelson <mmichelson@digium.com>
+
+ * res/res_pjsip.c, /: Clarify an ambiguous error message. ........
+ Merged revisions 402582 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2013-11-08 18:53 +0000 [r402571-402572] David M. Lee <dlee@digium.com>
+
+ * /, res/res_pjsip/config_system.c: res_pjsip: Print a helpful
+ error message if sorcery registration fails ........ Merged
+ revisions 402570 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+ * res/ari/resource_playbacks.h, /: Changes from make ari-stubs
+ after r402560 ........ Merged revisions 402561 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2013-11-08 17:59 +0000 [r402562] Kevin Harwell <kharwell@digium.com>
+
+ * rest-api/resources.json, res/ari/resource_playback.h (removed),
+ res/res_ari_playbacks.c (added), res/ari/resource_playbacks.h
+ (added), /, res/ari.make, rest-api/api-docs/playback.json
+ (removed), res/ari/resource_playback.c (removed),
+ res/res_ari_playback.c (removed),
+ rest-api/api-docs/playbacks.json (added),
+ res/ari/resource_playbacks.c (added): ARI playback: Rename ARI
+ Playback to Playbacks Before playback was the only non plural
+ resource. It has been renamed to playbacks for consistency.
+ (closes issue ASTERISK-22737) Reported by: Paul Belanger ........
+ Merged revisions 402560 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2013-11-08 17:29 +0000 [r402557] David M. Lee <dlee@digium.com>
+
+ * res/res_ari.c, main/manager.c, /, main/http.c: ari: Add
+ application/x-www-form-urlencoded parameter support ARI POST
+ calls only accept parameters via the URL's query string. While
+ this works, it's atypical for HTTP API's in general, and
+ specifically frowned upon with RESTful API's. This patch adds
+ parsing for application/x-www-form-urlencoded request bodies if
+ they are sent in with the request. Any variables parsed this way
+ are prepended to the variable list supplied by the query string.
+ (closes issue ASTERISK-22743) Review:
+ https://reviewboard.asterisk.org/r/2986/ ........ Merged
+ revisions 402555 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2013-11-08 14:58 +0000 [r402546] Kevin Harwell <kharwell@digium.com>
+
+ * apps/app_dahdiras.c, utils/extconf.c, main/asterisk.c:
+ app_dahdiras: Use waitpid instead of wait4. Several places in the
+ code were using wait4 while other places were using waitpid. This
+ change makes all places use waitpid in order to make things more
+ consistent and since the 'rusage' object passed in/out of wait4
+ was never used. (closes issue ASTERISK-22557) Reported by:
+ YvesGael Patches: asterisk-11.5.1-wait4.patch uploaded by hurdman
+ (license 6537)
+
+2013-11-07 23:42 +0000 [r402538] Jonathan Rose <jrose@digium.com>
+
+ * res/res_pjsip_authenticator_digest.c, /: PJSIP: Improve error
+ handling in digest authenticator Previously, regardless of
+ whether failure to authenticate was due to lacking any
+ authentication or actually failing authentication, the Digest
+ Authenticator would simply return that a challenge was still
+ needed. It will continue to do that when no authentication
+ information is in the received SIP digest, but when
+ authentication information is present and does not pass
+ authentication, that will be treated as an authentication error.
+ This is to ensure that PJSIP will issue security events indicated
+ failed auths. ........ Merged revisions 402537 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2013-11-07 21:10 +0000 [r402529] David M. Lee <dlee@digium.com>
+
+ * res/ari/resource_applications.c, res/ari/resource_playback.c,
+ rest-api/api-docs/channels.json, res/ari/resource_applications.h,
+ res/ari/resource_channels.c, res/ari/resource_playback.h,
+ rest-api/api-docs/recordings.json, res/ari/resource_recordings.c,
+ rest-api-templates/ari_resource.c.mustache,
+ rest-api-templates/asterisk_processor.py,
+ res/ari/resource_channels.h, rest-api/api-docs/endpoints.json,
+ res/ari/resource_endpoints.c, res/ari/resource_recordings.h,
+ res/ari/resource_events.c, res/res_ari_playback.c,
+ res/res_ari_applications.c, res/ari/resource_endpoints.h,
+ res/ari/resource_events.h, rest-api/api-docs/sounds.json,
+ res/ari/resource_sounds.c, res/res_ari_channels.c,
+ rest-api/api-docs/bridges.json, res/ari/resource_bridges.c,
+ res/ari/resource_sounds.h, res/res_ari_recordings.c,
+ res/ari/resource_bridges.h, rest-api/api-docs/asterisk.json,
+ res/ari/resource_asterisk.c, res/res_ari_endpoints.c,
+ rest-api/api-docs/applications.json,
+ rest-api/api-docs/playback.json, res/res_ari_events.c,
+ res/ari/resource_asterisk.h, rest-api-templates/swagger_model.py,
+ res/res_ari_sounds.c, res/res_ari_bridges.c, /,
+ rest-api-templates/ari_resource.h.mustache,
+ rest-api-templates/rest_handler.mustache, res/res_ari_asterisk.c,
+ rest-api-templates/res_ari_resource.c.mustache: ari: User better
+ nicknames for ARI operations While working on building client
+ libraries from the Swagger API, I noticed a problem with the
+ nicknames. channel.deleteChannel() channel.answerChannel()
+ channel.muteChannel() Etc. We put the object name in the nickname
+ (since we were generating C code), but it makes OO generators
+ redundant. This patch makes the nicknames more OO friendly. This
+ resulted in a lot of name changing within the res_ari_*.so
+ modules, but not much else. There were a couple of other fixed I
+ made in the process. * When reversible operations (POST /hold,
+ POST /unhold) were made more RESTful (POST /hold, DELETE
+ /unhold), the path for the second operation was left in the API
+ declaration. This worked, but really the two operations should
+ have been on the same API. * The POST /unmute operation had still
+ not been REST-ified. Review:
+ https://reviewboard.asterisk.org/r/2940/ ........ Merged
+ revisions 402528 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2013-11-06 21:58 +0000 [r402518] Kevin Harwell <kharwell@digium.com>
+
+ * /, apps/app_queue.c: app_queue: crash if first agent is "busy" If
+ the first agent/member (via CLI "queue show") in a queue is
+ "busy" (dnd, circuit busy, etc...) and no agents answered then
+ app_queue would crash. This occurred because while the calling of
+ agent(s) remained valid the channel on "busy" agent would be set
+ to NULL and then later dereferenced upon a second "rna" function
+ call. The original intention of the code is to have only valid
+ "call attempt" objects (channels != NULL) checked while
+ attempting to call agent(s). It does this by building a
+ "call_next" list of valid "call attempt" objects. In the case of
+ the "busy" agent subsequent builds of the valid "call attempt"
+ list would sometimes include (the case mentioned above) an
+ invalid "call attempt" object. The fix was to make sure the "call
+ attempt" list was appropriately built on every iteration. A NULL
+ sanity check was also added at the original offending spot of the
+ crash just in case another one slipped by somehow. (closes issue
+ ASTERISK-22644) Reported by: Marco Signorini Review:
+ https://reviewboard.asterisk.org/r/2983/ ........ Merged
+ revisions 402517 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2013-11-05 21:17 +0000 [r402502-402508] Matthew Jordan <mjordan@digium.com>
+
+ * /, channels/chan_sip.c: chan_sip: Use AST_AF* defined constant
+ when calling ast_get_ip While the structure passed to ast_get_ip
+ should be set memset to 0, thus initializing the ss_family member
+ to 0, explicitly setting it to AST_AF_UNSPEC is more portable.
+ ........ Merged revisions 402507 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+ * channels/chan_iax2.c, /: chan_iax2: Fix incorrect usage of
+ ast_get_ip involving uninitialized struct This started off as a
+ fix for the failing IAX2 acl_call test in the Asterisk Test
+ Suite. When inspecting why that test was failing, it became clear
+ that all attempts to bind to any local loopback address was
+ failing: [Nov 2 15:56:28] VERBOSE[15787] chan_iax2.c: == Binding
+ IAX2 to address 127.0.0.1:4569 [Nov 2 15:56:28] DEBUG[15787]
+ netsock2.c: Splitting '127.0.0.1' into... [Nov 2 15:56:28]
+ DEBUG[15787] netsock2.c: ...host '127.0.0.1' and port ''. [Nov 2
+ 15:56:28] ERROR[15787] netsock2.c: getaddrinfo("127.0.0.1",
+ "(null)", ...): ai_family not supported [Nov 2 15:56:28]
+ WARNING[15787] acl.c: Unable to lookup '127.0.0.1' While there's
+ conceivably other ways for getaddrino to return EAI_FAMILY, the
+ most common way is if AF_INET, AF_INET6, or AF_UNSPEC is not
+ provided as the desired family. The culprit was the call to
+ ast_get_ip, defined in acl.h. This function uses the family from
+ the passed in addr object (which it will also populate when it
+ returns!) when it eventually calls getaddrinfo. This patch fixes
+ the use of ast_get_ip that were not specifying the family in
+ chan_iax2. This prevents uninitialized use of the structure, so
+ that the addresses resolve correctly. Review:
+ https://reviewboard.asterisk.org/r/2991 ........ Merged revisions
+ 402505 from http://svn.asterisk.org/svn/asterisk/branches/12
+
+ * include/asterisk/acl.h, /, include/asterisk/netsock2.h: netsock2:
+ Define AST_AF_* enum constants to their AF_* equivalents This
+ patch explicitly defines AST_AF_* enum constants to their
+ sys/socket.h defined equivalents. It is certainly unclear why
+ these constants actually have to exist, given that netsock2.h
+ includes sys/socket.h; however, since the code base is already
+ liberally sprinkled with the usage of AST_AF_* (as well as with
+ direct calls to AF_*), this will at least keep the semantics
+ consistent between their usage across systems. ........ Merged
+ revisions 402503 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+ * main/stasis_channels.c, /: stasis_channels: Don't give preference
+ to ANI info in channel snapshots When publishing channel
+ snapshots, we currently compute the caller ID name and number by
+ giving preference first to ani.{name|number}, then to
+ id.{name|number}. However, when a channel driver (such as
+ chan_sip) updates the caller ID, it typically only updates the
+ caller ID stored in id.{name|number}. This means that we are
+ currently giving preference to stale information. When looking at
+ the rest of the code base, the only other place where we appear
+ to use this same logic is in app_amd. Everywhere else, we treat
+ the party information in ani as being separate to the party
+ information in id. This patch publishes only the caller ID name
+ and number in the snapshot field for caller_name and caller_num.
+ Note that the information in ANI is still available in
+ caller_ani. Review: https://reviewboard.asterisk.org/r/2992/
+ ........ Merged revisions 402501 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2013-11-04 21:02 +0000 [r402453] Kevin Harwell <kharwell@digium.com>
+
+ * /, channels/chan_sip.c: chan_sip: notify dialog info ignores
+ presentation indicator in callerid The presentation indicator in
+ a callerid (e.g. set by dialplan function
+ Set(CALLERID(name-pres)= ...)) is not checked when SIP Dialog
+ Info Notifies are generated during extension monitoring. Added a
+ check to make sure the name and/or number presentations on the
+ callee (remote identity) are set to allow. If they are restricted
+ then "anonymous" is used instead. (closes issue AST-1175)
+ Reported by: Thomas Arimont Review:
+ https://reviewboard.asterisk.org/r/2976/ ........ Merged
+ revisions 402450 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 402452 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2013-11-02 04:30 +0000 [r402406-402439] Richard Mudgett <rmudgett@digium.com>
+
+ * main/stasis.c, main/stasis_message_router.c, /,
+ include/asterisk/vector.h: vector: Uppercase API to follow C
+ convention. C does not support templates like C++. ........
+ Merged revisions 402438 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+ * include/asterisk/lock.h, main/stasis.c,
+ main/stasis_message_router.c, /, include/asterisk/vector.h:
+ vector: Update API to be more flexible. Made the vector macro API
+ be more like linked lists. 1) Added a name parameter to
+ ast_vector() to name the vector struct. 2) Made the API take a
+ pointer to the vector struct instead of the struct itself. 3)
+ Added an element cleanup macro/function parameter when removing
+ an element from the vector for ast_vector_remove_cmp_unordered()
+ and ast_vector_remove_elem_unordered(). 4) Added
+ ast_vector_get_addr() in case the vector element is not a simple
+ pointer. * Converted an inline vector usage in
+ stasis_message_router to use the vector API. It needed the API
+ improvements so it could be converted. * Fixed topic reference
+ leak in router_dtor() when the stasis_message_router is
+ destroyed. * Fixed deadlock potential in stasis_forward_all() and
+ stasis_forward_cancel(). Locking two topics at the same time
+ requires deadlock avoidance. * Made internal_stasis_subscribe()
+ tolerant of a NULL topic. * Made stasis_message_router_add(),
+ stasis_message_router_add_cache_update(),
+ stasis_message_router_remove(), and
+ stasis_message_router_remove_cache_update() tolerant of a NULL
+ message_type. * Promoted a LOG_DEBUG message to LOG_ERROR as
+ intended in dispatch_message(). Review:
+ https://reviewboard.asterisk.org/r/2903/ ........ Merged
+ revisions 402429 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+ * apps/confbridge/conf_state_single.c,
+ apps/confbridge/conf_state_inactive.c,
+ apps/confbridge/conf_state_single_marked.c, /,
+ apps/confbridge/include/confbridge.h,
+ apps/confbridge/conf_state_multi.c, apps/app_confbridge.c,
+ apps/confbridge/conf_state_multi_marked.c,
+ apps/confbridge/conf_state.c: confbridge: Separate user muting
+ from system muting overrides. The system overrides the user
+ muting requests when MOH is playing or a waitmarked user is
+ waiting for a marked user to join. System muting overrides
+ interfere with what the user may wish the muting to be when the
+ system override ends. * User muting requests are now independent
+ of the system muting overrides. The effective muting is now the
+ logical or of the user request and system override. * Added a
+ Muted flag to the CLI "confbridge list <conference>" command. *
+ Added a Muted header to the AMI ConfbridgeList action
+ ConfbridgeList event. (closes issue AST-1102) Reported by: John
+ Bigelow Review: https://reviewboard.asterisk.org/r/2960/ ........
+ Merged revisions 402425 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 402427 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+ * main/config.c, apps/confbridge/conf_config_parser.c,
+ configs/confbridge.conf.sample, /: config: Allow ConfBridge DTMF
+ menus to have '#' as the first digit. ConfBridge allows custom
+ DTMF menus to be created in the confbridge.conf file by assigning
+ a DTMF key sequence to a sequence of actions as follows:
+ DTMF-sequence = action,action... Unfortunately, the normal config
+ file processing code interprets an initial '#' character as
+ starting a directive such as #include. * Add the ability to
+ escape the first non-blank character in a config line so the '#'
+ character can be used without triggering the directive processing
+ code. (closes issue AFS-2) (closes issue ASTERISK-22478) Reported
+ by: Nicolas Tanski Patches: jira_asterisk_22478_v11.patch
+ (license #5621) patch uploaded by rmudgett (modified) Review:
+ https://reviewboard.asterisk.org/r/2969/ ........ Merged
+ revisions 402407 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 402416 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+ * include/asterisk/app.h, /, main/app.c: voicemail: Simplify
+ callback pointer declarations and add doxygen. * Typedefed and
+ added doxegen for the voicemail callback functions. * Simplified
+ the prototypes for ast_install_vm_functions() and
+ ast_install_vm_test_functions() to use the new function typedefs.
+ * Simplified the voicemail callback function pointer variable
+ declarations to use the new function typedefs. ........ Merged
+ revisions 402398 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2013-11-01 22:48 +0000 [r402397] Jonathan Rose <jrose@digium.com>
+
+ * apps/confbridge/conf_config_parser.c,
+ apps/confbridge/include/confbridge.h, apps/app_confbridge.c,
+ CHANGES: app_confbridge: Make the CONFBRIDGE function be able to
+ create dynamic menus Also adds the ability to clear all profile
+ items and makes behavior more consistent with documentation as
+ when choosing whether to use CONFBRIDGE datastore profiles or the
+ application arguments to the confbridge application. (closes
+ issue ASTERISK-22760) Reported by: Matt Jordan Review:
+ https://reviewboard.asterisk.org/r/2971/
+
+2013-11-01 21:51 +0000 [r402388] Scott Griepentrog <sgriepentrog@digium.com>
+
+ * main/manager_bridges.c, /, main/bridge.c,
+ include/asterisk/bridge.h: Manager: Add equivalent AMI actions
+ for the bridge CLI commands. Adds the following AMI events,
+ closely following their CLI counterparts: BridgeDestroy
+ BridgeKick BridgeTechnologyList BridgeTechnologySuspend
+ BridgeTechnologyUnsuspend BridgeDestroy kicks an entire bridge,
+ where BridgeKick kicks just one channel off the bridge. When
+ kicking a channel, specifying the bridge also (optional) insures
+ it is not removed from the wrong bridge. The BridgeTechnology
+ events allow viewing and changing suspension status, which
+ affects only subsequent not active bridging. (closes
+ ASTERISK-22356) Reported by: Richard Mudgett Review:
+ https://reviewboard.asterisk.org/r/2973/ ........ Merged
+ revisions 402387 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2013-11-01 16:31 +0000 [r402368] David M. Lee <dlee@digium.com>
+
+ * /, rest-api-templates/api.wiki.mustache: ari wiki docs: add notes
+ about allowMultiple parameters. This patch adds a note to any
+ parameter that has 'allowMultiple' set in the Swagger
+ documentation. (closes issue ASTERISK-22704) ........ Merged
+ revisions 402367 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2013-11-01 14:38 +0000 [r402359] Joshua Colp <jcolp@digium.com>
+
+ * include/asterisk/stasis_app.h, rest-api/api-docs/channels.json,
+ res/ari/resource_channels.c, res/res_ari_channels.c,
+ res/ari/resource_channels.h, res/res_stasis_playback.c, /,
+ res/stasis/control.c: res_ari_channels: Add ring operation, dtmf
+ operation, hangup reasons, and tweak early media. The ring
+ operation sends ringing to the specified channel it is invoked
+ on. The dtmf operation can be used to send DTMF digits to the
+ specified channel of a specific length with a wait time in
+ between. Finally hangup reasons allow you to specify why a
+ channel is being hung up (busy, congestion). Early media behavior
+ has also been tweaked slightly. When playing media to a channel
+ it will no longer automatically answer. If it has not been
+ answered a progress indication is sent instead. (closes issue
+ ASTERISK-22701) Reported by: Matt Jordan Review:
+ https://reviewboard.asterisk.org/r/2916/ ........ Merged
+ revisions 402358 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2013-11-01 12:40 +0000 [r402349] Kinsey Moore <kmoore@digium.com>
+
+ * res/res_rtp_asterisk.c, /, channels/chan_sip.c,
+ include/asterisk/rtp_engine.h: chan_sip: Fix RTCP port for SRFLX
+ ICE candidates This corrects one-way audio between Asterisk and
+ Chrome/jssip as a result of Asterisk inserting the incorrect RTCP
+ port into RTCP SRFLX ICE candidates. This also exposes an ICE
+ component enumeration to extract further details from candidates.
+ (closes issue ASTERISK-21383) Reported by: Shaun Clark Review:
+ https://reviewboard.asterisk.org/r/2967/ ........ Merged
+ revisions 402345 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 402348 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2013-11-01 12:33 +0000 [r402337-402347] Joshua Colp <jcolp@digium.com>
+
+ * /, include/asterisk/stasis_app.h, res/ari/resource_channels.c:
+ res_ari_channels: Fix a deadlock when originating multiple
+ channels close to eachother. If a Stasis application is specified
+ an implicit subscription is done on the originated channel. This
+ was previously done with the channel lock held which is dangerous
+ as the underlying code locks the container and iterates items.
+ This change releases the lock on the originated channel before
+ subscribing occurs. (closes issue ASTERISK-22768) Reported by:
+ Matt Jordan Review: https://reviewboard.asterisk.org/r/2979/
+ ........ Merged revisions 402346 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+ * /, res/stasis/control.c: res_stasis: Ensure the channel is always
+ departed from the bridge when it leaves. This change adds a
+ command to the command queue to explicitly depart the channel
+ from the bridge when it is told it has left. If the channel has
+ already been departed or has entered a different bridge this
+ command will become a no-op. (closes issue ASTERISK-22703)
+ Reported by: John Bigelow (closes issue ASTERISK-22634) Reported
+ by: Kevin Harwell Review:
+ https://reviewboard.asterisk.org/r/2965/ ........ Merged
+ revisions 402336 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2013-10-31 22:09 +0000 [r402328] Mark Michelson <mmichelson@digium.com>
+
+ * /, contrib/scripts/sip_to_pjsip/sip_to_pjsip.py,
+ contrib/scripts/sip_to_res_sip (removed),
+ contrib/scripts/sip_to_pjsip (added),
+ contrib/scripts/sip_to_pjsip/astconfigparser.py,
+ contrib/scripts/sip_to_pjsip/astdicts.py: Update the conversion
+ script from sip.conf to pjsip.conf (closes issue ASTERISK-22374)
+ Reported by Matt Jordan Review:
+ https://reviewboard.asterisk.org/r/2846 ........ Merged revisions
+ 402327 from http://svn.asterisk.org/svn/asterisk/branches/12
+
+2013-10-31 16:06 +0000 [r402286-402290] Matthew Jordan <mjordan@digium.com>
+
+ * main/loader.c, /: core/loader: Don't call dlclose in a while loop
+ For awhile now, we've noticed continuous integration builds
+ hanging on CentOS 6 64-bit build agents. After resolving a number
+ of problems with symbols, strange locks, and other shenanigans,
+ the problem has persisted. In all cases, gdb shows the Asterisk
+ process stuck in loader.c on one of the infinite while loops that
+ calls dlclose repeatedly until success. The documentation of
+ dlclose states that it returns 0 on success; any other value on
+ error. It does not state that repeatedly calling it will
+ eventually clear those errors. Most likely, the repeated calls to
+ dlclose was to force a close by exhausting the references on the
+ library; however, that will never succeed if: (a) There is some
+ fundamental error at work in the loaded library that precludes
+ unloading it (b) Some other loaded module is referencing a symbol
+ in the currently loaded module This results in Asterisk sitting
+ forever. Since we have matching pairs of dlopen/dlclose, this
+ patch opts to only call dlclose once, and log out as an ERROR if
+ dlclose fails to return success. If nothing else, this might help
+ to determine why on the CentOS 6 64-bit build agent things are
+ not closing successfully. Review:
+ https://reviewboard.asterisk.org/r/2970 ........ Merged revisions
+ 402287 from http://svn.asterisk.org/svn/asterisk/branches/1.8
+ ........ Merged revisions 402288 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 402289 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+ * main/media_index.c, /: medix_index: Display errors when library
+ calls fail Based on feedback from ipengineer in #asterisk, when
+ the media indexer cannot access a sound file on the system (or
+ otherwise fails) Asterisk displays a "Cannot frob file" error but
+ fails to tell you why. This is especially problematic as the
+ media_indexer failing will rpevent Asterisk from starting, as it
+ is in the core. We now display the errno error messages so folks
+ can figure out what they've done wrong. ........ Merged revisions
+ 402285 from http://svn.asterisk.org/svn/asterisk/branches/12
+
+2013-10-31 14:45 +0000 [r402277] David M. Lee <dlee@digium.com>
+
+ * /, res/stasis/app.c: stasis: add functions embarrassingly missing
+ from r400522 I neglected to implement two of the endpoint
+ subscription functions when I did the work. Normally, you'll only
+ hit that when you unsubscribe from a specific endpoint. ........
+ Merged revisions 402276 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2013-10-30 17:54 +0000 [r402266] Kevin Harwell <kharwell@digium.com>
+
+ * channels/chan_pjsip.c, /, res/res_pjsip_messaging.c:
+ pjsip_messaging: Added debug for in dialog messaging (issue
+ ASTERISK-22777) Reported by: Matt Jordan ........ Merged
+ revisions 402265 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2013-10-29 23:43 +0000 [r402227] Rusty Newton <rnewton@digium.com>
+
+ * /, sounds/Makefile: Updates for 1.4.25 core sounds and 1.4.14
+ extra sounds, plus new en_GB language set The new sound packages
+ relate to issues: ASTERISK-22544, ASTERISK-22411, ASTERISK-21413,
+ ASTERISK-20782 Modified sounds/Makefile for the new sound
+ versions and to account for the new en_GB language set. (issue
+ ASTERISK-22659) (closes issue ASTERISK-22659) (closes issue
+ ASTERISK-22411) (closes issue ASTERISK-22544) ........ Merged
+ revisions 402224 from
+ http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
+ revisions 402225 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 402226 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2013-10-29 12:57 +0000 [r402155] Matthew Jordan <mjordan@digium.com>
+
+ * main/xmldoc.c, main/channel.c, main/pbx.c, /, main/translate.c:
+ Remove some spammy debug messages; improve clarity of others
+ Debug messages aren't free. Even when the debug level is
+ sufficiently low such that the messages are never evaluated,
+ there is a cost to having to parse Asterisk logs that contain
+ debug messages that (a) fail to convey sufficient information or
+ (b) occur so frequently as to be next to meaningless. Based on
+ having to stare at lots of DEBUG messages, this patch makes the
+ following changes: * channel.c: When copying variables from a
+ parent channel to a child channel, specify the channels involved.
+ Do not log anything for a variable that is not inherited; the
+ fact that it doesn't have an _ or __ already signifies that it
+ won't be inherited. * pbx.c: Specify what function evaluation has
+ occurred that created the result. * translate.c: Bump up the
+ translator path messages to 10. I've never once had to use these
+ debug messages, and for each format that is registered (on
+ startup) and unregistered (on shutdown) the entire f^2 matrix is
+ logged out. For short tests in the Asterisk Test Suite, this
+ should make finding the actual test much easier. * xmldoc.c: The
+ debug message that 'blah' is not found in the tree is expected.
+ Often, description elements - which are not required - are not
+ provided. This debug message adds no additional value, as it is
+ not indicative of an error or helpful in debugging which element
+ did not contain a 'blah' element as a child. If an element is
+ supposed to contain a child element, then that XML tree should
+ have failed validation in the first place. Review:
+ https://reviewboard.asterisk.org/r/2966/ ........ Merged
+ revisions 402150 from
+ http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
+ revisions 402151 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 402154 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2013-10-29 12:51 +0000 [r402149-402153] Kinsey Moore <kmoore@digium.com>
+
+ * rest-api/api-docs/channels.json, res/ari/resource_channels.c,
+ res/res_ari_channels.c, res/ari/resource_channels.h, /: ARI:
+ Remove channels/{channelId}/dial This removes the
+ /ari/channels/{channelId}/dial URI since it is redundant, overly
+ complex, is likely to become more externally complex over time,
+ and is too high-level compared with other ARI operations. See the
+ following for further information:
+ http://lists.digium.com/pipermail/asterisk-app-dev/2013-October/000002.html
+ (closes issue ASTERISK-22784) Reported by: Matt Jordan Review:
+ https://reviewboard.asterisk.org/r/2968/ ........ Merged
+ revisions 402152 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+ * bridges/bridge_native_rtp.c, /: bridge_native_rtp: Ensure bridge
+ is torn down When a bridge transitions away from one tech to
+ another, the tech going away is provided a dummy bridge with no
+ channels in it to tear down. Currently this means that the
+ teardown code exits prematurely and does not tear anything down.
+ This change tears down RTP bridging for the channel provided in
+ the leave bridge tech callback. This also reverts the majority of
+ r400403 since it is now redundant. (closes issue ASTERISK-22628)
+ (closes issue ASTERISK-22676) Reported by: John Bigelow Reported
+ by: Kevin Harwell Tested by: John Bigelow Review:
+ https://reviewboard.asterisk.org/r/2905/ Patches:
+ native_rtp_fix.diff uploaded by Kinsey Moore (License 6273)
+ ........ Merged revisions 402148 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2013-10-29 11:15 +0000 [r402140] Joshua Colp <jcolp@digium.com>
+
+ * /, rest-api/api-docs/playback.json, res/res_ari_playback.c:
+ res_ari_playback: Add missing 404 error response for GET and
+ DELETE. (closes issue ASTERISK-22722) Reported by: Richard
+ Mudgett ........ Merged revisions 402139 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2013-10-28 22:10 +0000 [r402128-402130] David M. Lee <dlee@digium.com>
+
+ * /, doc: Ignore full docs ........ Merged revisions 402127 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+ * /: Put back several merge revisions that were lost in r402054
+
+ * /: Put back several merge revisions that were lost in r401962
+
+2013-10-28 15:08 +0000 [r402113-402117] Michael L. Young <elgueromexicano@gmail.com>
+
+ * /, UPGRADE-11.txt, UPGRADE-12.txt: Fix UPGRADE.txt Due To Merging
+ From Branch 11 When merging in the patch for ASTERISK-22728, the
+ UPGRADE.txt file was changed incorrectly. That change should have
+ gone into ASTERISK-11.txt. This commit is to fix that. Also,
+ another comment in the UPGRADE-11.txt was missing and this commit
+ adds that as well. ........ Merged revisions 402115 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+ * /, channels/chan_sip.c, UPGRADE-12.txt: chan_sip: Clarify
+ 'Forcerport' Setting Displayed When Running "sip show peers"
+ While looking at ASTERISK-22236, Walter Doekes pointed out that
+ when running "sip show peers", the setting being displayed can be
+ confusing. The display of "N" used to mean NAT (i.e. yes). The
+ NAT setting has gone through many different changes resulting in
+ the display of different characters to try and convey what the
+ current setting is for 'Forcerport' (A for Auto and Forcerport is
+ currently on, a for Auto but Forcerport is off, Y for yes, and N
+ for no). During the initial code review to try and clarify these
+ settings (especially since "N" no longer meant what it used to
+ mean in prior versions of Asterisk), Mark Michelson suggested
+ using the full space available to display the settings which
+ helped to make the settings very clear. That was a great
+ suggestion. Therefore, this patch does the following: * The
+ column for 'Forcerport' now will show: Auto (Yes), Auto (No),
+ Yes, or No. * A column for the 'Comedia' setting has been added.
+ It too will display the setting in a non-cryptic way: Auto (Yes),
+ Auto (No), Yes, or No. * UPGRADE.txt has been updated to document
+ this change. (closes issue ASTERISK-22728) Reported by: Walter
+ Doekes Tested by: Michael L. Young Patches:
+ asterisk-forcerport-display-clarification_v3.diff uploaded by
+ Michael L. Young (license 5026) Review:
+ https://reviewboard.asterisk.org/r/2941 ........ Merged revisions
+ 402111 from http://svn.asterisk.org/svn/asterisk/branches/11
+ ........ Merged revisions 402112 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2013-10-27 23:22 +0000 [r402073-402091] Matthew Jordan <mjordan@digium.com>
+
+ * main/cdr.c, /: Filter out internal channels from dial message
+ handling Surrogate channels would pop up from time to time in
+ dial message handling. This would cause a WARNING message to
+ appear, indicating that the Surrogate channel had no CDR. This
+ patch filters out those channels that have the internal
+ implementation flag set, such that the WARNING message isn't
+ displayed. ........ Merged revisions 402090 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+ * cdr/cdr_sqlite3_custom.c, /, cdr/cdr_syslog.c, cdr/cdr_sqlite.c,
+ cdr/cdr_adaptive_odbc.c, addons/cdr_mysql.c,
+ include/asterisk/cdr.h, cdr/cdr_pgsql.c, cdr/cdr_odbc.c,
+ cdr/cdr_radius.c, cdr/cdr_custom.c, cdr/cdr_manager.c,
+ cdr/cdr_tds.c, cdr/cdr_csv.c, main/cdr.c: Prevent CDR backends
+ from unregistering while billing data is in flight This patch
+ makes it so that CDR backends cannot be unregistered while active
+ CDR records exist. This helps to prevent billing data from being
+ lost during restarts and shutdowns. Review:
+ https://reviewboard.asterisk.org/r/2880/ ........ Merged
+ revisions 402081 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+ * /, contrib/ast-db-manage/config/env.py,
+ contrib/ast-db-manage/config/versions/4da0c5f79a9c_create_tables.py,
+ contrib/ast-db-manage/voicemail/env.py: Update Alembic database
+ scripts for external scripting and PostgreSQL, Oracle This patch
+ does the following: 1) The env scripts have been updated to be
+ tolerant of a NULL configuration file. This occurs when
+ configuration is provided by an external script, such that the
+ actual config.ini file is not used. 2) Enum types have all been
+ given names. This is needed for PostgreSQL script generation. 3)
+ The identifier meetme_confno_starttime_endtime is greater than 30
+ characters, and hence invalid for Oracle databases. This has been
+ truncated down to meetme_confno_start_end. ........ Merged
+ revisions 400383 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2013-10-26 12:56 +0000 [r402065] Joshua Colp <jcolp@digium.com>
+
+ * channels/chan_pjsip.c, include/asterisk/res_pjsip_session.h, /:
+ chan_pjsip: Fix a crash when direct media is enabled and an ACK
+ is received after the channel is hung up. (closes issue
+ ASTERISK-22731) Reported by: Kinsey Moore ........ Merged
+ revisions 402064 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2013-10-26 00:36 +0000 [r402056] Richard Mudgett <rmudgett@digium.com>
+
+ * res/res_stasis.c, /: res_stasis.c: Made use the ao2_container
+ callback templates. * Made res_stasis.c use the OBJ_SEARCH_XXX
+ defines. ........ Merged revisions 402055 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2013-10-26 00:27 +0000 [r402054] Scott Griepentrog <sgriepentrog@digium.com>
+
+ * main/rtp_engine.c, /, include/asterisk/rtp_engine.h: rtp_engine:
+ fix rtp payloads copy and improve argument names In function
+ ast_rtp_instance_early _bridge_make_compatible the use of
+ instance 0/1 as arguments doesn't clearly communicate a direction
+ that the copying of payloads from the source channel to the
+ destination channel will occur, making it more probable to have
+ the arguments to ast_rtp_codecs_payloads_copy() put in the
+ reverse order. This patch renames the arguments with _dst and
+ _src suffixes and corrects the copy direction. (closes issue
+ ASTERISK-21464) Reported by: Kevin Stewart Review:
+ https://reviewboard.asterisk.org/r/2894/ ........ Merged
+ revisions 402000 from
+ http://svn.asterisk.org/svn/asterisk/branches/1.8 Test shows
+ rtpmap:119 being copied per this change, but is not in sip invite
+ ........ Merged revisions 402042 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 402043 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2013-10-25 23:58 +0000 [r402004-402045] Richard Mudgett <rmudgett@digium.com>
+
+ * /, main/taskprocessor.c: taskprocessor: Made use pthread_equal()
+ to compare thread ids. * Removed another silly use of RAII_VAR().
+ RAII_VAR() and SCOPED_LOCK() are not silver bullets that allow
+ you to turn off your brain. ........ Merged revisions 402044 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+ * /, res/stasis/app.c: You'd think that new files would be free of
+ whitespace issues. But you would be wrong. ........ Merged
+ revisions 402003 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2013-10-25 22:01 +0000 [r401999-402002] Jonathan Rose <jrose@digium.com>
+
+ * res/ari/resource_bridges.c, res/res_ari_bridges.c, /,
+ rest-api/api-docs/channels.json, res/ari/resource_channels.c,
+ res/res_ari_channels.c, rest-api/api-docs/bridges.json: ARI:
+ channel/bridge recording errors when invalid format specified
+ Asterisk will now issue 422 if recording is requested against
+ channels or bridges with an unknown format (closes issue
+ ASTERISK-22626) Reported by: Joshua Colp Review:
+ https://reviewboard.asterisk.org/r/2939/ ........ Merged
+ revisions 402001 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+ * res/res_stasis_recording.c, rest-api/api-docs/channels.json,
+ res/ari/resource_channels.c, res/ari/ari_model_validators.c,
+ res/res_ari_channels.c, rest-api/api-docs/bridges.json,
+ rest-api/api-docs/recordings.json, res/ari/resource_bridges.c,
+ res/ari/ari_model_validators.h, res/res_ari_bridges.c,
+ rest-api/api-docs/events.json, /: ARI recordings: Issue HTTP
+ failures for recording requests with file conflicts If a file
+ already exists in the recordings directory with the same name as
+ what we would record, issue a 422 instead of relying on the
+ internal failure and issuing success. (closes issue
+ ASTERISK-22623) Reported by: Joshua Colp Review:
+ https://reviewboard.asterisk.org/r/2922/ ........ Merged
+ revisions 401973 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2013-10-25 20:51 +0000 [r401962] Scott Griepentrog <sgriepentrog@digium.com>
+
+ * include/asterisk/pbx.h, main/pbx.c, /: pbx.c: fix confused match
+ caller id that deleted exten still in hash This fixes a bug where
+ a zero length callerid match adjacent to a no match callerid
+ extension entry would be deleted together, which then resulted in
+ hashtable references to free'd memory. A third state of the
+ matchcid value has been added to indicate match to any extension
+ which allows enforcing comparison of matchcid on/off without
+ errors. (closes issue AST-1235) Reported by: Guenther Kelleter
+ Review: https://reviewboard.asterisk.org/r/2930/ ........ Merged
+ revisions 401959 from
+ http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
+ revisions 401960 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 401961 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2013-10-25 17:41 +0000 [r401898-401939] Jonathan Rose <jrose@digium.com>
+
+ * /, res/res_pjsip/pjsip_distributor.c,
+ res/res_pjsip_endpoint_identifier_user.c: PJSIP: Add log messages
+ when requests are received for non-existent endpoints (closes
+ issue ASTERISK-22552) Reported by: Rusty Newton Review:
+ https://reviewboard.asterisk.org/r/2934/ ........ Merged
+ revisions 401938 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+ * utils/clicompat.c, utils/refcounter.c, /: Put clicompat-r2.patch
+ back in We've figured out how to resolve the problems this was
+ causing in 12/trunk, so this can go back in now. (issue
+ ASTERISK-22467) Reported by: Corey Farrell Patches:
+ clicompat-r2.patch uploaded by coreyfarrell (license 5909)
+ ........ Merged revisions 401914 from
+ http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
+ revisions 401935 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 401936 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+ * /, utils/clicompat.c: revert clicompat-r2.patch from r401704
+ Patch caused the following build errors against testsuite
+ https://bamboo.asterisk.org/bamboo/browse/AST-ATRUNKBUILD4-244
+ (issue ASTERISK-22467) Reported by: Corey Farrell ........ Merged
+ revisions 401895 from
+ http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
+ revisions 401896 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 401897 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2013-10-25 16:09 +0000 [r401886] Kevin Harwell <kharwell@digium.com>
+
+ * /, channels/chan_sip.c: chan_sip: Allow a sip peer to accept both
+ AVP and AVPF calls Adapts the behaviour of avpf to only impact
+ the format of outgoing calls. For inbound calls, both AVP and
+ AVPF calls will be accepted regardless of the value of avpf in
+ the configuration. (closes issue ASTERISK-22005) Reported by:
+ Torrey Searle Patches: optional_avpf_trunk.patch uploaded by
+ tsearle (license 5334) ........ Merged revisions 401884 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 401885 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2013-10-25 13:49 +0000 [r401873] David M. Lee <dlee@digium.com>
+
+ * tests/test_json.c, /: test_json: Fix deprecation warnings After a
+ series of upgrades over recent weeks, I've discovered that
+ test_json.c won't compile in dev mode any more for me. One of
+ gcc-4.8.2, OS X Mavericks or Xcode 5 has decided to deprecate
+ tempnam. Which, in general, is a good thing. But for test code
+ that just needs a temporary file, it's just annoying. This patch
+ replaces usage of tempname with mkstemp, avoiding the deprecation
+ warning. It also removes the temporary files when the test is
+ complete, which apparently we weren't doing before (oops).
+ Review: https://reviewboard.asterisk.org/r/2957/ ........ Merged
+ revisions 401872 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2013-10-24 21:06 +0000 [r401836] Kevin Harwell <kharwell@digium.com>
+
+ * /, main/logger.c: Logging: Logging types ignored after specifying
+ a verbose level If one specified a verbose level within a logging
+ facility in logger.conf then any component after it was ignored.
+ Fixed so all values are correctly read. (closes issue
+ ASTERISK-22456) Reported by: Kevin Harwell ........ Merged
+ revisions 401833 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 401835 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2013-10-24 20:48 +0000 [r401834] David M. Lee <dlee@digium.com>
+
+ * rest-api-templates/models.wiki.mustache,
+ rest-api/api-docs/events.json, /,
+ rest-api-templates/swagger_model.py,
+ rest-api-templates/ari_model_validators.c.mustache: The Swagger
+ 1.2 specification for type extension ended up being slightly
+ different than my proposal. Instead of putting an 'extends' field
+ on the subtype, the base type has a 'subTypes' field, which is a
+ list of the subTypes. Given that its a messaging model and not an
+ object model, kinda makes sense. This patch changes the
+ events.json api-doc, and the python translators to take the new
+ format into account. Other changes that are in Swagger 1.2 were
+ not adopted, since the spec is still in flux, and could change
+ before it's finalized. A summary of changes to the Swagger-1.2
+ spec can be found at
+ https://github.com/wordnik/swagger-core/wiki/1.2-transition.
+ (closes issue ASTERISK-22440) Review:
+ https://reviewboard.asterisk.org/r/2909/ ........ Merged
+ revisions 401701 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2013-10-24 20:34 +0000 [r401622-401832] Jonathan Rose <jrose@digium.com>
+
+ * /, main/utils.c: utils: Fix memory leaks and missed
+ unregistration of CLI commands on shutdown Final set of patches
+ in a series of memory leak/cleanup patches by Corey Farrell
+ (closes issue ASTERISK-22467) Reported by: Corey Farrell Patches:
+ main-utils-1.8.patch uploaded by coreyfarrell (license 5909)
+ main-utils-11.patch uploaded by coreyfarrell (license 5909)
+ main-utils-12up.patch uploaded by coreyfarrell (license 5909)
+ ........ Merged revisions 401829 from
+ http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
+ revisions 401830 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 401831 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+ * /, tests/test_linkedlists.c: test_linkedlists: Fix memory leak
+ (issue ASTERISK-22467) Reported by: Corey Farrell Patches:
+ test_linkedlists-1.8.patch uploaded by coreyfarrell (license
+ 5909) test_linkedlists-11up.patch uploaded by coreyfarrell
+ (license 5909) ........ Merged revisions 401790 from
+ http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
+ revisions 401791 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 401792 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+ * /, main/jitterbuf.c: jitterbuf: Fix memory leak on jitter buffer
+ reset (issue ASTERISK-22467) Reported by: Corey Farrell Patches:
+ jitterbuf-jb_reset-leak-1.8.patch
+ jitterbuf-jb_reset-leak-11up.patch ........ Merged revisions
+ 401786 from http://svn.asterisk.org/svn/asterisk/branches/1.8
+ ........ Merged revisions 401787 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 401788 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+ * main/astobj2.c, /: astobj2: Unregister debug CLI commands at exit
+ (issue ASTERISK-22467) Reported by: Corey Farrell Patches:
+ astobj2-clean-debug-cli-1.8-11.patch uploaded by coreyfarrell
+ (license 5909) astobj2-clean-debug-cli-12up.patch uploaded by
+ coreyfarrell (license 5909) ........ Merged revisions 401781 from
+ http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
+ revisions 401783 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 401784 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+ * apps/app_voicemail.c, /: app_voicemail: Memory Leaks against
+ tests (issue ASTERISK-22467) Reported by: Corey Farrell Patches:
+ app_voicemail-1.8.patch uploaded by coreyfarrell (license 5909)
+ app_voicemail-11up.patch uploaded by coreyfarrell (license 5909)
+ ........ Merged revisions 401743 from
+ http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
+ revisions 401744 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 401745 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+ * main/app.c, main/asterisk.c, utils/clicompat.c,
+ channels/chan_dahdi.c, codecs/ilbc/doCPLC.c, main/data.c, /:
+ memory leaks: Memory leak cleanup patch by Corey Farrell (second
+ set) Also covers ast_app_parse_timelen-fail-zero-length.patch,
+ but the patch was replaced with one of my own. (issue
+ ASTERISK-22467) Reported by: Corey Farrell Patches:
+ chan_dahdi-cleanup_push.patch uploaded by coreyfarrell (license
+ 5909) clicompat-r2.patch uploaded by coreyfarrell (license 5909)
+ codecs-ilbc-doCPLC.patch uploaded by coreyfarrell (license 5909)
+ data-cleanup-test-registration.patch uploaded by coreyfarrell
+ (license 5909) main-asterisk-kill-listener.patch uploaded by
+ coreyfarrell (license 5909) ........ Merged revisions 401704 from
+ http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
+ revisions 401705 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 401706 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+ * /, tests/test_dlinklists.c, funcs/func_math.c,
+ channels/sip/reqresp_parser.c, main/test.c,
+ main/editline/readline.c: memory leaks: Memory leak cleanup patch
+ by Corey Farrell (first set) (issue ASTERSIK-22467) Reported by:
+ Corey Farrell Patches:
+ chan_sip-parse_contact_header_test-free-contacts.patch uploaded
+ by coreyfarrell (license 5909) cli-filename-completion-leak.patch
+ uploaded by coreyfarrell (license 5909) func_math.patch uploaded
+ by corefarrell (license 5909) main-test-cleanup.patch uploaded by
+ coreyfarrell (license 5909) test_dlinklists.patch uploaded by
+ coreyfarrell (license 5909) ........ Merged revisions 401660 from
+ http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
+ revisions 401661 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 401662 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+ * /, main/translate.c, res/res_rtp_asterisk.c: res_rtp_asterisk:
+ Address jittery DTMF events in RTP streams (closes issue
+ ASTERISK-21170) Reported by: NITESH BANSAL Patches:
+ dtmf-timestamp.patch uploaded by NITESH BANSAL (license 6418)
+ Review: https://reviewboard.asterisk.org/r/2938/ ........ Merged
+ revisions 401619 from
+ http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
+ revisions 401620 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 401621 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2013-10-23 16:52 +0000 [r401582] Richard Mudgett <rmudgett@digium.com>
+
+ * /, cdr/cdr_adaptive_odbc.c: cdr_adaptive_odbc: Also apply a
+ filter when the CDR value is empty. Extra CDR records are written
+ if a filtered CDR value is empty because the filter is not
+ checked. (closes issue ASTERISK-22272) Reported by: Jordi Llull
+ Chavarria ........ Merged revisions 401577 from
+ http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
+ revisions 401579 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 401581 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2013-10-23 16:48 +0000 [r401580] John Bigelow <jbigelow@digium.com>
+
+ * /, main/bridge_channel.c: Add a test suite event to indicate when
+ the atxfer 3-way feature is detected This adds a test suite event
+ that indicates to tests when the attended transfer three-way call
+ feature is detected. Review:
+ https://reviewboard.asterisk.org/r/2912/ ........ Merged
+ revisions 401578 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2013-10-23 15:23 +0000 [r401540] Kinsey Moore <kmoore@digium.com>
+
+ * channels/chan_mgcp.c, /: chan_mgcp: Properly handle malformed
+ media lines This corrects a situation in which a media line was
+ not parsed properly and resulted in a crash. (closes issue
+ ASTERISK-21190) Reported by: adomjan Patches:
+ chan_mgcp.c-sscnaf_fix uploaded by adomjan (License 5448)
+ ........ Merged revisions 401537 from
+ http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
+ revisions 401538 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 401539 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2013-10-23 11:16 +0000 [r401500] Joshua Colp <jcolp@digium.com>
+
+ * /, channels/chan_sip.c: chan_sip: Fix an issue where an
+ incompatible audio format may be added to SDP. If preferred
+ codecs included any non-audio format the code would mistakenly
+ add the audio format, even if it was not a joint capability with
+ the remote side. (closes issue ASTERISK-21131) Reported by:
+ nbougues Patches: patch_unsupported_codec_1.8.patch uploaded by
+ nbougues (license 6470) ........ Merged revisions 401497 from
+ http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
+ revisions 401498 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 401499 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2013-10-23 02:36 +0000 [r401489] Michael L. Young <elgueromexicano@gmail.com>
+
+ * channels/chan_iax2.c, configs/iax.conf.sample, /: chan_iax2: Fix
+ Binding To Multiple Addresses Again When reworking chan_iax2 for
+ IPv6, the ability to bind to multiple addresses was removed by
+ mistake. This patch restores this functionality and adds notes
+ about IPv6 addresses in the sample config. (closes issue
+ ASTERISK-22741) Reported by: Joshua Colp Tested by: Michael L.
+ Young Patches: asterisk-22741-fix-binding-multiple-addr.diff
+ uploaded by Michael L. Young (license 5026) Review:
+ https://reviewboard.asterisk.org/r/2945/ ........ Merged
+ revisions 401488 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2013-10-22 23:10 +0000 [r401450] Matthew Jordan <mjordan@digium.com>
+
+ * /, res/res_rtp_asterisk.c: res_rtp_asterisk: Fix crash when RTCP
+ is not available during SSRC change In r400089, a patch was put
+ in to correct erroneous RTCP statistic resets. Unfortunately,
+ ast_rtp_read can be called on an RTP instance that does not have
+ RTCP information. This patch prevents that crash by only
+ resetting the statistics if we do actually have an RTCP instance.
+ (issue AST-1174) (closes issue ASTERISK-22667) Reported by: John
+ Bigelow ........ Merged revisions 401445 from
+ http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
+ revisions 401446 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 401447 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2013-10-22 19:04 +0000 [r401421-401435] Richard Mudgett <rmudgett@digium.com>
+
+ * apps/app_queue.c, /: app_queue: Fix CLI "queue remove member"
+ queue_log entry. The queue_log entry resulting from CLI "queue
+ remove member" when log_membername_as_agent is enabled is wrong.
+ It always uses the interface name instead of the member name in
+ the queue_log entry. * Get the queue member before removing it
+ from the queue so the member name is available for the queue_log
+ entry. (closes issue ASTERISK-21826) Reported by: Oscar Esteve
+ Patches: fix_membername.diff (license #6505) patch uploaded by
+ Oscar Esteve (modified to fix potential ref leak) ........ Merged
+ revisions 401433 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 401434 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+ * main/bridge_channel.c,
+ include/asterisk/bridge_channel_internal.h, /, main/bridge.c:
+ Bridging: Fix orphaned bridge if neither of the joining channels
+ can join. The original issue noted that the bridge is orphaned
+ when res_parking.so is not loaded and a call uses the dial kK
+ flags. A similar issue happens when only one of the park flags is
+ used. In this case you have the bridge with one or the other
+ channel left in it. The channel and bridge will stay around until
+ the channel hangs up. * Fixed the initial bridge channel push
+ failure to act as if the channel were kicked out of the bridge.
+ The bridge then decides if it needs to be dissolved. (closes
+ issue ASTERISK-22629) Reported by: Kevin Harwell Review:
+ https://reviewboard.asterisk.org/r/2928/ ........ Merged
+ revisions 401424 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+ * res/parking/parking_bridge_features.c,
+ res/parking/parking_bridge.c, /: res_parking: Give parking
+ timeout comebacktoorigin channel DTMF features. Parking timeouts
+ did not set any DTMF features for the channel calling the parker
+ back. * Added code to set the parkedcalltransfers,
+ parkedcallreparking, parkedcallhangup, and parkedcallrecording
+ options appropriately for the channels when a parking timeout
+ occurs. The recall channel DTMF options are set using the
+ BRIDGE_FEATURES channel variable to allow the other timeout
+ options to have the DTMF features available. (closes issue
+ ASTERISK-22630) Reported by: Kevin Harwell Review:
+ https://reviewboard.asterisk.org/r/2942/ ........ Merged
+ revisions 401422 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+ * /, res/res_parking.c: res_parking: Update XML documention for
+ DTMF features after parking timeout. * Updated the XML
+ documentation to indicate that the parkedcalltransfers,
+ parkedcallreparking, parkedcallhangup, and parkedcallrecording
+ configuration options also apply to parking timeouts. (issue
+ ASTERISK-22630) Reported by: Kevin Harwell Review:
+ https://reviewboard.asterisk.org/r/2942/ ........ Merged
+ revisions 401420 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2013-10-22 15:17 +0000 [r401411] Joshua Colp <jcolp@digium.com>
+
+ * apps/app_dial.c: Add an 'R' option to Dial which sends ringing
+ until early media has been received. (closes issue
+ ASTERISK-10487) Reported by: Gaspar Zoltan Patches: 10487.patch
+ uploaded by n8ideas (license 6075)
+
+2013-10-21 21:06 +0000 [r401365] Mark Michelson <mmichelson@digium.com>
+
+ * /, main/bridge_channel.c: Remove a noisy debug message from
+ bridging code. This particular debug message, during a stress
+ test, was logged so often that it appeared that there may be a
+ memory leak in the logger code. In actuality, there was no memory
+ leak, but the logger thread was having a hard time keeping up
+ with the demands of the rest of the system. Since this debug
+ message has no value at all, the best way to fix the problem was
+ to just remove the message. (closes issue AST-1225) reported by
+ John Bigelow Patches: spammy_log.diff uploaded by Mark Michelson
+ (License #5049) ........ Merged revisions 401364 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2013-10-21 19:50 +0000 [r401328] Kevin Harwell <kharwell@digium.com>
+
+ * /, main/editline/term.c: Segfault in LIBEDIT_INTERNAL after
+ tgetstr(), when libncurses5-dev isn't installed Include the
+ appropriate declarations when not using termcap, but term+curses
+ and [n]curses do not exist. (closes issue ASTERISK-22351)
+ Reported by: A. Iglesias Patches:
+ issueA22351_libedit_internal_without_ncurses_dev.patch uploaded
+ by wdoekes (license 5674) ........ Merged revisions 401325 from
+ http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
+ revisions 401326 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 401327 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2013-10-21 18:59 +0000 [r401316-401317] David M. Lee <dlee@digium.com>
+
+ * rest-api/api-docs/channels.json, /: Fixing r401281; the model
+ name is Channel, with a capital C ........ Merged revisions
+ 401315 from http://svn.asterisk.org/svn/asterisk/branches/12
+
+ * res/res_ari.c, /: Fixed malformed Access-Control-Allow-Methods
+ header. Was causing Safari to barf on POST and DELETE. ........
+ Merged revisions 401106 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2013-10-19 21:57 +0000 [r401292] Kinsey Moore <kmoore@digium.com>
+
+ * /, channels/chan_iax2.c: Fix IAX2 incoming call address lookups
+ This fixes address lookup for incoming calls without a peer
+ definition. The address family was unset instead of being set to
+ AST_AF_UNSPEC which was causing lookup failures on "127.0.0.1".
+ This is one of the causes of the current failure of the app_page
+ integration test. Review:
+ https://reviewboard.asterisk.org/r/2933/ ........ Merged
+ revisions 401291 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2013-10-19 14:45 +0000 [r401282] Joshua Colp <jcolp@digium.com>
+
+ * res/ari/resource_channels.h, main/pbx.c, /,
+ rest-api/api-docs/channels.json, res/ari/resource_channels.c,
+ res/res_ari_channels.c: Return a channel snapshot when
+ originating using ARI, and subscribe the Stasis application to
+ it. This change allows a user of ARI to know what channel it has
+ originated and also follow any progress. If a Stasis application
+ is provided it will be automatically subscribed to the originated
+ channel immediately. (closes issue ASTERISK-22485) Reported by:
+ David Lee Review: https://reviewboard.asterisk.org/r/2910/
+ ........ Merged revisions 401281 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2013-10-18 22:52 +0000 [r401272] Richard Mudgett <rmudgett@digium.com>
+
+ * /, res/parking/parking_controller.c: res_parking: Remove setting
+ useless flag. ........ Merged revisions 401271 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2013-10-18 21:51 +0000 [r401263] David M. Lee <dlee@digium.com>
+
+ * contrib/scripts/get_swagger_ui.sh (added), Makefile, /,
+ static-http: This is just a quick script for dumping swagger-ui
+ into static-http, so that it can be served by the Asterisk web
+ server. I had to change the Makefile in order to recursively
+ install content from the static-http directory, hence the code
+ review instead of just putting it in. Review:
+ https://reviewboard.asterisk.org/r/2924/ ........ Merged
+ revisions 401261 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2013-10-18 18:44 +0000 [r401249] Mark Michelson <mmichelson@digium.com>
+
+ * main/sorcery.c, main/cli.c, main/manager.c, /, main/bridge.c,
+ main/bucket.c: Resolve some memory leaks due to incorrect for
+ loop / ao2 ref usage. A common idiom in Asterisk is to due
+ something like: for (ao2_obj = list_beginning; ao2_obj =
+ next_item; ao2_ref(ao2_obj, -1)) { ...do stuff... } This is nice
+ because it automatically takes care of the object references for
+ you. However, there is a pitfall here. If a break statement is in
+ the for loop, then the current reference is not cleaned up. In
+ some cases, this is on purpose, but in others there is a leak.
+ This commit fixes the leak cases. ........ Merged revisions
+ 401248 from http://svn.asterisk.org/svn/asterisk/branches/12
+
+2013-10-18 16:59 +0000 [r401233-401240] Richard Mudgett <rmudgett@digium.com>
+
+ * /, res/res_fax.c, include/asterisk/channel.h, apps/app_dial.c,
+ main/channel.c: Add channel lock protection around translation
+ path setup. Most callers of ast_channel_make_compatible() happen
+ before the channels enter a two party bridge. With the new
+ bridging framework, two party bridging technologies may also call
+ ast_channel_make_compatible() when there is more than one thread
+ involved with the two channels. * Added channel lock protection
+ in set_format() and ast_channel_make_compatible_helper() when
+ dealing with the channel's native formats while setting up a
+ translation path. * Fixed best_src_fmt and best_dst_fmt usage
+ consistency in ast_channel_make_compatible_helper(). The call to
+ ast_translator_best_choice() got them backwards. * Updated some
+ callers of ast_channel_make_compatible() and the function
+ documentation. There is actually a difference between the two
+ channels passed in. * Fixed the deadlock potential in res_fax.c
+ dealing with ast_channel_make_compatible(). The deadlock
+ potential was already there anyway because res_fax called
+ ast_channel_make_compatible() with chan locked. (closes issue
+ ASTERISK-22542) Reported by: Matt Jordan Review:
+ https://reviewboard.asterisk.org/r/2915/ ........ Merged
+ revisions 401239 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+ * /, include/asterisk/bridge.h: Tweak ast_bridge_depart() doxygen.
+ ........ Merged revisions 401232 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2013-10-18 16:06 +0000 [r401216-401224] Mark Michelson <mmichelson@digium.com>
+
+ * include/asterisk/bridge.h, /: Remove the bit about requiring
+ ast_bridge_depart() to be called before ast_bridge_destroy().
+ ........ Merged revisions 401223 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+ * include/asterisk/bridge.h, /: Clarify in ast_bridge_destroy()
+ about how departable channels must be handled. ........ Merged
+ revisions 401212 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2013-10-18 15:14 +0000 [r401184] Michael L. Young <elgueromexicano@gmail.com>
+
+ * /, channels/chan_sip.c: Remove Port Restriction When Checking For
+ NAT When trying to determine if a peer is behind NAT, we should
+ not be using the ports when comparing addresses. This patch
+ removes the port from being checked and just useds the addresses
+ now. (closes issue ASTERISK-22729) Reported by: Michael L. Young
+ Tested by: Michael L. Young Patches:
+ asterisk-remove-using-port-for-nat-check.diff uploaded by Michael
+ L. Young (license 5026) Review:
+ https://reviewboard.asterisk.org/r/2927/ ........ Merged
+ revisions 401182 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 401183 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2013-10-18 14:50 +0000 [r401181] Walter Doekes <walter+asterisk@wjd.nu>
+
+ * main/channel.c, /: Properly copy/remove the device state cache
+ flag over a masquerade. In r378303 the
+ AST_FLAG_DISABLE_DEVSTATE_CACHE flag was added that tells the
+ devstate system to not cache states for non-real devices.
+ However, when optimizing away channels (ast_do_masquerade), that
+ flag wasn't copied. In my case, using Local devices as queue
+ members created a situation where the endpoint was considered in
+ use, but the state change of the device being available again was
+ ignored (not cached). The endpoint channel was optimized into the
+ (previously) Local channel, but kept the do-not-cache flag. The
+ end result being that the queue member apparently stayed in use
+ forever. (closes issue ASTERISK-22718) Reported by: Walter Doekes
+ Review: https://reviewboard.asterisk.org/r/2925/ ........ Merged
+ revisions 401178 from
+ http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
+ revisions 401179 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 401180 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2013-10-17 20:39 +0000 [r401169] Michael L. Young <elgueromexicano@gmail.com>
+
+ * /, channels/chan_sip.c: Fix Setting A chan_sip Dialog's
+ SIP_NAT_FORCE_RPORT Flag A condition was added in a commit to fix
+ ASTERISK-21374, that, if the SIP_PAGE3_NAT_AUTO_RPORT flag was
+ set, to then copy a peer's SIP_NAT_FORCE_RPORT flag to the
+ dialog. This condition should not have been there since it
+ assumed that if Asterisk is in an environment where NAT is
+ involved, that the auto_* nat settings or force_rport setting
+ would be on in the global settings. If the nat setting in the
+ global setting is set to 'nat=no' and then turned on for peers
+ (which is not quite the recommended way, although it is allowed)
+ this flag is never copied to the dialog resulting in problems
+ like, REGISTER replies going to the wrong port. This patch
+ removes this conditional check and will now always use the peer's
+ flag which by this point in the code the checks on whether the
+ peer is behind NAT or not (if using auto_force_rport) have
+ already been run. (closes issue ASTERISK-22236) Reported by:
+ Filip Frank Tested by: Michael L. Young Patches:
+ asterisk-2236-always-set-rport.diff uploaded by Michael L. Young
+ (license 5026) Review: https://reviewboard.asterisk.org/r/2919/
+ ........ Merged revisions 401167 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 401168 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2013-10-17 18:25 +0000 [r401159] Jonathan Rose <jrose@digium.com>
+
+ * res/res_parking.c, /: res_parking: Fix bug where reloading
+ immediately wipes new parkpos extensions (closes issue
+ ASTERISK-22631) Reported by: Kevin Harwell ........ Merged
+ revisions 401158 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2013-10-17 15:41 +0000 [r401122] Kinsey Moore <kmoore@digium.com>
+
+ * /, res/res_xmpp.c, res/res_jabber.c: Reduce log level of a
+ non-pubsub error message Drop an error log message to debug level
+ 1 since distributed device state functions correctly when
+ receiving this message and it spams the logs. (closes issue
+ ASTERISK-22410) Reported by: abelbeck Patches:
+ asterisk-1.8-res_jabber-log-nonpubsub-error-to-debug.patch
+ uploaded by abelbeck (License 5903)
+ asterisk-11-res_xmpp-log-nonpubsub-error-to-debug.patch uploaded
+ by abelbeck (License 5903) ........ Merged revisions 401119 from
+ http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
+ revisions 401120 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 401121 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2013-10-16 21:22 +0000 [r401108] Richard Mudgett <rmudgett@digium.com>
+
+ * /, res/ari/resource_playback.c: ARI: Fix crash when POST
+ /playback/{id}/control does not have an operation parameter.
+ (closes issue ASTERISK-22680) Reported by: John Bigelow ........
+ Merged revisions 401107 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2013-10-16 17:01 +0000 [r401097] David M. Lee <dlee@digium.com>
+
+ * rest-api/resources.json, /: Oops. Leftover /stasis reference
+ ........ Merged revisions 401096 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2013-10-16 14:02 +0000 [r401088] Kinsey Moore <kmoore@digium.com>
+
+ * rest-api/api-docs/bridges.json, res/ari/resource_channels.h, /,
+ res/ari/resource_bridges.h, rest-api/api-docs/channels.json:
+ Clarify documentation for channel and bridge list This makes it
+ clear that the ARI API calls for listing channels and bridges
+ will list all channels or bridges in the system and not just
+ those that are in or are controlled by a Stasis application.
+ (closes issue ASTERISK-22635) Reported by: Kevin Harwell ........
+ Merged revisions 401087 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2013-10-16 12:19 +0000 [r401079] Walter Doekes <walter+asterisk@wjd.nu>
+
+ * /, apps/app_queue.c: Don't check all realtime queues when doing
+ "queue show some_queue". When using realtime queues, queues have
+ to be fetched from the database every now and then to see if any
+ info has been changed or to see if the queue has been removed.
+ When fetching info for an individual queue, the pruning of other
+ queues is unnecessarily costly. Review:
+ https://reviewboard.asterisk.org/r/2907/ ........ Merged
+ revisions 401049 from
+ http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
+ revisions 401076 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 401077 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2013-10-16 00:12 +0000 [r401041] Paul Belanger <paul.belanger@polybeacon.com>
+
+ * /, rest-api/api-docs/bridges.json, res/res_ari_bridges.c: Use
+ POST / DELETE to toggle ARI bridge moh Review:
+ https://reviewboard.asterisk.org/r/2911/ ........ Merged
+ revisions 401040 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2013-10-15 23:44 +0000 [r401020-401039] Richard Mudgett <rmudgett@digium.com>
+
+ * main/translate.c: translate.c: Some minor code tweaks. *
+ Consistently compare format2index() return value so matrix_get()
+ cannot get passed negative values. * Optimize
+ ast_translator_best_choice() to defer initializing things until
+ needed. Also cached the matrix_get() return value rather than
+ repeatedly calling it.
+
+ * /, channels/dahdi/bridge_native_dahdi.c: bridge_native_dahdi:
+ Return channel join failure if could not make the channels
+ compatible. ........ Merged revisions 401030 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+ * /, channels/chan_iax2.c: chan_iax2: Fix channel left locked in
+ off nominal code path. ........ Merged revisions 401016 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 401017 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2013-10-15 20:03 +0000 [r401019] Kinsey Moore <kmoore@digium.com>
+
+ * rest-api/api-docs/bridges.json, res/res_ari_bridges.c, /: Ensure
+ bridge record error responses validate This adds the list of
+ expected errors to the /bridges/{bridgeId}/record ARI
+ documentation so that outbound 4xx errors validate properly.
+ Previously, this would result in a response validation failure.
+ (closes issue ASTERISK-22627) Reported by: Joshua Colp ........
+ Merged revisions 401018 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2013-10-15 15:30 +0000 [r401007] Paul Belanger <paul.belanger@polybeacon.com>
+
+ * rest-api/api-docs/channels.json, res/res_ari_channels.c, /: Use
+ POST / DELETE to toggle hold / moh for ARI channels This change
+ updates how we handle toggle events, rather then create two
+ different function names, we'll just use POST / DELETE from HTTP
+ to handle it. Review: https://reviewboard.asterisk.org/r/2906/
+ ........ Merged revisions 400999 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2013-10-15 15:26 +0000 [r400998] Mark Michelson <mmichelson@digium.com>
+
+ * /, channels/chan_sip.c: Prevent chan_sip from sending duplicate
+ BYEs. When a 200 OK for an initial INVITE is received, we were
+ doing the right thing by ACKing and sending an immediate BYE.
+ However, we also were doing the wrong thing and queuing an answer
+ frame, thus causing the call to be answered. This would cause the
+ call to be hung up by the channel thread, thus resulting in a
+ second BYE being sent out. In this fix, I also have set the
+ hangupcause to be correct since the initial BYE being sent by
+ Asterisk had an unknown hangup cause. I have changed to using
+ "Bearer capabilty not available" since the call was hung up due
+ to an SDP offer/answer error. (closes issue ASTERISK-22621)
+ reported by Kinsey Moore ........ Merged revisions 400970 from
+ http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
+ revisions 400971 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 400984 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2013-10-15 13:44 +0000 [r400959] David M. Lee <dlee@digium.com>
+
+ * /, rest-api-templates/asterisk_processor.py: My doc correction in
+ r400842 had a silly bug. Because I added a wiki_description to
+ models and not their properties, the rendered wiki page had the
+ model description instead of the property descriptions, which
+ looks very silly indeed. (closes issue ASTERISK-22705) ........
+ Merged revisions 400958 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2013-10-14 22:52 +0000 [r400913-400950] Richard Mudgett <rmudgett@digium.com>
+
+ * channels/chan_dahdi.c, configs/chan_dahdi.conf.sample,
+ channels/chan_dahdi.h: chan_dahdi: Add config support for hwgain
+ settings. * Add hwtxgain and hwrxgain config options to
+ chan_dahdi.conf with documentation in chan_dahdi.conf.sample.
+ (closes issue ASTERISK-22429) Reported by: Jaco Kroon Patches:
+ jira_asterisk_22429_hwgain_trunk.patch (license #5621) patch
+ uploaded by rmudgett
+
+ * channels/chan_dahdi.c, /, channels/chan_dahdi.h: chan_dahdi:
+ Reflect the set software gain in the CLI "dahdi show channel"
+ output. * Remember the swgain setting from CLI "dahdi set swgain"
+ command so the CLI "dahdi show channel" output will reflect the
+ current setting. * Updated CLI "dahdi set hwgain" and "dahdi set
+ swgain" documentation. (issue ASTERISK-22429) Reported by: Jaco
+ Kroon Patches: jira_asterisk_22429_v1.8_v2.patch (license #5621)
+ patch uploaded by rmudgett ........ Merged revisions 400907 from
+ http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
+ revisions 400909 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 400911 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2013-10-14 22:03 +0000 [r400912] Mark Michelson <mmichelson@digium.com>
+
+ * /, channels/chan_sip.c: chan_sip: Do not increment the SDP
+ version between 183 and 200 responses. Bumping the SDP version
+ number can cause interoperability problems since receivers of the
+ responses will expect that a 200 SDP will be identical to a
+ previous 183 SDP. (closes issue ASTERISK-21204) reported by
+ NITESH BANSAL Patches:
+ dont-increment-session-version-in-2xx-after-183.patch uploaded by
+ NITESH BANSAL (License #6418) ........ Merged revisions 400906
+ from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........
+ Merged revisions 400908 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 400910 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2013-10-14 15:54 +0000 [r400891] Kevin Harwell <kharwell@digium.com>
+
+ * /, res/res_pjsip_outbound_registration.c: pjsip outbound
+ registration: Log message says received a 408 when we didn't If
+ the server didn't exist that we are trying to register to the log
+ message would say that a 408 was received from that server when
+ in reality one wasn't. Added log messages stating no response was
+ received if the response does not exist. (closes issue
+ ASTERISK-22554) Reported by: Rusty Newton Review:
+ https://reviewboard.asterisk.org/r/2893/ ........ Merged
+ revisions 400890 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2013-10-14 15:01 +0000 [r400882] Matthew Jordan <mjordan@digium.com>
+
+ * res/res_pjsip_mwi.c, /: Remove duplicate module info block The
+ module info block was repeated twice. Once is sufficient.
+ ........ Merged revisions 400881 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2013-10-13 15:42 +0000 [r400873] Joshua Colp <jcolp@digium.com>
+
+ * res/res_pjsip_session.c, /: Fix a race condition in
+ res_pjsip_session with rapidly terminating the session. The
+ INVITE session state callback wrongly assumes that a session will
+ always exist, but when rapidly terminating the session this
+ assumption goes out the window. As all handler code for the
+ INVITE session state callback requires the session it will now
+ just exit immediately if no session exists. (closes issue
+ ASTERISK-22668) Reported by: John Bigelow ........ Merged
+ revisions 400872 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2013-10-12 16:53 +0000 [r400864] Kinsey Moore <kmoore@digium.com>
+
+ * /, res/res_pjsip_outbound_authenticator_digest.c: Fix realm
+ comparison for outbound auth When generating the list of
+ authentication credentials to pass to PJSIP, Asterisk was using
+ the raw pointer of a pj_str_t which is not always
+ NULL-terminated. This sometimes resulted in incorrect text for
+ the realm and a failure to match the realm for authentication
+ purposes which was causing the outbound nominal auth pjsip basic
+ call test to bounce. This now uses the pj_str_t that contains the
+ realm instead of generating a new one. Thanks to John Bigelow for
+ helping to narrow this down. ........ Merged revisions 400863
+ from http://svn.asterisk.org/svn/asterisk/branches/12
+
+2013-10-11 17:05 +0000 [r400855] Richard Mudgett <rmudgett@digium.com>
+
+ * include/asterisk/channel.h, /: channel.h: whitespace changes.
+ ........ Merged revisions 400854 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2013-10-11 16:36 +0000 [r400851-400852] David M. Lee <dlee@digium.com>
+
+ * /, res/ari/resource_bridges.h, rest-api/api-docs/playback.json,
+ rest-api-templates/api.wiki.mustache, res/res_ari_playback.c,
+ rest-api/api-docs/channels.json, res/ari/resource_playback.h,
+ rest-api/api-docs/bridges.json,
+ rest-api-templates/asterisk_processor.py,
+ res/ari/resource_channels.h,
+ rest-api-templates/models.wiki.mustache: Multiple revisions
+ 400508,400842-400843,400848 ........ r400508 | dlee | 2013-10-03
+ 23:54:51 -0500 (Thu, 03 Oct 2013) | 1 line Corrected response
+ class for stopPlayback ........ r400842 | dlee | 2013-10-10
+ 14:23:24 -0500 (Thu, 10 Oct 2013) | 1 line Correct some ARI wiki
+ rendering errors ........ r400843 | dlee | 2013-10-10 14:26:19
+ -0500 (Thu, 10 Oct 2013) | 1 line Updated /play resource docs.
+ The playback of http: resources isn't implemented... yet ........
+ r400848 | dlee | 2013-10-11 11:18:46 -0500 (Fri, 11 Oct 2013) | 5
+ lines Fix a stupid copy/paste error in ARI docs. Patches:
+ ari-doc-patch.txt uploaded by jbigelow (license 5091) ........
+ Merged revisions 400508,400842-400843,400848 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+ * /: Fixed merge tracking for r400360, which was somehow lost
+
+2013-10-11 16:28 +0000 [r400850] Richard Mudgett <rmudgett@digium.com>
+
+ * bridges/bridge_softmix.c, /: Softmix: Fix crash when switching
+ from softmix to another bridge technology. The crash is caused by
+ a race condition when switching between native RTP and softmix
+ bridging technologies. In this situation, the bridging technology
+ is switched from native RTP to softmix, and then back to native
+ RTP fast enough that the softmix private data gets destroyed
+ before the softmix mixing thread gets started. Thanks to Kinsey
+ Moore for the crash analysis. * Fix race condition when starting
+ the softmix mixing thread and switching to another bridge
+ technology. (closes issue ASTERISK-22678) Reported by: John
+ Bigelow Patches: jira_asterisk_22678_v12.patch (license #5621)
+ patch uploaded by rmudgett Tested by: John Bigelow ........
+ Merged revisions 400849 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2013-10-10 18:21 +0000 [r400825-400834] Joshua Colp <jcolp@digium.com>
+
+ * /, res/res_pjsip/location.c: Perform validation of permanent
+ contacts on AORs in res_pjsip. ........ Merged revisions 400833
+ from http://svn.asterisk.org/svn/asterisk/branches/12
+
+ * /, res/res_pjsip/pjsip_configuration.c, res/res_pjsip.c: Fix an
+ assertion in res_pjsip when specifying an invalid outbound proxy.
+ This change fixes two issues when setting an outbound proxy: 1.
+ The outbound proxy URI was not parsed and validated during
+ configuration. 2. If an outgoing dialog was created and the
+ outbound proxy could not be set an assertion would occur because
+ the usage count on the dialog was not decremented. The
+ documentation has also been updated to specify that a full URI
+ must be specified for the outbound proxy. (closes issue
+ ASTERISK-22672) Reported by: Antti Yrjola ........ Merged
+ revisions 400824 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2013-10-09 11:02 +0000 [r400772-400813] Matthew Jordan <mjordan@digium.com>
+
+ * res/res_pjsip_header_funcs.c, /: Use 'z' as the format specifier
+ for size_t Using 'lu' will produce a compiler warning for some
+ versions of gcc and on some architectures. 'z' should be portable
+ as a format specifier for size_t. ........ Merged revisions
+ 400812 from http://svn.asterisk.org/svn/asterisk/branches/12
+
+ * res/res_pjsip_header_funcs.c (added), /: Add PJSIP_HEADER
+ function for manipulation of SIP headers in the PJSIP stack This
+ patch adds support to the PJSIP stack in Asterisk for SIP header
+ manipulation. Note that this is analagous to
+ SIPAddHeader/SIPRemoveHeader. For PJSIP_HEADER, an incoming
+ supplemental session callback is registered that takes the
+ pjsip_hdrs from the incoming session and stores them in a linked
+ list in the session datastore. Calls to PJSIP_HEADER traverse
+ over the list and return the nth matching header where 'n' is the
+ 'number' argument to the function. When adding a header, the
+ first call creates a datastore and linked list and adds the
+ datastore to the session. The header is then created as a
+ pjsip_hdr and added to the list. An outgoing supplemental session
+ callback then traverses the list and adds the headers to the
+ outgoing pjsip_msg. When removing a header, the list created with
+ PJSIP_HEADER(add,...) is traversed and all matching entries are
+ removed. (closes issue ASTERISK-22498) Reported by: George Joseph
+ patch: res_pjsip_header_funcs_v1.patch uploaded by george.joseph
+ (License 6322) ........ Merged revisions 400771 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2013-10-08 22:33 +0000 [r400770] Kinsey Moore <kmoore@digium.com>
+
+ * /, configure, configure.ac: Add warning when compiling with iODBC
+ support When running configure, libiodbc2 development headers
+ will fulfill the requirement for ODBC development headers, but
+ will not function properly. This adds a warning when libiodbc2
+ development headers are detected instead of unixodbc development
+ headers. (closes issue ASTERISK-22459) Reported by: Patrick
+ Maille Tested by: Walter Doekes Patches:
+ issueA22459_warn_when_using_iodbc.patch uploaded by Walter Doekes
+ (License 5674) ........ Merged revisions 400767 from
+ http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
+ revisions 400768 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 400769 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2013-10-08 21:20 +0000 [r400759] Richard Mudgett <rmudgett@digium.com>
+
+ * apps/app_agent_pool.c, /: app_agent_pool: Fix AMI/CLI AgentLogoff
+ soft preventing agents from logging back in. * Clear the
+ deferred_logoff flag when an agent logs in. (closes issue
+ ASTERISK-22669) Reported by: John Bigelow ........ Merged
+ revisions 400754 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2013-10-08 20:52 +0000 [r400750] Mark Michelson <mmichelson@digium.com>
+
+ * /, res/res_pjsip.c, res/res_pjsip/config_transport.c: Switch from
+ using pjsip_strerror to pj_strerror. pjsip_strerror is only aware
+ of PJSIP-specific error codes. pj_strerror() is aware of all
+ PJProject error codes and OS-specific error codes. This
+ specifically fixes an oft-seen error in transport configuration
+ code where EADDRINUSE would result in "Unknown PJSIP error
+ 120098" instead of a useful message. ........ Merged revisions
+ 400749 from http://svn.asterisk.org/svn/asterisk/branches/12
+
+2013-10-08 20:18 +0000 [r400728-400744] Richard Mudgett <rmudgett@digium.com>
+
+ * configs/confbridge.conf.sample, /,
+ apps/confbridge/include/confbridge.h, apps/app_confbridge.c,
+ CHANGES, apps/confbridge/conf_config_parser.c: app_confbridge:
+ Can now set the language used for announcements to the
+ conference. ConfBridge now has the ability to set the language of
+ announcements to the conference. The language can be set on a
+ bridge profile in confbridge.conf or by the dialplan function
+ CONFBRIDGE(bridge,language)=en. (closes issue ASTERISK-19983)
+ Reported by: Jonathan White Patches: M19983_rev2.diff (license
+ #5138) patch uploaded by junky (modified) Tested by: rmudgett
+ ........ Merged revisions 400741 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 400742 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+ * apps/confbridge/conf_config_parser.c, /: app_confbridge: Fix
+ duplicate default_user profile. * Fixed looking in the wrong
+ profiles container to see if the default_user profile is already
+ created in verify_default_profiles(). The bridge profile
+ container is never going to hold user profiles. :) ........
+ Merged revisions 400723 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 400724 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2013-10-08 18:19 +0000 [r400684-400704] Kinsey Moore <kmoore@digium.com>
+
+ * funcs/func_config.c, /: Fix func_config list entry allocation The
+ AST_CONFIG dialplan function defined in func_config.c allocates
+ its config file list entries using ast_malloc. List entry
+ allocations destined for use with Asterisk's linked list API must
+ be ast_calloc()d or otherwise initialized so that list pointers
+ are set to NULL. These uses of ast_malloc have been replaced by
+ ast_calloc to prevent dereferencing of uninitialized pointer
+ values when traversing the list. (closes issue ASTERISK-22483)
+ Reported by: Brian Scott ........ Merged revisions 400694 from
+ http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
+ revisions 400697 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 400701 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+ * res/res_rtp_asterisk.c, /: Fix STUN crash when using IPv6 any
+ address Ensure that when chan_sip binds to the IPv6 any address
+ ([::]), IPv4 candidates are also added. (closes issue
+ ASTERISK-21917) Reported by: Torrey Searle Patches:
+ 0023_ipv6_stun_crash.patch uploaded by Torrey Searle (License
+ 5334) ........ Merged revisions 400681 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 400682 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2013-10-08 15:44 +0000 [r400683] Mark Michelson <mmichelson@digium.com>
+
+ * res/res_pjsip/pjsip_options.c, /: Push CLI qualify into the
+ threadpool. If you run Asterisk in the background and then
+ connect to it through a separate console, the thread that runs
+ CLI commands is not registered with PJLIB. Thus PJLIB does not
+ like it when you attempt to send OPTIONS requests from that
+ thread. So now we push the task into the threadpool, which we
+ know to be registered with PJLIB. Thanks to Antti Yrjola for
+ reporting this. ........ Merged revisions 400680 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2013-10-08 15:12 +0000 [r400662-400672] Richard Mudgett <rmudgett@digium.com>
+
+ * /, res/res_agi.c, apps/app_queue.c: Make app_queue and res_agi
+ independent of AMI being enabled. The
+ https://reviewboard.asterisk.org/r/2888/ review changes manager
+ to not subscribe to stasis when it is disabled for performance
+ reasons. When manager is disabled app_queue and res_agi decline
+ to load and fail to clean up what they have already allocated. *
+ Made app_queue and res_agi clean up allocated resources when they
+ decline to load. * Made app_queue and res_agi use their own
+ subscriptions to the stasis topics instead of borrowing manager's
+ message router structure inappropriately. (closes issue
+ ASTERISK-22604) Reported by: rmudgett Review:
+ https://reviewboard.asterisk.org/r/2902/ ........ Merged
+ revisions 400671 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+ * /, include/asterisk/stasis.h, apps/app_queue.c,
+ include/asterisk/manager.h: Miscellaneous stand alone comment
+ cleanups. ........ Merged revisions 400661 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2013-10-06 17:13 +0000 [r400625] Michael L. Young <elgueromexicano@gmail.com>
+
+ * /, apps/app_queue.c: app_queue: Fix Queuelog EXITWITHKEY only
+ logging two of four fields Commit r62462 added two extra fields
+ for logging "the original position the caller entered the queue
+ at, and the amount of time the caller was waiting in the queue."
+ But when r75969 was merged from 1.4 into trunk (r75977), these
+ two fields disappeared. Those two extra fields were not logged in
+ 1.4 and when the patch was merged, those fields went away.
+ Therefore, this is a regression and was caught by the reporter
+ because he was reading the awesome "Asterisk: The Definitive
+ Guide" book. (closes issue ASTERISK-22197) Reported by: Dalius M.
+ Tested by: Dalius M. Patches:
+ asterisk-22197-q-log-exitwithkey.diff uploaded by Michael L.
+ Young (license 5026) Review:
+ https://reviewboard.asterisk.org/r/2901/ ........ Merged
+ revisions 400622 from
+ http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
+ revisions 400623 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 400624 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2013-10-05 00:59 +0000 [r400593] Richard Mudgett <rmudgett@digium.com>
+
+ * /, channels/iax2/include/parser.h: chan_iax2: Fix compile error.
+ ........ Merged revisions 400588 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2013-10-04 21:41 +0000 [r400568] Michael L. Young <elgueromexicano@gmail.com>
+
+ * main/acl.c, include/asterisk/netsock2.h, CHANGES,
+ channels/chan_iax2.c, channels/iax2/parser.c, main/netsock.c,
+ main/netsock2.c, /, channels/iax2/include/parser.h: Add IPv6
+ Support To chan_iax2 This patch adds IPv6 support to chan_iax2.
+ Yay! (closes issue ASTERISK-22025) Patches:
+ iax2-ipv6-v5-reviewboard.diff by Michael L. Young (license 5026)
+ Review: https://reviewboard.asterisk.org/r/2660/ ........ Merged
+ revisions 400567 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2013-10-04 19:32 +0000 [r400553] David M. Lee <dlee@digium.com>
+
+ * rest-api/api-docs/applications.json (added), /: Added missing
+ file from r400522 ........ Merged revisions 400552 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2013-10-04 19:11 +0000 [r400533-400543] Jonathan Rose <jrose@digium.com>
+
+ * res/res_pjsip_logger.c, /: chan_pjsip: Make logger togglable
+ without loading/unloading This patch makes the res_pjsip_logger
+ do a few things... First, it will be built and installed by
+ default now, so end users won't need to enable it in menuselect.
+ Second, while it is loaded, it no longer will immediately issue
+ log messages. Upon loading, it is in the disabled state and must
+ be turned on with the new CLI command. The CLI command 'pjsip set
+ logger <on/off/host> has been added and can be used to do the
+ following: pjsip set logger on: Enables logger for all PJSIP
+ traffic pjsip set logger off: Disables logger for all PJSIP
+ traffic pjsip set logger host <host>: Enables logger for the
+ specific host Review: https://reviewboard.asterisk.org/r/2900/
+ ........ Merged revisions 400542 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+ * /,
+ contrib/ast-db-manage/config/versions/43956d550a44_add_tables_for_pjsip.py
+ (added), configs/extconfig.conf.sample,
+ configs/sorcery.conf.sample,
+ contrib/ast-db-manage/config/versions/4da0c5f79a9c_create_tables.py:
+ chan_pjsip: Add alembic scripts for generating db tables for
+ PJSIP Also updates sample configurations for sorcery and
+ extconfig to demonstrate how to use databases created by that
+ alembic script. (closes issue ASTERISK-22133) Reported by: Matt
+ Jordan Review: https://reviewboard.asterisk.org/r/2892/ ........
+ Merged revisions 400532 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2013-10-04 16:01 +0000 [r400523] Matthew Jordan <mjordan@digium.com>
+
+ * res/res_stasis.c, main/asterisk.c,
+ rest-api/api-docs/endpoints.json, rest-api/api-docs/events.json,
+ res/stasis/app.c, /,
+ rest-api-templates/ari_model_validators.h.mustache,
+ include/asterisk/endpoints.h, res/res_ari_applications.c (added),
+ res/ari/resource_endpoints.h, include/asterisk/stasis_app.h,
+ res/stasis/app.h, rest-api/resources.json,
+ include/asterisk/_private.h, res/ari/ari_model_validators.c,
+ main/endpoints.c, res/ari/ari_model_validators.h, main/json.c,
+ res/res_ari_model.c, res/ari.make,
+ res/ari/resource_applications.c (added),
+ res/ari/resource_applications.h (added): ARI: Add subscription
+ support This patch adds an /applications API to ARI, allowing
+ explicit management of Stasis applications. * GET /applications -
+ list current applications * GET /applications/{applicationName} -
+ get details of a specific application * POST
+ /applications/{applicationName}/subscription - explicitly
+ subscribe to a channel, bridge or endpoint * DELETE
+ /applications/{applicationName}/subscription - explicitly
+ unsubscribe from a channel, bridge or endpoint Subscriptions work
+ by a reference counting mechanism: if you subscript to an event
+ source X number of times, you must unsubscribe X number of times
+ to stop receiveing events for that event source. Review:
+ https://reviewboard.asterisk.org/r/2862 (issue ASTERISK-22451)
+ Reported by: Matt Jordan ........ Merged revisions 400522 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2013-10-04 15:49 +0000 [r400511-400521] Joshua Colp <jcolp@digium.com>
+
+ * /, res/res_pjsip.c: Enclose the To URI and update its user
+ portion if a request user has been specified. ........ Merged
+ revisions 400520 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+ * res/res_pjsip_session.c, /: Replace the connection address at the
+ SDP level if altering the SDP with the external media address.
+ ........ Merged revisions 400510 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2013-10-03 23:20 +0000 [r400482] Jonathan Rose <jrose@digium.com>
+
+ * /, channels/chan_sip.c: chan_sip: Don't ignore expires value in
+ contact header if it lacks semicolon (closes issue
+ ASTERISK-22574) Reported by: Filip Jenicek Patches:
+ chan_sip_expires.patch uploaded by Filip Jenicek (license 6277)
+ ........ Merged revisions 400469 from
+ http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
+ revisions 400470 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 400471 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2013-10-03 21:46 +0000 [r400461] Matthew Jordan <mjordan@digium.com>
+
+ * /, main/channel_internal_api.c: Remove publication of a channel
+ snapshot when the technology is set This patch removes said
+ publication for a few reasons: (1) It is unnecessary. Association
+ of the channel technology with a specific channel is an
+ implementation detail that should be assumed to "just happen",
+ and consumers of Stasis don't need to be informed about it. (2)
+ Publication of said message can now cause crashes, as the actual
+ creation of a channel in normal locations now stages its
+ messages. As a result, things that create dummy channels (such as
+ the SIP RTP QOS unit test) and associate them with a channel
+ technology were now crashing, as the channel itself was not known
+ by Stasis. ........ Merged revisions 400460 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2013-10-03 20:22 +0000 [r400452] Mark Michelson <mmichelson@digium.com>
+
+ * bridges/bridge_native_rtp.c, /,
+ include/asterisk/bridge_technology.h: Fix assumption in
+ bridge_native_rtp.c regarding number of participants in a bridge.
+ When a party leaves a bridge, there may be more participants in
+ the bridge than expected. As such, it is important not to make
+ assumptions regarding the list of channels in a bridge. This
+ change makes it so that when a party leaves a native RTP bridge,
+ we unbridge it and the party it was bridged with. Previously, the
+ first and last channels in the list were unbridged since it was
+ assumed that these were the two channels that had been bridged.
+ As previously stated, a new party had been inserted into the
+ bridge, so this logic did not work properly. (closes issue
+ ASTERISK-22615) reported by Matt Jordan Review:
+ https://reviewboard.asterisk.org/r/2899 ........ Merged revisions
+ 400403 from http://svn.asterisk.org/svn/asterisk/branches/12
+
+2013-10-03 19:32 +0000 [r400443] Joshua Colp <jcolp@digium.com>
+
+ * /, main/cdr.c: When serializing CDR variables (like for "core
+ show channels") don't output an error if CDRs aren't enabled.
+ ........ Merged revisions 400442 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2013-10-03 19:30 +0000 [r400441] Kinsey Moore <kmoore@digium.com>
+
+ * /, main/security_events.c: Fix security events for AMI invalid
+ password In r337595, additional security events were added for
+ chan_sip authentication failures. The new IEs added to the
+ existing invalid password event were defined as required IEs, but
+ existing users of the event did not set the new IEs and could not
+ since they didn't apply to existing uses. They are now marked as
+ optional IEs. (closes issue ASTERISK-22578) Reported by: Matt
+ Jordan ........ Merged revisions 400421 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 400440 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2013-10-03 19:06 +0000 [r400402] Joshua Colp <jcolp@digium.com>
+
+ * res/ari/resource_channels.c, /: Fix a crash caused by muting and
+ unmuting a channel in ARI without specifying a direction. (closes
+ issue ASTERISK-22637) Reported by: Scott Griepentrog Patch by
+ Matt Jordan, whose office I have taken over in the name of
+ Canada. ........ Merged revisions 400401 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2013-10-03 18:51 +0000 [r400399] Richard Mudgett <rmudgett@digium.com>
+
+ * /, main/cel.c: cel: Some whitespace cleanups ........ Merged
+ revisions 400398 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2013-10-03 18:32 +0000 [r400385-400397] Kinsey Moore <kmoore@digium.com>
+
+ * res/res_rtp_multicast.c, /: res_rtp_multicast: Ensure SSRC is set
+ properly This fixes a bug where the SSRC field on multicast RTP
+ can be stuck at 0 which can cause problems for endpoints trying
+ to make sense of incoming streams. (closes issue ASTERISK-22567)
+ Reported by: Simone Camporeale Patches:
+ 22567_res_mulitcast_ssrc.patch uploaded by Simone Camporeale
+ (License 6536) ........ Merged revisions 400393 from
+ http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
+ revisions 400394 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 400395 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+ * /, configure, include/asterisk/autoconfig.h.in, configure.ac,
+ main/xml.c: Detect and use xsltCleanupGlobals when available This
+ introduces usage of an additional libxslt cleanup function,
+ xsltCleanupGlobals, when the configure script detects that it is
+ available. Early versions of the library did not include this
+ function. (closes issue ASTERISK-22570) Reported by: Corey
+ Farrell Patches: xsltCleanupGlobals.patch uploaded by Corey
+ Farrell (License 5909) ........ Merged revisions 400384 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2013-10-03 16:28 +0000 [r400374] Richard Mudgett <rmudgett@digium.com>
+
+ * channels/chan_vpb.cc, /: chan_vpb: Make compile again. ........
+ Merged revisions 400373 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2013-10-03 14:59 +0000 [r400363-400364] Mark Michelson <mmichelson@digium.com>
+
+ * tests/test_cel.c, /: Get rid of uses of stasis_topic_wait()
+ ........ Merged revisions 400362 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+ * pbx/pbx_spool.c, main/manager.c, main/format_cap.c,
+ channels/chan_skinny.c, res/res_agi.c, channels/chan_motif.c,
+ channels/chan_alsa.c, apps/app_confbridge.c,
+ addons/chan_mobile.c, channels/chan_mgcp.c,
+ res/res_clioriginate.c, channels/chan_bridge_media.c,
+ channels/chan_sip.c, tests/test_format_api.c,
+ res/res_pjsip_sdp_rtp.c, bridges/bridge_simple.c,
+ apps/app_originate.c, res/parking/parking_applications.c,
+ main/core_local.c, channels/chan_console.c, channels/chan_oss.c,
+ include/asterisk/format_cap.h, res/res_pjsip_session.c,
+ res/ari/resource_bridges.c, channels/chan_jingle.c,
+ channels/chan_misdn.c, channels/dahdi/bridge_native_dahdi.c,
+ res/res_pjsip/pjsip_configuration.c, main/file.c,
+ channels/chan_h323.c, channels/chan_nbs.c,
+ bridges/bridge_native_rtp.c, tests/test_config.c,
+ res/res_stasis.c, channels/chan_pjsip.c, channels/chan_unistim.c,
+ channels/chan_multicast_rtp.c, addons/chan_ooh323.c,
+ main/rtp_engine.c, /, main/ccss.c, apps/app_meetme.c,
+ bridges/bridge_holding.c, main/bridge_basic.c,
+ bridges/bridge_softmix.c, channels/chan_gtalk.c,
+ channels/chan_iax2.c, main/media_index.c, main/channel.c,
+ channels/chan_phone.c, channels/chan_dahdi.c, main/dial.c: Cache
+ string values of formats on ast_format_cap() to save processing.
+ Channel snapshots have string representations of the channel's
+ native formats. Prior to this change, the format strings were
+ re-created on ever channel snapshot creation. Since channel
+ native formats rarely change, this was very wasteful. Now, string
+ representations of formats may optionally be stored on the
+ ast_format_cap for cases where string representations may be
+ requested frequently. When formats are altered, the string cache
+ is marked as invalid. When strings are requested, the cache
+ validity is checked. If the cache is valid, then the cached
+ strings are copied. If the cache is invalid, then the string
+ cache is rebuilt and copied, and the cache is marked as being
+ valid again. Review: https://reviewboard.asterisk.org/r/2879
+ ........ Merged revisions 400356 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2013-10-03 14:52 +0000 [r400361] Joshua Colp <jcolp@digium.com>
+
+ * res/res_pjsip_sdp_rtp.c, res/res_pjsip_t38.c, /: Fix crashes in
+ res_pjsip_sdp_rtp and res_pjsip_t38 when a stream is rejected and
+ external_media_address is set. The callback function for changing
+ the media address in streams wrongly assumes that a connection
+ line will always be present. This is false as no line is present
+ if a stream has been rejected. (closes issue ASTERISK-22645)
+ Reported by: Rusty Newton ........ Merged revisions 400360 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2013-10-02 22:22 +0000 [r400335] Mark Michelson <mmichelson@digium.com>
+
+ * main/stasis_wait.c (removed), res/ari/resource_endpoints.c, /,
+ include/asterisk/stasis.h, tests/test_cel.c,
+ include/asterisk/stasis_endpoints.h, channels/chan_pjsip.c,
+ main/stasis.c, main/stasis_endpoints.c: Multiple revisions
+ 400318-400319 ........ r400318 | mmichelson | 2013-10-02 17:08:49
+ -0500 (Wed, 02 Oct 2013) | 12 lines Remove unnecessary waits from
+ stasis. Since caches are updated on publisher threads, there is
+ no need to wait for the cache updates to occur after a stasis
+ message is published. In the case of chan_pjsip device state
+ changes, this set of changes caused an improvement to
+ performance. Review: https://reviewboard.asterisk.org/r/2890
+ ........ r400319 | mmichelson | 2013-10-02 17:10:54 -0500 (Wed,
+ 02 Oct 2013) | 3 lines Remove svn:mergeinfo property. ........
+ Merged revisions 400318-400319 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2013-10-02 21:33 +0000 [r400317] Michael L. Young <elgueromexicano@gmail.com>
+
+ * channels/chan_iax2.c, /: Cast Integer Argument To Unsigned Char
+ The member reg in the peercnt structure is an unsigned char and
+ peercnt_modify() is expecting an unsigned char argument which
+ gets assigned to peercnt->reg. This patch fixes that by casting
+ the integer argument being passed to peercnt_modify to unsigned
+ char. ........ Merged revisions 400314 from
+ http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
+ revisions 400315 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 400316 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2013-10-02 21:26 +0000 [r400313] Matthew Jordan <mjordan@digium.com>
+
+ * main/cdr.c, main/manager.c, /, main/cel.c: Only create Stasis
+ subscriptions when enabled Subscribing to Stasis isn't free. As
+ such, this patch makes AMI, CDR, and CEL - the "big 3" - only
+ subscribe when enabled. Toggling their availability via a .conf
+ file will unsubscribe/subscribe as appropriate. Review:
+ https://reviewboard.asterisk.org/r/2888/ ........ Merged
+ revisions 400312 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2013-10-02 20:31 +0000 [r400304] Richard Mudgett <rmudgett@digium.com>
+
+ * main/pbx.c, /: Originate: Make setting caller id on outgoing call
+ use either name or number. Previous code was requiring both name
+ and number to be available. Also restored a comment block on why
+ caller id is also set on an outgoing call leg in addition to
+ connected line from earlier versions of Asterisk. ........ Merged
+ revisions 400303 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2013-10-02 19:20 +0000 [r400295] Kinsey Moore <kmoore@digium.com>
+
+ * /, rest-api/api-docs/asterisk.json: Correct allowable values for
+ ARI general information filter ........ Merged revisions 400291
+ from http://svn.asterisk.org/svn/asterisk/branches/12
+
+2013-10-02 19:17 +0000 [r400287] Matthew Jordan <mjordan@digium.com>
+
+ * main/cdr.c, /: Fix the CDR CLI command 'cdr show active
+ {channel}' When the switch from channel names to channel unique
+ IDs happened, the poor CLI command got left in the dust. This
+ fixes the command so that users can once again see how Asterisk
+ is messing up your billing information. ........ Merged revisions
+ 400286 from http://svn.asterisk.org/svn/asterisk/branches/12
+
+2013-10-02 18:44 +0000 [r400285] Joshua Colp <jcolp@digium.com>
+
+ * /, res/res_pjsip_t38.c: Fix a crash in res_pjsip_t38 caused by
+ the wrong assumption that a session will always have a channel.
+ When starting up or shutting down this assumption is false.
+ ........ Merged revisions 400284 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2013-10-02 18:28 +0000 [r400282] Tzafrir Cohen <tzafrir.cohen@xorcom.com>
+
+ * Makefile, doc/astdb2sqlite3.8 (added), /, doc/astdb2bdb.8
+ (added): man pages for astdb2bdb and astdb2sqlite3 Review:
+ https://reviewboard.asterisk.org/r/2898/ ........ Merged
+ revisions 400279 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 400281 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2013-10-02 17:12 +0000 [r400269-400271] Richard Mudgett <rmudgett@digium.com>
+
+ * apps/app_stack.c, res/stasis_recording/stored.c, main/json.c,
+ main/stasis_cache.c, res/res_ari.c, /, main/utils.c:
+ MALLOC_DEBUG: Fix some misuses of free() when MALLOC_DEBUG is
+ enabled. * There were several places in ARI where an external
+ library was mallocing memory that must always be released with
+ free(). When MALLOC_DEBUG is enabled, free() is redirected to the
+ MALLOC_DEBUG version. Since the external library call still uses
+ the normal malloc(), MALLOC_DEBUG complains that the freed memory
+ block is not registered and will not free it. These cases must
+ use ast_std_free(). * Changed calls to asprintf() and vasprintf()
+ to the equivalent ast_asprintf() and ast_vasprintf() versions
+ respectively. ........ Merged revisions 400270 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+ * channels/sig_ss7.c, /: sig_ss7: Fix compiler warnings. ........
+ Merged revisions 400268 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2013-10-02 16:23 +0000 [r400246-400266] Joshua Colp <jcolp@digium.com>
+
+ * channels/chan_alsa.c, main/stasis_channels.c, channels/sig_ss7.c,
+ channels/chan_pjsip.c, channels/chan_mgcp.c,
+ channels/chan_unistim.c, apps/app_dial.c, main/pbx.c, /,
+ channels/chan_sip.c, main/bridge.c, include/asterisk/channel.h,
+ channels/chan_gtalk.c, channels/chan_console.c,
+ channels/sig_pri.c, channels/chan_iax2.c, channels/chan_jingle.c,
+ main/channel.c, channels/chan_dahdi.c, main/dial.c,
+ include/asterisk/stasis_channels.h, channels/chan_skinny.c,
+ channels/chan_motif.c: Reduce channel snapshot creation and
+ publishing by up to 50%. This change introduces the ability to
+ stage channel snapshot creation and publishing by suppressing the
+ implicit creation and publishing that some functions have. Once
+ all operations are executed the staging is marked as done and a
+ single snapshot is created and published. Review:
+ https://reviewboard.asterisk.org/r/2889/ ........ Merged
+ revisions 400265 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+ * res/res_pjsip_session.c, /: Fix a random one way audio issue in
+ PJSIP. Due to the asynchronous design of the PJMEDIA SDP
+ negotiator it was possible for the SDP to be negotiated *after* a
+ channel was created and after it was being wait on by an
+ application. It is only after negotiation occurs that the file
+ descriptors for RTP are placed on the channel. Since the channel
+ was already being waited on these file descriptors were not
+ monitored, causing incoming media to never be read. This change
+ wakes up any application waiting on the channel so that added
+ file descriptors end up being monitored. (closes issue AST-1227)
+ Reported by: John Bigelow ........ Merged revisions 400256 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+ * /, res/stasis/control.c, include/asterisk/stasis_app.h,
+ res/ari/resource_channels.c: Allow specifying a channel to dial
+ an extension and context in an ARI dial operation. (issue
+ ASTERISK-22625) Reported by: Scott Griepentrog ........ Merged
+ revisions 400254 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+ * /, res/res_pjsip_session.c: Retrieve and store the hostname only
+ once so multiple threads do not potentially initialize it at the
+ same time. ........ Merged revisions 400245 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2013-10-01 21:19 +0000 [r400228-400237] Richard Mudgett <rmudgett@digium.com>
+
+ * channels/chan_dahdi.c, channels/sig_analog.c, /: chan_dahdi: Fix
+ analog parking using flash-hook. Transferring an analog call
+ using a flash-hook to parking would fail to park the call and
+ result in an invalid ao2 object unref. * Park the correct bridged
+ channel. ........ Merged revisions 400236 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+ * main/features_config.c, /: Features: Rearm the parking config
+ options have moved warning for each reload. ........ Merged
+ revisions 400227 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2013-10-01 15:54 +0000 [r400218] Matthew Jordan <mjordan@digium.com>
+
+ * main/cdr.c, /: Filter out internal channels for bridge leave
+ messages and parked call messages Granted, if you manage to park
+ a Conference announcer channel, something has gone horrifically
+ wrong. ........ Merged revisions 400217 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2013-09-30 21:40 +0000 [r400206] Jonathan Rose <jrose@digium.com>
+
+ * configs/features.conf.sample, /, configs/res_parking.conf.sample:
+ configuration samples: Pull all parking related stuff out of
+ features.conf This patch also adds documentation for parking from
+ features.conf to res_parking.conf ........ Merged revisions
+ 400205 from http://svn.asterisk.org/svn/asterisk/branches/12
+
+2013-09-30 19:58 +0000 [r400195-400197] Matthew Jordan <mjordan@digium.com>
+
+ * /, funcs/func_cdr.c: Parse arguments passed to the CDR_PROP
+ function correctly I can only blame this on a bad merge, because
+ this in no way worked properly the way it was written. Mea culpa.
+ The function should now parse its arguments correctly and
+ function properly. (Note that the API used by the CDR_PROP
+ function has working unit tests... this was merely bad coding of
+ the actual registered function) (closes issue ASTERISK-22613)
+ Reported by: Private Name ........ Merged revisions 400196 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+ * main/cdr.c, /: Remove spurious event raised when CDRs are
+ reloaded The Reload event is now raised by the module loading
+ core. As such, the Reload event in the CDR engine was a duplicate
+ and not needed. ........ Merged revisions 400194 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2013-09-30 18:55 +0000 [r400186] David M. Lee <dlee@digium.com>
+
+ * tests/test_devicestate.c, include/asterisk/sem.h (added),
+ tests/test_taskprocessor.c, res/res_pjsip_mwi.c,
+ res/res_pjsip/include/res_pjsip_private.h, tests/test_stasis.c,
+ res/parking/parking_manager.c, res/res_security_log.c,
+ channels/chan_mgcp.c, main/stasis_cache_pattern.c, main/pbx.c,
+ include/asterisk/vector.h (added), /, main/ccss.c,
+ apps/app_meetme.c, include/asterisk/taskprocessor.h,
+ configs/stasis.conf.sample (removed), configure.ac,
+ res/parking/parking_applications.c, channels/sig_pri.c,
+ apps/app_queue.c, main/cel.c, main/stasis.c,
+ channels/chan_dahdi.c, funcs/func_presencestate.c,
+ main/stasis_message_router.c, configure,
+ apps/confbridge/confbridge_manager.c, res/res_agi.c,
+ main/manager_system.c, res/res_stasis_test.c, main/sem.c (added),
+ main/manager_channels.c, res/res_pjsip_refer.c,
+ main/manager_mwi.c, apps/app_voicemail.c, main/stasis_cache.c,
+ main/stasis_wait.c, main/stasis_config.c (removed),
+ include/asterisk/stasis_internal.h, res/stasis/app.c,
+ channels/chan_sip.c, include/asterisk/autoconfig.h.in,
+ main/manager_endpoints.c, main/channel_internal_api.c,
+ include/asterisk/stasis.h, main/devicestate.c,
+ main/taskprocessor.c, res/res_xmpp.c, main/sounds_index.c,
+ include/asterisk/stasis_message_router.h, channels/chan_iax2.c,
+ res/res_jabber.c, main/endpoints.c, main/astobj2.c,
+ res/res_chan_stats.c, res/parking/parking_bridge_features.c,
+ tests/test_stasis_endpoints.c, main/cdr.c, main/channel.c,
+ main/manager_bridges.c, main/manager.c, channels/chan_skinny.c:
+ Multiple revisions 399887,400138,400178,400180-400181 ........
+ r399887 | dlee | 2013-09-26 10:41:47 -0500 (Thu, 26 Sep 2013) | 1
+ line Minor performance bump by not allocate manager variable
+ struct if we don't need it ........ r400138 | dlee | 2013-09-30
+ 10:24:00 -0500 (Mon, 30 Sep 2013) | 23 lines Stasis performance
+ improvements This patch addresses several performance problems
+ that were found in the initial performance testing of Asterisk
+ 12. The Stasis dispatch object was allocated as an AO2 object,
+ even though it has a very confined lifecycle. This was replaced
+ with a straight ast_malloc(). The Stasis message router was
+ spending an inordinate amount of time searching hash tables. In
+ this case, most of our routers had 6 or fewer routes in them to
+ begin with. This was replaced with an array that's searched
+ linearly for the route. We more heavily rely on AO2 objects in
+ Asterisk 12, and the memset() in ao2_ref() actually became
+ noticeable on the profile. This was #ifdef'ed to only run when
+ AO2_DEBUG was enabled. After being misled by an erroneous comment
+ in taskprocessor.c during profiling, the wrong comment was
+ removed. Review: https://reviewboard.asterisk.org/r/2873/
+ ........ r400178 | dlee | 2013-09-30 13:26:27 -0500 (Mon, 30 Sep
+ 2013) | 24 lines Taskprocessor optimization; switch Stasis to use
+ taskprocessors This patch optimizes taskprocessor to use a
+ semaphore for signaling, which the OS can do a better job at
+ managing contention and waiting that we can with a mutex and
+ condition. The taskprocessor execution was also slightly
+ optimized to reduce the number of locks taken. The only
+ observable difference in the taskprocessor implementation is that
+ when the final reference to the taskprocessor goes away, it will
+ execute all tasks to completion instead of discarding the
+ unexecuted tasks. For systems where unnamed semaphores are not
+ supported, a really simple semaphore implementation is provided.
+ (Which gives identical performance as the original taskprocessor
+ implementation). The way we ended up implementing Stasis caused
+ the threadpool to be a burden instead of a boost to performance.
+ This was switched to just use taskprocessors directly for
+ subscriptions. Review: https://reviewboard.asterisk.org/r/2881/
+ ........ r400180 | dlee | 2013-09-30 13:39:34 -0500 (Mon, 30 Sep
+ 2013) | 28 lines Optimize how Stasis forwards are dispatched This
+ patch optimizes how forwards are dispatched in Stasis.
+ Originally, forwards were dispatched as subscriptions that are
+ invoked on the publishing thread. This did not account for the
+ vast number of forwards we would end up having in the system, and
+ the amount of work it would take to walk though the forward
+ subscriptions. This patch modifies Stasis so that rather than
+ walking the tree of forwards on every dispatch, when forwards and
+ subscriptions are changed, the subscriber list for every topic in
+ the tree is changed. This has a couple of benefits. First, this
+ reduces the workload of dispatching messages. It also reduces
+ contention when dispatching to different topics that happen to
+ forward to the same aggregation topic (as happens with all of the
+ channel, bridge and endpoint topics). Since forwards are no
+ longer subscriptions, the bulk of this patch is simply changing
+ stasis_subscription objects to stasis_forward objects (which,
+ admittedly, I should have done in the first place.) Since this
+ required me to yet again put in a growing array, I finally
+ abstracted that out into a set of ast_vector macros in
+ asterisk/vector.h. Review:
+ https://reviewboard.asterisk.org/r/2883/ ........ r400181 | dlee
+ | 2013-09-30 13:48:57 -0500 (Mon, 30 Sep 2013) | 28 lines Remove
+ dispatch object allocation from Stasis publishing While looking
+ for areas for performance improvement, I realized that an unused
+ feature in Stasis was negatively impacting performance. When a
+ message is sent to a subscriber, a dispatch object is allocated
+ for the dispatch, containing the topic the message was published
+ to, the subscriber the message is being sent to, and the message
+ itself. The topic is actually unused by any subscriber in
+ Asterisk today. And the subscriber is associated with the
+ taskprocessor the message is being dispatched to. First, this
+ patch removes the unused topic parameter from Stasis subscription
+ callbacks. Second, this patch introduces the concept of
+ taskprocessor local data, data that may be set on a taskprocessor
+ and provided along with the data pointer when a task is pushed
+ using the ast_taskprocessor_push_local() call. This allows the
+ task to have both data specific to that taskprocessor, in
+ addition to data specific to that invocation. With those two
+ changes, the dispatch object can be removed completely, and the
+ message is simply refcounted and sent directly to the
+ taskprocessor. Review: https://reviewboard.asterisk.org/r/2884/
+ ........ Merged revisions 399887,400138,400178,400180-400181 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2013-09-30 15:57 +0000 [r400142] Kinsey Moore <kmoore@digium.com>
+
+ * /, channels/chan_sip.c, configs/pjsip.conf.sample,
+ res/res_pjsip_outbound_registration.c, configs/sip.conf.sample,
+ CHANGES: chan_sip: Allow Asterisk to retry after 403 on register
+ This adds a global option in chan_sip to allow it to continue
+ attempting registration if a 403 is received, clearing the cached
+ nonce and treating it as a non-fatal response. Normally, this
+ would cause registration attempts to that endpoint to stop. This
+ also adds a similar per-outbound-registration option to
+ chan_pjsip which allows the retry interval to be altered for 403
+ responses to REGISTER requests. (closes issue ASTERISK-17138)
+ Review: https://reviewboard.asterisk.org/r/2874/ Reported by:
+ Rudi ........ Merged revisions 400137 from
+ http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
+ revisions 400140 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 400141 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2013-09-28 22:57 +0000 [r400059-400122] Matthew Jordan <mjordan@digium.com>
+
+ * /, res/res_pjsip_notify.c, configs/pjsip_notify.conf.sample
+ (added): res_pjsip_notify: Add documentation We forgot to add
+ documentation for res_pjsip_notify, which would prevent it from
+ being loaded. Whoops. This patch also updates res_pjsip_notify to
+ use pjsip_notify.conf, which now has its own sample file in the
+ configs directory as well. Review:
+ https://reviewboard.asterisk.org/r/2835/ ........ Merged
+ revisions 400121 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+ * res/res_rtp_asterisk.c, /: res_rtp_asterisk: Correct erroneous
+ lost packet information in RTCP reports RTCP's calculation of the
+ number of lost packets in an RTP stream is based on that stream's
+ sequence number count, the number of received packets, and how
+ many packets we expect to receive. When the SSRC for an RTP
+ stream changes, there can - and almost always will be - a large
+ jump in the next packet's timestamp and sequence number. If we
+ don't reset the number of received packets, sequence number
+ count, and other metrics used by RTCP, the next RR/SR report will
+ use the previous SSRC's values to calculate the lost packet count
+ for the new SSRC - resulting in a very large number of lost
+ packets. This patch modifies res_rtp_asterisk such that, if it
+ detects a SSRC change, it will reset the various values used by
+ the RTCP calculations. From the perspective of RTCP, this appears
+ as a new media stream - which is what it is. Review:
+ https://reviewboard.asterisk.org/r/2886/ (closes issue AST-1174)
+ Reported by: Thomas Arimont ........ Merged revisions 400089 from
+ http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
+ revisions 400093 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 400108 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+ * /, configure, configure.ac: Add check for openSUSE when detecting
+ bfd library In ASTERISK-17842, some additional library checks
+ were added to the configure script so that the bfd library could
+ be found on CentOS and Fedora systems. As it turns out, openSUSE
+ requires an additional library. This patch adds another check to
+ the configure script for openSUSE that will add that library.
+ Review: https://reviewboard.asterisk.org/r/2885/ (closes issue
+ AST-1169) Reported by: Guenther Kelleter ........ Merged
+ revisions 400073 from
+ http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
+ revisions 400075 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 400077 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+ * main/cdr.c, /: CDR: Improve handling of parking; resolve
+ assertion when originating into park This patch covers two
+ problems: 1) Currently, when a call is transferred into a parking
+ lot from a bridge (using either the blind transfer or one touch
+ parking mechanisms), the application fails to be set to "Park" in
+ the resulting CDR record for the parked channel. This is due to
+ the ParkedCall message arriving before the BridgeEnter for the
+ channel entering the parking bridge. The ParkedCall message isn't
+ handled as the CDR for the channel has already been finalized
+ (due to the channel having left its two party bridge), and the
+ BridgeEnter - which creates the new CDR - doesn't have the
+ parking information. This patch modifies the behavior so that
+ reception of a ParkedCall message will - if not handled by a CDR
+ chain - cause a new CDR to be created and put into the Parking
+ state. 2) It fixes a FRACK that occurred when a channel is
+ originated into a parking space. The DialedPending state - which
+ occurs for both Dialed and Originated channels - assumed that it
+ couldn't handle the parking transitions due to it having a Party
+ B; however, Originated channels don't have a Party B. As such,
+ the existing CDR needs to transition into the parking state -
+ this patch does that. Review:
+ https://reviewboard.asterisk.org/r/2877/ (closes issue
+ ASTERISK-22482) Reported by: Richard Mudgett ........ Merged
+ revisions 400062 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+ * /, apps/app_queue.c: app_queue: Make manager events tolerant of
+ Local channel shenanigans app_queue currently attempts to handle
+ Local channel optimizations in an effort to provide accurate
+ information in Stasis messages (and their corresponding AMI
+ events) as well as the Queue log. Sometimes, however, things
+ don't go as planned. Consider the following scenario: SIP/foo <->
+ L;1 <-> L;2 <-> SIP/agent SIP/agent answers, triggering a Local
+ channel optimization. app_queue will normally do the following: *
+ Listen for the Local optimization events and update our agent
+ accordingly to SIP/agent in the queue log and messages * When we
+ get a hangup, publish the AgentComplete event based on our
+ information (SIP/foo and SIP/agent) However, as with all things
+ that depend on sanity from something as capricious as Local
+ channels, things can go wrong: (1) SIP/agent immediately hangs up
+ upon answering. This triggers a race condition between
+ termination messages coming from SIP/agent and the ongoing Local
+ channel optimization messages. (Note that this can also occur
+ with SIP/foo) (2) In a race condition, Asterisk can (rarely)
+ deliver the hangup messages prior to the Local channel
+ optimization. In that case, the messages *may* arrive to
+ app_queue in the following order: * Hangup SIP/Agent * Hangup
+ SIP/foo * Optimize L;1/L;2 * Hangup L;2 * Hangup L;1 When
+ app_queue receives the hangup of the agent or the caller, it will
+ attempt to publish the AgentComplete event. However, it now has a
+ problem - it thinks its agent is the ;1 side of the Local
+ channel, as it never received the optimization event. At the same
+ time, that channel is already gone. This results in getting NULL
+ from the Stasis cache. What's more, we can't really wait for the
+ optimization message, as we are currently handling the hangup of
+ the channel that the optimization event would tell us to use.
+ This patch modifies the behavior in app_queue such that, since we
+ still have a lot of pertinent queue information (interface, queue
+ name, etc.), we now raise the event with what information we
+ know. The channels involved now may or may not be present. Users
+ will still at least get the "AgentComplete" event, which
+ "completes" the known Agent information. Review:
+ https://reviewboard.asterisk.org/r/2878/ (closes issue
+ ASTERISK-22507) Reported by: Richard Mudgett ........ Merged
+ revisions 400060 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+ * main/manager.c, /: manager: Fix crash when appending a manager
+ channel variable In r399887, a minor performance improvement was
+ introduced by not allocating the manager variable struct if it
+ wasn't used. Unfortunately, when directly accessing an
+ ast_channel struct, manager assumed that the struct was always
+ allocated. Since this was no longer the case, things got a bit
+ crashy. This fixes that problem by simply bypassing appending
+ variables if the manager channel variable struct isn't there.
+ ........ Merged revisions 400058 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2013-09-27 21:58 +0000 [r400016-400021] Richard Mudgett <rmudgett@digium.com>
+
+ * apps/app_cdr.c, res/res_parking.c, /: app_cdr and res_parking:
+ Fix some resource leaks. * app_cdr left the ResetCDR application
+ registered. * res_parking leaked a ref to config global. (closes
+ issue ASTERISK-22566) Reported by: Corey Farrell Patches:
+ ASTERISK-22566-r2.patch (license #5909) patch uploaded by Corey
+ Farrell ........ Merged revisions 400020 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+ * channels/sip/reqresp_parser.c, /, channels/chan_sip.c: chan_sip:
+ Increase some scratch buffer sizes dealing with caller id. *
+ Eliminated an unnecessary initialization in check_user_full().
+ (closes issue ASTERISK-22477) Reported by: Michael Shepelev
+ ........ Merged revisions 400013 from
+ http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
+ revisions 400014 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 400015 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2013-09-27 19:18 +0000 [r400000] Sean Bright <sean@malleable.com>
+
+ * configs/sip.conf.sample: Remove some trailing whitespace and
+ steal revision 400000.
+
+2013-09-27 18:28 +0000 [r399991] Kevin Harwell <kharwell@digium.com>
+
+ * /, res/res_pjsip.c, res/res_pjsip_session.c,
+ include/asterisk/res_pjsip.h, res/res_pjsip.exports.in:
+ res_pjsip: crash when using localnet and
+ external_signaling_address options There was a collision of
+ mod_data use on the transaction between using a nat hook and an
+ session response callback. During state change it was assumed
+ what was in the mod_data was nothing or the response callback.
+ However, it was possible for it to also contain a nat hook thus
+ resulting in a bad cast and a crash. Added the ability to store
+ multiple data elements in mod_data via a hash table. In this
+ instance, mod_data now stores a hash table of the two values that
+ can be retrieved using an associated string key. (closes issue
+ ASTERISK-22394) Reported by: Rusty Newton Review:
+ https://reviewboard.asterisk.org/r/2843/ ........ Merged
+ revisions 399990 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2013-09-27 17:46 +0000 [r399978] Jonathan Rose <jrose@digium.com>
+
+ * channels/sip/include/sip.h, /, channels/chan_sip.c: chan_sip:
+ Reject calls on 200 OKs if no SDP has been received When Asterisk
+ receives a 200 OK in response to an invite, that peer should have
+ sent an SDP at some point by then. If the channel has never
+ received an SDP, media won't have been set and the remote address
+ won't be known. Endpoints in general should not be doing this.
+ This patch makes it so that Asterisk will simply hang up a call
+ if it sends a 200 OK at this point. So far this odd behavior for
+ endpoints has only been observed in tests which involved manually
+ created SIP transactions in SIPp. (closes issue ASTERISK-22424)
+ Reported by: Jonathan Rose Review:
+ https://reviewboard.asterisk.org/r/2827/ ........ Merged
+ revisions 399939 from
+ http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
+ revisions 399962 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 399976 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2013-09-27 17:11 +0000 [r399938] Richard Mudgett <rmudgett@digium.com>
+
+ * include/asterisk/astobj2.h, tests/test_astobj2.c, main/astobj2.c,
+ /: astobj2: Remove OBJ_CONTINUE support. OBJ_CONTINUE was a
+ strange feature that came into the world under suspicious
+ circumstances to support an abuse of the ao2_container by
+ chan_iax2. Since chan_iax2 no longer uses OBJ_CONTINUE, it is
+ safe to remove it. The simplified code should help performance
+ slightly and make understanding the code easier. Review:
+ https://reviewboard.asterisk.org/r/2887/ ........ Merged
+ revisions 399937 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2013-09-27 14:35 +0000 [r399925] Mark Michelson <mmichelson@digium.com>
+
+ * /, bridges/bridge_native_rtp.c: Fix refleaks of ast_rtp_instance
+ structures. These refleaks were causing bridged calls not to
+ close their RTP ports. Thus a call would leave open 4 ports (RTP
+ for party A, RTCP for party A, RTP for party B, and RTCP for
+ party B). This led to an eventual depletion of available RTP
+ ports. ........ Merged revisions 399924 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2013-09-27 14:08 +0000 [r399913] Kinsey Moore <kmoore@digium.com>
+
+ * tests/test_cel.c, main/cel.c, /, include/asterisk/cel.h: Restore
+ usefulness of the CEL Peer field This change makes the CEL peer
+ field useful again for BRIDGE_ENTER and BRIDGE_EXIT events and
+ fills the field with a comma-separated list of all channels in
+ the bridge other than the channel that is entering or exiting the
+ bridge. Review: https://reviewboard.asterisk.org/r/2840/ (closes
+ issue ASTERISK-22393) ........ Merged revisions 399912 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2013-09-26 18:51 +0000 [r399898] Kevin Harwell <kharwell@digium.com>
+
+ * res/res_pjsip_registrar.c, include/asterisk/res_pjsip.h,
+ res/res_pjsip.exports.in, /, res/res_pjsip/security_events.c:
+ pjsip: race condition in registrar While handling a registration
+ request a race condition could occur if/when two+ clients
+ registered at the same time. This happened when one request
+ obtained a copy of the current contacts for an AOR and another
+ request did the same before the first request updated. Thus the
+ second would update and overwrite the first (or vice-versa
+ depending on which actually updated first). In the case of it
+ being the same contact two "add" events would be raised. pjsip
+ registration handling is now serialized to alleviate this issue.
+ (closes issue AST-1213) Reported by: John Bigelow Review:
+ https://reviewboard.asterisk.org/r/2860/ ........ Merged
+ revisions 399897 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2013-09-26 14:13 +0000 [r399875] Rusty Newton <rnewton@digium.com>
+
+ * /, apps/app_dial.c: Adding a few words to the Dial option 'r'
+ help text to clarify its tone argument description ........
+ Merged revisions 399874 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2013-09-25 20:38 +0000 [r399844] Richard Mudgett <rmudgett@digium.com>
+
+ * channels/sig_ss7.c, channels/chan_dahdi.c, /: chan_dahdi: CLI
+ "core stop gracefully" has needless delay for PRI and SS7. The
+ PRI and SS7 link control threads are not stopped correctly when
+ the chan_dahdi.so module is unloaded. The link control threads
+ pri_dchannel() and ss7_linkset() are not awakened from a poll()
+ to cancel the thread. * Added a SIGURG signal after requesting
+ the thread cancel to break the link control thread poll()
+ immediately. For SS7 it was slightly worse, the link poll()
+ timeout would always be whatever was the last libss7 scheduled
+ event time used. If no libss7 scheduled event was pending, the
+ thread could run more often than necessary. * Set nextms to 60
+ seconds for the ss7_linkset() poll() if there is no other libss7
+ scheduled event. ........ Merged revisions 399818 from
+ http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
+ revisions 399834 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 399842 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2013-09-25 19:43 +0000 [r399799] Rusty Newton <rnewton@digium.com>
+
+ * /, res/res_pjsip.c: Broke the build - Fixing XML DTD violation
+ added in r399782, missing <para> tags inside a <note> ........
+ Merged revisions 399798 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2013-09-25 19:29 +0000 [r399797] Michael L. Young <elgueromexicano@gmail.com>
+
+ * /, channels/chan_sip.c: chan_sip: Fix Realtime Peer Update
+ Problem When Un-registering And Expires Header In 200ok 1st Issue
+ When a realtime peer sends an un-REGISTER request, Asterisk
+ un-registers the peer but the database table record still has
+ regseconds and fullcontact for the peer. This results in calls
+ attempting to be routed to the peer which is no longer
+ registered. The expected behavior is to get busy/congested when
+ attempting to call an un-registered peer through the dialplan.
+ What was discovered is that we are clearing out the peer's
+ registration in the database in parse_register_contact() when
+ calling expire_register() but then upon returning from
+ parse_register_contact(), update_peer() is run which stores back
+ in the database table regseconds and fullcontact. 2nd Issue The
+ reporter pointed out that the 200 ok being returned by Asterisk
+ after un-registering a peer contains a Contact header with
+ ;expires= and the Expires header is not set to 0. This is
+ actually a regression. Tests were created for this second issue
+ (ASTERISK-22548). The tests have been reviewed and a Ship It! was
+ received on those tests. This patch does the following: * Do not
+ ignore the Expires header value even when it is set to 0. The
+ patch sets the pvt->expiry earlier on in the function so that it
+ is set properly and used. * If pvt->expiry is 0, do not call
+ update_peer since that means the peer has already been
+ un-registered and there is no need to update the database record
+ again since nothing has changed. (closes issue ASTERISK-22428)
+ Reported by: Ben Smithurst Tested by: Ben Smithurst, Michael L.
+ Young Patches:
+ asterisk-22428-rt-peer-update-and-expires-header.diff by Michael
+ L. Young (license 5026) Review:
+ https://reviewboard.asterisk.org/r/2869/ ........ Merged
+ revisions 399794 from
+ http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
+ revisions 399795 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 399796 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2013-09-25 18:38 +0000 [r399782] Rusty Newton <rnewton@digium.com>
+
+ * /, res/res_pjsip.c: Fixing documentation for the configOption
+ "external_media_address" of both Endpoints and Transports
+ Re-using some of Mark Michelson's text from an E-mail discussion
+ for: * Modifying synopsis for both options * Adding description
+ to both options * Changing name of "external_media_address" for
+ Endpoint configuration to "media_address" in anticipation of the
+ option name being changed. (As it is not really specific to
+ external destinations) (issue ASTERISK-22405) (closes issue
+ ASTERISK-22405) Reported by: Rusty Newton Review:
+ https://reviewboard.asterisk.org/r/2850/ ........ Merged
+ revisions 399781 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2013-09-24 22:55 +0000 [r399737-399750] Richard Mudgett <rmudgett@digium.com>
+
+ * /, main/astobj2.c: astobj2: Made use OBJ_SEARCH_xxx identifiers
+ as field enum values internally. * Made ao2_unlink to protect
+ itself from stray OBJ_SEARCH_xxx values passed in. ........
+ Merged revisions 399749 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+ * channels/chan_iax2.c, /: chan_iax2: Prevent some needless
+ breaking of the native IAX2 bridge. * Clean up some twisted code
+ in the iax2_bridge() loop. * Add AST_CONTROL_VIDUPDATE and
+ AST_CONTROL_SRCCHANGE to a list of frames to prevent the native
+ bridge loop from breaking. * Passing the
+ AST_CONTROL_T38_PARAMETERS frame should also allow FAX over a
+ native IAX2 bridge. (issue ABE-2912) Review:
+ https://reviewboard.asterisk.org/r/2870/ ........ Merged
+ revisions 399697 from
+ http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
+ revisions 399708 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 For v12 and
+ above this is really just documentation until IAX2 native
+ bridging is restored. ........ Merged revisions 399736 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2013-09-24 19:22 +0000 [r399667-399696] Matthew Jordan <mjordan@digium.com>
+
+ * apps/app_queue.c, /: app_queue: Don't be quite so aggressive in
+ initializing the array We only need the first character. ........
+ Merged revisions 399695 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+ * apps/app_queue.c, /: app_queue: Initialize array holding
+ MixMonitor exec options If the channel variable MONITOR_EXEC is
+ set, app_queue will pass the specified execution parameters to
+ the MixMonitor application when a queue is recorded. If that
+ channel variable is not set, the buffer that holds the escaped
+ value was not being initialized to NULL, and so would be passed
+ to the MixMonitor application with garbage. Hilarity ensued as
+ app_mixmonitor attempted to execute gobeldy-gook. ........ Merged
+ revisions 399681 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+ * main/stasis_bridges.c, tests/test_cdr.c, main/cdr.c, /: Fix a
+ performance problem CDRs There is a large performance price
+ currently in the CDR engine. We currently perform two
+ ao2_callback calls on a container that has an entry for every
+ channel in the system. This is done to create matching pairs
+ between channels in a bridge. As such, the portion of the CDR
+ logic that this patch deals with is how we make pairings when a
+ channel enters a mixing bridge. In general, when a channel enters
+ such a bridge, we need to do two things: (1) Figure out if anyone
+ in the bridge can be this channel's Party B. (2) Make pairings
+ with every other channel in the bridge that is not already our
+ Party B. This is a two step process. In the first step, we look
+ through everyone in the bridge and see if they can be our Party B
+ (single_state_process_bridge_enter). If they can - yay! We mark
+ our CDR as having gotten a Party B. If not, we keep searching. If
+ we don't find one, we wait until someone joins who can be our
+ Party B. Step 2 is where we changed the logic
+ (handle_bridge_pairings and bridge_candidate_process).
+ Previously, we would first find candidates - those channels in
+ the bridge with us - from the active_cdrs_by_channel container.
+ Because a channel could be a candidate if it was Party B to an
+ item in the container, the code implemented multiple
+ ao2_container callbacks to get all the candidates. We also had to
+ store them in another container with some other meta information.
+ This was rather complex and costly, particularly if you have 300
+ Local channels (600 channels!) going at once. Luckily, none of it
+ is needed: when a channel enters a bridge (which is when we're
+ figuring all this stuff out), the bridge snapshot tells us the
+ unique IDs of everyone already in the bridge. All we need to do
+ is: For all channels in the bridge: If the channel is us or our
+ Party B that we got in step 1, skip it Compare us and the
+ candidate to figure out who is Party A (based on some specific
+ rules) If we are Party A: Make a new CDR for us, append it to our
+ chain, and set the candidate as Party B If they are Party A: If
+ they don't have a Party B: Make a new CDR for them, append us to
+ their chain, and us as Party B Otherwise: Copy us over as Party B
+ on their existing CDR. This patch does that. Because we now use
+ channel unique IDs to find the candidates during bridging,
+ active_cdrs_by_channel now looks up things using uniqueid instead
+ of channel name. This makes the more complex code simpler; it
+ does, however, have the drawback that dialplan applications and
+ functions will be slightly slower as they have to iterate through
+ the container looking for the CDR by name. That's a small price
+ to pay however as the bridging code will be called a lot more
+ often. This patch also does two other minor changes: (1) It
+ reduces the container size of the channels in a bridge snapshot
+ to 1. In order to be predictable for multi-party bridges, the
+ order of the channels in the container must be stable; that is,
+ it must always devolve to a linked list. (2) CDRs and the
+ multi-party test was updated to show the relationship between two
+ dialed channels. You still want to know if they talked -
+ previously, dialed channels were always ignored, which is wrong
+ when they have managed to get a Party B. (closes issue
+ ASTERISK-22488) Reported by: Richard Mudgett Review:
+ https://reviewboard.asterisk.org/r/2861/ ........ Merged
+ revisions 399666 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2013-09-23 12:03 +0000 [r399625] Joshua Colp <jcolp@digium.com>
+
+ * res/res_pjsip.c, res/res_pjsip_session.c, /: Fix crash in
+ res_pjsip on load if error occurs, and prevent unloading of
+ res_pjsip and res_pjsip_session. During load time in res_pjsip if
+ an error occurred the operation would attempt to rollback all
+ operations done during load. This is not permitted by PJSIP as it
+ will assert if the operation has not been done. This fix changes
+ the code so it will only rollback what has been initialized
+ already. Further changes also prevent res_pjsip and
+ res_pjsip_session from being unloaded. This is due to limitations
+ within PJSIP itself. The library environment can only be changed
+ to a certain extent and does not provide the ability, currently,
+ to deinitialize certain required functionality. (closes issue
+ ASTERISK-22474) Reported by: Corey Farrell ........ Merged
+ revisions 399624 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2013-09-21 04:49 +0000 [r399578-399608] Richard Mudgett <rmudgett@digium.com>
+
+ * res/res_rtp_asterisk.c, /: res_rtp_asterisk: Fix ref leaks in
+ ast_rtcp_read(). Moved rtcp_report RAII_VAR declaration into the
+ loop so it is unref'ed after every loop. Moved message_blob to
+ loop and switched it to a regular variable. The regular variable
+ was used since message_blob is used in a very contained way.
+ (closes issue ASTERISK-22565) Reported by: Corey Farrell Patches:
+ rtcp_report-leak.patch (license #5909) patch uploaded by Corey
+ Farrell Tested by: Corey Farrell ........ Merged revisions 399607
+ from http://svn.asterisk.org/svn/asterisk/branches/12
+
+ * /, main/media_index.c: media_index: Fix
+ process_description_file() memory leak of file_id_persist.
+ ........ Merged revisions 399596 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+ * /, main/features_config.c: features_config: Fix config ref leak
+ of parkinglots. This leak happend for just about every channel
+ created. ........ Merged revisions 399585 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+ * /, apps/app_queue.c: app_queue: Fix json blob ref leak. The json
+ ref from queue_member_blob_create() was never released. ........
+ Merged revisions 399583 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+ * main/json.c, /: json: Make it obvious that ast_json_unref() is
+ NULL safe. It looked like the safety check was done after the
+ NULL pointer was used. ........ Merged revisions 399576 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2013-09-20 22:44 +0000 [r399566] Kinsey Moore <kmoore@digium.com>
+
+ * main/config_options.c, /: Ensure global types in the config
+ framework are initialized If a config object was allocated but
+ one of its global objects was never encountered, then the global
+ object's defaults were never applied. Ensure that global objects
+ are initialized properly upon allocation instead of on
+ configuration. Review: https://reviewboard.asterisk.org/r/2866/
+ ........ Merged revisions 399564 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 399565 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2013-09-20 22:06 +0000 [r399554] Jonathan Rose <jrose@digium.com>
+
+ * main/dial.c, /: originate/call forwarding: Fix a crash when
+ forwarding a call from originate (closes issue ASTERISK-22487)
+ Reported by: David M. Lee Review:
+ https://reviewboard.asterisk.org/r/2868/ ........ Merged
+ revisions 399553 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2013-09-20 16:18 +0000 [r399533] Joshua Colp <jcolp@digium.com>
+
+ * /, channels/chan_pjsip.c: Add a missing session supplement
+ unregistration in chan_pjsip for ACKs. (closes issue
+ ASTERISK-22453) Reported by: Corey Farrell Patches:
+ chan_pjsip_session_unregister_supplement.patch uploaded by Corey
+ Farrell (license 5909) ........ Merged revisions 399531 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2013-09-20 14:26 +0000 [r399515] Kevin Harwell <kharwell@digium.com>
+
+ * /, main/logger.c: Fix memory leak in logger. Fixed a memory leak
+ discovered in the logger where a temporary string buffer was not
+ being freed. (closes issue ASTERISK-22540) Reported by: John
+ Hardin ........ Merged revisions 399513 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 399514 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2013-09-19 23:20 +0000 [r399503] Richard Mudgett <rmudgett@digium.com>
+
+ * /, main/optional_api.c: optional_api: Make always use the
+ standard malloc functions even with MALLOC_DEBUG. ........ Merged
+ revisions 399501 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2013-09-19 17:01 +0000 [r399459] Jonathan Rose <jrose@digium.com>
+
+ * /, channels/chan_sip.c: chan_sip: Make direct media reinvites for
+ T38 put Asterisk in the media path Prior to this patch, Asterisk
+ would incorrectly use the previous endpoint addresses in SDP in
+ spite of providing its own port. T38 is never meant to be done
+ through directmedia and Asterisk should always be in the media
+ path for these streams. (closes issue ASTERISK-17273) Reported
+ by: Kevin Stewart (closes issue ASTERISK-18706) Reported by:
+ Jeremy Kister Review: https://reviewboard.asterisk.org/r/2853/
+ ........ Merged revisions 399456 from
+ http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
+ revisions 399457 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 399458 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2013-09-18 20:04 +0000 [r399405] Kinsey Moore <kmoore@digium.com>
+
+ * /, main/abstract_jb.c: Fix jitter buffer log file creation This
+ adjusts '/'-to-'#' replacement to replace all instances of '/'
+ instead of just the first to ensure that the jitter buffer log
+ file gets the correct name as per Richard Kenner's suggestion.
+ (closes issue ASTERISK-21036) Reported by: Richard Kenner
+ ........ Merged revisions 399402 from
+ http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
+ revisions 399403 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 399404 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2013-09-18 17:23 +0000 [r399368-399378] Matthew Jordan <mjordan@digium.com>
+
+ * /, build_tools/prep_tarball: Update prep_tarball with new
+ documentation files on the Asterisk wiki This will now pull both
+ a command reference for the version being prepared, as well as an
+ Admin Guide that applies to all versions of Asterisk. (issue
+ ASTERISK-22439) Reported by: Olle Johansson ........ Merged
+ revisions 399351 from
+ http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
+ revisions 399373 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 399376 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+ * /, bridges/bridge_softmix.c: Add a WARNING in bridge_softmix when
+ a timing module isn't loaded If bridge_softmix fails to be
+ created because no timing source is present in Asterisk, this
+ will currently fail gracefully but with (most likely) a generic
+ error message by whatever module tried to create the softmix
+ bridge. This patch adds a more explicit warning so you can
+ actually diagnose and fix the problem. Review:
+ https://reviewboard.asterisk.org/r/2857/ ........ Merged
+ revisions 399353 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 399365 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2013-09-18 17:15 +0000 [r399352] Richard Mudgett <rmudgett@digium.com>
+
+ * main/config_options.c: Make config framework able to reload
+ module configs with multiple config files. The config framework
+ is supposed to be able to load configs that come from multiple
+ config files. The principle example is chan_sip's sip.conf and
+ users.conf. Unfortunately, it only does this correctly on initial
+ load. This patch causes the module's config to be reloaded
+ entirely if any of the config files change. (closes issue
+ ASTERISK-22009) Reported by: Richard Mudgett Review:
+ https://reviewboard.asterisk.org/r/2859/
+
+2013-09-18 14:56 +0000 [r399340] Kevin Harwell <kharwell@digium.com>
+
+ * res/res_pjsip_messaging.c, /: res_pjsip_messaging: Register
+ message technology as pjsip pjsip's message technology was being
+ registered as 'sip', which was causing it to not load due it
+ conflicting with chan_sip's registered 'sip' technology for
+ messaging. It now registers as 'pjsip'. However, due to this
+ change the "to" field for outgoing pjsip messages need to be
+ prefixed with 'pjsip:' instead of 'sip:'. Incoming messages to
+ res_pjsip_messaging will automatically have their "to" fields
+ altered in order to accommodate the change. Outgoing messages
+ also handle changing it back to 'sip' before being sent so the
+ pjsip library will properly handle it. (closes issue
+ ASTERISK-22445) Reported by: Matt Jordan Review:
+ https://reviewboard.asterisk.org/r/2833/ ........ Merged
+ revisions 399339 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2013-09-18 00:13 +0000 [r399295] Michael L. Young <elgueromexicano@gmail.com>
+
+ * /, main/features_config.c: Fix Segfault In features-config.c When
+ Application Has No Arguments Some applications do not require
+ arguments. Therefore, when parsing application maps in
+ features.conf, it is possible that app_data will be set to NULL.
+ * This patch sets app_data to "" if it is NULL. Review:
+ https://reviewboard.asterisk.org/r/2804 ........ Merged revisions
+ 399294 from http://svn.asterisk.org/svn/asterisk/branches/12
+
+2013-09-17 23:10 +0000 [r399284] Mark Michelson <mmichelson@digium.com>
+
+ * res/res_pjsip_sdp_rtp.c, res/res_pjsip/pjsip_configuration.c,
+ res/res_pjsip_t38.c, include/asterisk/res_pjsip.h, /: Change the
+ "external_media_address" PJSIP endpoint option to
+ "media_address". The endpoint option does not apply to
+ communication with external entities. Rather, the option is
+ applied to all communications with the endpoint. The
+ external_media_address transport configuration option may
+ override the endpoint option if it turns out that we are going to
+ be communicating with an external entity. Two things of note: 1)
+ I have not updated the XML documentation. This is being taken
+ care of by Rusty as part of his work on issue ASTERISK-22405 2)
+ This commit is likely to cause testsuite failures since there are
+ tests that use the external_media_address endpoint option, and
+ they will need to be changed over. Well, I'm planning to get that
+ updated ASAP after this commit. (closes issue ASTERISK-22528)
+ reported by Rusty Newton ........ Merged revisions 399283 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2013-09-17 18:44 +0000 [r399269] Kevin Harwell <kharwell@digium.com>
+
+ * main/logger.c, main/asterisk.c, /: Remote console: more output
+ discrepancies The remote console continued to have issues with
+ its output. In this case CLI command output would either not show
+ up (if verbose level = 0) or would contain verbose prefixes (if
+ verbose level > 0) once log messages were sent to the remote
+ console. The fix now now adds verbose prefix data to all new
+ lines contained in a verbose log string. (closes issue
+ ASTERISK-22450) Reported by: David Brillert (closes issue
+ AST-1193) Reported by: Guenther Kelleter Review:
+ https://reviewboard.asterisk.org/r/2825/ ........ Merged
+ revisions 399267 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 399268 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2013-09-17 17:55 +0000 [r399258] Richard Mudgett <rmudgett@digium.com>
+
+ * /, include/asterisk/features_config.h: Fix doxygen to use correct
+ units of features.conf options. ........ Merged revisions 399257
+ from http://svn.asterisk.org/svn/asterisk/branches/12
+
+2013-09-17 17:10 +0000 [r399238-399248] Mark Michelson <mmichelson@digium.com>
+
+ * main/bridge_basic.c, main/features_config.c, /: Fix other
+ timeouts (atxferloopdelay and atxfernoanswertimeout) to use
+ seconds instead of milliseconds. Thanks to Richard Mudgett for
+ pointing this out. ........ Merged revisions 399247 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+ * main/features_config.c, /, include/asterisk/features_config.h,
+ main/bridge_basic.c: Switch transferdigittimeout to be configured
+ as seconds instead of milliseconds. This was an unintentional
+ consequence of the update of features.conf to use the config
+ framework in Asterisk 12. Thanks to Marco Signorini on the
+ Asterisk developers list for pointing out the problem. ........
+ Merged revisions 399237 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2013-09-17 14:58 +0000 [r399226] Kevin Harwell <kharwell@digium.com>
+
+ * apps/confbridge/conf_state_multi_marked.c, /: Confbridge: empty
+ conference not being torn down Confbridge would not properly tear
+ down an empty conference bridge when all users were kicked via
+ end_marked=yes and at least one user was also set to wait_marked.
+ This occurred because while end_marked users were being kicked
+ and at least one was also set to wait_marked then the leave
+ wait_marked handler would be called on that user, but there would
+ be no waiting user (still considered active). The waiting users
+ would decrement and now be negative. The conference would remain,
+ but be put into an inactive state. The solution was to move from
+ the active list to the wait list, those users with wait_marked
+ set right before kicking. This allows both the active and wait
+ users to decrement correctly and the confbridge to tear down
+ properly. A crashed also occurred when trying to list the
+ specific conference from the CLI. This happened because the
+ conference specified was invalid. Since the conference properly
+ tears down now there is no way to reference it thus alleviating
+ the crash as well. (closes issue ASTERISK-21859) Reported by:
+ Chris Gentle Review: https://reviewboard.asterisk.org/r/2848/
+ ........ Merged revisions 399222 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 399225 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2013-09-16 18:36 +0000 [r399161-399208] Richard Mudgett <rmudgett@digium.com>
+
+ * tests/test_ari_model.c, /: Fix module load errors for
+ test_ari_model.so. You cannot use a function pointer variable
+ with an external function from another dynamically loaded module
+ because data variables are always resolved even with RTLD_LAZY. *
+ Added wrapper functions for ast_ari_validate_int() and
+ ast_ari_validate_string() to use instead for the function pointer
+ variable. (closes issue ASTERISK-22457) Reported by: David M. Lee
+ ........ Merged revisions 399207 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+ * apps/app_speech_utils.c, /, res/res_speech.exports.in:
+ app_speech_utils: Fix unresolved symbol ast_speech_get_setting().
+ Fixes regression introduced by -r374096. * Made
+ res_speech.export.in export ast_* symbols instead of specific
+ functions. * Made app_speech_utils.c declare that it is dependent
+ upon res_speech. (issue ASTERISK-17136) Reported by: Richard
+ Kenner ........ Merged revisions 399197 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+ * channels/chan_iax2.c, /: chan_iax2: Fix saving the wrong expiry
+ time in astdb. When a new IAX2 client registers, the astdb
+ database is updated with the value of minregexpire defined in
+ iax.conf instead of using the expiry time that is provided by the
+ client. The provided expiry time of the client is updated after
+ inserting the astdb entry. As a consequence, restarting or
+ reloading asterisk creates clients whose registration may expire
+ before they reregister. The clients are therefore unavailable
+ after minregexpire seconds until they reregister. * Move updating
+ of the expiry time to before inserting into the astdb. (closes
+ issue ASTERISK-22504) Reported by: Stefan Wachtler Patches:
+ chan_iax2.c.patch (license #6533) patch uploaded by Stefan
+ Wachtler ........ Merged revisions 399158 from
+ http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
+ revisions 399159 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 399160 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2013-09-16 02:37 +0000 [r399147] Matthew Jordan <mjordan@digium.com>
+
+ * main/cdr.c, /: Filter internal channels out of bridge enter/leave
+ message handling Some channels exist merely as an implementation
+ detail in Asterisk, such as ConfBridge's announcer/recorder
+ channels. These channels should never be exposed to the outside
+ world, or to interfaces that report on Asterisk. We already
+ filter out such channels in snapshot processing; however, we
+ failed to filter out bridge related messages that involved these
+ channels. This patch filters out bridge related messages that are
+ for such channels. This prevents a spurious WARNING message from
+ being displayed when those channels move in and out of bridges.
+ ........ Merged revisions 399146 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2013-09-13 22:19 +0000 [r399138] Richard Mudgett <rmudgett@digium.com>
+
+ * res/parking/parking_bridge_features.c, apps/app_agent_pool.c,
+ include/asterisk/features.h, main/channel.c,
+ res/parking/parking_tests.c, include/asterisk/bridge_channel.h,
+ main/features.c, tests/test_cel.c, main/bridge_channel.c,
+ tests/test_cdr.c, apps/confbridge/conf_chan_announce.c,
+ include/asterisk/bridge.h, res/res_pjsip_refer.c, /,
+ channels/chan_sip.c, res/stasis/control.c, main/bridge.c,
+ main/bridge_basic.c, main/core_unreal.c,
+ res/parking/parking_applications.c, main/core_local.c: Restore
+ Dial, Queue, and FollowMe 'I' option support. The Dial, Queue,
+ and FollowMe applications need to inhibit the bridging initial
+ connected line exchange in order to support the 'I' option. *
+ Replaced the pass_reference flag on ast_bridge_join() with a
+ flags parameter to pass other flags defined by enum
+ ast_bridge_join_flags. * Replaced the independent flag on
+ ast_bridge_impart() with a flags parameter to pass other flags
+ defined by enum ast_bridge_impart_flags. * Since the Dial, Queue,
+ and FollowMe applications are now the only callers of
+ ast_bridge_call() and ast_bridge_call_with_flags(), changed the
+ calling contract to require the initial COLP exchange to already
+ have been done by the caller. * Made all callers of
+ ast_bridge_impart() check the return value. It is important. As a
+ precaution, I also made the compiler complain now if it is not
+ checked. * Did some cleanup in parking_tests.c as a result of
+ checking the ast_bridge_impart() return value. An independent,
+ but associated change is: * Reduce stack usage in
+ ast_indicate_data() and add a dropping redundant connected line
+ verbose message. (closes issue ASTERISK-22072) Reported by:
+ Joshua Colp Review: https://reviewboard.asterisk.org/r/2845/
+ ........ Merged revisions 399136 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2013-09-13 20:55 +0000 [r399101] David M. Lee <dlee@digium.com>
+
+ * /, main/astobj2.c: Don't write to /tmp/refs when REF_DEBUG is not
+ defined. If MALLOC_DEBUG is enabled, then the debug destructor
+ for the container is used, which would erroneously write to
+ /tmp/refs. This patch only uses the debug destructor if ref_debug
+ is used. (closes issue ASTERISK-22536) ........ Merged revisions
+ 399098 from http://svn.asterisk.org/svn/asterisk/branches/1.8
+ ........ Merged revisions 399099 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 399100 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2013-09-13 14:50 +0000 [r399082-399084] Mark Michelson <mmichelson@digium.com>
+
+ * res/res_pjsip.c, res/res_pjsip_pubsub.c, res/res_pjsip_session.c,
+ include/asterisk/res_pjsip.h, res/res_pjsip.exports.in, /: Create
+ more accurate Contact headers for dialogs when we are the UAS.
+ (closes issue AST-1207) reported by John Bigelow Review:
+ https://reviewboard.asterisk.org/r/2842 ........ Merged revisions
+ 399083 from http://svn.asterisk.org/svn/asterisk/branches/12
+
+ * res/res_pjsip/config_auth.c, /,
+ res/res_pjsip_outbound_authenticator_digest.c,
+ res/res_pjsip_authenticator_digest.c: Change how realms are
+ handled for outbound authentication. With this change, if no
+ realm is specified in an outbound auth section, then we will
+ simply match the realm that was present in the 401/407 challenge.
+ (closes issue ASTERISK-22471) Reported by George Joseph (closes
+ issue ASTERISK-22386) Reported by Rusty Newton Patches:
+ outbound_auth_realm_v4.patch uploaded by George Joseph (License
+ #6322) ........ Merged revisions 399059 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2013-09-13 14:43 +0000 [r399080-399081] David M. Lee <dlee@digium.com>
+
+ * /: Recorded merge of revisions 399035,399049 from
+ http://svn.asterisk.org/svn/asterisk/branches/12 These were lost
+ in r399071
+
+ * /: Put merge tracking for r399039 back.
+
+2013-09-13 14:27 +0000 [r399071] Rusty Newton <rnewton@digium.com>
+
+ * /, res/res_pjsip_endpoint_identifier_ip.c: Broke the build!
+ Forgot para tags within my description.
+ https://bamboo.asterisk.org/bamboo/browse/AST-ATRUNKBUILD-304
+ ........ Merged revisions 399064 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2013-09-13 14:22 +0000 [r399042-399051] David M. Lee <dlee@digium.com>
+
+ * res/res_pjsip_log_forwarder.c (added), res/res_pjsip_logger.c,
+ res/res_rtp_asterisk.c, /: res_pjsip: Forward PJSIP logging to
+ Asterisk logging This patch uses PJSIP's pj_log_set_log_func() to
+ forward PJSIP's log messages to Asterisk's logger. This is done
+ in a new module: res_pjsip_log_forwarder.so. This patch sets
+ defaultenabled on the existing res_pjsip_logger.so to no, since
+ logging every SIP packet seems a bit odd to do by default, and is
+ (hopefully) less necessary with regular PJSIP logging. It also
+ removes res_rtp_asterisk's disabling of PJSIP logging. (closes
+ issue ASTERISK-22360) Reported by: Joshua Colp Review:
+ https://reviewboard.asterisk.org/r/2830/ ........ Merged
+ revisions 399049 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+ * /, res/res_http_websocket.c: ARI: Fix WebSocket response when
+ subprotocol isn't specified When I moved the ARI WebSocket from
+ /ws to /ari/events, I added code to allow a WebSocket to connect
+ without specifying the subprotocol if there's only one
+ subprotocol handler registered for the WebSocket. Naively, I
+ coded it to always respond with the subprotocol in use.
+ Unfortunately, according to RFC 6455, if the server's response
+ includes a subprotocol header field that "indicates the use of a
+ subprotocol that was not present in the client's handshake [...],
+ the client MUST _Fail the WebSocket Connection_.", emphasis
+ theirs. This patch correctly omits the Sec-WebSocket-Protocol if
+ one is not specified by the client. (closes issue ASTERISK-22441)
+ Review: https://reviewboard.asterisk.org/r/2828/ ........ Merged
+ revisions 399039 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2013-09-13 14:17 +0000 [r399036] Kinsey Moore <kmoore@digium.com>
+
+ * /, apps/app_meetme.c: Fix several crashes in MeetMeAdmin This
+ change ensures that MeetMeAdmin commands requiring a user
+ actually get a user and fixes another issue where an extra
+ dereference could occur for a last-entered user being ejected if
+ a user identifier was also provided. (closes issue
+ ASTERISK-21907) Reported by: Alex Epshteyn Review:
+ https://reviewboard.asterisk.org/r/2844/ ........ Merged
+ revisions 399033 from
+ http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
+ revisions 399034 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 399035 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2013-09-13 13:28 +0000 [r399032] Rusty Newton <rnewton@digium.com>
+
+ * /, res/res_pjsip_endpoint_identifier_ip.c: 'identify'
+ configObject doesn't have a synopsis Add a straightforward
+ synopsis and description to the identify config object in XML
+ documentation. (issue ASTERISK-22311) (closes issue
+ ASTERISK-22311) Reported By: Rusty Newton ........ Merged
+ revisions 399031 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2013-09-12 23:42 +0000 [r399020-399022] Richard Mudgett <rmudgett@digium.com>
+
+ * /, main/bridge.c: CLI bridge: Fix "bridge destroy <id>" and
+ "bridge kick <id> <chan>" tab completion. These two commands must
+ deal with the live bridges container for tab completion and not
+ the stasis cache. ........ Merged revisions 399021 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+ * main/bridge.c, /: astobj2: Register the bridges container for
+ debug inspection. ........ Merged revisions 399019 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2013-09-12 23:23 +0000 [r399018] Rusty Newton <rnewton@digium.com>
+
+ * /, res/res_pjsip_acl.c: Documentation fix and improvements to XML
+ configuration help res_pjsip_acl * One bug fix. Made the synopsis
+ for "type" to accurate. * changing the usage of "IP-domains" to
+ "IP addresses" * clarifying the usage for the options, by adding
+ a relevant description for each * modified other areas of the XML
+ help for clarity, such as the module description and a few
+ synopsis changes here and there. See the patch. (issue
+ ASTERISK-22458) (closes issue ASTERISK-22458) Reported By: Rusty
+ Newton Review: https://reviewboard.asterisk.org/r/2823/ ........
+ Merged revisions 399017 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2013-09-12 20:27 +0000 [r399006] Jonathan Rose <jrose@digium.com>
+
+ * channels/sip/include/sip.h, /, channels/chan_sip.c: chan_sip:
+ Revert r398835 due to failing tests involving originate (issue
+ ASTERISK-22424) Reported by: Jonathan Rose ........ Merged
+ revisions 398977 from
+ http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
+ revisions 398986 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 398991 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2013-09-12 16:44 +0000 [r398939] Richard Mudgett <rmudgett@digium.com>
+
+ * main/core_unreal.c, /: core_local: Fix memory corruption race
+ condition. The masquerade super test is failing on v12 with high
+ fence violations and crashing. The fence violations are showing
+ that party id allocated memory strings are somehow getting
+ corrupted in the bridge_reconfigured_connected_line_update()
+ function. The invalid string values happen to be the freed memory
+ fill pattern. After much puzzling, I deduced that the
+ bridge_reconfigured_connected_line_update() is copying a string
+ out of the source channel's caller party id struct just as
+ another thread is updating it with a new value. The copying
+ thread is using the old string pointer being freed by the
+ updating thread. A search of the code found the
+ unreal_colp_redirect_indicate() routine updating the caller party
+ id's without holding the channel lock. A latent bug in v1.8 and
+ v11 hatched in v12 because of the bridging and connected line
+ changes. :) (issue ASTERISK-22221) Reported by: Matt Jordan
+ Review: https://reviewboard.asterisk.org/r/2839/ ........ Merged
+ revisions 398938 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2013-09-12 15:23 +0000 [r398928] David M. Lee <dlee@digium.com>
+
+ * res/res_pjsip.c, /: Fix symbol collision with pjsua. We shouldn't
+ be exporting any symbols that start with pjsip_. ........ Merged
+ revisions 398927 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2013-09-12 00:04 +0000 [r398883-398887] Rusty Newton <rnewton@digium.com>
+
+ * /, apps/app_queue.c: 'queue add member' help text correction You
+ are adding dial strings to the queue, not channels. An aribitrary
+ string could be used, but you are typically referencing a
+ channel. Correcting the command help text. (issue ASTERISK-22263)
+ (closes issue ASTERISK-22263) Reported By: Rusty Newton ........
+ Merged revisions 398884 from
+ http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
+ revisions 398885 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 398886 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+ * configs/chan_dahdi.conf.sample, /: Documentation fix -
+ waitfordialtone is not boolean, it's time in milliseconds
+ Changing text in chan_dahdi.conf sample to be accurate. (issue
+ ASTERISK-22308) (closes issue ASTERISK-22308) Reported By:
+ Malcolm Davenport ........ Merged revisions 398880 from
+ http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
+ revisions 398881 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 398882 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2013-09-11 20:03 +0000 [r398838] Jonathan Rose <jrose@digium.com>
+
+ * /, channels/chan_sip.c, channels/sip/include/sip.h: chan_sip:
+ Reject calls without prior SDP on 200 OK If we receive a 200 OK
+ without SDP, we will now check to see if the remote address has
+ been established for that channel's RTP session and if the to tag
+ for that channel has changed from the most recent to tag in a
+ response less than 200. If either a change has been made since
+ the last to-tag was received or the remote address is unset, then
+ we will drop the call. (closes issue ASTERISK-22424) Reported by:
+ Jonathan Rose Review:
+ https://reviewboard.asterisk.org/r/2827/diff/#index_header
+ ........ Merged revisions 398835 from
+ http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
+ revisions 398836 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 398837 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2013-09-11 18:03 +0000 [r398822] Russell Bryant <russell@russellbryant.com>
+
+ * configs/confbridge.conf.sample, /: Fix typo in
+ confbridge.conf.sample The denoise filter requires func_speex,
+ not codec_speex. Fix this in the description of the denoise=yes
+ option in confbridge.conf. ........ Merged revisions 398820 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 398821 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2013-09-11 14:23 +0000 [r398808] Kevin Harwell <kharwell@digium.com>
+
+ * res/res_pjsip_caller_id.c, channels/chan_pjsip.c, /: pjsip:
+ reinvite for connected line updates occurs when it should not
+ Connected line updates are now only sent out if an actual update
+ needs to occur. This happens under the following conditions: 1.
+ The endpoint we are sending to is trusted. 2. Either a
+ P-Asserted-Identity or Remote Party-ID header needs to be
+ added/sent. 3. The connected id's number and name are valid. Also
+ added an SDP when an update is sent out. (closes issue AST-1212)
+ Reported by: John Bigelow Review:
+ https://reviewboard.asterisk.org/r/2831/ ........ Merged
+ revisions 398806 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2013-09-10 18:05 +0000 [r398760] Richard Mudgett <rmudgett@digium.com>
+
+ * main/event.c, res/res_musiconhold.c, main/indications.c,
+ main/asterisk.c, main/xmldoc.c, main/cli.c, /,
+ funcs/func_dialgroup.c, main/heap.c,
+ res/res_pjsip/pjsip_configuration.c: Fix incorrect usages of
+ ast_realloc(). There are several locations in the code base where
+ this is done: buf = ast_realloc(buf, new_size); This is going to
+ leak the original buf contents if the realloc fails. Review:
+ https://reviewboard.asterisk.org/r/2832/ ........ Merged
+ revisions 398757 from
+ http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
+ revisions 398758 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 398759 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2013-09-10 17:50 +0000 [r398751-398755] David M. Lee <dlee@digium.com>
+
+ * utils/check_expr.c, /: Fixed utils directory breakage from
+ r398748, this time with extra hate. ........ Merged revisions
+ 398752 from http://svn.asterisk.org/svn/asterisk/branches/1.8
+ ........ Merged revisions 398753 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 398754 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+ * utils/check_expr.c, /, utils/ael_main.c, utils/conf2ael.c: Fixed
+ utils directory breakage from r398648 ........ Merged revisions
+ 398748 from http://svn.asterisk.org/svn/asterisk/branches/1.8
+ ........ Merged revisions 398749 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 398750 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2013-09-09 23:29 +0000 [r398732] Richard Mudgett <rmudgett@digium.com>
+
+ * main/astmm.c, /: MALLOC_DEBUG: Change fence magic number to be
+ completely different from the freed magic number. Race conditions
+ between freeing a nul terminated string and ast_strdup()'ing it
+ are more likely to be detected if the fence and freed magic
+ numbers are completely different. ........ Merged revisions
+ 398703 from http://svn.asterisk.org/svn/asterisk/branches/1.8
+ ........ Merged revisions 398721 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 398726 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2013-09-09 22:00 +0000 [r398695] Mark Michelson <mmichelson@digium.com>
+
+ * res/res_pjsip_endpoint_identifier_ip.c, /: Add extra debugging to
+ res_pjsip_endpoint_identifier_ip ........ Merged revisions 398694
+ from http://svn.asterisk.org/svn/asterisk/branches/12
+
+2013-09-09 20:13 +0000 [r398641-398652] David M. Lee <dlee@digium.com>
+
+ * /, main/utils.c, include/asterisk/lock.h, main/lock.c: Fix
+ DEBUG_THREADS when lock is acquired in __constructor__ This patch
+ fixes some long-standing bugs in debug threads that were
+ exacerbated with recent Optional API work in Asterisk 12. With
+ debug threads enabled, on some systems, there's a lock ordering
+ problem between our mutex and glibc's mutex protecting its module
+ list (Ubuntu Lucid, glibc 2.11.1 in this instance). In one
+ thread, the module list will be locked before acquiring our
+ mutex. In another thread, our mutex will be locked before locking
+ the module list (which happens in the depths of calling
+ backtrace()). This patch fixes this issue by moving backtrace()
+ calls outside of critical sections that have the mutex acquired.
+ The bigger change was to reentrancy tracking for
+ ast_cond_{timed,}wait, which wrongly assumed that waiting on the
+ mutex was equivalent to a single unlock (it actually suspends all
+ recursive locks on the mutex). (closes issue ASTERISK-22455)
+ Review: https://reviewboard.asterisk.org/r/2824/ ........ Merged
+ revisions 398648 from
+ http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
+ revisions 398649 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 398651 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+ * res/ari/resource_channels.h, /, rest-api/api-docs/channels.json:
+ Multiple revisions 398638-398639 ........ r398638 | dlee |
+ 2013-09-09 14:01:54 -0500 (Mon, 09 Sep 2013) | 1 line Added note
+ about expected behavior of originate ........ r398639 | dlee |
+ 2013-09-09 14:02:27 -0500 (Mon, 09 Sep 2013) | 1 line Added note
+ about expected behavior of originate (the rest of the commit)
+ ........ Merged revisions 398638-398639 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2013-09-08 23:30 +0000 [r398629] Matthew Jordan <mjordan@digium.com>
+
+ * tests/test_cdr.c, /: Update CDR Unit tests to reflect container
+ changes in r398579 When a channel joins a multi-party bridge, the
+ ordering of the CDRs that is created is determined by the
+ ordering of the channels who happen to be in that bridge. When
+ r398579 changed the number of buckets in the container to
+ something sensible, it changed the ordering that the CDRs was
+ created in, causing one of the multiparty tests to fail. This
+ fixes the test with the now expected ordering. ........ Merged
+ revisions 398628 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2013-09-07 01:03 +0000 [r398603-398620] Kinsey Moore <kmoore@digium.com>
+
+ * /, res/res_xmpp.c: Prevent XMPP timeout on blank responses
+ Sometimes the Google Voice servers have a bad habit of sending
+ out 1 byte replies to the xmpp resource. When a blank 1 byte
+ reply is received from the socket the buffer attempts to wait
+ (endlessly) for the rest of the reply from google which
+ effectively blocks the socket and google voice calls will no
+ longer come into the server. This patch allows the xmpp module to
+ correctly detect empty packets and send out ping replies to
+ google. It also sets a socket timeout on the default socket which
+ prevents the xmpp socket from closing and preventing future
+ google voice calls from coming into the server. Furthermore
+ instead of sending an empty reply back to google we send a proper
+ xmpp ping reply back. This also adds several more socket
+ messages. (closes issue ASTERISK-22347) Reported by: Andrew Nagy
+ Review: https://reviewboard.asterisk.org/r/2771 Patches:
+ xmpp_fix_1.diff uploaded by Andrew Nagy (License #6524) ........
+ Merged revisions 398618 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 398619 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+ * /, res/res_xmpp.c, res/res_jabber.c: Multiple revisions
+ 398558,398577 ........ r398558 | kmoore | 2013-09-06 14:28:16
+ -0500 (Fri, 06 Sep 2013) | 17 lines Fix Jabber/XMPP distributed
+ MWI The mailbox and context are swapped on the receiving end for
+ all users of Jabber and XMPP distributed MWI in Asterisk 1.8 and
+ all more recent versions. This swaps those values to be correct
+ when publishing to the internal event system from Jabber/XMPP
+ distributed MWI state. (closes issue ASTERISK-22435) Reported by:
+ abelbeck Tested by: Michael Keuter Patches:
+ asterisk-1.8-res_jabber-aji_handle_pubsub_event.patch uploaded by
+ abelbeck asterisk-11-res_xmpp-xmpp_pubsub_handle_event.patch
+ uploaded by abelbeck ........ Merged revisions 398523 from
+ http://svn.asterisk.org/svn/asterisk/branches/1.8 ........
+ r398577 | kmoore | 2013-09-06 16:00:56 -0500 (Fri, 06 Sep 2013) |
+ 10 lines Commit the remainder of r398523 This is a missing part
+ of the commit in revision 398523 that corrects the name of a
+ variable. (issue ASTERISK-22435) ........ Merged revisions 398576
+ from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........
+ Merged revisions 398558,398577 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 398580 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2013-09-06 21:17 +0000 [r398557-398583] Richard Mudgett <rmudgett@digium.com>
+
+ * main/cdr.c, /: cdr: Change the number of container buckets to be
+ similar to the channels container. * Fix the temporary cdr
+ candidate containers to use a prime number of buckets. ........
+ Merged revisions 398579 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+ * main/core_local.c, /: core_local: Fix LocalOptimizationBegin AMI
+ event missing Source channel snapshot. * Fix the
+ LocalOptimizationBegin AMI event by eliminating an artificial
+ buffer size limitation that is too small anyway. ........ Merged
+ revisions 398572 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+ * main/cdr.c, /: cdr: Fix some ref leaks. * Added missing
+ unregister of the cdr container in cdr_engine_shutdown(). * Fixed
+ ref leak in off nominal path of cdr_object_alloc(). * Removed
+ some unnecessary NULL checks in cdr_object_dtor(). ........
+ Merged revisions 398562 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+ * include/asterisk/astobj2.h, main/cel.c, main/features_config.c,
+ apps/app_agent_pool.c, main/cdr.c, main/udptl.c, /,
+ main/parking.c, main/stasis_config.c: astobj2: Add warn unused
+ attribute to some functions. * Fixed resulting warnings with
+ improper use of ao2_global_obj_replace(). * Made a couple uses of
+ ao2_global_obj_replace_unref(x, NULL) into the equivalent and
+ more appropriate ao2_global_obj_release() call. ........ Merged
+ revisions 398533 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2013-09-06 18:53 +0000 [r398512-398522] Kinsey Moore <kmoore@digium.com>
+
+ * main/http.c, /, res/stasis/app.c: Fix build warnings When
+ AST_DEVMODE is not defined, ast_asserts are not compiled into the
+ binary. In some cases, this means variables are not referenced or
+ are set but unused which causes warnings to show up. (closes
+ issue ASTERISK-22446) Reported by: Jason Parker (qwell) ........
+ Merged revisions 398521 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+ * /, channels/chan_h323.c: Fix chan_h323 compilation This fixes the
+ things in chan_h323 that were missed or ignored in the great
+ channel opaquification and gets chan_h323 back into a compiling
+ state. (closes issue ASTERISK-22365) Reported by: Dmitry Melekhov
+ Patches: chan_h323.patch uploaded by Dmitry Melekhov ........
+ Merged revisions 398510 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 398511 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2013-09-05 21:48 +0000 [r398384-398499] Richard Mudgett <rmudgett@digium.com>
+
+ * /, main/astobj2.c: astobj2: Only define ao2_bt() once. * Make
+ ao2_bt() not use single char variable names. * Fix ao2_bt()
+ formatting. ........ Merged revisions 398498 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+ * channels/chan_iax2.c, /: chan_iax2: Reduce indentation in
+ __attempt_transmit(). * Reduce indentation in
+ __attempt_transmit(). * Don't update the static last error time
+ variable every time in __schedule_action() and socket_read().
+ ........ Merged revisions 398456 from
+ http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
+ revisions 398457 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 398458 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+ * channels/chan_iax2.c, /: chan_iax2: Fix stray reference to worker
+ thread idle_list. * Fix stray reference to idle_list in
+ cleanup_thread_list(). This may be the reason for the note in
+ iax2_process_thread() about threads not being removed from the
+ task lists. * Move cleanup_thread_list(&idle_list) to after the
+ other lists are cleaned up. ........ Merged revisions 398416 from
+ http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
+ revisions 398417 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 398418 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+ * channels/chan_iax2.c, /: chan_iax2: Fix bridgecallno deadlock
+ avoidance. * Fix bridgecallno deadlock avoidance. When doing
+ deadlock avoidance, you need to retest the status of values for
+ each loop to see if you still need the lock for bridgecallno. *
+ As a safety check, after acquiring the bridgecallno lock you
+ should check if iaxs[bridgecallno] is NULL just like the current
+ callno checks. * Move setting thread->iostate to IAX_IOSTATE_IDLE
+ to after processing any deferred frames to ensure that the
+ iostate is IDLE when it is placed back into the idle list.
+ defer_full_frame() tries to ensure iax2_process_thread() wakes up
+ to process the frame. ........ Merged revisions 398379 from
+ http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
+ revisions 398380 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 398381 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2013-09-05 14:10 +0000 [r398369] Mark Michelson <mmichelson@digium.com>
+
+ * /, res/res_pjsip_outbound_registration.c: Clarify server_uri and
+ client_uri registration settings. Used some of Rusty's suggested
+ language plus also included more SIPesque descriptions of where
+ the URIs are actually used in an outgoing REGISTER. (closes issue
+ ASTERISK-22390) reported by Rusty Newton ........ Merged
+ revisions 398368 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2013-09-04 23:07 +0000 [r398304] Richard Mudgett <rmudgett@digium.com>
+
+ * channels/iax2/parser.c, /: chan_iax2: Add missing control frame
+ names to debug frame decode output. ........ Merged revisions
+ 398301 from http://svn.asterisk.org/svn/asterisk/branches/1.8
+ ........ Merged revisions 398302 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 398303 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2013-09-04 22:49 +0000 [r398300] Mark Michelson <mmichelson@digium.com>
+
+ * /, res/res_pjsip_outbound_authenticator_digest.c: Give more
+ detail regarding failures to create request with auth
+ credentials. (issue ASTERISK-22386) ........ Merged revisions
+ 398299 from http://svn.asterisk.org/svn/asterisk/branches/12
+
+2013-09-04 21:37 +0000 [r398284-398287] Jonathan Rose <jrose@digium.com>
+
+ * /, tests/test_voicemail_api.c: unit tests: test_voicemail_api
+ leaks stringfields from snapshots (closes issue ASTERISK-22414)
+ Reported by: Corey Farrell Patches:
+ test_voicemail_api-leaks-11.patch uploaded by coreyfarrell
+ (license 5909) ........ Merged revisions 398285 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 398286 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+ * apps/app_voicemail.c, /: app_voicemail: Fix leaking config
+ objects when msg_id doesn't match (issues ASTERISK-22414)
+ Reported by: Corey Farrell Patch:
+ test_voicemail_api-leaks-11.patch uploaded by coreyfarrell
+ (license 5909) ........ Merged revisions 398281 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 398283 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2013-09-04 16:03 +0000 [r398238] Richard Mudgett <rmudgett@digium.com>
+
+ * channels/chan_misdn.c, /: chan_misdn: Fix misdn debug output
+ printed with arbitrary verbose levels. Fix the misdn debug output
+ to remote consoles. chan_misdn uses ast_console_puts() which
+ doesn't know about verbose levels. Better to use ast_verbose()
+ instead. Without this patch the misdn debug messages are appended
+ to the verbose level which ever was set by the message sent to
+ the console before, i.e. any undefined level. (closes issue
+ AST-1218) Reported by: Guenther Kelleter Patches: misdnlog.patch
+ (license #6372) patch uploaded by Guenther Kelleter ........
+ Merged revisions 398235 from
+ http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
+ revisions 398236 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 398237 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2013-09-04 14:32 +0000 [r398227] Kevin Harwell <kharwell@digium.com>
+
+ * /, res/res_pjsip_outbound_registration.c: Debug messages for
+ pjsip outbound registration Added debug messages indicating that
+ an outbound registration attempt was made and it was successful
+ in pjsip. (closes issue ASTERISK-22388) Reported by: Rusty Newton
+ ........ Merged revisions 398226 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2013-09-03 20:28 +0000 [r398217] Alexandr Anikin <may@telecom-service.ru>
+
+ * /, addons/ooh323c/src/ooh245.c: Fix remote tcs sequence handling
+ on empty tcs received ........ Merged revisions 398214 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 398215 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2013-09-03 18:09 +0000 [r398207] Kinsey Moore <kmoore@digium.com>
+
+ * res/res_pjsip_dtmf_info.c, /: Prevent a crash in
+ res_pjsip_dtmf_info.c This change makes sure that a content type
+ header exists before checking the contents of the header against
+ known SIP INFO DTMF content types. ........ Merged revisions
+ 398206 from http://svn.asterisk.org/svn/asterisk/branches/12
+
+2013-09-03 17:19 +0000 [r398205] David M. Lee <dlee@digium.com>
+
+ * Makefile, /: Fixed 'make clean' for wiki docs ........ Merged
+ revisions 398198 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2013-09-03 14:29 +0000 [r398197] Walter Doekes <walter+asterisk@wjd.nu>
+
+ * /, cel/cel_custom.c: Be a little more verbose when loading
+ cel_custom.conf. Review: https://reviewboard.asterisk.org/r/2805/
+ ........ Merged revisions 398167 from
+ http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
+ revisions 398168 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 398196 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2013-08-30 20:58 +0000 [r398150] David M. Lee <dlee@digium.com>
+
+ * main/asterisk.c, include/asterisk/optional_api.h, /,
+ main/optional_api.c: Fix graceful shutdown crash. The cleanup
+ code for optional_api needs to happen after all of the optional
+ API users and providers have unused/unprovided. Unfortunately,
+ regsitering the atexit() handler at the beginning of main() isn't
+ soon enough, since module destructors run after that. ........
+ Merged revisions 398149 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2013-08-30 20:37 +0000 [r398148] Rusty Newton <rnewton@digium.com>
+
+ * /, configs/pjsip.conf.sample: New pjsip.conf.sample (issue
+ ASTERISK-22145) (closes issue ASTERISK-22145) Reported By: Matt
+ Jordan Review: https://reviewboard.asterisk.org/r/2811/ ........
+ Merged revisions 398147 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2013-08-30 19:55 +0000 [r398124-398140] Kevin Harwell <kharwell@digium.com>
+
+ * /, res/res_pjsip_outbound_registration.c,
+ include/asterisk/sorcery.h, res/res_pjsip.c,
+ res/res_pjsip/config_transport.c, main/sorcery.c: Add a
+ reloadable option for sorcery type objects Some configuration
+ objects currently won't place nice if reloaded. Specifically, in
+ this case the pjsip transport objects. Now when registering an
+ object in sorcery one may specify that the object is allowed to
+ be reloaded or not. If the object is set to not reload then upon
+ reloading of the configuration the objects of that type will not
+ be reloaded. The initially loaded objects of that type however
+ will remain. While the transport objects will not longer be
+ reloaded it is still possible for a user to configure an endpoint
+ to an invalid transport. A couple of log messages were added to
+ help diagnose this problem if it occurs. (closes issue
+ ASTERISK-22382) Reported by: Rusty Newton (closes issue
+ ASTERISK-22384) Reported by: Rusty Newton Review:
+ https://reviewboard.asterisk.org/r/2807/ ........ Merged
+ revisions 398139 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+ * main/config.c, res/res_security_log.c, /, channels/chan_sip.c,
+ main/translate.c, main/named_acl.c, main/indications.c: Fix
+ various memory leaks main/config.c - cleanup cache fie includes
+ res/res_security_log.c - unregister logger level
+ channesl/chan_sip.c - cleanup io context and notify_types
+ main/translator.c - cleanup at shutdown main/named_acl.c -
+ cleanup cli commands main/indications.c -
+ ast_get_indication_tone() unref default_tone_zone if used (closes
+ issues ASTERISK-22378) Reported by: Corey Farrell Patches:
+ config_shutdown.patch uploaded by coreyfarrell (license 5909)
+ res_security_log.patch uploaded by coreyfarrell (license 5909)
+ chan_sip-11.patch uploaded by coreyfarrell (license 5909)
+ indications_refleak.patch uploaded by coreyfarrell (license 5909)
+ named_acl-cli_unreg-trunk.patch uploaded by coreyfarrell (license
+ 5909) translate_shutdown.patch uploaded by coreyfarrell (license
+ 5909) ........ Merged revisions 398102 from
+ http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
+ revisions 398103 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 398116 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2013-08-30 18:38 +0000 [r398101] Matthew Jordan <mjordan@digium.com>
+
+ * /, UPGRADE-12.txt (added), UPGRADE.txt: Update UPGRADE.txt file
+ for Asterisk 12 This simply pulls in the changes that were
+ breaking from the CHANGES file and updates a few other areas
+ accordingly. It also removes the 10 => 11 notes, which are
+ traditionally removed from each major version and stored in the
+ appropriate UPGRADE-X.txt file. ........ Merged revisions 398100
+ from http://svn.asterisk.org/svn/asterisk/branches/12
+
+2013-08-30 18:30 +0000 [r398064-398099] Jonathan Rose <jrose@digium.com>
+
+ * main/features_config.c, /, main/config_options.c:
+ features_config: Ignore parkinglots in features.conf instead of
+ failing to load Parkinglots are defined in res_features.conf now,
+ but this patch fixes features_config so that features don't fail
+ to load when parkinglots are present in features.conf Review:
+ https://reviewboard.asterisk.org/r/2801/ ........ Merged
+ revisions 398068 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+ * main/features_config.c, main/udptl.c, /: features_config: Don't
+ require features.conf to be present for Asterisk to load (closes
+ issue ASTERISK-22426) Reported by: Matt Jordan Review:
+ https://reviewboard.asterisk.org/r/2806/ ........ Merged
+ revisions 398020 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2013-08-30 17:59 +0000 [r398063] Kevin Harwell <kharwell@digium.com>
+
+ * main/manager.c, /, res/res_agi.c: Memory leak fix
+ ast_xmldoc_printable returns an allocated block that must be
+ freed by the caller. Fixed manager.c and res_agi.c to stop
+ leaking these results. (closes issue ASTERISK-22395) Reported by:
+ Corey Farrell Patches: manager-leaks-12.patch uploaded by
+ coreyfarrell (license 5909) res_agi-xmldoc-leaks.patch uploaded
+ by coreyfarrell (license 5909) ........ Merged revisions 398060
+ from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........
+ Merged revisions 398061 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 398062 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2013-08-30 17:11 +0000 [r398024-398026] Richard Mudgett <rmudgett@digium.com>
+
+ * tests/test_substitution.c, /: test_substitution: Fix failing
+ test. Revert the -r392190 change. The original test was correct.
+ The CDR code was actually returning an unititialized buffer.
+ ........ Merged revisions 398025 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+ * tests/test_substitution.c, /: test_substituition: Fix failed test
+ reporting to actually report failure. You cannot put the "Testing
+ <blah> pass/fail" on a single line before actually performing the
+ test. Now any additional failure information is logged before the
+ test pass/fail announcement. * Added an additional CDR(answer,u)
+ test. ........ Merged revisions 398018 from
+ http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
+ revisions 398019 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 398023 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2013-08-30 16:27 +0000 [r398003-398017] Kevin Harwell <kharwell@digium.com>
+
+ * /, apps/app_mixmonitor.c: Fix memory leaks (closes issue
+ ASTERISK-22368) Reported by: Corey Farrell Patches:
+ issueA22368_mixmonitor_free_filename.patch uploaded by wdoekes
+ (license 5674) ........ Merged revisions 398004 from
+ http://svn.asterisk.org/svn/asterisk/branches/10 ........ Merged
+ revisions 398011 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 398016 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+ * main/asterisk.c, /: Check return value on fwrite ........ Merged
+ revisions 398000 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 398002 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2013-08-30 13:40 +0000 [r397987-397990] David M. Lee <dlee@digium.com>
+
+ * rest-api-templates/swagger_model.py, res/ari/ari_websockets.c,
+ channels/sip/include/sip.h, main/asterisk.c, res/res_ari.c,
+ tests/test_optional_api.c (added), /, channels/chan_sip.c,
+ include/asterisk/autoconfig.h.in, configure.ac,
+ rest-api-templates/res_ari_resource.c.mustache,
+ res/ari/internal.h, res/res_http_websocket.c, CHANGES,
+ include/asterisk/compiler.h, include/asterisk/ari.h,
+ main/loader.c, include/asterisk/optional_api.h,
+ build_tools/cflags.xml, configure, res/res_ari_events.c,
+ include/asterisk/http_websocket.h, main/optional_api.c (added):
+ optional_api: Fix linking problems between modules that export
+ global symbols With the new work in Asterisk 12, there are some
+ uses of the optional_api that are prone to failure. The details
+ are rather involved, and captured on [the wiki][1]. This patch
+ addresses the issue by removing almost all of the magic from the
+ optional API implementation. Instead of relying on weak symbol
+ resolution, a new optional_api.c module was added to Asterisk
+ core. For modules providing an optional API, the pointer to the
+ implementation function is registered with the core. For modules
+ that use an optional API, a pointer to a stub function, along
+ with a optional_ref function pointer are registered with the
+ core. The optional_ref function pointers is set to the
+ implementation function when it's provided, or the stub function
+ when it's now. Since the implementation no longer relies on
+ magic, it is now supported on all platforms. In the spirit of
+ choice, an OPTIONAL_API flag was added, so we can disable the
+ optional_api if needed (maybe it's buggy on some bizarre platform
+ I haven't tested on) The AST_OPTIONAL_API*() macros themselves
+ remained unchanged, so existing code could remain unchanged. But
+ to help with debugging the optional_api, the patch limits the
+ #include of optional API's to just the modules using the API.
+ This also reduces resource waste maintaining optional_ref
+ pointers that aren't used. Other changes made as a part of this
+ patch: * The stubs for http_websocket that wrap system calls set
+ errno to ENOSYS. * res_http_websocket now properly increments
+ module use count. * In loader.c, the while() wrappers around
+ dlclose() were removed. The while(!dlclose()) is actually an
+ anti-pattern, which can lead to infinite loops if the module
+ you're attempting to unload exports a symbol that was directly
+ linked to. * The special handling of nonoptreq on systems without
+ weak symbol support was removed, since we no longer rely on weak
+ symbols for optional_api. [1]:
+ https://wiki.asterisk.org/wiki/x/wACUAQ (closes issue
+ ASTERISK-22296) Reported by: Matt Jordan Review:
+ https://reviewboard.asterisk.org/r/2797/ ........ Merged
+ revisions 397989 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+ * res/res_stasis_playback.c, /,
+ include/asterisk/stasis_app_recording.h,
+ res/ari/resource_recordings.h, res/res_stasis_recording.c,
+ res/Makefile, res/ari/ari_model_validators.c,
+ rest-api/api-docs/recordings.json, res/stasis_recording (added),
+ res/ari/resource_recordings.c, res/ari/ari_model_validators.h,
+ res/res_ari_recordings.c: ARI: Implement /recordings/stored API's
+ his patch implements the ARI API's for stored recordings. While
+ the original task only specified deleting a recording, it was
+ simple enough to implement the GET for all recordings, and for an
+ individual recording. The recording playback operation was
+ modified to use the same code for accessing the recording as the
+ REST API, so that they will behave consistently. There were
+ several problems with the api-docs that were also fixed, bringing
+ the ARI spec in line with the implementation. There were some
+ 'wishful thinking' fields on the stored recording model (duration
+ and timestamp) that were removed, because I ended up not
+ implementing a metadata file to go along with the recording to
+ store such information. The GET /recordings/live operation was
+ removed, since it's not really that useful to get a list of all
+ recordings that are currently going on in the system. (At least,
+ if we did that, we'd probably want to also list all of the
+ current playbacks. Which seems weird.) (closes issue
+ ASTERISK-21582) Review: https://reviewboard.asterisk.org/r/2693/
+ ........ Merged revisions 397985 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+ * /: Multiple revisions 397975-397976 ........ r397975 | rmudgett |
+ 2013-08-29 20:00:00 -0500 (Thu, 29 Aug 2013) | 1 line pbx.c: Make
+ ast_str_substitute_variables_full() not mask variables. ........
+ r397976 | rmudgett | 2013-08-29 20:00:41 -0500 (Thu, 29 Aug 2013)
+ | 1 line Revert last commit. ........ Merged revisions
+ 397975-397976 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2013-08-30 01:20 +0000 [r397978] Richard Mudgett <rmudgett@digium.com>
+
+ * main/pbx.c, /: pbx.c: Make pbx_substitute_variables_helper_full()
+ not mask variables. ........ Merged revisions 397977 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2013-08-30 00:11 +0000 [r397962-397969] Mark Michelson <mmichelson@digium.com>
+
+ * res/res_pjsip_pidf.c, /: Sanitize XML output for PIDF bodies.
+ PJSIP's PIDF API does not replace angle brackets with their
+ appropriate counterparts for XML. So we have to do it ourself. In
+ this particular case, the problem had to do with attempting to
+ place an unsanitized SIP URI into an XML node. Now we don't get a
+ 488 from recipients of our PIDF NOTIFYs. ........ Merged
+ revisions 397968 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+ * res/res_pjsip_pidf.c, /: Fix method for creating activities
+ string in PIDF bodies. The previous method did not allocate
+ enough space to create the entire string, but adjusted the
+ string's slen value to be larger than the actual allocation. This
+ resulted in garbled text in NOTIFY requests from Asterisk. This
+ method allocates the proper amount of space first and then writes
+ the content into the buffer. ........ Merged revisions 397960
+ from http://svn.asterisk.org/svn/asterisk/branches/12
+
+2013-08-29 22:49 +0000 [r397959] Kevin Harwell <kharwell@digium.com>
+
+ * apps/app_dumpchan.c, main/logger.c, apps/app_verbose.c,
+ main/asterisk.c, channels/chan_misdn.c, /: Verbose logging
+ discrepancies Refactored cases where a combination of
+ ast_verbose/options_verbose were present. Also in general tried
+ to eliminate, in as many places as possible, where the
+ options_verbose global variable was being used. Refactored the
+ way local and remote consoles handle verbose message logging in
+ an attempt to solve the various discrepancies that sometimes
+ would show between the two. (closes issue AST-1193) Reported by:
+ Guenther Kelleter Review:
+ https://reviewboard.asterisk.org/r/2798/ ........ Merged
+ revisions 397948 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 397958 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2013-08-29 22:26 +0000 [r397956-397957] Mark Michelson <mmichelson@digium.com>
+
+ * /, res/res_pjsip_pubsub.c: Fix when the subscription_terminated
+ callback is called for subscription handlers. The previous
+ placement would result in the resubscribe() callback called
+ instead of the subscription_terminated() callback being called
+ when a subscription was ended via a SUBSCRIBE request. This would
+ result in confusing PJSIP and having it throw an assertion.
+ ........ Merged revisions 397955 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+ * res/res_pjsip_session.c, /: Fix a race condition where a canceled
+ call was answered. RFC 5407 section 3.1.2 details a scenario
+ where a UAC sends a CANCEL at the same time that a UAS sends a
+ 200 OK for the INVITE that the UAC is canceling. When this
+ occurs, it is the role of the UAC to immediately send a BYE to
+ terminate the call. This scenario was reproducible by have a
+ Digium phone with two lines place a call to a second phone that
+ forwarded the call to the second line on the original phone. The
+ Digium phone, upon realizing that it was connecting to itself,
+ would attempt to cancel the call. The timing of this happened to
+ trigger the aforementioned race condition about 80% of the time.
+ Asterisk was not doing its job of sending a BYE when receiving a
+ 200 OK on a cancelled INVITE. The result was that the ast_channel
+ structure was destroyed but the underlying SIP session, as well
+ as the PJSIP inv_session and dialog, were still alive. Attempting
+ to perform an action such as a transfer, once in this state,
+ would result in Asterisk crashing. The circumstances are now
+ detected properly and the session is ended as recommended in RFC
+ 5407. (closes issue AST-1209) reported by John Bigelow ........
+ Merged revisions 397945 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2013-08-29 21:37 +0000 [r397947] Kevin Harwell <kharwell@digium.com>
+
+ * main/file.c, main/app.c, main/config_options.c, main/cel.c,
+ main/asterisk.c, main/cdr.c, main/manager.c, /,
+ main/stasis_config.c: Memory leaks fix (closes ASTERISK-22376)
+ Reported by: John Hardin Patches: memleak.patch uploaded by
+ jhardin (license 6512) memleak2.patch uploaded by jhardin
+ (license 6512) ........ Merged revisions 397946 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2013-08-29 20:22 +0000 [r397939] Matthew Jordan <mjordan@digium.com>
+
+ * configs/safe_asterisk.conf.sample (removed), /, CHANGES,
+ contrib/scripts/safe_asterisk, Makefile: Revert r394939 due to
+ (numerous) objections The patch from ASTERISK-21965 was committed
+ perhaps a bit too hastily. Walter and Tzafrir have pointed out
+ numerous issues with the approach and have propsed an alternative
+ in r/2757. Since it's not a time critical issue and is not worth
+ holding up the release of 12 for it, I've gone ahead and reverted
+ r394939 from 12/trunk and re-opened ASTERISK-21965. ........
+ Merged revisions 397938 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2013-08-29 16:21 +0000 [r397932] David M. Lee <dlee@digium.com>
+
+ * rest-api-templates/make_ari_stubs.py, /,
+ rest-api-templates/api.wiki.mustache,
+ rest-api-templates/asterisk_processor.py: Account for {} in
+ Swagger notes ........ Merged revisions 397927 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2013-08-29 16:05 +0000 [r397925] Matthew Jordan <mjordan@digium.com>
+
+ * Makefile, /: Recursively search for '.c' files when making
+ documentation with 'make full' Without this, documentation
+ defined in sub-folders is ignored. Since having properly
+ generated documentation is especially important in Asterisk 12 -
+ not having it can cause a module to not load - 'make full' needs
+ to look in all .c files. ........ Merged revisions 397924 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2013-08-29 15:43 +0000 [r397923] Mark Michelson <mmichelson@digium.com>
+
+ * /, apps/app_queue.c, main/cel.c, main/stasis_bridges.c: Multiple
+ revisions 397921-397922 ........ r397921 | mmichelson |
+ 2013-08-29 10:42:10 -0500 (Thu, 29 Aug 2013) | 6 lines Resolve
+ assumptions that bridge snapshots would be non-NULL for transfer
+ stasis events. Attempting to transfer an unbridged call would
+ result in crashes in either CEL code or in the conversion to AMI
+ messages. ........ r397922 | mmichelson | 2013-08-29 10:42:29
+ -0500 (Thu, 29 Aug 2013) | 3 lines Remove extra debug message.
+ ........ Merged revisions 397921-397922 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2013-08-29 12:30 +0000 [r397912] Matthew Jordan <mjordan@digium.com>
+
+ * contrib/ast-db-manage/config,
+ contrib/ast-db-manage/config/script.py.mako,
+ contrib/ast-db-manage/voicemail.ini.sample,
+ contrib/ast-db-manage/voicemail/env.py,
+ contrib/ast-db-manage/voicemail,
+ contrib/ast-db-manage/voicemail/script.py.mako,
+ contrib/ast-db-manage/README.md,
+ contrib/ast-db-manage/config/versions,
+ contrib/ast-db-manage/voicemail/versions/a2e9769475e_create_tables.py,
+ contrib/ast-db-manage (added),
+ contrib/ast-db-manage/voicemail/versions, /,
+ contrib/ast-db-manage/config.ini.sample,
+ contrib/ast-db-manage/config/env.py,
+ contrib/ast-db-manage/config/versions/4da0c5f79a9c_create_tables.py:
+ Actually *add* the database schema management utilities In
+ r397874, the scripts were removed... but not replaced. Thanks to
+ Michael Young for noticing this! ........ Merged revisions 397911
+ from http://svn.asterisk.org/svn/asterisk/branches/12
+
+2013-08-28 23:15 +0000 [r397886-397903] Richard Mudgett <rmudgett@digium.com>
+
+ * main/cdr.c, /, funcs/func_cdr.c, main/stdtime/localtime.c: Fix
+ some uninitialized buffers for CDR handling valgrind found. *
+ Made ast_strftime_locale() ensure that the output buffer is
+ initialized. The std library strftime() returns 0 and does not
+ touch the buffer if it has an error. However, the function can
+ also return 0 without an error. (closes issue ASTERISK-22412)
+ Reported by: rmudgett ........ Merged revisions 397902 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+ * main/cdr.c, /: Fixed problems with ast_cdr_serialize_variables().
+ * Fixed return value of ast_cdr_serialize_variables() on error.
+ It needs to return 0 indicating no CDR variables found. * Made
+ ast_cdr_serialize_variables() check the return value of
+ cdr_object_format_property() and assert if nonzero. A member of
+ the cdr_readonly_vars[] was not handled. * Removed unused
+ elements from cdr_readonly_vars[]: total_duration, total_billsec,
+ first_start, and first_answer. ........ Merged revisions 397900
+ from http://svn.asterisk.org/svn/asterisk/branches/12
+
+ * main/cdr.c, /: Made the on/off in CLI "cdr set debug [on|off]"
+ case insensitive. ........ Merged revisions 397898 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+ * main/cdr.c, /: Make CDR variable name chandling consistently case
+ insensitive. ........ Merged revisions 397896 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+ * /, main/cdr.c: Make CDR code deal with channel names case
+ insensitively. ........ Merged revisions 397894 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+ * /, funcs/func_cdr.c, main/cdr.c: Some CDR code optimization.
+ ........ Merged revisions 397892 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+ * /, funcs/func_cdr.c: Whitespace and curly braces. ........ Merged
+ revisions 397885 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2013-08-28 21:09 +0000 [r397877] Mark Michelson <mmichelson@digium.com>
+
+ * /, res/res_pjsip_refer.c: Improve detection of answer on SIP
+ blind transfer. A problem encountered during testing was that
+ res_pjsip_refer would not ever send a NOTIFY with a 200 OK
+ sipfrag. This is because the framehook that was supposed to send
+ the NOTIFY would never be told that an answer had occurred. This
+ happened for two reasons: 1) The transferee channel on which the
+ framehook was on was already up. 2) Answers are rarely if ever
+ written to channels. Rather, the ast_answer() or ast_raw_answer()
+ function is used to answer channels. Thanks to a suggestion by
+ Matt Jordan, the best way to detect that the call had been
+ answered was to find out when the transferee channel joined a
+ bridge. With stasis this is an easy task. So now, in addition to
+ the framehook logic, there is a stasis subscription used to
+ determine when the transferee has entered a bridge. Once it has
+ entered, an appropriate NOTIFY is sent. ........ Merged revisions
+ 397876 from http://svn.asterisk.org/svn/asterisk/branches/12
+
+2013-08-28 20:55 +0000 [r397872-397875] Matthew Jordan <mjordan@digium.com>
+
+ * contrib/realtime/mysql/queue_log.sql,
+ contrib/realtime/mysql/voicemail.sql,
+ contrib/realtime/mysql/sippeers.sql, /,
+ contrib/realtime/mysql/iaxfriends.sql,
+ contrib/realtime/mysql/meetme.sql,
+ contrib/realtime/mysql/voicemail_messages.sql,
+ contrib/realtime/postgresql/realtime.sql,
+ contrib/realtime/mysql/voicemail_data.sql, CHANGES,
+ contrib/realtime/mysql/musiconhold.sql: Add database schema
+ management using Alembic This patch replaces contrib/realtime/
+ with a new setup for managing the database schema required for
+ database integration with Asterisk. In addition to initializing a
+ database with the proper schema, alembic can do a database
+ migration to assist with upgrading Asterisk in the future.
+ Hopefully this helps make setting up and operating Asterisk with
+ a database easier. With this the schema only needs to be
+ maintained in one place instead of once per database. The schemas
+ I have added here have a bit of improvement over the examples
+ that were there before (some added consistency and added some
+ missing indexes). Managing the schema in one place here also
+ applies to all databases supported by SQLAlchemy. See
+ contrib/ast-db-manage/README.md for more details. Review:
+ https://reviewboard.asterisk.org/r/2731 patch by Russell Bryant
+ (license 6300) ........ Merged revisions 397874 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+ * CHANGES, /: Update CHANGES file for Asterisk 12 This updates the
+ Asterisk 12 CHANGES file with the things that were missed during
+ the development cycle. Review:
+ https://reviewboard.asterisk.org/r/2795/ ........ Merged
+ revisions 397870 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2013-08-28 16:13 +0000 [r397857-397860] Richard Mudgett <rmudgett@digium.com>
+
+ * /, main/pbx.c: pbx.c: Make ast_str_substitute_variables_full()
+ not mask variables. ........ Merged revisions 397859 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+ * main/chanvars.c: ast_free() is null tollerant.
+
+ * include/asterisk/threadstorage.h, /: Match use of ast_free() with
+ ast_calloc() and add some curly braces. ........ Merged revisions
+ 397856 from http://svn.asterisk.org/svn/asterisk/branches/12
+
+2013-08-28 15:43 +0000 [r397855] Mark Michelson <mmichelson@digium.com>
+
+ * res/res_pjsip/pjsip_distributor.c, /: Fix dialog matching in the
+ SIP distributor. Dialog matching is performed in the distributor
+ for the sole purpose of retrieving an associated serializer so
+ the request may be serialized. This patch fixes two problems.
+ First, incoming CANCEL requests that had no to-tag (which really
+ should be *all* CANCEL requests) would not match with a dialog.
+ An earlier bug fix to deal with early CANCEL requests would
+ result in the CANCEL being replied to with a 481. The fix for
+ this is to find the matching INVITE transaction and get the
+ dialog from that transaction. Second, no SIP responses were
+ matching dialogs. This is because we were inverting the tags that
+ we were passing into PJSIP's dialog finding function. This logic
+ has been corrected by setting local and remote tag variables
+ based on whether the incoming message is a request or response.
+ ........ Merged revisions 397854 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2013-08-27 19:19 +0000 [r397820] David M. Lee <dlee@digium.com>
+
+ * rest-api-templates/param_parsing.mustache, res/res_ari_bridges.c,
+ /, res/stasis/app.c, res/res_ari_events.c,
+ res/res_ari_asterisk.c,
+ rest-api-templates/res_ari_resource.c.mustache, res/stasis/app.h,
+ res/res_stasis.c, main/stasis_bridges.c: ARI: WebSocket event
+ cleanup Stasis events (which get distributed over the ARI
+ WebSocket) are created by subscribing to the channel_all_cached
+ and bridge_all_cached topics, filtering out events for
+ channels/bridges currently subscribed to. There are two issues
+ with that. First was a race condition, where messages in-flight
+ to the master subscribe-to-all-things topic would get sent out,
+ even though the events happened before the channel was put into
+ Stasis. Secondly, as the number of channels and bridges grow in
+ the system, the work spent filtering messages becomes excessive.
+ Since r395954, individual channels and bridges have caching
+ topics, and can be subscribed to individually. This patch takes
+ advantage, so that channels and bridges are subscribed to on
+ demand, instead of filtering the global topics. The one case
+ where filtering is still required is handling BridgeMerge
+ messages, which are published directly to the bridge_all topic.
+ Other than the change to how subscriptions work, this patch
+ mostly just moves code around. Most of the work generating JSON
+ objects from messages was moved to .to_json handlers on the
+ message types. The callback functions handling app subscriptions
+ were moved from res_stasis (b/c they were global to the model) to
+ stasis/app.c (b/c they are local to the app now). (closes issue
+ ASTERISK-21969) Reported by: Matt Jordan Review:
+ https://reviewboard.asterisk.org/r/2754/ ........ Merged
+ revisions 397816 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2013-08-27 18:52 +0000 [r397811] Richard Mudgett <rmudgett@digium.com>
+
+ * /, main/astmm.c: Made MALLOC_DEBUG less CPU intensive by default.
+ Storing a backtrace for each allocation in anticipation of a
+ memory management problem is very CPU intensive. * Added the CLI
+ "memory backtrace {on|off}" command to request that the backtrace
+ be gathered only on request. The backtrace is off by default.
+ (issue ASTERISK-22221) Reported by: Matt Jordan ........ Merged
+ revisions 397809 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2013-08-27 18:10 +0000 [r397753-397760] Matthew Jordan <mjordan@digium.com>
+
+ * /, channels/chan_sip.c: AST-2013-005: Fix crash caused by invalid
+ SDP If the SIP channel driver processes an invalid SDP that
+ defines media descriptions before connection information, it may
+ attempt to reference the socket address information even though
+ that information has not yet been set. This will cause a crash.
+ This patch adds checks when handling the various media
+ descriptions that ensures the media descriptions are handled only
+ if we have connection information suitable for that media. Thanks
+ to Walter Doekes, OSSO B.V., for reporting, testing, and
+ providing the solution to this problem. (closes issue
+ ASTERISK-22007) Reported by: wdoekes Tested by: wdoekes patches:
+ issueA22007_sdp_without_c_death.patch uploaded by wdoekes
+ (License 5674) ........ Merged revisions 397756 from
+ http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
+ revisions 397757 from
+ http://svn.asterisk.org/svn/asterisk/branches/10 ........ Merged
+ revisions 397758 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 397759 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+ * /, channels/chan_sip.c: AST-2013-004: Fix crash when handling ACK
+ on dialog that has no channel A remote exploitable crash
+ vulnerability exists in the SIP channel driver if an ACK with SDP
+ is received after the channel has been terminated. The handling
+ code incorrectly assumed that the channel would always be
+ present. This patch adds a check such that the SDP will only be
+ parsed and applied if Asterisk has a channel present that is
+ associated with the dialog. Note that the patch being applied was
+ modified only slightly from the patch provided by Walter Doekes
+ of OSSO B.V. (closes issue ASTERISK-21064) Reported by: Colin
+ Cuthbertson Tested by: wdoekes, Colin Cutherbertson patches:
+ issueA21064_fix.patch uploaded by wdoekes (License 5674) ........
+ Merged revisions 397710 from
+ http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged
+ revisions 397711 from
+ http://svn.asterisk.org/svn/asterisk/branches/10 ........ Merged
+ revisions 397712 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 397713 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2013-08-27 16:51 +0000 [r397746] Richard Mudgett <rmudgett@digium.com>
+
+ * channels/chan_iax2.c, channels/sig_pri.c, channels/sig_ss7.c,
+ channels/chan_dahdi.c, channels/sig_analog.c, /,
+ channels/chan_sip.c, channels/chan_motif.c: Fix uninitialized
+ value in struct ast_control_pvt_cause_code usage. ........ Merged
+ revisions 397744 from
+ http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+ revisions 397745 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2013-08-26 23:48 +0000 [r397691] Matthew Jordan <mjordan@digium.com>
+
+ * /, main/bridge_channel.c: Better handle clearing the OUTGOING
+ flag when a channel leaves a bridge When a channel with the
+ OUTGOING flag leaves a bridge, and it will survive being pulled
+ from the bridge (either because it will execute dialplan, go into
+ another bridge, or live in a friendly autoloop), we have to clear
+ the OUTGOING flag. This is the signal to the CDR engine that this
+ channel is no longer a second class citizen, i.e., it is not
+ "dialed". The soft hangup flags are only half the picture. If a
+ channel is being moved from one bridge to another, the soft
+ hangup flags aren't set; however, the state of the bridge_channel
+ will not be hung up. Since the channel does not have one of the
+ two hang up states, that implies that the channel is still
+ technically alive. This patch modifies the check so that it
+ checks both the soft hangup flags as well as the bridge_channel
+ state. If either suggests that the channel is going to persist,
+ we clear the OUTGOING flag. ........ Merged revisions 397690 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2013-08-26 21:32 +0000 [r397674] David M. Lee <dlee@digium.com>
+
+ * /, main/bucket.c: Fixed bucket.c for systems where tv_usec is not
+ an unsigned long. ........ Merged revisions 397673 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2013-08-26 16:25 +0000 [r397644-397651] Richard Mudgett <rmudgett@digium.com>
+
+ * /, include/asterisk/bridge_channel.h, main/bridge_channel.c:
+ bridging: Fix a livelock with local channel optimization. Use a
+ better means of waking up the bridge channel thread. ........
+ Merged revisions 397650 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+ * channels/Makefile, /: chan_dahdi: Add some missing build cleanup.
+ ........ Merged revisions 397643 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2013-08-25 18:12 +0000 [r397622-397631] Matthew Jordan <mjordan@digium.com>
+
+ * tests/test_bucket.c, /: Fix bucket unit tests After the review
+ for buckets was completed (r2715), the handling of names in the
+ bucket core was deferred to the wizards. As such, the bucket unit
+ tests cannot expect that passing a URI with a scheme specified
+ but no actual resource name will automatically fail. The tests
+ have been updated to not make this check. ........ Merged
+ revisions 397630 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+ * include/asterisk/config_options.h, /, main/config_options.c,
+ tests/test_config.c: Fix the config_options_test The config
+ options test requires the entire configuration item to be
+ transparent from the documentation system. So we let it do that
+ too. As an aside, please do not use this power for evil.
+ Documentation is your friend, and you really should document your
+ configurations. Hiding your module's configuration information
+ from the system attempting to enforce some sanity in the universe
+ is something only a Bond villain would contemplate. ........
+ Merged revisions 397628 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+ * /, res/res_pjsip/pjsip_configuration.c: Add rtpengine
+ configuration parameter The rtpengine configuration parameter was
+ documented in the XML documentation, but it was not actually
+ registered with the sorcery object. This adds the parameter with
+ a default of "asterisk", such that res_rtp_asterisk is chosen as
+ the default RTP implementation. (closes issue ASTERISK-22380)
+ Reported by: Rusty Newton Tested by: Rusty Newton ........ Merged
+ revisions 397621 from
+ http://svn.asterisk.org/svn/asterisk/branches/12
+
+2013-08-23 22:40 +0000 [r397615] Matthew Jordan <mjordan@digium.com>
+
+ * /: Set new merge properties on 12
+
+2013-08-23 22:20 +0000 [r397613] Joshua Colp <jcolp@digium.com>
+
+ * main/bucket.c: Fix building of trunk. Note: This is why I commit
+ on the weekend.
+