Muhammad thanks for your reply. I tried without the loose route in the main block but I can't make any calls. I also attached the ngrep output.
Thanks Ahmed
INVITE sip:2000@178.62.126.15 SIP/2.0 Via: SIP/2.0/TCP 10.65.47.53:51977;branch=z9hG4bK.ZFrwHAOUd;rport From: sip:1000@178.62.126.15;tag=A0DduhJxi To: sip:2000@178.62.126.15 CSeq: 20 INVITE Call-ID: -pF7mvvFRp Max-Forwards: 70 Supported: outbound Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY, MESSAGE, SUBSCRIBE, INFO, UPDATE Content-Type: application/sdp Content-Length: 454 Contact: sip:1000@105.35.19.185:51977 ;transport=tcp;+sip.instance="urn:uuid:07d94e90-bda1-4dc6-951c-84a1464c2ec8" User-Agent: LinphoneIPhone/2.2.3 (belle-sip/1.3.3)
v=0 o=1000 622 2563 IN IP4 10.65.47.53 s=Talk c=IN IP4 10.65.47.53 b=AS:380 t=0 0 a=rtcp-xr:rcvr-rtt=all:10000 stat-summary=loss,dup,jitt,TTL voip-metrics m=audio 7076 RTP/AVP 124 120 111 110 0 8 101 a=rtpmap:124 opus/48000/2 a=fmtp:124 useinbandfec=1; stereo=0; sprop-stereo=0 a=rtpmap:120 SILK/16000 a=rtpmap:111 speex/16000 a=fmtp:111 vbr=on a=rtpmap:110 speex/8000 a=fmtp:110 vbr=on a=rtpmap:101 telephone-event/8000 a=fmtp:101 0-15 xЛuTЁLKK+E;#п@@gЄВ>~i#ЙФЫ RqЈ рЏW ~№-йhSIP/2.0 100 trying -- your call is important to us Via: SIP/2.0/TCP 10.65.47.53:51977 ;branch=z9hG4bK.ZFrwHAOUd;rport=51977;received=105.35.19.185 From: sip:1000@178.62.126.15;tag=A0DduhJxi To: sip:2000@178.62.126.15 CSeq: 20 INVITE Call-ID: -pF7mvvFRp Server: kamailio (4.0.4 (x86_64/linux)) Content-Length: 0 Warning: 392 178.62.126.15:5060 "Noisy feedback tells: pid=2147 req_src_ip=105.35.19.185 req_src_port=51977 in_uri=sip:2000@178.62.126.15 out_uri=sip:2000@10.131.217.48;transport=tcp via_cnt==1"
xЛuT^Mњњ+Eъщ@@ й- й0мяФш&ЄЃяеЬ@ ~№tINVITE sip:2000@10.131.217.48;transport=tcp SIP/2.0 Record-Route: sip:178.62.126.15;transport=tcp;lr=on;ftag=A0DduhJxi Via: SIP/2.0/TCP 10.131.217.45;branch=z9hG4bK4f91.7ba7e9a7.0;i=7 Via: SIP/2.0/TCP 10.65.47.53:51977 ;received=105.35.19.185;branch=z9hG4bK.ZFrwHAOUd;rport=51977 From: sip:1000@178.62.126.15;tag=A0DduhJxi To: sip:2000@178.62.126.15 CSeq: 20 INVITE Call-ID: -pF7mvvFRp Max-Forwards: 16 Supported: outbound Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY, MESSAGE, SUBSCRIBE, INFO, UPDATE Content-Type: application/sdp Content-Length: 454 Contact: sip:1000@105.35.19.185:51977 ;transport=tcp;+sip.instance="urn:uuid:07d94e90-bda1-4dc6-951c-84a1464c2ec8" User-Agent: LinphoneIPhone/2.2.3 (belle-sip/1.3.3)
v=0 o=1000 622 2563 IN IP4 10.65.47.53 s=Talk c=IN IP4 10.65.47.53 b=AS:380 t=0 0 a=rtcp-xr:rcvr-rtt=all:10000 stat-summary=loss,dup,jitt,TTL voip-metrics m=audio 7076 RTP/AVP 124 120 111 110 0 8 101 a=rtpmap:124 opus/48000/2 a=fmtp:124 useinbandfec=1; stereo=0; sprop-stereo=0 a=rtpmap:120 SILK/16000 a=rtpmap:111 speex/16000 a=fmtp:111 vbr=on a=rtpmap:110 speex/8000 a=fmtp:110 vbr=on a=rtpmap:101 telephone-event/8000 a=fmtp:101 0-15 xЛuTGTдд1s!EФ 8@@d й0 й-ФмяЃяеш&Јг№Џ Щ~№SIP/2.0 100 trying -- your call is important to us Via: SIP/2.0/TCP 10.131.217.45;branch=z9hG4bK4f91.7ba7e9a7.0;i=7;rport=56559 Via: SIP/2.0/TCP 10.65.47.53:51977 ;received=105.35.19.185;branch=z9hG4bK.ZFrwHAOUd;rport=51977 From: sip:1000@178.62.126.15;tag=A0DduhJxi To: sip:2000@178.62.126.15 CSeq: 20 INVITE Call-ID: -pF7mvvFRp Server: kamailio (4.0.4 (x86_64/linux)) Content-Length: 0
xЛuTйUьь1s!Eмт@@рХ й0 й-jФЛcpT!Дѕж Щr.INVITE sip:2000@105.40.65.70:44789;transport=tcp SIP/2.0 Record-Route: sip:10.131.217.48;transport=tcp;lr=on;nat=yes Record-Route: sip:178.62.126.15;transport=tcp;lr=on;ftag=A0DduhJxi Via: SIP/2.0/TCP 10.131.217.48;branch=z9hG4bK4f91.097a02e.0;i=8 Route: sip:10.131.217.45;transport=tcp;lr;received='sip:105.40.65.70:44789 ;transport=tcp' Via: SIP/2.0/TCP 10.131.217.45;rport=56559;branch=z9hG4bK4f91.7ba7e9a7.0;i=7 Via: SIP/2.0/TCP 10.65.47.53:51977 ;received=105.35.19.185;branch=z9hG4bK.ZFrwHAOUd;rport=51977 From: sip:1000@178.62.126.15;tag=A0DduhJxi To: sip:2000@178.62.126.15 CSeq: 20 INVITE Call-ID: -pF7mvvFRp Max-Forwards: 15 Supported: outbound Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY, MESSAGE, SUBSCRIBE, INFO, UPDATE Content-Type: application/sdp Content-Length: 477 Contact: sip:1000@105.35.19.185:51977 ;alias=10.131.217.45~56559~2;transport=tcp;+sip.instance="urn:uuid:07d94e90-bda1-4dc6-951c-84a1464c2ec8" User-Agent: LinphoneIPhone/2.2.3 (belle-sip/1.3.3)
On Wednesday, November 26, 2014, Muhammad Shahzad shaheryarkh@gmail.com wrote:
Don't do loose route in main route block. The WITHINDLG route will take care of that.
Also you may need to do "handle_ruri_alias" just after loose route in WITHINDLG route. See below link for more details,
http://www.kamailio.org/docs/modules/4.2.x/modules/nathelper.html#nathelper....
something like this,
if (loose_route()) { if(!isdsturiset()) { handle_ruri_alias(); };
if (is_method("BYE")) {
...
Thank you.
On Tue, Nov 25, 2014 at 3:49 PM, Ahmed Salem ahmed.salem4282@gmail.com wrote:
Hi,
I'm trying to achieve this configuration
phone --> NAT --> kamailio loadbalancer --> kamailio sip/proxy --> kamailio sip/proxy
With the attached configuration I can make calls without any problems but when the callee hangs up the call does not end only the caller can hang up.
Btw I'm using tcp for signalling.
Any ideas? Thanks
#!define FLT_ACC 1 #!define FLT_ACCMISSED 2 #!define FLT_ACCFAILED 3 #!define FLT_NATS 5
#!define FLB_NATB 6 #!define FLB_NATSIPPING 7
mhomed=1
####### Global Parameters #########
#!ifdef WITH_DEBUG debug=4 log_stderror=yes #!else debug=2 log_stderror=no #!endif
memdbg=5 memlog=5
log_facility=LOG_LOCAL0
fork=yes children=4
tcp_async=yes tcp_connection_lifetime=3605
port=5060 sip_warning=yes
####### Modules Section ########
#!ifdef WITH_SRCPATH mpath="modules_k:modules" #!else mpath="/usr/lib/x86_64-linux-gnu/kamailio/modules/" #!endif
loadmodule "db_mysql.so" loadmodule "mi_fifo.so" loadmodule "kex.so" loadmodule "tm.so" loadmodule "tmx.so" loadmodule "sl.so" loadmodule "rr.so" loadmodule "pv.so" loadmodule "maxfwd.so" loadmodule "textops.so" loadmodule "siputils.so" loadmodule "xlog.so" loadmodule "sanity.so" loadmodule "ctl.so" loadmodule "mi_rpc.so" loadmodule "acc.so" loadmodule "usrloc.so" loadmodule "registrar.so" loadmodule "dispatcher.so" loadmodule "nathelper.so" loadmodule "rtpproxy.so" loadmodule "path.so"
# ----------------- setting module-specific parameters ---------------
# ----- mi_fifo params ----- modparam("mi_fifo", "fifo_name", "/var/run/kamailio/kamailio_fifo")
# ----- rr params ----- # add value to ;lr param to cope with most of the UAs modparam("rr", "enable_full_lr", 1) # do not append from tag to the RR (no need for this script) modparam("rr", "append_fromtag", 1) modparam("rr", "enable_double_rr", 0)
# ----- tm params ----- modparam("tm", "failure_reply_mode", 3) modparam("tm", "fr_timer", 3000) modparam("tm", "fr_inv_timer", 120000)
# ----- dispatcher params ----- modparam("dispatcher", "db_url", "mysql://kamailio:kamailiorw@localhost/kamailio") modparam("dispatcher", "table_name", "dispatcher") modparam("dispatcher", "flags", 2) #modparam("dispatcher", "force_dst", 1) modparam("dispatcher", "setid_col", "setid") modparam("dispatcher", "destination_col", "destination") modparam("dispatcher", "flags_col", "flags") modparam("dispatcher", "priority_col", "priority") modparam("dispatcher", "dst_avp", "$avp(AVP_DST)") modparam("dispatcher", "grp_avp", "$avp(AVP_GRP)") modparam("dispatcher", "cnt_avp", "$avp(AVP_CNT)")
modparam("path", "use_received", 1)
modparam("registrar", "use_path", 1) modparam("registrar", "path_mode", 0) modparam("registrar", "path_use_received", 1)
modparam("nathelper", "natping_interval", 30) modparam("nathelper", "ping_nated_only", 1) modparam("nathelper", "sipping_bflag", FLB_NATSIPPING) modparam("nathelper", "sipping_from", "sip:pinger@kamailio.org")
# params needed for NAT traversal in other modules modparam("nathelper|registrar", "received_avp", "$avp(RECEIVED)") modparam("usrloc", "nat_bflag", FLB_NATB)
####### Routing Logic ########
# main request routing logic
request_route { xlog("L_NOTICE", "*** loose routing enforced before: $rm, $ru, $si, $du\n"); # per request initial checks route(REQINIT); loose_route(); # handle requests within SIP dialogs route(WITHINDLG);
### only initial requests (no To tag)
# CANCEL processing if (is_method("CANCEL")) { if (t_check_trans()) t_relay(); exit; }
t_check_trans();
# record routing for dialog forming requests (in case they are routed) # - remove preloaded route headers #remove_hf("Route"); if (is_method("INVITE")){ record_route(); } if(is_method("REGISTER")){ add_path_received(); fix_nated_register(); } else{ add_contact_alias(); }
# dispatch destinations route(DISPATCH);
route(RELAY); }
route[RELAY] { if (!t_relay()) { sl_reply_error(); } exit; }
# Per SIP request initial checks route[REQINIT] { if (!mf_process_maxfwd_header("10")) { sl_send_reply("483","Too Many Hops"); exit; }
if(!sanity_check("1511", "7")) { xlog("L_NOTICE", "*** loose routing enforced before: $rm, $ru, $si, $du\n"); xlog("Malformed SIP message from $si:$sp\n"); exit; } }
# Handle requests within SIP dialogs route[WITHINDLG] { if (has_totag()) { # sequential request withing a dialog should # take the path determined by record-routing if (loose_route()) { if (is_method("BYE")) { setflag(1); # do accounting ... setflag(3); # ... even if the transaction fails } route(RELAY); } else { if (is_method("SUBSCRIBE") && uri == myself) { # in-dialog subscribe requests #route(PRESENCE); exit; } if ( is_method("ACK") ) { if ( t_check_trans() ) { # non loose-route, but stateful ACK; # must be ACK after a 487 or e.g. 404 from upstream server t_relay(); exit; } else { # ACK without matching transaction ... ignore and discard. exit; } } sl_send_reply("404","Not here"); } exit; } }
# Dispatch requests route[DISPATCH] { # round robin dispatching on gateways group '1' if(!ds_select_domain("1", "0")) { send_reply("404", "No destination"); exit; } xlog("L_DBG", "--- SCRIPT: going to <$ru> via <$du>\n"); t_on_failure("RTF_DISPATCH"); return; }
# Sample failure route failure_route[RTF_DISPATCH] { if (t_is_canceled()) { exit; } # next DST - only for 500 or local timeout if (t_check_status("500") or (t_branch_timeout() and !t_branch_replied())) { if(ds_next_domain()) { xlog("L_NOTICE", "going to next dst\n"); t_on_failure("RTF_DISPATCH"); route(RELAY); exit; } } }
SIP Express Router (SER) and Kamailio (OpenSER) - sr-users mailing list sr-users@lists.sip-router.org http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users