Summary:ASTERISK-09169: [patch] Problems with transcoding early media after "302 Moved temporarily"
Reporter:Marcel Barbulescu (marcelbarbulescu)Labels:
Date Opened:2007-04-03 02:46:23Date Closed:2007-07-09 21:20:47
Versions:Frequency of
Environment:Attachments:( 0) app_dial.diff
( 1) verbosedebug.txt.txt
Description:The user device is configured only with ulaw. Asterisk is configured by default to allow only g729 in sip.conf/[general] and promiscredir=yes. The provider's trunk is configured only with g729. Asterisk has g729 licenses installed.

When a call is placed the provider responds with a "302 Moved temporarily" message. Asterisk sends an INVITE to the redirected host and the provider  responds with g729 early media. The caller gets broken sound, probably g729 media that it doesn't support. Asterisk dumps lots of messages like:

chan_sip.c:3488 sip_write: Asked to transmit frame type 64, while native formats is 0x100 (g729)(256) read/write = 0 x100 (g729)(256)/0x100 (g729)(256)


If the provider doesn't respond with "302 Moved temporarily" but responds directly with early media, everything is ok, the early media is transcoded properly from g729 to ulaw.

Canreinvite and directrtpsetup settings do not make any difference, the result is the same.

Please note that the IPs and phone numbers in the trace file are not real.
Comments:By: Marcel Barbulescu (marcelbarbulescu) 2007-04-03 14:22:45

I found that the write format was not correctly set on the outgoing channel. I added a patch to make the forward channel compatible with the incoming channel.

PS: Disclaimer was mailed this morning.

By: Joshua C. Colp (jcolp) 2007-04-08 20:06:42

Fixed in 1.2 as of revision 60797, 1.4 as of revision 60798, and trunk as of revision 60799. Thanks!