[asterisk-bugs] [Asterisk 0013243]: [patch] Set(SIP_CODEC=xxxx) only applies to first inbound leg of call

Asterisk Bug Tracker noreply at bugs.digium.com
Tue Feb 10 09:48:18 CST 2009


A NOTE has been added to this issue. 
====================================================================== 
http://bugs.digium.com/view.php?id=13243 
====================================================================== 
Reported By:                samdell3
Assigned To:                file
====================================================================== 
Project:                    Asterisk
Issue ID:                   13243
Category:                   Channels/chan_sip/CodecHandling
Reproducibility:            always
Severity:                   tweak
Priority:                   normal
Status:                     ready for review
Asterisk Version:           Older 1.4 
Regression:                 No 
SVN Branch (only for SVN checkouts, not tarball releases): N/A 
SVN Revision (number only!):  
Request Review:              
====================================================================== 
Date Submitted:             2008-08-05 18:32 CDT
Last Modified:              2009-02-10 09:48 CST
====================================================================== 
Summary:                    [patch] Set(SIP_CODEC=xxxx) only applies to first
inbound leg of call
Description: 
We have had a long standing requirement to be able to force the use of g711
codec based on dialled number, eg known modem destinations etc.
We still need to use g729 by default for voice calls.

The obvious choice is to Set(SIP_CODEC=alaw) prior to Dial()

However, SIP_CODEC only ever forced the inbound (first) leg of the call to
use alaw. If the outbound leg codec priority was 1st G729 2nd alaw, then
g729 was always used.

Attached is a very simple patch against 1.4.14 that solves our problem. It
works for both reinvited and non reinvited media.
Due to the patch only being 2 lines of additional code, it would be easy
to apply to later versions of Asterisk

It's now running in a production environment, but I would really like some
feedback from other users.

 
====================================================================== 

---------------------------------------------------------------------- 
 (0099794) oej (manager) - 2009-02-10 09:48
 http://bugs.digium.com/view.php?id=13243#c99794 
---------------------------------------------------------------------- 
So _SIP_CODEC is for outbound and CHANNEL() may be used for inbound. Which
means that we can fix SIP_CODEC for outbound only and clarify docs.

For inbound it's harder. You need a way to escape. If I have an inbound
call that only sends ALAW and set SIP_CODEC to G.729, then the SIP channel
will have to deny the call. We can't really set error codes in reply to
variables. people will have to first read CHANNEL() to see inbound codecs
and select one. 
The important is that the SIP channel will fail the call in this case, not
ignore the SIP_CODEC setting.
Which will confuse people. 

Issue History 
Date Modified    Username       Field                    Change               
====================================================================== 
2009-02-10 09:48 oej            Note Added: 0099794                          
======================================================================




More information about the asterisk-bugs mailing list