freeswitch 修改编码协商顺序 优先G729

在freeswitch编码协商中 一般网关传过来的支持pcma、g729     以下是协商的日志:

 
2021-02-09 13:21:29.118569 [DEBUG] switch_core_media.c:5592 Audio Codec Compare [PCMA:8:8000:20:64000:1]/[G729:18:8000:20:8000:1]
2021-02-09 13:21:29.118569 [DEBUG] switch_core_media.c:5592 Audio Codec Compare [PCMA:8:8000:20:64000:1]/[G722:9:8000:20:64000:1]
2021-02-09 13:21:29.118569 [DEBUG] switch_core_media.c:5592 Audio Codec Compare [PCMA:8:8000:20:64000:1]/[PCMU:0:8000:20:64000:1]
2021-02-09 13:21:29.118569 [DEBUG] switch_core_media.c:5592 Audio Codec Compare [PCMA:8:8000:20:64000:1]/[PCMA:8:8000:20:64000:1]
2021-02-09 13:21:29.118569 [DEBUG] switch_core_media.c:5647 Audio Codec Compare [PCMA:8:8000:20:64000:1] ++++ is saved as a match
2021-02-09 13:21:29.118569 [DEBUG] switch_core_media.c:5592 Audio Codec Compare [G729:18:8000:20:8000:1]/[G729:18:8000:20:8000:1]
2021-02-09 13:21:29.118569 [DEBUG] switch_core_media.c:5647 Audio Codec Compare [G729:18:8000:20:8000:1] ++++ is saved as a match
2021-02-09 13:21:29.118569 [DEBUG] switch_core_media.c:5592 Audio Codec Compare [G729:18:8000:20:8000:1]/[G722:9:8000:20:64000:1]
2021-02-09 13:21:29.118569 [DEBUG] switch_core_media.c:5592 Audio Codec Compare [G729:18:8000:20:8000:1]/[PCMU:0:8000:20:64000:1]
2021-02-09 13:21:29.118569 [DEBUG] switch_core_media.c:5592 Audio Codec Compare [G729:18:8000:20:8000:1]/[PCMA:8:8000:20:64000:1]
 

如果freeswitch 装了bcg729 https://github.com/xadhoom/mod_bcg729  就支持729 ,在vars.xml添加729新编码   但是协商结果优先使用的是pcma

2021-02-09 13:21:29.118569 [DEBUG] switch_core_media.c:3837 Set Codec sofia/internal/1002@192.168.70.88 PCMA/8000 20 ms 160 samples 8000 bits 1 channels
 

如果要优先729 在使用pcma怎么处理?

查看源码 switch_core_media.c 默认就是0  所以只要改下就行了

“Audio Codec Compare [%s:%d:%u:%d:%u:%d] ++++ is saved as a match”找到这行的下面

....

if (j == 0) { 
                            a_engine->cur_payload_map = pmap;
                            a_engine->cur_payload_map->current = 1;
                            switch_log_printf(SWITCH_CHANNEL_SESSION_LOG(session), SWITCH_LOG_WARNING, "lilin23=%s\n",matches[j].map->rm_encoding);
                            if (a_engine->rtp_session) {
                                switch_rtp_set_default_payload(a_engine->rtp_session, pmap->pt);
                            } 
}

默认是0  可以根据自己的逻辑来重新实现就行了  当然你的网关确定都支持G729 就直接在vars.xml 删除pcma就行

修改后重新编译 就能支持自己想要的编码优先了

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值