kamailio 云部署 配置NAT

公有云配置NAT

第一步:将内网ip广播至公网ip,编辑/etc/kamailio/kamailio.cfg文件,搜索listen,添加如下配置

# listen=udp:10.0.0.10:5060
listen=0.0.0.0:5060 advertise PUBLIC_IP:5060

第二部:绑定NAT。这一步有坑,请注意!!

1. 根据kamailio文档,需要在/etc/kamailio/kamailio.cfg添加#!define WITH_NAT,如下:

#!KAMAILIO
#!define WITH_NAT

  2. 搜索WITH_NAT你会看到kamailio的介绍,安装rtpproxy 启动时用 -l 参数传递 you public ip。要是按照这个操作就呵呵了,当你invite时,会在公网ip和内网ip之间循环route,知道too many hops!!! 因为当前版本的rtpproxy缺少了一个公有云部署的必要的功能,使用广播地址。

# *** To enable nat traversal execute:
#     - define WITH_NAT
#     - install RTPProxy: http://www.rtpproxy.org
#     - start RTPProxy:
#        rtpproxy -l _your_public_ip_ -s udp:localhost:7722
#     - option for NAT SIP OPTIONS keepalives: WITH_NATSIPPING

  3. 很幸运有人修复了这个问题,你可以自己编译rtpproxy,如下:

#下载源码
wget https://github.com/miconda/rtpproxy/archive/master.zip

# 解压并编译

unzip master.zip

cd rtpproxy-master

./configure 
make
make install

#启动 rtpproxy
./rtpproxy -A PUBLIC_IP -l PRIVADE_IP -d INFO -s udp:*:7722

 

posted @ 2019-04-14 13:36  chenzhenqi  阅读(1641)  评论(0编辑  收藏  举报