我在freeswitch上尝试以下场景:
b-leg手机是其他freeswitch的拨号方案如下:
<extension name="EarlyMedia">
<condition field="destination_number" expression="^[+]?[1]?<MY_NUMBER>">
<action application="pre_answer"/>
<action application="playback" data="/home/ubuntu/EARLY_MEDIA.wav"/>
<action application="sleep" data="1000"/>
<action application="answer"/>
<action application="playback" data="/home/ubuntu/CALL_MEDIA.wav"/>
<action application="sleep" data="1000"/>
</condition>
</extension>
Run Code Online (Sandbox Code Playgroud)
我发送给freeswitch的命令序列如下:
bgapi originate {ignore_early_media=true,bridge_early_media=false,origination_caller_id_number=sofia/external/<MY_FROM_NUMBER>@<MY_IP>,origination_channel_name=<MY_CHANNEL>,ringback=\'%(2000,4000,440,480)\'}sofia/external/<A-LEG NUMBER>@<MY_IP> &park()
bgapi originate {ignore_early_media=true,bridge_early_media=false,origination_caller_id_number=sofia/external/<MY_FROM_NUMBER>@<MY_IP>,origination_channel_name=<MY_CHANNEL>,ringback=\'%(2000,4000,440,480)\'}sofia/external/<B-LEG NUMBER>@<MY_IP> &park()
bgapi uuid_bridge <A-LEG UUID> <B-LEG UUID>
问题是即使使用ignore_early_media = true,bridge_early_media = false我听到A-LEG上的早期媒体
ignore_early_media并不意味着您没有“听到”早期媒体。这只是意味着 Freeswitch 不会将其视为答案。
来自文档 ignore_early_media:
控制呼叫是否在早期媒体上返回。默认为 false
即使ringback=\'%(2000,4000,440,480)\设置了,我发现 Freeswitch 仍然会发送183 SIP 响应。如果是您的 Freeswitch 发送了您不想要的 183,请删除ringback=\'%(2000,4000,440,480)\并查看是否有效。另外,您可以用来ring_ready发送不应该有 SDP/早期媒体的 180。
| 归档时间: |
|
| 查看次数: |
1123 次 |
| 最近记录: |