summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2016-05-11res_pjsip_outbound_publishing: After unloading the library won't load againKevin Harwell
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-11Merge "res_fax/t38_gateway: Peer V.21 session is created on wrong channel" ↵zuul
into 13
2016-05-10Merge "app_confbridge: Add a regcontext option for confbridge bridge ↵Joshua Colp
profiles." into 13
2016-05-09Merge "res_pjsip_authenticator_digest: Don't use source port in nonce ↵zuul
verification" into 13
2016-05-09Merge "pjproject_bundled: Check for python-dev and TEST_FRAMEWORK" into 13Joshua Colp
2016-05-09res_pjsip_authenticator_digest: Don't use source port in nonce verificationKevin Harwell
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-09Merge "res_pjsip: module load priority" into 13zuul
2016-05-09Merge "file: Ensure nativeformats remains valid for lifetime of use." into 13zuul
2016-05-09app_confbridge: Add a regcontext option for confbridge bridge profiles.Jaco Kroon
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-09Merge "stasis_endpoints: Add new Status and Headers to ContactStatus" into 13zuul
2016-05-08pjproject_bundled: Check for python-dev and TEST_FRAMEWORKGeorge Joseph
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-06res_pjsip: module load priorityAlexei Gradinari
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-06config_options.c: Expand #ifdef to contain whole if statement.Chris Trobridge
ASTERISK-25956 #close Change-Id: If6961ec54be276d5ab4f012ee7e7b420cb45de38
2016-05-05stasis_endpoints: Add new Status and Headers to ContactStatusAlexei Gradinari
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-05Merge "pjsip: Added "reg_server" to contacts (fixed alembic)" into 13zuul
2016-05-05file: Ensure nativeformats remains valid for lifetime of use.Joshua Colp
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-05-05Merge "res_fax: add FAXMODE variable" into 13zuul
2016-05-04pjsip: Added "reg_server" to contacts (fixed alembic)Alexei Gradinari
ASTERISK-25931 Change-Id: Icc4321a88f5c93ff809da3f372eebbf69c6a8549
2016-05-03Merge "res_pjsip/AMI: add contact.updated event" into 13zuul
2016-05-03Merge "app_voicemail: always copy dynamic struct to avoid race condition" ↵Joshua Colp
into 13
2016-05-03Merge "pjproject_bundled: Various fixes discovered during testing of OSes" ↵zuul
into 13
2016-05-03res_pjsip/AMI: add contact.updated eventAlexei Gradinari
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-03res_fax: add FAXMODE variableAlexei Gradinari
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-03res_fax/t38_gateway: Peer V.21 session is created on wrong channelAlexei Gradinari
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-03Merge "pjsip: Added "reg_server" to contacts." into 13Joshua Colp
2016-05-03configs/basic-pbx/asterisk.conf: contains incorrect path separatorDiederik de Groot
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-05-03pjproject_bundled: Various fixes discovered during testing of OSesGeorge Joseph
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-05-03app_voicemail: always copy dynamic struct to avoid race conditionAndrew Nagy
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-05-02pjsip: Added "reg_server" to contacts.Alexei Gradinari
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-29Merge "pjproject_bundled: Disable PJSIP_UNESCAPE_IN_PLACE" into 13zuul
2016-04-29Merge "res_pjsip: Start body generator users after suppliers." into 13Joshua Colp
2016-04-29Merge "res_pjsip_pubsub.c: Fix body generator registration race." into 13zuul
2016-04-29Merge "chan_sip: Make autocreated peers send PeerStatus events" into 13zuul
2016-04-29Merge "res_pjsip_outbound_publish.c: Remove redundant flag check." into 13Joshua Colp
2016-04-28Merge "res_pjsip_pubsub.c: Add useful information to some messages." into 13zuul
2016-04-28Merge "res_pjsip_pubsub.h: Fix doxygen association." into 13zuul
2016-04-28Merge "res_pjsip: Add ability to identify by Authorization username" into 13zuul
2016-04-28res_pjsip: Start body generator users after suppliers.Richard Mudgett
Change-Id: I8f0b57841feaab56c8a4e821b5ccb4e05e5fbadb
2016-04-28res_pjsip_pubsub.c: Add useful information to some messages.Richard Mudgett
Change-Id: Ia0b2e15773894c599e5c5748bbc70e99f434192a
2016-04-28res_pjsip_pubsub.c: Fix body generator registration race.Richard Mudgett
Change-Id: Id8752073ef06472a2fd96080f4009fac42843e67
2016-04-28res_pjsip_pubsub.h: Fix doxygen association.Richard Mudgett
Change-Id: I110d3e3572598289fcd4215d966cf0c858f98632
2016-04-28res_pjsip_outbound_publish.c: Remove redundant flag check.Richard Mudgett
Change-Id: I0da80a3c3e0eae0c52ff27e7412ba027d6f52353
2016-04-28pjproject_bundled: Disable PJSIP_UNESCAPE_IN_PLACEGeorge Joseph
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-04-28Merge "func_odbc: Check connection status before executing queries." into 13Joshua Colp
2016-04-27res_pjsip: Add ability to identify by Authorization usernameGeorge Joseph
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-27Merge "config: Fix ast_config_text_file_save2 writability check for missing ↵Joshua Colp
files" into 13
2016-04-27Merge "res_pjsip: disable multi domain to improve realtime performace" into 13Joshua Colp
2016-04-27func_odbc: Check connection status before executing queries.Mark Michelson
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-27res_pjsip: disable multi domain to improve realtime performaceAlexei Gradinari
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-27Merge "res_pjsip: Add serialized scheduler (res_pjsip/pjsip_scheduler.c)" ↵Joshua Colp
into 13