asterisk/res
Richard Mudgett c499cabf53 chan_pjsip/res_pjsip/bridge_softmix/core: Improve translation path choices.
With this patch, chan_pjsip/res_pjsip now sets the native formats to the
codecs negotiated by a call.

* The changes in chan_pjsip.c and res_pjsip_sdp_rtp.c set the native
formats to include all the negotiated audio codecs instead of only the
initial preferred audio codec and later the currently received audio
codec.

* The audio frame handling in channel.c:ast_read() is more streamlined and
will automatically adjust to changes in received frame formats.  The new
policy is to remove translation and pass the new frame format to the
receiver except if the translation was to a signed linear format.  A more
long winded version is commented in ast_read() along with some caveats.

* The audio frame handling in channel.c:ast_write() is more streamlined
and will automatically adjust any needed translation to changes in the
frame formats sent.  Frame formats sent can change for many reasons such
as a recording is being played back or the bridged peer changed the format
it sends.  Since it is a normal expectation that sent formats can change,
the codec mismatch warning message is demoted to a debug message.

* Removed the short circuit check in
channel.c:ast_channel_make_compatible_helper().  Two party bridges need to
make channels compatible with each other.  However, transfers and moving
channels among bridges can result in otherwise compatible channels having
sub-optimal translation paths if the make compatible check is short
circuited.  A result of forcing the reevaluation of channel compatibility
is that the asterisk.conf:transcode_via_slin and codecs.conf:genericplc
options take effect consistently now.  It is unfortunate that these two
options are enabled by default and negate some of the benefits to the
changes in channel.c:ast_read() by forcing translation through signed
linear on a two party bridge.

* Improved the softmix bridge technology to better control the translation
of frames to the bridge.  All of the incoming translation is now normally
handled by ast_read() instead of splitting any translation steps between
ast_read() and the slin factory.  If any frame comes in with an unexpected
format then the translation path in ast_read() is updated for the next
frame and the slin factory handles the current frame translation.

This is the final patch in a series of patches aimed at improving
translation path choices.  The other patches are on the following reviews:
https://reviewboard.asterisk.org/r/4600/
https://reviewboard.asterisk.org/r/4605/

ASTERISK-24841 #close
Reported by: Matt Jordan

Review: https://reviewboard.asterisk.org/r/4609/
........

Merged revisions 434671 from http://svn.asterisk.org/svn/asterisk/branches/13


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@434672 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2015-04-10 23:37:20 +00:00
..
ael core: Don't allow free to mean ast_free (and malloc, etc..). 2014-09-26 14:41:38 +00:00
ari res/ari: Fix model validation for ChannelHold event 2015-04-10 14:56:05 +00:00
parking clang compiler warnings: Remove large chunks of unused code from extconf 2015-04-06 18:18:32 +00:00
res_pjsip res_pjsip: Add an 'auto' option for DTMF Mode 2015-04-10 17:56:47 +00:00
snmp CHANNEL(peer), chan_iax2, res_fax, SNMP agent: Fix deadlock from reaching across a bridge. 2015-01-20 16:59:30 +00:00
stasis ARI/PJSIP: Add the ability to redirect (transfer) a channel in a Stasis app 2015-02-12 20:34:37 +00:00
stasis_recording clang compiler warnings: Fix non-literal-null-conversion warnings 2015-04-07 02:03:48 +00:00
Makefile clang compiler warnings: Fix -Wparantheses-equality warnings 2015-03-28 12:41:24 +00:00
ari.make ARI: Add mailboxes resource for controlling and polling external MWI 2014-01-14 23:44:57 +00:00
res_adsi.c Add module support level to ast_module_info structure. Print it in CLI "module show" . 2014-07-25 16:47:17 +00:00
res_ael_share.c Add module support level to ast_module_info structure. Print it in CLI "module show" . 2014-07-25 16:47:17 +00: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/res_agi: Make Verbose message for 'stream file' match other playbacks 2014-12-12 22:54:02 +00: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 Add module support level to ast_module_info structure. Print it in CLI "module show" . 2014-07-25 16:47:17 +00:00
res_ari.exports.in Rename everything Stasis-HTTP to ARI 2013-07-27 23:11:02 +00:00
res_ari_applications.c Add module support level to ast_module_info structure. Print it in CLI "module show" . 2014-07-25 16:47:17 +00:00
res_ari_asterisk.c Add module support level to ast_module_info structure. Print it in CLI "module show" . 2014-07-25 16:47:17 +00:00
res_ari_bridges.c ARI: Improve wiki documentation 2015-01-27 17:21:03 +00:00
res_ari_channels.c res_ari_channels: Return a 404 response when a requested channel variable does not exist. 2015-02-21 20:48:17 +00:00
res_ari_device_states.c Add module support level to ast_module_info structure. Print it in CLI "module show" . 2014-07-25 16:47:17 +00:00
res_ari_endpoints.c ARI: Fix crash if integer values used in JSON payload 'variables' object. 2015-02-27 18:31:31 +00:00
res_ari_events.c Investigate and fix memory leaks in Asterisk 2015-01-23 15:21:56 +00:00
res_ari_mailboxes.c Add module support level to ast_module_info structure. Print it in CLI "module show" . 2014-07-25 16:47:17 +00:00
res_ari_model.c Add module support level to ast_module_info structure. Print it in CLI "module show" . 2014-07-25 16:47:17 +00:00
res_ari_model.exports.in Rename everything Stasis-HTTP to ARI 2013-07-27 23:11:02 +00:00
res_ari_playbacks.c Add module support level to ast_module_info structure. Print it in CLI "module show" . 2014-07-25 16:47:17 +00:00
res_ari_recordings.c Add module support level to ast_module_info structure. Print it in CLI "module show" . 2014-07-25 16:47:17 +00:00
res_ari_sounds.c Add module support level to ast_module_info structure. Print it in CLI "module show" . 2014-07-25 16:47:17 +00:00
res_calendar.c clang compiler warnings: Fix -Wabsolute-value warnings 2015-03-30 02:45:29 +00: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 Add module support level to ast_module_info structure. Print it in CLI "module show" . 2014-07-25 16:47:17 +00:00
res_calendar_ews.c res_calendar_ews: Relax neon version check to work with 0.30 too. 2014-10-12 07:47:52 +00:00
res_calendar_exchange.c Add module support level to ast_module_info structure. Print it in CLI "module show" . 2014-07-25 16:47:17 +00:00
res_calendar_icalendar.c Add module support level to ast_module_info structure. Print it in CLI "module show" . 2014-07-25 16:47:17 +00:00
res_chan_stats.c Add module support level to ast_module_info structure. Print it in CLI "module show" . 2014-07-25 16:47:17 +00:00
res_clialiases.c Add module support level to ast_module_info structure. Print it in CLI "module show" . 2014-07-25 16:47:17 +00:00
res_clioriginate.c media formats: re-architect handling of media for performance improvements 2014-07-20 22:06:33 +00:00
res_config_curl.c Add module support level to ast_module_info structure. Print it in CLI "module show" . 2014-07-25 16:47:17 +00:00
res_config_ldap.c core: Don't allow free to mean ast_free (and malloc, etc..). 2014-09-26 14:41:38 +00:00
res_config_odbc.c res/res_config_odbc: Fix improper escaping of backslashes with MySQL 2015-03-10 21:33:55 +00:00
res_config_pgsql.c Add module support level to ast_module_info structure. Print it in CLI "module show" . 2014-07-25 16:47:17 +00:00
res_config_sqlite.c Add module support level to ast_module_info structure. Print it in CLI "module show" . 2014-07-25 16:47:17 +00:00
res_config_sqlite3.c Add module support level to ast_module_info structure. Print it in CLI "module show" . 2014-07-25 16:47:17 +00:00
res_convert.c Merged revisions 328247 via svnmerge from 2011-07-14 20:28:54 +00:00
res_corosync.c Stasis: Allow message types to be blocked 2014-08-06 12:55:28 +00:00
res_crypto.c Fix printf problems with high ascii characters after r413586 (1.8). 2014-12-17 10:23:32 +00: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 Add module support level to ast_module_info structure. Print it in CLI "module show" . 2014-07-25 16:47:17 +00:00
res_fax.c Fix typo's (retrieve, specified, address). 2015-01-23 15:13:08 +00: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 res_fax.c, res_fax_spandsp.c: Remove redundant locking. 2015-01-15 17:36:37 +00:00
res_format_attr_celt.c Add module support level to ast_module_info structure. Print it in CLI "module show" . 2014-07-25 16:47:17 +00:00
res_format_attr_h263.c Add module support level to ast_module_info structure. Print it in CLI "module show" . 2014-07-25 16:47:17 +00:00
res_format_attr_h264.c res_format_attr_h264: Fix crash when determining joint capability. 2015-01-31 16:28:33 +00:00
res_format_attr_opus.c media formats: update res_format_attr_opus & silk 2015-01-28 12:19:28 +00:00
res_format_attr_silk.c media formats: update res_format_attr_opus & silk 2015-01-28 12:19:28 +00:00
res_hep.c res_hep: fix major leak that occurs when config is missing or enabled=no. 2014-11-06 09:24:26 +00:00
res_hep.exports.in res_hep/res_hep_pjsip: Add a HEPv3 capture agent module and a logger for PJSIP 2014-03-28 18:32:50 +00:00
res_hep_pjsip.c PJSIP: Enforce module load dependencies 2014-10-16 16:32:25 +00:00
res_hep_rtcp.c res/res_hep_rtcp: Remove dependency on PJSIP 2014-08-14 21:16:32 +00:00
res_http_post.c Add module support level to ast_module_info structure. Print it in CLI "module show" . 2014-07-25 16:47:17 +00:00
res_http_websocket.c Increase WebSocket frame size and improve large read handling 2015-02-25 20:47:39 +00: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_jabber.exports.in Fix chan_jingle/gtalk load regression introduced in r346087 2011-12-05 14:47:11 +00:00
res_limit.c Doxygen Updates - Title update 2012-10-14 21:44:27 +00:00
res_manager_devicestate.c Revert -r430452 It needs to be redone for the next major AMI version change instead. 2015-01-12 18:09:27 +00:00
res_manager_presencestate.c Revert -r430452 It needs to be redone for the next major AMI version change instead. 2015-01-12 18:09:27 +00:00
res_monitor.c res/res_monitor: Reset in/out sample counts on Monitor start 2014-12-06 18:16:49 +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 musiconhold: Add preferchannelclass=no option to prefer app class. 2014-09-25 20:49:04 +00:00
res_mutestream.c Fix dialplan function NULL channel safety issues 2014-03-27 19:21:44 +00:00
res_mwi_external.c Add module support level to ast_module_info structure. Print it in CLI "module show" . 2014-07-25 16:47:17 +00:00
res_mwi_external.exports.in External MWI core support. 2014-01-06 17:45:25 +00:00
res_mwi_external_ami.c Revert -r430452 It needs to be redone for the next major AMI version change instead. 2015-01-12 18:09:27 +00:00
res_odbc.c res/res_odbc: Remove unneeded queries when determining if a table exists 2015-02-09 02:35:31 +00:00
res_odbc.exports.in Allow symbol export filtering to work properly on platforms that have symbol prefixes. 2010-04-02 18:57:58 +00:00
res_parking.c Add module support level to ast_module_info structure. Print it in CLI "module show" . 2014-07-25 16:47:17 +00:00
res_phoneprov.c res_pjsip_phoneprov_provider: Fix reference leak on unload 2015-04-09 23:12:13 +00:00
res_phoneprov.exports.in res_phoneprov: Refactor phoneprov to allow pluggable config providers 2014-10-09 17:46:23 +00:00
res_pjsip.c res_pjsip: Add an 'auto' option for DTMF Mode 2015-04-10 17:56:47 +00:00
res_pjsip.exports.in res_pjsip: AMI commands and events. 2013-11-23 17:26:57 +00:00
res_pjsip_acl.c Audit ast_sockaddr_resolve() usage for memory leaks. 2015-03-17 21:52:47 +00:00
res_pjsip_authenticator_digest.c PJSIP: Enforce module load dependencies 2014-10-16 16:32:25 +00:00
res_pjsip_caller_id.c chan_pjsip/res_pjsip_callerid: Make Party ID handling simpler and consistent. 2015-03-13 16:37:17 +00:00
res_pjsip_config_wizard.c res_pjsip_config_wizard: Cleanup load unload 2015-04-10 17:00:38 +00:00
res_pjsip_dialog_info_body_generator.c PJSIP: Enforce module load dependencies 2014-10-16 16:32:25 +00:00
res_pjsip_diversion.c PJSIP: Enforce module load dependencies 2014-10-16 16:32:25 +00:00
res_pjsip_dlg_options.c res/res_pjsip_dlg_options: Add a module to handle in-dialog OPTIONS requests 2015-04-09 15:43:20 +00:00
res_pjsip_dtmf_info.c PJSIP: Enforce module load dependencies 2014-10-16 16:32:25 +00:00
res_pjsip_endpoint_identifier_anonymous.c res_pjsip: Allow configuration of endpoint identifier query order 2015-03-17 18:35:07 +00:00
res_pjsip_endpoint_identifier_ip.c res_pjsip: Allow configuration of endpoint identifier query order 2015-03-17 18:35:07 +00:00
res_pjsip_endpoint_identifier_user.c res_pjsip: Allow configuration of endpoint identifier query order 2015-03-17 18:35:07 +00:00
res_pjsip_exten_state.c clang compiler warnings: Fix autological comparisons 2015-04-09 12:57:21 +00: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 PJSIP: Enforce module load dependencies 2014-10-16 16:32:25 +00:00
res_pjsip_keepalive.c res_pjsip: Enable unload of all modules at shutdown. 2015-03-26 17:47:42 +00:00
res_pjsip_log_forwarder.c Add module support level to ast_module_info structure. Print it in CLI "module show" . 2014-07-25 16:47:17 +00:00
res_pjsip_logger.c PJSIP: Enforce module load dependencies 2014-10-16 16:32:25 +00:00
res_pjsip_messaging.c Do not queue message requests that we do not respond to. 2015-04-07 15:34:53 +00:00
res_pjsip_multihomed.c ARI/PJSIP: Add the ability to redirect (transfer) a channel in a Stasis app 2015-02-12 20:34:37 +00:00
res_pjsip_mwi.c Investigate and fix memory leaks in Asterisk 2015-01-23 15:21:56 +00:00
res_pjsip_mwi_body_generator.c PJSIP: Enforce module load dependencies 2014-10-16 16:32:25 +00:00
res_pjsip_nat.c Audit ast_pjsip_rdata_get_endpoint() usage for ref leaks. 2015-03-20 19:54:48 +00:00
res_pjsip_notify.c res_pjsip: Enable unload of all modules at shutdown. 2015-03-26 17:47:42 +00:00
res_pjsip_one_touch_record_info.c PJSIP: Enforce module load dependencies 2014-10-16 16:32:25 +00:00
res_pjsip_outbound_authenticator_digest.c PJSIP: Enforce module load dependencies 2014-10-16 16:32:25 +00:00
res_pjsip_outbound_publish.c res_pjsip_outbound_publish: eventually crashes when no response is ever received 2015-01-30 17:41:02 +00: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 reload race condition. 2015-01-28 04:29:23 +00:00
res_pjsip_path.c PJSIP: Enforce module load dependencies 2014-10-16 16:32:25 +00:00
res_pjsip_phoneprov_provider.c res_pjsip_phoneprov_provider: Fix reference leak on unload 2015-04-09 23:12:13 +00:00
res_pjsip_pidf_body_generator.c PJSIP: Enforce module load dependencies 2014-10-16 16:32:25 +00:00
res_pjsip_pidf_digium_body_supplement.c PJSIP: Enforce module load dependencies 2014-10-16 16:32:25 +00:00
res_pjsip_pidf_eyebeam_body_supplement.c PJSIP: Enforce module load dependencies 2014-10-16 16:32:25 +00:00
res_pjsip_publish_asterisk.c ASTERISK-24811: Add ast_sorcery_apply_config() to res_pjsip_publish_asterisk. 2015-02-20 17:53:33 +00:00
res_pjsip_pubsub.c res_pjsip: Enable unload of all modules at shutdown. 2015-03-26 17:47:42 +00:00
res_pjsip_pubsub.exports.in res_pjsip_publish_asterisk: Add support for exchanging device and mailbox state using SIP. 2014-08-07 14:37:26 +00:00
res_pjsip_refer.c res_pjsip_refer: Fix occasional unexpected BYE sent after receiving a REFER. 2015-03-10 16:08:40 +00:00
res_pjsip_registrar.c Add stateful PJSIP response API call, and use it for out-of-dialog responses. 2015-03-27 20:46:55 +00:00
res_pjsip_registrar_expire.c res_pjsip_registrar_expire.c: Made use ao2 container template routines and eliminated some RAII_VAR() usage. 2015-03-27 21:06:22 +00:00
res_pjsip_rfc3326.c PJSIP: Enforce module load dependencies 2014-10-16 16:32:25 +00:00
res_pjsip_sdp_rtp.c chan_pjsip/res_pjsip/bridge_softmix/core: Improve translation path choices. 2015-04-10 23:37:20 +00:00
res_pjsip_send_to_voicemail.c res_pjsip_refer: Fix crash from a REFER and BYE collision. 2015-02-17 15:34:10 +00:00
res_pjsip_session.c res_pjsip: Add an 'auto' option for DTMF Mode 2015-04-10 17:56:47 +00:00
res_pjsip_session.exports.in res_pjsip_refer: Fix occasional unexpected BYE sent after receiving a REFER. 2015-03-10 16:08:40 +00:00
res_pjsip_sips_contact.c Use SIPS URIs in Contact headers when appropriate. 2015-01-29 21:02:23 +00:00
res_pjsip_t38.c res_pjsip_t38: Fix FAX failures when using PJSIP with authentication 2015-04-08 18:32:31 +00:00
res_pjsip_transport_websocket.c ARI/PJSIP: Add the ability to redirect (transfer) a channel in a Stasis app 2015-02-12 20:34:37 +00:00
res_pjsip_xpidf_body_generator.c PJSIP: Enforce module load dependencies 2014-10-16 16:32:25 +00:00
res_pktccops.c Fix printf problems with high ascii characters after r413586 (1.8). 2014-12-17 10:23:32 +00: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 Cleanup references to sipusers and sipfriends dynamic realtime families 2011-11-01 19:53:26 +00:00
res_resolver_unbound.c Merge NAPTR support into trunk. 2015-04-06 17:05:47 +00:00
res_rtp_asterisk.c clang compiler warnings: Fix -Wabsolute-value warnings 2015-03-30 02:45:29 +00:00
res_rtp_multicast.c Add module support level to ast_module_info structure. Print it in CLI "module show" . 2014-07-25 16:47:17 +00:00
res_security_log.c Multiple revisions 399887,400138,400178,400180-400181 2013-09-30 18:55:27 +00:00
res_smdi.c clang compiler warnings: Fix pointer-bool-converesion warnings 2015-04-08 11:45:05 +00: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 Add module support level to ast_module_info structure. Print it in CLI "module show" . 2014-07-25 16:47:17 +00:00
res_sorcery_astdb.c Add module support level to ast_module_info structure. Print it in CLI "module show" . 2014-07-25 16:47:17 +00:00
res_sorcery_config.c res_sorcery_config: Improve object lookup times. 2015-02-15 17:43:21 +00:00
res_sorcery_memory.c Add module support level to ast_module_info structure. Print it in CLI "module show" . 2014-07-25 16:47:17 +00:00
res_sorcery_realtime.c A couple minor cleanup tweaks. 2015-03-25 18:37:51 +00:00
res_speech.c Add module support level to ast_module_info structure. Print it in CLI "module show" . 2014-07-25 16:47:17 +00: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/res_srtp: Fix include issue for libsrtp 1.5.0 2014-10-27 01:47:56 +00:00
res_srtp.exports.in Reverting accidental ci of wrong change in r433061 2015-03-17 22:03:01 +00:00
res_stasis.c clang compiler warnings: Fix invalid enum conversion 2015-03-30 02:39:57 +00: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 ARI: Fix a crash caused by hanging during playback to a channel in a bridge 2014-08-22 16:52:51 +00:00
res_stasis_answer.exports.in Add missing exports file 2013-05-20 14:21:39 +00:00
res_stasis_device_state.c main/stasis: Allow subscriptions to use a threadpool for message delivery 2014-12-01 17:59:21 +00:00
res_stasis_device_state.exports.in ARI: Implement device state API 2013-11-23 17:48:28 +00:00
res_stasis_mailbox.c Add module support level to ast_module_info structure. Print it in CLI "module show" . 2014-07-25 16:47:17 +00: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 clang compiler warnings: Fix autological comparisons 2015-04-09 12:57:21 +00: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 clang compiler warnings: Fix autological comparisons 2015-04-09 12:57:21 +00:00
res_stasis_recording.exports.in ARI - channel recording support 2013-07-03 17:58:45 +00:00
res_stasis_snoop.c res_stasis_snoop.c: Fix off nominial exit path leaving Snoop channel locked and not hungup. 2014-08-12 23:36:37 +00: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 Stasis: Allow message types to be blocked 2014-08-06 12:55:28 +00:00
res_stasis_test.exports.in Initial support for endpoints. 2013-05-08 13:39:08 +00:00
res_statsd.c Add module support level to ast_module_info structure. Print it in CLI "module show" . 2014-07-25 16:47:17 +00:00
res_statsd.exports.in Example of how to use the Stasis message bus 2013-04-26 20:05:15 +00:00
res_stun_monitor.c Stasis: Allow message types to be blocked 2014-08-06 12:55:28 +00:00
res_timing_dahdi.c Add module support level to ast_module_info structure. Print it in CLI "module show" . 2014-07-25 16:47:17 +00:00
res_timing_kqueue.c res/res_timing_kqueue: Update the module to conform to current timer API 2015-03-27 14:41:46 +00:00
res_timing_pthread.c res_timing_pthread: Fix leaky pipes. 2015-02-15 12:41:06 +00:00
res_timing_timerfd.c Add module support level to ast_module_info structure. Print it in CLI "module show" . 2014-07-25 16:47:17 +00:00
res_xmpp.c res_xmpp: Buddies are always auto-registered when processing the roster 2015-03-25 15:31:06 +00: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