Hi,
I have some questions . Will the dispatcher server and redirect server What is the difference? There is, if I use the dispatcher module, you must use freeswitch or asterisk backend Why? If I want to also use the kamailio as backend or receive the dispatcher module can?
Hi
I am using Kamailio 4.0.1 in front of an asterisk servers farm to handle TLS with our clients and providers. The idea is to have kamailio "talking" SIP/UDP/5060 and TLS/TCP/5061 with the customers and providers and regular SIP/UDP/5060 with our internal asterisk servers.
So far at least for the customers it looks like it can work. But I have a problem, when the call is established and the called person hangs up, the BYE from the called person to the calling person is ignored. Only when the calling person hangs up first the call is terminated properly.
This is what I have been able to see:
1- Customer starts the TLS handshake/connection.
2- Kamailio authenticate it, then routes the call to the asterisk server using regular SIP/UDP/5060 but I see that it is inserting 2 Record Routes in the INVITE:
Record-Route: <sip:192.168.1.58;r2=on;lr=on>
Record-Route: <sip:192.168.1.58:5061;transport=tls;r2=on;lr=on>
3- The Contact on that INVITE to the asterisk also comes like this:
Contact: <sip:94167032@172.31.196.21:53325;transport=tls>
4- The ACK sent to the asterisk once it accepts the call (200 OK) also has those 2 Record-Routes:
Record-Route: <sip:192.168.1.58;r2=on;lr=on>
Record-Route: <sip:192.168.1.58:5061;transport=tls;r2=on;lr=on>
5- The call is established, once the called person decides to hang up the BYE looks like this:
BYE sip:94167032@172.31.196.21:53325;transport=tls SIP/2.0
Via: SIP/2.0/UDP 192.168.1.59:5060;branch=z9hG4bK40fa1c23;rport
Route: <sip:192.168.1.58;r2=on;lr=on>,<sip:192.168.1.58:5061;transport=tls;r2=on;lr=on>
Max-Forwards: 70
From: <sip:3030500@1.2.3.4>;tag=as37953869
To: "kamailio" <sip:kamailio@1.2.3.4>;tag=788cd7c892df40f3b1967112395e2ca4
Call-ID: f9fe65daf1074219be26cb0c224339f1
CSeq: 102 BYE
User-Agent: Asterisk PBX 11.3.0
X-Asterisk-HangupCause: Normal Clearing
X-Asterisk-HangupCauseCode: 16
Content-Length: 0
My kamailio TLS config is shown below:
enable_tls=yes
loadmodule "tls.so"
# ----- tls params -----
modparam("tls", "config", "/usr/local/kamailio-4.1//etc/kamailio/tls.cfg")
modparam("tls", "private_key", "./privkey.pem")
modparam("tls", "certificate", "./kamailio1_cert.pem")
modparam("tls", "ca_list", "./calist.pem")
modparam("tls", "verify_certificate", 1)
modparam("tls", "require_certificate", 1)
The TLS client that I am using is called Blink.At this point I don't know whether kamailio is sending the BYE using TLS to the customer and waiting for the 200 OK from the customer or whether kamailio does not like something in the BYE and that is why is ignoring it.
I see some encrypted packets from kamailio to the client but I don't know what is inside.
Any help would be very appreciated.
thank you
fabian
I recently upgraded to 4.0.6 from an older 4.0.x version using GIT, since then I have had several functions stop working. Here is one example:
I have a UA that is not in the location table, when calling I get the following output as a result of my xlog statements - (xlog statements added for troubleshooting)
INFO: xlog: 506:5d4d339e5a0fcb2d1ce245cb1c07bb71: Location not found for user-x
INFO: xlog: 524:5d4d339e5a0fcb2d1ce245cb1c07bb71: no match
if (!lookup("location")) {
xlogl("L_INFO", "$ci : Location not found for $rU\n");
$var(rc) = $rc;
t_newtran();
switch ($var(rc)) {
case -1:
xlogl("L_INFO", "$ci : case -1\n");
send_reply("480", "Temporarily Unavailable");
exit;
case -2:
xlogl("L_INFO", "$ci : case -2\n");
send_reply("405", "Method Not Allowed");
exit;
case -3:
xlogl("L_INFO", "$ci : case -3\n");
sl_send_reply("500", "Server Internal Error");
exit;
}
}
xlogl("L_INFO", "$ci : no match\n");
This worked previous to the upgrade, it should match case -1 but doesn't. Any direction is appreciated.
Thanks,
-dan
Hi to all,
We use uac module to use remote registration but when I add a new user to uacreg table the change doesnt take effect until I restart kamailio service which is not convenient for us.Is there another way to achieve this without restarting service?
My configuration is below.Am I doing sth wrong?
modparam("rr", "enable_full_lr", 1)
# do not append from tag to the RR (no need for this script)
modparam("rr", "append_fromtag", 1)
# ------ uac params ------------------
modparam("uac", "reg_db_url",DBURL)
modparam("uac", "reg_timer_interval", 30)
modparam("uac", "reg_retry_interval", 60)
modparam("uac", "reg_db_table", "uacreg")
modparam("uac","restore_mode","auto")
modparam("uac", "reg_contact_addr","my ip")
modparam("uac","auth_realm_avp","$avp(i:10)")
modparam("uac","auth_username_avp","$avp(i:11)")
modparam("uac","auth_password_avp","$avp(i:12)")
modparam("uac","credential","username:domain:password")
modparam("uac","restore_to_avp","$avp(original_uri_to)")
modparam("uac","restore_from_avp","$avp(original_uri_from)")
failure_route[REMOTE_AUTH]{
xlog("L_INFO","REMOTE_AUTH:$fU:$si$rm:REGISTER");
if ($T_reply_code == 401 or $T_reply_code == 407) {
xlog("L_NOTICE", "Remote asked for authentication");
uac_auth();
}
}
if(is_method("REGISTER")){
xlog("L_INFO","AUTH:$fU:$si$rm:REGISTER:Ru:$rU");
if(uac_reg_request_to("$fU","0")){
xlog("L_NOTICE", "Found remote user [$rU] on [$rd] via [$du]");
t_on_failure("REMOTE_AUTH");
t_relay();
exit;
}else{
xlog("L_INFO","AUTH:$fU:$si$rm:REGISTER:else");
if (!auth_check("$fd", "subscriber", "0")) {
auth_challenge("$fd", "0");
exit;
}
}
}
Thanks in advance.
Hi all,
maybe this is a trivial question but ... how Kamailio manages SIP replies?
I mean, how does it know to what URI reply in onreply_route? Does it use
the SIP Via header or something else, maybe in memory?
Regards,
Andrea
Hi guys:
I am a R&D engineer trying to learn kamailio. After following some
tutorials and reading the thread in this mailing list I was able to setup a
voip backend with this configuration
XLITE/LINPHONE ---> KAMAILIO ----> FREESWITCH
I am using Freeswitch as a media server. After configuring RTP Proxy
and kamailio to use bridged mode. I was able to successfully setup a voip
backend like the one above.
I encountered a problem when the UAC I am using is a webclient like
sipml5.
I noticed that when SIP INVITES from KAMAILIO to FREESWITCH are being
passed when a INVITE transaction is initiated from a sipml5 client
FREESWITCH is trying to use the public ip of webrtc server of the sipml5
backend. Unfortunately, I am using private ip/LAN IP between kamailio and
freeswitch. As a result calls are established but there is no audio that is
happening.
I am attaching a snapshot of the ngrep that on kamailio and freeswitch
server for your reference.
I would like to know if there is a setting in kamailio that would allow
me to modify the IP in the "o" and "c" sdp parameter when forwarding an
invite to Freeswitch.
I did another test. XLITE ---> KAMAILIO ---> FREESWITCH ----> KAMAILIO
----> sipml5 And the call works. It has audio. I think it must have
something to do with the SDP header that is being generated by sip5ml UAC
that is conflicting with my setup.
Any help or advice will be greatly appreciated. Thanks.
--
"When I look at you I see two people, ther person you are
and the person you are supposed to be. Someday these two
people will meet. And when they do, they will achieve great things"
- Gene Hackman, The Replacements
Catch up on me and check my BLOG at
http://mrihaveanopiniononeverything.blogspot.com
Dear iptel,
Thankyou for your open source website and excellent information. I hope you are able to help me with the following.
We are an Australian organisation. We are trying to find a good quality SIP provider, commercial grade, with high connectivity success rates. We have used Skype, and it works incredibly well. It gets through your firewall and succeeds with login and successful voice and video call connection just about every time. But every public or commercial SIP Service I have used has failed to perform as well. Both the open source and the commercial SIP servers all suffer from the same problems:
a.. they don't login unless you open up port 5060 on your firewall, regardless of whether STUN or TURN or ICE is in use
b.. they don't reliably connect each call, sometimes the calling end just keeps ringing, and the receiving end doesn't ring
c.. even if a call gets connected, they often have one of the 4 A/V streams missing, eg. we get video and outgoing audio, but no incoming audio
d.. when one party hangs up, sometimes the other end sometimes doesn't know about it and just sits there thinking the call is still underway
e.. when the Internet is busy, eg. at 4pm when children get home from school and jump on the Internet, their media relays struggle to keep up and UDP streams are badly degraded
Note that we have not yet tried iptel.org, but I note that video is not talked about much on your website, and also you are an open source organisation, who cannot be expected to provide a commercial grade service. (If I am wrong about this, please tell me and I will certainly give iptel.org a try!)
Using Jitsi, Linphone, and many other softphones, we have tried ....
a.. ippi.fr
b.. jumblo.com
c.. pennytel.com
d.. opensips.org
e.. sip.linphone.org
f.. an Australian commercial VoIP service by MyNetFone (works very well, but voice only)
We are a business, and we are prepared to pay for a SIP Service. We cannot use ooVoo, Tango, Goober, ippi Messenger and other closed applications. We have to use an open source softphone such as Jitsi or Linphone, because they have an API. So my questions are ....
a.. Are you aware of any commercial grade SIP providers that work as well as Skype:
a.. they have STUN / TURN / ICE support in place
b.. they support both video and audio calls
c.. login occurs reliably:
a.. regardless of where I am located (at home, at work, on my smartphone, using WiFi at a hotel, etc.)
b.. regardless of what firewall I am behind
d.. call connection occurs reliably, regardless of where I am located and regardless of firewall
a.. every call always connects
b.. if codecs at each end match, the call successfully connects audio and video streams both ways
c.. when one party hangs up, the other end knows about it and doesn't just sit there thinking the call is still underway
e.. their servers and infrastructure performs well even at peak periods, for example at 4pm when all the children get home from school and jump on the Internet
f.. they have high performance media relays in place, so that audio and/or video can be relayed if required
b.. If no company or organisation offers a SIP Service that performs as well as Skype, can you recommend any company or individual that we can engage (pay) to establish our own SIP Service. They must have the skills to setup SIP Server, STUN Server, TURN Server, and to adjust ports and settings so that anybody can login and make a call from anywhere, behind any firewall.
Your recommendations would be very much appreciated.
Thankyou,
Karl Grimm.
--------------------------------------------------------------------------------
Karl Grimm, Managing Director
Mobile: 0418 310 989 | karl(a)konnekt.net.au
Konnekt
feel connected, feel safe
I am trying to setup call forwarding but I am getting a failure when I
attempt to implement it.
Kamailio Version 4.1.1
Centos 6 x64
Using precompiled RPMs from telephony.repo
I am following guidance from the following urls...
http://www.kamailio.org/wiki/tutorials/mini-howto-admin/call_forwardinghttp://www.kamailio.org/dokuwiki/doku.php/tutorials:avpopshttp://www.kamailio.org/dokuwiki/doku.php/examples:set-blind-call-forwarding
0(16018) ERROR: <core> [cfg.y:3272]: yyparse(): cfg. parser: failed to
find command is_user_in
0(16018) : <core> [cfg.y:3411]: yyerror_at(): parse error in config
file //etc/kamailio/kamailio.cfg, line 1046, column 41: unknown command,
missing loadmodule?
0(16018) ERROR: <core> [cfg.y:3272]: yyparse(): cfg. parser: failed to
find command avp_write
0(16018) : <core> [cfg.y:3411]: yyerror_at(): parse error in config
file //etc/kamailio/kamailio.cfg, line 1048, column 39: unknown command,
missing loadmodule?
My understanding is that when I load module avpops that it should
include those 2 procedures (avp_write and is_user_in). I am loading the
module avpops.so
Can someone please set me straight. Thank you.
Gilbert T. Gutierrez, Jr.
Phoenix Internet