summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2017-10-17Merge "contrib/script/sip_to_pjsip: implement 'all' for allow/disallow"Jenkins2
2017-10-17Merge "bridge_simple: Improve renegotiation success rate."Jenkins2
2017-10-17Merge "chan_dahdi: wrap include file which is not present on BSD systems in ↵Jenkins2
#ifdef"
2017-10-17Merge "res_pjsip_session: Rewrite o= with external_media_address."Jenkins2
2017-10-17bridge_softmix: Reduce topology cloning and improve renegotiation.Joshua Colp
As channels join and leave an SFU the bridge_softmix module needs to renegotiate to add and remove their streams from the other participants. Previously this was done by constructing the ideal stream topology every time but in the case of leave this was incomplete. This change makes it so bridge_softmix keeps an ideal stream topology for each channel and uses it when making changes. This ensures that when we request a renegotiation we are always certain that we are aiming for the best stream topology possible. In the case of a channel leaving this ensures that we try to have an existing participant fill their place if a participant has a fixed limit on the maximum number of video streams they allow. ASTERISK-27354 Change-Id: I58070f421ddeadd2844a33b869b052630cf2e514
2017-10-16cdr.c: Rename the Party A CDR container.Richard Mudgett
* Rename the Party A CDR container from active_cdrs_by_channel to active_cdrs_master. * Renamed the support functions associated with active_cdrs_master appropriately. ASTERISK-27335 Change-Id: I6104bb3edc3a0b7243ce502e45e8832b0cff14f7
2017-10-16cdr.c: Add container to key off of Party B channel names.Richard Mudgett
The CDR performance gets worse the further it gets behind in processing stasis messages. One of the reasons is because of a n*m loop used when processing Party B information. * Added a new CDR container that is keyed to Party B so we don't need such a large loop when processing Party B information. NOTE: To reduce the size of the patch I deferred to another patch the renaming of the Party A active_cdrs_by_channel container to active_cdrs_master and renaming the container's hash and cmp functions appropriately. ASTERISK-27335 Change-Id: I0bf66e8868f8adaa4b5dcf9e682e34951c350249
2017-10-16Merge "declare optional openssl dependencies in moduleinfo"Jenkins2
2017-10-16contrib/script/sip_to_pjsip: implement 'all' for allow/disallowTorrey Searle
when 'all' is specified in an allow or disallow section, it should erase all values from the inverse section in the default config. E.G. allow=all should erase any deny values from default config & vice-versa ASTERISK-27333 #close Change-Id: I99219478fb98f08751d769daaee0b7795118a5a6
2017-10-16Merge "cdr.c: Eliminated many calls to ao2_global_obj_ref()."Joshua Colp
2017-10-16Merge "cdr.c: Defer getting ao2_global_obj_ref() until needed."Joshua Colp
2017-10-15Merge "ast_bt_get_symbols: Prevent double-free."Jenkins2
2017-10-15Merge "tcptls: NULL-check the parameter of ast_ssl_teardown before accessing ↵Joshua Colp
it."
2017-10-14chan_dahdi: wrap include file which is not present on BSD systems in #ifdefGuido Falsi
The sys/sysmacros.h include file does not exist in BSD systems and is not required to build this module there. Since an "#if defined(__NetBSD__) || defined(__FreeBSD__)" section already exist I moved that include line inside it's #else branch. ASTERISK-27343 #close Change-Id: Ibfb64f4e9a0ce8b6eda7a7695cfe57916f175dc1
2017-10-14res_pjsip_session: Rewrite o= with external_media_address.Alexander Traud
PJSIP allows a domain name as external_media_address. This allows chan_pjsip to be used behind a NAT with changing IP addresses. The IP address of that domain is resolved to the c= line already. This change sets also the o= line to that domain. ASTERISK-27341 #close Change-Id: I690163b6e762042ec38b3995aa5c9bea909d8ec4
2017-10-13Merge "cdr.c: Set stringfields only if they are different."Jenkins2
2017-10-13bridge_simple: Improve renegotiation success rate.Joshua Colp
When making channels compatible the bridge_simple module will renegotiate one to better match the other. Some endpoints incorrectly terminate the call if this process fails. To better handle this scenario the audio streams present on the new requested topology will include any existing negotiated formats that happen to exist on the first valid audio stream. This ensures formats are persent that are known to be acceptable to the remote endpoint. ASTERISK-27259 Change-Id: I8fc0cc03e8bcfd0be8302f13b9f32d8268977f43
2017-10-13Merge "cdr.c: Fix setting dnid, callingsubaddr, and calledsubaddr"Kevin Harwell
2017-10-13ast_bt_get_symbols: Prevent double-free.Corey Farrell
It's possible for bfdobj to be created but syms not created. If syms was not allocated in the current loop iteration but was allocated in the previous iteration it would crash. ASTERISK-27340 Change-Id: I5b110c609f6dfe91339f782a99a431bca5837363
2017-10-13tcptls: NULL-check the parameter of ast_ssl_teardown before accessing it.Alexander Traud
This avoids a crash on stopping a chan_sip which failed to start its TLS server. ASTERISK-27339 #close Change-Id: I327fc70db68eaaca5b50a15c7fd687fde79263d5
2017-10-12cdr.c: Eliminated many calls to ao2_global_obj_ref().Richard Mudgett
The CDR performance gets worse the further it gets behind in processing stasis messages. One of the reasons is we were getting the global config to determine if we needed to log a debugging message. * Many calls to ao2_global_obj_ref() were just so we could determine if debug mode is enabled. Made a global flag to check instead. * Eliminated many RAII_VAR() usages associated with the remaining ao2_global_obj_ref() calls. * Added missing NULL checks for the returned ao2_global_obj_ref() value. ASTERISK-27335 Change-Id: Iceaad93172862f610cad0188956634187bfcc7cd
2017-10-12cdr.c: Defer getting ao2_global_obj_ref() until needed.Richard Mudgett
The CDR performance gets worse the further it gets behind in processing stasis messages. One of the reasons is we were getting the global config even if we didn't need it. * Most uses of the global config were only needed on off nominal code paths so it makes sense to not get it until absolutely needed. ASTERISK-27335 Change-Id: I00c63b7ec233e5bfffd5d976f05568613d3c2365
2017-10-12cdr.c: Set stringfields only if they are different.Richard Mudgett
The CDR performance gets worse the further it gets behind in processing stasis messages. One of the reasons is we were repeatedly setting string fields to potentially the same string in base_process_party_a(). Setting a string field involves allocating room for the new string out of a memory pool which may have to allocate even more memory. * Check to see if the string field is already set to the desired string. ASTERISK-27335 Change-Id: I3ccb7e23f1488417e08cafe477755033eed65a7c
2017-10-12cdr.c: Fix setting dnid, callingsubaddr, and calledsubaddrRichard Mudgett
The string comparisons for setting these CDR variables was inverted. We were repeatedly setting these CDR variables only if the channel snapshots had the same value. ASTERISK-27335 Change-Id: I9482073524411e7ea6c03805b16de200cb1669ea
2017-10-12features, manager : Add CancelAtxfer AMI actionThomas Sevestre
Add action to cancel feature attended transfer with AMI interface ASTERISK-27215 #close Change-Id: Iab8a81362b5a1757e2608f70b014ef863200cb42
2017-10-12Merge "res_pjsip_session: Prevent user=phone being added to anonimized URIs."Jenkins2
2017-10-12Merge "sorcery: Use ao2_weakproxy to hold list of instances."Jenkins2
2017-10-12res_pjsip_session: Prevent user=phone being added to anonimized URIs.Daniel Tryba
Move ast_sip_add_usereqphone to be called after anonymization of URIs, to prevent the user_eq_phone adding "user=phone" to URIs containing a username that is not a phonenumber (RFC3261 19.1.1). An extra call to ast_sip_add_usereqphone on the saved version before anonymization is added to add user=phone" to the PAI. ASTERISK-27047 #close Change-Id: Ie5644bc66341b86dc08b1f7442210de2e6acdec6
2017-10-12Merge "named_locks: Use ao2_weakproxy_find."Jenkins2
2017-10-12Merge "astobj2: Add ao2_weakproxy_find function."Jenkins2
2017-10-12Merge "astobj2: Run weakproxy callbacks outside of lock."Jenkins2
2017-10-12Merge "cdr.c: Defer misc checks."Joshua Colp
2017-10-12Merge "res_pjsip: Prevent "user=phone" being added multiple times to header"Jenkins2
2017-10-11Merge "cdr_mysql: avoid releasing a config string"Jenkins2
2017-10-11Merge "chan_vpb: Fix a gcc 7 out-of-bounds complaint"Joshua Colp
2017-10-11Merge "app_originate: Set ORIGINATE_STATUS correctly on failure"Joshua Colp
2017-10-11res_pjsip: Prevent "user=phone" being added multiple times to headerDaniel Tryba
ast_sip_add_usereqphone adds "user=phone" to the header every time is is called without checking whether the param already exists. Preventing this by searching to string representation of header for "user=phone". ASTERISK-26988 #close Change-Id: Ib84383b07254de357dc6a98d91fc1d2c2c3719e6
2017-10-11cdr.c: Defer misc checks.Richard Mudgett
Try to defer some checks until needed in case there is an early exit. Change-Id: Ibc6b34c38a4f60ad4f9b67984b7d070a07257064
2017-10-11Merge "cdr.c: Eliminated simple RAII_VAR usages."Jenkins2
2017-10-11Merge "ari/bridge: Add mute, dtmf suppression controls"Jenkins2
2017-10-11Merge "app_queue.c: clear moh field in init_queue"Jenkins2
2017-10-11ari/bridge: Add mute, dtmf suppression controlsSeán C McCord
Add bridge_features structure to bridge creation. Specifically, this implements mute and DTMF suppression, but others should be able to be easily added to the same structure. ASTERISK-27322 #close Reported by: Darren Sessions Sponsored by: AVOXI Change-Id: Id4002adfb65c9a8027ee9e1a5f477e0f01cf9d61
2017-10-11chan_vpb: Fix a gcc 7 out-of-bounds complaintGeorge Joseph
chan_vpb was trying to use sizeof(*p->play_dtmf), where p->play_dtmf is defined as char[16], to get the length of the array but since p->play_dtmf is an actual array, sizeof(*p->play_dtmf) returns the size of the first array element, which is 1. gcc7 validly complains because the context in which it's used could cause an out-of-bounds condition. Change-Id: If9c4bfdb6b02fa72d39e0c09bf88900663c000ba
2017-10-11Merge "res_pjsip_registrar.c: Update remove_existing AOR contact handling."Jenkins2
2017-10-11app_queue.c: clear moh field in init_queueNathan Bruning
ASTERISK-27301 #close Change-Id: Ic31361f34e2de3b6470e68fc37205a7711082eba
2017-10-10sorcery: Use ao2_weakproxy to hold list of instances.Corey Farrell
* Store weak proxy objects in instances container. * Remove special unreference function and replace with macro that calls ao2_cleanup. * Add REF_DEBUG information to ast_sorcery_open. Change-Id: I5a150a4e13cee319d46b5a4654f95a4623a978f8
2017-10-10named_locks: Use ao2_weakproxy_find.Corey Farrell
Change-Id: I0ce8a1b7101b6caac6a19f83a89f00eaba1e9d9c
2017-10-10astobj2: Add ao2_weakproxy_find function.Corey Farrell
This function finds a weak proxy in an ao2_container and returns the real object associated with it. Change-Id: I9da822049747275f5961b5c0a7f14e87157d65d8
2017-10-10astobj2: Run weakproxy callbacks outside of lock.Corey Farrell
Copy the list of weakproxy callbacks to temporary memory so they can be run without holding the weakproxy lock. Change-Id: Ib167622a8a0f873fd73938f7611b2a5914308047
2017-10-10Merge "contrib/thirdparty/sip_to_pjsip: add additional flag mappings"Jenkins2