我是Kamailio服务器的新手.我发现添加用户的命令是"./kamctl add".但是,我们如何才能找出注册用户的数量或者我们如何知道经过身份验证的用户数量?
I am trying to integrate webrtc->kamailio->asterisk to call from web browser.
Run Code Online (Sandbox Code Playgroud)
我使用caruizdiaz和chrome浏览器的kamailio配置文件,sipml5和asterisk作为媒体服务器.直到现在我已经实现了通过从浏览器sip中继调用pstn号码,但没有音频,并且在日志rtpengine中显示以下错误消息."需要SRTP输出,但没有谈判加密套件"
我认为这是错误,其中kamailio无法建立DTLS协商并且音频数据包被丢弃.
我的问题是如何使DTLS协商成功,无论是chrome侧还是星号错误?因为我使用RTP/AVP配置文件将媒体数据包发送到星号.
我在这里包含了我的日志kamailio-webrtc-log
提前致谢.
我正在尝试使用Linphone作为UA和Kamailio作为SIP代理/注册器来实现SIP呼叫中移动性.我开始在同一网络中的两个UA之间的通信(A)然后我将其中一个UA移动到网络(B).根据RFC 3261,linphone(或任何其他符合它的UA)应该向另一个UA(使用linphone的另一个用户)发送re-INVITE消息,以便通知他关于他在网络中的新IP(B),但是没有发生,linphone没有发送re-INVITE .....并且会话停止.能帮忙解决这个问题吗?我想知道linphone默认是否支持re-INVITE功能?如果不是我怎么能激活它?或者,如果您在我描述的架构中看到缺陷/问题,请告诉我们如何修复它.谢谢.
我有一个OpenSIPS服务器,可以监听多个IP.如果我将呼叫路由回到下一个点,我想确保所有信令和媒体来自最初登陆的IP(我不希望呼叫者和被呼叫者知道彼此的IP地址).
我相信我需要的东西,如RTPProxy.
我的问题是每个IP地址需要一个RTPProxy服务器,还是可以通过单个服务器路由多个IP?有更好的解决方案吗?
我将尝试自己,但我正在努力让RTPProxy服务器正常运行(我的无知,而不是RTPProxy的任何问题).我提前询问是否有人知道我是否在浪费时间设置它.
[UPDATE]
对于任何感兴趣的人来说,这就是我如何使用它,尽管我不确定我是否希望以此作为最终解决方案.需要更多测试.对于2个IP,具有拓扑隐藏和RTP代理.除了下面的答案,我希望它可以帮助某人.
加载rtpproxy进程 -
rtpproxy -l _your_public_ip_1_ -s udp:localhost:7722
rtpproxy -l _your_public_ip_2_ -s udp:localhost:7723
Run Code Online (Sandbox Code Playgroud)
然后修改kamailio.cfg文件 -
loadmodule "/usr/local/lib64/kamailio/modules/topoh.so"
modparam("topoh", "mask_key", "Your_key_here")
modparam("topoh", "mask_ip", "10.0.0.1")
Run Code Online (Sandbox Code Playgroud)
下一位为RTP代理创建两个组 - 1和2 -
#!ifdef WITH_NAT
# ----- rtpproxy params -----
modparam("rtpproxy", "rtpproxy_sock", "1 == udp:127.0.0.1:7722")
modparam("rtpproxy", "rtpproxy_sock", "2 == udp:127.0.0.1:7723")
Run Code Online (Sandbox Code Playgroud)
然后在标准(发货)配置的NAT部分中,根据入站呼叫所在的IP选择在代理中使用哪个组.rtp_proxy_manage是force_和unforce_命令的一个非常高级的版本.基本上它只是起火并为你做一切 -
route[NATMANAGE] {
#!ifdef WITH_NAT
....
if($Ri=="X.X.X.1")
set_rtp_proxy_set("1");
if($Ri=="X.X.X.2")
set_rtp_proxy_set("2");
rtpproxy_manage("",$Ri);
Run Code Online (Sandbox Code Playgroud) 我想配置Kamailio服务器,以便将流量同等地转发到其他四个星号服务器.单个星号框工作正常,但我无法将呼叫转发到另一个星号框.
这是我正在使用的kamailio.cfg.
#!KAMAILIO
#!define WITH_MYSQL
#!define WITH_AUTH
#!define WITH_USRLOCDB
#!define WITH_NAT
#!define WITH_ASTERISK
# *** Value defines - IDs used later in config
#!ifdef WITH_MYSQL
# - database URL - used to connect to database server by modules such
# as: auth_db, acc, usrloc, a.s.o.
#!define DBURL "mysql://root:PASS@127.0.0.1/openser"
#!ifdef WITH_ASTERISK
#!define DBASTURL "mysql://root:PASS@127.0.0.1/db_portal_mahtab"
#!endif
#!endif
#!ifdef WITH_MULTIDOMAIN
# - the value for 'use_domain' parameters
#!define MULTIDOMAIN 1
#!else
#!define MULTIDOMAIN 0
#!endif
# - flags
# FLT_ - per transaction …Run Code Online (Sandbox Code Playgroud)我正在尝试调试为什么null null在记录$rs $rr使用以下kamailio配置的值时得到的原因。
内部request_route:
if (is_method("REGISTER")) {
t_on_reply("REGISTER_FROM_USER");
# In case of a failure, do a failover:
t_on_failure("FAILURE_TO_REGISTRAR");
}
Run Code Online (Sandbox Code Playgroud)
在failure_route内部:
failure_route[FAILURE_TO_REGISTRAR] {
xlog("L_INFO","Registrar replied (failure): $rs $rr\n");
Run Code Online (Sandbox Code Playgroud)
输出:
Registrar replied (failure): <null> <null>
Run Code Online (Sandbox Code Playgroud) 我正在使用Kamailio 4.4.我需要覆盖呼叫信息:来自头域.sip.twilio.com到pstn.mycompany.io.例:
From: "+16501112222" <sip:+16501112222@sip.twilio.com>
Run Code Online (Sandbox Code Playgroud)
至
From: "+16501112222" <sip:+16501112222@pstn.mycompany.io>
Run Code Online (Sandbox Code Playgroud)
呼叫流程:
Twilio (SP1) --> MyCompany --> SP2
Twilio SIP -> Calls: sip:14081112222@sip.mycompany.io -> Kamailio -> Kamailio look up table and convert sip:14081112222@sip.mycompany.io to sip:jdoe@sp2.com using dbaliases to send call to SP2.
Run Code Online (Sandbox Code Playgroud)
SP2中的客户端看到来自Twilio的呼叫.为了将SIP呼叫重定向到SP2,Kamailio执行DNS查找.我尝试了以下运气,虽然我看到这个代码正在执行.使用Kamailio默认调用脚本.
branch_route[MANAGE_BRANCH] {
if($fd=~"sip\.twilio\.com") {
xlog("L_INFO","|Masking Twilio call from: $fu");
$fd = "pstn.mycompany.io";
}
xdbg("new branch [$T_branch_idx] to: $ru from: $fu\n");
route(NATMANAGE);
}
Run Code Online (Sandbox Code Playgroud)
我需要在Lua脚本中设置Kamailio 3.3.1中的自定义标头.理论上我可以在配置脚本中设置一个这样的 -
append_hf("X-MyHeader: myvalue\r\n");
Run Code Online (Sandbox Code Playgroud)
但我无法弄清楚如何从Lua脚本中调用它,这是我首选的地方.我的CFG文件中有以下内容 -
modparam("app_lua", "load", "/usr/local/etc/kamailio/lua/kamailio.lua")
modparam("app_lua", "register", "sl")
modparam("app_lua", "register", "rr")
modparam("app_lua", "register", "tm")
Run Code Online (Sandbox Code Playgroud)
而且我的Lua脚本可以正常工作.文档似乎暗示append_hf()是textops模块的一部分,但我看不到将它暴露给Lua脚本的方法.
请任何人帮助我理解这一点,或者建议另一种方法来实现我的目标?
我尝试在Sierra OS上启动kamailio.当我使用"/ usr/local/sbin/kamailio -c"运行kamailio时出现此错误:
0(49276) ERROR: <core> [core/sr_module.c:571]: load_module(): could not find module <mi_fifo> in </usr/local/lib64/kamailio/modules/>
0(49276) CRITICAL: <core> [core/cfg.y:3401]: yyerror_at(): parse error in config file /usr/local/etc/kamailio/kamailio.cfg, line 219, column 12-23: failed to load module
0(49276) ERROR: <core> [core/sr_module.c:571]: load_module(): could not find module <mi_rpc> in </usr/local/lib64/kamailio/modules/>
0(49276) CRITICAL: <core> [core/cfg.y:3401]: yyerror_at(): parse error in config file /usr/local/etc/kamailio/kamailio.cfg, line 236, column 12-22: failed to load module
0(49276) ERROR: <core> [core/modparam.c:152]: set_mod_param_regex(): No module matching <mi_fifo> found
0(49276) CRITICAL: <core> [core/cfg.y:3404]: …Run Code Online (Sandbox Code Playgroud)