<div dir="ltr">Hi, I have setup kamailio with the dispatcher module and have a problem with the ACK in response to 200OK not being forwarded by kamailio:<div><br></div><div>Scenario is very simple:</div><div>sipp(.219) --> kamailio (.220) --> sipp(.239)</div><div><br></div><div>SIP trace:</div><div><br></div><div><div><div>root@DNS-enum-8Gb-3:/var/log# ngrep -W byline -d eth0 port 5060</div><div>interface: eth0 (<a href="http://10.57.26.0/255.255.255.0">10.57.26.0/255.255.255.0</a>)</div><div>filter: (ip or ip6) and ( port 5060 )</div><div>#</div><div>U <a href="http://10.57.26.219:5060">10.57.26.219:5060</a> -> <a href="http://10.57.26.220:5060">10.57.26.220:5060</a></div><div>INVITE <a href="http://sip:service@10.57.26.220:5060">sip:service@10.57.26.220:5060</a> SIP/2.0.</div><div>Via: SIP/2.0/UDP 10.57.26.219:5060;branch=z9hG4bK-15698-1-0.</div><div>From: sipp <<a href="http://sip:sipp@10.57.26.219:5060">sip:sipp@10.57.26.219:5060</a>>;tag=15698SIPpTag021.</div><div>To: sut <<a href="http://sip:service@10.57.26.220:5060">sip:service@10.57.26.220:5060</a>>.</div><div>Call-ID: <a href="mailto:1-15698@10.57.26.219">1-15698@10.57.26.219</a>.</div><div>CSeq: 1 INVITE.</div><div>Contact: <a href="http://sip:sipp@10.57.26.219:5060">sip:sipp@10.57.26.219:5060</a>.</div><div>Max-Forwards: 70.</div><div>Subject: Performance Test.</div><div>Content-Type: application/sdp.</div><div>Content-Length:   135.</div><div>.</div><div>v=0.</div><div>o=user1 53655765 2353687637 IN IP4 10.57.26.219.</div><div>s=-.</div><div>c=IN IP4 10.57.26.219.</div><div>t=0 0.</div><div>m=audio 6000 RTP/AVP 0.</div><div>a=rtpmap:0 PCMU/8000.</div><div><br></div><div>#</div><div>U <a href="http://10.57.26.220:5060">10.57.26.220:5060</a> -> <a href="http://10.57.26.219:5060">10.57.26.219:5060</a></div><div>SIP/2.0 100 trying -- your call is important to us.</div><div>Via: SIP/2.0/UDP 10.57.26.219:5060;branch=z9hG4bK-15698-1-0.</div><div>From: sipp <<a href="http://sip:sipp@10.57.26.219:5060">sip:sipp@10.57.26.219:5060</a>>;tag=15698SIPpTag021.</div><div>To: sut <<a href="http://sip:service@10.57.26.220:5060">sip:service@10.57.26.220:5060</a>>.</div><div>Call-ID: <a href="mailto:1-15698@10.57.26.219">1-15698@10.57.26.219</a>.</div><div>CSeq: 1 INVITE.</div><div>Server: kamailio (4.2.0 (x86_64/linux)).</div><div>Content-Length: 0.</div><div>.</div><div><br></div><div>#</div><div>U <a href="http://10.57.26.220:5060">10.57.26.220:5060</a> -> <a href="http://10.57.26.239:5060">10.57.26.239:5060</a></div><div>INVITE <a href="http://sip:service@10.57.26.220:5060">sip:service@10.57.26.220:5060</a> SIP/2.0.</div><div>Record-Route: <sip:10.57.26.220;lr>.</div><div>Via: SIP/2.0/UDP 10.57.26.220;branch=z9hG4bKf92d.33550a94aa52aef3978cb507902d8aaa.0.</div><div>Via: SIP/2.0/UDP 10.57.26.219:5060;branch=z9hG4bK-15698-1-0.</div><div>From: sipp <<a href="http://sip:sipp@10.57.26.219:5060">sip:sipp@10.57.26.219:5060</a>>;tag=15698SIPpTag021.</div><div>To: sut <<a href="http://sip:service@10.57.26.220:5060">sip:service@10.57.26.220:5060</a>>.</div><div>Call-ID: <a href="mailto:1-15698@10.57.26.219">1-15698@10.57.26.219</a>.</div><div>CSeq: 1 INVITE.</div><div>Contact: <a href="http://sip:sipp@10.57.26.219:5060">sip:sipp@10.57.26.219:5060</a>.</div><div>Max-Forwards: 69.</div><div>Subject: Performance Test.</div><div>Content-Type: application/sdp.</div><div>Content-Length:   135.</div><div>.</div><div>v=0.</div><div>o=user1 53655765 2353687637 IN IP4 10.57.26.219.</div><div>s=-.</div><div>c=IN IP4 10.57.26.219.</div><div>t=0 0.</div><div>m=audio 6000 RTP/AVP 0.</div><div>a=rtpmap:0 PCMU/8000.</div><div><br></div><div>#</div><div>U <a href="http://10.57.26.239:5060">10.57.26.239:5060</a> -> <a href="http://10.57.26.220:5060">10.57.26.220:5060</a></div><div>SIP/2.0 180 Ringing.</div><div>Via: SIP/2.0/UDP 10.57.26.220;branch=z9hG4bKf92d.33550a94aa52aef3978cb507902d8aaa.0, SIP/2.0/UDP 10.57.26.219:5060;branch=z9hG4bK-15698-1-0.</div><div>From: sipp <<a href="http://sip:sipp@10.57.26.219:5060">sip:sipp@10.57.26.219:5060</a>>;tag=15698SIPpTag021.</div><div>To: sut <<a href="http://sip:service@10.57.26.220:5060">sip:service@10.57.26.220:5060</a>>;tag=14783SIPpTag018.</div><div>Call-ID: <a href="mailto:1-15698@10.57.26.219">1-15698@10.57.26.219</a>.</div><div>CSeq: 1 INVITE.</div><div>Contact: <sip:10.57.26.239:5060;transport=UDP>.</div><div>Content-Length: 0.</div><div>.</div><div><br></div><div>#</div><div>U <a href="http://10.57.26.239:5060">10.57.26.239:5060</a> -> <a href="http://10.57.26.220:5060">10.57.26.220:5060</a></div><div>SIP/2.0 200 OK.</div><div>Via: SIP/2.0/UDP 10.57.26.220;branch=z9hG4bKf92d.33550a94aa52aef3978cb507902d8aaa.0, SIP/2.0/UDP 10.57.26.219:5060;branch=z9hG4bK-15698-1-0.</div><div>From: sipp <<a href="http://sip:sipp@10.57.26.219:5060">sip:sipp@10.57.26.219:5060</a>>;tag=15698SIPpTag021.</div><div>To: sut <<a href="http://sip:service@10.57.26.220:5060">sip:service@10.57.26.220:5060</a>>;tag=14783SIPpTag018.</div><div>Call-ID: <a href="mailto:1-15698@10.57.26.219">1-15698@10.57.26.219</a>.</div><div>CSeq: 1 INVITE.</div><div>Contact: <sip:10.57.26.239:5060;transport=UDP>.</div><div>Content-Type: application/sdp.</div><div>Content-Length:   135.</div><div>.</div><div>v=0.</div><div>o=user1 53655765 2353687637 IN IP4 10.57.26.239.</div><div>s=-.</div><div>c=IN IP4 10.57.26.239.</div><div>t=0 0.</div><div>m=audio 6000 RTP/AVP 0.</div><div>a=rtpmap:0 PCMU/8000.</div><div><br></div><div>#</div><div>U <a href="http://10.57.26.220:5060">10.57.26.220:5060</a> -> <a href="http://10.57.26.219:5060">10.57.26.219:5060</a></div><div>SIP/2.0 180 Ringing.</div><div>Via: SIP/2.0/UDP 10.57.26.219:5060;branch=z9hG4bK-15698-1-0.</div><div>From: sipp <<a href="http://sip:sipp@10.57.26.219:5060">sip:sipp@10.57.26.219:5060</a>>;tag=15698SIPpTag021.</div><div>To: sut <<a href="http://sip:service@10.57.26.220:5060">sip:service@10.57.26.220:5060</a>>;tag=14783SIPpTag018.</div><div>Call-ID: <a href="mailto:1-15698@10.57.26.219">1-15698@10.57.26.219</a>.</div><div>CSeq: 1 INVITE.</div><div>Contact: <sip:10.57.26.239:5060;transport=UDP>.</div><div>Content-Length: 0.</div><div>.</div><div><br></div><div>#</div><div>U <a href="http://10.57.26.220:5060">10.57.26.220:5060</a> -> <a href="http://10.57.26.219:5060">10.57.26.219:5060</a></div><div>SIP/2.0 200 OK.</div><div>Via: SIP/2.0/UDP 10.57.26.219:5060;branch=z9hG4bK-15698-1-0.</div><div>From: sipp <<a href="http://sip:sipp@10.57.26.219:5060">sip:sipp@10.57.26.219:5060</a>>;tag=15698SIPpTag021.</div><div>To: sut <<a href="http://sip:service@10.57.26.220:5060">sip:service@10.57.26.220:5060</a>>;tag=14783SIPpTag018.</div><div>Call-ID: <a href="mailto:1-15698@10.57.26.219">1-15698@10.57.26.219</a>.</div><div>CSeq: 1 INVITE.</div><div>Contact: <sip:10.57.26.239:5060;transport=UDP>.</div><div>Content-Type: application/sdp.</div><div>Content-Length:   135.</div><div>.</div><div>v=0.</div><div>o=user1 53655765 2353687637 IN IP4 10.57.26.239.</div><div>s=-.</div><div>c=IN IP4 10.57.26.239.</div><div>t=0 0.</div><div>m=audio 6000 RTP/AVP 0.</div><div>a=rtpmap:0 PCMU/8000.</div><div><br></div><div>#</div><div>U <a href="http://10.57.26.219:5060">10.57.26.219:5060</a> -> <a href="http://10.57.26.220:5060">10.57.26.220:5060</a></div><div>ACK sip:10.57.26.239:5060;transport=UDP SIP/2.0.</div><div>Via: SIP/2.0/UDP 10.57.26.219:5060;branch=z9hG4bK-15698-1-5.</div><div>From: sipp <<a href="http://sip:sipp@10.57.26.219:5060">sip:sipp@10.57.26.219:5060</a>>;tag=15698SIPpTag021.</div><div>To: sut <<a href="http://sip:service@10.57.26.220:5060">sip:service@10.57.26.220:5060</a>>;tag=14783SIPpTag018.</div><div>Call-ID: <a href="mailto:1-15698@10.57.26.219">1-15698@10.57.26.219</a>.</div><div>CSeq: 1 ACK.</div><div>Contact: <a href="http://sip:sipp@10.57.26.219:5060">sip:sipp@10.57.26.219:5060</a>.</div><div>Max-Forwards: 70.</div><div>Subject: Performance Test.</div><div>XContactinOK: <sip:10.57.26.239:5060;transport=UDP>.</div><div>Content-Length: 0.</div><div>.</div><div><br></div><div>#</div><div>U <a href="http://10.57.26.239:5060">10.57.26.239:5060</a> -> <a href="http://10.57.26.220:5060">10.57.26.220:5060</a></div><div>SIP/2.0 200 OK.</div><div>Via: SIP/2.0/UDP 10.57.26.220;branch=z9hG4bKf92d.33550a94aa52aef3978cb507902d8aaa.0, SIP/2.0/UDP 10.57.26.219:5060;branch=z9hG4bK-15698-1-0.</div><div>From: sipp <<a href="http://sip:sipp@10.57.26.219:5060">sip:sipp@10.57.26.219:5060</a>>;tag=15698SIPpTag021.</div><div>To: sut <<a href="http://sip:service@10.57.26.220:5060">sip:service@10.57.26.220:5060</a>>;tag=14783SIPpTag018.</div><div>Call-ID: <a href="mailto:1-15698@10.57.26.219">1-15698@10.57.26.219</a>.</div><div>CSeq: 1 INVITE.</div><div>Contact: <sip:10.57.26.239:5060;transport=UDP>.</div><div>Content-Type: application/sdp.</div><div>Content-Length:   135.</div><div>.</div><div>v=0.</div><div>o=user1 53655765 2353687637 IN IP4 10.57.26.239.</div><div>s=-.</div><div>c=IN IP4 10.57.26.239.</div><div>t=0 0.</div><div>m=audio 6000 RTP/AVP 0.</div><div>a=rtpmap:0 PCMU/8000.</div><div><br></div><div>#</div><div>U <a href="http://10.57.26.220:5060">10.57.26.220:5060</a> -> <a href="http://10.57.26.219:5060">10.57.26.219:5060</a></div><div>SIP/2.0 200 OK.</div><div>Via: SIP/2.0/UDP 10.57.26.219:5060;branch=z9hG4bK-15698-1-0.</div><div>From: sipp <<a href="http://sip:sipp@10.57.26.219:5060">sip:sipp@10.57.26.219:5060</a>>;tag=15698SIPpTag021.</div><div>To: sut <<a href="http://sip:service@10.57.26.220:5060">sip:service@10.57.26.220:5060</a>>;tag=14783SIPpTag018.</div><div>Call-ID: <a href="mailto:1-15698@10.57.26.219">1-15698@10.57.26.219</a>.</div><div>CSeq: 1 INVITE.</div><div>Contact: <sip:10.57.26.239:5060;transport=UDP>.</div><div>Content-Type: application/sdp.</div><div>Content-Length:   135.</div><div>.</div><div>v=0.</div><div>o=user1 53655765 2353687637 IN IP4 10.57.26.239.</div><div>s=-.</div><div>c=IN IP4 10.57.26.239.</div><div>t=0 0.</div><div>m=audio 6000 RTP/AVP 0.</div><div>a=rtpmap:0 PCMU/8000.</div><div><br></div><div>#</div><div><b>U <a href="http://10.57.26.219:5060">10.57.26.219:5060</a> -> <a href="http://10.57.26.220:5060">10.57.26.220:5060</a></b></div><div><b>ACK sip:10.57.26.239:5060;transport=UDP SIP/2.0.</b></div><div><b>Via: SIP/2.0/UDP 10.57.26.219:5060;branch=z9hG4bK-15698-1-5.</b></div><div><b>From: sipp <<a href="http://sip:sipp@10.57.26.219:5060">sip:sipp@10.57.26.219:5060</a>>;tag=15698SIPpTag021.</b></div><div><b>To: sut <<a href="http://sip:service@10.57.26.220:5060">sip:service@10.57.26.220:5060</a>>;tag=14783SIPpTag018.</b></div><div><b>Call-ID: <a href="mailto:1-15698@10.57.26.219">1-15698@10.57.26.219</a>.</b></div><div><b>CSeq: 1 ACK.</b></div><div><b>Contact: <a href="http://sip:sipp@10.57.26.219:5060">sip:sipp@10.57.26.219:5060</a>.</b></div><div><b>Max-Forwards: 70.</b></div><div><b>Subject: Performance Test.</b></div><div><b>XContactinOK: <sip:10.57.26.239:5060;transport=UDP>.</b></div><div><b>Content-Length: 0.</b></div><div>.</div><div><br></div><div>#</div><div>U <a href="http://10.57.26.219:5060">10.57.26.219:5060</a> -> <a href="http://10.57.26.220:5060">10.57.26.220:5060</a></div><div>BYE sip:10.57.26.239:5060;transport=UDP SIP/2.0.</div><div>Via: SIP/2.0/UDP 10.57.26.219:5060;branch=z9hG4bK-15698-1-7.</div><div>From: sipp <<a href="http://sip:sipp@10.57.26.219:5060">sip:sipp@10.57.26.219:5060</a>>;tag=15698SIPpTag021.</div><div>To: sut <<a href="http://sip:service@10.57.26.220:5060">sip:service@10.57.26.220:5060</a>>;tag=14783SIPpTag018.</div><div>Call-ID: <a href="mailto:1-15698@10.57.26.219">1-15698@10.57.26.219</a>.</div><div>CSeq: 2 BYE.</div><div>Contact: <a href="http://sip:sipp@10.57.26.219:5060">sip:sipp@10.57.26.219:5060</a>.</div><div>Max-Forwards: 70.</div><div>Subject: Performance Test.</div><div>Content-Length: 0.</div><div>.</div><div><br></div><div>#</div><div>U <a href="http://10.57.26.220:5060">10.57.26.220:5060</a> -> <a href="http://10.57.26.219:5060">10.57.26.219:5060</a></div><div>SIP/2.0 404 Not here.</div><div>Via: SIP/2.0/UDP 10.57.26.219:5060;branch=z9hG4bK-15698-1-7.</div><div>From: sipp <<a href="http://sip:sipp@10.57.26.219:5060">sip:sipp@10.57.26.219:5060</a>>;tag=15698SIPpTag021.</div><div>To: sut <<a href="http://sip:service@10.57.26.220:5060">sip:service@10.57.26.220:5060</a>>;tag=14783SIPpTag018.</div><div>Call-ID: <a href="mailto:1-15698@10.57.26.219">1-15698@10.57.26.219</a>.</div><div>CSeq: 2 BYE.</div><div>Server: kamailio (4.2.0 (x86_64/linux)).</div><div>Content-Length: 0.</div><div>.</div><div><br></div><div>#</div><div>U <a href="http://10.57.26.219:5060">10.57.26.219:5060</a> -> <a href="http://10.57.26.220:5060">10.57.26.220:5060</a></div><div>BYE <a href="http://sip:service@10.57.26.220:5060">sip:service@10.57.26.220:5060</a> SIP/2.0.</div><div>Via: SIP/2.0/UDP 10.57.26.219:5060;branch=z9hG4bK-15698-1--1.</div><div>From: sipp <<a href="http://sip:sipp@10.57.26.219:5060">sip:sipp@10.57.26.219:5060</a>>;tag=15698SIPpTag021.</div><div>To: sut <<a href="http://sip:service@10.57.26.220:5060">sip:service@10.57.26.220:5060</a>>;tag=14783SIPpTag018.</div><div>Call-ID: <a href="mailto:1-15698@10.57.26.219">1-15698@10.57.26.219</a>.</div><div>CSeq: 3 BYE.</div><div>Max-Forwards: 70.</div><div>Contact: <sip:sipp@10.57.26.219:5060;transport=UDP>.</div><div>Content-Length: 0.</div><div>.</div><div><br></div><div>#</div><div>U <a href="http://10.57.26.220:5060">10.57.26.220:5060</a> -> <a href="http://10.57.26.219:5060">10.57.26.219:5060</a></div><div>SIP/2.0 404 Not here.</div><div>Via: SIP/2.0/UDP 10.57.26.219:5060;branch=z9hG4bK-15698-1--1.</div><div>From: sipp <<a href="http://sip:sipp@10.57.26.219:5060">sip:sipp@10.57.26.219:5060</a>>;tag=15698SIPpTag021.</div><div>To: sut <<a href="http://sip:service@10.57.26.220:5060">sip:service@10.57.26.220:5060</a>>;tag=14783SIPpTag018.</div><div>Call-ID: <a href="mailto:1-15698@10.57.26.219">1-15698@10.57.26.219</a>.</div><div>CSeq: 3 BYE.</div><div>Server: kamailio (4.2.0 (x86_64/linux)).</div><div>Content-Length: 0.</div><div>.</div><div><br></div><div>#</div><div>U <a href="http://10.57.26.239:5060">10.57.26.239:5060</a> -> <a href="http://10.57.26.220:5060">10.57.26.220:5060</a></div><div>SIP/2.0 200 OK.</div><div>Via: SIP/2.0/UDP 10.57.26.220;branch=z9hG4bKf92d.33550a94aa52aef3978cb507902d8aaa.0, SIP/2.0/UDP 10.57.26.219:5060;branch=z9hG4bK-15698-1-0.</div><div>From: sipp <<a href="http://sip:sipp@10.57.26.219:5060">sip:sipp@10.57.26.219:5060</a>>;tag=15698SIPpTag021.</div><div>To: sut <<a href="http://sip:service@10.57.26.220:5060">sip:service@10.57.26.220:5060</a>>;tag=14783SIPpTag018.</div><div>Call-ID: <a href="mailto:1-15698@10.57.26.219">1-15698@10.57.26.219</a>.</div><div>CSeq: 1 INVITE.</div><div>Contact: <sip:10.57.26.239:5060;transport=UDP>.</div><div>Content-Type: application/sdp.</div><div>Content-Length:   135.</div><div>.</div><div>v=0.</div><div>o=user1 53655765 2353687637 IN IP4 10.57.26.239.</div><div>s=-.</div><div>c=IN IP4 10.57.26.239.</div><div>t=0 0.</div><div>m=audio 6000 RTP/AVP 0.</div><div>a=rtpmap:0 PCMU/8000.</div><div><br></div><div>#</div><div>U <a href="http://10.57.26.220:5060">10.57.26.220:5060</a> -> <a href="http://10.57.26.219:5060">10.57.26.219:5060</a></div><div>SIP/2.0 200 OK.</div><div>Via: SIP/2.0/UDP 10.57.26.219:5060;branch=z9hG4bK-15698-1-0.</div><div>From: sipp <<a href="http://sip:sipp@10.57.26.219:5060">sip:sipp@10.57.26.219:5060</a>>;tag=15698SIPpTag021.</div><div>To: sut <<a href="http://sip:service@10.57.26.220:5060">sip:service@10.57.26.220:5060</a>>;tag=14783SIPpTag018.</div><div>Call-ID: <a href="mailto:1-15698@10.57.26.219">1-15698@10.57.26.219</a>.</div><div>CSeq: 1 INVITE.</div><div>Contact: <sip:10.57.26.239:5060;transport=UDP>.</div><div>Content-Type: application/sdp.</div><div>Content-Length:   135.</div><div>.</div><div>v=0.</div><div>o=user1 53655765 2353687637 IN IP4 10.57.26.239.</div><div>s=-.</div><div>c=IN IP4 10.57.26.239.</div><div>t=0 0.</div><div>m=audio 6000 RTP/AVP 0.</div><div>a=rtpmap:0 PCMU/8000.</div><div><br></div></div><div><br></div></div><div><b>kamailio.conf:</b></div><div><div><br></div><div># ----- mi_fifo params -----</div><div>modparam("mi_fifo", "fifo_name", "/var/run/kamailio/kamailio_fifo")</div><div>modparam("ctl", "binrpc", "unix:/var/run/kamailio/kamailio_ctl")</div><div><br></div><div># ----- rr params -----</div><div># add value to ;lr param to cope with most of the UAs</div><div>modparam("rr", "enable_full_lr", 0)</div><div># do not append from tag to the RR (no need for this script)</div><div>modparam("rr", "append_fromtag", 0)</div><div><br></div><div><br></div><div># ----- acc params -----</div><div>modparam("acc", "log_flag", 1)</div><div>modparam("acc", "failed_transaction_flag", 3)</div><div>modparam("acc", "log_extra", </div><div><span class="gmail-Apple-tab-span" style="white-space:pre">   </span>"src_user=$fU;src_domain=$fd;dst_ouser=$tU;dst_user=$rU;dst_domain=$rd;src_ip=$si")</div><div><br></div><div># ----- tm params -----</div><div>modparam("tm", "fr_timer", 2000)</div><div>modparam("tm", "fr_inv_timer", 40000)</div><div><br></div><div># ----- dispatcher params -----</div><div>#modparam("dispatcher", "db_url",</div><div>#<span class="gmail-Apple-tab-span" style="white-space:pre">    </span>"mysql://openser:openserro@localhost/openser")</div><div>modparam("dispatcher", "list_file", "/etc/kamailio/dispatcher.list")</div><div>modparam("dispatcher", "table_name", "dispatcher")</div><div>modparam("dispatcher", "flags", 2)</div><div>modparam("dispatcher", "dst_avp", "$avp(AVP_DST)")</div><div>modparam("dispatcher", "grp_avp", "$avp(AVP_GRP)")</div><div>modparam("dispatcher", "cnt_avp", "$avp(AVP_CNT)")</div><div><br></div><div>####### Routing Logic ########</div><div><br></div><div><br></div><div># main request routing logic</div><div><br></div><div>route {</div><div><br></div><div><span class="gmail-Apple-tab-span" style="white-space:pre">  </span># per request initial checks</div><div><span class="gmail-Apple-tab-span" style="white-space:pre">   </span>route(REQINIT);</div><div><br></div><div><span class="gmail-Apple-tab-span" style="white-space:pre">       </span># handle requests within SIP dialogs</div><div><span class="gmail-Apple-tab-span" style="white-space:pre">   </span>route(WITHINDLG);</div><div><br></div><div><span class="gmail-Apple-tab-span" style="white-space:pre">     </span>### only initial requests (no To tag)</div><div><br></div><div><span class="gmail-Apple-tab-span" style="white-space:pre"> </span># CANCEL processing</div><div><span class="gmail-Apple-tab-span" style="white-space:pre">    </span>if (is_method("CANCEL"))</div><div><span class="gmail-Apple-tab-span" style="white-space:pre">     </span>{</div><div><span class="gmail-Apple-tab-span" style="white-space:pre">              </span>if (t_check_trans())</div><div><span class="gmail-Apple-tab-span" style="white-space:pre">                   </span>t_relay();</div><div><span class="gmail-Apple-tab-span" style="white-space:pre">             </span>exit;</div><div><span class="gmail-Apple-tab-span" style="white-space:pre">  </span>}</div><div><br></div><div><span class="gmail-Apple-tab-span" style="white-space:pre">     </span>t_check_trans();</div><div><br></div><div><span class="gmail-Apple-tab-span" style="white-space:pre">      </span># record routing for dialog forming requests (in case they are routed)</div><div><span class="gmail-Apple-tab-span" style="white-space:pre"> </span># - remove preloaded route headers</div><div><span class="gmail-Apple-tab-span" style="white-space:pre">     </span>remove_hf("Route");</div><div><span class="gmail-Apple-tab-span" style="white-space:pre">  </span>if (is_method("INVITE|SUBSCRIBE"))</div><div><span class="gmail-Apple-tab-span" style="white-space:pre">           </span>record_route();</div><div><br></div><div><span class="gmail-Apple-tab-span" style="white-space:pre">       </span># account only INVITEs</div><div><span class="gmail-Apple-tab-span" style="white-space:pre"> </span>if (is_method("INVITE"))</div><div><span class="gmail-Apple-tab-span" style="white-space:pre">     </span>{</div><div><span class="gmail-Apple-tab-span" style="white-space:pre">              </span>setflag(1); # do accounting</div><div><span class="gmail-Apple-tab-span" style="white-space:pre">    </span>}</div><div><br></div><div><span class="gmail-Apple-tab-span" style="white-space:pre">     </span># handle presence related requests</div><div><span class="gmail-Apple-tab-span" style="white-space:pre">     </span>route(PRESENCE);</div><div><br></div><div><span class="gmail-Apple-tab-span" style="white-space:pre">      </span># handle registrations</div><div><span class="gmail-Apple-tab-span" style="white-space:pre"> </span>route(REGISTRAR);</div><div><br></div><div><span class="gmail-Apple-tab-span" style="white-space:pre">     </span>if ($rU==$null)</div><div><span class="gmail-Apple-tab-span" style="white-space:pre">        </span>{</div><div><span class="gmail-Apple-tab-span" style="white-space:pre">              </span># request with no Username in RURI</div><div><span class="gmail-Apple-tab-span" style="white-space:pre">             </span>sl_send_reply("484","Address Incomplete");</div><div><span class="gmail-Apple-tab-span" style="white-space:pre">         </span>exit;</div><div><span class="gmail-Apple-tab-span" style="white-space:pre">  </span>}</div><div><br></div><div><span class="gmail-Apple-tab-span" style="white-space:pre">     </span># dispatch destinations</div><div><span class="gmail-Apple-tab-span" style="white-space:pre">        </span>route(DISPATCH);</div><div><br></div><div><span class="gmail-Apple-tab-span" style="white-space:pre">      </span>route(RELAY);</div><div>}</div><div><br></div><div><br></div><div>route[RELAY] {</div><div><span class="gmail-Apple-tab-span" style="white-space:pre">   </span>if (!t_relay()) {</div><div><span class="gmail-Apple-tab-span" style="white-space:pre">              </span>sl_reply_error();</div><div><span class="gmail-Apple-tab-span" style="white-space:pre">      </span>}</div><div><span class="gmail-Apple-tab-span" style="white-space:pre">      </span>exit;</div><div>}</div><div><br></div><div># Per SIP request initial checks</div><div>route[REQINIT] {</div><div><span class="gmail-Apple-tab-span" style="white-space:pre">   </span>if (!mf_process_maxfwd_header("15")) {</div><div><span class="gmail-Apple-tab-span" style="white-space:pre">               </span>sl_send_reply("483","Too Many Hops");</div><div><span class="gmail-Apple-tab-span" style="white-space:pre">              </span>exit;</div><div><span class="gmail-Apple-tab-span" style="white-space:pre">  </span>}</div><div><br></div><div># 1= only check the header RURI,  1126 checks some other general stuff </div><div><span class="gmail-Apple-tab-span" style="white-space:pre">     </span>if(!sanity_check("1126", "1"))</div><div><span class="gmail-Apple-tab-span" style="white-space:pre">     </span>{</div><div><span class="gmail-Apple-tab-span" style="white-space:pre">              </span>xlog("Malformed SIP message from $si:$sp\n");</div><div><span class="gmail-Apple-tab-span" style="white-space:pre">                </span>exit;</div><div><span class="gmail-Apple-tab-span" style="white-space:pre">  </span>}</div><div>}</div><div><br></div><div># Handle requests within SIP dialogs</div><div>route[WITHINDLG] {</div><div><span class="gmail-Apple-tab-span" style="white-space:pre"> </span>if (has_totag()) {</div><div><span class="gmail-Apple-tab-span" style="white-space:pre">             </span># sequential request withing a dialog should</div><div><span class="gmail-Apple-tab-span" style="white-space:pre">           </span># take the path determined by record-routing</div><div><span class="gmail-Apple-tab-span" style="white-space:pre">           </span>xlog("#######WITHINDLG:hastotag $si:$sp\n");</div><div><span class="gmail-Apple-tab-span" style="white-space:pre">         </span>if (loose_route()) {</div><div><span class="gmail-Apple-tab-span" style="white-space:pre">                   </span>xlog("#######WITHINDLG:looseroute $si:$sp\n");</div><div><span class="gmail-Apple-tab-span" style="white-space:pre">                       </span>if (is_method("BYE")) {</div><div><span class="gmail-Apple-tab-span" style="white-space:pre">                              </span>setflag(1); # do accounting ...</div><div><span class="gmail-Apple-tab-span" style="white-space:pre">                                </span>setflag(3); # ... even if the transaction fails</div><div><span class="gmail-Apple-tab-span" style="white-space:pre">                        </span>}</div><div><span class="gmail-Apple-tab-span" style="white-space:pre">                      </span>route(RELAY);</div><div><span class="gmail-Apple-tab-span" style="white-space:pre">          </span>} else {</div><div><span class="gmail-Apple-tab-span" style="white-space:pre">                       </span>if (is_method("SUBSCRIBE") && uri == myself) {</div><div><span class="gmail-Apple-tab-span" style="white-space:pre">                               </span># in-dialog subscribe requests</div><div><span class="gmail-Apple-tab-span" style="white-space:pre">                         </span>route(PRESENCE);</div><div><span class="gmail-Apple-tab-span" style="white-space:pre">                               </span>exit;</div><div><span class="gmail-Apple-tab-span" style="white-space:pre">                  </span>}</div><div><span class="gmail-Apple-tab-span" style="white-space:pre">                      </span>if ( is_method("ACK") ) {</div><div><span class="gmail-Apple-tab-span" style="white-space:pre">                            </span>if ( t_check_trans() ) {</div><div><span class="gmail-Apple-tab-span" style="white-space:pre">                                       </span>xlog("#######WITHINDLG:ACK transaction found $si:$sp\n");</div><div><span class="gmail-Apple-tab-span" style="white-space:pre">                                    </span># non loose-route, but stateful ACK;</div><div><span class="gmail-Apple-tab-span" style="white-space:pre">                                   </span># must be ACK after a 487 or e.g. 404 from upstream server</div><div><span class="gmail-Apple-tab-span" style="white-space:pre">                                     </span>t_relay();</div><div><span class="gmail-Apple-tab-span" style="white-space:pre">                                     </span>exit;</div><div><span class="gmail-Apple-tab-span" style="white-space:pre">                          </span>} else {</div><div><span class="gmail-Apple-tab-span" style="white-space:pre">                                       </span># ACK without matching transaction ... ignore and discard.</div><div><span class="gmail-Apple-tab-span" style="white-space:pre">                                     </span>xlog("#######WITHINDLG:ACK no transaction found so discard $si:$sp\n");</div><div><span class="gmail-Apple-tab-span" style="white-space:pre">                                      </span>exit;</div><div><span class="gmail-Apple-tab-span" style="white-space:pre">                          </span>}</div><div><span class="gmail-Apple-tab-span" style="white-space:pre">                      </span>}</div><div><span class="gmail-Apple-tab-span" style="white-space:pre">                      </span>sl_send_reply("404","Not here");</div><div><span class="gmail-Apple-tab-span" style="white-space:pre">           </span>}</div><div><span class="gmail-Apple-tab-span" style="white-space:pre">              </span>exit;</div><div><span class="gmail-Apple-tab-span" style="white-space:pre">  </span>}</div><div>}</div></div><div><br></div><div><br></div><div>Debug:</div><div><br></div><div><div>Dec 15 15:12:02 DNS-enum-8Gb-3 kamailio[6864]: 1(6883) DEBUG: <core> [parser/msg_parser.c:623]: parse_msg(): SIP Request:</div><div>Dec 15 15:12:02 DNS-enum-8Gb-3 kamailio[6864]: 1(6883) DEBUG: <core> [parser/msg_parser.c:625]: parse_msg():  method:  <ACK></div><div>Dec 15 15:12:02 DNS-enum-8Gb-3 kamailio[6864]: 1(6883) DEBUG: <core> [parser/msg_parser.c:627]: parse_msg():  uri:     <sip:10.57.26.239:5060;transport=UDP></div><div>Dec 15 15:12:02 DNS-enum-8Gb-3 kamailio[6864]: 1(6883) DEBUG: <core> [parser/msg_parser.c:629]: parse_msg():  version: <SIP/2.0></div><div>Dec 15 15:12:02 DNS-enum-8Gb-3 kamailio[6864]: 1(6883) DEBUG: <core> [parser/parse_via.c:1284]: parse_via_param(): Found param type 232, <branch> = <z9hG4bK-15698-1-5>; state=16</div><div>Dec 15 15:12:02 DNS-enum-8Gb-3 kamailio[6864]: 1(6883) DEBUG: <core> [parser/parse_via.c:2672]: parse_via(): end of header reached, state=5</div><div>Dec 15 15:12:02 DNS-enum-8Gb-3 kamailio[6864]: 1(6883) DEBUG: <core> [parser/msg_parser.c:513]: parse_headers(): parse_headers: Via found, flags=2</div><div>Dec 15 15:12:02 DNS-enum-8Gb-3 kamailio[6864]: 1(6883) DEBUG: <core> [parser/msg_parser.c:515]: parse_headers(): parse_headers: this is the first via</div><div>Dec 15 15:12:02 DNS-enum-8Gb-3 kamailio[6864]: 1(6883) DEBUG: <core> [receive.c:154]: receive_msg(): After parse_msg...</div><div>Dec 15 15:12:02 DNS-enum-8Gb-3 kamailio[6864]: 1(6883) DEBUG: <core> [receive.c:197]: receive_msg(): preparing to run routing scripts...</div><div>Dec 15 15:12:02 DNS-enum-8Gb-3 kamailio[6864]: 1(6883) DEBUG: sl [sl_funcs.c:412]: sl_filter_ACK(): DEBUG : sl_filter_ACK: to late to be a local ACK!</div><div>Dec 15 15:12:02 DNS-enum-8Gb-3 kamailio[6864]: 1(6883) DEBUG: <core> [parser/parse_addr_spec.c:176]: parse_to_param(): DEBUG: add_param: tag=14783SIPpTag018</div><div>Dec 15 15:12:02 DNS-enum-8Gb-3 kamailio[6864]: 1(6883) DEBUG: <core> [parser/parse_addr_spec.c:898]: parse_addr_spec(): end of header reached, state=29</div><div>Dec 15 15:12:02 DNS-enum-8Gb-3 kamailio[6864]: 1(6883) DEBUG: <core> [parser/msg_parser.c:190]: get_hdr_field(): DEBUG: get_hdr_field: <To> [57]; uri=[<a href="http://sip:service@10.57.26.220:5060">sip:service@10.57.26.220:5060</a>]</div><div>Dec 15 15:12:02 DNS-enum-8Gb-3 kamailio[6864]: 1(6883) DEBUG: <core> [parser/msg_parser.c:192]: get_hdr_field(): DEBUG: to body [sut <<a href="http://sip:service@10.57.26.220:5060">sip:service@10.57.26.220:5060</a>>]</div><div>Dec 15 15:12:02 DNS-enum-8Gb-3 kamailio[6864]: 1(6883) DEBUG: <core> [parser/msg_parser.c:170]: get_hdr_field(): get_hdr_field: cseq <CSeq>: <1> <ACK></div><div>Dec 15 15:12:02 DNS-enum-8Gb-3 kamailio[6864]: 1(6883) DEBUG: maxfwd [mf_funcs.c:85]: is_maxfwd_present(): value = 70</div><div>Dec 15 15:12:02 DNS-enum-8Gb-3 kamailio[6864]: 1(6883) DEBUG: sanity [mod_sanity.c:255]: w_sanity_check(): sanity checks result: 1</div><div>Dec 15 15:12:02 DNS-enum-8Gb-3 kamailio[6864]: 1(6883) DEBUG: siputils [checks.c:106]: has_totag(): totag found</div><div>Dec 15 15:12:02 DNS-enum-8Gb-3 kamailio[6864]: 1(6883) ERROR: <script>: #######WITHINDLG:hastotag <a href="http://10.57.26.219:5060">10.57.26.219:5060</a></div><div>Dec 15 15:12:02 DNS-enum-8Gb-3 kamailio[6864]: 1(6883) DEBUG: <core> [parser/msg_parser.c:204]: get_hdr_field(): DEBUG: get_hdr_body : content_length=0</div><div>Dec 15 15:12:02 DNS-enum-8Gb-3 kamailio[6864]: 1(6883) DEBUG: <core> [parser/msg_parser.c:106]: get_hdr_field(): found end of header</div><div>Dec 15 15:12:02 DNS-enum-8Gb-3 kamailio[6864]: 1(6883) DEBUG: rr [loose.c:113]: find_first_route(): No Route headers found</div><div>Dec 15 15:12:02 DNS-enum-8Gb-3 kamailio[6864]: 1(6883) DEBUG: rr [loose.c:929]: loose_route(): There is no Route HF</div><div>Dec 15 15:12:02 DNS-enum-8Gb-3 kamailio[6864]: 1(6883) DEBUG: tm [t_lookup.c:1072]: t_check_msg(): DEBUG: t_check_msg: msg id=9 global id=8 T start=(nil)</div><div>Dec 15 15:12:02 DNS-enum-8Gb-3 kamailio[6864]: 1(6883) DEBUG: tm [t_lookup.c:527]: t_lookup_request(): t_lookup_request: start searching: hash=53919, isACK=1</div><div>Dec 15 15:12:02 DNS-enum-8Gb-3 kamailio[6864]: 1(6883) DEBUG: tm [t_lookup.c:485]: matching_3261(): DEBUG: RFC3261 transaction matching failed</div><div>Dec 15 15:12:02 DNS-enum-8Gb-3 kamailio[6864]: 1(6883) DEBUG: tm [t_lookup.c:709]: t_lookup_request(): DEBUG: t_lookup_request: no transaction found</div><div>Dec 15 15:12:02 DNS-enum-8Gb-3 kamailio[6864]: 1(6883) DEBUG: tm [t_lookup.c:1141]: t_check_msg(): DEBUG: t_check_msg: msg id=9 global id=9 T end=(nil)</div><div>Dec 15 15:12:02 DNS-enum-8Gb-3 kamailio[6864]: 1(6883) ERROR: <script>: #######WITHINDLG:ACK no transaction found so discard <a href="http://10.57.26.219:5060">10.57.26.219:5060</a></div><div>Dec 15 15:12:02 DNS-enum-8Gb-3 kamailio[6864]: 1(6883) DEBUG: <core> [usr_avp.c:643]: destroy_avp_list(): DEBUG:destroy_avp_list: destroying list (nil)</div></div><div><br></div><div><br></div><div><br></div><div><br></div></div>