- 博客(7)
- 资源 (7)
- 问答 (1)
- 收藏
- 关注
原创 FreeSwitch使用opencore进行AMR-NB解码过程中,出现解码函数死循环问题
本篇文章介绍一个AMR-NB编码使用opencore解码时的死循环bug解决思路,并未从根源上解决问题,而是采取了特殊方式达到了解决问题的目的。发现问题的版本是FreeSwitch的1.10.9版本,经过了较多改动,但未影响到编解码部分,此bug非改动后新产生的bug,原版FreeSwitch也会携带此bug。
2025-01-16 19:52:23
40
原创 FreeSwitch代码中2个常修改的具体代码具体位置和简介
FreeSwitch在各种实际应用场景中,在不修改代码的情况下完整的支持业务场景是一件不容易的事情,大部分实际应用场景需要修改FreeSwitch的代码。所以了解清楚FreeSwitch代码是一件FreeSwitch应用必备的技能,本文将对FreeSwitch常修改和调试的常见位置进行介绍。
2024-05-11 19:30:26
279
1
原创 使用FreeSwitch的hangup命令拒绝一个INVITE请求时,指定INVITE的响应码。
假设在FreeSwitch的dialplan中使用hangup命令拒绝一个呼叫时,默认使用480响应码来拒绝一个INVITE消息。当然,FreeSwitch支持使用hangup的参数来决定使用指定的响应码来回复INVITE消息。FreeSwitch自带一些指定的响应码,如果想增加自己的响应码,可修改FreeSwitch代码来增加自己的响应码。
2024-05-11 18:13:53
1197
2
原创 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
196
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
1153
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
2663
5
原创 Google Open Images Dataset V4 百度网盘地址。
链接: https://pan.baidu.com/s/1FTk3G8pvqRKYgVVB3n2XFQ提取码: 5r2j花了10天时间从硅谷服务器上转过来的,如果对您有帮助欢迎下方打赏或者啥的。。。。
2019-04-15 22:24:21
3680
3
Windows VC++编程问题,如何获取文件粘贴事件,在粘贴事件执行前做一些操作。
2018-06-27
TA创建的收藏夹 TA关注的收藏夹
TA关注的人