kamailio通過rtpproxy實現穿透

2021-09-16 12:01:43 字數 2003 閱讀 5357

本文描述通過路由器對映到內網時,怎麼通過rtpproxy實現nat。

# cd /usr/local/src

# git clone git:

# cd rtpproxy

修改原始碼,新增乙個引數,用於設定路由器的對映位址。

找到以下一行**,

cf->stable.log_facility = -1;
在這行後面新增一行:

cf->stable.advertised = null;

找到這一行**

while ((ch = getopt(argc, ar**, "vf2rl:6:s:s:t:r:p:t:l:m:m:u:fin:pad:")) != -1)
把它改為:

while ((ch = getopt(argc, ar**, "vf2rl:6:s:s:t:r:p:t:l:m:m:u:fin:pad:a:")) != -1)
在緊接著的switch/case分支裡,新增乙個分支:

case 'a':

cf->stable.advertised = strdup(optarg);

break;

存檔。

編輯rtpp_command

.c檔案,找到下面這段**:

if (lia[0] == null || ishostnull(lia[0]))

len += sprintf(cp, "%d\n", lport);

else

將它修改為:

存檔退出。

if(cf->advertised != null)

len += sprintf(cp, "%d %s%s\n", lport, cf->advertised,

(lia[0]->sa_family == af_inet) ? "" : " 6");

else

len += sprintf(cp, "%d %s%s\n", lport, addr2char(lia[0]),

(lia[0]->sa_family == af_inet) ? "" : " 6");

編輯rtpp_defines

.**件

在struct cfg_stable定義裡新增乙個屬性:

執行以下命令編譯安裝:

# ./configure && make && make install

# rtpproxy -a218.75.32.50 -l0.0.0.0 -sudp:localhost:7722 -m 33000 -m 35000 -f

引數說明:

-a: 對映的公網ip

-s:   本機用於kamailio控制的監聽位址和埠

-m:  最小rtp埠

-m: 最大rtp埠

編輯kamailio.cfg

新增with_nat定義:

#!define with_mysql

#!define with_auth

#!define with_usrlocdb

#!define with_nat

找到這一行:

modparam("rtpproxy", "rtpproxy_sock", "udp:127.0.0.1:7722")
把ip和埠指向rtpproxy的服務ip和埠。

add_local_rport();
配置listen 別名,新增以下內容

listen=udp:192.168.124.68:6060 advertise publicip:port

使用kamailio 實現asterisk負載均衡

通過使用kamailio的dispatcher.so 模組實現astersik的負載均衡 配置如下 1 dispatcher.list group sip addresses of your units 1 sip 10.1.2.3 5060 1 sip 10.1.2.4 5060 1 sip 10...

kamailio開啟TLS配置

kamailio.cfg配置檔案裡,一般有 ifdef with tls endif相應開關,這裡將相應開關更改如下 ifdef with tls enable tls yes loadmodule tls.so modparam tls config usr local etc kamailio ...

kamailio的web管理介面Siremis

很開心kamailio有個第三方的web介面管理程式 siremis 現在已經到了2.0,介面做得不錯 主要功能如下 提供系統和資料庫管理工具,為kamailio 使用者,資料庫別名和快速撥號管理 位置表檢視 排程員,翻譯字首域和最少成本路由 lcr 管理 訪問控制列表 使用者組 和許可權管理 會計...