Commit Graph

29530 Commits

Author SHA1 Message Date
Joshua Colp 0405185357 Merge "SDP: Search for the ice-lite attribute in the right place." 2017-06-16 12:00:38 -05:00
Jenkins2 d81293a5dd Merge changes from topic 'sdp_api_adjustments'
* changes:
  SDP: Set the remote c= line in RTP instance.
  SDP: Add t= line in sdp_create_from_state()
  stream: Ignore declined streams for some topology calls.
2017-06-16 11:51:41 -05:00
Jenkins2 2f684eb6a5 Merge "stream: Add ast_stream_topology_del_stream() and unit test." 2017-06-16 11:50:32 -05:00
Jenkins2 322a1c3222 Merge "res_ari: Add "module loaded" check to ari stubs" 2017-06-16 11:12:48 -05:00
Jenkins2 b1f46c2a36 Merge "chan_pjsip: Fix PJSIP_MEDIA_OFFER dialplan function read." 2017-06-16 07:51:17 -05:00
George Joseph 1ac0096512 res_ari: Add "module loaded" check to ari stubs
The recent change to make the use of LOAD_DECLINE more consistent
caused res_ari to unload itself before declining if the ari.conf
file wasn't found.  The ari stubs though still tried to use the
configuration resulting in segfaults.

This patch creates a new CHECK_ARI_MODULE_LOADED macro which tests
to see if res_ari is actually loaded and causes the stubs to also
decline if it isn't.  The macro was then added to the mustache
template's "load_module" function.

ASTERISK-27026 #close
Reported-by: Ronald Raikes

Change-Id: I263d56efa628ee3c411bdcd16d49af6260c6c91d
2017-06-15 19:34:03 -05:00
Joshua Colp 41bd01c861 Merge "channel: Fix reference counting in ast_channel_suppress." 2017-06-15 16:24:55 -05:00
Jenkins2 2adc0aef19 Merge "res_pjsip_pubsub: Fix reference to released endpoint" 2017-06-15 15:24:25 -05:00
Joshua Colp 1f2ab6e72a Merge "bridge: Add a deferred queue." 2017-06-15 15:02:26 -05:00
Richard Mudgett 11ec2945c7 chan_pjsip: Fix PJSIP_MEDIA_OFFER dialplan function read.
The construction of the returned string assumed incorrectly that the
supplied buffer would always be initialized as an empty string.  If it is
not an empty string we could overrun the supplied buffer by the length of
the non-empty buffer string plus one.  It is also theoreticaly possible
for the supplied buffer to be overrun by a string terminator during a read
operation even if the supplied buffer is an empty string.

* Fix the assumption that the supplied buffer would already be an empty
string.  The buffer is not guaranteed to contain an empty string by all
possible callers.

* Fix string terminator buffer overrun potential.

Change-Id: If6a0806806527678c8554b1dcb34fd7808aa95c9
2017-06-15 12:35:53 -05:00
Richard Mudgett 716abaf33d SDP: Search for the ice-lite attribute in the right place.
* Pulled finding the rtcp-mux attribute flag out of the ICE candidate for
loop.  Also ordered the RTCP ICE candidate skip test to fail earlier.

Change-Id: I8905d9c68563027a46cd3ae14dbcc27e9c814809
2017-06-15 09:42:15 -05:00
Richard Mudgett a95584d079 SDP: Set the remote c= line in RTP instance.
Change-Id: I23b646392082deab65bedeb19b12dcbcb9216d0c
2017-06-15 09:42:15 -05:00
Richard Mudgett 06265b8c8a stream: Add ast_stream_topology_del_stream() and unit test.
Change-Id: If07e3c716a2e3ff85ae905c17572ea6ec3cdc1f9
2017-06-15 09:42:15 -05:00
Richard Mudgett 0fdb99c268 SDP: Add t= line in sdp_create_from_state()
Change-Id: I4060391328a893101ed87d0d9bacbbab4fd8b141
2017-06-15 09:42:15 -05:00
Richard Mudgett 4797a8bb81 stream: Ignore declined streams for some topology calls.
* Made ast_format_cap_from_stream_topology() not include any formats from
declined streams.

* Made ast_stream_topology_get_first_stream_by_type() ignore declined
streams to return the first active stream of the type.

* Updated unit tests to check these changes have the expected effect.

Change-Id: Iabbc6a3e8edf263a25fd3056c3c614407c7897df
2017-06-15 09:42:15 -05:00
George Joseph 15c04db3bd Merge "app_voicemail.c: Fix compile error when IMAP enabled." 2017-06-15 09:06:23 -05:00
George Joseph f743e2e84c Merge "app_voicemail: IMAP logout on MWI unsubscribe" 2017-06-15 09:05:57 -05:00
Jenkins2 2c3c862cee Merge "res_pjsip_refer/session: Calls dropped during transfer" 2017-06-15 08:12:43 -05:00
Joshua Colp bd16c3c524 channel: Fix reference counting in ast_channel_suppress.
The ast_channel_suppress function wrongly decremented the
reference count of the underlying structure used to keep
track of what should be suppressed on a channel if the
function was called multiple times on the same channel.

This change cleans up the reference counting a bit so
this no longer occurs.

ASTERISK-27016

Change-Id: I2eed4077cb4916e6626f9f120b63b963acc5c136
2017-06-15 07:36:59 -05:00
George Joseph 54a08a2e43 Merge "res_rtp_asterisk: Fix ssrc change for rtcp srtp" 2017-06-14 16:05:37 -05:00
Jenkins2 4681b9baef Merge "res_pjsip_session: Correct inverted test in session_outgoing_nat_hook" 2017-06-14 15:54:22 -05:00
Jenkins2 433e876317 Merge "res_pjsip_transport_websocket: Add NULL check in get_write_timeout" 2017-06-14 15:24:32 -05:00
George Joseph c27acb4c99 Merge "pjproject_bundled: Use the asterisk github mirror for download" 2017-06-14 14:42:32 -05:00
Richard Mudgett b8b0b61a24 app_voicemail.c: Fix compile error when IMAP enabled.
Change-Id: I2703f15b4099b4210c68eccf293105d1975c1fc1
2017-06-14 12:35:54 -05:00
Alexei Gradinari 023eede265 app_voicemail: IMAP logout on MWI unsubscribe
Closing IMAP connection on MWI unsubscribe.

ASTERISK-24052 #close

Change-Id: I4ff964026002b2817b48c20fb4239f0a880228fd
2017-06-14 11:30:34 -05:00
George Joseph 65ed2ea311 res_pjsip_pubsub: Fix reference to released endpoint
destroy_subscription was attempting to get the id of the
subscription tree's endpoint after we'd already called ao2_cleanup
on it causing a segfault.

Moved the cleanup until after the debug statement and since
endpoint could also be NULL at this point, check for that as well.

ASTERISK-27057 #close
Reported-by: Ryan Smith

Change-Id: Ice0a7727f560cf204d870a774c6df71e159b1678
2017-06-14 11:16:54 -05:00
George Joseph ea3f8c6889 res_pjsip_session: Correct inverted test in session_outgoing_nat_hook
There was a typo introduced in commit 776ffd77 which was preventing
the transport's external media address from being used.

ASTERISK-27024 #close
Reported-by: Christopher van de Sande
patches:
	patch.diff submitted by Florian Floimair (license 6892)

Change-Id: I7ec617171eaa2d86d2680b00cf37d5088adafc27
2017-06-14 11:07:07 -05:00
Joshua Colp c33168c147 Merge "CFLAGS for BIND8 support" 2017-06-14 11:07:04 -05:00
George Joseph 88f18faf2a res_rtp_asterisk: Fix ssrc change for rtcp srtp
It looks like there was a copy/paste error in ast_rtp_change_source
where if there was a rtcp srtp instance, instead of updating its
ssrc we were updating the srtp instance ssrc twice.

ASTERISK-27022 #close
Reported-by: Michael Walton

Change-Id: Ic88f3aee7227b401c58745ac265ff92c19620095
2017-06-14 08:59:09 -05:00
Joshua Colp d6386a8f0c bridge: Add a deferred queue.
This change adds a deferred queue to bridging. If a bridge
technology determines that a frame can not be written and
should be deferred it can indicate back to bridging to do so.
Bridging will then requeue any deferred frames upon a new
channel joining the bridge.

This change has been leveraged for T.38 request negotiate
control frames. Without the deferred queue there is a race
condition between the bridge receiving the T.38 request
negotiate and the second channel joining and being in the
bridge. If the channel is not yet in the bridge then the T.38
negotiation fails.

A unit test has also been added that confirms that a T.38
request negotiate control frame is deferred when no other
channel is in the bridge and that it is requeued when a new
channel joins the bridge.

ASTERISK-26923

Change-Id: Ie05b08523f399eae579130f4a5f562a344d2e415
2017-06-13 17:06:15 -05:00
Kevin Harwell 9e53c30610 res_pjsip_refer/session: Calls dropped during transfer
When doing an attended transfer it's possible for the transferer, after
receiving an accepted response from Asterisk, to send a BYE to Asterisk,
which can then be processed before Asterisk has time to start and/or
complete the transfer process. This of course causes the transfer to not
complete successfully, thus dropping the call.

This patch makes it so any BYEs received from the transferer, after the REFER,
that initiate a session end are deferred until the transfer is complete. This
allows the channel that would have otherwise been hung up by Asterisk to
remain available throughout the transfer process.

ASTERISK-27053 #close

Change-Id: I43586db79079457d92d71f1fd993be9a3b409d5a
2017-06-13 14:28:21 -05:00
George Joseph b2fd7e5069 pjproject_bundled: Use the asterisk github mirror for download
We now mirror the pjproject tarball and md5 at
https://github.com/asterisk/third-party/tree/master/pjproject

To improve download reliability, we now get the tarball from
our mirror instead of from pjsip.org.

ASTERISK-27052 #close
Reported-by: 'alex'

Change-Id: I60236587a8935bfa71fcc391f4e2ecb31918c08a
2017-06-13 10:52:29 -05:00
Alexei Gradinari 42f738e052 res_pjsip_mwi: don't create mwi subscriptions if initial unsolicited disabled
If sending unsolicited mwi to all endpoints on startup is disabled
(mwi_disable_initial_unsolicited=yes) do not need to create subscriptions.
If there are many (thousands) realtime endpoints configured with unsolicited mwi
and Vociemail Storage configured as ODBC or IMAP there will be huge number of
DB/IMAP requests on startup.

ASTERISK-26230 #close

Change-Id: I50ae909639e3ee298b931a54def4b2b9e0fb86c5
2017-06-13 09:34:24 -05:00
Jenkins2 abe1dd3039 Merge "pjsip: Extend 'asymmetric_rtp_codec' option to include us changing." 2017-06-13 09:17:10 -05:00
Jenkins2 5d3420a2de Merge "BuildSystem: Add patches to allow building with recent LibreSSL" 2017-06-13 05:47:10 -05:00
Jenkins2 b17e05b53a Merge "BuildSystem: Fix build on FreeBSD due to missing crypt.h" 2017-06-12 16:33:58 -05:00
Jenkins2 44a0edcf71 Merge "codecs.conf.sample: Fix max_bandwidth speling error" 2017-06-12 16:07:50 -05:00
Joshua Colp ac5f40f797 Merge "eventfd: Disable during cross compilation" 2017-06-12 15:32:12 -05:00
Sean Bright 847087a4ff codecs.conf.sample: Fix max_bandwidth speling error
Reported by Sylvain Boily via asterisk-dev mailing list.

Change-Id: Idc7623f335aea3e144dd369ba383b9a757480a9d
2017-06-11 12:08:05 -05:00
Jørgen H 8d1f54b92e res_pjsip_transport_websocket: Add NULL check in get_write_timeout
Added check for NULL return value when calling
ast_sorcery_retrieve_by_id in function get_write_timeout

ASTERISK-27046

Change-Id: I9357717278da631c3a1cb502c412693929b0cb41
2017-06-09 09:55:44 -05:00
Guido Falsi d27168d36f BuildSystem: Add patches to allow building with recent LibreSSL
Add some #if defined checks which allow building against LibreSSL.
These patchess come from OpenBSD ports:
https://cvsweb.openbsd.org/cgi-bin/cvsweb/ports/telephony/asterisk/patches/

ASTERISK-27043 #close
Reported by: OpenBSD ports

Change-Id: I2f6c08a5840b85ad4d2b75370b947ddde7a9a572
2017-06-09 15:34:34 +02:00
David M. Lee fcb1a0d7e8 CFLAGS for BIND8 support
Some systems (like macOS) require BIND_8_COMPAT to be defined so that
the nameser libraries are, well, BIND8 compatible.

Change-Id: If79fc27a64f90de1835b5aa3aadfa9be22bd16b0
2017-06-08 17:09:33 -05:00
Jenkins2 db5245f9fd Merge "CHANGES: correct version for a new option 'refer_blind_progress'" 2017-06-08 11:18:18 -05:00
Guido Falsi 7b668297f3 BuildSystem: Fix build on FreeBSD due to missing crypt.h
FreeBSD does not include a crypt.h include file. Definitions for
crypt() and crypt_r() are in unistd.h

ASTERISK-27042 #close

Change-Id: Ib307ee5e384870c6af50efa89fb73722dd0c3a7e
2017-06-08 10:42:54 -05:00
Joshua Colp 5b80496b42 chan_pjsip: Update device state when in early media.
The chan_pjsip module uses a calculation approach for
determining device state. This means that in situations
where we would expect device state to change we need to
tell the core to query. A scenario that was missed is
when early media was signaled.

This change adds the notification for the core to
query device state when we are told that early media
is being provided.

ASTERISK-27039

Change-Id: Iafebfd152894966344ff2e950a3cee9f59a3eb6f
2017-06-07 15:23:14 -05:00
Sean Bright e497a76d24 eventfd: Disable during cross compilation
Reported by Lonnie Abelbeck <lonnie@abelbeck.com> via private e-mail.

Change-Id: Icc80f12b8d8d591e14a8e0ed9f1c02cbd193a89b
2017-06-07 14:36:37 -05:00
Alexei Gradinari 19da99df2f CHANGES: correct version for a new option 'refer_blind_progress'
Change-Id: If4817d26a8974610827624fb8a4e56d681d6bf97
2017-06-07 11:25:50 -05:00
Joshua Colp d3e951edf5 pjsip: Extend 'asymmetric_rtp_codec' option to include us changing.
PJSIP support in Asterisk differs from chan_sip in that it
allows media to be sent as-is without transcoding provided
the codecs were negotiated in the SDP. This is allowed
according to the RFC. Support for this differs quite a lot
though and some endpoints do not handle it well.

This change extends the 'asymmetric_rtp_codec' option to
also cover this case. When set to no (the default) the code
behaves as chan_sip does - the best codec is selected and
we will only ever send that, unless we change what we are
sending if the remote side changes. When set to yes we
will send media as-is without transcoding if the codec
has been negotiated in the SDP.

ASTERISK-26996

Change-Id: Ib1647f6902a0843e8c435946f831c2159e8d1d51
2017-06-07 13:34:58 +00:00
Joshua Colp 9f054955f2 Merge "res_pjsip: Add support for returning only reachable contacts and use it." 2017-06-07 08:33:53 -05:00
Jenkins2 29f87a5530 Merge "channel: ast_write frame wrongly freed after call to audiohooks" 2017-06-07 08:07:10 -05:00