[asterisk-commits] irroot: branch irroot/distrotech-customers-1.8 r320709 - /team/irroot/distrot...
SVN commits to the Asterisk project
asterisk-commits at lists.digium.com
Tue May 24 02:47:55 CDT 2011
Author: irroot
Date: Tue May 24 02:47:39 2011
New Revision: 320709
URL: http://svnview.digium.com/svn/asterisk?view=rev&rev=320709
Log:
Set the writeformat on mismatch in sip_write
Modified:
team/irroot/distrotech-customers-1.8/channels/chan_sip.c
Modified: team/irroot/distrotech-customers-1.8/channels/chan_sip.c
URL: http://svnview.digium.com/svn/asterisk/team/irroot/distrotech-customers-1.8/channels/chan_sip.c?view=diff&rev=320709&r1=320708&r2=320709
==============================================================================
--- team/irroot/distrotech-customers-1.8/channels/chan_sip.c (original)
+++ team/irroot/distrotech-customers-1.8/channels/chan_sip.c Tue May 24 02:47:39 2011
@@ -6296,12 +6296,21 @@
switch (frame->frametype) {
case AST_FRAME_VOICE:
if (!(frame->subclass.codec & ast->nativeformats)) {
+ struct ast_channel *bridge;
char s1[512], s2[512], s3[512];
+
ast_log(LOG_WARNING, "Asked to transmit frame type %s, while native formats is %s read/write = %s/%s\n",
ast_getformatname(frame->subclass.codec),
ast_getformatname_multiple(s1, sizeof(s1), ast->nativeformats & AST_FORMAT_AUDIO_MASK),
ast_getformatname_multiple(s2, sizeof(s2), ast->readformat),
ast_getformatname_multiple(s3, sizeof(s3), ast->writeformat));
+ ast_set_write_format(ast, frame->subclass.codec);
+
+ bridge = ast_bridged_channel(ast);
+ if (!ast_channel_trylock(bridge)) {
+ ast_log(LOG_WARNING, "Attempting to change formats making %s and %s compat.\n", ast->name, bridge->name);
+ ast_channel_make_compatible(ast, bridge);
+ }
return 0;
}
if (p) {
More information about the asterisk-commits
mailing list