<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META http-equiv=Content-Type content="text/html; charset=us-ascii">
<META content="MSHTML 6.00.2900.3268" name=GENERATOR></HEAD>
<BODY>
<DIV><SPAN class=769355018-11072008><FONT face=Arial 
size=2>Hi,</FONT></SPAN></DIV>
<DIV><SPAN class=769355018-11072008><FONT face=Arial 
size=2></FONT></SPAN>&nbsp;</DIV>
<DIV><SPAN class=769355018-11072008><FONT face=Arial size=2>I'm running SER 
V0.9.6 and I'm having a problem with CANCELs.</FONT></SPAN></DIV>
<DIV><SPAN class=769355018-11072008><FONT face=Arial 
size=2></FONT></SPAN>&nbsp;</DIV>
<DIV><SPAN class=769355018-11072008><FONT face=Arial size=2>A client sends and 
invite to SER that&nbsp;relays it on to a gateway.&nbsp; In this particular 
scenario, a CANCEL is send by the client after SER responds with the 100 
trying.&nbsp; I had thought that SER would match the INVITE based on the branch 
tag and automatically send a CANCEL on to the gateway.&nbsp; Unfortunately, SER 
cannot find a matching transaction and, thus, the GATEWAY never receives a 
CANCEL..</FONT></SPAN></DIV>
<DIV><SPAN class=769355018-11072008><FONT face=Arial 
size=2></FONT></SPAN>&nbsp;</DIV>
<DIV><SPAN class=769355018-11072008><FONT face=Arial size=2>Here's a snippet 
from the debugging output:</FONT></SPAN></DIV>
<DIV><SPAN class=769355018-11072008><FONT face=Arial 
size=2></FONT></SPAN>&nbsp;</DIV>
<DIV><SPAN class=769355018-11072008><FONT face=Arial 
size=2>...</FONT></SPAN></DIV>
<DIV><SPAN class=769355018-11072008><FONT face=Arial size=2>&nbsp;0(28802) SIP 
Request:<BR>&nbsp;0(28802)&nbsp; method:&nbsp; 
&lt;INVITE&gt;<BR>&nbsp;0(28802)&nbsp; uri:&nbsp;&nbsp;&nbsp;&nbsp; 
&lt;sip:4027160348@wic.west.com&gt;<BR>&nbsp;0(28802)&nbsp; version: 
&lt;SIP/2.0&gt;<BR>&nbsp;0(28802) parse_headers: flags=1<BR>&nbsp;0(28802) Found 
param type 232, &lt;branch&gt; = &lt;z9hG4bK1249933199&gt;; 
state=16<BR>&nbsp;0(28802) end of header reached, state=5<BR>&nbsp;0(28802) 
Header Type: 1<BR>&nbsp;0(28802) parse_headers: Via found, 
flags=1<BR>&nbsp;0(28802) parse_headers: this is the first via<BR>&nbsp;0(28802) 
header field type 1, name=&lt;Via&gt;, body=&lt;SIP/2.0/UDP 
10.27.192.94:5060;branch=z9hG4bK1249933199&gt;<BR>&nbsp;0(28802) preparing to 
run routing scripts...<BR>&nbsp;0(28802) parse_headers: 
flags=128<BR>&nbsp;0(28802) Header Type: 8<BR>&nbsp;0(28802) header field type 
8, name=&lt;From&gt;, 
body=&lt;&lt;sip:4027161000@10.27.192.94&gt;;tag=3673666958&gt;<BR>&nbsp;0(28802) 
end of header reached, state=9<BR>&nbsp;0(28802) DEBUG: get_hdr_field: 
&lt;To&gt; [31]; uri=[sip:4027160348@wic.west.com]<BR>&nbsp;0(28802) DEBUG: to 
body [&lt;sip:4027160348@wic.west.com&gt;<BR>]<BR>&nbsp;0(28802) Header Type: 
4<BR>&nbsp;0(28802) header field type 4, name=&lt;To&gt;, 
body=&lt;&lt;sip:4027160348@wic.west.com&gt;&gt;<BR>&nbsp;0(28802) Header Type: 
32<BR>&nbsp;0(28802) header field type 32, name=&lt;Call-ID&gt;, body=&lt;<A 
href="mailto:514+43+1215800190+24+t1b@10.27.192.94">514+43+1215800190+24+t1b@10.27.192.94</A>&gt;<BR>&nbsp;0(28802) 
get_hdr_field: cseq &lt;CSeq&gt;: &lt;2&gt; &lt;INVITE&gt;<BR>&nbsp;0(28802) 
Header Type: 16<BR>&nbsp;0(28802) header field type 16, name=&lt;CSeq&gt;, 
body=&lt;2 INVITE&gt;<BR>&nbsp;0(28802) Header Type: 64<BR>&nbsp;0(28802) header 
field type 64, name=&lt;Contact&gt;, 
body=&lt;&lt;sip:e514@10.27.192.94&gt;&gt;<BR>&nbsp;0(28802) Header Type: 
33554432<BR>&nbsp;0(28802) header field type 33554432, name=&lt;user-agent&gt;, 
body=&lt;oSIP/wicsip-3.3.4&gt;<BR>&nbsp;0(28802) Header Type: 
1073741824<BR>&nbsp;0(28802) header field type 1073741824, 
name=&lt;x-west-rg&gt;, body=&lt;0:17&gt;<BR>&nbsp;0(28802) Header Type: 
1024<BR>&nbsp;0(28802) header field type 1024, name=&lt;Content-Type&gt;, 
body=&lt;application/sdp&gt;<BR>&nbsp;0(28802) DEBUG: get_hdr_body : 
content_length=111<BR>&nbsp;0(28802) Header Type: 2048<BR>&nbsp;0(28802) header 
field type 2048, name=&lt;Content-Length&gt;, body=&lt;111&nbsp; 
&gt;<BR>&nbsp;0(28802) found end of header<BR>&nbsp;0(28802) Header Type: 
-1<BR>&nbsp;0(28802) DEBUG: is_maxfwd_present: max_forwards header not 
found!<BR>&nbsp;0(28802) grep_sock_info - checking if host==us: 12==13 
&amp;&amp;&nbsp; [wic.west.com] == [10.27.193.119]<BR>&nbsp;0(28802) 
grep_sock_info - checking if port 5060 matches port 5060<BR>&nbsp;0(28802) 
grep_sock_info - checking if host==us: 12==13 &amp;&amp;&nbsp; [wic.west.com] == 
[10.27.193.119]<BR>&nbsp;0(28802) grep_sock_info - checking if port 5060 matches 
port 5060<BR>&nbsp;0(28802) check_self: host != me<BR>&nbsp;0(28802) subst_run: 
running. r=0<BR>&nbsp;0(28802) subst_run: matched (0, 0): []<BR>&nbsp;0(28802) 
subst_run: running. r=1<BR>&nbsp;0(28802) subst_f: lst was 
(nil)<BR>&nbsp;0(28802) subst_run: running. r=0<BR>&nbsp;0(28802) subst_run: 
matched (0, 36): [sip:9990001254027160348@wic.west.com]<BR>&nbsp;0(28802) 
textops: subst_uri_f: match - old uri= [sip:9990001254027160348@wic.west.com], 
new uri= [sip:9990001254027160348@10.27.202.157]<BR>&nbsp;0(28802) DEBUG: 
t_newtran: msg id=36 , global msg id=35 , T on entrance=(nil)<BR>&nbsp;0(28802) 
parse_headers: flags=-1<BR>&nbsp;0(28802) parse_headers: 
flags=60<BR>&nbsp;0(28802) t_lookup_request: start searching: hash=34792, 
isACK=0<BR>&nbsp;0(28802) DEBUG: RFC3261 transaction matching 
failed<BR>&nbsp;0(28802) DEBUG: t_lookup_request: no transaction 
found<BR>&nbsp;0(28802) DEBUG: add_param: tag=3673666958<BR>&nbsp;0(28802) end 
of header reached, state=29<BR>&nbsp;0(28802) SER: new INVITE<BR>&nbsp;0(28802) 
parse_headers: flags=-1<BR>&nbsp;0(28802) check_via_address(10.27.192.94, 
10.27.192.94, 0)<BR>&nbsp;0(28802) WARNING:vqm_resize: resize(0) 
called<BR>&nbsp;0(28802) DEBUG: reply sent out. buf=0x810be30: SIP/2.0 1..., 
shmem=0x422c3c60: SIP/2.0 1<BR>&nbsp;0(28802) DEBUG: _reply_light: 
finished<BR>&nbsp;0(28802) DEBUG: mk_proxy: doing DNS 
lookup...<BR>&nbsp;0(28802) check_via_address(10.27.192.94, 10.27.192.94, 
0)<BR>&nbsp;0(28802) DEBUG: add_to_tail_of_timer[4]: 
0x422c2ac0<BR>&nbsp;0(28802) DEBUG: add_to_tail_of_timer[0]: 
0x422c2ad0<BR>&nbsp;0(28802) SER: new transaction fwd'ed<BR>&nbsp;0(28802) 
DEBUG:destroy_avp_list: destroying list (nil)<BR>&nbsp;0(28802) receive_msg: 
cleaning up<BR>&nbsp;0(28802)<BR></FONT></SPAN></DIV>
<DIV><SPAN class=769355018-11072008><FONT face=Arial 
size=2>...</FONT></SPAN></DIV>
<DIV><SPAN class=769355018-11072008><FONT face=Arial 
size=2></FONT></SPAN>&nbsp;</DIV>
<DIV><SPAN class=769355018-11072008><FONT face=Arial size=2>&nbsp;0(28802) SIP 
Request:<BR>&nbsp;0(28802)&nbsp; method:&nbsp; 
&lt;CANCEL&gt;<BR>&nbsp;0(28802)&nbsp; uri:&nbsp;&nbsp;&nbsp;&nbsp; 
&lt;sip:4027160348@wic.west.com&gt;<BR>&nbsp;0(28802)&nbsp; version: 
&lt;SIP/2.0&gt;<BR>&nbsp;0(28802) parse_headers: flags=1<BR>&nbsp;0(28802) Found 
param type 232, &lt;branch&gt; = &lt;z9hG4bK1249933199&gt;; 
state=16<BR>&nbsp;0(28802) end of header reached, state=5<BR>&nbsp;0(28802) 
Header Type: 1<BR>&nbsp;0(28802) parse_headers: Via found, 
flags=1<BR>&nbsp;0(28802) parse_headers: this is the first via<BR>&nbsp;0(28802) 
header field type 1, name=&lt;Via&gt;, body=&lt;SIP/2.0/UDP 
10.27.192.94:5060;branch=z9hG4bK1249933199&gt;<BR>&nbsp;0(28802) preparing to 
run routing scripts...<BR>&nbsp;0(28802) parse_headers: 
flags=128<BR>&nbsp;0(28802) Header Type: 8<BR>&nbsp;0(28802) header field type 
8, name=&lt;From&gt;, 
body=&lt;&lt;sip:4027161000@10.27.192.94&gt;;tag=3673666958&gt;<BR>&nbsp;0(28802) 
end of header reached, state=9<BR>&nbsp;0(28802) DEBUG: get_hdr_field: 
&lt;To&gt; [31]; uri=[sip:4027160348@wic.west.com]<BR>&nbsp;0(28802) DEBUG: to 
body [&lt;sip:4027160348@wic.west.com&gt;<BR>]<BR>&nbsp;0(28802) Header Type: 
4<BR>&nbsp;0(28802) header field type 4, name=&lt;To&gt;, 
body=&lt;&lt;sip:4027160348@wic.west.com&gt;&gt;<BR>&nbsp;0(28802) Header Type: 
32<BR>&nbsp;0(28802) header field type 32, name=&lt;Call-ID&gt;, body=&lt;<A 
href="mailto:514+43+1215800190+24+t1b@10.27.192.94">514+43+1215800190+24+t1b@10.27.192.94</A>&gt;<BR>&nbsp;0(28802) 
get_hdr_field: cseq &lt;CSeq&gt;: &lt;2&gt; &lt;CANCEL&gt;<BR>&nbsp;0(28802) 
Header Type: 16<BR>&nbsp;0(28802) header field type 16, name=&lt;CSeq&gt;, 
body=&lt;2 CANCEL&gt;<BR>&nbsp;0(28802) Header Type: 64<BR>&nbsp;0(28802) header 
field type 64, name=&lt;Contact&gt;, 
body=&lt;&lt;sip:514+43+1215800190+24+t1b@10.27.192.94&gt;&gt;<BR>&nbsp;0(28802) 
Header Type: 33554432<BR>&nbsp;0(28802) header field type 33554432, 
name=&lt;user-agent&gt;, body=&lt;oSIP/wicsip-3.3.4&gt;<BR>&nbsp;0(28802) Header 
Type: 1073741824<BR>&nbsp;0(28802) header field type 1073741824, 
name=&lt;x-west-rg&gt;, body=&lt;0:0&gt;<BR>&nbsp;0(28802) DEBUG: get_hdr_body : 
content_length=0<BR>&nbsp;0(28802) Header Type: 2048<BR>&nbsp;0(28802) header 
field type 2048, name=&lt;Content-Length&gt;, body=&lt;0&gt;<BR>&nbsp;0(28802) 
found end of header<BR>&nbsp;0(28802) Header Type: -1<BR>&nbsp;0(28802) DEBUG: 
is_maxfwd_present: max_forwards header not found!<BR>&nbsp;0(28802) 
grep_sock_info - checking if host==us: 12==13 &amp;&amp;&nbsp; [wic.west.com] == 
[10.27.193.119]<BR>&nbsp;0(28802) grep_sock_info - checking if port 5060 matches 
port 5060<BR>&nbsp;0(28802) grep_sock_info - checking if host==us: 12==13 
&amp;&amp;&nbsp; [wic.west.com] == [10.27.193.119]<BR>&nbsp;0(28802) 
grep_sock_info - checking if port 5060 matches port 5060<BR>&nbsp;0(28802) 
check_self: host != me<BR>&nbsp;0(28802) subst_run: running. 
r=0<BR>&nbsp;0(28802) subst_run: matched (0, 27): 
[sip:4027160348@wic.west.com]<BR>&nbsp;0(28802) textops: subst_uri_f: match - 
old uri= [sip:4027160348@wic.west.com], new uri= 
[sip:4027160348@10.27.202.157]<BR>&nbsp;0(28802) subst_run: running. 
r=0<BR>&nbsp;0(28802) subst_run: matched (0, 0): []<BR>&nbsp;0(28802) XLOG: 
xl_print_log: final buffer length 99<BR>&nbsp;0(28802) time [Fri Jul 11 14:15:52 
2008] KLP: CANCEL REQUEST - ruri 
&lt;sip:9990001254027160348@10.27.202.157&gt;<BR>&nbsp;0(28802) DEBUG: t_check: 
msg id=40 global id=37 T start=0xffffffff<BR>&nbsp;0(28802) parse_headers: 
flags=-1<BR>&nbsp;0(28802) parse_headers: flags=60<BR>&nbsp;0(28802) 
t_lookup_request: start searching: hash=34792, isACK=0<BR>&nbsp;0(28802) DEBUG: 
RFC3261 transaction matching failed<BR>&nbsp;0(28802) DEBUG: t_lookup_request: 
no transaction found<BR>&nbsp;0(28802) DEBUG: t_check: msg id=40 global id=40 T 
end=(nil)<BR>&nbsp;0(28802) XLOG: xl_print_log: final buffer length 
64<BR>&nbsp;0(28802) time [Fri Jul 11 14:15:52 2008] KLP: CANCEL REQUEST -- 
ignoring<BR>&nbsp;0(28802) DEBUG:destroy_avp_list: destroying list 
(nil)<BR>&nbsp;0(28802) receive_msg: cleaning 
up<BR>&nbsp;0(28802)<BR></FONT></SPAN></DIV>
<DIV><SPAN class=769355018-11072008><FONT face=Arial size=2>I've verified that 
the branchID of the INVITE matches that of the CANCEL so I had expected the 
t_lookup_request() to succeed.</FONT></SPAN></DIV>
<DIV><SPAN class=769355018-11072008><FONT face=Arial 
size=2></FONT></SPAN>&nbsp;</DIV>
<DIV><SPAN class=769355018-11072008><FONT face=Arial size=2>Do I misunderstand 
the way transactions work?&nbsp; Any suggestions on how I might get this to 
work?</FONT></SPAN></DIV>
<DIV><SPAN class=769355018-11072008><FONT face=Arial 
size=2></FONT></SPAN>&nbsp;</DIV>
<DIV><SPAN class=769355018-11072008><FONT face=Arial size=2>Any help is 
appreciated.</FONT></SPAN></DIV>
<DIV><SPAN class=769355018-11072008><FONT face=Arial 
size=2></FONT></SPAN>&nbsp;</DIV>
<DIV><SPAN class=769355018-11072008><FONT face=Arial 
size=2>Thanks!</DIV></FONT></SPAN>
<DIV><SPAN class=769355018-11072008></SPAN>&nbsp;</DIV></BODY></HTML>