kamailio 云部署 配置NAT

公有云配置NAT

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

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

第二部:绑定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:
# - 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:*:
上一篇:简单的INI解析封装


下一篇:$命令行参数解析模块argparse的用法