参考链接:
curl 请求 http://localhost:5060/sip-bridge/<from>/<to>
kamailio 配置:
listen=tcp:localhost:5060
listen=udp:192.168.2.92:5060
listen=tcp:192.168.2.92:5060
loadmodule "xhttp.so"
loadmodule "jsonrpcs.so"
loadmodule "kex.so"
loadmodule "corex.so"
loadmodule "tm.so"
loadmodule "tmx.so"
loadmodule "sl.so"
loadmodule "rr.so"
loadmodule "pv.so"
loadmodule "maxfwd.so"
#loadmodule "usrloc.so"
#loadmodule "registrar.so"
loadmodule "textops.so"
loadmodule "textopsx.so"
loadmodule "siputils.so"
loadmodule "xlog.so"
loadmodule "sanity.so"
loadmodule "ctl.so"
loadmodule "cfg_rpc.so"
loadmodule "acc.so"
loadmodule "counters.so"
loadmodule "dialog.so"
loadmodule "uac.so"
...
xhttp 路由块为:
...
if( $hu=~"^/sip-bridge/") {
$var(uri) = $hu;
$var(from) = $(var(uri){s.select,2,/});
$var(to) = $(var(uri){s.select,3,/});
dlg_bridge( $var(from), $var(to), "sip:192.168.2.92:5060");
}
...
逻辑不复杂,但能不能做成功还不清楚,以后有机会试试
所谓 bridge 应该是 Kamailio 先呼通一个,成功后再发 refer |到另外一个
在 xhttp 路面里面调用 dlg_bridge, 应该是实现了点击拨号的功能
坦白讲,要完全调通可能还有很多细节需要注意,可能还要修改源码