Hello list,<div><br></div><div>I&#39;m using Kamailio 3.1.5 in front of asterisk servers. Kamailio handles all the SIP registrations. Calls from SIP phones are forwarded to asterisks and then dialled out to Kamailio.</div>

<div><br></div><div><div><font face="&#39;courier new&#39;, monospace">root@SBCserver:~# kamailio -V</font></div>
<div><font face="&#39;courier new&#39;, monospace">version: kamailio 3.1.5 (x86_64/linux) 76fff5</font></div><div><font face="&#39;courier new&#39;, monospace">flags: STATS: Off, USE_IPV6, USE_TCP, USE_TLS, TLS_HOOKS, USE_RAW_SOCKS, DISABLE_NAGLE, USE_MCAST, DNS_IP_HACK, SHM_MEM, SHM_MMAP, PKG_MALLOC, DBG_QM_MALLOC, USE_FUTEX, FAST_LOCK-ADAPTIVE_WAIT, USE_DNS_CACHE, USE_DNS_FAILOVER, USE_NAPTR, USE_DST_BLACKLIST, HAVE_RESOLV_RES</font></div>


<div><font face="&#39;courier new&#39;, monospace">ADAPTIVE_WAIT_LOOPS=1024, MAX_RECV_BUFFER_SIZE 262144, MAX_LISTEN 16, MAX_URI_SIZE 1024, BUF_SIZE 65535, PKG_SIZE 4MB</font></div><div><font face="&#39;courier new&#39;, monospace">poll method support: poll, epoll_lt, epoll_et, sigio_rt, select.</font></div>


<div><font face="&#39;courier new&#39;, monospace">id: 76fff5</font></div><div><font face="&#39;courier new&#39;, monospace">compiled on 08:21:33 Oct 27 2011 with gcc 4.6.1</font></div>
<div><font face="&#39;courier new&#39;, monospace">root@SBCserver:~#</font></div><div><br></div><div><br></div></div><div>Problem: </div><div>When call is initiated from a softphone and is in ringing phase, CANCEL just don&#39;t work. I&#39;ve done some initial debugging and the following piece of code in main route is failing.</div>

<div><br></div><div><div><font face="&#39;courier new&#39;, monospace"># CANCEL processing</font></div><div><font face="&#39;courier new&#39;, monospace">if (is_method(&quot;CANCEL&quot;))</font></div>
<div><font face="&#39;courier new&#39;, monospace">{</font></div><div><font face="&#39;courier new&#39;, monospace">     xlog(&quot;L_NOTICE&quot;,&quot;$rm from $fu (IP:$si:$sp) ---CAPTURED IN MAIN---\n&quot;);</font></div>

<div><font face="&#39;courier new&#39;, monospace">     if (t_check_trans()){</font></div><div><font face="&#39;courier new&#39;, monospace">        t_relay();</font></div>
<div><font face="&#39;courier new&#39;, monospace">        xlog(&quot;L_NOTICE&quot;,&quot;$rm from $fu (IP:$si:$sp) ---CHECK TRANS TRUE---\n&quot;);</font></div><div><font face="&#39;courier new&#39;, monospace">     }</font></div>

<div><font face="&#39;courier new&#39;, monospace">     xlog(&quot;L_NOTICE&quot;,&quot;$rm from $fu (IP:$si:$sp) ---CHECK TRANS FALSE---\n&quot;);</font></div><div><span style="font-family:&#39;courier new&#39;,monospace">     exit;</span></div>

<div><font face="&#39;courier new&#39;, monospace">}</font></div></div><div><br></div><div>Also the CANCEL fails the has_totag() condition !</div><div><br></div><div>The same Call CANCEL scenario works fine for any client on Public IP !</div>
<div><br></div><div>Hope to get some pointers for the solution.</div><div><br></div><div>Regards,</div><div>Sammy.</div>