freeswitch之媒体协商模式

  • 默认模式:

     主叫发送呼叫INVITE到freeswitch,freeswitch在呼叫被叫时,使用自己的媒体编码能力呼叫被叫。这样freeswitch分别与主、被叫进行媒体协商时,可以使用主、被叫不同时支持的编码进行通话。freeswitch收到主、被叫的媒体数据后,进行解码、转码、重新编码再发给对端。

图中,左边是主叫发给freeswitch的INVITE媒体参数,右边是freeswitch发给被叫INVITE的媒体参数

配置:默认就是此种模式

图中,左边是主叫发给freeswitch的INVITE媒体参数,右边是freeswitch发给被叫INVITE的媒体参数

  • 代理模式

    主叫发送呼叫INVITE到freeswitch,freeswitch在呼叫被叫时,使用主叫的媒体编码能力呼叫被叫。这样freeswitch分别与主、被叫进行媒体协商时,使用的编码是双方都支持的,不需要转码。freeswitch负责接收双方媒体数据并转发给对端。

 

 图中,左边是主叫发给freeswitch的INVITE媒体参数,右边是freeswitch发给被叫INVITE的媒体参数

配置:

conf/dialplan/default.xml:

设置proxy_media=true

     <extension name="Local_Extension">
       <condition field="destination_number" expression="^(10[01][0-9])$">
+       <action application="set" data="proxy_media=true"/>

  • 旁路模式

   主叫发送呼叫INVITE到freeswitch,freeswitch在呼叫被叫时,使用主叫的媒体能力(整个SDP)呼叫被叫。这样由主、被叫独立进行媒体协商时,freeswitch不参与媒体传输,建立通话后,媒体数据(RTP)在主、被叫之间直接传输,不需要经过freeswitch处理。

 图中,左边是主叫发给freeswitch的INVITE媒体参数,右边是freeswitch发给被叫INVITE的媒体参数

配置:
conf/dialplan/default.xml:

设置inbound-bypass-media=true

     <extension name="Local_Extension">
       <condition field="destination_number" expression="^(10[01][0-9])$">
+       <action application="set" data="inbound-bypass-media=true"/>

  • 关键说明
  1. 默认方式在主、被叫编码协商不一致时,提供转码能力,支持录音
  2. 代理模式负责转发媒体数据,可以处理nat问题
  3. 旁路模式不修改SDP参数,也不转发媒体数据,一般用于通话双方在局域网内场景

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

浪游东戴河

你就是这个世界的唯一

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值