Details
-
Type:
Improvement
-
Status:
Closed
-
Priority:
Minor
-
Resolution: Unresolved
-
Affects Version/s: None
-
Fix Version/s: None
-
Component/s: mod_sofia
-
Labels:None
-
Platform:Linux x86/gcc
-
FreeSWITCH GIT Revision:git-head from Wed Apr 13
-
Reproduced with GIT HEAD?:yeap
Description
On a profile with
<param name="inbound-late-negotiation" value="true"/>
<param name="inbound-codec-negotiation" value="generous"/>
<param name="disable-transcoding" value="true"/>
<param name="inbound-codec-prefs" value="G729,PCMA"/>
<param name="outbound-codec-prefs" value="G729,PCMA"/>
When someone with codec preference set to PCMA, G729 calls to:
<extension name="test">
<condition field="destination_number" expression="^9999$">
<action application="set" data="ringback=$${us-ring}"/>
<action application="set" data="instant_ringback=true"/>
<action application="bridge" data="sofia/internal/1001%10.2.7.206"/>
</condition>
</extension>
The bleg INVITE is sent with current OUTBOUND codec prefs not the aleg codec prefs.
This leads to transcoding or other weird stuff like asymmetric codecs in some scenarios.
Attached patch adds support for a_codec_string channel variable that is like ep_codec_string but with original codec preference.
This way one can do:
<extension name="test">
<condition field="destination_number" expression="^9999$">
<action application="info"/>
<action application="set" data="ringback=$${us-ring}"/>
<action application="set" data="instant_ringback=true"/>
<action application="export" data="nolocal:absolute_codec_string=${a_codec_string}"/>
<action application="bridge" data="sofia/internal/1001%10.2.7.206"/>
</condition>
</extension>
And respect aleg codec priority without the need to parse switch_r_sdp in a dialplan.
<param name="inbound-late-negotiation" value="true"/>
<param name="inbound-codec-negotiation" value="generous"/>
<param name="disable-transcoding" value="true"/>
<param name="inbound-codec-prefs" value="G729,PCMA"/>
<param name="outbound-codec-prefs" value="G729,PCMA"/>
When someone with codec preference set to PCMA, G729 calls to:
<extension name="test">
<condition field="destination_number" expression="^9999$">
<action application="set" data="ringback=$${us-ring}"/>
<action application="set" data="instant_ringback=true"/>
<action application="bridge" data="sofia/internal/1001%10.2.7.206"/>
</condition>
</extension>
The bleg INVITE is sent with current OUTBOUND codec prefs not the aleg codec prefs.
This leads to transcoding or other weird stuff like asymmetric codecs in some scenarios.
Attached patch adds support for a_codec_string channel variable that is like ep_codec_string but with original codec preference.
This way one can do:
<extension name="test">
<condition field="destination_number" expression="^9999$">
<action application="info"/>
<action application="set" data="ringback=$${us-ring}"/>
<action application="set" data="instant_ringback=true"/>
<action application="export" data="nolocal:absolute_codec_string=${a_codec_string}"/>
<action application="bridge" data="sofia/internal/1001%10.2.7.206"/>
</condition>
</extension>
And respect aleg codec priority without the need to parse switch_r_sdp in a dialplan.
Activity
Mike Jerris
made changes -
| Field | Original Value | New Value |
|---|---|---|
| Assignee | Anthony Minessale II [ anthm ] | Mike Jerris [ mikej ] |
Mike Jerris
made changes -
| Workflow | jira [ 12789 ] | Freeswitch [ 14114 ] |
Mike Jerris
made changes -
| Component/s | mod_sofia [ 10221 ] |
Mike Jerris
made changes -
| Key | MODSOFIA-70 | MODENDP-428 |
| Project | sofia-module [ 10103 ] | Endpoint Modules [ 10020 ] |
| Component/s | mod_sofia [ 10221 ] | |
| Component/s | mod_sofia [ 10033 ] |
Mike Jerris
made changes -
| Component/s | mod_sofia [ 10033 ] | |
| Key | MODENDP-428 | FS-926 |
| Component/s | mod_sofia [ 10240 ] | |
| Project | Endpoint Modules [ 10020 ] | FreeSWITCH [ 10141 ] |
Ken Rice
made changes -
| Status | Open [ 1 ] | Waiting for reporter [ 10000 ] |
Ken Rice
made changes -
| Status | Waiting for reporter [ 10000 ] | Closed [ 6 ] |