[asterisk-users] Problems with Codecs in Asterisk

Rich Adamson radamson at routers.com
Tue Aug 8 07:17:49 MST 2006


Dean @ INKnBITs wrote:
> I have the same problem here, why does asterisk not use ulaw with Sip1 
> -> Sip3 ?  As it has allow=g729 and allow=ulaw in Sip1, should it not 
> fallback onto ulaw when the g729 fails?
>  
> Thanks,
> Dean.
> 
>     -----Original Message-----
>     *From:* asterisk-users-bounces at lists.digium.com
>     [mailto:asterisk-users-bounces at lists.digium.com]*On Behalf Of *Rosli
>     Sukri
>     *Sent:* 08 August 2006 13:38
>     *To:* Asterisk Users Mailing List - Non-Commercial Discussion
>     *Subject:* Re: [asterisk-users] Problems with Codecs in Asterisk
> 
>     either
>     1)pay digium for g.729 license or
>     2)allow g.729 for sip3
> 
>     - sip 1 -> sip2 work cause it will pass thru,
>     - sip 2 -> sip3 fails because since asterisk wants to do transcoding
>     to 729<->711 and no license
>     if bandwidth is a concern just use GSM (if available as a codec on
>     the phone)
> 
>     On 8/8/06, *Chan Kwang Mien* < kwangmien at asgent-tech.com
>     <mailto:kwangmien at asgent-tech.com>> wrote:
> 
>         Hi,
> 
>         My test-setup is as follows :
> 
>         sip1 <--> Asterisk <--> sip2
>                       ^
>                       |-------> sip3
> 
>         In sip.conf,
> 
>         [sip1]
>         type=friend
>         host=dynamic
>         secret=pass
>         disallow=all
>         allow=g729
>         allow=ulaw
> 
>         [sip2]
>         type=friend
>         host=dynamic
>         secret=pass
>         disallow=all
>         allow=g729
> 
>         [sip3]
>         type=friend
>         host=dynamic
>         secret=pass
>         disallow=all
>         allow=ulaw
> 
> 
>         sip1 supports g.729 and g.711u only
>         sip2 supports g.729 only
>         sip3 supports g.711u only
> 
>         sip1 is able to establish a call to sip2.
>         However, I have problem establishing a call from sip1 to sip3. sip3
>         rings but when I answered it, it hanged up.
> 
>         The Logs are :
> 
>             -- Executing Dial("SIP/2006-389a", "SIP/2003") in new stack
>             -- Called 2003
>         Aug  8 09:55:15 WARNING[6937]: channel.c:2725
>         ast_channel_make_compatible: No path to translate from
>         SIP/2003-b5f8(4)
>         to SIP/2006-389a(256)
> 
>             -- SIP/2003-b5f8 is ringing
>             -- SIP/2003-b5f8 answered SIP/2006-389a
> 
>         Aug  8 09:55:16 WARNING[6937]: channel.c:2725
>         ast_channel_make_compatible: No path to translate from
>         SIP/2006-389a(256) to SIP/2003-b5f8(4)
>         Aug  8 09:55:16 WARNING[6937]: app_dial.c:1608 dial_exec_full:
>         Had to
>         drop call because I couldn't make SIP/2006-389a compatible with
>         SIP/2003-b5f8
>           == Spawn extension (phones, 2003, 1) exited non-zero on
>         'SIP/2006-389a'
> 
> 
>         I think the codecs used by sip3 and sip1 are incompatible. Does
>         anyone
>         know how I could make them compatible ?

I believe the issue is this...

When sip1 initiates a call, a codec is selected based on the sip phone 
preference and asterisk codec "ordering". That selection has nothing to 
do with "where" the call is going to be directed (eg, sip2 or sip3). 
That negotiation happens early, otherwise you would not be able to hear 
busy & congested tones, audio messages, etc.

"After" that negotiation happens, then asterisk begins processing the 
call by doing the same thing with the destination sip phone. In other 
words, asterisk negotiates an appropriate codec with sip2 (or sip3) that 
is based on that phone's codec preference and what asterisk's codec 
ordering for that sip phone definition.

"After" both of the above steps are completed, asterisk then tries to 
bridge the two calls, and if you don't have the g729 codec installed, it 
can't bridge ulaw to g729. There is no more codec negotiation going on 
after step 1 and 2 above.

The above can easily be verified by simply doing a "sip debug" and 
placing a call.





More information about the asterisk-users mailing list