前提条件
准备一个路由器,一个服务器,两个终端设备(手机或电脑)
docker部署安装
我使用的是windows系统,docker desktop
- 先启动Docker desktop
- 打开cmd,输入docker命令
docker run --name kamailio --rm -p 5060:5060/udp -p 5060:5060 kamailio/kamailio-ci:5.5.2-alpine -m 64 -M 8
- docker desktop 出现服务
点击kamailio
蓝色链接进入命令窗口
输入ip ad
查看docker内部的通信ip,此处为172.17.0.2
需要记录下; - 打开cmd窗口,输入
ipconfig
查看服务器ip地址,此处为192.168.101.3
,记录下来;
- 进入docker,输入
vi /etc/kamailio/kamailio.cfg
- 在第
198
行的位置,# listen=udp:10.0.0.10:5060
的下面添加下述配置listen=udp:172.17.0.2:5060 advertise 192.168.101.3:5060 listen=tcp:172.17.0.2:5060 advertise 192.168.101.3:5060
- 重启
kamailio
服务,linux系统使用命令kamctl restart
看到日志打印出以下内容就ok了
测试通话
下载linphone
注意:
安装启动后需要使用SIP
注册
SIP
服务器地址为服务器的IP+端口
配置如下:其中huawei
为通讯录名称,可自定义,用英文表示,2001
为类似电话号码的标识,使用UDP连接
在通话前,若是手机使用linphone,请打开所有权限,否则可能无法通话
如:手机拨号,电脑接收
docker打印日志信息
2024-10-17 09:50:48 6(12) NOTICE: {2 21 BYE i38Gtrj2yW} acc [acc.c:287]: acc_log_request(): ACC: transaction answered: timestamp=1729129848;method=BYE;from_tag=vIJoyK0Gy;to_tag=~1J9Ivd;call_id=i38Gtrj2yW;code=200;reason=Ok;src_user=2001;src_domain=192.168.101.3;src_ip=172.17.0.1;dst_ouser=3001;dst_user=3001;dst_domain=172.17.0.1
2024-10-17 09:50:49 9(15) NOTICE: acc [acc.c:287]: acc_log_request(): ACC: transaction answered: timestamp=1729129849;method=BYE;from_tag=P-1Em8X;to_tag=QtdzOiA9k;call_id=-P67zRGwqK;code=408;reason=Request Timeout;src_user=3001;src_domain=192.168.101.3;src_ip=172.17.0.1;dst_ouser=2001;dst_user=2001;dst_domain=172.17.0.1
PS:要是通话不稳定,打不通,切换为TCP
连接试试
参考连接http://www.kamailio.org.cn/blog/2022/06/beginners-guide/