asterisk/res
Kevin Harwell b74cbadd05 res_pjsip_session: outgoing call did not offer all configured codecs
For some scenarios when an outgoing call was made only a subset of the
configured codecs were offered. If the codecs being offered happened to
not have a codec supported by the phone then the call would fail.

For instance Alice and Bob both are configured in Asterisk for g722 and ulaw(
allow=!all,g722,ulaw). Alice's endpoint however only supports g722 while Bob's
only supports ulaw. When Alice calls Bob, Alice negotiates g722 fine with
Asterisk. But when Asterisk sends the outgoing offer to Bob it only contains
g722 and not both g722 and ulaw, so the call ends.

This patch makes it so all the audio codecs configured on the endpoint always
get sent, and not just a subset. However priority is given to those codecs that
are compatible with the "other side".

ASTERISK-27259 #close

Change-Id: Iffabc373bd94cd1dc700925dcfe406e12918c696
2017-09-25 12:34:55 -05:00
..
ael core/pbx: dialplan show - display filename/line# 2017-01-04 14:06:20 -06:00
ari make ari-stubs so doc periodic jobs can run 2017-04-16 18:59:54 -06:00
parking core/pbx: dialplan show - display filename/line# 2017-01-04 14:06:20 -06:00
res_pjsip res_pjsip: Filter out non SIP(S) requests 2017-09-14 14:18:42 -05:00
snmp Remove ASTERISK_REGISTER_FILE. 2016-10-27 09:53:55 -04:00
srtp res_srtp: Add support for libsrtp2.1. 2017-09-06 10:02:19 +02:00
stasis Merge "stasis/control.c: Fix set_interval_hook() ref leak." 2017-09-07 10:46:43 -05:00
stasis_recording stasis_recording: Correct ast_asprintf error checking 2017-05-30 16:09:50 -05:00
ari.make Build System: Create Makefile macro MOD_ADD_SOURCE. 2015-04-14 12:53:03 -04:00
Makefile Build System: Create Makefile macro MOD_ADD_SOURCE. 2015-04-14 12:53:03 -04:00
res.xml build_tools: Add ability to download variants to download_externals 2016-09-25 13:40:23 -05:00
res_adsi.c Remove ASTERISK_REGISTER_FILE. 2016-10-27 09:53:55 -04:00
res_ael_share.c Remove ASTERISK_REGISTER_FILE. 2016-10-27 09:53:55 -04:00
res_ael_share.exports.in Allow symbol export filtering to work properly on platforms that have symbol prefixes. 2010-04-02 18:57:58 +00:00
res_agi.c core: Add digit filtering to ast_waitfordigit_full 2017-07-12 19:08:23 -04:00
res_agi.exports.in Allow symbol export filtering to work properly on platforms that have symbol prefixes. 2010-04-02 18:57:58 +00:00
res_ari.c modules: change module LOAD_FAILUREs to LOAD_DECLINES 2017-04-12 15:57:21 -06:00
res_ari.exports.in Rename everything Stasis-HTTP to ARI 2013-07-27 23:11:02 +00:00
res_ari_applications.c res_ari: Add "module loaded" check to ari stubs 2017-06-15 19:34:03 -05:00
res_ari_asterisk.c res_ari: Add "module loaded" check to ari stubs 2017-06-15 19:34:03 -05:00
res_ari_bridges.c res_ari: Add "module loaded" check to ari stubs 2017-06-15 19:34:03 -05:00
res_ari_channels.c res_ari: Add "module loaded" check to ari stubs 2017-06-15 19:34:03 -05:00
res_ari_device_states.c res_ari: Add "module loaded" check to ari stubs 2017-06-15 19:34:03 -05:00
res_ari_endpoints.c res_ari: Add "module loaded" check to ari stubs 2017-06-15 19:34:03 -05:00
res_ari_events.c res_ari: Add "module loaded" check to ari stubs 2017-06-15 19:34:03 -05:00
res_ari_mailboxes.c res_ari: Add "module loaded" check to ari stubs 2017-06-15 19:34:03 -05:00
res_ari_model.c modules: change module LOAD_FAILUREs to LOAD_DECLINES 2017-04-12 15:57:21 -06:00
res_ari_model.exports.in Rename everything Stasis-HTTP to ARI 2013-07-27 23:11:02 +00:00
res_ari_playbacks.c res_ari: Add "module loaded" check to ari stubs 2017-06-15 19:34:03 -05:00
res_ari_recordings.c res_ari: Add "module loaded" check to ari stubs 2017-06-15 19:34:03 -05:00
res_ari_sounds.c res_ari: Add "module loaded" check to ari stubs 2017-06-15 19:34:03 -05:00
res_calendar.c res_calendar: Plug memory leak and micro-optimization 2017-09-19 07:09:52 -04:00
res_calendar.exports.in Allow symbol export filtering to work properly on platforms that have symbol prefixes. 2010-04-02 18:57:58 +00:00
res_calendar_caldav.c res_calendar: Plug memory leak and micro-optimization 2017-09-19 07:09:52 -04:00
res_calendar_ews.c res_calendar*, res_smdi: Move to "extended" support 2017-09-05 07:51:56 -05:00
res_calendar_exchange.c res_calendar*, res_smdi: Move to "extended" support 2017-09-05 07:51:56 -05:00
res_calendar_icalendar.c res_calendar*, res_smdi: Move to "extended" support 2017-09-05 07:51:56 -05:00
res_chan_stats.c modules: change module LOAD_FAILUREs to LOAD_DECLINES 2017-04-12 15:57:21 -06:00
res_clialiases.c Remove ASTERISK_REGISTER_FILE. 2016-10-27 09:53:55 -04:00
res_clioriginate.c manager: Restore Originate failure behavior from Asterisk 11 2017-02-10 18:04:41 -05:00
res_config_curl.c realtime: Centralize some common realtime backend code 2017-02-21 10:53:17 -06:00
res_config_ldap.c res_config_ldap: Various code improvements 2017-02-22 17:37:52 -06:00
res_config_odbc.c realtime: Centralize some common realtime backend code 2017-02-21 10:53:17 -06:00
res_config_pgsql.c Merge "res_config_pgsql: Fix removed support to previous for versions PostgreSQL 9.1" 2017-09-22 05:42:43 -05:00
res_config_sqlite.c modules: change module LOAD_FAILUREs to LOAD_DECLINES 2017-04-12 15:57:21 -06:00
res_config_sqlite3.c Sqlite3: make busy_timeout configurable. 2017-05-25 10:02:42 +02:00
res_convert.c Remove ASTERISK_REGISTER_FILE. 2016-10-27 09:53:55 -04:00
res_corosync.c res_corosync: Change thread stack size 2017-06-16 07:53:22 -05:00
res_crypto.c Remove ASTERISK_REGISTER_FILE. 2016-10-27 09:53:55 -04:00
res_crypto.exports.in Remove built-in AES code and use optional_api instead 2010-07-21 19:11:32 +00:00
res_curl.c Remove ASTERISK_REGISTER_FILE. 2016-10-27 09:53:55 -04:00
res_endpoint_stats.c modules: change module LOAD_FAILUREs to LOAD_DECLINES 2017-04-12 15:57:21 -06:00
res_fax.c Remove ASTERISK_REGISTER_FILE. 2016-10-27 09:53:55 -04:00
res_fax.exports.in res_fax: Provide AMI equivalents for fax CLI commands 2014-07-18 15:49:46 +00:00
res_fax_spandsp.c Remove ASTERISK_REGISTER_FILE. 2016-10-27 09:53:55 -04:00
res_format_attr_celt.c Remove ASTERISK_REGISTER_FILE. 2016-10-27 09:53:55 -04:00
res_format_attr_g729.c Remove ASTERISK_REGISTER_FILE. 2016-10-27 09:53:55 -04:00
res_format_attr_h263.c res_format_attr_h26x: Trim blanks in fmtp attributes 2017-05-23 10:57:57 -05:00
res_format_attr_h264.c res_format_attr_h26x: Trim blanks in fmtp attributes 2017-05-23 10:57:57 -05:00
res_format_attr_ilbc.c codecs: Add iLBC 20. 2016-07-22 10:09:08 +02:00
res_format_attr_opus.c res_format_attr_opus: Fix crash when fmtp contains spaces. 2016-12-08 11:47:30 +00:00
res_format_attr_silk.c Remove ASTERISK_REGISTER_FILE. 2016-10-27 09:53:55 -04:00
res_format_attr_siren7.c Remove ASTERISK_REGISTER_FILE. 2016-10-27 09:53:55 -04:00
res_format_attr_siren14.c Remove ASTERISK_REGISTER_FILE. 2016-10-27 09:53:55 -04:00
res_format_attr_vp8.c Remove ASTERISK_REGISTER_FILE. 2016-10-27 09:53:55 -04:00
res_hep.c res_hep: Add additional config initialization and validation 2017-04-24 13:22:48 -05:00
res_hep.exports.in res_hep_{pjsip|rtcp}: Decline module loads if res_hep had not loaded 2016-06-08 12:32:02 -05:00
res_hep_pjsip.c res_hep: Capture actual transport type in use 2017-03-21 13:40:29 -06:00
res_hep_rtcp.c res_hep_rtcp: Add support level to module info 2017-05-18 16:36:21 -05:00
res_http_media_cache.c modules: change module LOAD_FAILUREs to LOAD_DECLINES (14) 2017-04-12 15:57:39 -06:00
res_http_post.c Support GMIME 3.0 2017-08-03 14:15:26 -04:00
res_http_websocket.c modules: change module LOAD_FAILUREs to LOAD_DECLINES 2017-04-12 15:57:21 -06:00
res_http_websocket.exports.in res_http_websocket: Export symbol for ast_websocket_set_timeout 2014-06-26 18:27:53 +00:00
res_limit.c modules: change module LOAD_FAILUREs to LOAD_DECLINES 2017-04-12 15:57:21 -06:00
res_manager_devicestate.c AST_MODULE_INFO: Format corrections to the usages of AST_MODULE_INFO macro. 2015-05-13 16:34:23 -05:00
res_manager_presencestate.c AST_MODULE_INFO: Format corrections to the usages of AST_MODULE_INFO macro. 2015-05-13 16:34:23 -05:00
res_monitor.c AST-2017-006: Fix app_minivm application MinivmNotify command injection 2017-08-30 18:43:38 +00:00
res_monitor.exports.in Allow symbol export filtering to work properly on platforms that have symbol prefixes. 2010-04-02 18:57:58 +00:00
res_musiconhold.c res_musiconhold: Add kill_escalation_delay, kill_method to class 2017-07-11 14:43:41 -06:00
res_mutestream.c Remove ASTERISK_REGISTER_FILE. 2016-10-27 09:53:55 -04:00
res_mwi_external.c Remove ASTERISK_REGISTER_FILE. 2016-10-27 09:53:55 -04:00
res_mwi_external.exports.in External MWI core support. 2014-01-06 17:45:25 +00:00
res_mwi_external_ami.c Remove ASTERISK_REGISTER_FILE. 2016-10-27 09:53:55 -04:00
res_odbc.c core: Remove 'Data Retrieval API' 2017-07-05 11:25:58 -05:00
res_odbc.exports.in res_odbc: Fix exports.in for missing symbols 2016-02-16 16:42:26 -06:00
res_odbc_transaction.c res_odbc_transaction: add dep on generic_odbc 2016-08-21 18:56:01 -05:00
res_odbc_transaction.exports.in res_odbc: Remove connection management 2016-01-22 11:59:06 -06:00
res_parking.c core/pbx: dialplan show - display filename/line# 2017-01-04 14:06:20 -06:00
res_phoneprov.c Implement internal abstraction for iostreams 2016-11-15 22:25:14 +02:00
res_phoneprov.exports.in res_phoneprov: Refactor phoneprov to allow pluggable config providers 2014-10-09 17:46:23 +00:00
res_pjproject.c PJPROJECT logging: Fix detection of max supported log level. 2017-01-24 11:25:19 -06:00
res_pjproject.exports.in res_pjproject: Add module providing pjproject logging and utils 2016-01-20 09:56:13 -07:00
res_pjsip.c res_pjsip: Filter out non SIP(S) requests 2017-09-14 14:18:42 -05:00
res_pjsip.exports.in res_pjsip: Add "webrtc" configuration option 2017-07-13 18:19:35 -05:00
res_pjsip_acl.c AST_MODULE_INFO: Format corrections to the usages of AST_MODULE_INFO macro. 2015-05-13 16:34:23 -05:00
res_pjsip_authenticator_digest.c res_pjsip_authenticator_digest.c: Fix sorcery's immutable contract violation. 2017-02-20 22:24:31 -06:00
res_pjsip_caller_id.c res_pjsip/res_pjsip_callerid: NULL check on caller id name string 2017-04-26 15:32:11 -05:00
res_pjsip_config_wizard.c res_pjsip_config_wizard: Add 2 new parameters to help with proxy config 2017-03-28 15:51:21 -06:00
res_pjsip_dialog_info_body_generator.c res_pjsip: New endpoint option "notify_early_inuse_ringing" 2017-06-16 11:25:07 -05:00
res_pjsip_diversion.c res_pjsip: Fix known compact header issues 2016-12-31 20:00:46 -06:00
res_pjsip_dlg_options.c Remove ASTERISK_REGISTER_FILE. 2016-10-27 09:53:55 -04:00
res_pjsip_dtmf_info.c res_pjsip_empty_info: Respond to empty SIP INFO packets 2016-05-19 09:08:37 -03:00
res_pjsip_empty_info.c Remove ASTERISK_REGISTER_FILE. 2016-10-27 09:53:55 -04:00
res_pjsip_endpoint_identifier_anonymous.c res_pjsip: disable multi domain to improve realtime performace 2016-04-27 10:58:43 -05:00
res_pjsip_endpoint_identifier_ip.c res_pjsip_endpoint_identifier_ip: Don't output error if no header_match. 2017-03-15 13:52:15 +00:00
res_pjsip_endpoint_identifier_user.c res_pjsip: Add ignore_uri_user_options option. 2016-09-09 17:13:02 -05:00
res_pjsip_exten_state.c res_pjsip_pubsub: Correctly implement persisted subscriptions 2017-02-15 13:11:46 -06:00
res_pjsip_exten_state.exports.in The large GULP->PJSIP renaming effort. 2013-07-30 18:14:50 +00:00
res_pjsip_header_funcs.c res_pjsip: Add clarifying documentation to PJSIP_HEADER help text 2016-05-27 12:43:54 -05:00
res_pjsip_history.c pjproject_bundled: Update for pjproject 2.6 2017-02-23 16:23:53 -06:00
res_pjsip_logger.c Remove ASTERISK_REGISTER_FILE. 2016-10-27 09:53:55 -04:00
res_pjsip_messaging.c res_pjsip: Use ast_sip_is_content_type() where appropriate 2017-09-22 10:05:23 -05:00
res_pjsip_mwi.c Merge "res_pjsip_mwi: update unsolicited MWI subscriptions on updating contact" 2017-06-22 16:01:52 -05:00
res_pjsip_mwi_body_generator.c res_pjsip_mwi_body_generator: Re-order the body items 2016-05-30 19:31:26 -05:00
res_pjsip_nat.c res/res_pjsip: Standardize/fix localnet checks across pjsip. 2017-09-05 09:17:32 -05:00
res_pjsip_notify.c res_pjsip: Strip spaces from items parsed from comma-separated lists 2016-03-07 13:16:41 -06:00
res_pjsip_one_touch_record_info.c modules: change module LOAD_FAILUREs to LOAD_DECLINES 2017-04-12 15:57:21 -06:00
res_pjsip_outbound_authenticator_digest.c res_pjsip_outbound_authenticator_digest: Add context to log messages 2017-04-28 11:04:57 -05:00
res_pjsip_outbound_publish.c res_pjsip: Filter out non SIP(S) requests 2017-09-14 14:18:42 -05:00
res_pjsip_outbound_publish.exports.in res_pjsip_outbound_publish: Add module which provides outbound PUBLISH support. 2014-08-07 14:35:09 +00:00
res_pjsip_outbound_registration.c res_pjsip: Filter out non SIP(S) requests 2017-09-14 14:18:42 -05:00
res_pjsip_path.c res_pjsip: Add ignore_uri_user_options option. 2016-09-09 17:13:02 -05:00
res_pjsip_phoneprov_provider.c AST_MODULE_INFO: Format corrections to the usages of AST_MODULE_INFO macro. 2015-05-13 16:34:23 -05:00
res_pjsip_pidf_body_generator.c res_pjsip_pidf_eyebeam_body_supplement: Correct status presentation 2017-08-01 15:42:38 -06:00
res_pjsip_pidf_digium_body_supplement.c res_pjsip: Ensure sanitized XML is NULL terminated. 2015-08-06 05:20:47 -05:00
res_pjsip_pidf_eyebeam_body_supplement.c res_pjsip_pidf_eyebeam_body_supplement: Correct status presentation 2017-08-01 15:42:38 -06:00
res_pjsip_publish_asterisk.c res_pjsip: Use ast_sip_is_content_type() where appropriate 2017-09-22 10:05:23 -05:00
res_pjsip_pubsub.c res_pjsip: Use ast_sip_is_content_type() where appropriate 2017-09-22 10:05:23 -05:00
res_pjsip_pubsub.exports.in res_pjsip_mwi: Add voicemail extension and mwi_subscribe_replaces_unsolicited 2016-03-30 13:23:54 -05:00
res_pjsip_refer.c res_pjsip_refer/session: Calls dropped during transfer 2017-06-13 14:28:21 -05:00
res_pjsip_registrar.c res_pjsip: Remove ephemeral registered contacts on transport shutdown. 2017-08-10 12:18:58 -05:00
res_pjsip_registrar_expire.c res_pjsip_registrar_expire.c: Remove extra linefeed in debug message. 2016-11-10 16:59:41 -05:00
res_pjsip_rfc3326.c res_pjsip_rfc3326.c: Fix crash when channel goes away. 2015-11-13 16:34:41 -05:00
res_pjsip_sdp_rtp.c Merge "bridge: Change participant SFU streams when source streams change." 2017-09-21 15:56:47 -05:00
res_pjsip_send_to_voicemail.c modules: change module LOAD_FAILUREs to LOAD_DECLINES 2017-04-12 15:57:21 -06:00
res_pjsip_session.c res_pjsip_session: outgoing call did not offer all configured codecs 2017-09-25 12:34:55 -05:00
res_pjsip_session.exports.in chan_pjsip: Add support for multiple streams of the same type. 2017-06-28 18:36:29 +00:00
res_pjsip_sips_contact.c AST_MODULE_INFO: Format corrections to the usages of AST_MODULE_INFO macro. 2015-05-13 16:34:23 -05:00
res_pjsip_t38.c res/res_pjsip: Fix localnet checks in pjsip, part 2. 2017-09-10 06:19:28 -05:00
res_pjsip_transport_management.c res_pjsip: PJSIP Transport state monitor refactor. 2017-08-10 12:18:58 -05:00
res_pjsip_transport_websocket.c res_pjsip: Remove ephemeral registered contacts on transport shutdown. 2017-08-10 12:18:58 -05:00
res_pjsip_xpidf_body_generator.c res_pjsip: New endpoint option "notify_early_inuse_ringing" 2017-06-16 11:25:07 -05:00
res_pktccops.c Remove ASTERISK_REGISTER_FILE. 2016-10-27 09:53:55 -04:00
res_pktccops.exports.in Allow symbol export filtering to work properly on platforms that have symbol prefixes. 2010-04-02 18:57:58 +00:00
res_realtime.c Remove ASTERISK_REGISTER_FILE. 2016-10-27 09:53:55 -04:00
res_resolver_unbound.c res_resolver_unbound.c: Fix frequent ref leak caught by excessive ref trap. 2017-02-01 17:33:41 -06:00
res_rtp_asterisk.c res_rtp_asterisk.c: Fix bundled SSRC handling. 2017-09-21 15:02:27 -05:00
res_rtp_multicast.c res_rtp_multicast: Use consistent timestamps when possible 2017-06-06 10:55:04 -05:00
res_rtp_multicast.exports.in multicast RTP: Add dialing options 2016-05-27 11:00:09 -05:00
res_sdp_translator_pjmedia.c SDP: Rework SDP offer/answer model and update capabilities merges. 2017-06-20 18:15:52 -05:00
res_security_log.c Remove ASTERISK_REGISTER_FILE. 2016-10-27 09:53:55 -04:00
res_smdi.c res_calendar*, res_smdi: Move to "extended" support 2017-09-05 07:51:56 -05:00
res_smdi.exports.in Allow symbol export filtering to work properly on platforms that have symbol prefixes. 2010-04-02 18:57:58 +00:00
res_snmp.c Remove ASTERISK_REGISTER_FILE. 2016-10-27 09:53:55 -04:00
res_sorcery_astdb.c Remove ASTERISK_REGISTER_FILE. 2016-10-27 09:53:55 -04:00
res_sorcery_config.c Remove ASTERISK_REGISTER_FILE. 2016-10-27 09:53:55 -04:00
res_sorcery_memory.c Remove ASTERISK_REGISTER_FILE. 2016-10-27 09:53:55 -04:00
res_sorcery_memory_cache.c cli: Fix various CLI documentation and completion issues 2017-02-13 11:33:15 -05:00
res_sorcery_realtime.c Remove ASTERISK_REGISTER_FILE. 2016-10-27 09:53:55 -04:00
res_speech.c Remove ASTERISK_REGISTER_FILE. 2016-10-27 09:53:55 -04:00
res_speech.exports.in app_speech_utils: Fix unresolved symbol ast_speech_get_setting(). 2013-09-16 18:00:32 +00:00
res_srtp.c res_srtp: lower log level of auth failures 2017-09-20 15:36:00 +02:00
res_srtp.exports.in Reverting accidental ci of wrong change in r433061 2015-03-17 22:03:01 +00:00
res_stasis.c res_stasis: Plug reference leak on stolen channels 2017-06-16 15:08:45 -05:00
res_stasis.exports.in Moved core logic from app_stasis to res_stasis 2013-04-15 16:43:47 +00:00
res_stasis_answer.c Remove ASTERISK_REGISTER_FILE. 2016-10-27 09:53:55 -04:00
res_stasis_answer.exports.in Add missing exports file 2013-05-20 14:21:39 +00:00
res_stasis_device_state.c res_stasis_device_state: Unsubscribe should remove old subscriptions 2017-07-25 07:58:21 -05:00
res_stasis_device_state.exports.in ARI: Implement device state API 2013-11-23 17:48:28 +00:00
res_stasis_mailbox.c Remove ASTERISK_REGISTER_FILE. 2016-10-27 09:53:55 -04:00
res_stasis_mailbox.exports.in ARI: Add mailboxes resource for controlling and polling external MWI 2014-01-14 23:44:57 +00:00
res_stasis_playback.c modules: change module LOAD_FAILUREs to LOAD_DECLINES 2017-04-12 15:57:21 -06:00
res_stasis_playback.exports.in This patch implements the REST API's for POST /channels/{channelId}/play 2013-05-23 20:11:35 +00:00
res_stasis_recording.c modules: change module LOAD_FAILUREs to LOAD_DECLINES 2017-04-12 15:57:21 -06:00
res_stasis_recording.exports.in ARI - channel recording support 2013-07-03 17:58:45 +00:00
res_stasis_snoop.c res/res_stasis_snoop: generate silence when audiohook returns null 2017-07-13 09:46:53 -05:00
res_stasis_snoop.exports.in ari: Add Snoop operation for spying/whispering on channels. 2013-11-23 12:40:46 +00:00
res_stasis_test.c modules: change module LOAD_FAILUREs to LOAD_DECLINES 2017-04-12 15:57:21 -06:00
res_stasis_test.exports.in Initial support for endpoints. 2013-05-08 13:39:08 +00:00
res_statsd.c modules: change module LOAD_FAILUREs to LOAD_DECLINES 2017-04-12 15:57:21 -06:00
res_statsd.exports.in res_statsd: Fix exports.in for missing symbols 2016-02-16 12:26:29 -06:00
res_stun_monitor.c res_stun_monitor: Don't fail to load if DNS resolution fails 2017-04-14 16:55:03 -05:00
res_timing_dahdi.c Remove ASTERISK_REGISTER_FILE. 2016-10-27 09:53:55 -04:00
res_timing_kqueue.c res_timing: Don't close FD 0 when out of open files. 2015-07-02 05:13:37 -05:00
res_timing_pthread.c Remove ASTERISK_REGISTER_FILE. 2016-10-27 09:53:55 -04:00
res_timing_timerfd.c res_timing: Don't close FD 0 when out of open files. 2015-07-02 05:13:37 -05:00
res_xmpp.c res_xmpp: fix inverted return code check in OAuth 2017-08-22 00:36:07 -05:00
res_xmpp.exports.in Add a new unified Jingle, Google Jingle, and Google Talk channel driver written from scratch called chan_motif. 2012-07-07 17:06:51 +00:00