PJSIP: Remove premature write of raw formats
authorKinsey Moore <kmoore@digium.com>
Fri, 6 Jun 2014 19:13:08 +0000 (19:13 +0000)
committerKinsey Moore <kmoore@digium.com>
Fri, 6 Jun 2014 19:13:08 +0000 (19:13 +0000)
Currently, there are situations that can occur when using chan_pjsip
and certain dialplan applications (notably ChanSpy()) that can cause
the channel to get no audio with scrolling warnings about format
mismatches. This is caused by a failure to update translation paths on
a mid-call native format update since the raw formats have already
been updated by res_pjsip_sdp_rtp.c in set_caps(). Removing the
premature raw format updates allows the translation paths to be setup
correctly and the raw read and write formats with them.

AFS-63 #close
........

Merged revisions 415342 from http://svn.asterisk.org/svn/asterisk/branches/12

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@415343 65c4cc65-6c06-0410-ace0-fbb531ad65f3

res/res_pjsip_sdp_rtp.c

index 43f0832..59fa647 100644 (file)
@@ -251,8 +251,6 @@ static int set_caps(struct ast_sip_session *session, struct ast_sip_session_medi
 
                /* Apply the new formats to the channel, potentially changing read/write formats while doing so */
                ast_format_cap_copy(ast_channel_nativeformats(session->channel), caps);
-               ast_format_copy(ast_channel_rawwriteformat(session->channel), &fmt);
-               ast_format_copy(ast_channel_rawreadformat(session->channel), &fmt);
                ast_set_read_format(session->channel, ast_channel_readformat(session->channel));
                ast_set_write_format(session->channel, ast_channel_writeformat(session->channel));
        }