summaryrefslogtreecommitdiff
path: root/res
AgeCommit message (Collapse)Author
2018-01-26Merge "Add missing OPTIONAL_API and ARI dependences."Jenkins2
2018-01-24Merge "res_pjsip: Add AMI action 'PJSIPShowContacts'"Jenkins2
2018-01-23res_pjsip: Add AMI action 'PJSIPShowContacts'Sungtae Kim
Add an AMI action which provides information on all configured Contacts. ASTERISK-27581 Change-Id: I2eed42c74bbc725fad26b8b33b1a5b3161950c73
2018-01-22Add missing OPTIONAL_API and ARI dependences.Corey Farrell
I've audited all modules that include any header which includes asterisk/optional_api.h. All modules which use OPTIONAL_API now declare those dependencies in AST_MODULE_INFO using requires or optional_modules as appropriate. In addition ARI dependency declarations have been reworked. Instead of declaring additional required modules in res/ari/resource_*.c we now add them to an optional array "requiresModules" in api-docs for each module. This allows the AST_MODULE_INFO dependencies to include those missing modules. Change-Id: Ia0c70571f5566784f63605e78e1ceccb4f79c606
2018-01-18res_pjsip: Document tlsv1_1 and tlsv1_2 methodsSean Bright
Change-Id: I67ed9039bf3f132fb20ee7a750e0aef0f704d7d3
2018-01-16res_pjsip: Split type=identify to IP address and SIP header matching prioritiesRichard Mudgett
The type=identify endpoint identification method can match by IP address and by SIP header. However, the SIP header matching has limited usefulness because you cannot specify the SIP header matching priority relative to the IP address matching. All the matching happens at the same priority and the order of evaluating the identify sections is indeterminate. e.g., If you had two type=identify sections where one matches by IP address for endpoint alice and the other matches by SIP header for endpoint bob then you couldn't predict which endpoint is matched when a request comes in that matches both. * Extract the SIP header matching criteria into its own "header" endpoint identification method so the user can specify the relative priority of the SIP header and the IP address matching criteria in the global endpoint_identifier_order option. The "ip" endpoint identification method now only matches by IP address. ASTERISK-27491 Change-Id: I9df142a575b7e1e3471b7cda5d3ea156cef08095
2018-01-16Merge "res_stasis_recording: Allow symbolic links in configured recordings dir."Jenkins2
2018-01-15loader: Add dependency fields to module structures.Corey Farrell
* Declare 'requires' and 'enhances' text fields on module info structure. * Rename 'nonoptreq' to 'optional_modules'. * Update doxygen comments. Still need to investigate dependencies among modules I cannot compile. Change-Id: I3ad9547a0a6442409ff4e352a6d897bef2cc04bf
2018-01-15Merge "config_transport: Enable TCP_NODELAY on TLS transports"Jenkins2
2018-01-13config_transport: Enable TCP_NODELAY on TLS transportsGeorge Joseph
We did this for TCP transports already but I'm not sure why we didn't do it for TLS transports. ASTERISK_27474 #not_final_fix Change-Id: I5b1ef4b882f7b859e718236686b7898751dbb262
2018-01-12res_stasis_recording: Allow symbolic links in configured recordings dir.Corey Farrell
If any component of ast_config_AST_RECORDING_DIR is a symbolic link we would incorrectly assume the ARI user was trying to escape the recording path. Create additional check to check the recording directory's realpath, only deny access if both do not match. This is needed by the testsuite when run by 'run-local'. Change-Id: I9145e841865edadcb5f75cead3471ad06bbb56c0
2018-01-12res_config_pgsql: Avoid typecasting an int to unsigned char.Alexander Traud
clang 5.0 warned about this. ASTERISK-27576 Change-Id: If41f400a51973c06cdb9b75462e535b616bfe385
2018-01-11Merge "res_pjsip_endpoint_identifier_ip.c: Remove unnecessary requirement."Jenkins2
2018-01-11Merge "res_pjsip.c: Update the endpoint identification documentation."Jenkins2
2018-01-11Merge "res_pjsip.c: Fix ident_to_str() and refactor ident_handler()."Joshua Colp
2018-01-10Merge "res_pjsip_endpoint_identifier_ip.c: Allow multiple IdentifyDetail AMI ↵Joshua Colp
events."
2018-01-10Merge "res_pjsip: Add AMI action 'PJSIPShowAuths'"Joshua Colp
2018-01-10Merge "res_stasis: Reduce RAII_VAR usage."Joshua Colp
2018-01-09Merge "res_pjsip_session: Always bundle streams if WebRTC is enabled."Jenkins2
2018-01-09res_pjsip.c: Update the endpoint identification documentation.Richard Mudgett
* Endpoint identify_by documentation. * IP/Header endpoint identifier documentation. Change-Id: Id92f00b495acca7be945daf749d2abd7f76a0b5a
2018-01-09res_pjsip_endpoint_identifier_ip.c: Remove unnecessary requirement.Richard Mudgett
The requirement that "ip" must be in the endpoint identify_by list to allow the type=identify method to identify the endpoint is not necessary. The "ip" identifier method can match one and only one endpoint. To even work, the "ip" identifier method configuration must explicitly specify the identified endpoint. Therefore, why bother configuring the type=identify identifier in the first place? The requirement only adds the potential for configuration errors for no benefit. Even worse, those configuration errors cannot be detected when the configuration loads. The requirement was introduced with the ASTERISK_27206 patch. * Remove the code change that enforces the requiremnt. Listing the "ip" method in the identify_by value is simply documentation. Change-Id: Ia057f92a33fb5d9f51dc5d5692e3d5ee1a6f2c11
2018-01-09res_pjsip.c: Fix ident_to_str() and refactor ident_handler().Richard Mudgett
* Extracted sip_endpoint_identifier_type2str() and sip_endpoint_identifier_str2type() to simplify the calling functions. * Fixed pjsip_configuration.c:ident_to_str() building the endpoint's identify_by value string. Change-Id: Ide876768a8d5d828b12052e2a75008b0563fc509
2018-01-09res_pjsip_endpoint_identifier_ip.c: Allow multiple IdentifyDetail AMI events.Richard Mudgett
The AMI PJSIPShowEndpoint action could only list one IdentifyDetail AMI event per endpoint. However, there is no reason that multiple type=identify sections cannot identify the same endpoint. * Reworked format_ami_endpoint_identify() to generate as many IdentifyDetail AMI events as there are matching identifiers. Change-Id: Ie146792aef72d78e05416ab5b27bc552a30399db
2018-01-09Merge "res_pjsip.c: Fix endpoint identifier registration name search."Jenkins2
2018-01-09Merge "res_stasis: Fix dial bridge unload."Joshua Colp
2018-01-09Merge "res_pjsip_endpoint_identifier_ip.c: Fix apply identify validation."Jenkins2
2018-01-09res_pjsip_session: Always bundle streams if WebRTC is enabled.Joshua Colp
Some WebRTC clients can't handle renegotiation with the addition of streams that include an offer to bundle. They instead expect the newly added streams to already be bundled. This change does such a thing if WebRTC support is enabled on an endpoint. ASTERISK-27566 Change-Id: I7fe9b7ac35a2798627d9c2c8369129f407af6461
2018-01-08res_stasis: Reduce RAII_VAR usage.Corey Farrell
In addition to being a micro-optimization (RAII_VAR has overhead), this change improves output of REF_DEBUG. Unfortunately when RAII_VAR calls ao2_cleanup it does so from a generated _dtor_varname function. For example this caused _dtor_app to release a reference instead of __stasis_app_unregister. Change-Id: I4ce67120583a446babf9adeec678b71d37fcd9e5
2018-01-08Merge "res_stasis: Fix app_is_subscribed_bridge_id."Jenkins2
2018-01-08res_pjsip: Add AMI action 'PJSIPShowAuths'Sungtae Kim
Add an AMI action which provides information on all configured Auths. ASTERISK-27547 Change-Id: I1a88a75b38a2b1dd9d1de6c0307b20a3f584c817
2018-01-08Merge "General: Avoid implicit conversion to char when changes value to ↵Jenkins2
negative."
2018-01-07res_stasis: Fix dial bridge unload.Corey Farrell
If the dial bridge has been created it must be released by calling ast_bridge_destroy, simply releasing the ao2 reference is not enough. Also move stasis_app_control_shutdown earlier in unload to ensure the bridge cannot be created or grabbed after the app_bridges container is released. Change-Id: I372302de94ca63876069e2585a049c5060e5e767
2018-01-07res_stasis: Fix app_is_subscribed_bridge_id.Corey Farrell
Instead of searching for bridge_id provided in an argument this function always searched for BRIDGE_ALL first. Rewrite this function to work like the similar functions for channel and endpoint functions. Change-Id: Ib5caca69e11727c5c8a7284a1d00621f40f1e60a
2018-01-06General: Silence modules on (un)load.Alexander Traud
Some (normally optional) modules created notices, warnings, and even errors in normal situations like (un)load. This cluttered the command-line interface (CLI) on start and while stopping gracefully. However, when an user went for the script './contrib/scripts/install_prereq', those modules get compiled-in because their prerequisites were met at compile time. Furthermore, because of ASTERISK_27475, the former talkative module 'res_curl' is built as side-effect. ASTERISK-27553 Change-Id: I9f105f46d72553994e820679bfde3478a551b281
2018-01-06General: Avoid implicit conversion to char when changes value to negative.Alexander Traud
clang 5.0 warned about this. ASTERISK-27557 Change-Id: I7cceaa88e147cbdf81a3a7beec5c1c20210fa41e
2018-01-05res_pjsip_endpoint_identifier_ip.c: Fix apply identify validation.Richard Mudgett
The ip_identify_apply() did not validate the configuration for simple static configuration errors or deal well with address resolution errors. * Added missing configuration validation checks. * Fixed address resolution error handling. * Demoted an error message to a warning since it does not fail applying the identify object configuration. Change-Id: I8b519607263fe88e8ce964f526a45359fd362b6e
2018-01-05res_pjsip.c: Fix endpoint identifier registration name search.Richard Mudgett
If an endpoint identifier name in the endpoint_identifier_order list is a prefix to the identifier we are registering, we could install it in the wrong position of the list. Assuming endpoint_identifier_order=username,ip,anonymous then registering the "ip_only" identifier would put the identifier in the wrong position of the priority list. * Fix incorrect strncmp() string prefix matching. Change-Id: Ib8819ec4b811da8a27419fd93528c54d34f01484
2018-01-04res_pjsip_history: Add missing unlock to CLI command.Corey Farrell
Change-Id: I872060a30543776a176a316309602d924a23eb29
2018-01-04Merge "loader: Create ast_module_running_ref."Joshua Colp
2018-01-04Merge "res_pjsip_session: Check if sequence header is missing"Joshua Colp
2018-01-03loader: Create ast_module_running_ref.Corey Farrell
This function returns NULL if the module in question is not running. I did not change ast_module_ref as most callers do not check the result and they always call ast_module_unref. Make use of this function when running registered items from: * app_stack API's * bridge technologies * CLI commands * File formats * Manager Actions * RTP engines * Sorcery Wizards * Timing Interfaces * Translators * AGI Commands * Fax Technologies ASTERISK-20346 #close Change-Id: Ia16fd28e188b2fc0b9d18b8a5d9cacc31df73fcc
2018-01-03Merge "res_pjsip: Add AMI action 'PJSIPShowAors'"Jenkins2
2018-01-03res_pjsip_session: Check if sequence header is missingKevin Harwell
The pjsip_msg_find_hdr function can return NULL. This patch adds a check when searching for the sequence header to make sure a NULL pointer is never de-referenced. Change-Id: I19af23aeeded65be016be92360e8cb7ffe51fad2
2018-01-02res_pjsip: Add AMI action 'PJSIPShowAors'Sungtae Kim
Add an AMI action which provides information on all configured AORs. ASTERISK-27537 Change-Id: If8b990a00909e5b6c0f04a3b8dccd9903dc445eb
2017-12-31ice: Increase foundation buffer sizeSean Bright
Per RFC 5245, the foundation specified with an ICE candidate can be up to 32 characters but we are only allowing for 31. ASTERISK-27498 #close Reported by: Michele Prà Change-Id: I05ce7a5952721a76a2b4c90366168022558dc7cf
2017-12-22AST-2017-014: res_pjsip - Missing contact header can cause crashKevin Harwell
Those SIP messages that create dialogs require a contact header to be present. If the contact header was missing from the message it could cause Asterisk to crash. This patch checks to make sure SIP messages that create a dialog contain the contact header. If the message does not and it is required Asterisk now returns a "400 Missing Contact header" response. Also added NULL checks when retrieving the contact header that were missing as a "just in case". ASTERISK-27480 #close Change-Id: I1810db87683fc637a9e3e1384a746037fec20afe
2017-12-22Remove as much trailing whitespace as possible.Sean Bright
Change-Id: I873c1c6d00f447269bd841494459efccdd2c19c0
2017-12-20Fix Common Typo's.Corey Farrell
Fix instances of: * Retreive * Recieve * other then * different then * Repeated words ("the the", "an an", "and and", etc). * othterwise, teh ASTERISK-24198 #close Change-Id: I3809a9c113b92fd9d0d9f9bac98e9c66dc8b2d31
2017-12-20Merge "res_rtp_asterisk: Avoid close the rtp/rtcp fd twice."Jenkins2
2017-12-19Remove constant conditionals (dead-code).Corey Farrell
Some variables are set and never changed, making them constant. This means that code in the 'false' block of the conditional is unreachable. In chan_skinny and res_config_ldap I used preprocessor directive `#if 0` as I'm unsure if the unreachable code could be enabled in the future. Change-Id: I62e2aac353d739fb3c983cf768933120f5fba059