![](https://img-blog.csdnimg.cn/58dabe34870145e99f45b8f476fbc3c7.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
freeswitch高级问题专栏
文章平均质量分 74
知名开源媒体交换框架freeswitch相关原代码修改和理解问题。
jkkj1630
没什么
展开
-
FreeSwitch代码中2个常修改的具体代码具体位置和简介
FreeSwitch在各种实际应用场景中,在不修改代码的情况下完整的支持业务场景是一件不容易的事情,大部分实际应用场景需要修改FreeSwitch的代码。所以了解清楚FreeSwitch代码是一件FreeSwitch应用必备的技能,本文将对FreeSwitch常修改和调试的常见位置进行介绍。原创 2024-05-11 19:30:26 · 47 阅读 · 1 评论 -
使用FreeSwitch的hangup命令拒绝一个INVITE请求时,指定INVITE的响应码。
假设在FreeSwitch的dialplan中使用hangup命令拒绝一个呼叫时,默认使用480响应码来拒绝一个INVITE消息。当然,FreeSwitch支持使用hangup的参数来决定使用指定的响应码来回复INVITE消息。FreeSwitch自带一些指定的响应码,如果想增加自己的响应码,可修改FreeSwitch代码来增加自己的响应码。原创 2024-05-11 18:13:53 · 258 阅读 · 1 评论 -
FreeSwitch在B腿回复422消息时,透传Min-SE字段给A腿
FreeSwitch当使用bridge方式桥接起AB腿时,B腿回复的部分状态码中携带的某些字段,并不会透传给A腿,由于部分字段的缺失会导致A腿方向的会话无法确定异常的状态原因,以422消息举例:本文章是在FreeSwitch 1.10.9的代码基础上进行的改动,过早的版本,或者过于未来的版本可能有改动,如果时间不长应该大同小异。当uac发起初始INVITE请求时,会携带Session-Expire头域指定会话的刷新时间和刷新方,格式为:上面的例子代表,会话刷新消息的超时时间为90秒,由uac来刷新消息。原创 2024-05-11 17:14:47 · 36 阅读 · 1 评论 -
FreeSwitch的AMR/AMR-WB编码通话因解码问题导致通话杂音
FreeSwitch在解码AMR和AMR-WB编码部分直接对读取到的switch_frame_t结构体内的数据进行unpack操作,对于将要传输的原始数据进行了位移修改,导致了被叫侧发出去的数据是被位移函数破坏的数据,产生了杂音。FreeSwitch使用自带的AMR和AMR-WB编解码器BUG,双方通话协商为AMR或AMR-WB时,通话在录音的情况下可能变为杂音,导致无法正常通话。当协商为带宽效率模式(BE)时,会对每个RTP报文的CMR后面的F、FT、Q位进行位移。带宽效率模式(BE)原创 2024-05-11 16:30:36 · 141 阅读 · 1 评论 -
FreeSwitch 修改代码使UPDATE消息和对应的SDP进行A到B腿透传功能
FreeSwitch默认收到A-leg的UPDATE消息后不会发送给B-leg,通过修改代码的方式增加一个update_passthrough变量字段来控制UPDATE消息A到B腿转发的功能。如果是在早期媒体阶段也需要转发UPDATE消息,可以通过update_passthrough_on_early来控制是否在早期媒体阶段转发UPDATE消息。由于A腿和B腿之间使用消息队列进行通信,UPDATE消息一般使用SWITCH_MESSAGE_INDICATE_DISPLAY消息进行传输,即A腿向B腿发送原创 2022-04-06 14:23:01 · 2104 阅读 · 4 评论