配置kamailio3与asterisk互拨
在ka3的kamailio.cfg的最前边增加一行
#!define WITH_PSTN 表示打开pstn的配置项。
后边的配置是
#!ifdef WITH_PSTN
# PSTN GW Routing
#
# - pstn.gw_ip: valid IP or hostname as string value, example:
# pstn.gw_ip = "10.0.0.101" desc "My PSTN GW Address"
#
# - by default is empty to avoid misrouting
pstn.gw_ip = "" desc "PSTN GW Address" //设置该处的pstn服务器的ip地址
#!endif
# PSTN GW routing
route[PSTN] {
#!ifdef WITH_PSTN
# check if PSTN GW IP is defined
if (strempty($sel(cfg_get.pstn.gw_ip))) {
xlog("SCRIPT: PSTN rotuing enabled but pstn.gw_ip not defined/n");
return;
}
# route to PSTN dialed numbers starting with '+' or '00'
# (international format)
# - update the condition to match your dialing rules for PSTN routing
if(!($rU=~"^(/+|00)[1-9][0-9]{3,20}$")) //该位置根据自己的规则更改,表示是允许呼叫pstn的号码
return;
# only local users allowed to call
if(from_uri!=myself) {
sl_send_reply("403", "Not Allowed");
exit;
}
$ru = "sip:" + $rU + "@" + $sel(cfg_get.pstn.gw_ip);
route(RELAY);
exit;
#!endif
return;
}
ka端的配置基本结束,很简单!
asterisk端的配置
文件sip.conf中增加代理
[sipproxy]
type=peer
context=kaincoming //从该服务器来的呼叫都使用该context。
host=10.0.2.4 //ka服务器地址
文件extensions.conf的配置
增加拨号计划
[kaincoming]
exten => _00.,1,Dial(Zap/g1/${EXTEN:2}) //需要呼叫pstn的号码
[kaoutgoing]
exten => _XXXX,1,Dial(SIP/${EXTEN}@sipproxy) //可以呼叫ka服务器的拨号计划
也很简单吧。
测试:ka呼叫pstn
ka处允许呼叫的号码是以'+' 或 '00' 开头。且后边的长度是3到20位
ka中注册一个客户端-1003
使用1003呼叫00后边加一个实际的电话号码,比如自己的手机号,接通,正常。
从pstn服务器呼叫ka服务器
可以在asterisk中注册一个sip客户端,context设置为kaoutgoing
使用该号码呼叫1003,接通,正常。