summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2016-11-10Merge "app_queue: Add mention of 'ABANDON' variable to CHANGES."Joshua Colp
2016-11-10Merge "app_queue: new variable set when abandoned"Joshua Colp
2016-11-10res_pjsip: Perform resolution when explicit IPv6 transport is used.Joshua Colp
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-10app_queue: Add mention of 'ABANDON' variable to CHANGES.Joshua Colp
ASTERISK-26558 Change-Id: I1127010181e79c8ac291f72f036cb8e430dc7f7e
2016-11-10Merge "Revert "Add API for channel frame deferral.""George Joseph
2016-11-10Merge "Revert "AGI: Only defer frames when in an interception routine.""George Joseph
2016-11-10Merge "Revert "autoservice: Use frame deferral API""George Joseph
2016-11-10Merge "Revert "channel: Use frame deferral API for safe sleep.""George Joseph
2016-11-10Revert "Add API for channel frame deferral."George Joseph
This reverts commit f073f648b87d45e4729969fd2d83695c300757d1. Multiple testsuite failures were detected after the fact. Change-Id: I968c380418bf65c7166f6ecff30fe8e247ea6682
2016-11-10Revert "AGI: Only defer frames when in an interception routine."George Joseph
This reverts commit 28926d1c81540bbeb16802814d3f2e63c2347bd2. Multiple testsuite failures were detected after the fact. Change-Id: I8d4f5ccbb421a351d616254844ae7e5a31053edb
2016-11-10Revert "autoservice: Use frame deferral API"George Joseph
This reverts commit afef1b8e4a311d33b3e485b9bab3c6e7fd13fbc9. Multiple testsuite failures were detected after the fact. Change-Id: Ib4cb0c0a6475681ce817f71b4050be25640ab67f
2016-11-10Revert "channel: Use frame deferral API for safe sleep."George Joseph
This reverts commit 392202304d248147378f1e16f1f012285dc1221f. Multiple testsuite issues were discovered after the fact. Change-Id: I848c4196dca2994b1a368087004326ea354cff95
2016-11-09build: Fix default values for some SANITIZER optionsGeorge Joseph
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-09app_queue: new variable set when abandonedSebastian Gutierrez
sets the variable ABANDONED to TRUE if the call was not answered. ASTERISK-26558 Change-Id: I4729af9bff4eba436d8a776afd3374065d0036d3
2016-11-09res_pjsip_session: Do not call session supplements when it's too late.Mark Michelson
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-08Merge "automon: restore mixing of the both channels after recording stops"Joshua Colp
2016-11-08channel: Use frame deferral API for safe sleep.Mark Michelson
This is another case where manual frame deferral can be replaced with centralized routines instead. Change-Id: I42cdf205f8f29a7977e599751a57efbaac07c30e (cherry picked from commit d149c4b9e07eeb880d8428ad52c6fdb315cc15f5)
2016-11-08autoservice: Use frame deferral APIMark Michelson
Rather than use manual frame deferral, just let the channel API do it for us. ASTERISK-26343 Change-Id: I688386f36e765dbc07be863943a43f26bd5eac49 (cherry picked from commit 8ba3e2fc27f9966b8c7ce75c1eca6208613a9315)
2016-11-08AGI: Only defer frames when in an interception routine.Mark Michelson
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-08Add API for channel frame deferral.Mark Michelson
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-08Merge "res_http_websocket: Increase the buffer size for non-LOW_MEMORY systems"Joshua Colp
2016-11-08Merge "res_stasis: Don't unsubscribe from a NULL bridge."Joshua Colp
2016-11-08Merge "chan_ooh323: reset rrq count on gk registration"Joshua Colp
2016-11-08Merge "chan_ooh323: Fixes to work right with Cisco devices"Joshua Colp
2016-11-08Merge "stasis_recording/stored: remove calls to deprecated readdir_r function."Joshua Colp
2016-11-07Merge "res_stasis: Set a video source mode on Stasis created bridges"Joshua Colp
2016-11-07Merge "main/bridge: Add some verbose logging for video source changes"Joshua Colp
2016-11-07Merge "main/bridge_channel: Fix channel reference leak on video source"Joshua Colp
2016-11-07Merge "bridges/bridge_softmix: Remove SSRC changes on join/leave; update ↵Joshua Colp
video source"
2016-11-07Merge "pjproject_bundled: Fix issue with libasteriskpj needing libresample"Joshua Colp
2016-11-07res_stasis: Don't unsubscribe from a NULL bridge.Joshua Colp
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-07chan_ooh323: Fixes to work right with Cisco devicesAlexander Anikin
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-07chan_ooh323: reset rrq count on gk registrationAlexander Anikin
reset registration attempts count on success registration on gatekeeper Change-Id: I5f47351852e0ca76c9ac78421659600e0f106336
2016-11-07Merge "chan_ooh323: Fix infinite loop on read second part of H.225 packet"Joshua Colp
2016-11-07Merge "rtp_engine: Allow more than 32 dynamic payload types."zuul
2016-11-06automon: restore mixing of the both channels after recording stopsMichael Kuron
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-04res_http_websocket: Increase the buffer size for non-LOW_MEMORY systemsMatt Jordan
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-04res_stasis: Set a video source mode on Stasis created bridgesMatt Jordan
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-04main/bridge_channel: Fix channel reference leak on video sourceMatt Jordan
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-04main/bridge: Add some verbose logging for video source changesMatt Jordan
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-04bridges/bridge_softmix: Remove SSRC changes on join/leave; update video sourceMatt Jordan
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-11-04stasis_recording/stored: remove calls to deprecated readdir_r function.Kevin Harwell
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-04Revert "chan_sip: Fix lastrtprx always updated"Kevin Harwell
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-03chan_ooh323: Fix infinite loop on read second part of H.225 packetAlexander Anikin
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-03pjproject_bundled: Fix issue with libasteriskpj needing libresampleGeorge Joseph
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-03Merge "chan_sip: add missing account code"Joshua Colp
2016-11-02Merge "app_dial: Fix incorrect device state when channel is picked up."zuul
2016-11-02Merge "chan_dahdi: remove by_name support"zuul
2016-11-02chan_sip: add missing account codeSebastian Gutierrez
Added missing account to AMI event of sip show peers ASTERISK-26176 #close Change-Id: Ieb6c2c80a838a1b59c82103eba4c63ba238dc482
2016-11-02app_dial: Fix incorrect device state when channel is picked up.Joshua Colp
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