网络拓扑

- IPPBX提供SIP服务
- iKuai软路由提供nat映射
- ikuai路由与华硕路由之间模式isp公网环境
- 两台sip终端注册到ippbx并实现互通
IPPBX部署步骤
服务器版本:Ubuntu 22.04.5 LTS
csharp
# 安装asterisk
sudo apt-get install asterisk
- 修改sip配置文件
vim /etc/asterisk/sip.conf
ini
# 在文章末尾追加
[general]
context = default ; 拨号计划入口
bindport = 5060 ; sip监听端口
tcpbindaddr = 0.0.0.0 ; 监听的地址
tcpenable = yes ; 启动tcp传输
videosupport=always ; 始终支持视频
[1001]
type = friend ; 定义类型为friend(同时具备user和peer特性)
username=1001 ; SIP账号(用于认证)
secret = 1001 ; SIP密码
host = dynamic ; 允许设备动态注册(非固定IP)
canreinvite = no ; 禁止重新发起INVITE(解决NAT问题)
dtmfmode = rfc2833 ; DTMF传输方式(带内RFC2833格式)
mailbox = mailbox ; 关联的语音信箱
transport = udp ; 使用UDP传输协议
nat=yes ; 启用NAT穿透支持
videosupport=always ; 始终启用视频支持
maxcallbitrate=384 ; 最大呼叫带宽384kbps(视频通话需要)
disallow=all ; 初始禁止所有编解码
allow = ulaw ; 允许G.711 μ-law音频(64kbps)
allow=alaw ; 允许G.711 A-law音频(64kbps)
allow=h263 ; 允许H.263视频编码
allow=h264 ; 允许H.264视频编码(主流高清编码)
[1002]
type = friend
username=1002
secret = 1002
host = dynamic
canreinvite = no
dtmfmode = rfc2833
mailbox = mailbox
transport = udp
nat=yes
videosupport=always
maxcallbitrate=384
canreinvite=no
disallow=all
allow = ulaw
allow=alaw
allow=h263
allow=h264
[1003]
type = friend
username=1003
secret = 1003
host = dynamic
canreinvite = no
dtmfmode = rfc2833
mailbox = mailbox
transport = udp
nat=yes
videosupport=always
maxcallbitrate=384
canreinvite=no
disallow=all
allow = ulaw
allow=alaw
allow=h263
allow=h264
- 修改拨号计划配置文件
vim /etc/asterisk/extensions.conf
ini
# 在文章末尾追加
[general]
static=yes ; 配置文件为静态(运行时不会自动重载)
writeprotect=no ; 允许通过AMI动态修改拨号计划(生产环境建议设为yes)
[default] ; 默认呼叫上下文(路由入口)
; 分机1001的呼叫处理流程
exten => 1001,1,Answer() ; 应答来电(第1步)
exten => 1001,n,Dial(SIP/1001,20,tr) ; 呼叫SIP设备1001(n=下一步)
; 参数说明:
; SIP/1001 - 呼叫通道
; 20 - 振铃超时(秒)
; tr - 启用语音信箱转移
exten => 1001,n,Hangup() ; 挂断呼叫(最后一步)
exten => 1002,1,Answer()
exten => 1002,n,Dial(SIP/1002,20,tr)
exten => 1002,n,Hangup()
exten => 1003,1,Answer()
exten => 1003,n,Dial(SIP/1003,20,tr)
exten => 1003,n,Hangup()
- 进入调试模式
yaml
# 重启服务
systemctl restart asterisk.service
# 进入控制台
asterisk -r
# 查看sip注册情况
*CLI> sip show peers
# 解绑1001
*CLI> sip unregister 1001
ikuai映射服务配置

下载安卓客户端
客户端选用Linphone Download - Linphone

拨打测试

注册抓包
