summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKevin Harwell <kharwell@digium.com>2017-03-23 15:33:40 -0500
committerKevin Harwell <kharwell@digium.com>2017-03-23 15:33:40 -0500
commit552cf009c0939c8b6597708135412bdc596df4bb (patch)
treecc461fe481f77ddf96063a0fec5b360541b05c86
parentf1b34e6eb465221902baf4dc9f8979201472202c (diff)
Update for 13.15.0-rc113.15.0-rc1
-rw-r--r--.lastclean1
-rw-r--r--.version1
-rw-r--r--ChangeLog49582
-rw-r--r--asterisk-13.15.0-rc1-summary.html369
-rw-r--r--asterisk-13.15.0-rc1-summary.txt967
-rw-r--r--contrib/realtime/mssql/mssql_cdr.sql44
-rw-r--r--contrib/realtime/mssql/mssql_config.sql1627
-rw-r--r--contrib/realtime/mssql/mssql_voicemail.sql54
-rw-r--r--contrib/realtime/mysql/mysql_cdr.sql32
-rw-r--r--contrib/realtime/mysql/mysql_config.sql990
-rw-r--r--contrib/realtime/mysql/mysql_voicemail.sql34
-rw-r--r--contrib/realtime/oracle/oracle_cdr.sql38
-rw-r--r--contrib/realtime/oracle/oracle_config.sql1621
-rw-r--r--contrib/realtime/oracle/oracle_voicemail.sql48
-rw-r--r--contrib/realtime/postgresql/postgresql_cdr.sql36
-rw-r--r--contrib/realtime/postgresql/postgresql_config.sql1068
-rw-r--r--contrib/realtime/postgresql/postgresql_voicemail.sql38
17 files changed, 56550 insertions, 0 deletions
diff --git a/.lastclean b/.lastclean
new file mode 100644
index 000000000..425151f3a
--- /dev/null
+++ b/.lastclean
@@ -0,0 +1 @@
+40
diff --git a/.version b/.version
new file mode 100644
index 000000000..db38c841d
--- /dev/null
+++ b/.version
@@ -0,0 +1 @@
+13.15.0-rc1 \ No newline at end of file
diff --git a/ChangeLog b/ChangeLog
new file mode 100644
index 000000000..8b51f1ba2
--- /dev/null
+++ b/ChangeLog
@@ -0,0 +1,49582 @@
+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(&copy, ",") 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 "&gt;" * 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 "&gt;" * 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.
+
diff --git a/asterisk-13.15.0-rc1-summary.html b/asterisk-13.15.0-rc1-summary.html
new file mode 100644
index 000000000..d12aaf939
--- /dev/null
+++ b/asterisk-13.15.0-rc1-summary.html
@@ -0,0 +1,369 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><title>Release Summary - asterisk-13.15.0-rc1</title><h1 align="center"><a name="top">Release Summary</a></h1><h3 align="center">asterisk-13.15.0-rc1</h3><h3 align="center">Date: 2017-03-23</h3><h3 align="center">&lt;asteriskteam@digium.com&gt;</h3><hr><h2 align="center">Table of Contents</h2><ol>
+<li><a href="#summary">Summary</a></li>
+<li><a href="#contributors">Contributors</a></li>
+<li><a href="#closed_issues">Closed Issues</a></li>
+<li><a href="#open_issues">Open Issues</a></li>
+<li><a href="#commits">Other Changes</a></li>
+<li><a href="#diffstat">Diffstat</a></li>
+</ol><hr><a name="summary"><h2 align="center">Summary</h2></a><center><a href="#top">[Back to Top]</a></center><p>This release is a point release of an existing major version. The changes included were made to address problems that have been identified in this release series, or are minor, backwards compatible new features or improvements. Users should be able to safely upgrade to this version if this release series is already in use. Users considering upgrading from a previous version are strongly encouraged to review the UPGRADE.txt document as well as the CHANGES document for information about upgrading to this release series.</p><p>The data in this summary reflects changes that have been made since the previous release, asterisk-13.14.0.</p><hr><a name="contributors"><h2 align="center">Contributors</h2></a><center><a href="#top">[Back to Top]</a></center><p>This table lists the people who have submitted code, those that have tested patches, as well as those that reported issues on the issue tracker that were resolved in this release. For coders, the number is how many of their patches (of any size) were committed into this release. For testers, the number is the number of times their name was listed as assisting with testing a patch. Finally, for reporters, the number is the number of issues that they reported that were affected by commits that went into this release.</p><table width="100%" border="0">
+<tr><th width="33%">Coders</th><th width="33%">Testers</th><th width="33%">Reporters</th></tr>
+<tr valign="top"><td width="33%">31 Sean Bright <sean.bright@gmail.com><br/>19 Richard Mudgett <rmudgett@digium.com><br/>12 Joshua Colp <jcolp@digium.com><br/>11 gtjoseph <gjoseph@digium.com><br/>5 Matt Jordan <mjordan@digium.com><br/>4 Tzafrir Cohen <tzafrir.cohen@xorcom.com><br/>3 Richard Begg <asterisk@meric.id.au><br/>3 Daniel Journo <dan@keshercommunications.com><br/>2 Joshua Elson <joshelson@gmail.com><br/>2 Jørgen H <asterisk.org@hovland.cx><br/>2 Mark Michelson <mmichelson@digium.com><br/>1 Peter Racz<br/>1 Kevin Harwell <kharwell@digium.com><br/>1 Michael L. Young <elgueromexicano@gmail.com><br/>1 Roman Bedros (License 6842)<br/>1 Norbert Varga <vnorbix@gmail.com><br/>1 nappsoft <infos@nappsoft.com> (license 6822)<br/>1 var <cbrunker@appenbutlerhill.com><br/>1 Torrey Searle <torrey@voxbone.com><br/>1 Robert Mordec <r.mordec@slican.pl><br/>1 Jean Aunis <jean.aunis@prescom.fr><br/>1 Ryan Rittgarn <rrittgarn@techpro.com><br/>1 Vitezslav Novy <a1@vnovy.net><br/>1 Igor Goncharovsky <igor.goncharovsky@gmail.com><br/></td><td width="33%">1 Matt Jordan <mjordan@digium.com><br/></td><td width="33%">5 George Joseph <gjoseph@digium.com><br/>4 Michael Maier <m1278468@mailbox.org><br/>4 Nic Colledge <nic@njcolledge.net><br/>4 Matt Jordan <mjordan@digium.com><br/>4 Tzafrir Cohen <tzafrir.cohen@xorcom.com><br/>4 Richard Mudgett <rmudgett@digium.com><br/>3 Richard Begg <asterisk@meric.id.au><br/>3 Dan Jenkins <dan@nimbleape.com><br/>3 Joshua Colp <jcolp@digium.com><br/>2 Michael L. Young <elgueromexicano@gmail.com><br/>2 Sean Bright <sean.bright@gmail.com><br/>2 Jørgen H <asterisk.org@hovland.cx><br/>2 Torrey Searle <tsearle@gmail.com><br/>1 Peter Racz<br/>1 Etienne Lessard<br/>1 Stepan <st.shishkin@gmail.com><br/>1 Jean Aunis - Prescom <jean.aunis@prescom.fr><br/>1 Max Norba <max.miralin@yandex.ru><br/>1 Scott Griepentrog <sgriepentrog@digium.com><br/>1 Dave Olszewski <cxreg@pobox.com><br/>1 Peter Sokolov <newsletter@fab-online.com><br/>1 Dmitry Wagin <dmitry2004@yandex.ru><br/>1 Dave Olszewski<br/>1 Dmitry Wagin<br/>1 Kevin Harwell <kharwell@digium.com><br/>1 Charlie Smurthwaite<br/>1 Filip Jenicek<br/>1 John Covert<br/>1 Norbert Varga <vnorbix@gmail.com><br/>1 Michael L. Young<br/>1 Roman Bedros<br/>1 Igor Goncharovsky <igor.goncharovsky@gmail.com><br/>1 Filip Jenicek <phill@janevim.cz><br/>1 Peter Racz <peter.racz@ruag.com><br/>1 nappsoft <infos@nappsoft.com><br/>1 Smirnov Aleksey <limpsobaka@yandex.ru><br/>1 Nasir Iqbal <nasir@ictinnovations.com><br/>1 var <cbrunker@appenbutlerhill.com><br/>1 Nicholas John Koch <koch@njk-it.de><br/>1 Michael Balen <mb@2lss.de><br/>1 Mark Scholten <mark@streamservice.nl><br/>1 Humberto Figuera <hfiguera@gmail.com><br/>1 Vinod Dharashive<br/>1 Krzysztof Trempala <k.trempala@slican.pl><br/>1 Andrew Green <me@andrewgreen.ca><br/>1 Zach R <zrothy@monmouth.com><br/>1 Ryan Rittgarn <rrittgarn@techpro.com><br/>1 Kirsty Tyerman <kirsty.tyerman@boeing.com><br/>1 Carl Fortin <cfortin2@cegepgarneau.ca><br/>1 xrobau <rob@wpm4L.com><br/>1 Etienne Lessard <elessard97@gmail.com><br/>1 Nasir Iqbal<br/>1 Joshua Elson <joshelson@gmail.com><br/>1 Charlie Smurthwaite <charlie@atechmedia.com><br/>1 John Covert <john.digiumbugs@covert.org><br/>1 Nicholas John Koch<br/>1 Jonathan Harris <lardconcepts@gmail.com><br/>1 Roman Bedros <roman.bedros@gmail.com><br/>1 Dan Jenkins<br/>1 Vinod Dharashive <vdharashive@gmail.com><br/>1 Kirsty Tyerman<br/>1 Robert Mordec <r.mordec@slican.pl><br/>1 Scott Griepentrog<br/>1 benasse <account@cicogna.fr><br/>1 Olivier Krief <olivier.krief@gmail.com><br/>1 Mark Michelson <mmichelson@digium.com><br/>1 Humberto Figuera<br/></td></tr>
+</table><hr><a name="closed_issues"><h2 align="center">Closed Issues</h2></a><center><a href="#top">[Back to Top]</a></center><p>This is a list of all issues from the issue tracker that were closed by changes that went into this release.</p><h3>New Feature</h3><h4>Category: Applications/app_voicemail</h4><a href="https://issues.asterisk.org/jira/browse/ASTERISK-17428">ASTERISK-17428</a>: [patch] Allow "Comedian Mail" branding to be removed<br/>Reported by: John Covert<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=4c31e03e80e6de2beb4aae154d0fffd5307a26ff">[4c31e03e80]</a> Sean Bright -- app_voicemail: Allow 'Comedian Mail' branding to be overriden</li>
+</ul><br><h4>Category: Functions/func_channel</h4><a href="https://issues.asterisk.org/jira/browse/ASTERISK-26878">ASTERISK-26878</a>: func_channel: Add ability to get the callid so dialplan has access to it.<br/>Reported by: Richard Mudgett<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=60b372a883d97193a98e2eff7a50d1f8762c8dc6">[60b372a883]</a> Richard Mudgett -- CHANNEL(callid): Give dialplan access to the callid.</li>
+</ul><br><h4>Category: Resources/res_pjsip</h4><a href="https://issues.asterisk.org/jira/browse/ASTERISK-26863">ASTERISK-26863</a>: res_pjsip: Add endpoint identification scheme based on a configured SIP header/value<br/>Reported by: Matt Jordan<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=7612601964d6b63cb48324e99edb54bd77ba8e0b">[7612601964]</a> Joshua Colp -- res_pjsip_endpoint_identifier_ip: Don't output error if no header_match.</li>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=b3c2c996f1de6a26364c7f691ceeebf30586cff1">[b3c2c996f1]</a> Matt Jordan -- res_pjsip_endpoint_identifier_ip: Add an option to match requests by header</li>
+</ul><br><h3>Bug</h3><h4>Category: Addons/res_config_mysql</h4><a href="https://issues.asterisk.org/jira/browse/ASTERISK-18271">ASTERISK-18271</a>: Pattern matching with res_config_mysql extensions does not behave as expected<br/>Reported by: Charlie Smurthwaite<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=ca6d001144d56678f40ab2e625be143450dac693">[ca6d001144]</a> Sean Bright -- pbx_realtime: Prevent premature extension matching</li>
+</ul><br><h4>Category: Applications/app_mixmonitor</h4><a href="https://issues.asterisk.org/jira/browse/ASTERISK-26867">ASTERISK-26867</a>: autochan: Locking in a function ast_autochan_destroy() on destroyed channel (after masquerade).<br/>Reported by: Krzysztof Trempala<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=adad6020beb2aae1f5535bad4c0ff6ea73026848">[adad6020be]</a> Richard Mudgett -- autochan/mixmonitor/chanspy: Fix unsafe channel locking and references.</li>
+</ul><br><h4>Category: Applications/app_queue</h4><a href="https://issues.asterisk.org/jira/browse/ASTERISK-26862">ASTERISK-26862</a>: app_queue: Queue stops calling members with local interface after forwarding in previous call<br/>Reported by: Robert Mordec<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=76afb9e18ad5bd253eb2dc0409b8033a9fbd1e79">[76afb9e18a]</a> Robert Mordec -- app_queue: Member stuck as pending after forwarding previous call from queue</li>
+</ul><a href="https://issues.asterisk.org/jira/browse/ASTERISK-23457">ASTERISK-23457</a>: SQlite3: Realtime queue loading fails after PRAGMA query result<br/>Reported by: Scott Griepentrog<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=9b02bbfa882a451846a3ced1b955aca67d5a6b98">[9b02bbfa88]</a> Sean Bright -- res_config_sqlite3: Properly create missing columns when necessary</li>
+</ul><br><h4>Category: Applications/app_record</h4><a href="https://issues.asterisk.org/jira/browse/ASTERISK-18286">ASTERISK-18286</a>: [patch] 'Silence' is truncated in Record()<br/>Reported by: var<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=f99e5f4de422ef4832c409dcc7b5cb44626a6171">[f99e5f4de4]</a> var -- app_record: Add option to prevent silence from being truncated</li>
+</ul><br><h4>Category: Applications/app_saynumber</h4><a href="https://issues.asterisk.org/jira/browse/ASTERISK-26598">ASTERISK-26598</a>: Saynumber is trying to get "and" from "digits/" subfolder<br/>Reported by: Jonathan Harris<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=d9972423d18556565433a9866d9b88b09798b7de">[d9972423d1]</a> Daniel Journo -- Saynumber is trying to get "and" from "digits/" subfolder</li>
+</ul><br><h4>Category: Applications/app_voicemail</h4><a href="https://issues.asterisk.org/jira/browse/ASTERISK-24562">ASTERISK-24562</a>: app_voicemail: Cannot set fromstring on a per-mailbox basis<br/>Reported by: Mark Scholten<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=bc6eeab82250fe3ae2fce6db3831b64f976c28cc">[bc6eeab822]</a> Daniel Journo -- app_voicemail: Cannot set fromstring on a per-mailbox basis</li>
+</ul><a href="https://issues.asterisk.org/jira/browse/ASTERISK-25893">ASTERISK-25893</a>: Function vmauthenticate accesses uninitialized memory<br/>Reported by: Filip Jenicek<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=47daca8a2b9ee0f1cc5ab22478cf8dd92a97a3d4">[47daca8a2b]</a> Sean Bright -- app_voicemail: vm_authenticate accesses uninitialized memory</li>
+</ul><a href="https://issues.asterisk.org/jira/browse/ASTERISK-26723">ASTERISK-26723</a>: VoiceMailPlayMsg not playing messages via realtime<br/>Reported by: Ryan Rittgarn<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=9d34df9a5e5632f03ad53cbc4c6eb58c597cbba1">[9d34df9a5e]</a> Ryan Rittgarn -- app_voicemail: VoiceMailPlayMsg did not play database stored messages</li>
+</ul><br><h4>Category: Applications/app_voicemail/ODBC</h4><a href="https://issues.asterisk.org/jira/browse/ASTERISK-26723">ASTERISK-26723</a>: VoiceMailPlayMsg not playing messages via realtime<br/>Reported by: Ryan Rittgarn<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=9d34df9a5e5632f03ad53cbc4c6eb58c597cbba1">[9d34df9a5e]</a> Ryan Rittgarn -- app_voicemail: VoiceMailPlayMsg did not play database stored messages</li>
+</ul><br><h4>Category: Channels/chan_iax2</h4><a href="https://issues.asterisk.org/jira/browse/ASTERISK-26865">ASTERISK-26865</a>: chan_iax2: Reload of iax peer results in loss of host address/port<br/>Reported by: Richard Begg<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=5389666d6f0e31709fb75907b578186ba7dcaaa9">[5389666d6f]</a> Richard Begg -- chan_iax2: Reload of iax peer results in loss of host address/port</li>
+</ul><br><h4>Category: Channels/chan_pjsip</h4><a href="https://issues.asterisk.org/jira/browse/ASTERISK-26857">ASTERISK-26857</a>: chan_pjsip: Dialplan function race condition<br/>Reported by: Joshua Colp<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=c8d1b915d74740caea6e99329126a3aa5d73ad4c">[c8d1b915d7]</a> Joshua Colp -- chan_pjsip: Don't assume a session will have a channel.</li>
+</ul><a href="https://issues.asterisk.org/jira/browse/ASTERISK-26822">ASTERISK-26822</a>: pjsip/cli_commands: pjsip show channelstats shows wrong codec<br/>Reported by: Kevin Harwell<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=67c989ce78935b3d83e40af664d5e78ed93a7eec">[67c989ce78]</a> Daniel Journo -- pjsip/cli_commands: pjsip show channelstats shows wrong codec</li>
+</ul><a href="https://issues.asterisk.org/jira/browse/ASTERISK-26248">ASTERISK-26248</a>: chan_pjsip: Error when calling PJSIP client with domain specified<br/>Reported by: Norbert Varga<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=17030100cae184910e981be44cdec02fac937a9a">[17030100ca]</a> Norbert Varga -- chan_pjsip: Multidomain endpoint finding on call</li>
+</ul><br><h4>Category: Channels/chan_sip/General</h4><a href="https://issues.asterisk.org/jira/browse/ASTERISK-26841">ASTERISK-26841</a>: chan_sip: Call not cancelled after receiving a 422 response<br/>Reported by: Jean Aunis - Prescom<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=d3ef833b3b15540ccbf237f889185cc13bc200cf">[d3ef833b3b]</a> Jean Aunis -- chan_sip: Call not cancelled after receiving a 422 response</li>
+</ul><a href="https://issues.asterisk.org/jira/browse/ASTERISK-26313">ASTERISK-26313</a>: chan_sip : Asterisk restart seems to be required for changing encryption option<br/>Reported by: benasse<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=d91f61f0b5bbc05f952ef3aa0f1d4fe67c4c9b04">[d91f61f0b5]</a> Vitezslav Novy -- chan_sip: Allow DTLS to be disabled when reloading.</li>
+</ul><br><h4>Category: Channels/chan_unistim</h4><a href="https://issues.asterisk.org/jira/browse/ASTERISK-26714">ASTERISK-26714</a>: Phone default have not ringing on ARM<br/>Reported by: Igor Goncharovsky<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=7aa731c1c7793fda730181b19469015e84dde52f">[7aa731c1c7]</a> Igor Goncharovsky -- chan_unistim: fix char type to have consistent behavior on ARM</li>
+</ul><br><h4>Category: Codecs/General</h4><a href="https://issues.asterisk.org/jira/browse/ASTERISK-26812">ASTERISK-26812</a>: [patch] Fix download_externals To Allow The Use Of curl Or wget<br/>Reported by: Michael L. Young<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=1ec796ce183c318cd4a9847148ab1afabd4da920">[1ec796ce18]</a> Michael L. Young -- build_tools: Fix download_externals to allow the use of curl or wget</li>
+</ul><br><h4>Category: Configs/Samples</h4><a href="https://issues.asterisk.org/jira/browse/ASTERISK-26785">ASTERISK-26785</a>: configs/samples: The 'identify' entry is in the wrong section in sorcery.conf.sample<br/>Reported by: Torrey Searle<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=c7fcc4468ffd54066129a982ff5b0a3cdfa7c5e0">[c7fcc4468f]</a> gtjoseph -- configs/samples: Fix placement of 'identify' entry in sorcery.conf</li>
+</ul><br><h4>Category: Core/Bridging</h4><a href="https://issues.asterisk.org/jira/browse/ASTERISK-26880">ASTERISK-26880</a>: Asterisk crashes when multiple speex users join confbridge with pp_vad and dtx enabled<br/>Reported by: Kirsty Tyerman<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=7f34c11b6a33075749eff8c3f4197b56eeb55ec1">[7f34c11b6a]</a> Sean Bright -- bridge_softmix: Ignore non-voice frames from translator</li>
+</ul><br><h4>Category: Core/BuildSystem</h4><a href="https://issues.asterisk.org/jira/browse/ASTERISK-26872">ASTERISK-26872</a>: Bundled pjproject fails to build when tarball downloaded with curl due to md5 verification failure in Docker containers (or when there is no terminal)<br/>Reported by: Matt Jordan<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=658d59c683ff127a37b1be4635b38c360b74b46e">[658d59c683]</a> Matt Jordan -- configure: Don't use the progress bar with curl when downloading to stdout</li>
+</ul><a href="https://issues.asterisk.org/jira/browse/ASTERISK-26705">ASTERISK-26705</a>: libasteriskssl.so not found when asterisk is installed for the 1st time<br/>Reported by: George Joseph<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=3d2c11977850ea5f8e87e22e141e5a42dd28cabd">[3d2c119778]</a> gtjoseph -- build: Warn if asterisk is installed in both 32 and 64 bit sys dirs</li>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=bee55aaf2cc2936100b16f5a4acb87a3ea1235cd">[bee55aaf2c]</a> gtjoseph -- build: Execute ldconfig to build cache. (take two)</li>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=d90430953c508670a67de68de400fef44f5e9fba">[d90430953c]</a> Joshua Colp -- build: Execute ldconfig to build cache.</li>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=e910dbab90ef3d628955c49f441b2c9dda1f222c">[e910dbab90]</a> Joshua Colp -- build: Execute ldconfig to build cache.</li>
+</ul><a href="https://issues.asterisk.org/jira/browse/ASTERISK-26812">ASTERISK-26812</a>: [patch] Fix download_externals To Allow The Use Of curl Or wget<br/>Reported by: Michael L. Young<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=1ec796ce183c318cd4a9847148ab1afabd4da920">[1ec796ce18]</a> Michael L. Young -- build_tools: Fix download_externals to allow the use of curl or wget</li>
+</ul><a href="https://issues.asterisk.org/jira/browse/ASTERISK-26802">ASTERISK-26802</a>: [patch] Integrity Check Of PJSIP Download Fails<br/>Reported by: Michael L. Young<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=047a1e7dcc3e89fa951c5d714c68cd7fd2d09b37">[047a1e7dcc]</a> Sean Bright -- pjproject-bundled: Fix checksum verification when using cURL</li>
+</ul><a href="https://issues.asterisk.org/jira/browse/ASTERISK-26109">ASTERISK-26109</a>: Asterisk fails building with OpenSSL 1.1.0<br/>Reported by: Tzafrir Cohen<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=99b40e72ae347d7047547836f7f897d3ea2bc8dc">[99b40e72ae]</a> Tzafrir Cohen -- libasteriskssl: do nothing with OpenSSL >= 1.1</li>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=e97e50b68b0497f906a73a1acc26c3a97d9c9d7f">[e97e50b68b]</a> Tzafrir Cohen -- tcptls: use TLS_client_method with OpenSSL 1.1</li>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=0d555f0d81d3b04366a64c91acb89d24b90aead9">[0d555f0d81]</a> Tzafrir Cohen -- openssl 1.1 support: use OPENSSL_VERSION_NUMBER</li>
+</ul><br><h4>Category: Core/DNS</h4><a href="https://issues.asterisk.org/jira/browse/ASTERISK-26772">ASTERISK-26772</a>: Crash in srv.c on startup with pjsip<br/>Reported by: nappsoft<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=7e14e086cf6e9b18ab2629e0acbfa1fb206bbb48">[7e14e086cf]</a> nappsoft -- srv: Fix crash when ast_srv_lookup is used and 0 records are returned.</li>
+</ul><br><h4>Category: Core/General</h4><a href="https://issues.asterisk.org/jira/browse/ASTERISK-26788">ASTERISK-26788</a>: core: Protect flags during ast_waitfor<br/>Reported by: Joshua Colp<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=18f1b526013c4484105f264f6ba29b78f6ed8ff2">[18f1b52601]</a> Joshua Colp -- channel: Protect flags in ast_waitfor_nandfds operation.</li>
+</ul><br><h4>Category: Core/HTTP</h4><a href="https://issues.asterisk.org/jira/browse/ASTERISK-26794">ASTERISK-26794</a>: http: Crash on Reload Only in ast_tcptls_server_start<br/>Reported by: Joshua Elson<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=0fc27fa364353079bb1ad5873ff601ce410563ca">[0fc27fa364]</a> Joshua Elson -- http: Ensure capath is defined on all http creations</li>
+</ul><br><h4>Category: Core/PBX</h4><a href="https://issues.asterisk.org/jira/browse/ASTERISK-26115">ASTERISK-26115</a>: pbx: AMI Originate ignore "failed" extension on call failure<br/>Reported by: Nasir Iqbal<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=8936568515d26eba6087a0064fe4d5d6e7f02ddd">[8936568515]</a> Sean Bright -- manager: Restore Originate failure behavior from Asterisk 11</li>
+</ul><br><h4>Category: Core/Stasis</h4><a href="https://issues.asterisk.org/jira/browse/ASTERISK-25237">ASTERISK-25237</a>: stasis_cache.c:845 caching_topic_exec: - misleading ERROR message<br/>Reported by: Smirnov Aleksey<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=216e28aa9575a13554eb6febf8a6cd8cc12cd9d6">[216e28aa95]</a> Matt Jordan -- main/stasis_cache: Demote the ERROR message when removing a nonexistent item</li>
+</ul><br><h4>Category: Documentation</h4><a href="https://issues.asterisk.org/jira/browse/ASTERISK-26484">ASTERISK-26484</a>: res_pjsip_messaging: Crash when using invalid URI in MessageSend 'from' argument.<br/>Reported by: Vinod Dharashive<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=b3cc20799bcdd2114026ec943e6879434116406b">[b3cc20799b]</a> Sean Bright -- res_pjsip_messaging: Check URI type before dereferencing</li>
+</ul><a href="https://issues.asterisk.org/jira/browse/ASTERISK-26717">ASTERISK-26717</a>: Document the fact that Asterisk HEP support only works with the PJSIP channel driver<br/>Reported by: Olivier Krief<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=51985565ef6b1ecfa9170df1ebf8153364133777">[51985565ef]</a> Matt Jordan -- configs/samples/hep.conf.sample: Clarify how the HEP stack works</li>
+</ul><a href="https://issues.asterisk.org/jira/browse/ASTERISK-25237">ASTERISK-25237</a>: stasis_cache.c:845 caching_topic_exec: - misleading ERROR message<br/>Reported by: Smirnov Aleksey<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=216e28aa9575a13554eb6febf8a6cd8cc12cd9d6">[216e28aa95]</a> Matt Jordan -- main/stasis_cache: Demote the ERROR message when removing a nonexistent item</li>
+</ul><a href="https://issues.asterisk.org/jira/browse/ASTERISK-24562">ASTERISK-24562</a>: app_voicemail: Cannot set fromstring on a per-mailbox basis<br/>Reported by: Mark Scholten<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=bc6eeab82250fe3ae2fce6db3831b64f976c28cc">[bc6eeab822]</a> Daniel Journo -- app_voicemail: Cannot set fromstring on a per-mailbox basis</li>
+</ul><a href="https://issues.asterisk.org/jira/browse/ASTERISK-26782">ASTERISK-26782</a>: res_pjsip: URI requirement for fields is not consistently documented and error does not provide indication<br/>Reported by: Peter Sokolov<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=d49af061bc689c1b9d9539c05619fa02380c060d">[d49af061bc]</a> Joshua Colp -- config: Improve documentation and behavior of outbound_proxy option.</li>
+</ul><br><h4>Category: Features</h4><a href="https://issues.asterisk.org/jira/browse/ASTERISK-26781">ASTERISK-26781</a>: bridge: Passing the 'p' (play tone) flag to Bridge() application results in garbled audio<br/>Reported by: Sean Bright<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=eac818801b8d566138791550329326ac5c84fb83">[eac818801b]</a> Joshua Colp -- bridge_native_rtp: Handle case where channel joins already suspended.</li>
+</ul><br><h4>Category: Functions/func_devstate</h4><a href="https://issues.asterisk.org/jira/browse/ASTERISK-26643">ASTERISK-26643</a>: Extra new line in Device field of DeviceStateChange AMI Event after restart of Asterisk<br/>Reported by: Roman Bedros<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=f9b791debec911a0d0847f72952e782450002077">[f9b791debe]</a> Roman Bedros -- funcs/func_devstate: Remove new line in Device field of during module load</li>
+</ul><br><h4>Category: General</h4><a href="https://issues.asterisk.org/jira/browse/ASTERISK-26668">ASTERISK-26668</a>: core: Malformed pattern matching extension (various factors) results in crash<br/>Reported by: xrobau<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=9fd9b39e8bba8471d1564e24f048d99e41fc41e1">[9fd9b39e8b]</a> Richard Mudgett -- pbx.c: Fix crash from malformed exten pattern.</li>
+</ul><a href="https://issues.asterisk.org/jira/browse/ASTERISK-26825">ASTERISK-26825</a>: pjsip.conf.sample: user_agent: still refers to branch 12<br/>Reported by: Tzafrir Cohen<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=5b34b751a0bee53d8563a1a11a25ccdaa951c3f7">[5b34b751a0]</a> Tzafrir Cohen -- pjsip.conf.sample: user_agent: not a specific version</li>
+</ul><br><h4>Category: PBX/pbx_dundi</h4><a href="https://issues.asterisk.org/jira/browse/ASTERISK-18731">ASTERISK-18731</a>: [patch] DUNDi weight parameter not processed correctly<br/>Reported by: Peter Racz<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=0654bf637cd8f1c31b82e1751d4030299e745452">[0654bf637c]</a> Peter Racz -- pbx_dundi: DUNDi weight parameter not processed correctly</li>
+</ul><br><h4>Category: PBX/pbx_spool</h4><a href="https://issues.asterisk.org/jira/browse/ASTERISK-17067">ASTERISK-17067</a>: Long lines in call files cause spurious syntax error<br/>Reported by: Dave Olszewski<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=77901a58ca2aef7ef9b797bf7e7c3c1606d017ae">[77901a58ca]</a> Sean Bright -- pbx_spool: Gracefully handle long lines in call files</li>
+</ul><br><h4>Category: Resources/res_config_ldap</h4><a href="https://issues.asterisk.org/jira/browse/ASTERISK-26580">ASTERISK-26580</a>: [patch] Error during LDAP modify action when user unregisters<br/>Reported by: Nicholas John Koch<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=6d5e9993b22f10d14cd221e32ac64f72430aa7c7">[6d5e9993b2]</a> Sean Bright -- res_config_ldap: Fix erroneous LDAP_MOD_REPLACE in LDAP modify</li>
+</ul><br><h4>Category: Resources/res_config_pgsql</h4><a href="https://issues.asterisk.org/jira/browse/ASTERISK-25628">ASTERISK-25628</a>: res_config_pgsql: should match the behavior of other drivers so that queue_log can disable adaptive logging<br/>Reported by: Dmitry Wagin<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=76971d4c4a58b613ad77fb310e0da409673e12be">[76971d4c4a]</a> Sean Bright -- res_config_pgsql: Make 'require' return consistent with other backends</li>
+</ul><a href="https://issues.asterisk.org/jira/browse/ASTERISK-15858">ASTERISK-15858</a>: [patch] Fix query with double backslash in string literals and stop log warnings<br/>Reported by: Humberto Figuera<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=2cd75fe31185a3191c9555969fb6281357129b63">[2cd75fe311]</a> Sean Bright -- realtime: Fix LIKE escaping in SQL backends</li>
+</ul><br><h4>Category: Resources/res_config_sqlite3</h4><a href="https://issues.asterisk.org/jira/browse/ASTERISK-26057">ASTERISK-26057</a>: res_config_sqlite3 uses incorrect query - unnecessary escape<br/>Reported by: Stepan<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=2cd75fe31185a3191c9555969fb6281357129b63">[2cd75fe311]</a> Sean Bright -- realtime: Fix LIKE escaping in SQL backends</li>
+</ul><a href="https://issues.asterisk.org/jira/browse/ASTERISK-23457">ASTERISK-23457</a>: SQlite3: Realtime queue loading fails after PRAGMA query result<br/>Reported by: Scott Griepentrog<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=9b02bbfa882a451846a3ced1b955aca67d5a6b98">[9b02bbfa88]</a> Sean Bright -- res_config_sqlite3: Properly create missing columns when necessary</li>
+</ul><br><h4>Category: Resources/res_hep</h4><a href="https://issues.asterisk.org/jira/browse/ASTERISK-26717">ASTERISK-26717</a>: Document the fact that Asterisk HEP support only works with the PJSIP channel driver<br/>Reported by: Olivier Krief<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=51985565ef6b1ecfa9170df1ebf8153364133777">[51985565ef]</a> Matt Jordan -- configs/samples/hep.conf.sample: Clarify how the HEP stack works</li>
+</ul><br><h4>Category: Resources/res_hep_pjsip</h4><a href="https://issues.asterisk.org/jira/browse/ASTERISK-26850">ASTERISK-26850</a>: res_hep_pjsip: Asterisk insert wrong protocol name in "Protocol ID" field in HEP packets<br/>Reported by: Max Norba<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=218f618095f5985a00748d8107b6afadd00b71fa">[218f618095]</a> Sean Bright -- res_hep: Capture actual transport type in use</li>
+</ul><br><h4>Category: Resources/res_pjsip</h4><a href="https://issues.asterisk.org/jira/browse/ASTERISK-26879">ASTERISK-26879</a>: PJSIP external_media_address ignored if no local_net options are provided<br/>Reported by: Matt Jordan<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=776ffd7724d1656b45fac42ea8df2902770322d0">[776ffd7724]</a> Matt Jordan -- res/res_pjsip_session: Only check localnet if it is defined</li>
+</ul><a href="https://issues.asterisk.org/jira/browse/ASTERISK-26685">ASTERISK-26685</a>: res_pjsip: Crash when using IPv6 and Transport ws,wss<br/>Reported by: Michael Balen<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=2a85888262da036cecf2d767eb07e53205e1860e">[2a85888262]</a> Joshua Colp -- res_pjsip_transport_websocket: Add support for IPv6.</li>
+</ul><a href="https://issues.asterisk.org/jira/browse/ASTERISK-26623">ASTERISK-26623</a>: res_pjsip: Crash when calling PJSIPShowEndpoint<br/>Reported by: Jørgen H<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=0595c31da749b18a60d957b8685b93c96045cd68">[0595c31da7]</a> Jørgen H -- res_pjsip: Fix crash when contact has no status</li>
+</ul><a href="https://issues.asterisk.org/jira/browse/ASTERISK-26782">ASTERISK-26782</a>: res_pjsip: URI requirement for fields is not consistently documented and error does not provide indication<br/>Reported by: Peter Sokolov<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=d49af061bc689c1b9d9539c05619fa02380c060d">[d49af061bc]</a> Joshua Colp -- config: Improve documentation and behavior of outbound_proxy option.</li>
+</ul><a href="https://issues.asterisk.org/jira/browse/ASTERISK-26799">ASTERISK-26799</a>: res_pjsip: Using an auth object for inbound and outbound authentication fails.<br/>Reported by: Richard Mudgett<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=3b606093d337bfeff31c7b2c6387f96d322e516a">[3b606093d3]</a> Richard Mudgett -- res_pjsip_authenticator_digest.c: Fix sorcery's immutable contract violation.</li>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=6208962b000ad2660b592d91023e64759819faed">[6208962b00]</a> Richard Mudgett -- res_pjsip: Update artificial auth whenever default_realm changes.</li>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=9f11da85a21baac5d248e32ee1cc81ae55c2a991">[9f11da85a2]</a> Richard Mudgett -- res_pjsip: Update authentication realm documentation.</li>
+</ul><a href="https://issues.asterisk.org/jira/browse/ASTERISK-26738">ASTERISK-26738</a>: Frequent segfaults since activation of DNS SRV, in pjsip_auth_clt_reinit_req at /pjsip/sip_auth_client.c, and pj_atomic_inc_and_get at pj/os_core_unix.c<br/>Reported by: Michael Maier<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=473813311ba901936a5dcc00bb6021c252cc12c1">[473813311b]</a> Richard Mudgett -- pjproject: Fixes to resolve DNS SRV crashes.</li>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=d58fdae81126798e95a0f4b113854fd50e01bea8">[d58fdae811]</a> Richard Mudgett -- pjsip_distributor.c: Update some debug messages to get transaction name.</li>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=eb9ae4f7cba333c4cd188c741a71c1f244071929">[eb9ae4f7cb]</a> Richard Mudgett -- res_pjsip: Record the serializer earlier on the tdata.</li>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=57f19d6efbfa6aa54483415e4a8c20a1004411ef">[57f19d6efb]</a> Richard Mudgett -- pjproject: Increase SENDER_WIDTH column size for 64-bit system logs.</li>
+</ul><a href="https://issues.asterisk.org/jira/browse/ASTERISK-26248">ASTERISK-26248</a>: chan_pjsip: Error when calling PJSIP client with domain specified<br/>Reported by: Norbert Varga<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=17030100cae184910e981be44cdec02fac937a9a">[17030100ca]</a> Norbert Varga -- chan_pjsip: Multidomain endpoint finding on call</li>
+</ul><br><h4>Category: Resources/res_pjsip_authenticator_digest</h4><a href="https://issues.asterisk.org/jira/browse/ASTERISK-26799">ASTERISK-26799</a>: res_pjsip: Using an auth object for inbound and outbound authentication fails.<br/>Reported by: Richard Mudgett<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=3b606093d337bfeff31c7b2c6387f96d322e516a">[3b606093d3]</a> Richard Mudgett -- res_pjsip_authenticator_digest.c: Fix sorcery's immutable contract violation.</li>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=6208962b000ad2660b592d91023e64759819faed">[6208962b00]</a> Richard Mudgett -- res_pjsip: Update artificial auth whenever default_realm changes.</li>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=9f11da85a21baac5d248e32ee1cc81ae55c2a991">[9f11da85a2]</a> Richard Mudgett -- res_pjsip: Update authentication realm documentation.</li>
+</ul><br><h4>Category: Resources/res_pjsip_messaging</h4><a href="https://issues.asterisk.org/jira/browse/ASTERISK-26484">ASTERISK-26484</a>: res_pjsip_messaging: Crash when using invalid URI in MessageSend 'from' argument.<br/>Reported by: Vinod Dharashive<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=b3cc20799bcdd2114026ec943e6879434116406b">[b3cc20799b]</a> Sean Bright -- res_pjsip_messaging: Check URI type before dereferencing</li>
+</ul><br><h4>Category: Resources/res_pjsip_mwi</h4><a href="https://issues.asterisk.org/jira/browse/ASTERISK-26756">ASTERISK-26756</a>: res_pjsip_mwi: Asterisk does not terminate MWI subscription<br/>Reported by: Carl Fortin<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=be77b845d90d14856627340a0e01ad36628ddff0">[be77b845d9]</a> gtjoseph -- res_pjsip_pubsub: Correctly implement persisted subscriptions</li>
+</ul><br><h4>Category: Resources/res_pjsip_outbound_registration</h4><a href="https://issues.asterisk.org/jira/browse/ASTERISK-26808">ASTERISK-26808</a>: res_pjsip_outbound_registration doesn't know about network change events<br/>Reported by: George Joseph<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=c07bcca87e0807a66649e91f6c037d2faaf97c59">[c07bcca87e]</a> gtjoseph -- res_pjsip_outbound_registration: Subscribe to network change events</li>
+</ul><a href="https://issues.asterisk.org/jira/browse/ASTERISK-26782">ASTERISK-26782</a>: res_pjsip: URI requirement for fields is not consistently documented and error does not provide indication<br/>Reported by: Peter Sokolov<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=d49af061bc689c1b9d9539c05619fa02380c060d">[d49af061bc]</a> Joshua Colp -- config: Improve documentation and behavior of outbound_proxy option.</li>
+</ul><br><h4>Category: Resources/res_pjsip_pubsub</h4><a href="https://issues.asterisk.org/jira/browse/ASTERISK-26776">ASTERISK-26776</a>: res_pjsip_pubsub: Crash when generating xpidf content<br/>Reported by: Andrew Green<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=91c97b5da5fd7008b8a5f90565ba26d72c014d9f">[91c97b5da5]</a> Joshua Elson -- pjsip: prevent memory corruption on creation of xml bodies</li>
+</ul><a href="https://issues.asterisk.org/jira/browse/ASTERISK-26823">ASTERISK-26823</a>: PJSIP: Persistent subscriptions can cause FRACKs if endpoint does not exist<br/>Reported by: Mark Michelson<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=8e6ecdade2f9a154ea10ecb6e20635b328cb9dcf">[8e6ecdade2]</a> gtjoseph -- res_pjsip_pubsub: Remove unneeded endpoint unref</li>
+</ul><a href="https://issues.asterisk.org/jira/browse/ASTERISK-26696">ASTERISK-26696</a>: pjsip_pubsub: PJSIP Subscription Persistence in AstDB Does not update on subscription refresh<br/>Reported by: Zach R<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=be77b845d90d14856627340a0e01ad36628ddff0">[be77b845d9]</a> gtjoseph -- res_pjsip_pubsub: Correctly implement persisted subscriptions</li>
+</ul><br><h4>Category: Resources/res_pjsip_refer</h4><a href="https://issues.asterisk.org/jira/browse/ASTERISK-26869">ASTERISK-26869</a>: res_pjsip_refer: blind call transfer w/o a user name doesn't go to the s extension<br/>Reported by: Torrey Searle<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=48447313b6591a98f9fb8dedf890fe9a9c261556">[48447313b6]</a> Torrey Searle -- res/res_pjsip_refer: call xfer w/o extension</li>
+</ul><br><h4>Category: Resources/res_pjsip_sdp_rtp</h4><a href="https://issues.asterisk.org/jira/browse/ASTERISK-26851">ASTERISK-26851</a>: res_pjsip_sdp_rtp: RTP instance does not use same IP as explicit transport<br/>Reported by: Richard Begg<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=139bc3495f8f46201b4aac6c84a5f0d04822f9da">[139bc3495f]</a> Richard Begg -- res_pjsip_sdp_rtp: RTP instance does not use same IP as explicit transport</li>
+</ul><br><h4>Category: Resources/res_pjsip_transport_websocket</h4><a href="https://issues.asterisk.org/jira/browse/ASTERISK-26796">ASTERISK-26796</a>: res_pjsip_transport_websocket: Via header is 'WS' when it should be 'WSS'<br/>Reported by: Jørgen H<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=e510595c868c58eea6213f727156ea7d05141428">[e510595c86]</a> Jørgen H -- res_pjsip WebRTC/websockets: Fix usage of WS vs WSS.</li>
+</ul><br><h4>Category: Resources/res_rtp_asterisk</h4><a href="https://issues.asterisk.org/jira/browse/ASTERISK-26732">ASTERISK-26732</a>: res_rtp_asterisk: Implement RTCP Multiplexing - breaking WebRTC in Chrome<br/>Reported by: Dan Jenkins<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=047fb7f11ead526fd0d891c38f043469b36f1803">[047fb7f11e]</a> Richard Mudgett -- res_pjsip_asterisk.c: Fix compile error if libsrtp is not installed.</li>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=7ea7797e12b155a2a447ab2d2d27780538219253">[7ea7797e12]</a> Joshua Colp -- res_rtp_asterisk: Fix crash when RTCP is not present when DTLS is stopped.</li>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=7bc69753bc79fa47508c5d62e9bc27f41698bb41">[7bc69753bc]</a> Mark Michelson -- Add rtcp-mux support</li>
+</ul><br><h4>Category: Resources/res_stasis_device_state</h4><a href="https://issues.asterisk.org/jira/browse/ASTERISK-26770">ASTERISK-26770</a>: res_stasis_device_state: Duplicate subscriptions when multiple received at same time<br/>Reported by: Joshua Colp<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=7b39d6901a97d24eec3b9a78868df606790a081b">[7b39d6901a]</a> Joshua Colp -- res_stasis_device_state: Protect the adding/removing of subscriptions.</li>
+</ul><br><h4>Category: Third-Party/pjproject</h4><a href="https://issues.asterisk.org/jira/browse/ASTERISK-26872">ASTERISK-26872</a>: Bundled pjproject fails to build when tarball downloaded with curl due to md5 verification failure in Docker containers (or when there is no terminal)<br/>Reported by: Matt Jordan<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=658d59c683ff127a37b1be4635b38c360b74b46e">[658d59c683]</a> Matt Jordan -- configure: Don't use the progress bar with curl when downloading to stdout</li>
+</ul><br><h4>Category: pjproject/pjsip</h4><a href="https://issues.asterisk.org/jira/browse/ASTERISK-26669">ASTERISK-26669</a>: PJSIP Segfault 13.13.1 (Bundled PJSIP)<br/>Reported by: Nic Colledge<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=473813311ba901936a5dcc00bb6021c252cc12c1">[473813311b]</a> Richard Mudgett -- pjproject: Fixes to resolve DNS SRV crashes.</li>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=d58fdae81126798e95a0f4b113854fd50e01bea8">[d58fdae811]</a> Richard Mudgett -- pjsip_distributor.c: Update some debug messages to get transaction name.</li>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=eb9ae4f7cba333c4cd188c741a71c1f244071929">[eb9ae4f7cb]</a> Richard Mudgett -- res_pjsip: Record the serializer earlier on the tdata.</li>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=57f19d6efbfa6aa54483415e4a8c20a1004411ef">[57f19d6efb]</a> Richard Mudgett -- pjproject: Increase SENDER_WIDTH column size for 64-bit system logs.</li>
+</ul><a href="https://issues.asterisk.org/jira/browse/ASTERISK-26802">ASTERISK-26802</a>: [patch] Integrity Check Of PJSIP Download Fails<br/>Reported by: Michael L. Young<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=047a1e7dcc3e89fa951c5d714c68cd7fd2d09b37">[047a1e7dcc]</a> Sean Bright -- pjproject-bundled: Fix checksum verification when using cURL</li>
+</ul><a href="https://issues.asterisk.org/jira/browse/ASTERISK-26696">ASTERISK-26696</a>: pjsip_pubsub: PJSIP Subscription Persistence in AstDB Does not update on subscription refresh<br/>Reported by: Zach R<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=be77b845d90d14856627340a0e01ad36628ddff0">[be77b845d9]</a> gtjoseph -- res_pjsip_pubsub: Correctly implement persisted subscriptions</li>
+</ul><br><h3>Improvement</h3><h4>Category: Channels/chan_sip/General</h4><a href="https://issues.asterisk.org/jira/browse/ASTERISK-26846">ASTERISK-26846</a>: chan_sip: Add rtcp-mux support<br/>Reported by: Sean Bright<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=8721d0bf1b20ccd02dfe4e0388e3a33ee7e7f6e8">[8721d0bf1b]</a> Sean Bright -- chan_sip: Add rtcp-mux support</li>
+</ul><br><h4>Category: Resources/res_pjsip_session</h4><a href="https://issues.asterisk.org/jira/browse/ASTERISK-26864">ASTERISK-26864</a>: res_pjsip_session: Add support for overlap dialling<br/>Reported by: Richard Begg<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=398e5ec16c5b919e17708e26d2e045c389afbd1c">[398e5ec16c]</a> Richard Begg -- res_pjsip_session: Enable RFC3578 overlap dialing support.</li>
+</ul><br><hr><a name="open_issues"><h2 align="center">Open Issues</h2></a><center><a href="#top">[Back to Top]</a></center><p>This is a list of all open issues from the issue tracker that were referenced by changes that went into this release.</p><h3>Bug</h3><h4>Category: Applications/app_queue</h4><a href="https://issues.asterisk.org/jira/browse/ASTERISK-26400">ASTERISK-26400</a>: app_queue: Queue member stops being called after AMI "Redirect" action for queues with wrapuptime<br/>Reported by: Etienne Lessard<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=163e9e53dc7d84dd42721e733b7706c8147bdd27">[163e9e53dc]</a> Sean Bright -- app_queue: Handle the caller being redirected out of a queue bridge</li>
+</ul><br><hr><a name="commits"><h2 align="center">Commits Not Associated with an Issue</h2></a><center><a href="#top">[Back to Top]</a></center><p>This is a list of all changes that went into this release that did not reference a JIRA issue.</p><table width="100%" border="1">
+<tr><th>Revision</th><th>Author</th><th>Summary</th></tr>
+<tr><td><a href="https://code.asterisk.org/code/changelog/asterisk?cs=f1b34e6eb465221902baf4dc9f8979201472202c">f1b34e6eb4</a></td><td>Kevin Harwell</td><td>AMI: Updated version</td></tr>
+<tr><td><a href="https://code.asterisk.org/code/changelog/asterisk?cs=1c8b81a2a43ee56f3f1187972719da256d7f1bf6">1c8b81a2a4</a></td><td>Sean Bright</td><td>Revert "app_queue: Handle the caller being redirected out of a queue bridge"</td></tr>
+<tr><td><a href="https://code.asterisk.org/code/changelog/asterisk?cs=38cebc73a33195fa14d6fa417284c59efe6111ee">38cebc73a3</a></td><td>Sean Bright</td><td>thread safety: Don't use getprotobyname()</td></tr>
+<tr><td><a href="https://code.asterisk.org/code/changelog/asterisk?cs=265455bc2dc0b110a88df65209b281e846bc3e56">265455bc2d</a></td><td>Sean Bright</td><td>res_rtp_asterisk: Pass correct data length to ast_rtcp_interpret</td></tr>
+<tr><td><a href="https://code.asterisk.org/code/changelog/asterisk?cs=9a57b24e17d67b91e4e71d3848331852ce293982">9a57b24e17</a></td><td>Sean Bright</td><td>app_queue: Fix locking behavior in stasis message handlers</td></tr>
+<tr><td><a href="https://code.asterisk.org/code/changelog/asterisk?cs=792171ea9ea4a7db292e3e6b87fb377023e3e990">792171ea9e</a></td><td>Richard Mudgett</td><td>app_confbridge: Fix ConfbridgeTalking AMI event description.</td></tr>
+<tr><td><a href="https://code.asterisk.org/code/changelog/asterisk?cs=a75f02c089acfe1df13557a1d388af13702727ce">a75f02c089</a></td><td>Richard Mudgett</td><td>res_pjsip_sdp_rtp.c: Fix cut-n-paste error</td></tr>
+<tr><td><a href="https://code.asterisk.org/code/changelog/asterisk?cs=9b756662a8eadc3d489f427908126801dda786e5">9b756662a8</a></td><td>gtjoseph</td><td>res_pjsip: Symmetric transports</td></tr>
+<tr><td><a href="https://code.asterisk.org/code/changelog/asterisk?cs=6d1eb880c238dba0b71c820a4bfca673ddfa4625">6d1eb880c2</a></td><td>gtjoseph</td><td>menuselect: Add a new 'options' support type</td></tr>
+<tr><td><a href="https://code.asterisk.org/code/changelog/asterisk?cs=523de8eb8e0f7283b6c9210d5da0df541684e784">523de8eb8e</a></td><td>gtjoseph</td><td>pjproject_bundled: Reduce the need for rebuilds</td></tr>
+<tr><td><a href="https://code.asterisk.org/code/changelog/asterisk?cs=4271c700f747f40dd2f46f1f868cfb89d1cf78f8">4271c700f7</a></td><td>Richard Mudgett</td><td>core: Cleanup ast_get_hint() usage.</td></tr>
+<tr><td><a href="https://code.asterisk.org/code/changelog/asterisk?cs=fa8f6c2fc419fdcb9ddc72f42259145d99663211">fa8f6c2fc4</a></td><td>Sean Bright</td><td>res_config_pgsql: Release table locks where appropriate</td></tr>
+<tr><td><a href="https://code.asterisk.org/code/changelog/asterisk?cs=9c05ddbdddb80d46a0621b519858b37d2e7c01fb">9c05ddbddd</a></td><td>gtjoseph</td><td>pjproject_bundled: Update for pjproject 2.6</td></tr>
+<tr><td><a href="https://code.asterisk.org/code/changelog/asterisk?cs=da0cadd100a136038827f3be706372cd16134dcd">da0cadd100</a></td><td>Sean Bright</td><td>res_config_pgsql: Fix thread safety problems</td></tr>
+<tr><td><a href="https://code.asterisk.org/code/changelog/asterisk?cs=f1963c5b8d098561b8bddbf30a0c27ac63a1807c">f1963c5b8d</a></td><td>Sean Bright</td><td>res_config_ldap: Various code improvements</td></tr>
+<tr><td><a href="https://code.asterisk.org/code/changelog/asterisk?cs=5c9c097d179c7bf140dccc998afba6eeb65d9965">5c9c097d17</a></td><td>Joshua Colp</td><td>Revert "build: Execute ldconfig to build cache."</td></tr>
+<tr><td><a href="https://code.asterisk.org/code/changelog/asterisk?cs=d5522de597cc6fbbc9747fa6798144cd5d00cdb1">d5522de597</a></td><td>Sean Bright</td><td>realtime: Fix ast_load_realtime_multientry handling</td></tr>
+<tr><td><a href="https://code.asterisk.org/code/changelog/asterisk?cs=5eb7875243905927693242b52f5434634e64a1d8">5eb7875243</a></td><td>Sean Bright</td><td>realtime: Centralize some common realtime backend code</td></tr>
+<tr><td><a href="https://code.asterisk.org/code/changelog/asterisk?cs=06214173a9350e83eb3575927f4c3695547a5be2">06214173a9</a></td><td>Joshua Colp</td><td>Revert "build: Execute ldconfig to build cache."</td></tr>
+<tr><td><a href="https://code.asterisk.org/code/changelog/asterisk?cs=c9ea98f9bf3a91d1fdfafc754d2ce6a6147c1d70">c9ea98f9bf</a></td><td>gtjoseph</td><td>pjproject cli: Add object count after object lists</td></tr>
+<tr><td><a href="https://code.asterisk.org/code/changelog/asterisk?cs=d8972f50f4b3c47a2271e6db52604eee1796fd80">d8972f50f4</a></td><td>Sean Bright</td><td>res_config_ldap: Don't try to delete non-existent attributes</td></tr>
+<tr><td><a href="https://code.asterisk.org/code/changelog/asterisk?cs=b980cae1f7a0d392e5b25eaa6676687583fbd3c4">b980cae1f7</a></td><td>Sean Bright</td><td>res_config_ldap: Remove extraneous line numbers from log messages</td></tr>
+<tr><td><a href="https://code.asterisk.org/code/changelog/asterisk?cs=011b7be62a0c64cee904a996d23ad65c13022e39">011b7be62a</a></td><td>Sean Bright</td><td>res_config_ldap: Make memory allocation more consistent</td></tr>
+<tr><td><a href="https://code.asterisk.org/code/changelog/asterisk?cs=b2836dde7ef9f1c14ccd721f2d94ec8f3683433b">b2836dde7e</a></td><td>Sean Bright</td><td>res_config_ldap: Fix configuration inheritance from _general</td></tr>
+<tr><td><a href="https://code.asterisk.org/code/changelog/asterisk?cs=5b7c6678aedfe9cb196442b9170870d5ac352402">5b7c6678ae</a></td><td>Sean Bright</td><td>res_config_sqlite3: Fix crash when loading with invalid config</td></tr>
+<tr><td><a href="https://code.asterisk.org/code/changelog/asterisk?cs=096496e13e2b08c8703da95acb9f14a78e117361">096496e13e</a></td><td>Richard Mudgett</td><td>tcptls.c: Add some missing allocation failure checks.</td></tr>
+<tr><td><a href="https://code.asterisk.org/code/changelog/asterisk?cs=73133d5354d5794a99f901532a6516857c3e4831">73133d5354</a></td><td>Sean Bright</td><td>res_rtp_asterisk: Use PJ_ICE_MAX_CAND instead of hard-coding 16</td></tr>
+<tr><td><a href="https://code.asterisk.org/code/changelog/asterisk?cs=ea8a610776ca80ddb2302543e32b487896ad2f5c">ea8a610776</a></td><td>Sean Bright</td><td>cli: Fix various CLI documentation and completion issues</td></tr>
+<tr><td><a href="https://code.asterisk.org/code/changelog/asterisk?cs=a46a21642e162e1862028cfc43998a04dc9818b5">a46a21642e</a></td><td>Richard Mudgett</td><td>res_pjsip.c: Fix inconsistency between warning and action.</td></tr>
+<tr><td><a href="https://code.asterisk.org/code/changelog/asterisk?cs=67b21dc63afb94e4a8b913f149cfc220e16790f7">67b21dc63a</a></td><td>Richard Mudgett</td><td>pjsip_distributor.c: Fix off-nominal tdata ref leak.</td></tr>
+<tr><td><a href="https://code.asterisk.org/code/changelog/asterisk?cs=2817f87d27f1056ba970ed74d8798b9214aa214f">2817f87d27</a></td><td>Richard Mudgett</td><td>core: Cleanup some channel snapshot staging anomalies.</td></tr>
+<tr><td><a href="https://code.asterisk.org/code/changelog/asterisk?cs=cbc23c31cfdcd6096737ec9fc86acb50443720c5">cbc23c31cf</a></td><td>Mark Michelson</td><td>Revert "Update qualifies when AOR configuration changes."</td></tr>
+<tr><td><a href="https://code.asterisk.org/code/changelog/asterisk?cs=c384dfd6b086231d9bbc59fbe6047527d34fb37d">c384dfd6b0</a></td><td>Richard Mudgett</td><td>res_pjsip: Fix some off nominal tdata leaks.</td></tr>
+</table><hr><a name="diffstat"><h2 align="center">Diffstat Results</h2></a><center><a href="#top">[Back to Top]</a></center><p>This is a summary of the changes to the source code that went into this release that was generated using the diffstat utility.</p><pre>.lastclean | 1
+.version | 1
+ChangeLog |47776 ----------
+asterisk-13.14.0-summary.html | 336
+asterisk-13.14.0-summary.txt | 878
+b/CHANGES | 89
+b/Makefile | 64
+b/UPGRADE.txt | 9
+b/addons/res_config_mysql.c | 61
+b/apps/app_chanspy.c | 62
+b/apps/app_dial.c | 26
+b/apps/app_directory.c | 18
+b/apps/app_minivm.c | 8
+b/apps/app_mixmonitor.c | 21
+b/apps/app_originate.c | 8
+b/apps/app_queue.c | 98
+b/apps/app_record.c | 13
+b/apps/app_voicemail.c | 57
+b/apps/confbridge/conf_config_parser.c | 12
+b/apps/confbridge/confbridge_manager.c | 2
+b/bridges/bridge_native_rtp.c | 6
+b/bridges/bridge_softmix.c | 3
+b/build_tools/download_externals | 4
+b/channels/chan_alsa.c | 20
+b/channels/chan_iax2.c | 8
+b/channels/chan_pjsip.c | 57
+b/channels/chan_sip.c | 180
+b/channels/chan_skinny.c | 49
+b/channels/chan_unistim.c | 27
+b/channels/pjsip/cli_commands.c | 16
+b/channels/pjsip/dialplan_functions.c | 18
+b/channels/sip/include/sip.h | 3
+b/configs/samples/hep.conf.sample | 10
+b/configs/samples/pjsip.conf.sample | 51
+b/configs/samples/sip.conf.sample | 2
+b/configs/samples/sorcery.conf.sample | 2
+b/configs/samples/voicemail.conf.sample | 9
+b/configure | 147
+b/configure.ac | 25
+b/contrib/ast-db-manage/config/versions/15db7b91a97a_add_rtcp_mux.py | 31
+b/contrib/ast-db-manage/config/versions/465e70e8c337_add_match_header_attribute_to_identify.py | 21
+b/contrib/ast-db-manage/config/versions/8fce4c573e15_add_pjsip_allow_overlap.py | 31
+b/contrib/ast-db-manage/config/versions/f638dbe2eb23_symmetric_transport.py | 32
+b/funcs/func_channel.c | 15
+b/funcs/func_devstate.c | 2
+b/funcs/func_odbc.c | 6
+b/funcs/func_periodic_hook.c | 4
+b/include/asterisk/autochan.h | 20
+b/include/asterisk/autoconfig.h.in | 4
+b/include/asterisk/bridge_technology.h | 3
+b/include/asterisk/config.h | 12
+b/include/asterisk/manager.h | 2
+b/include/asterisk/network.h | 5
+b/include/asterisk/pbx.h | 29
+b/include/asterisk/res_hep.h | 2
+b/include/asterisk/res_pjsip.h | 94
+b/include/asterisk/res_pjsip_session.h | 2
+b/include/asterisk/rtp_engine.h | 11
+b/main/Makefile | 18
+b/main/asterisk.c | 24
+b/main/astmm.c | 21
+b/main/autochan.c | 16
+b/main/bridge.c | 14
+b/main/ccss.c | 9
+b/main/channel.c | 27
+b/main/cli.c | 33
+b/main/http.c | 33
+b/main/libasteriskssl.c | 11
+b/main/manager.c | 52
+b/main/message.c | 6
+b/main/pbx.c | 58
+b/main/pbx_app.c | 3
+b/main/pbx_hangup_handler.c | 2
+b/main/rtp_engine.c | 14
+b/main/say.c | 4
+b/main/stasis_cache.c | 2
+b/main/tcptls.c | 34
+b/menuselect/menuselect.c | 8
+b/menuselect/menuselect.h | 3
+b/pbx/pbx_dundi.c | 8
+b/pbx/pbx_realtime.c | 23
+b/pbx/pbx_spool.c | 282
+b/res/res_clioriginate.c | 8
+b/res/res_config_curl.c | 7
+b/res/res_config_ldap.c | 768
+b/res/res_config_odbc.c | 6
+b/res/res_config_pgsql.c | 194
+b/res/res_config_sqlite.c | 8
+b/res/res_config_sqlite3.c | 228
+b/res/res_hep.c | 5
+b/res/res_hep_pjsip.c | 12
+b/res/res_pjsip.c | 244
+b/res/res_pjsip/config_transport.c | 22
+b/res/res_pjsip/pjsip_cli.c | 2
+b/res/res_pjsip/pjsip_configuration.c | 2
+b/res/res_pjsip/pjsip_distributor.c | 127
+b/res/res_pjsip/pjsip_message_ip_updater.c | 83
+b/res/res_pjsip/pjsip_options.c | 4
+b/res/res_pjsip/pjsip_scheduler.c | 32
+b/res/res_pjsip/security_events.c | 4
+b/res/res_pjsip_authenticator_digest.c | 105
+b/res/res_pjsip_endpoint_identifier_ip.c | 101
+b/res/res_pjsip_exten_state.c | 5
+b/res/res_pjsip_history.c | 7
+b/res/res_pjsip_messaging.c | 10
+b/res/res_pjsip_mwi.c | 2
+b/res/res_pjsip_nat.c | 47
+b/res/res_pjsip_outbound_publish.c | 18
+b/res/res_pjsip_outbound_registration.c | 140
+b/res/res_pjsip_pubsub.c | 274
+b/res/res_pjsip_refer.c | 7
+b/res/res_pjsip_sdp_rtp.c | 89
+b/res/res_pjsip_session.c | 63
+b/res/res_pjsip_t38.c | 5
+b/res/res_pjsip_transport_websocket.c | 69
+b/res/res_rtp_asterisk.c | 382
+b/res/res_sorcery_memory_cache.c | 14
+b/res/res_stasis_device_state.c | 39
+b/third-party/pjproject/Makefile | 2
+b/third-party/pjproject/Makefile.rules | 4
+b/third-party/pjproject/configure.m4 | 1
+b/third-party/pjproject/patches/0000-remove-third-party.patch | 49
+b/third-party/pjproject/patches/0010-evsub-Add-pjsip_evsub_set_uas_timeout.patch | 84
+b/third-party/pjproject/patches/0011-r5554-svn-backport-Increase-SENDER_WIDTH-column-size.patch | 77
+b/third-party/pjproject/patches/0013-r5559-svn-backport-Fix-to-resolve-DNS-SRV-crashes.patch | 112
+b/third-party/pjproject/patches/0014-Add-pjsip-transport-register-type-ipv6.patch | 50
+contrib/realtime/mssql/mssql_cdr.sql | 44
+contrib/realtime/mssql/mssql_config.sql | 1571
+contrib/realtime/mssql/mssql_voicemail.sql | 54
+contrib/realtime/mysql/mysql_cdr.sql | 32
+contrib/realtime/mysql/mysql_config.sql | 964
+contrib/realtime/mysql/mysql_voicemail.sql | 34
+contrib/realtime/oracle/oracle_cdr.sql | 38
+contrib/realtime/oracle/oracle_config.sql | 1565
+contrib/realtime/oracle/oracle_voicemail.sql | 48
+contrib/realtime/postgresql/postgresql_cdr.sql | 36
+contrib/realtime/postgresql/postgresql_config.sql | 1042
+contrib/realtime/postgresql/postgresql_voicemail.sql | 38
+third-party/pjproject/patches/0001-r5397-pjsip_generic_array_max_count.patch | 58
+third-party/pjproject/patches/0001-r5400-pjsip_tx_data_dec_ref.patch | 24
+third-party/pjproject/patches/0002-Fix-1946-Avoid-deinitialization-of-uninitialized-cli.patch | 56
+third-party/pjproject/patches/0002-r5435-add-pjsip_inv_session-ref_cnt.patch | 212
+third-party/pjproject/patches/0003-r5403-pjsip_IPV6_V6ONLY.patch | 13
+third-party/pjproject/patches/0004-resolver.c-Prevent-SERVFAIL-from-marking-name-server.patch | 48
+third-party/pjproject/patches/0005-Re-1969-Fix-crash-on-using-an-already-destroyed-SSL-.patch | 164
+third-party/pjproject/patches/0006-r5471-svn-backport-Various-fixes-for-DNS-IPv6.patch | 134
+third-party/pjproject/patches/0006-r5473-svn-backport-Fix-pending-query.patch | 28
+third-party/pjproject/patches/0006-r5475-svn-backport-Remove-DNS-cache-entry.patch | 70
+third-party/pjproject/patches/0006-r5477-svn-backport-Fix-DNS-write-on-freed-memory.patch | 33
+149 files changed, 4172 insertions(+), 56854 deletions(-)</pre><br></html> \ No newline at end of file
diff --git a/asterisk-13.15.0-rc1-summary.txt b/asterisk-13.15.0-rc1-summary.txt
new file mode 100644
index 000000000..dae2fe025
--- /dev/null
+++ b/asterisk-13.15.0-rc1-summary.txt
@@ -0,0 +1,967 @@
+ Release Summary
+
+ asterisk-13.15.0-rc1
+
+ Date: 2017-03-23
+
+ <asteriskteam@digium.com>
+
+ ----------------------------------------------------------------------
+
+ Table of Contents
+
+ 1. Summary
+ 2. Contributors
+ 3. Closed Issues
+ 4. Open Issues
+ 5. Other Changes
+ 6. Diffstat
+
+ ----------------------------------------------------------------------
+
+ Summary
+
+ [Back to Top]
+
+ This release is a point release of an existing major version. The changes
+ included were made to address problems that have been identified in this
+ release series, or are minor, backwards compatible new features or
+ improvements. Users should be able to safely upgrade to this version if
+ this release series is already in use. Users considering upgrading from a
+ previous version are strongly encouraged to review the UPGRADE.txt
+ document as well as the CHANGES document for information about upgrading
+ to this release series.
+
+ The data in this summary reflects changes that have been made since the
+ previous release, asterisk-13.14.0.
+
+ ----------------------------------------------------------------------
+
+ Contributors
+
+ [Back to Top]
+
+ This table lists the people who have submitted code, those that have
+ tested patches, as well as those that reported issues on the issue tracker
+ that were resolved in this release. For coders, the number is how many of
+ their patches (of any size) were committed into this release. For testers,
+ the number is the number of times their name was listed as assisting with
+ testing a patch. Finally, for reporters, the number is the number of
+ issues that they reported that were affected by commits that went into
+ this release.
+
+ Coders Testers Reporters
+ 31 Sean Bright 1 Matt Jordan 5 George Joseph
+ 19 Richard Mudgett 4 Michael Maier
+ 12 Joshua Colp 4 Nic Colledge
+ 11 gtjoseph 4 Matt Jordan
+ 5 Matt Jordan 4 Tzafrir Cohen
+ 4 Tzafrir Cohen 4 Richard Mudgett
+ 3 Richard Begg 3 Richard Begg
+ 3 Daniel Journo 3 Dan Jenkins
+ 2 Joshua Elson 3 Joshua Colp
+ 2 JA,rgen H 2 Michael L. Young
+ 2 Mark Michelson 2 Sean Bright
+ 1 Peter Racz 2 JA,rgen H
+ 1 Kevin Harwell 2 Torrey Searle
+ 1 Michael L. Young 1 Peter Racz
+ 1 Roman Bedros (License 6842) 1 Etienne Lessard
+ 1 Norbert Varga 1 Stepan
+ 1 nappsoft (license 6822) 1 Jean Aunis - Prescom
+ 1 var 1 Max Norba
+ 1 Torrey Searle 1 Scott Griepentrog
+ 1 Robert Mordec 1 Dave Olszewski
+ 1 Jean Aunis 1 Peter Sokolov
+ 1 Ryan Rittgarn 1 Dmitry Wagin
+ 1 Vitezslav Novy 1 Dave Olszewski
+ 1 Igor Goncharovsky 1 Dmitry Wagin
+ 1 Kevin Harwell
+ 1 Charlie Smurthwaite
+ 1 Filip Jenicek
+ 1 John Covert
+ 1 Norbert Varga
+ 1 Michael L. Young
+ 1 Roman Bedros
+ 1 Igor Goncharovsky
+ 1 Filip Jenicek
+ 1 Peter Racz
+ 1 nappsoft
+ 1 Smirnov Aleksey
+ 1 Nasir Iqbal
+ 1 var
+ 1 Nicholas John Koch
+ 1 Michael Balen
+ 1 Mark Scholten
+ 1 Humberto Figuera
+ 1 Vinod Dharashive
+ 1 Krzysztof Trempala
+ 1 Andrew Green
+ 1 Zach R
+ 1 Ryan Rittgarn
+ 1 Kirsty Tyerman
+ 1 Carl Fortin
+ 1 xrobau
+ 1 Etienne Lessard
+ 1 Nasir Iqbal
+ 1 Joshua Elson
+ 1 Charlie Smurthwaite
+ 1 John Covert
+ 1 Nicholas John Koch
+ 1 Jonathan Harris
+ 1 Roman Bedros
+ 1 Dan Jenkins
+ 1 Vinod Dharashive
+ 1 Kirsty Tyerman
+ 1 Robert Mordec
+ 1 Scott Griepentrog
+ 1 benasse
+ 1 Olivier Krief
+ 1 Mark Michelson
+ 1 Humberto Figuera
+
+ ----------------------------------------------------------------------
+
+ Closed Issues
+
+ [Back to Top]
+
+ This is a list of all issues from the issue tracker that were closed by
+ changes that went into this release.
+
+ New Feature
+
+ Category: Applications/app_voicemail
+
+ ASTERISK-17428: [patch] Allow "Comedian Mail" branding to be removed
+ Reported by: John Covert
+ * [4c31e03e80] Sean Bright -- app_voicemail: Allow 'Comedian Mail'
+ branding to be overriden
+
+ Category: Functions/func_channel
+
+ ASTERISK-26878: func_channel: Add ability to get the callid so dialplan
+ has access to it.
+ Reported by: Richard Mudgett
+ * [60b372a883] Richard Mudgett -- CHANNEL(callid): Give dialplan access
+ to the callid.
+
+ Category: Resources/res_pjsip
+
+ ASTERISK-26863: res_pjsip: Add endpoint identification scheme based on a
+ configured SIP header/value
+ Reported by: Matt Jordan
+ * [7612601964] Joshua Colp -- res_pjsip_endpoint_identifier_ip: Don't
+ output error if no header_match.
+ * [b3c2c996f1] Matt Jordan -- res_pjsip_endpoint_identifier_ip: Add an
+ option to match requests by header
+
+ Bug
+
+ Category: Addons/res_config_mysql
+
+ ASTERISK-18271: Pattern matching with res_config_mysql extensions does not
+ behave as expected
+ Reported by: Charlie Smurthwaite
+ * [ca6d001144] Sean Bright -- pbx_realtime: Prevent premature extension
+ matching
+
+ Category: Applications/app_mixmonitor
+
+ ASTERISK-26867: autochan: Locking in a function ast_autochan_destroy() on
+ destroyed channel (after masquerade).
+ Reported by: Krzysztof Trempala
+ * [adad6020be] Richard Mudgett -- autochan/mixmonitor/chanspy: Fix
+ unsafe channel locking and references.
+
+ Category: Applications/app_queue
+
+ ASTERISK-26862: app_queue: Queue stops calling members with local
+ interface after forwarding in previous call
+ Reported by: Robert Mordec
+ * [76afb9e18a] Robert Mordec -- app_queue: Member stuck as pending after
+ forwarding previous call from queue
+ ASTERISK-23457: SQlite3: Realtime queue loading fails after PRAGMA query
+ result
+ Reported by: Scott Griepentrog
+ * [9b02bbfa88] Sean Bright -- res_config_sqlite3: Properly create
+ missing columns when necessary
+
+ Category: Applications/app_record
+
+ ASTERISK-18286: [patch] 'Silence' is truncated in Record()
+ Reported by: var
+ * [f99e5f4de4] var -- app_record: Add option to prevent silence from
+ being truncated
+
+ Category: Applications/app_saynumber
+
+ ASTERISK-26598: Saynumber is trying to get "and" from "digits/" subfolder
+ Reported by: Jonathan Harris
+ * [d9972423d1] Daniel Journo -- Saynumber is trying to get "and" from
+ "digits/" subfolder
+
+ Category: Applications/app_voicemail
+
+ ASTERISK-24562: app_voicemail: Cannot set fromstring on a per-mailbox
+ basis
+ Reported by: Mark Scholten
+ * [bc6eeab822] Daniel Journo -- app_voicemail: Cannot set fromstring on
+ a per-mailbox basis
+ ASTERISK-25893: Function vmauthenticate accesses uninitialized memory
+ Reported by: Filip Jenicek
+ * [47daca8a2b] Sean Bright -- app_voicemail: vm_authenticate accesses
+ uninitialized memory
+ ASTERISK-26723: VoiceMailPlayMsg not playing messages via realtime
+ Reported by: Ryan Rittgarn
+ * [9d34df9a5e] Ryan Rittgarn -- app_voicemail: VoiceMailPlayMsg did not
+ play database stored messages
+
+ Category: Applications/app_voicemail/ODBC
+
+ ASTERISK-26723: VoiceMailPlayMsg not playing messages via realtime
+ Reported by: Ryan Rittgarn
+ * [9d34df9a5e] Ryan Rittgarn -- app_voicemail: VoiceMailPlayMsg did not
+ play database stored messages
+
+ Category: Channels/chan_iax2
+
+ ASTERISK-26865: chan_iax2: Reload of iax peer results in loss of host
+ address/port
+ Reported by: Richard Begg
+ * [5389666d6f] Richard Begg -- chan_iax2: Reload of iax peer results in
+ loss of host address/port
+
+ Category: Channels/chan_pjsip
+
+ ASTERISK-26857: chan_pjsip: Dialplan function race condition
+ Reported by: Joshua Colp
+ * [c8d1b915d7] Joshua Colp -- chan_pjsip: Don't assume a session will
+ have a channel.
+ ASTERISK-26822: pjsip/cli_commands: pjsip show channelstats shows wrong
+ codec
+ Reported by: Kevin Harwell
+ * [67c989ce78] Daniel Journo -- pjsip/cli_commands: pjsip show
+ channelstats shows wrong codec
+ ASTERISK-26248: chan_pjsip: Error when calling PJSIP client with domain
+ specified
+ Reported by: Norbert Varga
+ * [17030100ca] Norbert Varga -- chan_pjsip: Multidomain endpoint finding
+ on call
+
+ Category: Channels/chan_sip/General
+
+ ASTERISK-26841: chan_sip: Call not cancelled after receiving a 422
+ response
+ Reported by: Jean Aunis - Prescom
+ * [d3ef833b3b] Jean Aunis -- chan_sip: Call not cancelled after
+ receiving a 422 response
+ ASTERISK-26313: chan_sip : Asterisk restart seems to be required for
+ changing encryption option
+ Reported by: benasse
+ * [d91f61f0b5] Vitezslav Novy -- chan_sip: Allow DTLS to be disabled
+ when reloading.
+
+ Category: Channels/chan_unistim
+
+ ASTERISK-26714: Phone default have not ringing on ARM
+ Reported by: Igor Goncharovsky
+ * [7aa731c1c7] Igor Goncharovsky -- chan_unistim: fix char type to have
+ consistent behavior on ARM
+
+ Category: Codecs/General
+
+ ASTERISK-26812: [patch] Fix download_externals To Allow The Use Of curl Or
+ wget
+ Reported by: Michael L. Young
+ * [1ec796ce18] Michael L. Young -- build_tools: Fix download_externals
+ to allow the use of curl or wget
+
+ Category: Configs/Samples
+
+ ASTERISK-26785: configs/samples: The 'identify' entry is in the wrong
+ section in sorcery.conf.sample
+ Reported by: Torrey Searle
+ * [c7fcc4468f] gtjoseph -- configs/samples: Fix placement of 'identify'
+ entry in sorcery.conf
+
+ Category: Core/Bridging
+
+ ASTERISK-26880: Asterisk crashes when multiple speex users join confbridge
+ with pp_vad and dtx enabled
+ Reported by: Kirsty Tyerman
+ * [7f34c11b6a] Sean Bright -- bridge_softmix: Ignore non-voice frames
+ from translator
+
+ Category: Core/BuildSystem
+
+ ASTERISK-26872: Bundled pjproject fails to build when tarball downloaded
+ with curl due to md5 verification failure in Docker containers (or when
+ there is no terminal)
+ Reported by: Matt Jordan
+ * [658d59c683] Matt Jordan -- configure: Don't use the progress bar with
+ curl when downloading to stdout
+ ASTERISK-26705: libasteriskssl.so not found when asterisk is installed for
+ the 1st time
+ Reported by: George Joseph
+ * [3d2c119778] gtjoseph -- build: Warn if asterisk is installed in both
+ 32 and 64 bit sys dirs
+ * [bee55aaf2c] gtjoseph -- build: Execute ldconfig to build cache. (take
+ two)
+ * [d90430953c] Joshua Colp -- build: Execute ldconfig to build cache.
+ * [e910dbab90] Joshua Colp -- build: Execute ldconfig to build cache.
+ ASTERISK-26812: [patch] Fix download_externals To Allow The Use Of curl Or
+ wget
+ Reported by: Michael L. Young
+ * [1ec796ce18] Michael L. Young -- build_tools: Fix download_externals
+ to allow the use of curl or wget
+ ASTERISK-26802: [patch] Integrity Check Of PJSIP Download Fails
+ Reported by: Michael L. Young
+ * [047a1e7dcc] Sean Bright -- pjproject-bundled: Fix checksum
+ verification when using cURL
+ ASTERISK-26109: Asterisk fails building with OpenSSL 1.1.0
+ Reported by: Tzafrir Cohen
+ * [99b40e72ae] Tzafrir Cohen -- libasteriskssl: do nothing with OpenSSL
+ >= 1.1
+ * [e97e50b68b] Tzafrir Cohen -- tcptls: use TLS_client_method with
+ OpenSSL 1.1
+ * [0d555f0d81] Tzafrir Cohen -- openssl 1.1 support: use
+ OPENSSL_VERSION_NUMBER
+
+ Category: Core/DNS
+
+ ASTERISK-26772: Crash in srv.c on startup with pjsip
+ Reported by: nappsoft
+ * [7e14e086cf] nappsoft -- srv: Fix crash when ast_srv_lookup is used
+ and 0 records are returned.
+
+ Category: Core/General
+
+ ASTERISK-26788: core: Protect flags during ast_waitfor
+ Reported by: Joshua Colp
+ * [18f1b52601] Joshua Colp -- channel: Protect flags in
+ ast_waitfor_nandfds operation.
+
+ Category: Core/HTTP
+
+ ASTERISK-26794: http: Crash on Reload Only in ast_tcptls_server_start
+ Reported by: Joshua Elson
+ * [0fc27fa364] Joshua Elson -- http: Ensure capath is defined on all
+ http creations
+
+ Category: Core/PBX
+
+ ASTERISK-26115: pbx: AMI Originate ignore "failed" extension on call
+ failure
+ Reported by: Nasir Iqbal
+ * [8936568515] Sean Bright -- manager: Restore Originate failure
+ behavior from Asterisk 11
+
+ Category: Core/Stasis
+
+ ASTERISK-25237: stasis_cache.c:845 caching_topic_exec: - misleading ERROR
+ message
+ Reported by: Smirnov Aleksey
+ * [216e28aa95] Matt Jordan -- main/stasis_cache: Demote the ERROR
+ message when removing a nonexistent item
+
+ Category: Documentation
+
+ ASTERISK-26484: res_pjsip_messaging: Crash when using invalid URI in
+ MessageSend 'from' argument.
+ Reported by: Vinod Dharashive
+ * [b3cc20799b] Sean Bright -- res_pjsip_messaging: Check URI type before
+ dereferencing
+ ASTERISK-26717: Document the fact that Asterisk HEP support only works
+ with the PJSIP channel driver
+ Reported by: Olivier Krief
+ * [51985565ef] Matt Jordan -- configs/samples/hep.conf.sample: Clarify
+ how the HEP stack works
+ ASTERISK-25237: stasis_cache.c:845 caching_topic_exec: - misleading ERROR
+ message
+ Reported by: Smirnov Aleksey
+ * [216e28aa95] Matt Jordan -- main/stasis_cache: Demote the ERROR
+ message when removing a nonexistent item
+ ASTERISK-24562: app_voicemail: Cannot set fromstring on a per-mailbox
+ basis
+ Reported by: Mark Scholten
+ * [bc6eeab822] Daniel Journo -- app_voicemail: Cannot set fromstring on
+ a per-mailbox basis
+ ASTERISK-26782: res_pjsip: URI requirement for fields is not consistently
+ documented and error does not provide indication
+ Reported by: Peter Sokolov
+ * [d49af061bc] Joshua Colp -- config: Improve documentation and behavior
+ of outbound_proxy option.
+
+ Category: Features
+
+ ASTERISK-26781: bridge: Passing the 'p' (play tone) flag to Bridge()
+ application results in garbled audio
+ Reported by: Sean Bright
+ * [eac818801b] Joshua Colp -- bridge_native_rtp: Handle case where
+ channel joins already suspended.
+
+ Category: Functions/func_devstate
+
+ ASTERISK-26643: Extra new line in Device field of DeviceStateChange AMI
+ Event after restart of Asterisk
+ Reported by: Roman Bedros
+ * [f9b791debe] Roman Bedros -- funcs/func_devstate: Remove new line in
+ Device field of during module load
+
+ Category: General
+
+ ASTERISK-26668: core: Malformed pattern matching extension (various
+ factors) results in crash
+ Reported by: xrobau
+ * [9fd9b39e8b] Richard Mudgett -- pbx.c: Fix crash from malformed exten
+ pattern.
+ ASTERISK-26825: pjsip.conf.sample: user_agent: still refers to branch 12
+ Reported by: Tzafrir Cohen
+ * [5b34b751a0] Tzafrir Cohen -- pjsip.conf.sample: user_agent: not a
+ specific version
+
+ Category: PBX/pbx_dundi
+
+ ASTERISK-18731: [patch] DUNDi weight parameter not processed correctly
+ Reported by: Peter Racz
+ * [0654bf637c] Peter Racz -- pbx_dundi: DUNDi weight parameter not
+ processed correctly
+
+ Category: PBX/pbx_spool
+
+ ASTERISK-17067: Long lines in call files cause spurious syntax error
+ Reported by: Dave Olszewski
+ * [77901a58ca] Sean Bright -- pbx_spool: Gracefully handle long lines in
+ call files
+
+ Category: Resources/res_config_ldap
+
+ ASTERISK-26580: [patch] Error during LDAP modify action when user
+ unregisters
+ Reported by: Nicholas John Koch
+ * [6d5e9993b2] Sean Bright -- res_config_ldap: Fix erroneous
+ LDAP_MOD_REPLACE in LDAP modify
+
+ Category: Resources/res_config_pgsql
+
+ ASTERISK-25628: res_config_pgsql: should match the behavior of other
+ drivers so that queue_log can disable adaptive logging
+ Reported by: Dmitry Wagin
+ * [76971d4c4a] Sean Bright -- res_config_pgsql: Make 'require' return
+ consistent with other backends
+ ASTERISK-15858: [patch] Fix query with double backslash in string literals
+ and stop log warnings
+ Reported by: Humberto Figuera
+ * [2cd75fe311] Sean Bright -- realtime: Fix LIKE escaping in SQL
+ backends
+
+ Category: Resources/res_config_sqlite3
+
+ ASTERISK-26057: res_config_sqlite3 uses incorrect query - unnecessary
+ escape
+ Reported by: Stepan
+ * [2cd75fe311] Sean Bright -- realtime: Fix LIKE escaping in SQL
+ backends
+ ASTERISK-23457: SQlite3: Realtime queue loading fails after PRAGMA query
+ result
+ Reported by: Scott Griepentrog
+ * [9b02bbfa88] Sean Bright -- res_config_sqlite3: Properly create
+ missing columns when necessary
+
+ Category: Resources/res_hep
+
+ ASTERISK-26717: Document the fact that Asterisk HEP support only works
+ with the PJSIP channel driver
+ Reported by: Olivier Krief
+ * [51985565ef] Matt Jordan -- configs/samples/hep.conf.sample: Clarify
+ how the HEP stack works
+
+ Category: Resources/res_hep_pjsip
+
+ ASTERISK-26850: res_hep_pjsip: Asterisk insert wrong protocol name in
+ "Protocol ID" field in HEP packets
+ Reported by: Max Norba
+ * [218f618095] Sean Bright -- res_hep: Capture actual transport type in
+ use
+
+ Category: Resources/res_pjsip
+
+ ASTERISK-26879: PJSIP external_media_address ignored if no local_net
+ options are provided
+ Reported by: Matt Jordan
+ * [776ffd7724] Matt Jordan -- res/res_pjsip_session: Only check localnet
+ if it is defined
+ ASTERISK-26685: res_pjsip: Crash when using IPv6 and Transport ws,wss
+ Reported by: Michael Balen
+ * [2a85888262] Joshua Colp -- res_pjsip_transport_websocket: Add support
+ for IPv6.
+ ASTERISK-26623: res_pjsip: Crash when calling PJSIPShowEndpoint
+ Reported by: JA,rgen H
+ * [0595c31da7] JA,rgen H -- res_pjsip: Fix crash when contact has no
+ status
+ ASTERISK-26782: res_pjsip: URI requirement for fields is not consistently
+ documented and error does not provide indication
+ Reported by: Peter Sokolov
+ * [d49af061bc] Joshua Colp -- config: Improve documentation and behavior
+ of outbound_proxy option.
+ ASTERISK-26799: res_pjsip: Using an auth object for inbound and outbound
+ authentication fails.
+ Reported by: Richard Mudgett
+ * [3b606093d3] Richard Mudgett -- res_pjsip_authenticator_digest.c: Fix
+ sorcery's immutable contract violation.
+ * [6208962b00] Richard Mudgett -- res_pjsip: Update artificial auth
+ whenever default_realm changes.
+ * [9f11da85a2] Richard Mudgett -- res_pjsip: Update authentication realm
+ documentation.
+ ASTERISK-26738: Frequent segfaults since activation of DNS SRV, in
+ pjsip_auth_clt_reinit_req at /pjsip/sip_auth_client.c, and
+ pj_atomic_inc_and_get at pj/os_core_unix.c
+ Reported by: Michael Maier
+ * [473813311b] Richard Mudgett -- pjproject: Fixes to resolve DNS SRV
+ crashes.
+ * [d58fdae811] Richard Mudgett -- pjsip_distributor.c: Update some debug
+ messages to get transaction name.
+ * [eb9ae4f7cb] Richard Mudgett -- res_pjsip: Record the serializer
+ earlier on the tdata.
+ * [57f19d6efb] Richard Mudgett -- pjproject: Increase SENDER_WIDTH
+ column size for 64-bit system logs.
+ ASTERISK-26248: chan_pjsip: Error when calling PJSIP client with domain
+ specified
+ Reported by: Norbert Varga
+ * [17030100ca] Norbert Varga -- chan_pjsip: Multidomain endpoint finding
+ on call
+
+ Category: Resources/res_pjsip_authenticator_digest
+
+ ASTERISK-26799: res_pjsip: Using an auth object for inbound and outbound
+ authentication fails.
+ Reported by: Richard Mudgett
+ * [3b606093d3] Richard Mudgett -- res_pjsip_authenticator_digest.c: Fix
+ sorcery's immutable contract violation.
+ * [6208962b00] Richard Mudgett -- res_pjsip: Update artificial auth
+ whenever default_realm changes.
+ * [9f11da85a2] Richard Mudgett -- res_pjsip: Update authentication realm
+ documentation.
+
+ Category: Resources/res_pjsip_messaging
+
+ ASTERISK-26484: res_pjsip_messaging: Crash when using invalid URI in
+ MessageSend 'from' argument.
+ Reported by: Vinod Dharashive
+ * [b3cc20799b] Sean Bright -- res_pjsip_messaging: Check URI type before
+ dereferencing
+
+ Category: Resources/res_pjsip_mwi
+
+ ASTERISK-26756: res_pjsip_mwi: Asterisk does not terminate MWI
+ subscription
+ Reported by: Carl Fortin
+ * [be77b845d9] gtjoseph -- res_pjsip_pubsub: Correctly implement
+ persisted subscriptions
+
+ Category: Resources/res_pjsip_outbound_registration
+
+ ASTERISK-26808: res_pjsip_outbound_registration doesn't know about network
+ change events
+ Reported by: George Joseph
+ * [c07bcca87e] gtjoseph -- res_pjsip_outbound_registration: Subscribe to
+ network change events
+ ASTERISK-26782: res_pjsip: URI requirement for fields is not consistently
+ documented and error does not provide indication
+ Reported by: Peter Sokolov
+ * [d49af061bc] Joshua Colp -- config: Improve documentation and behavior
+ of outbound_proxy option.
+
+ Category: Resources/res_pjsip_pubsub
+
+ ASTERISK-26776: res_pjsip_pubsub: Crash when generating xpidf content
+ Reported by: Andrew Green
+ * [91c97b5da5] Joshua Elson -- pjsip: prevent memory corruption on
+ creation of xml bodies
+ ASTERISK-26823: PJSIP: Persistent subscriptions can cause FRACKs if
+ endpoint does not exist
+ Reported by: Mark Michelson
+ * [8e6ecdade2] gtjoseph -- res_pjsip_pubsub: Remove unneeded endpoint
+ unref
+ ASTERISK-26696: pjsip_pubsub: PJSIP Subscription Persistence in AstDB Does
+ not update on subscription refresh
+ Reported by: Zach R
+ * [be77b845d9] gtjoseph -- res_pjsip_pubsub: Correctly implement
+ persisted subscriptions
+
+ Category: Resources/res_pjsip_refer
+
+ ASTERISK-26869: res_pjsip_refer: blind call transfer w/o a user name
+ doesn't go to the s extension
+ Reported by: Torrey Searle
+ * [48447313b6] Torrey Searle -- res/res_pjsip_refer: call xfer w/o
+ extension
+
+ Category: Resources/res_pjsip_sdp_rtp
+
+ ASTERISK-26851: res_pjsip_sdp_rtp: RTP instance does not use same IP as
+ explicit transport
+ Reported by: Richard Begg
+ * [139bc3495f] Richard Begg -- res_pjsip_sdp_rtp: RTP instance does not
+ use same IP as explicit transport
+
+ Category: Resources/res_pjsip_transport_websocket
+
+ ASTERISK-26796: res_pjsip_transport_websocket: Via header is 'WS' when it
+ should be 'WSS'
+ Reported by: JA,rgen H
+ * [e510595c86] JA,rgen H -- res_pjsip WebRTC/websockets: Fix usage of WS
+ vs WSS.
+
+ Category: Resources/res_rtp_asterisk
+
+ ASTERISK-26732: res_rtp_asterisk: Implement RTCP Multiplexing - breaking
+ WebRTC in Chrome
+ Reported by: Dan Jenkins
+ * [047fb7f11e] Richard Mudgett -- res_pjsip_asterisk.c: Fix compile
+ error if libsrtp is not installed.
+ * [7ea7797e12] Joshua Colp -- res_rtp_asterisk: Fix crash when RTCP is
+ not present when DTLS is stopped.
+ * [7bc69753bc] Mark Michelson -- Add rtcp-mux support
+
+ Category: Resources/res_stasis_device_state
+
+ ASTERISK-26770: res_stasis_device_state: Duplicate subscriptions when
+ multiple received at same time
+ Reported by: Joshua Colp
+ * [7b39d6901a] Joshua Colp -- res_stasis_device_state: Protect the
+ adding/removing of subscriptions.
+
+ Category: Third-Party/pjproject
+
+ ASTERISK-26872: Bundled pjproject fails to build when tarball downloaded
+ with curl due to md5 verification failure in Docker containers (or when
+ there is no terminal)
+ Reported by: Matt Jordan
+ * [658d59c683] Matt Jordan -- configure: Don't use the progress bar with
+ curl when downloading to stdout
+
+ Category: pjproject/pjsip
+
+ ASTERISK-26669: PJSIP Segfault 13.13.1 (Bundled PJSIP)
+ Reported by: Nic Colledge
+ * [473813311b] Richard Mudgett -- pjproject: Fixes to resolve DNS SRV
+ crashes.
+ * [d58fdae811] Richard Mudgett -- pjsip_distributor.c: Update some debug
+ messages to get transaction name.
+ * [eb9ae4f7cb] Richard Mudgett -- res_pjsip: Record the serializer
+ earlier on the tdata.
+ * [57f19d6efb] Richard Mudgett -- pjproject: Increase SENDER_WIDTH
+ column size for 64-bit system logs.
+ ASTERISK-26802: [patch] Integrity Check Of PJSIP Download Fails
+ Reported by: Michael L. Young
+ * [047a1e7dcc] Sean Bright -- pjproject-bundled: Fix checksum
+ verification when using cURL
+ ASTERISK-26696: pjsip_pubsub: PJSIP Subscription Persistence in AstDB Does
+ not update on subscription refresh
+ Reported by: Zach R
+ * [be77b845d9] gtjoseph -- res_pjsip_pubsub: Correctly implement
+ persisted subscriptions
+
+ Improvement
+
+ Category: Channels/chan_sip/General
+
+ ASTERISK-26846: chan_sip: Add rtcp-mux support
+ Reported by: Sean Bright
+ * [8721d0bf1b] Sean Bright -- chan_sip: Add rtcp-mux support
+
+ Category: Resources/res_pjsip_session
+
+ ASTERISK-26864: res_pjsip_session: Add support for overlap dialling
+ Reported by: Richard Begg
+ * [398e5ec16c] Richard Begg -- res_pjsip_session: Enable RFC3578 overlap
+ dialing support.
+
+ ----------------------------------------------------------------------
+
+ Open Issues
+
+ [Back to Top]
+
+ This is a list of all open issues from the issue tracker that were
+ referenced by changes that went into this release.
+
+ Bug
+
+ Category: Applications/app_queue
+
+ ASTERISK-26400: app_queue: Queue member stops being called after AMI
+ "Redirect" action for queues with wrapuptime
+ Reported by: Etienne Lessard
+ * [163e9e53dc] Sean Bright -- app_queue: Handle the caller being
+ redirected out of a queue bridge
+
+ ----------------------------------------------------------------------
+
+ Commits Not Associated with an Issue
+
+ [Back to Top]
+
+ This is a list of all changes that went into this release that did not
+ reference a JIRA issue.
+
+ +------------------------------------------------------------------------+
+ | Revision | Author | Summary |
+ |------------+-----------------+-----------------------------------------|
+ | f1b34e6eb4 | Kevin Harwell | AMI: Updated version |
+ |------------+-----------------+-----------------------------------------|
+ | 1c8b81a2a4 | Sean Bright | Revert "app_queue: Handle the caller |
+ | | | being redirected out of a queue bridge" |
+ |------------+-----------------+-----------------------------------------|
+ | 38cebc73a3 | Sean Bright | thread safety: Don't use |
+ | | | getprotobyname() |
+ |------------+-----------------+-----------------------------------------|
+ | 265455bc2d | Sean Bright | res_rtp_asterisk: Pass correct data |
+ | | | length to ast_rtcp_interpret |
+ |------------+-----------------+-----------------------------------------|
+ | 9a57b24e17 | Sean Bright | app_queue: Fix locking behavior in |
+ | | | stasis message handlers |
+ |------------+-----------------+-----------------------------------------|
+ | 792171ea9e | Richard Mudgett | app_confbridge: Fix ConfbridgeTalking |
+ | | | AMI event description. |
+ |------------+-----------------+-----------------------------------------|
+ | a75f02c089 | Richard Mudgett | res_pjsip_sdp_rtp.c: Fix cut-n-paste |
+ | | | error |
+ |------------+-----------------+-----------------------------------------|
+ | 9b756662a8 | gtjoseph | res_pjsip: Symmetric transports |
+ |------------+-----------------+-----------------------------------------|
+ | 6d1eb880c2 | gtjoseph | menuselect: Add a new 'options' support |
+ | | | type |
+ |------------+-----------------+-----------------------------------------|
+ | 523de8eb8e | gtjoseph | pjproject_bundled: Reduce the need for |
+ | | | rebuilds |
+ |------------+-----------------+-----------------------------------------|
+ | 4271c700f7 | Richard Mudgett | core: Cleanup ast_get_hint() usage. |
+ |------------+-----------------+-----------------------------------------|
+ | fa8f6c2fc4 | Sean Bright | res_config_pgsql: Release table locks |
+ | | | where appropriate |
+ |------------+-----------------+-----------------------------------------|
+ | 9c05ddbddd | gtjoseph | pjproject_bundled: Update for pjproject |
+ | | | 2.6 |
+ |------------+-----------------+-----------------------------------------|
+ | da0cadd100 | Sean Bright | res_config_pgsql: Fix thread safety |
+ | | | problems |
+ |------------+-----------------+-----------------------------------------|
+ | f1963c5b8d | Sean Bright | res_config_ldap: Various code |
+ | | | improvements |
+ |------------+-----------------+-----------------------------------------|
+ | 5c9c097d17 | Joshua Colp | Revert "build: Execute ldconfig to |
+ | | | build cache." |
+ |------------+-----------------+-----------------------------------------|
+ | d5522de597 | Sean Bright | realtime: Fix |
+ | | | ast_load_realtime_multientry handling |
+ |------------+-----------------+-----------------------------------------|
+ | 5eb7875243 | Sean Bright | realtime: Centralize some common |
+ | | | realtime backend code |
+ |------------+-----------------+-----------------------------------------|
+ | 06214173a9 | Joshua Colp | Revert "build: Execute ldconfig to |
+ | | | build cache." |
+ |------------+-----------------+-----------------------------------------|
+ | c9ea98f9bf | gtjoseph | pjproject cli: Add object count after |
+ | | | object lists |
+ |------------+-----------------+-----------------------------------------|
+ | d8972f50f4 | Sean Bright | res_config_ldap: Don't try to delete |
+ | | | non-existent attributes |
+ |------------+-----------------+-----------------------------------------|
+ | b980cae1f7 | Sean Bright | res_config_ldap: Remove extraneous line |
+ | | | numbers from log messages |
+ |------------+-----------------+-----------------------------------------|
+ | 011b7be62a | Sean Bright | res_config_ldap: Make memory allocation |
+ | | | more consistent |
+ |------------+-----------------+-----------------------------------------|
+ | b2836dde7e | Sean Bright | res_config_ldap: Fix configuration |
+ | | | inheritance from _general |
+ |------------+-----------------+-----------------------------------------|
+ | 5b7c6678ae | Sean Bright | res_config_sqlite3: Fix crash when |
+ | | | loading with invalid config |
+ |------------+-----------------+-----------------------------------------|
+ | 096496e13e | Richard Mudgett | tcptls.c: Add some missing allocation |
+ | | | failure checks. |
+ |------------+-----------------+-----------------------------------------|
+ | 73133d5354 | Sean Bright | res_rtp_asterisk: Use PJ_ICE_MAX_CAND |
+ | | | instead of hard-coding 16 |
+ |------------+-----------------+-----------------------------------------|
+ | ea8a610776 | Sean Bright | cli: Fix various CLI documentation and |
+ | | | completion issues |
+ |------------+-----------------+-----------------------------------------|
+ | a46a21642e | Richard Mudgett | res_pjsip.c: Fix inconsistency between |
+ | | | warning and action. |
+ |------------+-----------------+-----------------------------------------|
+ | 67b21dc63a | Richard Mudgett | pjsip_distributor.c: Fix off-nominal |
+ | | | tdata ref leak. |
+ |------------+-----------------+-----------------------------------------|
+ | 2817f87d27 | Richard Mudgett | core: Cleanup some channel snapshot |
+ | | | staging anomalies. |
+ |------------+-----------------+-----------------------------------------|
+ | cbc23c31cf | Mark Michelson | Revert "Update qualifies when AOR |
+ | | | configuration changes." |
+ |------------+-----------------+-----------------------------------------|
+ | c384dfd6b0 | Richard Mudgett | res_pjsip: Fix some off nominal tdata |
+ | | | leaks. |
+ +------------------------------------------------------------------------+
+
+ ----------------------------------------------------------------------
+
+ Diffstat Results
+
+ [Back to Top]
+
+ This is a summary of the changes to the source code that went into this
+ release that was generated using the diffstat utility.
+
+ .lastclean | 1
+ .version | 1
+ ChangeLog |47776 ----------
+ asterisk-13.14.0-summary.html | 336
+ asterisk-13.14.0-summary.txt | 878
+ b/CHANGES | 89
+ b/Makefile | 64
+ b/UPGRADE.txt | 9
+ b/addons/res_config_mysql.c | 61
+ b/apps/app_chanspy.c | 62
+ b/apps/app_dial.c | 26
+ b/apps/app_directory.c | 18
+ b/apps/app_minivm.c | 8
+ b/apps/app_mixmonitor.c | 21
+ b/apps/app_originate.c | 8
+ b/apps/app_queue.c | 98
+ b/apps/app_record.c | 13
+ b/apps/app_voicemail.c | 57
+ b/apps/confbridge/conf_config_parser.c | 12
+ b/apps/confbridge/confbridge_manager.c | 2
+ b/bridges/bridge_native_rtp.c | 6
+ b/bridges/bridge_softmix.c | 3
+ b/build_tools/download_externals | 4
+ b/channels/chan_alsa.c | 20
+ b/channels/chan_iax2.c | 8
+ b/channels/chan_pjsip.c | 57
+ b/channels/chan_sip.c | 180
+ b/channels/chan_skinny.c | 49
+ b/channels/chan_unistim.c | 27
+ b/channels/pjsip/cli_commands.c | 16
+ b/channels/pjsip/dialplan_functions.c | 18
+ b/channels/sip/include/sip.h | 3
+ b/configs/samples/hep.conf.sample | 10
+ b/configs/samples/pjsip.conf.sample | 51
+ b/configs/samples/sip.conf.sample | 2
+ b/configs/samples/sorcery.conf.sample | 2
+ b/configs/samples/voicemail.conf.sample | 9
+ b/configure | 147
+ b/configure.ac | 25
+ b/contrib/ast-db-manage/config/versions/15db7b91a97a_add_rtcp_mux.py | 31
+ b/contrib/ast-db-manage/config/versions/465e70e8c337_add_match_header_attribute_to_identify.py | 21
+ b/contrib/ast-db-manage/config/versions/8fce4c573e15_add_pjsip_allow_overlap.py | 31
+ b/contrib/ast-db-manage/config/versions/f638dbe2eb23_symmetric_transport.py | 32
+ b/funcs/func_channel.c | 15
+ b/funcs/func_devstate.c | 2
+ b/funcs/func_odbc.c | 6
+ b/funcs/func_periodic_hook.c | 4
+ b/include/asterisk/autochan.h | 20
+ b/include/asterisk/autoconfig.h.in | 4
+ b/include/asterisk/bridge_technology.h | 3
+ b/include/asterisk/config.h | 12
+ b/include/asterisk/manager.h | 2
+ b/include/asterisk/network.h | 5
+ b/include/asterisk/pbx.h | 29
+ b/include/asterisk/res_hep.h | 2
+ b/include/asterisk/res_pjsip.h | 94
+ b/include/asterisk/res_pjsip_session.h | 2
+ b/include/asterisk/rtp_engine.h | 11
+ b/main/Makefile | 18
+ b/main/asterisk.c | 24
+ b/main/astmm.c | 21
+ b/main/autochan.c | 16
+ b/main/bridge.c | 14
+ b/main/ccss.c | 9
+ b/main/channel.c | 27
+ b/main/cli.c | 33
+ b/main/http.c | 33
+ b/main/libasteriskssl.c | 11
+ b/main/manager.c | 52
+ b/main/message.c | 6
+ b/main/pbx.c | 58
+ b/main/pbx_app.c | 3
+ b/main/pbx_hangup_handler.c | 2
+ b/main/rtp_engine.c | 14
+ b/main/say.c | 4
+ b/main/stasis_cache.c | 2
+ b/main/tcptls.c | 34
+ b/menuselect/menuselect.c | 8
+ b/menuselect/menuselect.h | 3
+ b/pbx/pbx_dundi.c | 8
+ b/pbx/pbx_realtime.c | 23
+ b/pbx/pbx_spool.c | 282
+ b/res/res_clioriginate.c | 8
+ b/res/res_config_curl.c | 7
+ b/res/res_config_ldap.c | 768
+ b/res/res_config_odbc.c | 6
+ b/res/res_config_pgsql.c | 194
+ b/res/res_config_sqlite.c | 8
+ b/res/res_config_sqlite3.c | 228
+ b/res/res_hep.c | 5
+ b/res/res_hep_pjsip.c | 12
+ b/res/res_pjsip.c | 244
+ b/res/res_pjsip/config_transport.c | 22
+ b/res/res_pjsip/pjsip_cli.c | 2
+ b/res/res_pjsip/pjsip_configuration.c | 2
+ b/res/res_pjsip/pjsip_distributor.c | 127
+ b/res/res_pjsip/pjsip_message_ip_updater.c | 83
+ b/res/res_pjsip/pjsip_options.c | 4
+ b/res/res_pjsip/pjsip_scheduler.c | 32
+ b/res/res_pjsip/security_events.c | 4
+ b/res/res_pjsip_authenticator_digest.c | 105
+ b/res/res_pjsip_endpoint_identifier_ip.c | 101
+ b/res/res_pjsip_exten_state.c | 5
+ b/res/res_pjsip_history.c | 7
+ b/res/res_pjsip_messaging.c | 10
+ b/res/res_pjsip_mwi.c | 2
+ b/res/res_pjsip_nat.c | 47
+ b/res/res_pjsip_outbound_publish.c | 18
+ b/res/res_pjsip_outbound_registration.c | 140
+ b/res/res_pjsip_pubsub.c | 274
+ b/res/res_pjsip_refer.c | 7
+ b/res/res_pjsip_sdp_rtp.c | 89
+ b/res/res_pjsip_session.c | 63
+ b/res/res_pjsip_t38.c | 5
+ b/res/res_pjsip_transport_websocket.c | 69
+ b/res/res_rtp_asterisk.c | 382
+ b/res/res_sorcery_memory_cache.c | 14
+ b/res/res_stasis_device_state.c | 39
+ b/third-party/pjproject/Makefile | 2
+ b/third-party/pjproject/Makefile.rules | 4
+ b/third-party/pjproject/configure.m4 | 1
+ b/third-party/pjproject/patches/0000-remove-third-party.patch | 49
+ b/third-party/pjproject/patches/0010-evsub-Add-pjsip_evsub_set_uas_timeout.patch | 84
+ b/third-party/pjproject/patches/0011-r5554-svn-backport-Increase-SENDER_WIDTH-column-size.patch | 77
+ b/third-party/pjproject/patches/0013-r5559-svn-backport-Fix-to-resolve-DNS-SRV-crashes.patch | 112
+ b/third-party/pjproject/patches/0014-Add-pjsip-transport-register-type-ipv6.patch | 50
+ contrib/realtime/mssql/mssql_cdr.sql | 44
+ contrib/realtime/mssql/mssql_config.sql | 1571
+ contrib/realtime/mssql/mssql_voicemail.sql | 54
+ contrib/realtime/mysql/mysql_cdr.sql | 32
+ contrib/realtime/mysql/mysql_config.sql | 964
+ contrib/realtime/mysql/mysql_voicemail.sql | 34
+ contrib/realtime/oracle/oracle_cdr.sql | 38
+ contrib/realtime/oracle/oracle_config.sql | 1565
+ contrib/realtime/oracle/oracle_voicemail.sql | 48
+ contrib/realtime/postgresql/postgresql_cdr.sql | 36
+ contrib/realtime/postgresql/postgresql_config.sql | 1042
+ contrib/realtime/postgresql/postgresql_voicemail.sql | 38
+ third-party/pjproject/patches/0001-r5397-pjsip_generic_array_max_count.patch | 58
+ third-party/pjproject/patches/0001-r5400-pjsip_tx_data_dec_ref.patch | 24
+ third-party/pjproject/patches/0002-Fix-1946-Avoid-deinitialization-of-uninitialized-cli.patch | 56
+ third-party/pjproject/patches/0002-r5435-add-pjsip_inv_session-ref_cnt.patch | 212
+ third-party/pjproject/patches/0003-r5403-pjsip_IPV6_V6ONLY.patch | 13
+ third-party/pjproject/patches/0004-resolver.c-Prevent-SERVFAIL-from-marking-name-server.patch | 48
+ third-party/pjproject/patches/0005-Re-1969-Fix-crash-on-using-an-already-destroyed-SSL-.patch | 164
+ third-party/pjproject/patches/0006-r5471-svn-backport-Various-fixes-for-DNS-IPv6.patch | 134
+ third-party/pjproject/patches/0006-r5473-svn-backport-Fix-pending-query.patch | 28
+ third-party/pjproject/patches/0006-r5475-svn-backport-Remove-DNS-cache-entry.patch | 70
+ third-party/pjproject/patches/0006-r5477-svn-backport-Fix-DNS-write-on-freed-memory.patch | 33
+ 149 files changed, 4172 insertions(+), 56854 deletions(-)
diff --git a/contrib/realtime/mssql/mssql_cdr.sql b/contrib/realtime/mssql/mssql_cdr.sql
new file mode 100644
index 000000000..d342515cd
--- /dev/null
+++ b/contrib/realtime/mssql/mssql_cdr.sql
@@ -0,0 +1,44 @@
+BEGIN TRANSACTION;
+
+CREATE TABLE alembic_version (
+ version_num VARCHAR(32) NOT NULL
+);
+
+GO
+
+-- Running upgrade -> 210693f3123d
+
+CREATE TABLE cdr (
+ accountcode VARCHAR(20) NULL,
+ src VARCHAR(80) NULL,
+ dst VARCHAR(80) NULL,
+ dcontext VARCHAR(80) NULL,
+ clid VARCHAR(80) NULL,
+ channel VARCHAR(80) NULL,
+ dstchannel VARCHAR(80) NULL,
+ lastapp VARCHAR(80) NULL,
+ lastdata VARCHAR(80) NULL,
+ start DATETIME NULL,
+ answer DATETIME NULL,
+ [end] DATETIME NULL,
+ duration INTEGER NULL,
+ billsec INTEGER NULL,
+ disposition VARCHAR(45) NULL,
+ amaflags VARCHAR(45) NULL,
+ userfield VARCHAR(256) NULL,
+ uniqueid VARCHAR(150) NULL,
+ linkedid VARCHAR(150) NULL,
+ peeraccount VARCHAR(20) NULL,
+ sequence INTEGER NULL
+);
+
+GO
+
+INSERT INTO alembic_version (version_num) VALUES ('210693f3123d');
+
+GO
+
+COMMIT;
+
+GO
+
diff --git a/contrib/realtime/mssql/mssql_config.sql b/contrib/realtime/mssql/mssql_config.sql
new file mode 100644
index 000000000..514c2e2f2
--- /dev/null
+++ b/contrib/realtime/mssql/mssql_config.sql
@@ -0,0 +1,1627 @@
+BEGIN TRANSACTION;
+
+CREATE TABLE alembic_version (
+ version_num VARCHAR(32) NOT NULL
+);
+
+GO
+
+-- Running upgrade -> 4da0c5f79a9c
+
+CREATE TABLE sippeers (
+ id INTEGER NOT NULL IDENTITY(1,1),
+ name VARCHAR(40) NOT NULL,
+ ipaddr VARCHAR(45) NULL,
+ port INTEGER NULL,
+ regseconds INTEGER NULL,
+ defaultuser VARCHAR(40) NULL,
+ fullcontact VARCHAR(80) NULL,
+ regserver VARCHAR(20) NULL,
+ useragent VARCHAR(20) NULL,
+ lastms INTEGER NULL,
+ host VARCHAR(40) NULL,
+ type VARCHAR(6) NULL,
+ context VARCHAR(40) NULL,
+ permit VARCHAR(95) NULL,
+ [deny] VARCHAR(95) NULL,
+ secret VARCHAR(40) NULL,
+ md5secret VARCHAR(40) NULL,
+ remotesecret VARCHAR(40) NULL,
+ transport VARCHAR(7) NULL,
+ dtmfmode VARCHAR(9) NULL,
+ directmedia VARCHAR(6) NULL,
+ nat VARCHAR(29) NULL,
+ callgroup VARCHAR(40) NULL,
+ pickupgroup VARCHAR(40) NULL,
+ language VARCHAR(40) NULL,
+ disallow VARCHAR(200) NULL,
+ allow VARCHAR(200) NULL,
+ insecure VARCHAR(40) NULL,
+ trustrpid VARCHAR(3) NULL,
+ progressinband VARCHAR(5) NULL,
+ promiscredir VARCHAR(3) NULL,
+ useclientcode VARCHAR(3) NULL,
+ accountcode VARCHAR(40) NULL,
+ setvar VARCHAR(200) NULL,
+ callerid VARCHAR(40) NULL,
+ amaflags VARCHAR(40) NULL,
+ callcounter VARCHAR(3) NULL,
+ busylevel INTEGER NULL,
+ allowoverlap VARCHAR(3) NULL,
+ allowsubscribe VARCHAR(3) NULL,
+ videosupport VARCHAR(3) NULL,
+ maxcallbitrate INTEGER NULL,
+ rfc2833compensate VARCHAR(3) NULL,
+ mailbox VARCHAR(40) NULL,
+ [session-timers] VARCHAR(9) NULL,
+ [session-expires] INTEGER NULL,
+ [session-minse] INTEGER NULL,
+ [session-refresher] VARCHAR(3) NULL,
+ t38pt_usertpsource VARCHAR(40) NULL,
+ regexten VARCHAR(40) NULL,
+ fromdomain VARCHAR(40) NULL,
+ fromuser VARCHAR(40) NULL,
+ qualify VARCHAR(40) NULL,
+ defaultip VARCHAR(45) NULL,
+ rtptimeout INTEGER NULL,
+ rtpholdtimeout INTEGER NULL,
+ sendrpid VARCHAR(3) NULL,
+ outboundproxy VARCHAR(40) NULL,
+ callbackextension VARCHAR(40) NULL,
+ timert1 INTEGER NULL,
+ timerb INTEGER NULL,
+ qualifyfreq INTEGER NULL,
+ constantssrc VARCHAR(3) NULL,
+ contactpermit VARCHAR(95) NULL,
+ contactdeny VARCHAR(95) NULL,
+ usereqphone VARCHAR(3) NULL,
+ textsupport VARCHAR(3) NULL,
+ faxdetect VARCHAR(3) NULL,
+ buggymwi VARCHAR(3) NULL,
+ auth VARCHAR(40) NULL,
+ fullname VARCHAR(40) NULL,
+ trunkname VARCHAR(40) NULL,
+ cid_number VARCHAR(40) NULL,
+ callingpres VARCHAR(21) NULL,
+ mohinterpret VARCHAR(40) NULL,
+ mohsuggest VARCHAR(40) NULL,
+ parkinglot VARCHAR(40) NULL,
+ hasvoicemail VARCHAR(3) NULL,
+ subscribemwi VARCHAR(3) NULL,
+ vmexten VARCHAR(40) NULL,
+ autoframing VARCHAR(3) NULL,
+ rtpkeepalive INTEGER NULL,
+ [call-limit] INTEGER NULL,
+ g726nonstandard VARCHAR(3) NULL,
+ ignoresdpversion VARCHAR(3) NULL,
+ allowtransfer VARCHAR(3) NULL,
+ dynamic VARCHAR(3) NULL,
+ path VARCHAR(256) NULL,
+ supportpath VARCHAR(3) NULL,
+ PRIMARY KEY (id),
+ UNIQUE (name),
+ CONSTRAINT type_values CHECK (type IN ('friend', 'user', 'peer')),
+ CONSTRAINT sip_transport_values CHECK (transport IN ('udp', 'tcp', 'tls', 'ws', 'wss', 'udp,tcp', 'tcp,udp')),
+ CONSTRAINT sip_dtmfmode_values CHECK (dtmfmode IN ('rfc2833', 'info', 'shortinfo', 'inband', 'auto')),
+ CONSTRAINT sip_directmedia_values CHECK (directmedia IN ('yes', 'no', 'nonat', 'update')),
+ CONSTRAINT yes_no_values CHECK (trustrpid IN ('yes', 'no')),
+ CONSTRAINT sip_progressinband_values CHECK (progressinband IN ('yes', 'no', 'never')),
+ CONSTRAINT yes_no_values CHECK (promiscredir IN ('yes', 'no')),
+ CONSTRAINT yes_no_values CHECK (useclientcode IN ('yes', 'no')),
+ CONSTRAINT yes_no_values CHECK (callcounter IN ('yes', 'no')),
+ CONSTRAINT yes_no_values CHECK (allowoverlap IN ('yes', 'no')),
+ CONSTRAINT yes_no_values CHECK (allowsubscribe IN ('yes', 'no')),
+ CONSTRAINT yes_no_values CHECK (videosupport IN ('yes', 'no')),
+ CONSTRAINT yes_no_values CHECK (rfc2833compensate IN ('yes', 'no')),
+ CONSTRAINT sip_session_timers_values CHECK ([session-timers] IN ('accept', 'refuse', 'originate')),
+ CONSTRAINT sip_session_refresher_values CHECK ([session-refresher] IN ('uac', 'uas')),
+ CONSTRAINT yes_no_values CHECK (sendrpid IN ('yes', 'no')),
+ CONSTRAINT yes_no_values CHECK (constantssrc IN ('yes', 'no')),
+ CONSTRAINT yes_no_values CHECK (usereqphone IN ('yes', 'no')),
+ CONSTRAINT yes_no_values CHECK (textsupport IN ('yes', 'no')),
+ CONSTRAINT yes_no_values CHECK (faxdetect IN ('yes', 'no')),
+ CONSTRAINT yes_no_values CHECK (buggymwi IN ('yes', 'no')),
+ CONSTRAINT sip_callingpres_values CHECK (callingpres IN ('allowed_not_screened', 'allowed_passed_screen', 'allowed_failed_screen', 'allowed', 'prohib_not_screened', 'prohib_passed_screen', 'prohib_failed_screen', 'prohib')),
+ CONSTRAINT yes_no_values CHECK (hasvoicemail IN ('yes', 'no')),
+ CONSTRAINT yes_no_values CHECK (subscribemwi IN ('yes', 'no')),
+ CONSTRAINT yes_no_values CHECK (autoframing IN ('yes', 'no')),
+ CONSTRAINT yes_no_values CHECK (g726nonstandard IN ('yes', 'no')),
+ CONSTRAINT yes_no_values CHECK (ignoresdpversion IN ('yes', 'no')),
+ CONSTRAINT yes_no_values CHECK (allowtransfer IN ('yes', 'no')),
+ CONSTRAINT yes_no_values CHECK (dynamic IN ('yes', 'no')),
+ CONSTRAINT yes_no_values CHECK (supportpath IN ('yes', 'no'))
+);
+
+GO
+
+CREATE INDEX sippeers_name ON sippeers (name);
+
+GO
+
+CREATE INDEX sippeers_name_host ON sippeers (name, host);
+
+GO
+
+CREATE INDEX sippeers_ipaddr_port ON sippeers (ipaddr, port);
+
+GO
+
+CREATE INDEX sippeers_host_port ON sippeers (host, port);
+
+GO
+
+CREATE TABLE iaxfriends (
+ id INTEGER NOT NULL IDENTITY(1,1),
+ name VARCHAR(40) NOT NULL,
+ type VARCHAR(6) NULL,
+ username VARCHAR(40) NULL,
+ mailbox VARCHAR(40) NULL,
+ secret VARCHAR(40) NULL,
+ dbsecret VARCHAR(40) NULL,
+ context VARCHAR(40) NULL,
+ regcontext VARCHAR(40) NULL,
+ host VARCHAR(40) NULL,
+ ipaddr VARCHAR(40) NULL,
+ port INTEGER NULL,
+ defaultip VARCHAR(20) NULL,
+ sourceaddress VARCHAR(20) NULL,
+ mask VARCHAR(20) NULL,
+ regexten VARCHAR(40) NULL,
+ regseconds INTEGER NULL,
+ accountcode VARCHAR(20) NULL,
+ mohinterpret VARCHAR(20) NULL,
+ mohsuggest VARCHAR(20) NULL,
+ inkeys VARCHAR(40) NULL,
+ outkeys VARCHAR(40) NULL,
+ language VARCHAR(10) NULL,
+ callerid VARCHAR(100) NULL,
+ cid_number VARCHAR(40) NULL,
+ sendani VARCHAR(3) NULL,
+ fullname VARCHAR(40) NULL,
+ trunk VARCHAR(3) NULL,
+ auth VARCHAR(20) NULL,
+ maxauthreq INTEGER NULL,
+ requirecalltoken VARCHAR(4) NULL,
+ encryption VARCHAR(6) NULL,
+ transfer VARCHAR(9) NULL,
+ jitterbuffer VARCHAR(3) NULL,
+ forcejitterbuffer VARCHAR(3) NULL,
+ disallow VARCHAR(200) NULL,
+ allow VARCHAR(200) NULL,
+ codecpriority VARCHAR(40) NULL,
+ qualify VARCHAR(10) NULL,
+ qualifysmoothing VARCHAR(3) NULL,
+ qualifyfreqok VARCHAR(10) NULL,
+ qualifyfreqnotok VARCHAR(10) NULL,
+ timezone VARCHAR(20) NULL,
+ adsi VARCHAR(3) NULL,
+ amaflags VARCHAR(20) NULL,
+ setvar VARCHAR(200) NULL,
+ PRIMARY KEY (id),
+ UNIQUE (name),
+ CONSTRAINT type_values CHECK (type IN ('friend', 'user', 'peer')),
+ CONSTRAINT yes_no_values CHECK (sendani IN ('yes', 'no')),
+ CONSTRAINT yes_no_values CHECK (trunk IN ('yes', 'no')),
+ CONSTRAINT iax_requirecalltoken_values CHECK (requirecalltoken IN ('yes', 'no', 'auto')),
+ CONSTRAINT iax_encryption_values CHECK (encryption IN ('yes', 'no', 'aes128')),
+ CONSTRAINT iax_transfer_values CHECK (transfer IN ('yes', 'no', 'mediaonly')),
+ CONSTRAINT yes_no_values CHECK (jitterbuffer IN ('yes', 'no')),
+ CONSTRAINT yes_no_values CHECK (forcejitterbuffer IN ('yes', 'no')),
+ CONSTRAINT yes_no_values CHECK (qualifysmoothing IN ('yes', 'no')),
+ CONSTRAINT yes_no_values CHECK (adsi IN ('yes', 'no'))
+);
+
+GO
+
+CREATE INDEX iaxfriends_name ON iaxfriends (name);
+
+GO
+
+CREATE INDEX iaxfriends_name_host ON iaxfriends (name, host);
+
+GO
+
+CREATE INDEX iaxfriends_name_ipaddr_port ON iaxfriends (name, ipaddr, port);
+
+GO
+
+CREATE INDEX iaxfriends_ipaddr_port ON iaxfriends (ipaddr, port);
+
+GO
+
+CREATE INDEX iaxfriends_host_port ON iaxfriends (host, port);
+
+GO
+
+CREATE TABLE voicemail (
+ uniqueid INTEGER NOT NULL IDENTITY(1,1),
+ context VARCHAR(80) NOT NULL,
+ mailbox VARCHAR(80) NOT NULL,
+ password VARCHAR(80) NOT NULL,
+ fullname VARCHAR(80) NULL,
+ alias VARCHAR(80) NULL,
+ email VARCHAR(80) NULL,
+ pager VARCHAR(80) NULL,
+ attach VARCHAR(3) NULL,
+ attachfmt VARCHAR(10) NULL,
+ serveremail VARCHAR(80) NULL,
+ language VARCHAR(20) NULL,
+ tz VARCHAR(30) NULL,
+ deletevoicemail VARCHAR(3) NULL,
+ saycid VARCHAR(3) NULL,
+ sendvoicemail VARCHAR(3) NULL,
+ review VARCHAR(3) NULL,
+ tempgreetwarn VARCHAR(3) NULL,
+ operator VARCHAR(3) NULL,
+ envelope VARCHAR(3) NULL,
+ sayduration INTEGER NULL,
+ forcename VARCHAR(3) NULL,
+ forcegreetings VARCHAR(3) NULL,
+ callback VARCHAR(80) NULL,
+ dialout VARCHAR(80) NULL,
+ exitcontext VARCHAR(80) NULL,
+ maxmsg INTEGER NULL,
+ volgain NUMERIC(5, 2) NULL,
+ imapuser VARCHAR(80) NULL,
+ imappassword VARCHAR(80) NULL,
+ imapserver VARCHAR(80) NULL,
+ imapport VARCHAR(8) NULL,
+ imapflags VARCHAR(80) NULL,
+ stamp DATETIME NULL,
+ PRIMARY KEY (uniqueid),
+ CONSTRAINT yes_no_values CHECK (attach IN ('yes', 'no')),
+ CONSTRAINT yes_no_values CHECK (deletevoicemail IN ('yes', 'no')),
+ CONSTRAINT yes_no_values CHECK (saycid IN ('yes', 'no')),
+ CONSTRAINT yes_no_values CHECK (sendvoicemail IN ('yes', 'no')),
+ CONSTRAINT yes_no_values CHECK (review IN ('yes', 'no')),
+ CONSTRAINT yes_no_values CHECK (tempgreetwarn IN ('yes', 'no')),
+ CONSTRAINT yes_no_values CHECK (operator IN ('yes', 'no')),
+ CONSTRAINT yes_no_values CHECK (envelope IN ('yes', 'no')),
+ CONSTRAINT yes_no_values CHECK (forcename IN ('yes', 'no')),
+ CONSTRAINT yes_no_values CHECK (forcegreetings IN ('yes', 'no'))
+);
+
+GO
+
+CREATE INDEX voicemail_mailbox ON voicemail (mailbox);
+
+GO
+
+CREATE INDEX voicemail_context ON voicemail (context);
+
+GO
+
+CREATE INDEX voicemail_mailbox_context ON voicemail (mailbox, context);
+
+GO
+
+CREATE INDEX voicemail_imapuser ON voicemail (imapuser);
+
+GO
+
+CREATE TABLE meetme (
+ bookid INTEGER NOT NULL IDENTITY(1,1),
+ confno VARCHAR(80) NOT NULL,
+ starttime DATETIME NULL,
+ endtime DATETIME NULL,
+ pin VARCHAR(20) NULL,
+ adminpin VARCHAR(20) NULL,
+ opts VARCHAR(20) NULL,
+ adminopts VARCHAR(20) NULL,
+ recordingfilename VARCHAR(80) NULL,
+ recordingformat VARCHAR(10) NULL,
+ maxusers INTEGER NULL,
+ members INTEGER NOT NULL,
+ PRIMARY KEY (bookid)
+);
+
+GO
+
+CREATE INDEX meetme_confno_start_end ON meetme (confno, starttime, endtime);
+
+GO
+
+CREATE TABLE musiconhold (
+ name VARCHAR(80) NOT NULL,
+ mode VARCHAR(10) NULL,
+ directory VARCHAR(255) NULL,
+ application VARCHAR(255) NULL,
+ digit VARCHAR(1) NULL,
+ sort VARCHAR(10) NULL,
+ format VARCHAR(10) NULL,
+ stamp DATETIME NULL,
+ PRIMARY KEY (name),
+ CONSTRAINT moh_mode_values CHECK (mode IN ('custom', 'files', 'mp3nb', 'quietmp3nb', 'quietmp3'))
+);
+
+GO
+
+INSERT INTO alembic_version (version_num) VALUES ('4da0c5f79a9c');
+
+GO
+
+-- Running upgrade 4da0c5f79a9c -> 43956d550a44
+
+CREATE TABLE ps_endpoints (
+ id VARCHAR(40) NOT NULL,
+ transport VARCHAR(40) NULL,
+ aors VARCHAR(200) NULL,
+ auth VARCHAR(40) NULL,
+ context VARCHAR(40) NULL,
+ disallow VARCHAR(200) NULL,
+ allow VARCHAR(200) NULL,
+ direct_media VARCHAR(3) NULL,
+ connected_line_method VARCHAR(8) NULL,
+ direct_media_method VARCHAR(8) NULL,
+ direct_media_glare_mitigation VARCHAR(8) NULL,
+ disable_direct_media_on_nat VARCHAR(3) NULL,
+ dtmf_mode VARCHAR(7) NULL,
+ external_media_address VARCHAR(40) NULL,
+ force_rport VARCHAR(3) NULL,
+ ice_support VARCHAR(3) NULL,
+ identify_by VARCHAR(8) NULL,
+ mailboxes VARCHAR(40) NULL,
+ moh_suggest VARCHAR(40) NULL,
+ outbound_auth VARCHAR(40) NULL,
+ outbound_proxy VARCHAR(40) NULL,
+ rewrite_contact VARCHAR(3) NULL,
+ rtp_ipv6 VARCHAR(3) NULL,
+ rtp_symmetric VARCHAR(3) NULL,
+ send_diversion VARCHAR(3) NULL,
+ send_pai VARCHAR(3) NULL,
+ send_rpid VARCHAR(3) NULL,
+ timers_min_se INTEGER NULL,
+ timers VARCHAR(8) NULL,
+ timers_sess_expires INTEGER NULL,
+ callerid VARCHAR(40) NULL,
+ callerid_privacy VARCHAR(23) NULL,
+ callerid_tag VARCHAR(40) NULL,
+ [100rel] VARCHAR(8) NULL,
+ aggregate_mwi VARCHAR(3) NULL,
+ trust_id_inbound VARCHAR(3) NULL,
+ trust_id_outbound VARCHAR(3) NULL,
+ use_ptime VARCHAR(3) NULL,
+ use_avpf VARCHAR(3) NULL,
+ media_encryption VARCHAR(4) NULL,
+ inband_progress VARCHAR(3) NULL,
+ call_group VARCHAR(40) NULL,
+ pickup_group VARCHAR(40) NULL,
+ named_call_group VARCHAR(40) NULL,
+ named_pickup_group VARCHAR(40) NULL,
+ device_state_busy_at INTEGER NULL,
+ fax_detect VARCHAR(3) NULL,
+ t38_udptl VARCHAR(3) NULL,
+ t38_udptl_ec VARCHAR(10) NULL,
+ t38_udptl_maxdatagram INTEGER NULL,
+ t38_udptl_nat VARCHAR(3) NULL,
+ t38_udptl_ipv6 VARCHAR(3) NULL,
+ tone_zone VARCHAR(40) NULL,
+ language VARCHAR(40) NULL,
+ one_touch_recording VARCHAR(3) NULL,
+ record_on_feature VARCHAR(40) NULL,
+ record_off_feature VARCHAR(40) NULL,
+ rtp_engine VARCHAR(40) NULL,
+ allow_transfer VARCHAR(3) NULL,
+ allow_subscribe VARCHAR(3) NULL,
+ sdp_owner VARCHAR(40) NULL,
+ sdp_session VARCHAR(40) NULL,
+ tos_audio INTEGER NULL,
+ tos_video INTEGER NULL,
+ cos_audio INTEGER NULL,
+ cos_video INTEGER NULL,
+ sub_min_expiry INTEGER NULL,
+ from_domain VARCHAR(40) NULL,
+ from_user VARCHAR(40) NULL,
+ mwi_fromuser VARCHAR(40) NULL,
+ dtls_verify VARCHAR(40) NULL,
+ dtls_rekey VARCHAR(40) NULL,
+ dtls_cert_file VARCHAR(200) NULL,
+ dtls_private_key VARCHAR(200) NULL,
+ dtls_cipher VARCHAR(200) NULL,
+ dtls_ca_file VARCHAR(200) NULL,
+ dtls_ca_path VARCHAR(200) NULL,
+ dtls_setup VARCHAR(7) NULL,
+ srtp_tag_32 VARCHAR(3) NULL,
+ UNIQUE (id),
+ CONSTRAINT yesno_values CHECK (direct_media IN ('yes', 'no')),
+ CONSTRAINT pjsip_connected_line_method_values CHECK (connected_line_method IN ('invite', 'reinvite', 'update')),
+ CONSTRAINT pjsip_connected_line_method_values CHECK (direct_media_method IN ('invite', 'reinvite', 'update')),
+ CONSTRAINT pjsip_direct_media_glare_mitigation_values CHECK (direct_media_glare_mitigation IN ('none', 'outgoing', 'incoming')),
+ CONSTRAINT yesno_values CHECK (disable_direct_media_on_nat IN ('yes', 'no')),
+ CONSTRAINT pjsip_dtmf_mode_values CHECK (dtmf_mode IN ('rfc4733', 'inband', 'info')),
+ CONSTRAINT yesno_values CHECK (force_rport IN ('yes', 'no')),
+ CONSTRAINT yesno_values CHECK (ice_support IN ('yes', 'no')),
+ CONSTRAINT pjsip_identify_by_values CHECK (identify_by IN ('username')),
+ CONSTRAINT yesno_values CHECK (rewrite_contact IN ('yes', 'no')),
+ CONSTRAINT yesno_values CHECK (rtp_ipv6 IN ('yes', 'no')),
+ CONSTRAINT yesno_values CHECK (rtp_symmetric IN ('yes', 'no')),
+ CONSTRAINT yesno_values CHECK (send_diversion IN ('yes', 'no')),
+ CONSTRAINT yesno_values CHECK (send_pai IN ('yes', 'no')),
+ CONSTRAINT yesno_values CHECK (send_rpid IN ('yes', 'no')),
+ CONSTRAINT pjsip_timer_values CHECK (timers IN ('forced', 'no', 'required', 'yes')),
+ CONSTRAINT pjsip_cid_privacy_values CHECK (callerid_privacy IN ('allowed_not_screened', 'allowed_passed_screened', 'allowed_failed_screened', 'allowed', 'prohib_not_screened', 'prohib_passed_screened', 'prohib_failed_screened', 'prohib', 'unavailable')),
+ CONSTRAINT pjsip_100rel_values CHECK ([100rel] IN ('no', 'required', 'yes')),
+ CONSTRAINT yesno_values CHECK (aggregate_mwi IN ('yes', 'no')),
+ CONSTRAINT yesno_values CHECK (trust_id_inbound IN ('yes', 'no')),
+ CONSTRAINT yesno_values CHECK (trust_id_outbound IN ('yes', 'no')),
+ CONSTRAINT yesno_values CHECK (use_ptime IN ('yes', 'no')),
+ CONSTRAINT yesno_values CHECK (use_avpf IN ('yes', 'no')),
+ CONSTRAINT pjsip_media_encryption_values CHECK (media_encryption IN ('no', 'sdes', 'dtls')),
+ CONSTRAINT yesno_values CHECK (inband_progress IN ('yes', 'no')),
+ CONSTRAINT yesno_values CHECK (fax_detect IN ('yes', 'no')),
+ CONSTRAINT yesno_values CHECK (t38_udptl IN ('yes', 'no')),
+ CONSTRAINT pjsip_t38udptl_ec_values CHECK (t38_udptl_ec IN ('none', 'fec', 'redundancy')),
+ CONSTRAINT yesno_values CHECK (t38_udptl_nat IN ('yes', 'no')),
+ CONSTRAINT yesno_values CHECK (t38_udptl_ipv6 IN ('yes', 'no')),
+ CONSTRAINT yesno_values CHECK (one_touch_recording IN ('yes', 'no')),
+ CONSTRAINT yesno_values CHECK (allow_transfer IN ('yes', 'no')),
+ CONSTRAINT yesno_values CHECK (allow_subscribe IN ('yes', 'no')),
+ CONSTRAINT pjsip_dtls_setup_values CHECK (dtls_setup IN ('active', 'passive', 'actpass')),
+ CONSTRAINT yesno_values CHECK (srtp_tag_32 IN ('yes', 'no'))
+);
+
+GO
+
+CREATE INDEX ps_endpoints_id ON ps_endpoints (id);
+
+GO
+
+CREATE TABLE ps_auths (
+ id VARCHAR(40) NOT NULL,
+ auth_type VARCHAR(8) NULL,
+ nonce_lifetime INTEGER NULL,
+ md5_cred VARCHAR(40) NULL,
+ password VARCHAR(80) NULL,
+ realm VARCHAR(40) NULL,
+ username VARCHAR(40) NULL,
+ UNIQUE (id),
+ CONSTRAINT pjsip_auth_type_values CHECK (auth_type IN ('md5', 'userpass'))
+);
+
+GO
+
+CREATE INDEX ps_auths_id ON ps_auths (id);
+
+GO
+
+CREATE TABLE ps_aors (
+ id VARCHAR(40) NOT NULL,
+ contact VARCHAR(40) NULL,
+ default_expiration INTEGER NULL,
+ mailboxes VARCHAR(80) NULL,
+ max_contacts INTEGER NULL,
+ minimum_expiration INTEGER NULL,
+ remove_existing VARCHAR(3) NULL,
+ qualify_frequency INTEGER NULL,
+ authenticate_qualify VARCHAR(3) NULL,
+ UNIQUE (id),
+ CONSTRAINT yesno_values CHECK (remove_existing IN ('yes', 'no')),
+ CONSTRAINT yesno_values CHECK (authenticate_qualify IN ('yes', 'no'))
+);
+
+GO
+
+CREATE INDEX ps_aors_id ON ps_aors (id);
+
+GO
+
+CREATE TABLE ps_contacts (
+ id VARCHAR(40) NOT NULL,
+ uri VARCHAR(40) NULL,
+ expiration_time VARCHAR(40) NULL,
+ qualify_frequency INTEGER NULL,
+ UNIQUE (id)
+);
+
+GO
+
+CREATE INDEX ps_contacts_id ON ps_contacts (id);
+
+GO
+
+CREATE TABLE ps_domain_aliases (
+ id VARCHAR(40) NOT NULL,
+ domain VARCHAR(80) NULL,
+ UNIQUE (id)
+);
+
+GO
+
+CREATE INDEX ps_domain_aliases_id ON ps_domain_aliases (id);
+
+GO
+
+CREATE TABLE ps_endpoint_id_ips (
+ id VARCHAR(40) NOT NULL,
+ endpoint VARCHAR(40) NULL,
+ match VARCHAR(80) NULL,
+ UNIQUE (id)
+);
+
+GO
+
+CREATE INDEX ps_endpoint_id_ips_id ON ps_endpoint_id_ips (id);
+
+GO
+
+UPDATE alembic_version SET version_num='43956d550a44' WHERE alembic_version.version_num = '4da0c5f79a9c';
+
+GO
+
+-- Running upgrade 43956d550a44 -> 581a4264e537
+
+CREATE TABLE extensions (
+ id BIGINT NOT NULL IDENTITY(1,1),
+ context VARCHAR(40) NOT NULL,
+ exten VARCHAR(40) NOT NULL,
+ priority INTEGER NOT NULL,
+ app VARCHAR(40) NOT NULL,
+ appdata VARCHAR(256) NOT NULL,
+ PRIMARY KEY (id),
+ UNIQUE (context, exten, priority),
+ UNIQUE (id)
+);
+
+GO
+
+UPDATE alembic_version SET version_num='581a4264e537' WHERE alembic_version.version_num = '43956d550a44';
+
+GO
+
+-- Running upgrade 581a4264e537 -> 2fc7930b41b3
+
+CREATE TABLE ps_systems (
+ id VARCHAR(40) NOT NULL,
+ timer_t1 INTEGER NULL,
+ timer_b INTEGER NULL,
+ compact_headers VARCHAR(3) NULL,
+ threadpool_initial_size INTEGER NULL,
+ threadpool_auto_increment INTEGER NULL,
+ threadpool_idle_timeout INTEGER NULL,
+ threadpool_max_size INTEGER NULL,
+ UNIQUE (id),
+ CONSTRAINT yesno_values CHECK (compact_headers IN ('yes', 'no'))
+);
+
+GO
+
+CREATE INDEX ps_systems_id ON ps_systems (id);
+
+GO
+
+CREATE TABLE ps_globals (
+ id VARCHAR(40) NOT NULL,
+ max_forwards INTEGER NULL,
+ user_agent VARCHAR(40) NULL,
+ default_outbound_endpoint VARCHAR(40) NULL,
+ UNIQUE (id)
+);
+
+GO
+
+CREATE INDEX ps_globals_id ON ps_globals (id);
+
+GO
+
+CREATE TABLE ps_transports (
+ id VARCHAR(40) NOT NULL,
+ async_operations INTEGER NULL,
+ bind VARCHAR(40) NULL,
+ ca_list_file VARCHAR(200) NULL,
+ cert_file VARCHAR(200) NULL,
+ cipher VARCHAR(200) NULL,
+ domain VARCHAR(40) NULL,
+ external_media_address VARCHAR(40) NULL,
+ external_signaling_address VARCHAR(40) NULL,
+ external_signaling_port INTEGER NULL,
+ method VARCHAR(11) NULL,
+ local_net VARCHAR(40) NULL,
+ password VARCHAR(40) NULL,
+ priv_key_file VARCHAR(200) NULL,
+ protocol VARCHAR(3) NULL,
+ require_client_cert VARCHAR(3) NULL,
+ verify_client VARCHAR(3) NULL,
+ verifiy_server VARCHAR(3) NULL,
+ tos VARCHAR(3) NULL,
+ cos VARCHAR(3) NULL,
+ UNIQUE (id),
+ CONSTRAINT pjsip_transport_method_values CHECK (method IN ('default', 'unspecified', 'tlsv1', 'sslv2', 'sslv3', 'sslv23')),
+ CONSTRAINT pjsip_transport_protocol_values CHECK (protocol IN ('udp', 'tcp', 'tls', 'ws', 'wss')),
+ CONSTRAINT yesno_values CHECK (require_client_cert IN ('yes', 'no')),
+ CONSTRAINT yesno_values CHECK (verify_client IN ('yes', 'no')),
+ CONSTRAINT yesno_values CHECK (verifiy_server IN ('yes', 'no')),
+ CONSTRAINT yesno_values CHECK (tos IN ('yes', 'no')),
+ CONSTRAINT yesno_values CHECK (cos IN ('yes', 'no'))
+);
+
+GO
+
+CREATE INDEX ps_transports_id ON ps_transports (id);
+
+GO
+
+CREATE TABLE ps_registrations (
+ id VARCHAR(40) NOT NULL,
+ auth_rejection_permanent VARCHAR(3) NULL,
+ client_uri VARCHAR(40) NULL,
+ contact_user VARCHAR(40) NULL,
+ expiration INTEGER NULL,
+ max_retries INTEGER NULL,
+ outbound_auth VARCHAR(40) NULL,
+ outbound_proxy VARCHAR(40) NULL,
+ retry_interval INTEGER NULL,
+ forbidden_retry_interval INTEGER NULL,
+ server_uri VARCHAR(40) NULL,
+ transport VARCHAR(40) NULL,
+ support_path VARCHAR(3) NULL,
+ UNIQUE (id),
+ CONSTRAINT yesno_values CHECK (auth_rejection_permanent IN ('yes', 'no')),
+ CONSTRAINT yesno_values CHECK (support_path IN ('yes', 'no'))
+);
+
+GO
+
+CREATE INDEX ps_registrations_id ON ps_registrations (id);
+
+GO
+
+ALTER TABLE ps_endpoints ADD media_address VARCHAR(40) NULL;
+
+GO
+
+ALTER TABLE ps_endpoints ADD redirect_method VARCHAR(9) NULL;
+
+GO
+
+ALTER TABLE ps_endpoints ADD CONSTRAINT pjsip_redirect_method_values CHECK (redirect_method IN ('user', 'uri_core', 'uri_pjsip'));
+
+GO
+
+ALTER TABLE ps_endpoints ADD set_var TEXT NULL;
+
+GO
+
+EXEC sp_rename 'ps_endpoints.mwi_fromuser', mwi_from_user, 'COLUMN';
+
+GO
+
+ALTER TABLE ps_contacts ADD outbound_proxy VARCHAR(40) NULL;
+
+GO
+
+ALTER TABLE ps_contacts ADD path TEXT NULL;
+
+GO
+
+ALTER TABLE ps_aors ADD maximum_expiration INTEGER NULL;
+
+GO
+
+ALTER TABLE ps_aors ADD outbound_proxy VARCHAR(40) NULL;
+
+GO
+
+ALTER TABLE ps_aors ADD support_path VARCHAR(3) NULL;
+
+GO
+
+ALTER TABLE ps_aors ADD CONSTRAINT yesno_values CHECK (support_path IN ('yes', 'no'));
+
+GO
+
+UPDATE alembic_version SET version_num='2fc7930b41b3' WHERE alembic_version.version_num = '581a4264e537';
+
+GO
+
+-- Running upgrade 2fc7930b41b3 -> 21e526ad3040
+
+ALTER TABLE ps_globals ADD debug VARCHAR(40) NULL;
+
+GO
+
+UPDATE alembic_version SET version_num='21e526ad3040' WHERE alembic_version.version_num = '2fc7930b41b3';
+
+GO
+
+-- Running upgrade 21e526ad3040 -> 28887f25a46f
+
+CREATE TABLE queues (
+ name VARCHAR(128) NOT NULL,
+ musiconhold VARCHAR(128) NULL,
+ announce VARCHAR(128) NULL,
+ context VARCHAR(128) NULL,
+ timeout INTEGER NULL,
+ ringinuse VARCHAR(3) NULL,
+ setinterfacevar VARCHAR(3) NULL,
+ setqueuevar VARCHAR(3) NULL,
+ setqueueentryvar VARCHAR(3) NULL,
+ monitor_format VARCHAR(8) NULL,
+ membermacro VARCHAR(512) NULL,
+ membergosub VARCHAR(512) NULL,
+ queue_youarenext VARCHAR(128) NULL,
+ queue_thereare VARCHAR(128) NULL,
+ queue_callswaiting VARCHAR(128) NULL,
+ queue_quantity1 VARCHAR(128) NULL,
+ queue_quantity2 VARCHAR(128) NULL,
+ queue_holdtime VARCHAR(128) NULL,
+ queue_minutes VARCHAR(128) NULL,
+ queue_minute VARCHAR(128) NULL,
+ queue_seconds VARCHAR(128) NULL,
+ queue_thankyou VARCHAR(128) NULL,
+ queue_callerannounce VARCHAR(128) NULL,
+ queue_reporthold VARCHAR(128) NULL,
+ announce_frequency INTEGER NULL,
+ announce_to_first_user VARCHAR(3) NULL,
+ min_announce_frequency INTEGER NULL,
+ announce_round_seconds INTEGER NULL,
+ announce_holdtime VARCHAR(128) NULL,
+ announce_position VARCHAR(128) NULL,
+ announce_position_limit INTEGER NULL,
+ periodic_announce VARCHAR(50) NULL,
+ periodic_announce_frequency INTEGER NULL,
+ relative_periodic_announce VARCHAR(3) NULL,
+ random_periodic_announce VARCHAR(3) NULL,
+ retry INTEGER NULL,
+ wrapuptime INTEGER NULL,
+ penaltymemberslimit INTEGER NULL,
+ autofill VARCHAR(3) NULL,
+ monitor_type VARCHAR(128) NULL,
+ autopause VARCHAR(3) NULL,
+ autopausedelay INTEGER NULL,
+ autopausebusy VARCHAR(3) NULL,
+ autopauseunavail VARCHAR(3) NULL,
+ maxlen INTEGER NULL,
+ servicelevel INTEGER NULL,
+ strategy VARCHAR(11) NULL,
+ joinempty VARCHAR(128) NULL,
+ leavewhenempty VARCHAR(128) NULL,
+ reportholdtime VARCHAR(3) NULL,
+ memberdelay INTEGER NULL,
+ weight INTEGER NULL,
+ timeoutrestart VARCHAR(3) NULL,
+ defaultrule VARCHAR(128) NULL,
+ timeoutpriority VARCHAR(128) NULL,
+ PRIMARY KEY (name),
+ CONSTRAINT yesno_values CHECK (ringinuse IN ('yes', 'no')),
+ CONSTRAINT yesno_values CHECK (setinterfacevar IN ('yes', 'no')),
+ CONSTRAINT yesno_values CHECK (setqueuevar IN ('yes', 'no')),
+ CONSTRAINT yesno_values CHECK (setqueueentryvar IN ('yes', 'no')),
+ CONSTRAINT yesno_values CHECK (announce_to_first_user IN ('yes', 'no')),
+ CONSTRAINT yesno_values CHECK (relative_periodic_announce IN ('yes', 'no')),
+ CONSTRAINT yesno_values CHECK (random_periodic_announce IN ('yes', 'no')),
+ CONSTRAINT yesno_values CHECK (autofill IN ('yes', 'no')),
+ CONSTRAINT queue_autopause_values CHECK (autopause IN ('yes', 'no', 'all')),
+ CONSTRAINT yesno_values CHECK (autopausebusy IN ('yes', 'no')),
+ CONSTRAINT yesno_values CHECK (autopauseunavail IN ('yes', 'no')),
+ CONSTRAINT queue_strategy_values CHECK (strategy IN ('ringall', 'leastrecent', 'fewestcalls', 'random', 'rrmemory', 'linear', 'wrandom', 'rrordered')),
+ CONSTRAINT yesno_values CHECK (reportholdtime IN ('yes', 'no')),
+ CONSTRAINT yesno_values CHECK (timeoutrestart IN ('yes', 'no'))
+);
+
+GO
+
+CREATE TABLE queue_members (
+ queue_name VARCHAR(80) NOT NULL,
+ interface VARCHAR(80) NOT NULL,
+ uniqueid VARCHAR(80) NOT NULL,
+ membername VARCHAR(80) NULL,
+ state_interface VARCHAR(80) NULL,
+ penalty INTEGER NULL,
+ paused INTEGER NULL,
+ PRIMARY KEY (queue_name, interface)
+);
+
+GO
+
+UPDATE alembic_version SET version_num='28887f25a46f' WHERE alembic_version.version_num = '21e526ad3040';
+
+GO
+
+-- Running upgrade 28887f25a46f -> 4c573e7135bd
+
+ALTER TABLE ps_endpoints ALTER COLUMN tos_audio VARCHAR(10);
+
+GO
+
+ALTER TABLE ps_endpoints ALTER COLUMN tos_video VARCHAR(10);
+
+GO
+
+ALTER TABLE ps_endpoints DROP COLUMN cos_audio;
+
+GO
+
+ALTER TABLE ps_endpoints DROP COLUMN cos_video;
+
+GO
+
+ALTER TABLE ps_endpoints ADD cos_audio INTEGER NULL;
+
+GO
+
+ALTER TABLE ps_endpoints ADD cos_video INTEGER NULL;
+
+GO
+
+ALTER TABLE ps_transports ALTER COLUMN tos VARCHAR(10);
+
+GO
+
+ALTER TABLE ps_transports DROP COLUMN cos;
+
+GO
+
+ALTER TABLE ps_transports ADD cos INTEGER NULL;
+
+GO
+
+UPDATE alembic_version SET version_num='4c573e7135bd' WHERE alembic_version.version_num = '28887f25a46f';
+
+GO
+
+-- Running upgrade 4c573e7135bd -> 3855ee4e5f85
+
+ALTER TABLE ps_endpoints ADD message_context VARCHAR(40) NULL;
+
+GO
+
+ALTER TABLE ps_contacts ADD user_agent VARCHAR(40) NULL;
+
+GO
+
+UPDATE alembic_version SET version_num='3855ee4e5f85' WHERE alembic_version.version_num = '4c573e7135bd';
+
+GO
+
+-- Running upgrade 3855ee4e5f85 -> e96a0b8071c
+
+ALTER TABLE ps_globals ALTER COLUMN user_agent VARCHAR(255);
+
+GO
+
+ALTER TABLE ps_contacts ALTER COLUMN id VARCHAR(255);
+
+GO
+
+ALTER TABLE ps_contacts ALTER COLUMN uri VARCHAR(255);
+
+GO
+
+ALTER TABLE ps_contacts ALTER COLUMN user_agent VARCHAR(255);
+
+GO
+
+ALTER TABLE ps_registrations ALTER COLUMN client_uri VARCHAR(255);
+
+GO
+
+ALTER TABLE ps_registrations ALTER COLUMN server_uri VARCHAR(255);
+
+GO
+
+UPDATE alembic_version SET version_num='e96a0b8071c' WHERE alembic_version.version_num = '3855ee4e5f85';
+
+GO
+
+-- Running upgrade e96a0b8071c -> c6d929b23a8
+
+CREATE TABLE ps_subscription_persistence (
+ id VARCHAR(40) NOT NULL,
+ packet VARCHAR(2048) NULL,
+ src_name VARCHAR(128) NULL,
+ src_port INTEGER NULL,
+ transport_key VARCHAR(64) NULL,
+ local_name VARCHAR(128) NULL,
+ local_port INTEGER NULL,
+ cseq INTEGER NULL,
+ tag VARCHAR(128) NULL,
+ endpoint VARCHAR(40) NULL,
+ expires INTEGER NULL,
+ UNIQUE (id)
+);
+
+GO
+
+CREATE INDEX ps_subscription_persistence_id ON ps_subscription_persistence (id);
+
+GO
+
+UPDATE alembic_version SET version_num='c6d929b23a8' WHERE alembic_version.version_num = 'e96a0b8071c';
+
+GO
+
+-- Running upgrade c6d929b23a8 -> 51f8cb66540e
+
+ALTER TABLE ps_endpoints ADD force_avp VARCHAR(3) NULL;
+
+GO
+
+ALTER TABLE ps_endpoints ADD CONSTRAINT yesno_values CHECK (force_avp IN ('yes', 'no'));
+
+GO
+
+ALTER TABLE ps_endpoints ADD media_use_received_transport VARCHAR(3) NULL;
+
+GO
+
+ALTER TABLE ps_endpoints ADD CONSTRAINT yesno_values CHECK (media_use_received_transport IN ('yes', 'no'));
+
+GO
+
+UPDATE alembic_version SET version_num='51f8cb66540e' WHERE alembic_version.version_num = 'c6d929b23a8';
+
+GO
+
+-- Running upgrade 51f8cb66540e -> 1d50859ed02e
+
+ALTER TABLE ps_endpoints ADD accountcode VARCHAR(20) NULL;
+
+GO
+
+UPDATE alembic_version SET version_num='1d50859ed02e' WHERE alembic_version.version_num = '51f8cb66540e';
+
+GO
+
+-- Running upgrade 1d50859ed02e -> 1758e8bbf6b
+
+ALTER TABLE sippeers ALTER COLUMN useragent VARCHAR(255);
+
+GO
+
+UPDATE alembic_version SET version_num='1758e8bbf6b' WHERE alembic_version.version_num = '1d50859ed02e';
+
+GO
+
+-- Running upgrade 1758e8bbf6b -> 5139253c0423
+
+ALTER TABLE queue_members DROP COLUMN uniqueid;
+
+GO
+
+ALTER TABLE queue_members ADD uniqueid INTEGER NOT NULL;
+
+GO
+
+ALTER TABLE queue_members ADD UNIQUE (uniqueid);
+
+GO
+
+UPDATE alembic_version SET version_num='5139253c0423' WHERE alembic_version.version_num = '1758e8bbf6b';
+
+GO
+
+-- Running upgrade 5139253c0423 -> d39508cb8d8
+
+CREATE TABLE queue_rules (
+ rule_name VARCHAR(80) NOT NULL,
+ time VARCHAR(32) NOT NULL,
+ min_penalty VARCHAR(32) NOT NULL,
+ max_penalty VARCHAR(32) NOT NULL
+);
+
+GO
+
+UPDATE alembic_version SET version_num='d39508cb8d8' WHERE alembic_version.version_num = '5139253c0423';
+
+GO
+
+-- Running upgrade d39508cb8d8 -> 5950038a6ead
+
+ALTER TABLE ps_transports ALTER COLUMN verifiy_server VARCHAR(3);
+
+GO
+
+EXEC sp_rename 'ps_transports.verifiy_server', verify_server, 'COLUMN';
+
+GO
+
+ALTER TABLE ps_transports ADD CONSTRAINT yesno_values CHECK (verifiy_server IN ('yes', 'no'));
+
+GO
+
+UPDATE alembic_version SET version_num='5950038a6ead' WHERE alembic_version.version_num = 'd39508cb8d8';
+
+GO
+
+-- Running upgrade 5950038a6ead -> 10aedae86a32
+
+ALTER TABLE sippeers DROP CONSTRAINT sip_directmedia_values;
+
+GO
+
+ALTER TABLE sippeers ALTER COLUMN directmedia VARCHAR(8);
+
+GO
+
+ALTER TABLE sippeers ADD CONSTRAINT sip_directmedia_values_v2 CHECK (directmedia IN ('yes', 'no', 'nonat', 'update', 'outgoing'));
+
+GO
+
+UPDATE alembic_version SET version_num='10aedae86a32' WHERE alembic_version.version_num = '5950038a6ead';
+
+GO
+
+-- Running upgrade 10aedae86a32 -> eb88a14f2a
+
+ALTER TABLE ps_endpoints ADD media_encryption_optimistic VARCHAR(3) NULL;
+
+GO
+
+ALTER TABLE ps_endpoints ADD CONSTRAINT yesno_values CHECK (media_encryption_optimistic IN ('yes', 'no'));
+
+GO
+
+UPDATE alembic_version SET version_num='eb88a14f2a' WHERE alembic_version.version_num = '10aedae86a32';
+
+GO
+
+-- Running upgrade eb88a14f2a -> 371a3bf4143e
+
+ALTER TABLE ps_endpoints ADD user_eq_phone VARCHAR(3) NULL;
+
+GO
+
+ALTER TABLE ps_endpoints ADD CONSTRAINT yesno_values CHECK (user_eq_phone IN ('yes', 'no'));
+
+GO
+
+UPDATE alembic_version SET version_num='371a3bf4143e' WHERE alembic_version.version_num = 'eb88a14f2a';
+
+GO
+
+-- Running upgrade 371a3bf4143e -> 45e3f47c6c44
+
+ALTER TABLE ps_globals ADD endpoint_identifier_order VARCHAR(40) NULL;
+
+GO
+
+UPDATE alembic_version SET version_num='45e3f47c6c44' WHERE alembic_version.version_num = '371a3bf4143e';
+
+GO
+
+-- Running upgrade 45e3f47c6c44 -> 23530d604b96
+
+ALTER TABLE ps_endpoints ADD rpid_immediate VARCHAR(3) NULL;
+
+GO
+
+ALTER TABLE ps_endpoints ADD CONSTRAINT yesno_values CHECK (rpid_immediate IN ('yes', 'no'));
+
+GO
+
+UPDATE alembic_version SET version_num='23530d604b96' WHERE alembic_version.version_num = '45e3f47c6c44';
+
+GO
+
+-- Running upgrade 23530d604b96 -> 31cd4f4891ec
+
+ALTER TABLE ps_endpoints DROP CONSTRAINT pjsip_dtmf_mode_values;
+
+GO
+
+ALTER TABLE ps_endpoints ALTER COLUMN dtmf_mode VARCHAR(7);
+
+GO
+
+ALTER TABLE ps_endpoints ADD CONSTRAINT pjsip_dtmf_mode_values_v2 CHECK (dtmf_mode IN ('rfc4733', 'inband', 'info', 'auto'));
+
+GO
+
+UPDATE alembic_version SET version_num='31cd4f4891ec' WHERE alembic_version.version_num = '23530d604b96';
+
+GO
+
+-- Running upgrade 31cd4f4891ec -> 461d7d691209
+
+ALTER TABLE ps_aors ADD qualify_timeout INTEGER NULL;
+
+GO
+
+ALTER TABLE ps_contacts ADD qualify_timeout INTEGER NULL;
+
+GO
+
+UPDATE alembic_version SET version_num='461d7d691209' WHERE alembic_version.version_num = '31cd4f4891ec';
+
+GO
+
+-- Running upgrade 461d7d691209 -> a541e0b5e89
+
+ALTER TABLE ps_globals ADD max_initial_qualify_time INTEGER NULL;
+
+GO
+
+UPDATE alembic_version SET version_num='a541e0b5e89' WHERE alembic_version.version_num = '461d7d691209';
+
+GO
+
+-- Running upgrade a541e0b5e89 -> 28b8e71e541f
+
+ALTER TABLE ps_endpoints ADD g726_non_standard VARCHAR(3) NULL;
+
+GO
+
+ALTER TABLE ps_endpoints ADD CONSTRAINT yesno_values CHECK (g726_non_standard IN ('yes', 'no'));
+
+GO
+
+UPDATE alembic_version SET version_num='28b8e71e541f' WHERE alembic_version.version_num = 'a541e0b5e89';
+
+GO
+
+-- Running upgrade 28b8e71e541f -> 498357a710ae
+
+ALTER TABLE ps_endpoints ADD rtp_keepalive INTEGER NULL;
+
+GO
+
+UPDATE alembic_version SET version_num='498357a710ae' WHERE alembic_version.version_num = '28b8e71e541f';
+
+GO
+
+-- Running upgrade 498357a710ae -> 26f10cadc157
+
+ALTER TABLE ps_endpoints ADD rtp_timeout INTEGER NULL;
+
+GO
+
+ALTER TABLE ps_endpoints ADD rtp_timeout_hold INTEGER NULL;
+
+GO
+
+UPDATE alembic_version SET version_num='26f10cadc157' WHERE alembic_version.version_num = '498357a710ae';
+
+GO
+
+-- Running upgrade 26f10cadc157 -> 154177371065
+
+ALTER TABLE ps_globals ADD default_from_user VARCHAR(80) NULL;
+
+GO
+
+UPDATE alembic_version SET version_num='154177371065' WHERE alembic_version.version_num = '26f10cadc157';
+
+GO
+
+-- Running upgrade 154177371065 -> 28ce1e718f05
+
+ALTER TABLE ps_registrations ADD fatal_retry_interval INTEGER NULL;
+
+GO
+
+UPDATE alembic_version SET version_num='28ce1e718f05' WHERE alembic_version.version_num = '154177371065';
+
+GO
+
+-- Running upgrade 28ce1e718f05 -> 189a235b3fd7
+
+ALTER TABLE ps_globals ADD keep_alive_interval INTEGER NULL;
+
+GO
+
+UPDATE alembic_version SET version_num='189a235b3fd7' WHERE alembic_version.version_num = '28ce1e718f05';
+
+GO
+
+-- Running upgrade 189a235b3fd7 -> 2d078ec071b7
+
+ALTER TABLE ps_aors ALTER COLUMN contact VARCHAR(255);
+
+GO
+
+UPDATE alembic_version SET version_num='2d078ec071b7' WHERE alembic_version.version_num = '189a235b3fd7';
+
+GO
+
+-- Running upgrade 2d078ec071b7 -> 26d7f3bf0fa5
+
+ALTER TABLE ps_endpoints ADD bind_rtp_to_media_address VARCHAR(3) NULL;
+
+GO
+
+ALTER TABLE ps_endpoints ADD CONSTRAINT yesno_values CHECK (bind_rtp_to_media_address IN ('yes', 'no'));
+
+GO
+
+UPDATE alembic_version SET version_num='26d7f3bf0fa5' WHERE alembic_version.version_num = '2d078ec071b7';
+
+GO
+
+-- Running upgrade 26d7f3bf0fa5 -> 136885b81223
+
+ALTER TABLE ps_globals ADD regcontext VARCHAR(80) NULL;
+
+GO
+
+UPDATE alembic_version SET version_num='136885b81223' WHERE alembic_version.version_num = '26d7f3bf0fa5';
+
+GO
+
+-- Running upgrade 136885b81223 -> 423f34ad36e2
+
+ALTER TABLE ps_aors ALTER COLUMN qualify_timeout FLOAT;
+
+GO
+
+ALTER TABLE ps_contacts ALTER COLUMN qualify_timeout FLOAT;
+
+GO
+
+UPDATE alembic_version SET version_num='423f34ad36e2' WHERE alembic_version.version_num = '136885b81223';
+
+GO
+
+-- Running upgrade 423f34ad36e2 -> dbc44d5a908
+
+ALTER TABLE ps_systems ADD disable_tcp_switch VARCHAR(3) NULL;
+
+GO
+
+ALTER TABLE ps_systems ADD CONSTRAINT yesno_values CHECK (disable_tcp_switch IN ('yes', 'no'));
+
+GO
+
+ALTER TABLE ps_registrations ADD line VARCHAR(3) NULL;
+
+GO
+
+ALTER TABLE ps_registrations ADD CONSTRAINT yesno_values CHECK (line IN ('yes', 'no'));
+
+GO
+
+ALTER TABLE ps_registrations ADD endpoint VARCHAR(40) NULL;
+
+GO
+
+UPDATE alembic_version SET version_num='dbc44d5a908' WHERE alembic_version.version_num = '423f34ad36e2';
+
+GO
+
+-- Running upgrade dbc44d5a908 -> 3bcc0b5bc2c9
+
+ALTER TABLE ps_transports ADD allow_reload VARCHAR(3) NULL;
+
+GO
+
+ALTER TABLE ps_transports ADD CONSTRAINT yesno_values CHECK (allow_reload IN ('yes', 'no'));
+
+GO
+
+UPDATE alembic_version SET version_num='3bcc0b5bc2c9' WHERE alembic_version.version_num = 'dbc44d5a908';
+
+GO
+
+-- Running upgrade 3bcc0b5bc2c9 -> 5813202e92be
+
+ALTER TABLE ps_globals ADD contact_expiration_check_interval INTEGER NULL;
+
+GO
+
+UPDATE alembic_version SET version_num='5813202e92be' WHERE alembic_version.version_num = '3bcc0b5bc2c9';
+
+GO
+
+-- Running upgrade 5813202e92be -> 1c688d9a003c
+
+ALTER TABLE ps_globals ADD default_voicemail_extension VARCHAR(40) NULL;
+
+GO
+
+ALTER TABLE ps_aors ADD voicemail_extension VARCHAR(40) NULL;
+
+GO
+
+ALTER TABLE ps_endpoints ADD voicemail_extension VARCHAR(40) NULL;
+
+GO
+
+ALTER TABLE ps_endpoints ADD mwi_subscribe_replaces_unsolicited INTEGER NULL;
+
+GO
+
+UPDATE alembic_version SET version_num='1c688d9a003c' WHERE alembic_version.version_num = '5813202e92be';
+
+GO
+
+-- Running upgrade 1c688d9a003c -> 8d478ab86e29
+
+ALTER TABLE ps_globals ADD disable_multi_domain VARCHAR(3) NULL;
+
+GO
+
+ALTER TABLE ps_globals ADD CONSTRAINT yesno_values CHECK (disable_multi_domain IN ('yes', 'no'));
+
+GO
+
+UPDATE alembic_version SET version_num='8d478ab86e29' WHERE alembic_version.version_num = '1c688d9a003c';
+
+GO
+
+-- Running upgrade 8d478ab86e29 -> 65eb22eb195
+
+ALTER TABLE ps_globals ADD unidentified_request_count INTEGER NULL;
+
+GO
+
+ALTER TABLE ps_globals ADD unidentified_request_period INTEGER NULL;
+
+GO
+
+ALTER TABLE ps_globals ADD unidentified_request_prune_interval INTEGER NULL;
+
+GO
+
+ALTER TABLE ps_globals ADD default_realm VARCHAR(40) NULL;
+
+GO
+
+UPDATE alembic_version SET version_num='65eb22eb195' WHERE alembic_version.version_num = '8d478ab86e29';
+
+GO
+
+-- Running upgrade 65eb22eb195 -> 81b01a191a46
+
+ALTER TABLE ps_contacts ADD reg_server VARCHAR(20) NULL;
+
+GO
+
+ALTER TABLE ps_contacts ADD CONSTRAINT ps_contacts_uq UNIQUE (id, reg_server);
+
+GO
+
+UPDATE alembic_version SET version_num='81b01a191a46' WHERE alembic_version.version_num = '65eb22eb195';
+
+GO
+
+-- Running upgrade 81b01a191a46 -> 6be31516058d
+
+ALTER TABLE ps_contacts ADD authenticate_qualify VARCHAR(3) NULL;
+
+GO
+
+ALTER TABLE ps_contacts ADD CONSTRAINT yesno_values CHECK (authenticate_qualify IN ('yes', 'no'));
+
+GO
+
+UPDATE alembic_version SET version_num='6be31516058d' WHERE alembic_version.version_num = '81b01a191a46';
+
+GO
+
+-- Running upgrade 6be31516058d -> bca7113d796f
+
+ALTER TABLE ps_endpoints ADD [deny] VARCHAR(95) NULL;
+
+GO
+
+ALTER TABLE ps_endpoints ADD permit VARCHAR(95) NULL;
+
+GO
+
+ALTER TABLE ps_endpoints ADD acl VARCHAR(40) NULL;
+
+GO
+
+ALTER TABLE ps_endpoints ADD contact_deny VARCHAR(95) NULL;
+
+GO
+
+ALTER TABLE ps_endpoints ADD contact_permit VARCHAR(95) NULL;
+
+GO
+
+ALTER TABLE ps_endpoints ADD contact_acl VARCHAR(40) NULL;
+
+GO
+
+UPDATE alembic_version SET version_num='bca7113d796f' WHERE alembic_version.version_num = '6be31516058d';
+
+GO
+
+-- Running upgrade bca7113d796f -> a845e4d8ade8
+
+ALTER TABLE ps_contacts ADD via_addr VARCHAR(40) NULL;
+
+GO
+
+ALTER TABLE ps_contacts ADD via_port INTEGER NULL;
+
+GO
+
+ALTER TABLE ps_contacts ADD call_id VARCHAR(255) NULL;
+
+GO
+
+UPDATE alembic_version SET version_num='a845e4d8ade8' WHERE alembic_version.version_num = 'bca7113d796f';
+
+GO
+
+-- Running upgrade a845e4d8ade8 -> ef7efc2d3964
+
+ALTER TABLE ps_contacts ADD endpoint VARCHAR(40) NULL;
+
+GO
+
+ALTER TABLE ps_contacts ALTER COLUMN expiration_time BIGINT;
+
+GO
+
+CREATE INDEX ps_contacts_qualifyfreq_exp ON ps_contacts (qualify_frequency, expiration_time);
+
+GO
+
+CREATE INDEX ps_aors_qualifyfreq_contact ON ps_aors (qualify_frequency, contact);
+
+GO
+
+UPDATE alembic_version SET version_num='ef7efc2d3964' WHERE alembic_version.version_num = 'a845e4d8ade8';
+
+GO
+
+-- Running upgrade ef7efc2d3964 -> 9deac0ae4717
+
+ALTER TABLE ps_endpoints ADD subscribe_context VARCHAR(40) NULL;
+
+GO
+
+UPDATE alembic_version SET version_num='9deac0ae4717' WHERE alembic_version.version_num = 'ef7efc2d3964';
+
+GO
+
+-- Running upgrade 9deac0ae4717 -> 4a6c67fa9b7a
+
+ALTER TABLE ps_endpoints ADD fax_detect_timeout INTEGER NULL;
+
+GO
+
+UPDATE alembic_version SET version_num='4a6c67fa9b7a' WHERE alembic_version.version_num = '9deac0ae4717';
+
+GO
+
+-- Running upgrade 4a6c67fa9b7a -> c7a44a5a0851
+
+ALTER TABLE ps_globals ADD mwi_tps_queue_high INTEGER NULL;
+
+GO
+
+ALTER TABLE ps_globals ADD mwi_tps_queue_low INTEGER NULL;
+
+GO
+
+ALTER TABLE ps_globals ADD mwi_disable_initial_unsolicited VARCHAR(3) NULL;
+
+GO
+
+ALTER TABLE ps_globals ADD CONSTRAINT yesno_values CHECK (mwi_disable_initial_unsolicited IN ('yes', 'no'));
+
+GO
+
+UPDATE alembic_version SET version_num='c7a44a5a0851' WHERE alembic_version.version_num = '4a6c67fa9b7a';
+
+GO
+
+-- Running upgrade c7a44a5a0851 -> 3772f8f828da
+
+ALTER TABLE ps_endpoints ALTER COLUMN identify_by VARCHAR(13);
+
+GO
+
+ALTER TABLE ps_endpoints ADD CONSTRAINT pjsip_identify_by_values CHECK (identify_by IN ('username', 'auth_username'));
+
+GO
+
+UPDATE alembic_version SET version_num='3772f8f828da' WHERE alembic_version.version_num = 'c7a44a5a0851';
+
+GO
+
+-- Running upgrade 3772f8f828da -> 4e2493ef32e6
+
+ALTER TABLE ps_endpoints ADD contact_user VARCHAR(80) NULL;
+
+GO
+
+UPDATE alembic_version SET version_num='4e2493ef32e6' WHERE alembic_version.version_num = '3772f8f828da';
+
+GO
+
+-- Running upgrade 4e2493ef32e6 -> a6ef36f1309
+
+ALTER TABLE ps_globals ADD ignore_uri_user_options VARCHAR(3) NULL;
+
+GO
+
+ALTER TABLE ps_globals ADD CONSTRAINT yesno_values CHECK (ignore_uri_user_options IN ('yes', 'no'));
+
+GO
+
+UPDATE alembic_version SET version_num='a6ef36f1309' WHERE alembic_version.version_num = '4e2493ef32e6';
+
+GO
+
+-- Running upgrade a6ef36f1309 -> 4468b4a91372
+
+ALTER TABLE ps_endpoints ADD asymmetric_rtp_codec VARCHAR(3) NULL;
+
+GO
+
+ALTER TABLE ps_endpoints ADD CONSTRAINT yesno_values CHECK (asymmetric_rtp_codec IN ('yes', 'no'));
+
+GO
+
+UPDATE alembic_version SET version_num='4468b4a91372' WHERE alembic_version.version_num = 'a6ef36f1309';
+
+GO
+
+-- Running upgrade 4468b4a91372 -> 28ab27a7826d
+
+ALTER TABLE ps_endpoint_id_ips ADD srv_lookups VARCHAR(3) NULL;
+
+GO
+
+ALTER TABLE ps_endpoint_id_ips ADD CONSTRAINT yesno_values CHECK (srv_lookups IN ('yes', 'no'));
+
+GO
+
+UPDATE alembic_version SET version_num='28ab27a7826d' WHERE alembic_version.version_num = '4468b4a91372';
+
+GO
+
+-- Running upgrade 28ab27a7826d -> 465e70e8c337
+
+ALTER TABLE ps_endpoint_id_ips ADD match_header VARCHAR(255) NULL;
+
+GO
+
+UPDATE alembic_version SET version_num='465e70e8c337' WHERE alembic_version.version_num = '28ab27a7826d';
+
+GO
+
+-- Running upgrade 465e70e8c337 -> 15db7b91a97a
+
+ALTER TABLE ps_endpoints ADD rtcp_mux VARCHAR(3) NULL;
+
+GO
+
+ALTER TABLE ps_endpoints ADD CONSTRAINT yesno_values CHECK (rtcp_mux IN ('yes', 'no'));
+
+GO
+
+UPDATE alembic_version SET version_num='15db7b91a97a' WHERE alembic_version.version_num = '465e70e8c337';
+
+GO
+
+-- Running upgrade 15db7b91a97a -> f638dbe2eb23
+
+ALTER TABLE ps_transports ADD symmetric_transport VARCHAR(3) NULL;
+
+GO
+
+ALTER TABLE ps_transports ADD CONSTRAINT yesno_values CHECK (symmetric_transport IN ('yes', 'no'));
+
+GO
+
+ALTER TABLE ps_subscription_persistence ADD contact_uri VARCHAR(256) NULL;
+
+GO
+
+UPDATE alembic_version SET version_num='f638dbe2eb23' WHERE alembic_version.version_num = '15db7b91a97a';
+
+GO
+
+-- Running upgrade f638dbe2eb23 -> 8fce4c573e15
+
+ALTER TABLE ps_endpoints ADD allow_overlap VARCHAR(3) NULL;
+
+GO
+
+ALTER TABLE ps_endpoints ADD CONSTRAINT yesno_values CHECK (allow_overlap IN ('yes', 'no'));
+
+GO
+
+UPDATE alembic_version SET version_num='8fce4c573e15' WHERE alembic_version.version_num = 'f638dbe2eb23';
+
+GO
+
+COMMIT;
+
+GO
+
diff --git a/contrib/realtime/mssql/mssql_voicemail.sql b/contrib/realtime/mssql/mssql_voicemail.sql
new file mode 100644
index 000000000..75cf56ac6
--- /dev/null
+++ b/contrib/realtime/mssql/mssql_voicemail.sql
@@ -0,0 +1,54 @@
+BEGIN TRANSACTION;
+
+CREATE TABLE alembic_version (
+ version_num VARCHAR(32) NOT NULL
+);
+
+GO
+
+-- Running upgrade -> a2e9769475e
+
+CREATE TABLE voicemail_messages (
+ dir VARCHAR(255) NOT NULL,
+ msgnum INTEGER NOT NULL,
+ context VARCHAR(80) NULL,
+ macrocontext VARCHAR(80) NULL,
+ callerid VARCHAR(80) NULL,
+ origtime INTEGER NULL,
+ duration INTEGER NULL,
+ recording IMAGE NULL,
+ flag VARCHAR(30) NULL,
+ category VARCHAR(30) NULL,
+ mailboxuser VARCHAR(30) NULL,
+ mailboxcontext VARCHAR(30) NULL,
+ msg_id VARCHAR(40) NULL
+);
+
+GO
+
+ALTER TABLE voicemail_messages ADD CONSTRAINT voicemail_messages_dir_msgnum PRIMARY KEY (dir, msgnum);
+
+GO
+
+CREATE INDEX voicemail_messages_dir ON voicemail_messages (dir);
+
+GO
+
+INSERT INTO alembic_version (version_num) VALUES ('a2e9769475e');
+
+GO
+
+-- Running upgrade a2e9769475e -> 39428242f7f5
+
+ALTER TABLE voicemail_messages ALTER COLUMN recording IMAGE;
+
+GO
+
+UPDATE alembic_version SET version_num='39428242f7f5' WHERE alembic_version.version_num = 'a2e9769475e';
+
+GO
+
+COMMIT;
+
+GO
+
diff --git a/contrib/realtime/mysql/mysql_cdr.sql b/contrib/realtime/mysql/mysql_cdr.sql
new file mode 100644
index 000000000..972f69a97
--- /dev/null
+++ b/contrib/realtime/mysql/mysql_cdr.sql
@@ -0,0 +1,32 @@
+CREATE TABLE alembic_version (
+ version_num VARCHAR(32) NOT NULL
+);
+
+-- Running upgrade -> 210693f3123d
+
+CREATE TABLE cdr (
+ accountcode VARCHAR(20),
+ src VARCHAR(80),
+ dst VARCHAR(80),
+ dcontext VARCHAR(80),
+ clid VARCHAR(80),
+ channel VARCHAR(80),
+ dstchannel VARCHAR(80),
+ lastapp VARCHAR(80),
+ lastdata VARCHAR(80),
+ start DATETIME,
+ answer DATETIME,
+ end DATETIME,
+ duration INTEGER,
+ billsec INTEGER,
+ disposition VARCHAR(45),
+ amaflags VARCHAR(45),
+ userfield VARCHAR(256),
+ uniqueid VARCHAR(150),
+ linkedid VARCHAR(150),
+ peeraccount VARCHAR(20),
+ sequence INTEGER
+);
+
+INSERT INTO alembic_version (version_num) VALUES ('210693f3123d');
+
diff --git a/contrib/realtime/mysql/mysql_config.sql b/contrib/realtime/mysql/mysql_config.sql
new file mode 100644
index 000000000..767301799
--- /dev/null
+++ b/contrib/realtime/mysql/mysql_config.sql
@@ -0,0 +1,990 @@
+CREATE TABLE alembic_version (
+ version_num VARCHAR(32) NOT NULL
+);
+
+-- Running upgrade -> 4da0c5f79a9c
+
+CREATE TABLE sippeers (
+ id INTEGER NOT NULL AUTO_INCREMENT,
+ name VARCHAR(40) NOT NULL,
+ ipaddr VARCHAR(45),
+ port INTEGER,
+ regseconds INTEGER,
+ defaultuser VARCHAR(40),
+ fullcontact VARCHAR(80),
+ regserver VARCHAR(20),
+ useragent VARCHAR(20),
+ lastms INTEGER,
+ host VARCHAR(40),
+ type ENUM('friend','user','peer'),
+ context VARCHAR(40),
+ permit VARCHAR(95),
+ deny VARCHAR(95),
+ secret VARCHAR(40),
+ md5secret VARCHAR(40),
+ remotesecret VARCHAR(40),
+ transport ENUM('udp','tcp','tls','ws','wss','udp,tcp','tcp,udp'),
+ dtmfmode ENUM('rfc2833','info','shortinfo','inband','auto'),
+ directmedia ENUM('yes','no','nonat','update'),
+ nat VARCHAR(29),
+ callgroup VARCHAR(40),
+ pickupgroup VARCHAR(40),
+ language VARCHAR(40),
+ disallow VARCHAR(200),
+ allow VARCHAR(200),
+ insecure VARCHAR(40),
+ trustrpid ENUM('yes','no'),
+ progressinband ENUM('yes','no','never'),
+ promiscredir ENUM('yes','no'),
+ useclientcode ENUM('yes','no'),
+ accountcode VARCHAR(40),
+ setvar VARCHAR(200),
+ callerid VARCHAR(40),
+ amaflags VARCHAR(40),
+ callcounter ENUM('yes','no'),
+ busylevel INTEGER,
+ allowoverlap ENUM('yes','no'),
+ allowsubscribe ENUM('yes','no'),
+ videosupport ENUM('yes','no'),
+ maxcallbitrate INTEGER,
+ rfc2833compensate ENUM('yes','no'),
+ mailbox VARCHAR(40),
+ `session-timers` ENUM('accept','refuse','originate'),
+ `session-expires` INTEGER,
+ `session-minse` INTEGER,
+ `session-refresher` ENUM('uac','uas'),
+ t38pt_usertpsource VARCHAR(40),
+ regexten VARCHAR(40),
+ fromdomain VARCHAR(40),
+ fromuser VARCHAR(40),
+ qualify VARCHAR(40),
+ defaultip VARCHAR(45),
+ rtptimeout INTEGER,
+ rtpholdtimeout INTEGER,
+ sendrpid ENUM('yes','no'),
+ outboundproxy VARCHAR(40),
+ callbackextension VARCHAR(40),
+ timert1 INTEGER,
+ timerb INTEGER,
+ qualifyfreq INTEGER,
+ constantssrc ENUM('yes','no'),
+ contactpermit VARCHAR(95),
+ contactdeny VARCHAR(95),
+ usereqphone ENUM('yes','no'),
+ textsupport ENUM('yes','no'),
+ faxdetect ENUM('yes','no'),
+ buggymwi ENUM('yes','no'),
+ auth VARCHAR(40),
+ fullname VARCHAR(40),
+ trunkname VARCHAR(40),
+ cid_number VARCHAR(40),
+ callingpres ENUM('allowed_not_screened','allowed_passed_screen','allowed_failed_screen','allowed','prohib_not_screened','prohib_passed_screen','prohib_failed_screen','prohib'),
+ mohinterpret VARCHAR(40),
+ mohsuggest VARCHAR(40),
+ parkinglot VARCHAR(40),
+ hasvoicemail ENUM('yes','no'),
+ subscribemwi ENUM('yes','no'),
+ vmexten VARCHAR(40),
+ autoframing ENUM('yes','no'),
+ rtpkeepalive INTEGER,
+ `call-limit` INTEGER,
+ g726nonstandard ENUM('yes','no'),
+ ignoresdpversion ENUM('yes','no'),
+ allowtransfer ENUM('yes','no'),
+ dynamic ENUM('yes','no'),
+ path VARCHAR(256),
+ supportpath ENUM('yes','no'),
+ PRIMARY KEY (id),
+ UNIQUE (name)
+);
+
+CREATE INDEX sippeers_name ON sippeers (name);
+
+CREATE INDEX sippeers_name_host ON sippeers (name, host);
+
+CREATE INDEX sippeers_ipaddr_port ON sippeers (ipaddr, port);
+
+CREATE INDEX sippeers_host_port ON sippeers (host, port);
+
+CREATE TABLE iaxfriends (
+ id INTEGER NOT NULL AUTO_INCREMENT,
+ name VARCHAR(40) NOT NULL,
+ type ENUM('friend','user','peer'),
+ username VARCHAR(40),
+ mailbox VARCHAR(40),
+ secret VARCHAR(40),
+ dbsecret VARCHAR(40),
+ context VARCHAR(40),
+ regcontext VARCHAR(40),
+ host VARCHAR(40),
+ ipaddr VARCHAR(40),
+ port INTEGER,
+ defaultip VARCHAR(20),
+ sourceaddress VARCHAR(20),
+ mask VARCHAR(20),
+ regexten VARCHAR(40),
+ regseconds INTEGER,
+ accountcode VARCHAR(20),
+ mohinterpret VARCHAR(20),
+ mohsuggest VARCHAR(20),
+ inkeys VARCHAR(40),
+ outkeys VARCHAR(40),
+ language VARCHAR(10),
+ callerid VARCHAR(100),
+ cid_number VARCHAR(40),
+ sendani ENUM('yes','no'),
+ fullname VARCHAR(40),
+ trunk ENUM('yes','no'),
+ auth VARCHAR(20),
+ maxauthreq INTEGER,
+ requirecalltoken ENUM('yes','no','auto'),
+ encryption ENUM('yes','no','aes128'),
+ transfer ENUM('yes','no','mediaonly'),
+ jitterbuffer ENUM('yes','no'),
+ forcejitterbuffer ENUM('yes','no'),
+ disallow VARCHAR(200),
+ allow VARCHAR(200),
+ codecpriority VARCHAR(40),
+ qualify VARCHAR(10),
+ qualifysmoothing ENUM('yes','no'),
+ qualifyfreqok VARCHAR(10),
+ qualifyfreqnotok VARCHAR(10),
+ timezone VARCHAR(20),
+ adsi ENUM('yes','no'),
+ amaflags VARCHAR(20),
+ setvar VARCHAR(200),
+ PRIMARY KEY (id),
+ UNIQUE (name)
+);
+
+CREATE INDEX iaxfriends_name ON iaxfriends (name);
+
+CREATE INDEX iaxfriends_name_host ON iaxfriends (name, host);
+
+CREATE INDEX iaxfriends_name_ipaddr_port ON iaxfriends (name, ipaddr, port);
+
+CREATE INDEX iaxfriends_ipaddr_port ON iaxfriends (ipaddr, port);
+
+CREATE INDEX iaxfriends_host_port ON iaxfriends (host, port);
+
+CREATE TABLE voicemail (
+ uniqueid INTEGER NOT NULL AUTO_INCREMENT,
+ context VARCHAR(80) NOT NULL,
+ mailbox VARCHAR(80) NOT NULL,
+ password VARCHAR(80) NOT NULL,
+ fullname VARCHAR(80),
+ alias VARCHAR(80),
+ email VARCHAR(80),
+ pager VARCHAR(80),
+ attach ENUM('yes','no'),
+ attachfmt VARCHAR(10),
+ serveremail VARCHAR(80),
+ language VARCHAR(20),
+ tz VARCHAR(30),
+ deletevoicemail ENUM('yes','no'),
+ saycid ENUM('yes','no'),
+ sendvoicemail ENUM('yes','no'),
+ review ENUM('yes','no'),
+ tempgreetwarn ENUM('yes','no'),
+ operator ENUM('yes','no'),
+ envelope ENUM('yes','no'),
+ sayduration INTEGER,
+ forcename ENUM('yes','no'),
+ forcegreetings ENUM('yes','no'),
+ callback VARCHAR(80),
+ dialout VARCHAR(80),
+ exitcontext VARCHAR(80),
+ maxmsg INTEGER,
+ volgain NUMERIC(5, 2),
+ imapuser VARCHAR(80),
+ imappassword VARCHAR(80),
+ imapserver VARCHAR(80),
+ imapport VARCHAR(8),
+ imapflags VARCHAR(80),
+ stamp DATETIME,
+ PRIMARY KEY (uniqueid)
+);
+
+CREATE INDEX voicemail_mailbox ON voicemail (mailbox);
+
+CREATE INDEX voicemail_context ON voicemail (context);
+
+CREATE INDEX voicemail_mailbox_context ON voicemail (mailbox, context);
+
+CREATE INDEX voicemail_imapuser ON voicemail (imapuser);
+
+CREATE TABLE meetme (
+ bookid INTEGER NOT NULL AUTO_INCREMENT,
+ confno VARCHAR(80) NOT NULL,
+ starttime DATETIME,
+ endtime DATETIME,
+ pin VARCHAR(20),
+ adminpin VARCHAR(20),
+ opts VARCHAR(20),
+ adminopts VARCHAR(20),
+ recordingfilename VARCHAR(80),
+ recordingformat VARCHAR(10),
+ maxusers INTEGER,
+ members INTEGER NOT NULL,
+ PRIMARY KEY (bookid)
+);
+
+CREATE INDEX meetme_confno_start_end ON meetme (confno, starttime, endtime);
+
+CREATE TABLE musiconhold (
+ name VARCHAR(80) NOT NULL,
+ mode ENUM('custom','files','mp3nb','quietmp3nb','quietmp3'),
+ directory VARCHAR(255),
+ application VARCHAR(255),
+ digit VARCHAR(1),
+ sort VARCHAR(10),
+ format VARCHAR(10),
+ stamp DATETIME,
+ PRIMARY KEY (name)
+);
+
+INSERT INTO alembic_version (version_num) VALUES ('4da0c5f79a9c');
+
+-- Running upgrade 4da0c5f79a9c -> 43956d550a44
+
+CREATE TABLE ps_endpoints (
+ id VARCHAR(40) NOT NULL,
+ transport VARCHAR(40),
+ aors VARCHAR(200),
+ auth VARCHAR(40),
+ context VARCHAR(40),
+ disallow VARCHAR(200),
+ allow VARCHAR(200),
+ direct_media ENUM('yes','no'),
+ connected_line_method ENUM('invite','reinvite','update'),
+ direct_media_method ENUM('invite','reinvite','update'),
+ direct_media_glare_mitigation ENUM('none','outgoing','incoming'),
+ disable_direct_media_on_nat ENUM('yes','no'),
+ dtmf_mode ENUM('rfc4733','inband','info'),
+ external_media_address VARCHAR(40),
+ force_rport ENUM('yes','no'),
+ ice_support ENUM('yes','no'),
+ identify_by ENUM('username'),
+ mailboxes VARCHAR(40),
+ moh_suggest VARCHAR(40),
+ outbound_auth VARCHAR(40),
+ outbound_proxy VARCHAR(40),
+ rewrite_contact ENUM('yes','no'),
+ rtp_ipv6 ENUM('yes','no'),
+ rtp_symmetric ENUM('yes','no'),
+ send_diversion ENUM('yes','no'),
+ send_pai ENUM('yes','no'),
+ send_rpid ENUM('yes','no'),
+ timers_min_se INTEGER,
+ timers ENUM('forced','no','required','yes'),
+ timers_sess_expires INTEGER,
+ callerid VARCHAR(40),
+ callerid_privacy ENUM('allowed_not_screened','allowed_passed_screened','allowed_failed_screened','allowed','prohib_not_screened','prohib_passed_screened','prohib_failed_screened','prohib','unavailable'),
+ callerid_tag VARCHAR(40),
+ `100rel` ENUM('no','required','yes'),
+ aggregate_mwi ENUM('yes','no'),
+ trust_id_inbound ENUM('yes','no'),
+ trust_id_outbound ENUM('yes','no'),
+ use_ptime ENUM('yes','no'),
+ use_avpf ENUM('yes','no'),
+ media_encryption ENUM('no','sdes','dtls'),
+ inband_progress ENUM('yes','no'),
+ call_group VARCHAR(40),
+ pickup_group VARCHAR(40),
+ named_call_group VARCHAR(40),
+ named_pickup_group VARCHAR(40),
+ device_state_busy_at INTEGER,
+ fax_detect ENUM('yes','no'),
+ t38_udptl ENUM('yes','no'),
+ t38_udptl_ec ENUM('none','fec','redundancy'),
+ t38_udptl_maxdatagram INTEGER,
+ t38_udptl_nat ENUM('yes','no'),
+ t38_udptl_ipv6 ENUM('yes','no'),
+ tone_zone VARCHAR(40),
+ language VARCHAR(40),
+ one_touch_recording ENUM('yes','no'),
+ record_on_feature VARCHAR(40),
+ record_off_feature VARCHAR(40),
+ rtp_engine VARCHAR(40),
+ allow_transfer ENUM('yes','no'),
+ allow_subscribe ENUM('yes','no'),
+ sdp_owner VARCHAR(40),
+ sdp_session VARCHAR(40),
+ tos_audio INTEGER,
+ tos_video INTEGER,
+ cos_audio INTEGER,
+ cos_video INTEGER,
+ sub_min_expiry INTEGER,
+ from_domain VARCHAR(40),
+ from_user VARCHAR(40),
+ mwi_fromuser VARCHAR(40),
+ dtls_verify VARCHAR(40),
+ dtls_rekey VARCHAR(40),
+ dtls_cert_file VARCHAR(200),
+ dtls_private_key VARCHAR(200),
+ dtls_cipher VARCHAR(200),
+ dtls_ca_file VARCHAR(200),
+ dtls_ca_path VARCHAR(200),
+ dtls_setup ENUM('active','passive','actpass'),
+ srtp_tag_32 ENUM('yes','no'),
+ UNIQUE (id)
+);
+
+CREATE INDEX ps_endpoints_id ON ps_endpoints (id);
+
+CREATE TABLE ps_auths (
+ id VARCHAR(40) NOT NULL,
+ auth_type ENUM('md5','userpass'),
+ nonce_lifetime INTEGER,
+ md5_cred VARCHAR(40),
+ password VARCHAR(80),
+ realm VARCHAR(40),
+ username VARCHAR(40),
+ UNIQUE (id)
+);
+
+CREATE INDEX ps_auths_id ON ps_auths (id);
+
+CREATE TABLE ps_aors (
+ id VARCHAR(40) NOT NULL,
+ contact VARCHAR(40),
+ default_expiration INTEGER,
+ mailboxes VARCHAR(80),
+ max_contacts INTEGER,
+ minimum_expiration INTEGER,
+ remove_existing ENUM('yes','no'),
+ qualify_frequency INTEGER,
+ authenticate_qualify ENUM('yes','no'),
+ UNIQUE (id)
+);
+
+CREATE INDEX ps_aors_id ON ps_aors (id);
+
+CREATE TABLE ps_contacts (
+ id VARCHAR(40) NOT NULL,
+ uri VARCHAR(40),
+ expiration_time VARCHAR(40),
+ qualify_frequency INTEGER,
+ UNIQUE (id)
+);
+
+CREATE INDEX ps_contacts_id ON ps_contacts (id);
+
+CREATE TABLE ps_domain_aliases (
+ id VARCHAR(40) NOT NULL,
+ domain VARCHAR(80),
+ UNIQUE (id)
+);
+
+CREATE INDEX ps_domain_aliases_id ON ps_domain_aliases (id);
+
+CREATE TABLE ps_endpoint_id_ips (
+ id VARCHAR(40) NOT NULL,
+ endpoint VARCHAR(40),
+ `match` VARCHAR(80),
+ UNIQUE (id)
+);
+
+CREATE INDEX ps_endpoint_id_ips_id ON ps_endpoint_id_ips (id);
+
+UPDATE alembic_version SET version_num='43956d550a44' WHERE alembic_version.version_num = '4da0c5f79a9c';
+
+-- Running upgrade 43956d550a44 -> 581a4264e537
+
+CREATE TABLE extensions (
+ id BIGINT NOT NULL AUTO_INCREMENT,
+ context VARCHAR(40) NOT NULL,
+ exten VARCHAR(40) NOT NULL,
+ priority INTEGER NOT NULL,
+ app VARCHAR(40) NOT NULL,
+ appdata VARCHAR(256) NOT NULL,
+ PRIMARY KEY (id),
+ UNIQUE (context, exten, priority),
+ UNIQUE (id)
+);
+
+UPDATE alembic_version SET version_num='581a4264e537' WHERE alembic_version.version_num = '43956d550a44';
+
+-- Running upgrade 581a4264e537 -> 2fc7930b41b3
+
+CREATE TABLE ps_systems (
+ id VARCHAR(40) NOT NULL,
+ timer_t1 INTEGER,
+ timer_b INTEGER,
+ compact_headers ENUM('yes','no'),
+ threadpool_initial_size INTEGER,
+ threadpool_auto_increment INTEGER,
+ threadpool_idle_timeout INTEGER,
+ threadpool_max_size INTEGER,
+ UNIQUE (id)
+);
+
+CREATE INDEX ps_systems_id ON ps_systems (id);
+
+CREATE TABLE ps_globals (
+ id VARCHAR(40) NOT NULL,
+ max_forwards INTEGER,
+ user_agent VARCHAR(40),
+ default_outbound_endpoint VARCHAR(40),
+ UNIQUE (id)
+);
+
+CREATE INDEX ps_globals_id ON ps_globals (id);
+
+CREATE TABLE ps_transports (
+ id VARCHAR(40) NOT NULL,
+ async_operations INTEGER,
+ bind VARCHAR(40),
+ ca_list_file VARCHAR(200),
+ cert_file VARCHAR(200),
+ cipher VARCHAR(200),
+ domain VARCHAR(40),
+ external_media_address VARCHAR(40),
+ external_signaling_address VARCHAR(40),
+ external_signaling_port INTEGER,
+ method ENUM('default','unspecified','tlsv1','sslv2','sslv3','sslv23'),
+ local_net VARCHAR(40),
+ password VARCHAR(40),
+ priv_key_file VARCHAR(200),
+ protocol ENUM('udp','tcp','tls','ws','wss'),
+ require_client_cert ENUM('yes','no'),
+ verify_client ENUM('yes','no'),
+ verifiy_server ENUM('yes','no'),
+ tos ENUM('yes','no'),
+ cos ENUM('yes','no'),
+ UNIQUE (id)
+);
+
+CREATE INDEX ps_transports_id ON ps_transports (id);
+
+CREATE TABLE ps_registrations (
+ id VARCHAR(40) NOT NULL,
+ auth_rejection_permanent ENUM('yes','no'),
+ client_uri VARCHAR(40),
+ contact_user VARCHAR(40),
+ expiration INTEGER,
+ max_retries INTEGER,
+ outbound_auth VARCHAR(40),
+ outbound_proxy VARCHAR(40),
+ retry_interval INTEGER,
+ forbidden_retry_interval INTEGER,
+ server_uri VARCHAR(40),
+ transport VARCHAR(40),
+ support_path ENUM('yes','no'),
+ UNIQUE (id)
+);
+
+CREATE INDEX ps_registrations_id ON ps_registrations (id);
+
+ALTER TABLE ps_endpoints ADD COLUMN media_address VARCHAR(40);
+
+ALTER TABLE ps_endpoints ADD COLUMN redirect_method ENUM('user','uri_core','uri_pjsip');
+
+ALTER TABLE ps_endpoints ADD COLUMN set_var TEXT;
+
+ALTER TABLE ps_endpoints CHANGE mwi_fromuser mwi_from_user VARCHAR(40) NULL;
+
+ALTER TABLE ps_contacts ADD COLUMN outbound_proxy VARCHAR(40);
+
+ALTER TABLE ps_contacts ADD COLUMN path TEXT;
+
+ALTER TABLE ps_aors ADD COLUMN maximum_expiration INTEGER;
+
+ALTER TABLE ps_aors ADD COLUMN outbound_proxy VARCHAR(40);
+
+ALTER TABLE ps_aors ADD COLUMN support_path ENUM('yes','no');
+
+UPDATE alembic_version SET version_num='2fc7930b41b3' WHERE alembic_version.version_num = '581a4264e537';
+
+-- Running upgrade 2fc7930b41b3 -> 21e526ad3040
+
+ALTER TABLE ps_globals ADD COLUMN debug VARCHAR(40);
+
+UPDATE alembic_version SET version_num='21e526ad3040' WHERE alembic_version.version_num = '2fc7930b41b3';
+
+-- Running upgrade 21e526ad3040 -> 28887f25a46f
+
+CREATE TABLE queues (
+ name VARCHAR(128) NOT NULL,
+ musiconhold VARCHAR(128),
+ announce VARCHAR(128),
+ context VARCHAR(128),
+ timeout INTEGER,
+ ringinuse ENUM('yes','no'),
+ setinterfacevar ENUM('yes','no'),
+ setqueuevar ENUM('yes','no'),
+ setqueueentryvar ENUM('yes','no'),
+ monitor_format VARCHAR(8),
+ membermacro VARCHAR(512),
+ membergosub VARCHAR(512),
+ queue_youarenext VARCHAR(128),
+ queue_thereare VARCHAR(128),
+ queue_callswaiting VARCHAR(128),
+ queue_quantity1 VARCHAR(128),
+ queue_quantity2 VARCHAR(128),
+ queue_holdtime VARCHAR(128),
+ queue_minutes VARCHAR(128),
+ queue_minute VARCHAR(128),
+ queue_seconds VARCHAR(128),
+ queue_thankyou VARCHAR(128),
+ queue_callerannounce VARCHAR(128),
+ queue_reporthold VARCHAR(128),
+ announce_frequency INTEGER,
+ announce_to_first_user ENUM('yes','no'),
+ min_announce_frequency INTEGER,
+ announce_round_seconds INTEGER,
+ announce_holdtime VARCHAR(128),
+ announce_position VARCHAR(128),
+ announce_position_limit INTEGER,
+ periodic_announce VARCHAR(50),
+ periodic_announce_frequency INTEGER,
+ relative_periodic_announce ENUM('yes','no'),
+ random_periodic_announce ENUM('yes','no'),
+ retry INTEGER,
+ wrapuptime INTEGER,
+ penaltymemberslimit INTEGER,
+ autofill ENUM('yes','no'),
+ monitor_type VARCHAR(128),
+ autopause ENUM('yes','no','all'),
+ autopausedelay INTEGER,
+ autopausebusy ENUM('yes','no'),
+ autopauseunavail ENUM('yes','no'),
+ maxlen INTEGER,
+ servicelevel INTEGER,
+ strategy ENUM('ringall','leastrecent','fewestcalls','random','rrmemory','linear','wrandom','rrordered'),
+ joinempty VARCHAR(128),
+ leavewhenempty VARCHAR(128),
+ reportholdtime ENUM('yes','no'),
+ memberdelay INTEGER,
+ weight INTEGER,
+ timeoutrestart ENUM('yes','no'),
+ defaultrule VARCHAR(128),
+ timeoutpriority VARCHAR(128),
+ PRIMARY KEY (name)
+);
+
+CREATE TABLE queue_members (
+ queue_name VARCHAR(80) NOT NULL,
+ interface VARCHAR(80) NOT NULL,
+ uniqueid VARCHAR(80) NOT NULL,
+ membername VARCHAR(80),
+ state_interface VARCHAR(80),
+ penalty INTEGER,
+ paused INTEGER,
+ PRIMARY KEY (queue_name, interface)
+);
+
+UPDATE alembic_version SET version_num='28887f25a46f' WHERE alembic_version.version_num = '21e526ad3040';
+
+-- Running upgrade 28887f25a46f -> 4c573e7135bd
+
+ALTER TABLE ps_endpoints MODIFY tos_audio VARCHAR(10) NULL;
+
+ALTER TABLE ps_endpoints MODIFY tos_video VARCHAR(10) NULL;
+
+ALTER TABLE ps_endpoints DROP COLUMN cos_audio;
+
+ALTER TABLE ps_endpoints DROP COLUMN cos_video;
+
+ALTER TABLE ps_endpoints ADD COLUMN cos_audio INTEGER;
+
+ALTER TABLE ps_endpoints ADD COLUMN cos_video INTEGER;
+
+ALTER TABLE ps_transports MODIFY tos VARCHAR(10) NULL;
+
+ALTER TABLE ps_transports DROP COLUMN cos;
+
+ALTER TABLE ps_transports ADD COLUMN cos INTEGER;
+
+UPDATE alembic_version SET version_num='4c573e7135bd' WHERE alembic_version.version_num = '28887f25a46f';
+
+-- Running upgrade 4c573e7135bd -> 3855ee4e5f85
+
+ALTER TABLE ps_endpoints ADD COLUMN message_context VARCHAR(40);
+
+ALTER TABLE ps_contacts ADD COLUMN user_agent VARCHAR(40);
+
+UPDATE alembic_version SET version_num='3855ee4e5f85' WHERE alembic_version.version_num = '4c573e7135bd';
+
+-- Running upgrade 3855ee4e5f85 -> e96a0b8071c
+
+ALTER TABLE ps_globals MODIFY user_agent VARCHAR(255) NULL;
+
+ALTER TABLE ps_contacts MODIFY id VARCHAR(255) NULL;
+
+ALTER TABLE ps_contacts MODIFY uri VARCHAR(255) NULL;
+
+ALTER TABLE ps_contacts MODIFY user_agent VARCHAR(255) NULL;
+
+ALTER TABLE ps_registrations MODIFY client_uri VARCHAR(255) NULL;
+
+ALTER TABLE ps_registrations MODIFY server_uri VARCHAR(255) NULL;
+
+UPDATE alembic_version SET version_num='e96a0b8071c' WHERE alembic_version.version_num = '3855ee4e5f85';
+
+-- Running upgrade e96a0b8071c -> c6d929b23a8
+
+CREATE TABLE ps_subscription_persistence (
+ id VARCHAR(40) NOT NULL,
+ packet VARCHAR(2048),
+ src_name VARCHAR(128),
+ src_port INTEGER,
+ transport_key VARCHAR(64),
+ local_name VARCHAR(128),
+ local_port INTEGER,
+ cseq INTEGER,
+ tag VARCHAR(128),
+ endpoint VARCHAR(40),
+ expires INTEGER,
+ UNIQUE (id)
+);
+
+CREATE INDEX ps_subscription_persistence_id ON ps_subscription_persistence (id);
+
+UPDATE alembic_version SET version_num='c6d929b23a8' WHERE alembic_version.version_num = 'e96a0b8071c';
+
+-- Running upgrade c6d929b23a8 -> 51f8cb66540e
+
+ALTER TABLE ps_endpoints ADD COLUMN force_avp ENUM('yes','no');
+
+ALTER TABLE ps_endpoints ADD COLUMN media_use_received_transport ENUM('yes','no');
+
+UPDATE alembic_version SET version_num='51f8cb66540e' WHERE alembic_version.version_num = 'c6d929b23a8';
+
+-- Running upgrade 51f8cb66540e -> 1d50859ed02e
+
+ALTER TABLE ps_endpoints ADD COLUMN accountcode VARCHAR(20);
+
+UPDATE alembic_version SET version_num='1d50859ed02e' WHERE alembic_version.version_num = '51f8cb66540e';
+
+-- Running upgrade 1d50859ed02e -> 1758e8bbf6b
+
+ALTER TABLE sippeers MODIFY useragent VARCHAR(255) NULL;
+
+UPDATE alembic_version SET version_num='1758e8bbf6b' WHERE alembic_version.version_num = '1d50859ed02e';
+
+-- Running upgrade 1758e8bbf6b -> 5139253c0423
+
+ALTER TABLE queue_members DROP COLUMN uniqueid;
+
+ALTER TABLE queue_members ADD COLUMN uniqueid INTEGER NOT NULL;
+
+ALTER TABLE queue_members ADD UNIQUE (uniqueid);
+
+ALTER TABLE queue_members MODIFY uniqueid INTEGER NOT NULL AUTO_INCREMENT;
+
+UPDATE alembic_version SET version_num='5139253c0423' WHERE alembic_version.version_num = '1758e8bbf6b';
+
+-- Running upgrade 5139253c0423 -> d39508cb8d8
+
+CREATE TABLE queue_rules (
+ rule_name VARCHAR(80) NOT NULL,
+ time VARCHAR(32) NOT NULL,
+ min_penalty VARCHAR(32) NOT NULL,
+ max_penalty VARCHAR(32) NOT NULL
+);
+
+UPDATE alembic_version SET version_num='d39508cb8d8' WHERE alembic_version.version_num = '5139253c0423';
+
+-- Running upgrade d39508cb8d8 -> 5950038a6ead
+
+ALTER TABLE ps_transports CHANGE verifiy_server verify_server ENUM('yes','no') NULL;
+
+UPDATE alembic_version SET version_num='5950038a6ead' WHERE alembic_version.version_num = 'd39508cb8d8';
+
+-- Running upgrade 5950038a6ead -> 10aedae86a32
+
+ALTER TABLE sippeers MODIFY directmedia ENUM('yes','no','nonat','update','outgoing') NULL;
+
+UPDATE alembic_version SET version_num='10aedae86a32' WHERE alembic_version.version_num = '5950038a6ead';
+
+-- Running upgrade 10aedae86a32 -> eb88a14f2a
+
+ALTER TABLE ps_endpoints ADD COLUMN media_encryption_optimistic ENUM('yes','no');
+
+UPDATE alembic_version SET version_num='eb88a14f2a' WHERE alembic_version.version_num = '10aedae86a32';
+
+-- Running upgrade eb88a14f2a -> 371a3bf4143e
+
+ALTER TABLE ps_endpoints ADD COLUMN user_eq_phone ENUM('yes','no');
+
+UPDATE alembic_version SET version_num='371a3bf4143e' WHERE alembic_version.version_num = 'eb88a14f2a';
+
+-- Running upgrade 371a3bf4143e -> 45e3f47c6c44
+
+ALTER TABLE ps_globals ADD COLUMN endpoint_identifier_order VARCHAR(40);
+
+UPDATE alembic_version SET version_num='45e3f47c6c44' WHERE alembic_version.version_num = '371a3bf4143e';
+
+-- Running upgrade 45e3f47c6c44 -> 23530d604b96
+
+ALTER TABLE ps_endpoints ADD COLUMN rpid_immediate ENUM('yes','no');
+
+UPDATE alembic_version SET version_num='23530d604b96' WHERE alembic_version.version_num = '45e3f47c6c44';
+
+-- Running upgrade 23530d604b96 -> 31cd4f4891ec
+
+ALTER TABLE ps_endpoints MODIFY dtmf_mode ENUM('rfc4733','inband','info','auto') NULL;
+
+UPDATE alembic_version SET version_num='31cd4f4891ec' WHERE alembic_version.version_num = '23530d604b96';
+
+-- Running upgrade 31cd4f4891ec -> 461d7d691209
+
+ALTER TABLE ps_aors ADD COLUMN qualify_timeout INTEGER;
+
+ALTER TABLE ps_contacts ADD COLUMN qualify_timeout INTEGER;
+
+UPDATE alembic_version SET version_num='461d7d691209' WHERE alembic_version.version_num = '31cd4f4891ec';
+
+-- Running upgrade 461d7d691209 -> a541e0b5e89
+
+ALTER TABLE ps_globals ADD COLUMN max_initial_qualify_time INTEGER;
+
+UPDATE alembic_version SET version_num='a541e0b5e89' WHERE alembic_version.version_num = '461d7d691209';
+
+-- Running upgrade a541e0b5e89 -> 28b8e71e541f
+
+ALTER TABLE ps_endpoints ADD COLUMN g726_non_standard ENUM('yes','no');
+
+UPDATE alembic_version SET version_num='28b8e71e541f' WHERE alembic_version.version_num = 'a541e0b5e89';
+
+-- Running upgrade 28b8e71e541f -> 498357a710ae
+
+ALTER TABLE ps_endpoints ADD COLUMN rtp_keepalive INTEGER;
+
+UPDATE alembic_version SET version_num='498357a710ae' WHERE alembic_version.version_num = '28b8e71e541f';
+
+-- Running upgrade 498357a710ae -> 26f10cadc157
+
+ALTER TABLE ps_endpoints ADD COLUMN rtp_timeout INTEGER;
+
+ALTER TABLE ps_endpoints ADD COLUMN rtp_timeout_hold INTEGER;
+
+UPDATE alembic_version SET version_num='26f10cadc157' WHERE alembic_version.version_num = '498357a710ae';
+
+-- Running upgrade 26f10cadc157 -> 154177371065
+
+ALTER TABLE ps_globals ADD COLUMN default_from_user VARCHAR(80);
+
+UPDATE alembic_version SET version_num='154177371065' WHERE alembic_version.version_num = '26f10cadc157';
+
+-- Running upgrade 154177371065 -> 28ce1e718f05
+
+ALTER TABLE ps_registrations ADD COLUMN fatal_retry_interval INTEGER;
+
+UPDATE alembic_version SET version_num='28ce1e718f05' WHERE alembic_version.version_num = '154177371065';
+
+-- Running upgrade 28ce1e718f05 -> 189a235b3fd7
+
+ALTER TABLE ps_globals ADD COLUMN keep_alive_interval INTEGER;
+
+UPDATE alembic_version SET version_num='189a235b3fd7' WHERE alembic_version.version_num = '28ce1e718f05';
+
+-- Running upgrade 189a235b3fd7 -> 2d078ec071b7
+
+ALTER TABLE ps_aors MODIFY contact VARCHAR(255) NULL;
+
+UPDATE alembic_version SET version_num='2d078ec071b7' WHERE alembic_version.version_num = '189a235b3fd7';
+
+-- Running upgrade 2d078ec071b7 -> 26d7f3bf0fa5
+
+ALTER TABLE ps_endpoints ADD COLUMN bind_rtp_to_media_address ENUM('yes','no');
+
+UPDATE alembic_version SET version_num='26d7f3bf0fa5' WHERE alembic_version.version_num = '2d078ec071b7';
+
+-- Running upgrade 26d7f3bf0fa5 -> 136885b81223
+
+ALTER TABLE ps_globals ADD COLUMN regcontext VARCHAR(80);
+
+UPDATE alembic_version SET version_num='136885b81223' WHERE alembic_version.version_num = '26d7f3bf0fa5';
+
+-- Running upgrade 136885b81223 -> 423f34ad36e2
+
+ALTER TABLE ps_aors MODIFY qualify_timeout FLOAT NULL;
+
+ALTER TABLE ps_contacts MODIFY qualify_timeout FLOAT NULL;
+
+UPDATE alembic_version SET version_num='423f34ad36e2' WHERE alembic_version.version_num = '136885b81223';
+
+-- Running upgrade 423f34ad36e2 -> dbc44d5a908
+
+ALTER TABLE ps_systems ADD COLUMN disable_tcp_switch ENUM('yes','no');
+
+ALTER TABLE ps_registrations ADD COLUMN line ENUM('yes','no');
+
+ALTER TABLE ps_registrations ADD COLUMN endpoint VARCHAR(40);
+
+UPDATE alembic_version SET version_num='dbc44d5a908' WHERE alembic_version.version_num = '423f34ad36e2';
+
+-- Running upgrade dbc44d5a908 -> 3bcc0b5bc2c9
+
+ALTER TABLE ps_transports ADD COLUMN allow_reload ENUM('yes','no');
+
+UPDATE alembic_version SET version_num='3bcc0b5bc2c9' WHERE alembic_version.version_num = 'dbc44d5a908';
+
+-- Running upgrade 3bcc0b5bc2c9 -> 5813202e92be
+
+ALTER TABLE ps_globals ADD COLUMN contact_expiration_check_interval INTEGER;
+
+UPDATE alembic_version SET version_num='5813202e92be' WHERE alembic_version.version_num = '3bcc0b5bc2c9';
+
+-- Running upgrade 5813202e92be -> 1c688d9a003c
+
+ALTER TABLE ps_globals ADD COLUMN default_voicemail_extension VARCHAR(40);
+
+ALTER TABLE ps_aors ADD COLUMN voicemail_extension VARCHAR(40);
+
+ALTER TABLE ps_endpoints ADD COLUMN voicemail_extension VARCHAR(40);
+
+ALTER TABLE ps_endpoints ADD COLUMN mwi_subscribe_replaces_unsolicited INTEGER;
+
+UPDATE alembic_version SET version_num='1c688d9a003c' WHERE alembic_version.version_num = '5813202e92be';
+
+-- Running upgrade 1c688d9a003c -> 8d478ab86e29
+
+ALTER TABLE ps_globals ADD COLUMN disable_multi_domain ENUM('yes','no');
+
+UPDATE alembic_version SET version_num='8d478ab86e29' WHERE alembic_version.version_num = '1c688d9a003c';
+
+-- Running upgrade 8d478ab86e29 -> 65eb22eb195
+
+ALTER TABLE ps_globals ADD COLUMN unidentified_request_count INTEGER;
+
+ALTER TABLE ps_globals ADD COLUMN unidentified_request_period INTEGER;
+
+ALTER TABLE ps_globals ADD COLUMN unidentified_request_prune_interval INTEGER;
+
+ALTER TABLE ps_globals ADD COLUMN default_realm VARCHAR(40);
+
+UPDATE alembic_version SET version_num='65eb22eb195' WHERE alembic_version.version_num = '8d478ab86e29';
+
+-- Running upgrade 65eb22eb195 -> 81b01a191a46
+
+ALTER TABLE ps_contacts ADD COLUMN reg_server VARCHAR(20);
+
+ALTER TABLE ps_contacts ADD CONSTRAINT ps_contacts_uq UNIQUE (id, reg_server);
+
+UPDATE alembic_version SET version_num='81b01a191a46' WHERE alembic_version.version_num = '65eb22eb195';
+
+-- Running upgrade 81b01a191a46 -> 6be31516058d
+
+ALTER TABLE ps_contacts ADD COLUMN authenticate_qualify ENUM('yes','no');
+
+UPDATE alembic_version SET version_num='6be31516058d' WHERE alembic_version.version_num = '81b01a191a46';
+
+-- Running upgrade 6be31516058d -> bca7113d796f
+
+ALTER TABLE ps_endpoints ADD COLUMN deny VARCHAR(95);
+
+ALTER TABLE ps_endpoints ADD COLUMN permit VARCHAR(95);
+
+ALTER TABLE ps_endpoints ADD COLUMN acl VARCHAR(40);
+
+ALTER TABLE ps_endpoints ADD COLUMN contact_deny VARCHAR(95);
+
+ALTER TABLE ps_endpoints ADD COLUMN contact_permit VARCHAR(95);
+
+ALTER TABLE ps_endpoints ADD COLUMN contact_acl VARCHAR(40);
+
+UPDATE alembic_version SET version_num='bca7113d796f' WHERE alembic_version.version_num = '6be31516058d';
+
+-- Running upgrade bca7113d796f -> a845e4d8ade8
+
+ALTER TABLE ps_contacts ADD COLUMN via_addr VARCHAR(40);
+
+ALTER TABLE ps_contacts ADD COLUMN via_port INTEGER;
+
+ALTER TABLE ps_contacts ADD COLUMN call_id VARCHAR(255);
+
+UPDATE alembic_version SET version_num='a845e4d8ade8' WHERE alembic_version.version_num = 'bca7113d796f';
+
+-- Running upgrade a845e4d8ade8 -> ef7efc2d3964
+
+ALTER TABLE ps_contacts ADD COLUMN endpoint VARCHAR(40);
+
+ALTER TABLE ps_contacts MODIFY expiration_time BIGINT NULL;
+
+CREATE INDEX ps_contacts_qualifyfreq_exp ON ps_contacts (qualify_frequency, expiration_time);
+
+CREATE INDEX ps_aors_qualifyfreq_contact ON ps_aors (qualify_frequency, contact);
+
+UPDATE alembic_version SET version_num='ef7efc2d3964' WHERE alembic_version.version_num = 'a845e4d8ade8';
+
+-- Running upgrade ef7efc2d3964 -> 9deac0ae4717
+
+ALTER TABLE ps_endpoints ADD COLUMN subscribe_context VARCHAR(40);
+
+UPDATE alembic_version SET version_num='9deac0ae4717' WHERE alembic_version.version_num = 'ef7efc2d3964';
+
+-- Running upgrade 9deac0ae4717 -> 4a6c67fa9b7a
+
+ALTER TABLE ps_endpoints ADD COLUMN fax_detect_timeout INTEGER;
+
+UPDATE alembic_version SET version_num='4a6c67fa9b7a' WHERE alembic_version.version_num = '9deac0ae4717';
+
+-- Running upgrade 4a6c67fa9b7a -> c7a44a5a0851
+
+ALTER TABLE ps_globals ADD COLUMN mwi_tps_queue_high INTEGER;
+
+ALTER TABLE ps_globals ADD COLUMN mwi_tps_queue_low INTEGER;
+
+ALTER TABLE ps_globals ADD COLUMN mwi_disable_initial_unsolicited ENUM('yes','no');
+
+UPDATE alembic_version SET version_num='c7a44a5a0851' WHERE alembic_version.version_num = '4a6c67fa9b7a';
+
+-- Running upgrade c7a44a5a0851 -> 3772f8f828da
+
+ALTER TABLE ps_endpoints MODIFY identify_by ENUM('username','auth_username') NULL;
+
+UPDATE alembic_version SET version_num='3772f8f828da' WHERE alembic_version.version_num = 'c7a44a5a0851';
+
+-- Running upgrade 3772f8f828da -> 4e2493ef32e6
+
+ALTER TABLE ps_endpoints ADD COLUMN contact_user VARCHAR(80);
+
+UPDATE alembic_version SET version_num='4e2493ef32e6' WHERE alembic_version.version_num = '3772f8f828da';
+
+-- Running upgrade 4e2493ef32e6 -> a6ef36f1309
+
+ALTER TABLE ps_globals ADD COLUMN ignore_uri_user_options ENUM('yes','no');
+
+UPDATE alembic_version SET version_num='a6ef36f1309' WHERE alembic_version.version_num = '4e2493ef32e6';
+
+-- Running upgrade a6ef36f1309 -> 4468b4a91372
+
+ALTER TABLE ps_endpoints ADD COLUMN asymmetric_rtp_codec ENUM('yes','no');
+
+UPDATE alembic_version SET version_num='4468b4a91372' WHERE alembic_version.version_num = 'a6ef36f1309';
+
+-- Running upgrade 4468b4a91372 -> 28ab27a7826d
+
+ALTER TABLE ps_endpoint_id_ips ADD COLUMN srv_lookups ENUM('yes','no');
+
+UPDATE alembic_version SET version_num='28ab27a7826d' WHERE alembic_version.version_num = '4468b4a91372';
+
+-- Running upgrade 28ab27a7826d -> 465e70e8c337
+
+ALTER TABLE ps_endpoint_id_ips ADD COLUMN match_header VARCHAR(255);
+
+UPDATE alembic_version SET version_num='465e70e8c337' WHERE alembic_version.version_num = '28ab27a7826d';
+
+-- Running upgrade 465e70e8c337 -> 15db7b91a97a
+
+ALTER TABLE ps_endpoints ADD COLUMN rtcp_mux ENUM('yes','no');
+
+UPDATE alembic_version SET version_num='15db7b91a97a' WHERE alembic_version.version_num = '465e70e8c337';
+
+-- Running upgrade 15db7b91a97a -> f638dbe2eb23
+
+ALTER TABLE ps_transports ADD COLUMN symmetric_transport ENUM('yes','no');
+
+ALTER TABLE ps_subscription_persistence ADD COLUMN contact_uri VARCHAR(256);
+
+UPDATE alembic_version SET version_num='f638dbe2eb23' WHERE alembic_version.version_num = '15db7b91a97a';
+
+-- Running upgrade f638dbe2eb23 -> 8fce4c573e15
+
+ALTER TABLE ps_endpoints ADD COLUMN allow_overlap ENUM('yes','no');
+
+UPDATE alembic_version SET version_num='8fce4c573e15' WHERE alembic_version.version_num = 'f638dbe2eb23';
+
diff --git a/contrib/realtime/mysql/mysql_voicemail.sql b/contrib/realtime/mysql/mysql_voicemail.sql
new file mode 100644
index 000000000..1ee25c283
--- /dev/null
+++ b/contrib/realtime/mysql/mysql_voicemail.sql
@@ -0,0 +1,34 @@
+CREATE TABLE alembic_version (
+ version_num VARCHAR(32) NOT NULL
+);
+
+-- Running upgrade -> a2e9769475e
+
+CREATE TABLE voicemail_messages (
+ dir VARCHAR(255) NOT NULL,
+ msgnum INTEGER NOT NULL,
+ context VARCHAR(80),
+ macrocontext VARCHAR(80),
+ callerid VARCHAR(80),
+ origtime INTEGER,
+ duration INTEGER,
+ recording BLOB,
+ flag VARCHAR(30),
+ category VARCHAR(30),
+ mailboxuser VARCHAR(30),
+ mailboxcontext VARCHAR(30),
+ msg_id VARCHAR(40)
+);
+
+ALTER TABLE voicemail_messages ADD CONSTRAINT voicemail_messages_dir_msgnum PRIMARY KEY (dir, msgnum);
+
+CREATE INDEX voicemail_messages_dir ON voicemail_messages (dir);
+
+INSERT INTO alembic_version (version_num) VALUES ('a2e9769475e');
+
+-- Running upgrade a2e9769475e -> 39428242f7f5
+
+ALTER TABLE voicemail_messages MODIFY recording BLOB(4294967295) NULL;
+
+UPDATE alembic_version SET version_num='39428242f7f5' WHERE alembic_version.version_num = 'a2e9769475e';
+
diff --git a/contrib/realtime/oracle/oracle_cdr.sql b/contrib/realtime/oracle/oracle_cdr.sql
new file mode 100644
index 000000000..81d599ae6
--- /dev/null
+++ b/contrib/realtime/oracle/oracle_cdr.sql
@@ -0,0 +1,38 @@
+CREATE TABLE alembic_version (
+ version_num VARCHAR2(32 CHAR) NOT NULL
+)
+
+/
+
+-- Running upgrade -> 210693f3123d
+
+CREATE TABLE cdr (
+ accountcode VARCHAR2(20 CHAR),
+ src VARCHAR2(80 CHAR),
+ dst VARCHAR2(80 CHAR),
+ dcontext VARCHAR2(80 CHAR),
+ clid VARCHAR2(80 CHAR),
+ channel VARCHAR2(80 CHAR),
+ dstchannel VARCHAR2(80 CHAR),
+ lastapp VARCHAR2(80 CHAR),
+ lastdata VARCHAR2(80 CHAR),
+ "start" DATE,
+ answer DATE,
+ end DATE,
+ duration INTEGER,
+ billsec INTEGER,
+ disposition VARCHAR2(45 CHAR),
+ amaflags VARCHAR2(45 CHAR),
+ userfield VARCHAR2(256 CHAR),
+ uniqueid VARCHAR2(150 CHAR),
+ linkedid VARCHAR2(150 CHAR),
+ peeraccount VARCHAR2(20 CHAR),
+ sequence INTEGER
+)
+
+/
+
+INSERT INTO alembic_version (version_num) VALUES ('210693f3123d')
+
+/
+
diff --git a/contrib/realtime/oracle/oracle_config.sql b/contrib/realtime/oracle/oracle_config.sql
new file mode 100644
index 000000000..f34edd452
--- /dev/null
+++ b/contrib/realtime/oracle/oracle_config.sql
@@ -0,0 +1,1621 @@
+CREATE TABLE alembic_version (
+ version_num VARCHAR2(32 CHAR) NOT NULL
+)
+
+/
+
+-- Running upgrade -> 4da0c5f79a9c
+
+CREATE TABLE sippeers (
+ id INTEGER NOT NULL,
+ name VARCHAR2(40 CHAR) NOT NULL,
+ ipaddr VARCHAR2(45 CHAR),
+ port INTEGER,
+ regseconds INTEGER,
+ defaultuser VARCHAR2(40 CHAR),
+ fullcontact VARCHAR2(80 CHAR),
+ regserver VARCHAR2(20 CHAR),
+ useragent VARCHAR2(20 CHAR),
+ lastms INTEGER,
+ host VARCHAR2(40 CHAR),
+ type VARCHAR(6 CHAR),
+ context VARCHAR2(40 CHAR),
+ permit VARCHAR2(95 CHAR),
+ deny VARCHAR2(95 CHAR),
+ secret VARCHAR2(40 CHAR),
+ md5secret VARCHAR2(40 CHAR),
+ remotesecret VARCHAR2(40 CHAR),
+ transport VARCHAR(7 CHAR),
+ dtmfmode VARCHAR(9 CHAR),
+ directmedia VARCHAR(6 CHAR),
+ nat VARCHAR2(29 CHAR),
+ callgroup VARCHAR2(40 CHAR),
+ pickupgroup VARCHAR2(40 CHAR),
+ language VARCHAR2(40 CHAR),
+ disallow VARCHAR2(200 CHAR),
+ allow VARCHAR2(200 CHAR),
+ insecure VARCHAR2(40 CHAR),
+ trustrpid VARCHAR(3 CHAR),
+ progressinband VARCHAR(5 CHAR),
+ promiscredir VARCHAR(3 CHAR),
+ useclientcode VARCHAR(3 CHAR),
+ accountcode VARCHAR2(40 CHAR),
+ setvar VARCHAR2(200 CHAR),
+ callerid VARCHAR2(40 CHAR),
+ amaflags VARCHAR2(40 CHAR),
+ callcounter VARCHAR(3 CHAR),
+ busylevel INTEGER,
+ allowoverlap VARCHAR(3 CHAR),
+ allowsubscribe VARCHAR(3 CHAR),
+ videosupport VARCHAR(3 CHAR),
+ maxcallbitrate INTEGER,
+ rfc2833compensate VARCHAR(3 CHAR),
+ mailbox VARCHAR2(40 CHAR),
+ "session-timers" VARCHAR(9 CHAR),
+ "session-expires" INTEGER,
+ "session-minse" INTEGER,
+ "session-refresher" VARCHAR(3 CHAR),
+ t38pt_usertpsource VARCHAR2(40 CHAR),
+ regexten VARCHAR2(40 CHAR),
+ fromdomain VARCHAR2(40 CHAR),
+ fromuser VARCHAR2(40 CHAR),
+ qualify VARCHAR2(40 CHAR),
+ defaultip VARCHAR2(45 CHAR),
+ rtptimeout INTEGER,
+ rtpholdtimeout INTEGER,
+ sendrpid VARCHAR(3 CHAR),
+ outboundproxy VARCHAR2(40 CHAR),
+ callbackextension VARCHAR2(40 CHAR),
+ timert1 INTEGER,
+ timerb INTEGER,
+ qualifyfreq INTEGER,
+ constantssrc VARCHAR(3 CHAR),
+ contactpermit VARCHAR2(95 CHAR),
+ contactdeny VARCHAR2(95 CHAR),
+ usereqphone VARCHAR(3 CHAR),
+ textsupport VARCHAR(3 CHAR),
+ faxdetect VARCHAR(3 CHAR),
+ buggymwi VARCHAR(3 CHAR),
+ auth VARCHAR2(40 CHAR),
+ fullname VARCHAR2(40 CHAR),
+ trunkname VARCHAR2(40 CHAR),
+ cid_number VARCHAR2(40 CHAR),
+ callingpres VARCHAR(21 CHAR),
+ mohinterpret VARCHAR2(40 CHAR),
+ mohsuggest VARCHAR2(40 CHAR),
+ parkinglot VARCHAR2(40 CHAR),
+ hasvoicemail VARCHAR(3 CHAR),
+ subscribemwi VARCHAR(3 CHAR),
+ vmexten VARCHAR2(40 CHAR),
+ autoframing VARCHAR(3 CHAR),
+ rtpkeepalive INTEGER,
+ "call-limit" INTEGER,
+ g726nonstandard VARCHAR(3 CHAR),
+ ignoresdpversion VARCHAR(3 CHAR),
+ allowtransfer VARCHAR(3 CHAR),
+ dynamic VARCHAR(3 CHAR),
+ path VARCHAR2(256 CHAR),
+ supportpath VARCHAR(3 CHAR),
+ PRIMARY KEY (id),
+ UNIQUE (name),
+ CONSTRAINT type_values CHECK (type IN ('friend', 'user', 'peer')),
+ CONSTRAINT sip_transport_values CHECK (transport IN ('udp', 'tcp', 'tls', 'ws', 'wss', 'udp,tcp', 'tcp,udp')),
+ CONSTRAINT sip_dtmfmode_values CHECK (dtmfmode IN ('rfc2833', 'info', 'shortinfo', 'inband', 'auto')),
+ CONSTRAINT sip_directmedia_values CHECK (directmedia IN ('yes', 'no', 'nonat', 'update')),
+ CONSTRAINT yes_no_values CHECK (trustrpid IN ('yes', 'no')),
+ CONSTRAINT sip_progressinband_values CHECK (progressinband IN ('yes', 'no', 'never')),
+ CONSTRAINT yes_no_values CHECK (promiscredir IN ('yes', 'no')),
+ CONSTRAINT yes_no_values CHECK (useclientcode IN ('yes', 'no')),
+ CONSTRAINT yes_no_values CHECK (callcounter IN ('yes', 'no')),
+ CONSTRAINT yes_no_values CHECK (allowoverlap IN ('yes', 'no')),
+ CONSTRAINT yes_no_values CHECK (allowsubscribe IN ('yes', 'no')),
+ CONSTRAINT yes_no_values CHECK (videosupport IN ('yes', 'no')),
+ CONSTRAINT yes_no_values CHECK (rfc2833compensate IN ('yes', 'no')),
+ CONSTRAINT sip_session_timers_values CHECK ("session-timers" IN ('accept', 'refuse', 'originate')),
+ CONSTRAINT sip_session_refresher_values CHECK ("session-refresher" IN ('uac', 'uas')),
+ CONSTRAINT yes_no_values CHECK (sendrpid IN ('yes', 'no')),
+ CONSTRAINT yes_no_values CHECK (constantssrc IN ('yes', 'no')),
+ CONSTRAINT yes_no_values CHECK (usereqphone IN ('yes', 'no')),
+ CONSTRAINT yes_no_values CHECK (textsupport IN ('yes', 'no')),
+ CONSTRAINT yes_no_values CHECK (faxdetect IN ('yes', 'no')),
+ CONSTRAINT yes_no_values CHECK (buggymwi IN ('yes', 'no')),
+ CONSTRAINT sip_callingpres_values CHECK (callingpres IN ('allowed_not_screened', 'allowed_passed_screen', 'allowed_failed_screen', 'allowed', 'prohib_not_screened', 'prohib_passed_screen', 'prohib_failed_screen', 'prohib')),
+ CONSTRAINT yes_no_values CHECK (hasvoicemail IN ('yes', 'no')),
+ CONSTRAINT yes_no_values CHECK (subscribemwi IN ('yes', 'no')),
+ CONSTRAINT yes_no_values CHECK (autoframing IN ('yes', 'no')),
+ CONSTRAINT yes_no_values CHECK (g726nonstandard IN ('yes', 'no')),
+ CONSTRAINT yes_no_values CHECK (ignoresdpversion IN ('yes', 'no')),
+ CONSTRAINT yes_no_values CHECK (allowtransfer IN ('yes', 'no')),
+ CONSTRAINT yes_no_values CHECK (dynamic IN ('yes', 'no')),
+ CONSTRAINT yes_no_values CHECK (supportpath IN ('yes', 'no'))
+)
+
+/
+
+CREATE INDEX sippeers_name ON sippeers (name)
+
+/
+
+CREATE INDEX sippeers_name_host ON sippeers (name, host)
+
+/
+
+CREATE INDEX sippeers_ipaddr_port ON sippeers (ipaddr, port)
+
+/
+
+CREATE INDEX sippeers_host_port ON sippeers (host, port)
+
+/
+
+CREATE TABLE iaxfriends (
+ id INTEGER NOT NULL,
+ name VARCHAR2(40 CHAR) NOT NULL,
+ type VARCHAR(6 CHAR),
+ username VARCHAR2(40 CHAR),
+ mailbox VARCHAR2(40 CHAR),
+ secret VARCHAR2(40 CHAR),
+ dbsecret VARCHAR2(40 CHAR),
+ context VARCHAR2(40 CHAR),
+ regcontext VARCHAR2(40 CHAR),
+ host VARCHAR2(40 CHAR),
+ ipaddr VARCHAR2(40 CHAR),
+ port INTEGER,
+ defaultip VARCHAR2(20 CHAR),
+ sourceaddress VARCHAR2(20 CHAR),
+ mask VARCHAR2(20 CHAR),
+ regexten VARCHAR2(40 CHAR),
+ regseconds INTEGER,
+ accountcode VARCHAR2(20 CHAR),
+ mohinterpret VARCHAR2(20 CHAR),
+ mohsuggest VARCHAR2(20 CHAR),
+ inkeys VARCHAR2(40 CHAR),
+ outkeys VARCHAR2(40 CHAR),
+ language VARCHAR2(10 CHAR),
+ callerid VARCHAR2(100 CHAR),
+ cid_number VARCHAR2(40 CHAR),
+ sendani VARCHAR(3 CHAR),
+ fullname VARCHAR2(40 CHAR),
+ trunk VARCHAR(3 CHAR),
+ auth VARCHAR2(20 CHAR),
+ maxauthreq INTEGER,
+ requirecalltoken VARCHAR(4 CHAR),
+ encryption VARCHAR(6 CHAR),
+ transfer VARCHAR(9 CHAR),
+ jitterbuffer VARCHAR(3 CHAR),
+ forcejitterbuffer VARCHAR(3 CHAR),
+ disallow VARCHAR2(200 CHAR),
+ allow VARCHAR2(200 CHAR),
+ codecpriority VARCHAR2(40 CHAR),
+ qualify VARCHAR2(10 CHAR),
+ qualifysmoothing VARCHAR(3 CHAR),
+ qualifyfreqok VARCHAR2(10 CHAR),
+ qualifyfreqnotok VARCHAR2(10 CHAR),
+ timezone VARCHAR2(20 CHAR),
+ adsi VARCHAR(3 CHAR),
+ amaflags VARCHAR2(20 CHAR),
+ setvar VARCHAR2(200 CHAR),
+ PRIMARY KEY (id),
+ UNIQUE (name),
+ CONSTRAINT type_values CHECK (type IN ('friend', 'user', 'peer')),
+ CONSTRAINT yes_no_values CHECK (sendani IN ('yes', 'no')),
+ CONSTRAINT yes_no_values CHECK (trunk IN ('yes', 'no')),
+ CONSTRAINT iax_requirecalltoken_values CHECK (requirecalltoken IN ('yes', 'no', 'auto')),
+ CONSTRAINT iax_encryption_values CHECK (encryption IN ('yes', 'no', 'aes128')),
+ CONSTRAINT iax_transfer_values CHECK (transfer IN ('yes', 'no', 'mediaonly')),
+ CONSTRAINT yes_no_values CHECK (jitterbuffer IN ('yes', 'no')),
+ CONSTRAINT yes_no_values CHECK (forcejitterbuffer IN ('yes', 'no')),
+ CONSTRAINT yes_no_values CHECK (qualifysmoothing IN ('yes', 'no')),
+ CONSTRAINT yes_no_values CHECK (adsi IN ('yes', 'no'))
+)
+
+/
+
+CREATE INDEX iaxfriends_name ON iaxfriends (name)
+
+/
+
+CREATE INDEX iaxfriends_name_host ON iaxfriends (name, host)
+
+/
+
+CREATE INDEX iaxfriends_name_ipaddr_port ON iaxfriends (name, ipaddr, port)
+
+/
+
+CREATE INDEX iaxfriends_ipaddr_port ON iaxfriends (ipaddr, port)
+
+/
+
+CREATE INDEX iaxfriends_host_port ON iaxfriends (host, port)
+
+/
+
+CREATE TABLE voicemail (
+ uniqueid INTEGER NOT NULL,
+ context VARCHAR2(80 CHAR) NOT NULL,
+ mailbox VARCHAR2(80 CHAR) NOT NULL,
+ password VARCHAR2(80 CHAR) NOT NULL,
+ fullname VARCHAR2(80 CHAR),
+ alias VARCHAR2(80 CHAR),
+ email VARCHAR2(80 CHAR),
+ pager VARCHAR2(80 CHAR),
+ attach VARCHAR(3 CHAR),
+ attachfmt VARCHAR2(10 CHAR),
+ serveremail VARCHAR2(80 CHAR),
+ language VARCHAR2(20 CHAR),
+ tz VARCHAR2(30 CHAR),
+ deletevoicemail VARCHAR(3 CHAR),
+ saycid VARCHAR(3 CHAR),
+ sendvoicemail VARCHAR(3 CHAR),
+ review VARCHAR(3 CHAR),
+ tempgreetwarn VARCHAR(3 CHAR),
+ operator VARCHAR(3 CHAR),
+ envelope VARCHAR(3 CHAR),
+ sayduration INTEGER,
+ forcename VARCHAR(3 CHAR),
+ forcegreetings VARCHAR(3 CHAR),
+ callback VARCHAR2(80 CHAR),
+ dialout VARCHAR2(80 CHAR),
+ exitcontext VARCHAR2(80 CHAR),
+ maxmsg INTEGER,
+ volgain NUMERIC(5, 2),
+ imapuser VARCHAR2(80 CHAR),
+ imappassword VARCHAR2(80 CHAR),
+ imapserver VARCHAR2(80 CHAR),
+ imapport VARCHAR2(8 CHAR),
+ imapflags VARCHAR2(80 CHAR),
+ stamp DATE,
+ PRIMARY KEY (uniqueid),
+ CONSTRAINT yes_no_values CHECK (attach IN ('yes', 'no')),
+ CONSTRAINT yes_no_values CHECK (deletevoicemail IN ('yes', 'no')),
+ CONSTRAINT yes_no_values CHECK (saycid IN ('yes', 'no')),
+ CONSTRAINT yes_no_values CHECK (sendvoicemail IN ('yes', 'no')),
+ CONSTRAINT yes_no_values CHECK (review IN ('yes', 'no')),
+ CONSTRAINT yes_no_values CHECK (tempgreetwarn IN ('yes', 'no')),
+ CONSTRAINT yes_no_values CHECK (operator IN ('yes', 'no')),
+ CONSTRAINT yes_no_values CHECK (envelope IN ('yes', 'no')),
+ CONSTRAINT yes_no_values CHECK (forcename IN ('yes', 'no')),
+ CONSTRAINT yes_no_values CHECK (forcegreetings IN ('yes', 'no'))
+)
+
+/
+
+CREATE INDEX voicemail_mailbox ON voicemail (mailbox)
+
+/
+
+CREATE INDEX voicemail_context ON voicemail (context)
+
+/
+
+CREATE INDEX voicemail_mailbox_context ON voicemail (mailbox, context)
+
+/
+
+CREATE INDEX voicemail_imapuser ON voicemail (imapuser)
+
+/
+
+CREATE TABLE meetme (
+ bookid INTEGER NOT NULL,
+ confno VARCHAR2(80 CHAR) NOT NULL,
+ starttime DATE,
+ endtime DATE,
+ pin VARCHAR2(20 CHAR),
+ adminpin VARCHAR2(20 CHAR),
+ opts VARCHAR2(20 CHAR),
+ adminopts VARCHAR2(20 CHAR),
+ recordingfilename VARCHAR2(80 CHAR),
+ recordingformat VARCHAR2(10 CHAR),
+ maxusers INTEGER,
+ members INTEGER NOT NULL,
+ PRIMARY KEY (bookid)
+)
+
+/
+
+CREATE INDEX meetme_confno_start_end ON meetme (confno, starttime, endtime)
+
+/
+
+CREATE TABLE musiconhold (
+ name VARCHAR2(80 CHAR) NOT NULL,
+ "mode" VARCHAR(10 CHAR),
+ directory VARCHAR2(255 CHAR),
+ application VARCHAR2(255 CHAR),
+ digit VARCHAR2(1 CHAR),
+ sort VARCHAR2(10 CHAR),
+ format VARCHAR2(10 CHAR),
+ stamp DATE,
+ PRIMARY KEY (name),
+ CONSTRAINT moh_mode_values CHECK ("mode" IN ('custom', 'files', 'mp3nb', 'quietmp3nb', 'quietmp3'))
+)
+
+/
+
+INSERT INTO alembic_version (version_num) VALUES ('4da0c5f79a9c')
+
+/
+
+-- Running upgrade 4da0c5f79a9c -> 43956d550a44
+
+CREATE TABLE ps_endpoints (
+ id VARCHAR2(40 CHAR) NOT NULL,
+ transport VARCHAR2(40 CHAR),
+ aors VARCHAR2(200 CHAR),
+ auth VARCHAR2(40 CHAR),
+ context VARCHAR2(40 CHAR),
+ disallow VARCHAR2(200 CHAR),
+ allow VARCHAR2(200 CHAR),
+ direct_media VARCHAR(3 CHAR),
+ connected_line_method VARCHAR(8 CHAR),
+ direct_media_method VARCHAR(8 CHAR),
+ direct_media_glare_mitigation VARCHAR(8 CHAR),
+ disable_direct_media_on_nat VARCHAR(3 CHAR),
+ dtmf_mode VARCHAR(7 CHAR),
+ external_media_address VARCHAR2(40 CHAR),
+ force_rport VARCHAR(3 CHAR),
+ ice_support VARCHAR(3 CHAR),
+ identify_by VARCHAR(8 CHAR),
+ mailboxes VARCHAR2(40 CHAR),
+ moh_suggest VARCHAR2(40 CHAR),
+ outbound_auth VARCHAR2(40 CHAR),
+ outbound_proxy VARCHAR2(40 CHAR),
+ rewrite_contact VARCHAR(3 CHAR),
+ rtp_ipv6 VARCHAR(3 CHAR),
+ rtp_symmetric VARCHAR(3 CHAR),
+ send_diversion VARCHAR(3 CHAR),
+ send_pai VARCHAR(3 CHAR),
+ send_rpid VARCHAR(3 CHAR),
+ timers_min_se INTEGER,
+ timers VARCHAR(8 CHAR),
+ timers_sess_expires INTEGER,
+ callerid VARCHAR2(40 CHAR),
+ callerid_privacy VARCHAR(23 CHAR),
+ callerid_tag VARCHAR2(40 CHAR),
+ "100rel" VARCHAR(8 CHAR),
+ aggregate_mwi VARCHAR(3 CHAR),
+ trust_id_inbound VARCHAR(3 CHAR),
+ trust_id_outbound VARCHAR(3 CHAR),
+ use_ptime VARCHAR(3 CHAR),
+ use_avpf VARCHAR(3 CHAR),
+ media_encryption VARCHAR(4 CHAR),
+ inband_progress VARCHAR(3 CHAR),
+ call_group VARCHAR2(40 CHAR),
+ pickup_group VARCHAR2(40 CHAR),
+ named_call_group VARCHAR2(40 CHAR),
+ named_pickup_group VARCHAR2(40 CHAR),
+ device_state_busy_at INTEGER,
+ fax_detect VARCHAR(3 CHAR),
+ t38_udptl VARCHAR(3 CHAR),
+ t38_udptl_ec VARCHAR(10 CHAR),
+ t38_udptl_maxdatagram INTEGER,
+ t38_udptl_nat VARCHAR(3 CHAR),
+ t38_udptl_ipv6 VARCHAR(3 CHAR),
+ tone_zone VARCHAR2(40 CHAR),
+ language VARCHAR2(40 CHAR),
+ one_touch_recording VARCHAR(3 CHAR),
+ record_on_feature VARCHAR2(40 CHAR),
+ record_off_feature VARCHAR2(40 CHAR),
+ rtp_engine VARCHAR2(40 CHAR),
+ allow_transfer VARCHAR(3 CHAR),
+ allow_subscribe VARCHAR(3 CHAR),
+ sdp_owner VARCHAR2(40 CHAR),
+ sdp_session VARCHAR2(40 CHAR),
+ tos_audio INTEGER,
+ tos_video INTEGER,
+ cos_audio INTEGER,
+ cos_video INTEGER,
+ sub_min_expiry INTEGER,
+ from_domain VARCHAR2(40 CHAR),
+ from_user VARCHAR2(40 CHAR),
+ mwi_fromuser VARCHAR2(40 CHAR),
+ dtls_verify VARCHAR2(40 CHAR),
+ dtls_rekey VARCHAR2(40 CHAR),
+ dtls_cert_file VARCHAR2(200 CHAR),
+ dtls_private_key VARCHAR2(200 CHAR),
+ dtls_cipher VARCHAR2(200 CHAR),
+ dtls_ca_file VARCHAR2(200 CHAR),
+ dtls_ca_path VARCHAR2(200 CHAR),
+ dtls_setup VARCHAR(7 CHAR),
+ srtp_tag_32 VARCHAR(3 CHAR),
+ UNIQUE (id),
+ CONSTRAINT yesno_values CHECK (direct_media IN ('yes', 'no')),
+ CONSTRAINT pjsip_connected_line_method_values CHECK (connected_line_method IN ('invite', 'reinvite', 'update')),
+ CONSTRAINT pjsip_connected_line_method_values CHECK (direct_media_method IN ('invite', 'reinvite', 'update')),
+ CONSTRAINT pjsip_direct_media_glare_mitigation_values CHECK (direct_media_glare_mitigation IN ('none', 'outgoing', 'incoming')),
+ CONSTRAINT yesno_values CHECK (disable_direct_media_on_nat IN ('yes', 'no')),
+ CONSTRAINT pjsip_dtmf_mode_values CHECK (dtmf_mode IN ('rfc4733', 'inband', 'info')),
+ CONSTRAINT yesno_values CHECK (force_rport IN ('yes', 'no')),
+ CONSTRAINT yesno_values CHECK (ice_support IN ('yes', 'no')),
+ CONSTRAINT pjsip_identify_by_values CHECK (identify_by IN ('username')),
+ CONSTRAINT yesno_values CHECK (rewrite_contact IN ('yes', 'no')),
+ CONSTRAINT yesno_values CHECK (rtp_ipv6 IN ('yes', 'no')),
+ CONSTRAINT yesno_values CHECK (rtp_symmetric IN ('yes', 'no')),
+ CONSTRAINT yesno_values CHECK (send_diversion IN ('yes', 'no')),
+ CONSTRAINT yesno_values CHECK (send_pai IN ('yes', 'no')),
+ CONSTRAINT yesno_values CHECK (send_rpid IN ('yes', 'no')),
+ CONSTRAINT pjsip_timer_values CHECK (timers IN ('forced', 'no', 'required', 'yes')),
+ CONSTRAINT pjsip_cid_privacy_values CHECK (callerid_privacy IN ('allowed_not_screened', 'allowed_passed_screened', 'allowed_failed_screened', 'allowed', 'prohib_not_screened', 'prohib_passed_screened', 'prohib_failed_screened', 'prohib', 'unavailable')),
+ CONSTRAINT pjsip_100rel_values CHECK ("100rel" IN ('no', 'required', 'yes')),
+ CONSTRAINT yesno_values CHECK (aggregate_mwi IN ('yes', 'no')),
+ CONSTRAINT yesno_values CHECK (trust_id_inbound IN ('yes', 'no')),
+ CONSTRAINT yesno_values CHECK (trust_id_outbound IN ('yes', 'no')),
+ CONSTRAINT yesno_values CHECK (use_ptime IN ('yes', 'no')),
+ CONSTRAINT yesno_values CHECK (use_avpf IN ('yes', 'no')),
+ CONSTRAINT pjsip_media_encryption_values CHECK (media_encryption IN ('no', 'sdes', 'dtls')),
+ CONSTRAINT yesno_values CHECK (inband_progress IN ('yes', 'no')),
+ CONSTRAINT yesno_values CHECK (fax_detect IN ('yes', 'no')),
+ CONSTRAINT yesno_values CHECK (t38_udptl IN ('yes', 'no')),
+ CONSTRAINT pjsip_t38udptl_ec_values CHECK (t38_udptl_ec IN ('none', 'fec', 'redundancy')),
+ CONSTRAINT yesno_values CHECK (t38_udptl_nat IN ('yes', 'no')),
+ CONSTRAINT yesno_values CHECK (t38_udptl_ipv6 IN ('yes', 'no')),
+ CONSTRAINT yesno_values CHECK (one_touch_recording IN ('yes', 'no')),
+ CONSTRAINT yesno_values CHECK (allow_transfer IN ('yes', 'no')),
+ CONSTRAINT yesno_values CHECK (allow_subscribe IN ('yes', 'no')),
+ CONSTRAINT pjsip_dtls_setup_values CHECK (dtls_setup IN ('active', 'passive', 'actpass')),
+ CONSTRAINT yesno_values CHECK (srtp_tag_32 IN ('yes', 'no'))
+)
+
+/
+
+CREATE INDEX ps_endpoints_id ON ps_endpoints (id)
+
+/
+
+CREATE TABLE ps_auths (
+ id VARCHAR2(40 CHAR) NOT NULL,
+ auth_type VARCHAR(8 CHAR),
+ nonce_lifetime INTEGER,
+ md5_cred VARCHAR2(40 CHAR),
+ password VARCHAR2(80 CHAR),
+ realm VARCHAR2(40 CHAR),
+ username VARCHAR2(40 CHAR),
+ UNIQUE (id),
+ CONSTRAINT pjsip_auth_type_values CHECK (auth_type IN ('md5', 'userpass'))
+)
+
+/
+
+CREATE INDEX ps_auths_id ON ps_auths (id)
+
+/
+
+CREATE TABLE ps_aors (
+ id VARCHAR2(40 CHAR) NOT NULL,
+ contact VARCHAR2(40 CHAR),
+ default_expiration INTEGER,
+ mailboxes VARCHAR2(80 CHAR),
+ max_contacts INTEGER,
+ minimum_expiration INTEGER,
+ remove_existing VARCHAR(3 CHAR),
+ qualify_frequency INTEGER,
+ authenticate_qualify VARCHAR(3 CHAR),
+ UNIQUE (id),
+ CONSTRAINT yesno_values CHECK (remove_existing IN ('yes', 'no')),
+ CONSTRAINT yesno_values CHECK (authenticate_qualify IN ('yes', 'no'))
+)
+
+/
+
+CREATE INDEX ps_aors_id ON ps_aors (id)
+
+/
+
+CREATE TABLE ps_contacts (
+ id VARCHAR2(40 CHAR) NOT NULL,
+ uri VARCHAR2(40 CHAR),
+ expiration_time VARCHAR2(40 CHAR),
+ qualify_frequency INTEGER,
+ UNIQUE (id)
+)
+
+/
+
+CREATE INDEX ps_contacts_id ON ps_contacts (id)
+
+/
+
+CREATE TABLE ps_domain_aliases (
+ id VARCHAR2(40 CHAR) NOT NULL,
+ domain VARCHAR2(80 CHAR),
+ UNIQUE (id)
+)
+
+/
+
+CREATE INDEX ps_domain_aliases_id ON ps_domain_aliases (id)
+
+/
+
+CREATE TABLE ps_endpoint_id_ips (
+ id VARCHAR2(40 CHAR) NOT NULL,
+ endpoint VARCHAR2(40 CHAR),
+ match VARCHAR2(80 CHAR),
+ UNIQUE (id)
+)
+
+/
+
+CREATE INDEX ps_endpoint_id_ips_id ON ps_endpoint_id_ips (id)
+
+/
+
+UPDATE alembic_version SET version_num='43956d550a44' WHERE alembic_version.version_num = '4da0c5f79a9c'
+
+/
+
+-- Running upgrade 43956d550a44 -> 581a4264e537
+
+CREATE TABLE extensions (
+ id NUMBER(19) NOT NULL,
+ context VARCHAR2(40 CHAR) NOT NULL,
+ exten VARCHAR2(40 CHAR) NOT NULL,
+ priority INTEGER NOT NULL,
+ app VARCHAR2(40 CHAR) NOT NULL,
+ appdata VARCHAR2(256 CHAR) NOT NULL,
+ PRIMARY KEY (id),
+ UNIQUE (context, exten, priority),
+ UNIQUE (id)
+)
+
+/
+
+UPDATE alembic_version SET version_num='581a4264e537' WHERE alembic_version.version_num = '43956d550a44'
+
+/
+
+-- Running upgrade 581a4264e537 -> 2fc7930b41b3
+
+CREATE TABLE ps_systems (
+ id VARCHAR2(40 CHAR) NOT NULL,
+ timer_t1 INTEGER,
+ timer_b INTEGER,
+ compact_headers VARCHAR(3 CHAR),
+ threadpool_initial_size INTEGER,
+ threadpool_auto_increment INTEGER,
+ threadpool_idle_timeout INTEGER,
+ threadpool_max_size INTEGER,
+ UNIQUE (id),
+ CONSTRAINT yesno_values CHECK (compact_headers IN ('yes', 'no'))
+)
+
+/
+
+CREATE INDEX ps_systems_id ON ps_systems (id)
+
+/
+
+CREATE TABLE ps_globals (
+ id VARCHAR2(40 CHAR) NOT NULL,
+ max_forwards INTEGER,
+ user_agent VARCHAR2(40 CHAR),
+ default_outbound_endpoint VARCHAR2(40 CHAR),
+ UNIQUE (id)
+)
+
+/
+
+CREATE INDEX ps_globals_id ON ps_globals (id)
+
+/
+
+CREATE TABLE ps_transports (
+ id VARCHAR2(40 CHAR) NOT NULL,
+ async_operations INTEGER,
+ bind VARCHAR2(40 CHAR),
+ ca_list_file VARCHAR2(200 CHAR),
+ cert_file VARCHAR2(200 CHAR),
+ cipher VARCHAR2(200 CHAR),
+ domain VARCHAR2(40 CHAR),
+ external_media_address VARCHAR2(40 CHAR),
+ external_signaling_address VARCHAR2(40 CHAR),
+ external_signaling_port INTEGER,
+ method VARCHAR(11 CHAR),
+ local_net VARCHAR2(40 CHAR),
+ password VARCHAR2(40 CHAR),
+ priv_key_file VARCHAR2(200 CHAR),
+ protocol VARCHAR(3 CHAR),
+ require_client_cert VARCHAR(3 CHAR),
+ verify_client VARCHAR(3 CHAR),
+ verifiy_server VARCHAR(3 CHAR),
+ tos VARCHAR(3 CHAR),
+ cos VARCHAR(3 CHAR),
+ UNIQUE (id),
+ CONSTRAINT pjsip_transport_method_values CHECK (method IN ('default', 'unspecified', 'tlsv1', 'sslv2', 'sslv3', 'sslv23')),
+ CONSTRAINT pjsip_transport_protocol_values CHECK (protocol IN ('udp', 'tcp', 'tls', 'ws', 'wss')),
+ CONSTRAINT yesno_values CHECK (require_client_cert IN ('yes', 'no')),
+ CONSTRAINT yesno_values CHECK (verify_client IN ('yes', 'no')),
+ CONSTRAINT yesno_values CHECK (verifiy_server IN ('yes', 'no')),
+ CONSTRAINT yesno_values CHECK (tos IN ('yes', 'no')),
+ CONSTRAINT yesno_values CHECK (cos IN ('yes', 'no'))
+)
+
+/
+
+CREATE INDEX ps_transports_id ON ps_transports (id)
+
+/
+
+CREATE TABLE ps_registrations (
+ id VARCHAR2(40 CHAR) NOT NULL,
+ auth_rejection_permanent VARCHAR(3 CHAR),
+ client_uri VARCHAR2(40 CHAR),
+ contact_user VARCHAR2(40 CHAR),
+ expiration INTEGER,
+ max_retries INTEGER,
+ outbound_auth VARCHAR2(40 CHAR),
+ outbound_proxy VARCHAR2(40 CHAR),
+ retry_interval INTEGER,
+ forbidden_retry_interval INTEGER,
+ server_uri VARCHAR2(40 CHAR),
+ transport VARCHAR2(40 CHAR),
+ support_path VARCHAR(3 CHAR),
+ UNIQUE (id),
+ CONSTRAINT yesno_values CHECK (auth_rejection_permanent IN ('yes', 'no')),
+ CONSTRAINT yesno_values CHECK (support_path IN ('yes', 'no'))
+)
+
+/
+
+CREATE INDEX ps_registrations_id ON ps_registrations (id)
+
+/
+
+ALTER TABLE ps_endpoints ADD media_address VARCHAR2(40 CHAR)
+
+/
+
+ALTER TABLE ps_endpoints ADD redirect_method VARCHAR(9 CHAR)
+
+/
+
+ALTER TABLE ps_endpoints ADD CONSTRAINT pjsip_redirect_method_values CHECK (redirect_method IN ('user', 'uri_core', 'uri_pjsip'))
+
+/
+
+ALTER TABLE ps_endpoints ADD set_var CLOB
+
+/
+
+ALTER TABLE ps_endpoints RENAME COLUMN mwi_fromuser TO mwi_from_user
+
+/
+
+ALTER TABLE ps_contacts ADD outbound_proxy VARCHAR2(40 CHAR)
+
+/
+
+ALTER TABLE ps_contacts ADD path CLOB
+
+/
+
+ALTER TABLE ps_aors ADD maximum_expiration INTEGER
+
+/
+
+ALTER TABLE ps_aors ADD outbound_proxy VARCHAR2(40 CHAR)
+
+/
+
+ALTER TABLE ps_aors ADD support_path VARCHAR(3 CHAR)
+
+/
+
+ALTER TABLE ps_aors ADD CONSTRAINT yesno_values CHECK (support_path IN ('yes', 'no'))
+
+/
+
+UPDATE alembic_version SET version_num='2fc7930b41b3' WHERE alembic_version.version_num = '581a4264e537'
+
+/
+
+-- Running upgrade 2fc7930b41b3 -> 21e526ad3040
+
+ALTER TABLE ps_globals ADD debug VARCHAR2(40 CHAR)
+
+/
+
+UPDATE alembic_version SET version_num='21e526ad3040' WHERE alembic_version.version_num = '2fc7930b41b3'
+
+/
+
+-- Running upgrade 21e526ad3040 -> 28887f25a46f
+
+CREATE TABLE queues (
+ name VARCHAR2(128 CHAR) NOT NULL,
+ musiconhold VARCHAR2(128 CHAR),
+ announce VARCHAR2(128 CHAR),
+ context VARCHAR2(128 CHAR),
+ timeout INTEGER,
+ ringinuse VARCHAR(3 CHAR),
+ setinterfacevar VARCHAR(3 CHAR),
+ setqueuevar VARCHAR(3 CHAR),
+ setqueueentryvar VARCHAR(3 CHAR),
+ monitor_format VARCHAR2(8 CHAR),
+ membermacro VARCHAR2(512 CHAR),
+ membergosub VARCHAR2(512 CHAR),
+ queue_youarenext VARCHAR2(128 CHAR),
+ queue_thereare VARCHAR2(128 CHAR),
+ queue_callswaiting VARCHAR2(128 CHAR),
+ queue_quantity1 VARCHAR2(128 CHAR),
+ queue_quantity2 VARCHAR2(128 CHAR),
+ queue_holdtime VARCHAR2(128 CHAR),
+ queue_minutes VARCHAR2(128 CHAR),
+ queue_minute VARCHAR2(128 CHAR),
+ queue_seconds VARCHAR2(128 CHAR),
+ queue_thankyou VARCHAR2(128 CHAR),
+ queue_callerannounce VARCHAR2(128 CHAR),
+ queue_reporthold VARCHAR2(128 CHAR),
+ announce_frequency INTEGER,
+ announce_to_first_user VARCHAR(3 CHAR),
+ min_announce_frequency INTEGER,
+ announce_round_seconds INTEGER,
+ announce_holdtime VARCHAR2(128 CHAR),
+ announce_position VARCHAR2(128 CHAR),
+ announce_position_limit INTEGER,
+ periodic_announce VARCHAR2(50 CHAR),
+ periodic_announce_frequency INTEGER,
+ relative_periodic_announce VARCHAR(3 CHAR),
+ random_periodic_announce VARCHAR(3 CHAR),
+ retry INTEGER,
+ wrapuptime INTEGER,
+ penaltymemberslimit INTEGER,
+ autofill VARCHAR(3 CHAR),
+ monitor_type VARCHAR2(128 CHAR),
+ autopause VARCHAR(3 CHAR),
+ autopausedelay INTEGER,
+ autopausebusy VARCHAR(3 CHAR),
+ autopauseunavail VARCHAR(3 CHAR),
+ maxlen INTEGER,
+ servicelevel INTEGER,
+ strategy VARCHAR(11 CHAR),
+ joinempty VARCHAR2(128 CHAR),
+ leavewhenempty VARCHAR2(128 CHAR),
+ reportholdtime VARCHAR(3 CHAR),
+ memberdelay INTEGER,
+ weight INTEGER,
+ timeoutrestart VARCHAR(3 CHAR),
+ defaultrule VARCHAR2(128 CHAR),
+ timeoutpriority VARCHAR2(128 CHAR),
+ PRIMARY KEY (name),
+ CONSTRAINT yesno_values CHECK (ringinuse IN ('yes', 'no')),
+ CONSTRAINT yesno_values CHECK (setinterfacevar IN ('yes', 'no')),
+ CONSTRAINT yesno_values CHECK (setqueuevar IN ('yes', 'no')),
+ CONSTRAINT yesno_values CHECK (setqueueentryvar IN ('yes', 'no')),
+ CONSTRAINT yesno_values CHECK (announce_to_first_user IN ('yes', 'no')),
+ CONSTRAINT yesno_values CHECK (relative_periodic_announce IN ('yes', 'no')),
+ CONSTRAINT yesno_values CHECK (random_periodic_announce IN ('yes', 'no')),
+ CONSTRAINT yesno_values CHECK (autofill IN ('yes', 'no')),
+ CONSTRAINT queue_autopause_values CHECK (autopause IN ('yes', 'no', 'all')),
+ CONSTRAINT yesno_values CHECK (autopausebusy IN ('yes', 'no')),
+ CONSTRAINT yesno_values CHECK (autopauseunavail IN ('yes', 'no')),
+ CONSTRAINT queue_strategy_values CHECK (strategy IN ('ringall', 'leastrecent', 'fewestcalls', 'random', 'rrmemory', 'linear', 'wrandom', 'rrordered')),
+ CONSTRAINT yesno_values CHECK (reportholdtime IN ('yes', 'no')),
+ CONSTRAINT yesno_values CHECK (timeoutrestart IN ('yes', 'no'))
+)
+
+/
+
+CREATE TABLE queue_members (
+ queue_name VARCHAR2(80 CHAR) NOT NULL,
+ interface VARCHAR2(80 CHAR) NOT NULL,
+ uniqueid VARCHAR2(80 CHAR) NOT NULL,
+ membername VARCHAR2(80 CHAR),
+ state_interface VARCHAR2(80 CHAR),
+ penalty INTEGER,
+ paused INTEGER,
+ PRIMARY KEY (queue_name, interface)
+)
+
+/
+
+UPDATE alembic_version SET version_num='28887f25a46f' WHERE alembic_version.version_num = '21e526ad3040'
+
+/
+
+-- Running upgrade 28887f25a46f -> 4c573e7135bd
+
+ALTER TABLE ps_endpoints MODIFY tos_audio VARCHAR2(10 CHAR)
+
+/
+
+ALTER TABLE ps_endpoints MODIFY tos_video VARCHAR2(10 CHAR)
+
+/
+
+ALTER TABLE ps_endpoints DROP COLUMN cos_audio
+
+/
+
+ALTER TABLE ps_endpoints DROP COLUMN cos_video
+
+/
+
+ALTER TABLE ps_endpoints ADD cos_audio INTEGER
+
+/
+
+ALTER TABLE ps_endpoints ADD cos_video INTEGER
+
+/
+
+ALTER TABLE ps_transports MODIFY tos VARCHAR2(10 CHAR)
+
+/
+
+ALTER TABLE ps_transports DROP COLUMN cos
+
+/
+
+ALTER TABLE ps_transports ADD cos INTEGER
+
+/
+
+UPDATE alembic_version SET version_num='4c573e7135bd' WHERE alembic_version.version_num = '28887f25a46f'
+
+/
+
+-- Running upgrade 4c573e7135bd -> 3855ee4e5f85
+
+ALTER TABLE ps_endpoints ADD message_context VARCHAR2(40 CHAR)
+
+/
+
+ALTER TABLE ps_contacts ADD user_agent VARCHAR2(40 CHAR)
+
+/
+
+UPDATE alembic_version SET version_num='3855ee4e5f85' WHERE alembic_version.version_num = '4c573e7135bd'
+
+/
+
+-- Running upgrade 3855ee4e5f85 -> e96a0b8071c
+
+ALTER TABLE ps_globals MODIFY user_agent VARCHAR2(255 CHAR)
+
+/
+
+ALTER TABLE ps_contacts MODIFY id VARCHAR2(255 CHAR)
+
+/
+
+ALTER TABLE ps_contacts MODIFY uri VARCHAR2(255 CHAR)
+
+/
+
+ALTER TABLE ps_contacts MODIFY user_agent VARCHAR2(255 CHAR)
+
+/
+
+ALTER TABLE ps_registrations MODIFY client_uri VARCHAR2(255 CHAR)
+
+/
+
+ALTER TABLE ps_registrations MODIFY server_uri VARCHAR2(255 CHAR)
+
+/
+
+UPDATE alembic_version SET version_num='e96a0b8071c' WHERE alembic_version.version_num = '3855ee4e5f85'
+
+/
+
+-- Running upgrade e96a0b8071c -> c6d929b23a8
+
+CREATE TABLE ps_subscription_persistence (
+ id VARCHAR2(40 CHAR) NOT NULL,
+ packet VARCHAR2(2048 CHAR),
+ src_name VARCHAR2(128 CHAR),
+ src_port INTEGER,
+ transport_key VARCHAR2(64 CHAR),
+ local_name VARCHAR2(128 CHAR),
+ local_port INTEGER,
+ cseq INTEGER,
+ tag VARCHAR2(128 CHAR),
+ endpoint VARCHAR2(40 CHAR),
+ expires INTEGER,
+ UNIQUE (id)
+)
+
+/
+
+CREATE INDEX ps_subscription_persistence_id ON ps_subscription_persistence (id)
+
+/
+
+UPDATE alembic_version SET version_num='c6d929b23a8' WHERE alembic_version.version_num = 'e96a0b8071c'
+
+/
+
+-- Running upgrade c6d929b23a8 -> 51f8cb66540e
+
+ALTER TABLE ps_endpoints ADD force_avp VARCHAR(3 CHAR)
+
+/
+
+ALTER TABLE ps_endpoints ADD CONSTRAINT yesno_values CHECK (force_avp IN ('yes', 'no'))
+
+/
+
+ALTER TABLE ps_endpoints ADD media_use_received_transport VARCHAR(3 CHAR)
+
+/
+
+ALTER TABLE ps_endpoints ADD CONSTRAINT yesno_values CHECK (media_use_received_transport IN ('yes', 'no'))
+
+/
+
+UPDATE alembic_version SET version_num='51f8cb66540e' WHERE alembic_version.version_num = 'c6d929b23a8'
+
+/
+
+-- Running upgrade 51f8cb66540e -> 1d50859ed02e
+
+ALTER TABLE ps_endpoints ADD accountcode VARCHAR2(20 CHAR)
+
+/
+
+UPDATE alembic_version SET version_num='1d50859ed02e' WHERE alembic_version.version_num = '51f8cb66540e'
+
+/
+
+-- Running upgrade 1d50859ed02e -> 1758e8bbf6b
+
+ALTER TABLE sippeers MODIFY useragent VARCHAR2(255 CHAR)
+
+/
+
+UPDATE alembic_version SET version_num='1758e8bbf6b' WHERE alembic_version.version_num = '1d50859ed02e'
+
+/
+
+-- Running upgrade 1758e8bbf6b -> 5139253c0423
+
+ALTER TABLE queue_members DROP COLUMN uniqueid
+
+/
+
+ALTER TABLE queue_members ADD uniqueid INTEGER NOT NULL
+
+/
+
+ALTER TABLE queue_members ADD UNIQUE (uniqueid)
+
+/
+
+UPDATE alembic_version SET version_num='5139253c0423' WHERE alembic_version.version_num = '1758e8bbf6b'
+
+/
+
+-- Running upgrade 5139253c0423 -> d39508cb8d8
+
+CREATE TABLE queue_rules (
+ rule_name VARCHAR2(80 CHAR) NOT NULL,
+ time VARCHAR2(32 CHAR) NOT NULL,
+ min_penalty VARCHAR2(32 CHAR) NOT NULL,
+ max_penalty VARCHAR2(32 CHAR) NOT NULL
+)
+
+/
+
+UPDATE alembic_version SET version_num='d39508cb8d8' WHERE alembic_version.version_num = '5139253c0423'
+
+/
+
+-- Running upgrade d39508cb8d8 -> 5950038a6ead
+
+ALTER TABLE ps_transports MODIFY verifiy_server VARCHAR(3 CHAR)
+
+/
+
+ALTER TABLE ps_transports RENAME COLUMN verifiy_server TO verify_server
+
+/
+
+ALTER TABLE ps_transports ADD CONSTRAINT yesno_values CHECK (verifiy_server IN ('yes', 'no'))
+
+/
+
+UPDATE alembic_version SET version_num='5950038a6ead' WHERE alembic_version.version_num = 'd39508cb8d8'
+
+/
+
+-- Running upgrade 5950038a6ead -> 10aedae86a32
+
+ALTER TABLE sippeers DROP CONSTRAINT sip_directmedia_values
+
+/
+
+ALTER TABLE sippeers MODIFY directmedia VARCHAR(8 CHAR)
+
+/
+
+ALTER TABLE sippeers ADD CONSTRAINT sip_directmedia_values_v2 CHECK (directmedia IN ('yes', 'no', 'nonat', 'update', 'outgoing'))
+
+/
+
+UPDATE alembic_version SET version_num='10aedae86a32' WHERE alembic_version.version_num = '5950038a6ead'
+
+/
+
+-- Running upgrade 10aedae86a32 -> eb88a14f2a
+
+ALTER TABLE ps_endpoints ADD media_encryption_optimistic VARCHAR(3 CHAR)
+
+/
+
+ALTER TABLE ps_endpoints ADD CONSTRAINT yesno_values CHECK (media_encryption_optimistic IN ('yes', 'no'))
+
+/
+
+UPDATE alembic_version SET version_num='eb88a14f2a' WHERE alembic_version.version_num = '10aedae86a32'
+
+/
+
+-- Running upgrade eb88a14f2a -> 371a3bf4143e
+
+ALTER TABLE ps_endpoints ADD user_eq_phone VARCHAR(3 CHAR)
+
+/
+
+ALTER TABLE ps_endpoints ADD CONSTRAINT yesno_values CHECK (user_eq_phone IN ('yes', 'no'))
+
+/
+
+UPDATE alembic_version SET version_num='371a3bf4143e' WHERE alembic_version.version_num = 'eb88a14f2a'
+
+/
+
+-- Running upgrade 371a3bf4143e -> 45e3f47c6c44
+
+ALTER TABLE ps_globals ADD endpoint_identifier_order VARCHAR2(40 CHAR)
+
+/
+
+UPDATE alembic_version SET version_num='45e3f47c6c44' WHERE alembic_version.version_num = '371a3bf4143e'
+
+/
+
+-- Running upgrade 45e3f47c6c44 -> 23530d604b96
+
+ALTER TABLE ps_endpoints ADD rpid_immediate VARCHAR(3 CHAR)
+
+/
+
+ALTER TABLE ps_endpoints ADD CONSTRAINT yesno_values CHECK (rpid_immediate IN ('yes', 'no'))
+
+/
+
+UPDATE alembic_version SET version_num='23530d604b96' WHERE alembic_version.version_num = '45e3f47c6c44'
+
+/
+
+-- Running upgrade 23530d604b96 -> 31cd4f4891ec
+
+ALTER TABLE ps_endpoints DROP CONSTRAINT pjsip_dtmf_mode_values
+
+/
+
+ALTER TABLE ps_endpoints MODIFY dtmf_mode VARCHAR(7 CHAR)
+
+/
+
+ALTER TABLE ps_endpoints ADD CONSTRAINT pjsip_dtmf_mode_values_v2 CHECK (dtmf_mode IN ('rfc4733', 'inband', 'info', 'auto'))
+
+/
+
+UPDATE alembic_version SET version_num='31cd4f4891ec' WHERE alembic_version.version_num = '23530d604b96'
+
+/
+
+-- Running upgrade 31cd4f4891ec -> 461d7d691209
+
+ALTER TABLE ps_aors ADD qualify_timeout INTEGER
+
+/
+
+ALTER TABLE ps_contacts ADD qualify_timeout INTEGER
+
+/
+
+UPDATE alembic_version SET version_num='461d7d691209' WHERE alembic_version.version_num = '31cd4f4891ec'
+
+/
+
+-- Running upgrade 461d7d691209 -> a541e0b5e89
+
+ALTER TABLE ps_globals ADD max_initial_qualify_time INTEGER
+
+/
+
+UPDATE alembic_version SET version_num='a541e0b5e89' WHERE alembic_version.version_num = '461d7d691209'
+
+/
+
+-- Running upgrade a541e0b5e89 -> 28b8e71e541f
+
+ALTER TABLE ps_endpoints ADD g726_non_standard VARCHAR(3 CHAR)
+
+/
+
+ALTER TABLE ps_endpoints ADD CONSTRAINT yesno_values CHECK (g726_non_standard IN ('yes', 'no'))
+
+/
+
+UPDATE alembic_version SET version_num='28b8e71e541f' WHERE alembic_version.version_num = 'a541e0b5e89'
+
+/
+
+-- Running upgrade 28b8e71e541f -> 498357a710ae
+
+ALTER TABLE ps_endpoints ADD rtp_keepalive INTEGER
+
+/
+
+UPDATE alembic_version SET version_num='498357a710ae' WHERE alembic_version.version_num = '28b8e71e541f'
+
+/
+
+-- Running upgrade 498357a710ae -> 26f10cadc157
+
+ALTER TABLE ps_endpoints ADD rtp_timeout INTEGER
+
+/
+
+ALTER TABLE ps_endpoints ADD rtp_timeout_hold INTEGER
+
+/
+
+UPDATE alembic_version SET version_num='26f10cadc157' WHERE alembic_version.version_num = '498357a710ae'
+
+/
+
+-- Running upgrade 26f10cadc157 -> 154177371065
+
+ALTER TABLE ps_globals ADD default_from_user VARCHAR2(80 CHAR)
+
+/
+
+UPDATE alembic_version SET version_num='154177371065' WHERE alembic_version.version_num = '26f10cadc157'
+
+/
+
+-- Running upgrade 154177371065 -> 28ce1e718f05
+
+ALTER TABLE ps_registrations ADD fatal_retry_interval INTEGER
+
+/
+
+UPDATE alembic_version SET version_num='28ce1e718f05' WHERE alembic_version.version_num = '154177371065'
+
+/
+
+-- Running upgrade 28ce1e718f05 -> 189a235b3fd7
+
+ALTER TABLE ps_globals ADD keep_alive_interval INTEGER
+
+/
+
+UPDATE alembic_version SET version_num='189a235b3fd7' WHERE alembic_version.version_num = '28ce1e718f05'
+
+/
+
+-- Running upgrade 189a235b3fd7 -> 2d078ec071b7
+
+ALTER TABLE ps_aors MODIFY contact VARCHAR2(255 CHAR)
+
+/
+
+UPDATE alembic_version SET version_num='2d078ec071b7' WHERE alembic_version.version_num = '189a235b3fd7'
+
+/
+
+-- Running upgrade 2d078ec071b7 -> 26d7f3bf0fa5
+
+ALTER TABLE ps_endpoints ADD bind_rtp_to_media_address VARCHAR(3 CHAR)
+
+/
+
+ALTER TABLE ps_endpoints ADD CONSTRAINT yesno_values CHECK (bind_rtp_to_media_address IN ('yes', 'no'))
+
+/
+
+UPDATE alembic_version SET version_num='26d7f3bf0fa5' WHERE alembic_version.version_num = '2d078ec071b7'
+
+/
+
+-- Running upgrade 26d7f3bf0fa5 -> 136885b81223
+
+ALTER TABLE ps_globals ADD regcontext VARCHAR2(80 CHAR)
+
+/
+
+UPDATE alembic_version SET version_num='136885b81223' WHERE alembic_version.version_num = '26d7f3bf0fa5'
+
+/
+
+-- Running upgrade 136885b81223 -> 423f34ad36e2
+
+ALTER TABLE ps_aors MODIFY qualify_timeout FLOAT
+
+/
+
+ALTER TABLE ps_contacts MODIFY qualify_timeout FLOAT
+
+/
+
+UPDATE alembic_version SET version_num='423f34ad36e2' WHERE alembic_version.version_num = '136885b81223'
+
+/
+
+-- Running upgrade 423f34ad36e2 -> dbc44d5a908
+
+ALTER TABLE ps_systems ADD disable_tcp_switch VARCHAR(3 CHAR)
+
+/
+
+ALTER TABLE ps_systems ADD CONSTRAINT yesno_values CHECK (disable_tcp_switch IN ('yes', 'no'))
+
+/
+
+ALTER TABLE ps_registrations ADD line VARCHAR(3 CHAR)
+
+/
+
+ALTER TABLE ps_registrations ADD CONSTRAINT yesno_values CHECK (line IN ('yes', 'no'))
+
+/
+
+ALTER TABLE ps_registrations ADD endpoint VARCHAR2(40 CHAR)
+
+/
+
+UPDATE alembic_version SET version_num='dbc44d5a908' WHERE alembic_version.version_num = '423f34ad36e2'
+
+/
+
+-- Running upgrade dbc44d5a908 -> 3bcc0b5bc2c9
+
+ALTER TABLE ps_transports ADD allow_reload VARCHAR(3 CHAR)
+
+/
+
+ALTER TABLE ps_transports ADD CONSTRAINT yesno_values CHECK (allow_reload IN ('yes', 'no'))
+
+/
+
+UPDATE alembic_version SET version_num='3bcc0b5bc2c9' WHERE alembic_version.version_num = 'dbc44d5a908'
+
+/
+
+-- Running upgrade 3bcc0b5bc2c9 -> 5813202e92be
+
+ALTER TABLE ps_globals ADD contact_expiration_check_interval INTEGER
+
+/
+
+UPDATE alembic_version SET version_num='5813202e92be' WHERE alembic_version.version_num = '3bcc0b5bc2c9'
+
+/
+
+-- Running upgrade 5813202e92be -> 1c688d9a003c
+
+ALTER TABLE ps_globals ADD default_voicemail_extension VARCHAR2(40 CHAR)
+
+/
+
+ALTER TABLE ps_aors ADD voicemail_extension VARCHAR2(40 CHAR)
+
+/
+
+ALTER TABLE ps_endpoints ADD voicemail_extension VARCHAR2(40 CHAR)
+
+/
+
+ALTER TABLE ps_endpoints ADD mwi_subscribe_replaces_unsolicited INTEGER
+
+/
+
+UPDATE alembic_version SET version_num='1c688d9a003c' WHERE alembic_version.version_num = '5813202e92be'
+
+/
+
+-- Running upgrade 1c688d9a003c -> 8d478ab86e29
+
+ALTER TABLE ps_globals ADD disable_multi_domain VARCHAR(3 CHAR)
+
+/
+
+ALTER TABLE ps_globals ADD CONSTRAINT yesno_values CHECK (disable_multi_domain IN ('yes', 'no'))
+
+/
+
+UPDATE alembic_version SET version_num='8d478ab86e29' WHERE alembic_version.version_num = '1c688d9a003c'
+
+/
+
+-- Running upgrade 8d478ab86e29 -> 65eb22eb195
+
+ALTER TABLE ps_globals ADD unidentified_request_count INTEGER
+
+/
+
+ALTER TABLE ps_globals ADD unidentified_request_period INTEGER
+
+/
+
+ALTER TABLE ps_globals ADD unidentified_request_prune_interval INTEGER
+
+/
+
+ALTER TABLE ps_globals ADD default_realm VARCHAR2(40 CHAR)
+
+/
+
+UPDATE alembic_version SET version_num='65eb22eb195' WHERE alembic_version.version_num = '8d478ab86e29'
+
+/
+
+-- Running upgrade 65eb22eb195 -> 81b01a191a46
+
+ALTER TABLE ps_contacts ADD reg_server VARCHAR2(20 CHAR)
+
+/
+
+ALTER TABLE ps_contacts ADD CONSTRAINT ps_contacts_uq UNIQUE (id, reg_server)
+
+/
+
+UPDATE alembic_version SET version_num='81b01a191a46' WHERE alembic_version.version_num = '65eb22eb195'
+
+/
+
+-- Running upgrade 81b01a191a46 -> 6be31516058d
+
+ALTER TABLE ps_contacts ADD authenticate_qualify VARCHAR(3 CHAR)
+
+/
+
+ALTER TABLE ps_contacts ADD CONSTRAINT yesno_values CHECK (authenticate_qualify IN ('yes', 'no'))
+
+/
+
+UPDATE alembic_version SET version_num='6be31516058d' WHERE alembic_version.version_num = '81b01a191a46'
+
+/
+
+-- Running upgrade 6be31516058d -> bca7113d796f
+
+ALTER TABLE ps_endpoints ADD deny VARCHAR2(95 CHAR)
+
+/
+
+ALTER TABLE ps_endpoints ADD permit VARCHAR2(95 CHAR)
+
+/
+
+ALTER TABLE ps_endpoints ADD acl VARCHAR2(40 CHAR)
+
+/
+
+ALTER TABLE ps_endpoints ADD contact_deny VARCHAR2(95 CHAR)
+
+/
+
+ALTER TABLE ps_endpoints ADD contact_permit VARCHAR2(95 CHAR)
+
+/
+
+ALTER TABLE ps_endpoints ADD contact_acl VARCHAR2(40 CHAR)
+
+/
+
+UPDATE alembic_version SET version_num='bca7113d796f' WHERE alembic_version.version_num = '6be31516058d'
+
+/
+
+-- Running upgrade bca7113d796f -> a845e4d8ade8
+
+ALTER TABLE ps_contacts ADD via_addr VARCHAR2(40 CHAR)
+
+/
+
+ALTER TABLE ps_contacts ADD via_port INTEGER
+
+/
+
+ALTER TABLE ps_contacts ADD call_id VARCHAR2(255 CHAR)
+
+/
+
+UPDATE alembic_version SET version_num='a845e4d8ade8' WHERE alembic_version.version_num = 'bca7113d796f'
+
+/
+
+-- Running upgrade a845e4d8ade8 -> ef7efc2d3964
+
+ALTER TABLE ps_contacts ADD endpoint VARCHAR2(40 CHAR)
+
+/
+
+ALTER TABLE ps_contacts MODIFY expiration_time NUMBER(19)
+
+/
+
+CREATE INDEX ps_contacts_qualifyfreq_exp ON ps_contacts (qualify_frequency, expiration_time)
+
+/
+
+CREATE INDEX ps_aors_qualifyfreq_contact ON ps_aors (qualify_frequency, contact)
+
+/
+
+UPDATE alembic_version SET version_num='ef7efc2d3964' WHERE alembic_version.version_num = 'a845e4d8ade8'
+
+/
+
+-- Running upgrade ef7efc2d3964 -> 9deac0ae4717
+
+ALTER TABLE ps_endpoints ADD subscribe_context VARCHAR2(40 CHAR)
+
+/
+
+UPDATE alembic_version SET version_num='9deac0ae4717' WHERE alembic_version.version_num = 'ef7efc2d3964'
+
+/
+
+-- Running upgrade 9deac0ae4717 -> 4a6c67fa9b7a
+
+ALTER TABLE ps_endpoints ADD fax_detect_timeout INTEGER
+
+/
+
+UPDATE alembic_version SET version_num='4a6c67fa9b7a' WHERE alembic_version.version_num = '9deac0ae4717'
+
+/
+
+-- Running upgrade 4a6c67fa9b7a -> c7a44a5a0851
+
+ALTER TABLE ps_globals ADD mwi_tps_queue_high INTEGER
+
+/
+
+ALTER TABLE ps_globals ADD mwi_tps_queue_low INTEGER
+
+/
+
+ALTER TABLE ps_globals ADD mwi_disable_initial_unsolicited VARCHAR(3 CHAR)
+
+/
+
+ALTER TABLE ps_globals ADD CONSTRAINT yesno_values CHECK (mwi_disable_initial_unsolicited IN ('yes', 'no'))
+
+/
+
+UPDATE alembic_version SET version_num='c7a44a5a0851' WHERE alembic_version.version_num = '4a6c67fa9b7a'
+
+/
+
+-- Running upgrade c7a44a5a0851 -> 3772f8f828da
+
+ALTER TABLE ps_endpoints MODIFY identify_by VARCHAR(13 CHAR)
+
+/
+
+ALTER TABLE ps_endpoints ADD CONSTRAINT pjsip_identify_by_values CHECK (identify_by IN ('username', 'auth_username'))
+
+/
+
+UPDATE alembic_version SET version_num='3772f8f828da' WHERE alembic_version.version_num = 'c7a44a5a0851'
+
+/
+
+-- Running upgrade 3772f8f828da -> 4e2493ef32e6
+
+ALTER TABLE ps_endpoints ADD contact_user VARCHAR2(80 CHAR)
+
+/
+
+UPDATE alembic_version SET version_num='4e2493ef32e6' WHERE alembic_version.version_num = '3772f8f828da'
+
+/
+
+-- Running upgrade 4e2493ef32e6 -> a6ef36f1309
+
+ALTER TABLE ps_globals ADD ignore_uri_user_options VARCHAR(3 CHAR)
+
+/
+
+ALTER TABLE ps_globals ADD CONSTRAINT yesno_values CHECK (ignore_uri_user_options IN ('yes', 'no'))
+
+/
+
+UPDATE alembic_version SET version_num='a6ef36f1309' WHERE alembic_version.version_num = '4e2493ef32e6'
+
+/
+
+-- Running upgrade a6ef36f1309 -> 4468b4a91372
+
+ALTER TABLE ps_endpoints ADD asymmetric_rtp_codec VARCHAR(3 CHAR)
+
+/
+
+ALTER TABLE ps_endpoints ADD CONSTRAINT yesno_values CHECK (asymmetric_rtp_codec IN ('yes', 'no'))
+
+/
+
+UPDATE alembic_version SET version_num='4468b4a91372' WHERE alembic_version.version_num = 'a6ef36f1309'
+
+/
+
+-- Running upgrade 4468b4a91372 -> 28ab27a7826d
+
+ALTER TABLE ps_endpoint_id_ips ADD srv_lookups VARCHAR(3 CHAR)
+
+/
+
+ALTER TABLE ps_endpoint_id_ips ADD CONSTRAINT yesno_values CHECK (srv_lookups IN ('yes', 'no'))
+
+/
+
+UPDATE alembic_version SET version_num='28ab27a7826d' WHERE alembic_version.version_num = '4468b4a91372'
+
+/
+
+-- Running upgrade 28ab27a7826d -> 465e70e8c337
+
+ALTER TABLE ps_endpoint_id_ips ADD match_header VARCHAR2(255 CHAR)
+
+/
+
+UPDATE alembic_version SET version_num='465e70e8c337' WHERE alembic_version.version_num = '28ab27a7826d'
+
+/
+
+-- Running upgrade 465e70e8c337 -> 15db7b91a97a
+
+ALTER TABLE ps_endpoints ADD rtcp_mux VARCHAR(3 CHAR)
+
+/
+
+ALTER TABLE ps_endpoints ADD CONSTRAINT yesno_values CHECK (rtcp_mux IN ('yes', 'no'))
+
+/
+
+UPDATE alembic_version SET version_num='15db7b91a97a' WHERE alembic_version.version_num = '465e70e8c337'
+
+/
+
+-- Running upgrade 15db7b91a97a -> f638dbe2eb23
+
+ALTER TABLE ps_transports ADD symmetric_transport VARCHAR(3 CHAR)
+
+/
+
+ALTER TABLE ps_transports ADD CONSTRAINT yesno_values CHECK (symmetric_transport IN ('yes', 'no'))
+
+/
+
+ALTER TABLE ps_subscription_persistence ADD contact_uri VARCHAR2(256 CHAR)
+
+/
+
+UPDATE alembic_version SET version_num='f638dbe2eb23' WHERE alembic_version.version_num = '15db7b91a97a'
+
+/
+
+-- Running upgrade f638dbe2eb23 -> 8fce4c573e15
+
+ALTER TABLE ps_endpoints ADD allow_overlap VARCHAR(3 CHAR)
+
+/
+
+ALTER TABLE ps_endpoints ADD CONSTRAINT yesno_values CHECK (allow_overlap IN ('yes', 'no'))
+
+/
+
+UPDATE alembic_version SET version_num='8fce4c573e15' WHERE alembic_version.version_num = 'f638dbe2eb23'
+
+/
+
diff --git a/contrib/realtime/oracle/oracle_voicemail.sql b/contrib/realtime/oracle/oracle_voicemail.sql
new file mode 100644
index 000000000..12133ea8c
--- /dev/null
+++ b/contrib/realtime/oracle/oracle_voicemail.sql
@@ -0,0 +1,48 @@
+CREATE TABLE alembic_version (
+ version_num VARCHAR2(32 CHAR) NOT NULL
+)
+
+/
+
+-- Running upgrade -> a2e9769475e
+
+CREATE TABLE voicemail_messages (
+ dir VARCHAR2(255 CHAR) NOT NULL,
+ msgnum INTEGER NOT NULL,
+ context VARCHAR2(80 CHAR),
+ macrocontext VARCHAR2(80 CHAR),
+ callerid VARCHAR2(80 CHAR),
+ origtime INTEGER,
+ duration INTEGER,
+ recording BLOB,
+ flag VARCHAR2(30 CHAR),
+ category VARCHAR2(30 CHAR),
+ mailboxuser VARCHAR2(30 CHAR),
+ mailboxcontext VARCHAR2(30 CHAR),
+ msg_id VARCHAR2(40 CHAR)
+)
+
+/
+
+ALTER TABLE voicemail_messages ADD CONSTRAINT voicemail_messages_dir_msgnum PRIMARY KEY (dir, msgnum)
+
+/
+
+CREATE INDEX voicemail_messages_dir ON voicemail_messages (dir)
+
+/
+
+INSERT INTO alembic_version (version_num) VALUES ('a2e9769475e')
+
+/
+
+-- Running upgrade a2e9769475e -> 39428242f7f5
+
+ALTER TABLE voicemail_messages MODIFY recording BLOB
+
+/
+
+UPDATE alembic_version SET version_num='39428242f7f5' WHERE alembic_version.version_num = 'a2e9769475e'
+
+/
+
diff --git a/contrib/realtime/postgresql/postgresql_cdr.sql b/contrib/realtime/postgresql/postgresql_cdr.sql
new file mode 100644
index 000000000..5f1ffa4b1
--- /dev/null
+++ b/contrib/realtime/postgresql/postgresql_cdr.sql
@@ -0,0 +1,36 @@
+BEGIN;
+
+CREATE TABLE alembic_version (
+ version_num VARCHAR(32) NOT NULL
+);
+
+-- Running upgrade -> 210693f3123d
+
+CREATE TABLE cdr (
+ accountcode VARCHAR(20),
+ src VARCHAR(80),
+ dst VARCHAR(80),
+ dcontext VARCHAR(80),
+ clid VARCHAR(80),
+ channel VARCHAR(80),
+ dstchannel VARCHAR(80),
+ lastapp VARCHAR(80),
+ lastdata VARCHAR(80),
+ start TIMESTAMP WITHOUT TIME ZONE,
+ answer TIMESTAMP WITHOUT TIME ZONE,
+ "end" TIMESTAMP WITHOUT TIME ZONE,
+ duration INTEGER,
+ billsec INTEGER,
+ disposition VARCHAR(45),
+ amaflags VARCHAR(45),
+ userfield VARCHAR(256),
+ uniqueid VARCHAR(150),
+ linkedid VARCHAR(150),
+ peeraccount VARCHAR(20),
+ sequence INTEGER
+);
+
+INSERT INTO alembic_version (version_num) VALUES ('210693f3123d');
+
+COMMIT;
+
diff --git a/contrib/realtime/postgresql/postgresql_config.sql b/contrib/realtime/postgresql/postgresql_config.sql
new file mode 100644
index 000000000..3ac125c03
--- /dev/null
+++ b/contrib/realtime/postgresql/postgresql_config.sql
@@ -0,0 +1,1068 @@
+BEGIN;
+
+CREATE TABLE alembic_version (
+ version_num VARCHAR(32) NOT NULL
+);
+
+-- Running upgrade -> 4da0c5f79a9c
+
+CREATE TYPE type_values AS ENUM ('friend', 'user', 'peer');
+
+CREATE TYPE sip_transport_values AS ENUM ('udp', 'tcp', 'tls', 'ws', 'wss', 'udp,tcp', 'tcp,udp');
+
+CREATE TYPE sip_dtmfmode_values AS ENUM ('rfc2833', 'info', 'shortinfo', 'inband', 'auto');
+
+CREATE TYPE sip_directmedia_values AS ENUM ('yes', 'no', 'nonat', 'update');
+
+CREATE TYPE yes_no_values AS ENUM ('yes', 'no');
+
+CREATE TYPE sip_progressinband_values AS ENUM ('yes', 'no', 'never');
+
+CREATE TYPE sip_session_timers_values AS ENUM ('accept', 'refuse', 'originate');
+
+CREATE TYPE sip_session_refresher_values AS ENUM ('uac', 'uas');
+
+CREATE TYPE sip_callingpres_values AS ENUM ('allowed_not_screened', 'allowed_passed_screen', 'allowed_failed_screen', 'allowed', 'prohib_not_screened', 'prohib_passed_screen', 'prohib_failed_screen', 'prohib');
+
+CREATE TABLE sippeers (
+ id SERIAL NOT NULL,
+ name VARCHAR(40) NOT NULL,
+ ipaddr VARCHAR(45),
+ port INTEGER,
+ regseconds INTEGER,
+ defaultuser VARCHAR(40),
+ fullcontact VARCHAR(80),
+ regserver VARCHAR(20),
+ useragent VARCHAR(20),
+ lastms INTEGER,
+ host VARCHAR(40),
+ type type_values,
+ context VARCHAR(40),
+ permit VARCHAR(95),
+ deny VARCHAR(95),
+ secret VARCHAR(40),
+ md5secret VARCHAR(40),
+ remotesecret VARCHAR(40),
+ transport sip_transport_values,
+ dtmfmode sip_dtmfmode_values,
+ directmedia sip_directmedia_values,
+ nat VARCHAR(29),
+ callgroup VARCHAR(40),
+ pickupgroup VARCHAR(40),
+ language VARCHAR(40),
+ disallow VARCHAR(200),
+ allow VARCHAR(200),
+ insecure VARCHAR(40),
+ trustrpid yes_no_values,
+ progressinband sip_progressinband_values,
+ promiscredir yes_no_values,
+ useclientcode yes_no_values,
+ accountcode VARCHAR(40),
+ setvar VARCHAR(200),
+ callerid VARCHAR(40),
+ amaflags VARCHAR(40),
+ callcounter yes_no_values,
+ busylevel INTEGER,
+ allowoverlap yes_no_values,
+ allowsubscribe yes_no_values,
+ videosupport yes_no_values,
+ maxcallbitrate INTEGER,
+ rfc2833compensate yes_no_values,
+ mailbox VARCHAR(40),
+ "session-timers" sip_session_timers_values,
+ "session-expires" INTEGER,
+ "session-minse" INTEGER,
+ "session-refresher" sip_session_refresher_values,
+ t38pt_usertpsource VARCHAR(40),
+ regexten VARCHAR(40),
+ fromdomain VARCHAR(40),
+ fromuser VARCHAR(40),
+ qualify VARCHAR(40),
+ defaultip VARCHAR(45),
+ rtptimeout INTEGER,
+ rtpholdtimeout INTEGER,
+ sendrpid yes_no_values,
+ outboundproxy VARCHAR(40),
+ callbackextension VARCHAR(40),
+ timert1 INTEGER,
+ timerb INTEGER,
+ qualifyfreq INTEGER,
+ constantssrc yes_no_values,
+ contactpermit VARCHAR(95),
+ contactdeny VARCHAR(95),
+ usereqphone yes_no_values,
+ textsupport yes_no_values,
+ faxdetect yes_no_values,
+ buggymwi yes_no_values,
+ auth VARCHAR(40),
+ fullname VARCHAR(40),
+ trunkname VARCHAR(40),
+ cid_number VARCHAR(40),
+ callingpres sip_callingpres_values,
+ mohinterpret VARCHAR(40),
+ mohsuggest VARCHAR(40),
+ parkinglot VARCHAR(40),
+ hasvoicemail yes_no_values,
+ subscribemwi yes_no_values,
+ vmexten VARCHAR(40),
+ autoframing yes_no_values,
+ rtpkeepalive INTEGER,
+ "call-limit" INTEGER,
+ g726nonstandard yes_no_values,
+ ignoresdpversion yes_no_values,
+ allowtransfer yes_no_values,
+ dynamic yes_no_values,
+ path VARCHAR(256),
+ supportpath yes_no_values,
+ PRIMARY KEY (id),
+ UNIQUE (name)
+);
+
+CREATE INDEX sippeers_name ON sippeers (name);
+
+CREATE INDEX sippeers_name_host ON sippeers (name, host);
+
+CREATE INDEX sippeers_ipaddr_port ON sippeers (ipaddr, port);
+
+CREATE INDEX sippeers_host_port ON sippeers (host, port);
+
+CREATE TYPE iax_requirecalltoken_values AS ENUM ('yes', 'no', 'auto');
+
+CREATE TYPE iax_encryption_values AS ENUM ('yes', 'no', 'aes128');
+
+CREATE TYPE iax_transfer_values AS ENUM ('yes', 'no', 'mediaonly');
+
+CREATE TABLE iaxfriends (
+ id SERIAL NOT NULL,
+ name VARCHAR(40) NOT NULL,
+ type type_values,
+ username VARCHAR(40),
+ mailbox VARCHAR(40),
+ secret VARCHAR(40),
+ dbsecret VARCHAR(40),
+ context VARCHAR(40),
+ regcontext VARCHAR(40),
+ host VARCHAR(40),
+ ipaddr VARCHAR(40),
+ port INTEGER,
+ defaultip VARCHAR(20),
+ sourceaddress VARCHAR(20),
+ mask VARCHAR(20),
+ regexten VARCHAR(40),
+ regseconds INTEGER,
+ accountcode VARCHAR(20),
+ mohinterpret VARCHAR(20),
+ mohsuggest VARCHAR(20),
+ inkeys VARCHAR(40),
+ outkeys VARCHAR(40),
+ language VARCHAR(10),
+ callerid VARCHAR(100),
+ cid_number VARCHAR(40),
+ sendani yes_no_values,
+ fullname VARCHAR(40),
+ trunk yes_no_values,
+ auth VARCHAR(20),
+ maxauthreq INTEGER,
+ requirecalltoken iax_requirecalltoken_values,
+ encryption iax_encryption_values,
+ transfer iax_transfer_values,
+ jitterbuffer yes_no_values,
+ forcejitterbuffer yes_no_values,
+ disallow VARCHAR(200),
+ allow VARCHAR(200),
+ codecpriority VARCHAR(40),
+ qualify VARCHAR(10),
+ qualifysmoothing yes_no_values,
+ qualifyfreqok VARCHAR(10),
+ qualifyfreqnotok VARCHAR(10),
+ timezone VARCHAR(20),
+ adsi yes_no_values,
+ amaflags VARCHAR(20),
+ setvar VARCHAR(200),
+ PRIMARY KEY (id),
+ UNIQUE (name)
+);
+
+CREATE INDEX iaxfriends_name ON iaxfriends (name);
+
+CREATE INDEX iaxfriends_name_host ON iaxfriends (name, host);
+
+CREATE INDEX iaxfriends_name_ipaddr_port ON iaxfriends (name, ipaddr, port);
+
+CREATE INDEX iaxfriends_ipaddr_port ON iaxfriends (ipaddr, port);
+
+CREATE INDEX iaxfriends_host_port ON iaxfriends (host, port);
+
+CREATE TABLE voicemail (
+ uniqueid SERIAL NOT NULL,
+ context VARCHAR(80) NOT NULL,
+ mailbox VARCHAR(80) NOT NULL,
+ password VARCHAR(80) NOT NULL,
+ fullname VARCHAR(80),
+ alias VARCHAR(80),
+ email VARCHAR(80),
+ pager VARCHAR(80),
+ attach yes_no_values,
+ attachfmt VARCHAR(10),
+ serveremail VARCHAR(80),
+ language VARCHAR(20),
+ tz VARCHAR(30),
+ deletevoicemail yes_no_values,
+ saycid yes_no_values,
+ sendvoicemail yes_no_values,
+ review yes_no_values,
+ tempgreetwarn yes_no_values,
+ operator yes_no_values,
+ envelope yes_no_values,
+ sayduration INTEGER,
+ forcename yes_no_values,
+ forcegreetings yes_no_values,
+ callback VARCHAR(80),
+ dialout VARCHAR(80),
+ exitcontext VARCHAR(80),
+ maxmsg INTEGER,
+ volgain NUMERIC(5, 2),
+ imapuser VARCHAR(80),
+ imappassword VARCHAR(80),
+ imapserver VARCHAR(80),
+ imapport VARCHAR(8),
+ imapflags VARCHAR(80),
+ stamp TIMESTAMP WITHOUT TIME ZONE,
+ PRIMARY KEY (uniqueid)
+);
+
+CREATE INDEX voicemail_mailbox ON voicemail (mailbox);
+
+CREATE INDEX voicemail_context ON voicemail (context);
+
+CREATE INDEX voicemail_mailbox_context ON voicemail (mailbox, context);
+
+CREATE INDEX voicemail_imapuser ON voicemail (imapuser);
+
+CREATE TABLE meetme (
+ bookid SERIAL NOT NULL,
+ confno VARCHAR(80) NOT NULL,
+ starttime TIMESTAMP WITHOUT TIME ZONE,
+ endtime TIMESTAMP WITHOUT TIME ZONE,
+ pin VARCHAR(20),
+ adminpin VARCHAR(20),
+ opts VARCHAR(20),
+ adminopts VARCHAR(20),
+ recordingfilename VARCHAR(80),
+ recordingformat VARCHAR(10),
+ maxusers INTEGER,
+ members INTEGER NOT NULL,
+ PRIMARY KEY (bookid)
+);
+
+CREATE INDEX meetme_confno_start_end ON meetme (confno, starttime, endtime);
+
+CREATE TYPE moh_mode_values AS ENUM ('custom', 'files', 'mp3nb', 'quietmp3nb', 'quietmp3');
+
+CREATE TABLE musiconhold (
+ name VARCHAR(80) NOT NULL,
+ mode moh_mode_values,
+ directory VARCHAR(255),
+ application VARCHAR(255),
+ digit VARCHAR(1),
+ sort VARCHAR(10),
+ format VARCHAR(10),
+ stamp TIMESTAMP WITHOUT TIME ZONE,
+ PRIMARY KEY (name)
+);
+
+INSERT INTO alembic_version (version_num) VALUES ('4da0c5f79a9c');
+
+-- Running upgrade 4da0c5f79a9c -> 43956d550a44
+
+CREATE TYPE yesno_values AS ENUM ('yes', 'no');
+
+CREATE TYPE pjsip_connected_line_method_values AS ENUM ('invite', 'reinvite', 'update');
+
+CREATE TYPE pjsip_direct_media_glare_mitigation_values AS ENUM ('none', 'outgoing', 'incoming');
+
+CREATE TYPE pjsip_dtmf_mode_values AS ENUM ('rfc4733', 'inband', 'info');
+
+CREATE TYPE pjsip_identify_by_values AS ENUM ('username');
+
+CREATE TYPE pjsip_timer_values AS ENUM ('forced', 'no', 'required', 'yes');
+
+CREATE TYPE pjsip_cid_privacy_values AS ENUM ('allowed_not_screened', 'allowed_passed_screened', 'allowed_failed_screened', 'allowed', 'prohib_not_screened', 'prohib_passed_screened', 'prohib_failed_screened', 'prohib', 'unavailable');
+
+CREATE TYPE pjsip_100rel_values AS ENUM ('no', 'required', 'yes');
+
+CREATE TYPE pjsip_media_encryption_values AS ENUM ('no', 'sdes', 'dtls');
+
+CREATE TYPE pjsip_t38udptl_ec_values AS ENUM ('none', 'fec', 'redundancy');
+
+CREATE TYPE pjsip_dtls_setup_values AS ENUM ('active', 'passive', 'actpass');
+
+CREATE TABLE ps_endpoints (
+ id VARCHAR(40) NOT NULL,
+ transport VARCHAR(40),
+ aors VARCHAR(200),
+ auth VARCHAR(40),
+ context VARCHAR(40),
+ disallow VARCHAR(200),
+ allow VARCHAR(200),
+ direct_media yesno_values,
+ connected_line_method pjsip_connected_line_method_values,
+ direct_media_method pjsip_connected_line_method_values,
+ direct_media_glare_mitigation pjsip_direct_media_glare_mitigation_values,
+ disable_direct_media_on_nat yesno_values,
+ dtmf_mode pjsip_dtmf_mode_values,
+ external_media_address VARCHAR(40),
+ force_rport yesno_values,
+ ice_support yesno_values,
+ identify_by pjsip_identify_by_values,
+ mailboxes VARCHAR(40),
+ moh_suggest VARCHAR(40),
+ outbound_auth VARCHAR(40),
+ outbound_proxy VARCHAR(40),
+ rewrite_contact yesno_values,
+ rtp_ipv6 yesno_values,
+ rtp_symmetric yesno_values,
+ send_diversion yesno_values,
+ send_pai yesno_values,
+ send_rpid yesno_values,
+ timers_min_se INTEGER,
+ timers pjsip_timer_values,
+ timers_sess_expires INTEGER,
+ callerid VARCHAR(40),
+ callerid_privacy pjsip_cid_privacy_values,
+ callerid_tag VARCHAR(40),
+ "100rel" pjsip_100rel_values,
+ aggregate_mwi yesno_values,
+ trust_id_inbound yesno_values,
+ trust_id_outbound yesno_values,
+ use_ptime yesno_values,
+ use_avpf yesno_values,
+ media_encryption pjsip_media_encryption_values,
+ inband_progress yesno_values,
+ call_group VARCHAR(40),
+ pickup_group VARCHAR(40),
+ named_call_group VARCHAR(40),
+ named_pickup_group VARCHAR(40),
+ device_state_busy_at INTEGER,
+ fax_detect yesno_values,
+ t38_udptl yesno_values,
+ t38_udptl_ec pjsip_t38udptl_ec_values,
+ t38_udptl_maxdatagram INTEGER,
+ t38_udptl_nat yesno_values,
+ t38_udptl_ipv6 yesno_values,
+ tone_zone VARCHAR(40),
+ language VARCHAR(40),
+ one_touch_recording yesno_values,
+ record_on_feature VARCHAR(40),
+ record_off_feature VARCHAR(40),
+ rtp_engine VARCHAR(40),
+ allow_transfer yesno_values,
+ allow_subscribe yesno_values,
+ sdp_owner VARCHAR(40),
+ sdp_session VARCHAR(40),
+ tos_audio INTEGER,
+ tos_video INTEGER,
+ cos_audio INTEGER,
+ cos_video INTEGER,
+ sub_min_expiry INTEGER,
+ from_domain VARCHAR(40),
+ from_user VARCHAR(40),
+ mwi_fromuser VARCHAR(40),
+ dtls_verify VARCHAR(40),
+ dtls_rekey VARCHAR(40),
+ dtls_cert_file VARCHAR(200),
+ dtls_private_key VARCHAR(200),
+ dtls_cipher VARCHAR(200),
+ dtls_ca_file VARCHAR(200),
+ dtls_ca_path VARCHAR(200),
+ dtls_setup pjsip_dtls_setup_values,
+ srtp_tag_32 yesno_values,
+ UNIQUE (id)
+);
+
+CREATE INDEX ps_endpoints_id ON ps_endpoints (id);
+
+CREATE TYPE pjsip_auth_type_values AS ENUM ('md5', 'userpass');
+
+CREATE TABLE ps_auths (
+ id VARCHAR(40) NOT NULL,
+ auth_type pjsip_auth_type_values,
+ nonce_lifetime INTEGER,
+ md5_cred VARCHAR(40),
+ password VARCHAR(80),
+ realm VARCHAR(40),
+ username VARCHAR(40),
+ UNIQUE (id)
+);
+
+CREATE INDEX ps_auths_id ON ps_auths (id);
+
+CREATE TABLE ps_aors (
+ id VARCHAR(40) NOT NULL,
+ contact VARCHAR(40),
+ default_expiration INTEGER,
+ mailboxes VARCHAR(80),
+ max_contacts INTEGER,
+ minimum_expiration INTEGER,
+ remove_existing yesno_values,
+ qualify_frequency INTEGER,
+ authenticate_qualify yesno_values,
+ UNIQUE (id)
+);
+
+CREATE INDEX ps_aors_id ON ps_aors (id);
+
+CREATE TABLE ps_contacts (
+ id VARCHAR(40) NOT NULL,
+ uri VARCHAR(40),
+ expiration_time VARCHAR(40),
+ qualify_frequency INTEGER,
+ UNIQUE (id)
+);
+
+CREATE INDEX ps_contacts_id ON ps_contacts (id);
+
+CREATE TABLE ps_domain_aliases (
+ id VARCHAR(40) NOT NULL,
+ domain VARCHAR(80),
+ UNIQUE (id)
+);
+
+CREATE INDEX ps_domain_aliases_id ON ps_domain_aliases (id);
+
+CREATE TABLE ps_endpoint_id_ips (
+ id VARCHAR(40) NOT NULL,
+ endpoint VARCHAR(40),
+ match VARCHAR(80),
+ UNIQUE (id)
+);
+
+CREATE INDEX ps_endpoint_id_ips_id ON ps_endpoint_id_ips (id);
+
+UPDATE alembic_version SET version_num='43956d550a44' WHERE alembic_version.version_num = '4da0c5f79a9c';
+
+-- Running upgrade 43956d550a44 -> 581a4264e537
+
+CREATE TABLE extensions (
+ id BIGSERIAL NOT NULL,
+ context VARCHAR(40) NOT NULL,
+ exten VARCHAR(40) NOT NULL,
+ priority INTEGER NOT NULL,
+ app VARCHAR(40) NOT NULL,
+ appdata VARCHAR(256) NOT NULL,
+ PRIMARY KEY (id),
+ UNIQUE (context, exten, priority),
+ UNIQUE (id)
+);
+
+UPDATE alembic_version SET version_num='581a4264e537' WHERE alembic_version.version_num = '43956d550a44';
+
+-- Running upgrade 581a4264e537 -> 2fc7930b41b3
+
+CREATE TYPE pjsip_redirect_method_values AS ENUM ('user', 'uri_core', 'uri_pjsip');
+
+CREATE TABLE ps_systems (
+ id VARCHAR(40) NOT NULL,
+ timer_t1 INTEGER,
+ timer_b INTEGER,
+ compact_headers yesno_values,
+ threadpool_initial_size INTEGER,
+ threadpool_auto_increment INTEGER,
+ threadpool_idle_timeout INTEGER,
+ threadpool_max_size INTEGER,
+ UNIQUE (id)
+);
+
+CREATE INDEX ps_systems_id ON ps_systems (id);
+
+CREATE TABLE ps_globals (
+ id VARCHAR(40) NOT NULL,
+ max_forwards INTEGER,
+ user_agent VARCHAR(40),
+ default_outbound_endpoint VARCHAR(40),
+ UNIQUE (id)
+);
+
+CREATE INDEX ps_globals_id ON ps_globals (id);
+
+CREATE TYPE pjsip_transport_method_values AS ENUM ('default', 'unspecified', 'tlsv1', 'sslv2', 'sslv3', 'sslv23');
+
+CREATE TYPE pjsip_transport_protocol_values AS ENUM ('udp', 'tcp', 'tls', 'ws', 'wss');
+
+CREATE TABLE ps_transports (
+ id VARCHAR(40) NOT NULL,
+ async_operations INTEGER,
+ bind VARCHAR(40),
+ ca_list_file VARCHAR(200),
+ cert_file VARCHAR(200),
+ cipher VARCHAR(200),
+ domain VARCHAR(40),
+ external_media_address VARCHAR(40),
+ external_signaling_address VARCHAR(40),
+ external_signaling_port INTEGER,
+ method pjsip_transport_method_values,
+ local_net VARCHAR(40),
+ password VARCHAR(40),
+ priv_key_file VARCHAR(200),
+ protocol pjsip_transport_protocol_values,
+ require_client_cert yesno_values,
+ verify_client yesno_values,
+ verifiy_server yesno_values,
+ tos yesno_values,
+ cos yesno_values,
+ UNIQUE (id)
+);
+
+CREATE INDEX ps_transports_id ON ps_transports (id);
+
+CREATE TABLE ps_registrations (
+ id VARCHAR(40) NOT NULL,
+ auth_rejection_permanent yesno_values,
+ client_uri VARCHAR(40),
+ contact_user VARCHAR(40),
+ expiration INTEGER,
+ max_retries INTEGER,
+ outbound_auth VARCHAR(40),
+ outbound_proxy VARCHAR(40),
+ retry_interval INTEGER,
+ forbidden_retry_interval INTEGER,
+ server_uri VARCHAR(40),
+ transport VARCHAR(40),
+ support_path yesno_values,
+ UNIQUE (id)
+);
+
+CREATE INDEX ps_registrations_id ON ps_registrations (id);
+
+ALTER TABLE ps_endpoints ADD COLUMN media_address VARCHAR(40);
+
+ALTER TABLE ps_endpoints ADD COLUMN redirect_method pjsip_redirect_method_values;
+
+ALTER TABLE ps_endpoints ADD COLUMN set_var TEXT;
+
+ALTER TABLE ps_endpoints RENAME mwi_fromuser TO mwi_from_user;
+
+ALTER TABLE ps_contacts ADD COLUMN outbound_proxy VARCHAR(40);
+
+ALTER TABLE ps_contacts ADD COLUMN path TEXT;
+
+ALTER TABLE ps_aors ADD COLUMN maximum_expiration INTEGER;
+
+ALTER TABLE ps_aors ADD COLUMN outbound_proxy VARCHAR(40);
+
+ALTER TABLE ps_aors ADD COLUMN support_path yesno_values;
+
+UPDATE alembic_version SET version_num='2fc7930b41b3' WHERE alembic_version.version_num = '581a4264e537';
+
+-- Running upgrade 2fc7930b41b3 -> 21e526ad3040
+
+ALTER TABLE ps_globals ADD COLUMN debug VARCHAR(40);
+
+UPDATE alembic_version SET version_num='21e526ad3040' WHERE alembic_version.version_num = '2fc7930b41b3';
+
+-- Running upgrade 21e526ad3040 -> 28887f25a46f
+
+CREATE TYPE queue_autopause_values AS ENUM ('yes', 'no', 'all');
+
+CREATE TYPE queue_strategy_values AS ENUM ('ringall', 'leastrecent', 'fewestcalls', 'random', 'rrmemory', 'linear', 'wrandom', 'rrordered');
+
+CREATE TABLE queues (
+ name VARCHAR(128) NOT NULL,
+ musiconhold VARCHAR(128),
+ announce VARCHAR(128),
+ context VARCHAR(128),
+ timeout INTEGER,
+ ringinuse yesno_values,
+ setinterfacevar yesno_values,
+ setqueuevar yesno_values,
+ setqueueentryvar yesno_values,
+ monitor_format VARCHAR(8),
+ membermacro VARCHAR(512),
+ membergosub VARCHAR(512),
+ queue_youarenext VARCHAR(128),
+ queue_thereare VARCHAR(128),
+ queue_callswaiting VARCHAR(128),
+ queue_quantity1 VARCHAR(128),
+ queue_quantity2 VARCHAR(128),
+ queue_holdtime VARCHAR(128),
+ queue_minutes VARCHAR(128),
+ queue_minute VARCHAR(128),
+ queue_seconds VARCHAR(128),
+ queue_thankyou VARCHAR(128),
+ queue_callerannounce VARCHAR(128),
+ queue_reporthold VARCHAR(128),
+ announce_frequency INTEGER,
+ announce_to_first_user yesno_values,
+ min_announce_frequency INTEGER,
+ announce_round_seconds INTEGER,
+ announce_holdtime VARCHAR(128),
+ announce_position VARCHAR(128),
+ announce_position_limit INTEGER,
+ periodic_announce VARCHAR(50),
+ periodic_announce_frequency INTEGER,
+ relative_periodic_announce yesno_values,
+ random_periodic_announce yesno_values,
+ retry INTEGER,
+ wrapuptime INTEGER,
+ penaltymemberslimit INTEGER,
+ autofill yesno_values,
+ monitor_type VARCHAR(128),
+ autopause queue_autopause_values,
+ autopausedelay INTEGER,
+ autopausebusy yesno_values,
+ autopauseunavail yesno_values,
+ maxlen INTEGER,
+ servicelevel INTEGER,
+ strategy queue_strategy_values,
+ joinempty VARCHAR(128),
+ leavewhenempty VARCHAR(128),
+ reportholdtime yesno_values,
+ memberdelay INTEGER,
+ weight INTEGER,
+ timeoutrestart yesno_values,
+ defaultrule VARCHAR(128),
+ timeoutpriority VARCHAR(128),
+ PRIMARY KEY (name)
+);
+
+CREATE TABLE queue_members (
+ queue_name VARCHAR(80) NOT NULL,
+ interface VARCHAR(80) NOT NULL,
+ uniqueid VARCHAR(80) NOT NULL,
+ membername VARCHAR(80),
+ state_interface VARCHAR(80),
+ penalty INTEGER,
+ paused INTEGER,
+ PRIMARY KEY (queue_name, interface)
+);
+
+UPDATE alembic_version SET version_num='28887f25a46f' WHERE alembic_version.version_num = '21e526ad3040';
+
+-- Running upgrade 28887f25a46f -> 4c573e7135bd
+
+ALTER TABLE ps_endpoints ALTER COLUMN tos_audio TYPE VARCHAR(10);
+
+ALTER TABLE ps_endpoints ALTER COLUMN tos_video TYPE VARCHAR(10);
+
+ALTER TABLE ps_endpoints DROP COLUMN cos_audio;
+
+ALTER TABLE ps_endpoints DROP COLUMN cos_video;
+
+ALTER TABLE ps_endpoints ADD COLUMN cos_audio INTEGER;
+
+ALTER TABLE ps_endpoints ADD COLUMN cos_video INTEGER;
+
+ALTER TABLE ps_transports ALTER COLUMN tos TYPE VARCHAR(10);
+
+ALTER TABLE ps_transports DROP COLUMN cos;
+
+ALTER TABLE ps_transports ADD COLUMN cos INTEGER;
+
+UPDATE alembic_version SET version_num='4c573e7135bd' WHERE alembic_version.version_num = '28887f25a46f';
+
+-- Running upgrade 4c573e7135bd -> 3855ee4e5f85
+
+ALTER TABLE ps_endpoints ADD COLUMN message_context VARCHAR(40);
+
+ALTER TABLE ps_contacts ADD COLUMN user_agent VARCHAR(40);
+
+UPDATE alembic_version SET version_num='3855ee4e5f85' WHERE alembic_version.version_num = '4c573e7135bd';
+
+-- Running upgrade 3855ee4e5f85 -> e96a0b8071c
+
+ALTER TABLE ps_globals ALTER COLUMN user_agent TYPE VARCHAR(255);
+
+ALTER TABLE ps_contacts ALTER COLUMN id TYPE VARCHAR(255);
+
+ALTER TABLE ps_contacts ALTER COLUMN uri TYPE VARCHAR(255);
+
+ALTER TABLE ps_contacts ALTER COLUMN user_agent TYPE VARCHAR(255);
+
+ALTER TABLE ps_registrations ALTER COLUMN client_uri TYPE VARCHAR(255);
+
+ALTER TABLE ps_registrations ALTER COLUMN server_uri TYPE VARCHAR(255);
+
+UPDATE alembic_version SET version_num='e96a0b8071c' WHERE alembic_version.version_num = '3855ee4e5f85';
+
+-- Running upgrade e96a0b8071c -> c6d929b23a8
+
+CREATE TABLE ps_subscription_persistence (
+ id VARCHAR(40) NOT NULL,
+ packet VARCHAR(2048),
+ src_name VARCHAR(128),
+ src_port INTEGER,
+ transport_key VARCHAR(64),
+ local_name VARCHAR(128),
+ local_port INTEGER,
+ cseq INTEGER,
+ tag VARCHAR(128),
+ endpoint VARCHAR(40),
+ expires INTEGER,
+ UNIQUE (id)
+);
+
+CREATE INDEX ps_subscription_persistence_id ON ps_subscription_persistence (id);
+
+UPDATE alembic_version SET version_num='c6d929b23a8' WHERE alembic_version.version_num = 'e96a0b8071c';
+
+-- Running upgrade c6d929b23a8 -> 51f8cb66540e
+
+ALTER TABLE ps_endpoints ADD COLUMN force_avp yesno_values;
+
+ALTER TABLE ps_endpoints ADD COLUMN media_use_received_transport yesno_values;
+
+UPDATE alembic_version SET version_num='51f8cb66540e' WHERE alembic_version.version_num = 'c6d929b23a8';
+
+-- Running upgrade 51f8cb66540e -> 1d50859ed02e
+
+ALTER TABLE ps_endpoints ADD COLUMN accountcode VARCHAR(20);
+
+UPDATE alembic_version SET version_num='1d50859ed02e' WHERE alembic_version.version_num = '51f8cb66540e';
+
+-- Running upgrade 1d50859ed02e -> 1758e8bbf6b
+
+ALTER TABLE sippeers ALTER COLUMN useragent TYPE VARCHAR(255);
+
+UPDATE alembic_version SET version_num='1758e8bbf6b' WHERE alembic_version.version_num = '1d50859ed02e';
+
+-- Running upgrade 1758e8bbf6b -> 5139253c0423
+
+ALTER TABLE queue_members DROP COLUMN uniqueid;
+
+ALTER TABLE queue_members ADD COLUMN uniqueid INTEGER NOT NULL;
+
+ALTER TABLE queue_members ADD UNIQUE (uniqueid);
+
+UPDATE alembic_version SET version_num='5139253c0423' WHERE alembic_version.version_num = '1758e8bbf6b';
+
+-- Running upgrade 5139253c0423 -> d39508cb8d8
+
+CREATE TABLE queue_rules (
+ rule_name VARCHAR(80) NOT NULL,
+ time VARCHAR(32) NOT NULL,
+ min_penalty VARCHAR(32) NOT NULL,
+ max_penalty VARCHAR(32) NOT NULL
+);
+
+UPDATE alembic_version SET version_num='d39508cb8d8' WHERE alembic_version.version_num = '5139253c0423';
+
+-- Running upgrade d39508cb8d8 -> 5950038a6ead
+
+ALTER TABLE ps_transports ALTER COLUMN verifiy_server TYPE yesno_values;
+
+ALTER TABLE ps_transports RENAME verifiy_server TO verify_server;
+
+UPDATE alembic_version SET version_num='5950038a6ead' WHERE alembic_version.version_num = 'd39508cb8d8';
+
+-- Running upgrade 5950038a6ead -> 10aedae86a32
+
+CREATE TYPE sip_directmedia_values_v2 AS ENUM ('yes', 'no', 'nonat', 'update', 'outgoing');
+
+ALTER TABLE sippeers ALTER COLUMN directmedia TYPE sip_directmedia_values_v2 USING directmedia::text::sip_directmedia_values_v2;
+
+DROP TYPE sip_directmedia_values;
+
+UPDATE alembic_version SET version_num='10aedae86a32' WHERE alembic_version.version_num = '5950038a6ead';
+
+-- Running upgrade 10aedae86a32 -> eb88a14f2a
+
+ALTER TABLE ps_endpoints ADD COLUMN media_encryption_optimistic yesno_values;
+
+UPDATE alembic_version SET version_num='eb88a14f2a' WHERE alembic_version.version_num = '10aedae86a32';
+
+-- Running upgrade eb88a14f2a -> 371a3bf4143e
+
+ALTER TABLE ps_endpoints ADD COLUMN user_eq_phone yesno_values;
+
+UPDATE alembic_version SET version_num='371a3bf4143e' WHERE alembic_version.version_num = 'eb88a14f2a';
+
+-- Running upgrade 371a3bf4143e -> 45e3f47c6c44
+
+ALTER TABLE ps_globals ADD COLUMN endpoint_identifier_order VARCHAR(40);
+
+UPDATE alembic_version SET version_num='45e3f47c6c44' WHERE alembic_version.version_num = '371a3bf4143e';
+
+-- Running upgrade 45e3f47c6c44 -> 23530d604b96
+
+ALTER TABLE ps_endpoints ADD COLUMN rpid_immediate yesno_values;
+
+UPDATE alembic_version SET version_num='23530d604b96' WHERE alembic_version.version_num = '45e3f47c6c44';
+
+-- Running upgrade 23530d604b96 -> 31cd4f4891ec
+
+CREATE TYPE pjsip_dtmf_mode_values_v2 AS ENUM ('rfc4733', 'inband', 'info', 'auto');
+
+ALTER TABLE ps_endpoints ALTER COLUMN dtmf_mode TYPE pjsip_dtmf_mode_values_v2 USING dtmf_mode::text::pjsip_dtmf_mode_values_v2;
+
+DROP TYPE pjsip_dtmf_mode_values;
+
+UPDATE alembic_version SET version_num='31cd4f4891ec' WHERE alembic_version.version_num = '23530d604b96';
+
+-- Running upgrade 31cd4f4891ec -> 461d7d691209
+
+ALTER TABLE ps_aors ADD COLUMN qualify_timeout INTEGER;
+
+ALTER TABLE ps_contacts ADD COLUMN qualify_timeout INTEGER;
+
+UPDATE alembic_version SET version_num='461d7d691209' WHERE alembic_version.version_num = '31cd4f4891ec';
+
+-- Running upgrade 461d7d691209 -> a541e0b5e89
+
+ALTER TABLE ps_globals ADD COLUMN max_initial_qualify_time INTEGER;
+
+UPDATE alembic_version SET version_num='a541e0b5e89' WHERE alembic_version.version_num = '461d7d691209';
+
+-- Running upgrade a541e0b5e89 -> 28b8e71e541f
+
+ALTER TABLE ps_endpoints ADD COLUMN g726_non_standard yesno_values;
+
+UPDATE alembic_version SET version_num='28b8e71e541f' WHERE alembic_version.version_num = 'a541e0b5e89';
+
+-- Running upgrade 28b8e71e541f -> 498357a710ae
+
+ALTER TABLE ps_endpoints ADD COLUMN rtp_keepalive INTEGER;
+
+UPDATE alembic_version SET version_num='498357a710ae' WHERE alembic_version.version_num = '28b8e71e541f';
+
+-- Running upgrade 498357a710ae -> 26f10cadc157
+
+ALTER TABLE ps_endpoints ADD COLUMN rtp_timeout INTEGER;
+
+ALTER TABLE ps_endpoints ADD COLUMN rtp_timeout_hold INTEGER;
+
+UPDATE alembic_version SET version_num='26f10cadc157' WHERE alembic_version.version_num = '498357a710ae';
+
+-- Running upgrade 26f10cadc157 -> 154177371065
+
+ALTER TABLE ps_globals ADD COLUMN default_from_user VARCHAR(80);
+
+UPDATE alembic_version SET version_num='154177371065' WHERE alembic_version.version_num = '26f10cadc157';
+
+-- Running upgrade 154177371065 -> 28ce1e718f05
+
+ALTER TABLE ps_registrations ADD COLUMN fatal_retry_interval INTEGER;
+
+UPDATE alembic_version SET version_num='28ce1e718f05' WHERE alembic_version.version_num = '154177371065';
+
+-- Running upgrade 28ce1e718f05 -> 189a235b3fd7
+
+ALTER TABLE ps_globals ADD COLUMN keep_alive_interval INTEGER;
+
+UPDATE alembic_version SET version_num='189a235b3fd7' WHERE alembic_version.version_num = '28ce1e718f05';
+
+-- Running upgrade 189a235b3fd7 -> 2d078ec071b7
+
+ALTER TABLE ps_aors ALTER COLUMN contact TYPE VARCHAR(255);
+
+UPDATE alembic_version SET version_num='2d078ec071b7' WHERE alembic_version.version_num = '189a235b3fd7';
+
+-- Running upgrade 2d078ec071b7 -> 26d7f3bf0fa5
+
+ALTER TABLE ps_endpoints ADD COLUMN bind_rtp_to_media_address yesno_values;
+
+UPDATE alembic_version SET version_num='26d7f3bf0fa5' WHERE alembic_version.version_num = '2d078ec071b7';
+
+-- Running upgrade 26d7f3bf0fa5 -> 136885b81223
+
+ALTER TABLE ps_globals ADD COLUMN regcontext VARCHAR(80);
+
+UPDATE alembic_version SET version_num='136885b81223' WHERE alembic_version.version_num = '26d7f3bf0fa5';
+
+-- Running upgrade 136885b81223 -> 423f34ad36e2
+
+ALTER TABLE ps_aors ALTER COLUMN qualify_timeout TYPE FLOAT;
+
+ALTER TABLE ps_contacts ALTER COLUMN qualify_timeout TYPE FLOAT;
+
+UPDATE alembic_version SET version_num='423f34ad36e2' WHERE alembic_version.version_num = '136885b81223';
+
+-- Running upgrade 423f34ad36e2 -> dbc44d5a908
+
+ALTER TABLE ps_systems ADD COLUMN disable_tcp_switch yesno_values;
+
+ALTER TABLE ps_registrations ADD COLUMN line yesno_values;
+
+ALTER TABLE ps_registrations ADD COLUMN endpoint VARCHAR(40);
+
+UPDATE alembic_version SET version_num='dbc44d5a908' WHERE alembic_version.version_num = '423f34ad36e2';
+
+-- Running upgrade dbc44d5a908 -> 3bcc0b5bc2c9
+
+ALTER TABLE ps_transports ADD COLUMN allow_reload yesno_values;
+
+UPDATE alembic_version SET version_num='3bcc0b5bc2c9' WHERE alembic_version.version_num = 'dbc44d5a908';
+
+-- Running upgrade 3bcc0b5bc2c9 -> 5813202e92be
+
+ALTER TABLE ps_globals ADD COLUMN contact_expiration_check_interval INTEGER;
+
+UPDATE alembic_version SET version_num='5813202e92be' WHERE alembic_version.version_num = '3bcc0b5bc2c9';
+
+-- Running upgrade 5813202e92be -> 1c688d9a003c
+
+ALTER TABLE ps_globals ADD COLUMN default_voicemail_extension VARCHAR(40);
+
+ALTER TABLE ps_aors ADD COLUMN voicemail_extension VARCHAR(40);
+
+ALTER TABLE ps_endpoints ADD COLUMN voicemail_extension VARCHAR(40);
+
+ALTER TABLE ps_endpoints ADD COLUMN mwi_subscribe_replaces_unsolicited INTEGER;
+
+UPDATE alembic_version SET version_num='1c688d9a003c' WHERE alembic_version.version_num = '5813202e92be';
+
+-- Running upgrade 1c688d9a003c -> 8d478ab86e29
+
+ALTER TABLE ps_globals ADD COLUMN disable_multi_domain yesno_values;
+
+UPDATE alembic_version SET version_num='8d478ab86e29' WHERE alembic_version.version_num = '1c688d9a003c';
+
+-- Running upgrade 8d478ab86e29 -> 65eb22eb195
+
+ALTER TABLE ps_globals ADD COLUMN unidentified_request_count INTEGER;
+
+ALTER TABLE ps_globals ADD COLUMN unidentified_request_period INTEGER;
+
+ALTER TABLE ps_globals ADD COLUMN unidentified_request_prune_interval INTEGER;
+
+ALTER TABLE ps_globals ADD COLUMN default_realm VARCHAR(40);
+
+UPDATE alembic_version SET version_num='65eb22eb195' WHERE alembic_version.version_num = '8d478ab86e29';
+
+-- Running upgrade 65eb22eb195 -> 81b01a191a46
+
+ALTER TABLE ps_contacts ADD COLUMN reg_server VARCHAR(20);
+
+ALTER TABLE ps_contacts ADD CONSTRAINT ps_contacts_uq UNIQUE (id, reg_server);
+
+UPDATE alembic_version SET version_num='81b01a191a46' WHERE alembic_version.version_num = '65eb22eb195';
+
+-- Running upgrade 81b01a191a46 -> 6be31516058d
+
+ALTER TABLE ps_contacts ADD COLUMN authenticate_qualify yesno_values;
+
+UPDATE alembic_version SET version_num='6be31516058d' WHERE alembic_version.version_num = '81b01a191a46';
+
+-- Running upgrade 6be31516058d -> bca7113d796f
+
+ALTER TABLE ps_endpoints ADD COLUMN deny VARCHAR(95);
+
+ALTER TABLE ps_endpoints ADD COLUMN permit VARCHAR(95);
+
+ALTER TABLE ps_endpoints ADD COLUMN acl VARCHAR(40);
+
+ALTER TABLE ps_endpoints ADD COLUMN contact_deny VARCHAR(95);
+
+ALTER TABLE ps_endpoints ADD COLUMN contact_permit VARCHAR(95);
+
+ALTER TABLE ps_endpoints ADD COLUMN contact_acl VARCHAR(40);
+
+UPDATE alembic_version SET version_num='bca7113d796f' WHERE alembic_version.version_num = '6be31516058d';
+
+-- Running upgrade bca7113d796f -> a845e4d8ade8
+
+ALTER TABLE ps_contacts ADD COLUMN via_addr VARCHAR(40);
+
+ALTER TABLE ps_contacts ADD COLUMN via_port INTEGER;
+
+ALTER TABLE ps_contacts ADD COLUMN call_id VARCHAR(255);
+
+UPDATE alembic_version SET version_num='a845e4d8ade8' WHERE alembic_version.version_num = 'bca7113d796f';
+
+-- Running upgrade a845e4d8ade8 -> ef7efc2d3964
+
+ALTER TABLE ps_contacts ADD COLUMN endpoint VARCHAR(40);
+
+ALTER TABLE ps_contacts ALTER COLUMN expiration_time TYPE BIGINT USING expiration_time::bigint;
+
+CREATE INDEX ps_contacts_qualifyfreq_exp ON ps_contacts (qualify_frequency, expiration_time);
+
+CREATE INDEX ps_aors_qualifyfreq_contact ON ps_aors (qualify_frequency, contact);
+
+UPDATE alembic_version SET version_num='ef7efc2d3964' WHERE alembic_version.version_num = 'a845e4d8ade8';
+
+-- Running upgrade ef7efc2d3964 -> 9deac0ae4717
+
+ALTER TABLE ps_endpoints ADD COLUMN subscribe_context VARCHAR(40);
+
+UPDATE alembic_version SET version_num='9deac0ae4717' WHERE alembic_version.version_num = 'ef7efc2d3964';
+
+-- Running upgrade 9deac0ae4717 -> 4a6c67fa9b7a
+
+ALTER TABLE ps_endpoints ADD COLUMN fax_detect_timeout INTEGER;
+
+UPDATE alembic_version SET version_num='4a6c67fa9b7a' WHERE alembic_version.version_num = '9deac0ae4717';
+
+-- Running upgrade 4a6c67fa9b7a -> c7a44a5a0851
+
+ALTER TABLE ps_globals ADD COLUMN mwi_tps_queue_high INTEGER;
+
+ALTER TABLE ps_globals ADD COLUMN mwi_tps_queue_low INTEGER;
+
+ALTER TABLE ps_globals ADD COLUMN mwi_disable_initial_unsolicited yesno_values;
+
+UPDATE alembic_version SET version_num='c7a44a5a0851' WHERE alembic_version.version_num = '4a6c67fa9b7a';
+
+-- Running upgrade c7a44a5a0851 -> 3772f8f828da
+
+ALTER TYPE pjsip_identify_by_values RENAME TO pjsip_identify_by_values_tmp;
+
+CREATE TYPE pjsip_identify_by_values AS ENUM ('username', 'auth_username');
+
+ALTER TABLE ps_endpoints ALTER COLUMN identify_by TYPE pjsip_identify_by_values USING identify_by::text::pjsip_identify_by_values;
+
+DROP TYPE pjsip_identify_by_values_tmp;
+
+UPDATE alembic_version SET version_num='3772f8f828da' WHERE alembic_version.version_num = 'c7a44a5a0851';
+
+-- Running upgrade 3772f8f828da -> 4e2493ef32e6
+
+ALTER TABLE ps_endpoints ADD COLUMN contact_user VARCHAR(80);
+
+UPDATE alembic_version SET version_num='4e2493ef32e6' WHERE alembic_version.version_num = '3772f8f828da';
+
+-- Running upgrade 4e2493ef32e6 -> a6ef36f1309
+
+ALTER TABLE ps_globals ADD COLUMN ignore_uri_user_options yesno_values;
+
+UPDATE alembic_version SET version_num='a6ef36f1309' WHERE alembic_version.version_num = '4e2493ef32e6';
+
+-- Running upgrade a6ef36f1309 -> 4468b4a91372
+
+ALTER TABLE ps_endpoints ADD COLUMN asymmetric_rtp_codec yesno_values;
+
+UPDATE alembic_version SET version_num='4468b4a91372' WHERE alembic_version.version_num = 'a6ef36f1309';
+
+-- Running upgrade 4468b4a91372 -> 28ab27a7826d
+
+ALTER TABLE ps_endpoint_id_ips ADD COLUMN srv_lookups yesno_values;
+
+UPDATE alembic_version SET version_num='28ab27a7826d' WHERE alembic_version.version_num = '4468b4a91372';
+
+-- Running upgrade 28ab27a7826d -> 465e70e8c337
+
+ALTER TABLE ps_endpoint_id_ips ADD COLUMN match_header VARCHAR(255);
+
+UPDATE alembic_version SET version_num='465e70e8c337' WHERE alembic_version.version_num = '28ab27a7826d';
+
+-- Running upgrade 465e70e8c337 -> 15db7b91a97a
+
+ALTER TABLE ps_endpoints ADD COLUMN rtcp_mux yesno_values;
+
+UPDATE alembic_version SET version_num='15db7b91a97a' WHERE alembic_version.version_num = '465e70e8c337';
+
+-- Running upgrade 15db7b91a97a -> f638dbe2eb23
+
+ALTER TABLE ps_transports ADD COLUMN symmetric_transport yesno_values;
+
+ALTER TABLE ps_subscription_persistence ADD COLUMN contact_uri VARCHAR(256);
+
+UPDATE alembic_version SET version_num='f638dbe2eb23' WHERE alembic_version.version_num = '15db7b91a97a';
+
+-- Running upgrade f638dbe2eb23 -> 8fce4c573e15
+
+ALTER TABLE ps_endpoints ADD COLUMN allow_overlap yesno_values;
+
+UPDATE alembic_version SET version_num='8fce4c573e15' WHERE alembic_version.version_num = 'f638dbe2eb23';
+
+COMMIT;
+
diff --git a/contrib/realtime/postgresql/postgresql_voicemail.sql b/contrib/realtime/postgresql/postgresql_voicemail.sql
new file mode 100644
index 000000000..f9257849c
--- /dev/null
+++ b/contrib/realtime/postgresql/postgresql_voicemail.sql
@@ -0,0 +1,38 @@
+BEGIN;
+
+CREATE TABLE alembic_version (
+ version_num VARCHAR(32) NOT NULL
+);
+
+-- Running upgrade -> a2e9769475e
+
+CREATE TABLE voicemail_messages (
+ dir VARCHAR(255) NOT NULL,
+ msgnum INTEGER NOT NULL,
+ context VARCHAR(80),
+ macrocontext VARCHAR(80),
+ callerid VARCHAR(80),
+ origtime INTEGER,
+ duration INTEGER,
+ recording BYTEA,
+ flag VARCHAR(30),
+ category VARCHAR(30),
+ mailboxuser VARCHAR(30),
+ mailboxcontext VARCHAR(30),
+ msg_id VARCHAR(40)
+);
+
+ALTER TABLE voicemail_messages ADD CONSTRAINT voicemail_messages_dir_msgnum PRIMARY KEY (dir, msgnum);
+
+CREATE INDEX voicemail_messages_dir ON voicemail_messages (dir);
+
+INSERT INTO alembic_version (version_num) VALUES ('a2e9769475e');
+
+-- Running upgrade a2e9769475e -> 39428242f7f5
+
+ALTER TABLE voicemail_messages ALTER COLUMN recording TYPE BYTEA;
+
+UPDATE alembic_version SET version_num='39428242f7f5' WHERE alembic_version.version_num = 'a2e9769475e';
+
+COMMIT;
+