Openwrt编译安装Asterisk搭建内网voip系统

前几天把N1上基于armbian系统的asterisk安装配置搞定了,遗留的缺陷是N1只有一个网口,不能接入公网,所以把openwrt又翻出来,琢磨了一番,也是可以搞定的。

之前openwrt搭建失败是安装的依赖包不全,导致sip client可以注册成功,但一打电话,就报错

[2021-10-03 12:21:29] ERROR[13509][C-00000002]: rtp_engine.c:435 ast_rtp_instance_new: No RTP engine was found. Do you have one loaded?

尝试安装asterisk-res-xxxx后,又产生新的依赖,所以一直没搞定。

观察openwrt代码发现,最新的lean代码已经引用的是18.5.1的asterisk代码,非常新了,在ubuntu上下载相同代码,用menuselect命令就可以看出依赖关系,逐步添加依赖包,就可以解决依赖问题。

还有一个办法是把18.5.1代码下载到本地,用grep或者windows上source insight等工具搜索报错的函数,这样也能找出依赖关系,当然,这个成本就高些,实在没有线索可以尝试

最终整理的依赖关系如下:

chan-sip => res-rtp-asterisk => res-pjproject => res-sorcery

以Lean openwrt为例,.config代码中需要手动修改,编译如下模块

CONFIG_PACKAGE_asterisk=y   
CONFIG_PACKAGE_asterisk-app-confbridge=y
CONFIG_PACKAGE_asterisk-bridge-builtin-features=y
CONFIG_PACKAGE_asterisk-bridge-simple=y
CONFIG_PACKAGE_asterisk-bridge-softmix=y
CONFIG_PACKAGE_asterisk-chan-sip=y
CONFIG_PACKAGE_asterisk-res-pjproject=y
CONFIG_PACKAGE_asterisk-res-rtp-asterisk=y
CONFIG_PACKAGE_asterisk-res-rtp-multicast=y
CONFIG_PACKAGE_asterisk-res-sorcery=y

如果是自己安装,那么需要安装如下ipk

asterisk
asterisk-chan-sip
asterisk-res-pjproject
asterisk-res-rtp-asterisk
asterisk-res-rtp-multicast
asterisk-res-sorcery

安装完毕后,openwrt不会运行asterisk,参考下问,需要配置开启

uci set asterisk.general.enabled='1' && uci commit

openwrt上运行asterisk搭建电话语音网关,对接电信ims-sip配置上遇到的一些坑_NAS存储_什么值得买

20211109刷新:

op搭建的sip服务出现了手机4g网络呼叫单通无声现象,排查需要在sip.conf中增加如下:

1. externhost = xxxx

2. nat = yes

3. localnet = 192.168.1.0/255.255.255.0

op需要安装额外的包:持续刷新

asterisk
asterisk-app-confbridge
asterisk-app-voicemail
asterisk-bridge-builtin-features
asterisk-bridge-simple
asterisk-bridge-softmix
asterisk-chan-sip
asterisk-codec-gsm
asterisk-codec-ulaw
asterisk-format-gsm
asterisk-format-wav
asterisk-format-wav-gsm
asterisk-res-pjproject
asterisk-res-rtp-asterisk
asterisk-res-sorcery
asterisk-sounds

asterisk的声音包默认不全,在系统的/usr/share/asterisk目录下,需要拷贝其他中文语言,有开源下载

asterisk 的语言留言目录需要迁移到其他目录,否则容易把op空间撑满

默认是在/var/spool目录

调试命令

1、运行调试常用命令

  • ./asterisk & #后台启动
  • ./asterisk -vvvc #启动asterisk 并尽量多的在后台显示调试信息
  • ./asterisk -r #连接asterisk控制台
  • set verbose #设置打印信息

2、asterisk控制台下常用命令

  • set reload #重新加载sip配置信息
  • sip set debug on #设置显示更多的Sip信息
  • sip set debug off #关闭更多sip信息显示
  • sip show channels #显示活动的sip通道
  • sip show peers #显示已定义的sip peer
  • dialplan show #显示拨号方案
  • dialplan reload #重新加载拨号方案
  • stop gracefully #优雅的终止asterisk
  • stop now #立即停止asterisk
  • module show #显示所有已加载模块
  • module load xxxxx.so #加载xxxxx.so 模块
  • module reload xxxx.so #重新加载xxxx.so
  • module unload xxxx.so #卸载xxxx.so模块
  • core show applications #显示所有的应用 如:Dial、Radius、Hangup、Answer等
  • core show channels #显示所有的通话频道
  • core show codecs #显示所有支持的编解码器
  • core show funcions #显示所有的功能函数
  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 8
    评论
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值