asterisk/res
George Joseph 78b01f41ae res_pjsip_outbound_registration: Fix SRV failover on timeout
In order to retry outbound registrations for some situations, we
need access to the tdata from the original request.  For instance,
for 401/407 responses we need it to properly construct the
subsequent request with the authentication.  We also need it if
we're iterating over a DNS SRV response record set so we can skip
entries we've already tried.

We've been getting the tdata from the server response rdata and
transaction but that only works for the failures where there was
actually a response (4XX, 5XX, etc).  For timeouts there's no
response and therefore no rdata or transaction from which to get
the tdata.  When processing a single A/AAAA record for a server,
this wasn't an issue as we just retried that same server after the
retry timer expired.  If we got an SRV record set for the server
though, without the state from the tdata, we just kept trying the
first entry in the set repeatedly instead of skipping to the next
one in the list.

* Added a "last_tdata" member to the client state structure to keep
  track of the sent tdata.

* Updated registration_client_send() to save the tdata it used into
  the client_state.

* Updated sip_outbound_registration_response_cb() to use the tdata
  saved in client_state when we don't get a response from the
  server. We still use the tdata from the transaction when we DO
  get a response from the server so we can properly handle 4XX
  responses where our new request depends on it.

General note on timeouts:

Although res_pjsip_outbound_registration skips to the next record
immediately when a timeout occurs during SRV set traversal, it's
pjproject that determines how long to wait before a timeout is
declared.  As with other SIP message types, pjproject will continue
trying the same server at an interval specified by "timer_t1" until
"timer_b" expires.  Both of those timers are set in the pjsip.conf
"system" section.

ASTERISK-28746

Change-Id: I199b8274392d17661dd3ce3b4d69a3968368fa06
2020-02-18 13:09:49 -06:00
..
ael Merge "res_ael: Use Gosub in for loop expressions" 2019-04-16 08:11:28 -05:00
ari Merge "feat: AudioSocket channel, application, and ARI support." 2020-01-15 07:22:08 -06:00
parking parking: Fall back to parker channel name even if it matches parkee. 2019-11-25 07:57:36 -05:00
prometheus res_prometheus: Add metrics for PJSIP outbound registrations 2019-05-22 08:25:19 -05:00
res_pjsip res_pjsip_nat: Restore original contact for REGISTER responses 2019-12-06 12:48:08 -06:00
snmp Remove as much trailing whitespace as possible. 2017-12-22 09:23:22 -05:00
srtp res_srtp: Add support for libsrtp2 with AES-GCM. 2017-10-18 03:34:56 -05:00
stasis stasis/app: don't lock an app before a call to send 2020-01-27 12:11:29 -06:00
stasis_recording core: Remove ABI effects of MALLOC_DEBUG. 2018-03-01 13:13:55 -06:00
Makefile res_prometheus: Add Asterisk channel metrics 2019-05-21 11:03:13 -05:00
ari.make Build System: Create Makefile macro MOD_ADD_SOURCE. 2015-04-14 12:53:03 -04:00
res.xml Create --disable-binary-modules option. 2018-08-27 13:22:31 -04:00
res_adsi.c module: Remove deprecated modules and update support levels. 2018-07-18 18:15:53 +00:00
res_ael_share.c Remove as much trailing whitespace as possible. 2017-12-22 09:23:22 -05: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 res_agi: Improve GET FULL VARIABLE documentation 2020-01-03 10:29:02 -06: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 res_ari.c: Prefer exact handler match over wildcard 2019-08-20 13:19:42 -05:00
res_ari.exports.in Rename everything Stasis-HTTP to ARI 2013-07-27 23:11:02 +00:00
res_ari_applications.c ARI event type filtering 2019-02-20 09:56:22 -06:00
res_ari_asterisk.c Added ARI resource /ari/asterisk/ping 2019-01-30 12:51:03 +00:00
res_ari_bridges.c ARI: Ability to inhibit COLP frames when adding channels to a bridge 2020-01-02 15:06:15 +00:00
res_ari_channels.c feat: AudioSocket channel, application, and ARI support. 2020-01-14 09:36:44 -06:00
res_ari_device_states.c Merge "Remove redundant module checks and references." 2018-01-29 12:39:34 -06:00
res_ari_endpoints.c Remove redundant module checks and references. 2018-01-24 13:37:29 -05:00
res_ari_events.c res_ari_events: Add module reference when a WebSocket is open. 2019-10-24 05:26:57 -05:00
res_ari_mailboxes.c Merge "Remove redundant module checks and references." 2018-01-29 12:39:34 -06: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 Merge "Remove redundant module checks and references." 2018-01-29 12:39:34 -06:00
res_ari_recordings.c Merge "Remove redundant module checks and references." 2018-01-29 12:39:34 -06:00
res_ari_sounds.c Remove redundant module checks and references. 2018-01-24 13:37:29 -05:00
res_audiosocket.c feat: AudioSocket channel, application, and ARI support. 2020-01-14 09:36:44 -06:00
res_audiosocket.exports.in feat: AudioSocket channel, application, and ARI support. 2020-01-14 09:36:44 -06:00
res_calendar.c astobj2: Remove legacy ao2_container_alloc routine. 2018-11-21 09:56:16 -05: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: Specialized calendars depend on symbols of general calendar. 2018-02-16 13:52:37 +01:00
res_calendar_ews.c res_calendar: Resolve memory leak on calendar destruction 2019-10-24 09:18:38 -05:00
res_calendar_exchange.c res_calendar: Resolve memory leak on calendar destruction 2019-10-24 09:18:38 -05:00
res_calendar_icalendar.c res_calendar: Resolve memory leak on calendar destruction 2019-10-24 09:18:38 -05:00
res_chan_stats.c stasis: Segment channel snapshot to reduce creation cost. 2018-11-26 12:56:24 -06:00
res_clialiases.c astobj2: Remove legacy ao2_container_alloc routine. 2018-11-21 09:56:16 -05:00
res_clioriginate.c manager: Restore Originate failure behavior from Asterisk 11 2017-02-10 18:04:41 -05:00
res_config_curl.c various files - fix some alerts raised by lgtm code analysis 2019-11-18 08:30:45 -06:00
res_config_ldap.c Fix 'statement' typo throughout code. 2018-10-18 12:44:10 -05:00
res_config_odbc.c res_config_odbc: Preserve empty strings returned by the database 2020-01-29 09:15:10 -06:00
res_config_pgsql.c cdr_pgsql cel_pgsql res_config_pgsql: compatibility with PostgreSQL 12 2019-10-14 05:08:02 -05:00
res_config_sqlite.c loader: Convert reload_classes to built-in modules. 2018-03-14 05:20:12 -04:00
res_config_sqlite3.c res_config_sqlite3: Only join threads that we started 2019-07-24 04:51:43 -06:00
res_convert.c Remove as much trailing whitespace as possible. 2017-12-22 09:23:22 -05:00
res_corosync.c mwi core: Move core MWI functionality into its own files 2019-04-23 17:40:15 -05:00
res_crypto.c res_crypto: Allow OpenSSL configured with no-deprecated. 2018-06-08 11:03:35 +02: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 redundant module checks and references. 2018-01-24 13:37:29 -05:00
res_endpoint_stats.c loader: Add dependency fields to module structures. 2018-01-15 13:25:51 -05:00
res_fax.c res_fax: wrap v21 detected Asterisk initiated negotiation with config option 2019-12-13 14:24:10 -06: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 loader: Add dependency fields to module structures. 2018-01-15 13:25:51 -05: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 Loader: Remove unneeded load_pri declarations. 2017-11-20 13:17:55 -06:00
res_format_attr_h264.c res_format_attr_h264.c: Make sure profile-level-id fmtp attribute is set 2018-12-13 17:03:59 -05:00
res_format_attr_ilbc.c codecs: Add iLBC 20. 2016-07-22 10:09:08 +02:00
res_format_attr_opus.c Fix Common Typo's. 2017-12-20 12:40:01 -05:00
res_format_attr_silk.c Remove as much trailing whitespace as possible. 2017-12-22 09:23:22 -05: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 netsock2: Add ast_sockaddr_resolve_first_af to netsock2 public API 2018-05-21 11:03:10 -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 Remove redundant module checks and references. 2018-01-24 13:37:29 -05:00
res_hep_rtcp.c stasis: Add internal filtering of messages. 2018-11-18 15:08:16 -05:00
res_http_media_cache.c Add the ability to read the media file type from HTTP header for playback 2018-04-30 16:30:44 -04:00
res_http_post.c res_http_post: Enable GMime in Solaris 11. 2018-06-21 10:18:36 -06:00
res_http_websocket.c websocket: Consider pending SSL data when waiting for socket input 2020-01-02 15:51:37 -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 Remove as much trailing whitespace as possible. 2017-12-22 09:23:22 -05: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 Complete deprecating legacy modules. 2018-03-08 13:53:09 -06: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: Avoid spurious warning when 'format' is the empty string 2020-02-11 07:56:37 -06:00
res_mutestream.c Remove ASTERISK_REGISTER_FILE. 2016-10-27 09:53:55 -04:00
res_mwi_devstate.c mwi core: Move core MWI functionality into its own files 2019-04-23 17:40:15 -05:00
res_mwi_external.c mwi core: Move core MWI functionality into its own files 2019-04-23 17:40:15 -05:00
res_mwi_external.exports.in External MWI core support. 2014-01-06 17:45:25 +00:00
res_mwi_external_ami.c Remove redundant module checks and references. 2018-01-24 13:37:29 -05:00
res_odbc.c res_odbc: Add basic query logging. 2019-02-07 08:23:14 -06: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 astobj2: Remove legacy ao2_container_alloc routine. 2018-11-21 09:56:16 -05:00
res_phoneprov.c various files - fix some alerts raised by lgtm code analysis 2019-11-18 08:30:45 -06: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 res_pjproject: Fix sockaddr conversion routines for non-bundled PJSIP 2018-09-12 07:26:33 -05:00
res_pjproject.exports.in res_pjproject: Add utility functions to convert between socket structures 2018-09-06 13:30:12 -05:00
res_pjsip.c res_pjsip/res_pjsip_mwi: use centralized serializer pools 2019-10-07 16:54:16 -05:00
res_pjsip.exports.in res_pjsip: Add REF_DEBUG info to module references. 2017-10-04 12:00:47 -04:00
res_pjsip_acl.c Remove redundant module checks and references. 2018-01-24 13:37:29 -05:00
res_pjsip_authenticator_digest.c Remove redundant module checks and references. 2018-01-24 13:37:29 -05:00
res_pjsip_caller_id.c res_pjsip_caller_id: Use static pj_str_t for fromto header names. 2018-11-15 15:49:12 -05:00
res_pjsip_config_wizard.c res_pjsip_config_wizard: Fix change detection for wizard settings 2020-01-05 10:13:05 -06:00
res_pjsip_dialog_info_body_generator.c res_pjsip_pubsub: Add ability to persist generator state information. 2020-01-08 09:48:18 -06:00
res_pjsip_diversion.c res_pjsip_diversion: Use static pj_str_t for Diversion header names 2019-03-01 16:47:22 -06:00
res_pjsip_dlg_options.c Remove redundant module checks and references. 2018-01-24 13:37:29 -05:00
res_pjsip_dtmf_info.c Remove redundant module checks and references. 2018-01-24 13:37:29 -05:00
res_pjsip_empty_info.c Remove redundant module checks and references. 2018-01-24 13:37:29 -05:00
res_pjsip_endpoint_identifier_anonymous.c endpoint identifiers: Some code cleanup. 2018-02-02 18:03:06 -06:00
res_pjsip_endpoint_identifier_ip.c res_pjsip_endpoint_identifier_ip: Document support for hostnames 2020-01-10 15:15:59 -06:00
res_pjsip_endpoint_identifier_user.c endpoint identifiers: Some code cleanup. 2018-02-02 18:03:06 -06:00
res_pjsip_exten_state.c astobj2: Remove legacy ao2_container_alloc routine. 2018-11-21 09:56:16 -05: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.c: Split ast_sip_push_task_synchronous() to fit expectations. 2018-04-12 17:34:16 -05:00
res_pjsip_history.c VECTOR: Passing parameters with side effects to macros is dangerous. 2018-06-21 16:10:52 -06:00
res_pjsip_logger.c res_pjsip: Log IPv6 addresses correctly 2018-09-14 14:59:23 -05:00
res_pjsip_messaging.c Merge "res_pjsip_messaging: Allow Content-Type to be overridden" 2020-02-03 06:11:38 -06:00
res_pjsip_mwi.c res_pjsip_mwi: potential double unref, and potential unwanted double link 2019-10-10 15:30:24 -05:00
res_pjsip_mwi_body_generator.c Remove redundant module checks and references. 2018-01-24 13:37:29 -05:00
res_pjsip_nat.c res_pjsip_nat: Restore original contact for REGISTER responses 2019-12-06 12:48:08 -06:00
res_pjsip_notify.c res_pjsip_notify: Only allow a single Event header to be added to a NOTIFY 2020-01-10 14:49:54 -06:00
res_pjsip_one_touch_record_info.c Remove redundant module checks and references. 2018-01-24 13:37:29 -05:00
res_pjsip_outbound_authenticator_digest.c res_pjsip: Implement additional SIP RFCs for Google Voice trunk compatability 2018-10-24 07:51:25 -05:00
res_pjsip_outbound_publish.c astobj2: Remove legacy ao2_container_alloc routine. 2018-11-21 09:56:16 -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_outbound_registration: Fix SRV failover on timeout 2020-02-18 13:09:49 -06:00
res_pjsip_path.c Remove redundant module checks and references. 2018-01-24 13:37:29 -05:00
res_pjsip_phoneprov_provider.c Remove redundant module checks and references. 2018-01-24 13:37:29 -05:00
res_pjsip_pidf_body_generator.c Remove redundant module checks and references. 2018-01-24 13:37:29 -05:00
res_pjsip_pidf_digium_body_supplement.c Remove redundant module checks and references. 2018-01-24 13:37:29 -05:00
res_pjsip_pidf_eyebeam_body_supplement.c Remove redundant module checks and references. 2018-01-24 13:37:29 -05:00
res_pjsip_publish_asterisk.c mwi core: Move core MWI functionality into its own files 2019-04-23 17:40:15 -05:00
res_pjsip_pubsub.c res_pjsip_pubsub: Increment persistence data ref when recreating. 2020-01-28 09:24:44 -06: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: Added a norefersub configuration setting 2019-04-17 10:18:40 -05:00
res_pjsip_registrar.c res_pjsip_registrar.c: Prevent potential double free if AOR is not found 2019-12-04 16:19:23 -06:00
res_pjsip_rfc3326.c res_pjsip: Add 'suppress_q850_reason_headers' option to endpoint 2018-07-06 07:03:45 -06:00
res_pjsip_sdp_rtp.c res_pjsip_sdp_rtp: implement hold state handling on moh_passthrough 2020-02-17 08:35:02 -06:00
res_pjsip_send_to_voicemail.c Remove redundant module checks and references. 2018-01-24 13:37:29 -05:00
res_pjsip_session.c res_pjsip_session: Fix off-nominal session refreshes. 2020-02-10 06:12:05 -06:00
res_pjsip_session.exports.in res_pjsip: Add REF_DEBUG info to module references. 2017-10-04 12:00:47 -04:00
res_pjsip_sips_contact.c Remove redundant module checks and references. 2018-01-24 13:37:29 -05:00
res_pjsip_t38.c res_pjsip_t38: T.38 error correction mode selection at 200 ok received 2019-11-21 16:10:46 -05:00
res_pjsip_transport_websocket.c websocket: Consider pending SSL data when waiting for socket input 2020-01-02 15:51:37 -06:00
res_pjsip_xpidf_body_generator.c Remove redundant module checks and references. 2018-01-24 13:37:29 -05:00
res_pktccops.c Remove redundant module checks and references. 2018-01-24 13:37:29 -05: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_prometheus.c res_prometheus: Add metrics for PJSIP outbound registrations 2019-05-22 08:25:19 -05:00
res_prometheus.exports.in Add core Prometheus support to Asterisk 2019-05-20 20:33:58 -05:00
res_realtime.c res_realtime: Fix 'realtime update2' argument handling 2020-01-14 10:07:20 -06:00
res_remb_modifier.c res_remb_modifier: Propertly initialize bitrate to 0.0 2019-04-18 08:04:11 -06:00
res_resolver_unbound.c various files - fix some alerts raised by lgtm code analysis 2019-11-18 08:30:45 -06:00
res_rtp_asterisk.c res_rtp_asterisk: bad audio (static) due to incomplete dtls/srtp setup 2020-02-14 10:52:16 -06:00
res_rtp_multicast.c Remove as much trailing whitespace as possible. 2017-12-22 09:23:22 -05:00
res_rtp_multicast.exports.in multicast RTP: Add dialing options 2016-05-27 11:00:09 -05:00
res_security_log.c stasis: Add internal filtering of messages. 2018-11-18 15:08:16 -05:00
res_smdi.c mwi core: Move core MWI functionality into its own files 2019-04-23 17:40:15 -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 as much trailing whitespace as possible. 2017-12-22 09:23:22 -05:00
res_sorcery_astdb.c astdb: Improve prefix searches in astdb 2017-12-10 12:51:16 -06:00
res_sorcery_config.c res_sorcery_config: Allow configuration section to be used based on name. 2018-07-18 13:20:49 -05:00
res_sorcery_memory.c astobj2: Remove legacy ao2_container_alloc routine. 2018-11-21 09:56:16 -05:00
res_sorcery_memory_cache.c res_sorcery_memory_cache: stale item update leak 2019-09-23 11:06:05 -05:00
res_sorcery_realtime.c res_sorcery_realtime.c: Fix unqualified fetch warning. 2018-08-17 16:33:24 -05:00
res_speech.c res_stasis and res_speech: Fix load order. 2017-12-07 19:39:04 -06: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 srtp: Fix possible race condition, and add NULL checks 2019-08-08 11:31:15 -05: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: trigger cleanup after update 2020-01-27 11:59:36 -06: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 loader: Add dependency fields to module structures. 2018-01-15 13:25:51 -05:00
res_stasis_answer.exports.in Add missing exports file 2013-05-20 14:21:39 +00:00
res_stasis_device_state.c astobj2: Remove legacy ao2_container_alloc routine. 2018-11-21 09:56:16 -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 redundant module checks and references. 2018-01-24 13:37:29 -05: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 res_stasis_playback: Prevent media_index from going out of bounds 2020-01-29 07:15:49 -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 res/res_ari: Added timestamp as a requirement for all ARI events 2019-03-11 23:57:01 +01:00
res_stasis_recording.exports.in ARI - channel recording support 2013-07-03 17:58:45 +00:00
res_stasis_snoop.c loader: Add dependency fields to module structures. 2018-01-15 13:25:51 -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 optional_api: Remove unused nonoptreq fields 2018-09-12 12:34:54 -05:00
res_stasis_test.exports.in Initial support for endpoints. 2013-05-08 13:39:08 +00:00
res_statsd.c res_statsd: Document that res_statsd does nothing on its own 2020-01-21 07:47:18 -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 as much trailing whitespace as possible. 2017-12-22 09:23:22 -05: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 Use non-blocking socket() and pipe() wrappers 2018-12-11 12:29:09 -05: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 mwi core: Move core MWI functionality into its own files 2019-04-23 17:40:15 -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