Commit Graph

28717 Commits

Author SHA1 Message Date
Joshua Colp 7540036427 Merge "res_pjsip: Fix tdata leaks in off nominal paths." 2016-11-14 06:47:37 -06:00
Joshua Colp 94f317b99a Merge "Fix closing rtp ports after call finished in chan_unistim." 2016-11-14 06:38:18 -06:00
Joshua Colp 1bd49040c4 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-11 08:17:55 -05:00
Joshua Colp e77aa78dc7 Merge "res_pjsip: Perform resolution when explicit IPv6 transport is used." 2016-11-11 04:37:15 -06:00
Joshua Colp 9d1703cb5d Merge "build: Fix default values for some SANITIZER options" 2016-11-11 04:36:44 -06:00
Igor Goncharovskiy dfb951817f 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-11-11 11:50:37 +03:00
zuul 3d5c61d2e0 Merge "chan_sip: Fix typo and re-wrap surrounding docs" 2016-11-10 23:46:23 -06:00
Richard Mudgett bb196323f9 res_pjsip: Fix tdata leaks in off nominal paths.
Change-Id: Ie83e06e88c2d60157775263b07e40b61718ac97b
2016-11-10 17:15:59 -05:00
Richard Mudgett 9df59d9ff4 res_pjsip_registrar_expire.c: Remove extra linefeed in debug message.
Change-Id: I1f9adb911f23376503396ec8867e8005b755eb94
2016-11-10 16:59:41 -05:00
C.J. Collier 73524bde9c chan_sip: Fix typo and re-wrap surrounding docs
Correct typo of end-pints to end-points
Re-wrap session timer parameter docs to max 80 chars wide; this
eases reading on terminals with lower resolution, commonly the case
for those with visual impairments.

ASTERISK-26573

Change-Id: I22c94459f4bb6b8a2f6713cfd22e87c32f204e6b
Signed-off-by: C.J. Collier <cjcollier@linuxfoundation.org>
2016-11-10 15:16:02 -05:00
Joshua Colp 6ee609dec9 Merge "app_queue: Add mention of 'ABANDON' variable to CHANGES." 2016-11-10 10:21:54 -06:00
Joshua Colp 515edf728f Merge "app_queue: new variable set when abandoned" 2016-11-10 10:21:28 -06:00
Joshua Colp bdb6d928c5 res_pjsip: Perform resolution when explicit IPv6 transport is used.
This change fixes the SIP resolver such that if an IPv6 transport
is explicitly used it will resolve NAPTR, SRV, and AAAA records.

You can explicitly use one by specifying it on an endpoint.

ASTERISK-26571

Change-Id: I2ed3ce81b43a6a8a937c0ebc1b8ed2da5ac2ef36
2016-11-10 10:11:13 -05:00
Joshua Colp 93a0de1f0e app_queue: Add mention of 'ABANDON' variable to CHANGES.
ASTERISK-26558

Change-Id: I1127010181e79c8ac291f72f036cb8e430dc7f7e
2016-11-10 09:34:22 -05:00
George Joseph 5cd03f6a7d Merge "Revert "Add API for channel frame deferral."" 2016-11-10 07:35:19 -06:00
George Joseph 7efac7b3d0 Merge "Revert "AGI: Only defer frames when in an interception routine."" 2016-11-10 07:35:08 -06:00
George Joseph 67000d96b0 Merge "Revert "autoservice: Use frame deferral API"" 2016-11-10 07:34:55 -06:00
George Joseph a723e398b8 Merge "Revert "channel: Use frame deferral API for safe sleep."" 2016-11-10 07:34:35 -06:00
George Joseph fa749866c1 Revert "Add API for channel frame deferral."
This reverts commit f073f648b8.
Multiple testsuite failures were detected after the fact.

Change-Id: I968c380418bf65c7166f6ecff30fe8e247ea6682
2016-11-10 08:34:10 -05:00
George Joseph 6bce938c2f Revert "AGI: Only defer frames when in an interception routine."
This reverts commit 28926d1c81.
Multiple testsuite failures were detected after the fact.

Change-Id: I8d4f5ccbb421a351d616254844ae7e5a31053edb
2016-11-10 08:33:49 -05:00
George Joseph edca6911f3 Revert "autoservice: Use frame deferral API"
This reverts commit afef1b8e4a.
Multiple testsuite failures were detected after the fact.

Change-Id: Ib4cb0c0a6475681ce817f71b4050be25640ab67f
2016-11-10 08:32:50 -05:00
George Joseph e5365dada5 Revert "channel: Use frame deferral API for safe sleep."
This reverts commit 392202304d.

Multiple testsuite issues were discovered after the fact.

Change-Id: I848c4196dca2994b1a368087004326ea354cff95
2016-11-10 08:31:52 -05:00
George Joseph edea41126b 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-09 19:26:27 -05:00
Sebastian Gutierrez 4e8ab6cda9 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-09 13:32:19 -05:00
Mark Michelson e5860ce07d 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-09 11:48:19 -05:00
Joshua Colp 0d85f1868d Merge "automon: restore mixing of the both channels after recording stops" 2016-11-08 13:28:02 -06:00
Mark Michelson 392202304d 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
(cherry picked from commit d149c4b9e0)
2016-11-08 07:07:03 -07:00
Mark Michelson afef1b8e4a 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
(cherry picked from commit 8ba3e2fc27)
2016-11-08 07:06:57 -07:00
Mark Michelson 28926d1c81 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-08 07:06:44 -07:00
Mark Michelson f073f648b8 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-08 07:37:54 -05:00
Joshua Colp 61af0e6704 Merge "res_http_websocket: Increase the buffer size for non-LOW_MEMORY systems" 2016-11-08 04:59:53 -06:00
Joshua Colp 3019dfd49f Merge "res_stasis: Don't unsubscribe from a NULL bridge." 2016-11-08 04:59:24 -06:00
Joshua Colp dbbd1b8834 Merge "chan_ooh323: reset rrq count on gk registration" 2016-11-08 04:59:12 -06:00
Joshua Colp 5258b24d6f Merge "chan_ooh323: Fixes to work right with Cisco devices" 2016-11-08 04:58:04 -06:00
Joshua Colp 1ab943a425 Merge "stasis_recording/stored: remove calls to deprecated readdir_r function." 2016-11-08 04:57:55 -06:00
Joshua Colp a8a8235c6d Merge "res_stasis: Set a video source mode on Stasis created bridges" 2016-11-07 19:07:56 -06:00
Joshua Colp 11b2912553 Merge "main/bridge: Add some verbose logging for video source changes" 2016-11-07 17:49:23 -06:00
Joshua Colp 4e5bf15f2d Merge "main/bridge_channel: Fix channel reference leak on video source" 2016-11-07 16:43:42 -06:00
Joshua Colp 94de6b7ae4 Merge "bridges/bridge_softmix: Remove SSRC changes on join/leave; update video source" 2016-11-07 16:01:03 -06:00
Joshua Colp 15665daf46 Merge "pjproject_bundled: Fix issue with libasteriskpj needing libresample" 2016-11-07 10:40:14 -06:00
Joshua Colp d30415bfa1 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-07 10:02:25 -05:00
Alexander Anikin 0a698cd932 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-07 10:01:25 -05:00
Alexander Anikin a1cdc3891a chan_ooh323: reset rrq count on gk registration
reset registration attempts count on success registration on gatekeeper

Change-Id: I5f47351852e0ca76c9ac78421659600e0f106336
2016-11-07 09:58:50 -05:00
Joshua Colp 876c6b0c96 Merge "chan_ooh323: Fix infinite loop on read second part of H.225 packet" 2016-11-07 08:07:10 -06:00
zuul 0cc14597b2 Merge "rtp_engine: Allow more than 32 dynamic payload types." 2016-11-07 06:48:38 -06:00
Michael Kuron fbbbd0add9 automon: restore mixing of the both channels after recording stops
This is a regression over Asterisk 11, introduced by
2dc8a06006. 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-06 04:49:36 -05:00
Matt Jordan 367d4903cc 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:51:28 -05:00
Matt Jordan 7a449b6819 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:51:03 -05:00
Matt Jordan bbe943729a 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:50:41 -05:00
Matt Jordan a70d6dba8c 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:50:24 -05:00