[Serdev] TCP Blocking Connect issue
Andrew Mee
andrew at healthshare.net.au
Wed Aug 25 05:06:19 UTC 2004
Apologies on the big email... there was just a lot of information :)
Ok I tried the substr code lots of times with no luck.
In the end I had a look at re.c and noticed the code around line 481
looks wrong
i.e it should be r!=0 (I think) as this then made the code work, at
least according to debug information....
But..... Then SER dropped out with memory errors.... I assume perhaps
this bit of code is unfinished? :)
Andrew
Jiri Kuthan wrote:
>We are possibly getting closer...nailing down the critical
>pieces of troubleshooting information has been very helpful
>to us. Thanks!
>
>In summary I guess what you describe is caused by the way Windows Messenger
>constructs record-routing -- based on RFC2543 (obsoleted) and maddr.
>We may be better backwards-compatible (questions to my collegue,
>Jan, are inline).
>
>This is a quick attempt to resolve the problem. It may or may not work,
>in any case I would love to hear from you if it worked. I'm pesimistic
>and guess it won't help but learning that would be a great troubleshooting
>aid to me.
>
> move the subst_uri action from the loose_route condition after it and
> let me know if it did any better. (I hope the ACK will then be processed as
> outbound request and not record-routed request -- that should work too.)
>
>-jiri
>
>At 01:07 AM 8/25/2004, Andrew Mee wrote:
>
>
>>Tried this in my config to no avail....
>>
>>However I'm attaching the DEBUG log file and I noticed the following:
>>
>>serctl ul show support at 192.168.2.253
>><sip:192.168.2.11:7887;transport=tcp>;q=0.00;expires=3541 <-- Bad
>><sip:192.168.2.11:8346;transport=tcp>;q=0.00;expires=3598 <-- Good
>>
>>
>
>Content of User Location cache has no impact on forwarded of subsequent
>in-dialog reqeusts such as ACKs. ACK must be forwarded based on Route
>rules. The facts they are not is casued by too different ways how
>SER and Messenger works.
>
>
>
>
>>But this line occurs....
>>
>>14(10871) check_self - checking if port 5060 matches port 5060
>>14(10871) rwrite(): Rewriting Request-URI with
>>'sip:192.168.2.11:7887;transport=tcp'
>>
>>
>
>
>
>That's a message from user lookup. User location lookup shall NOT
>be applied to subsequent requests, only to initial requests.
>The fact, that it is applied tells me there is a potential shortcoming
>with record-routing in SER that cannot handle Messenger's obsoleted
>Record-routing.
>
>To recap the essential pieces:
>- this is the ACK; it is SIP-2543 compliant, strict-routing-based, with
> use of maddr parameter in Route (driven by UAS's contact)
>T 192.168.2.28:1071 -> 192.168.2.253:5060 [AP]
> ACK sip:support at 192.168.2.253;transport=tcp;ftag=455e2e10b10e464cafe24f3603
> 111429;lr=on SIP/2.0
> Route: <sip:support at 192.168.2.253:8346;maddr=192.168.2.11;transport=tcp>
>
>SER should recognize this as a record-routed message and forward it to
>the destination in Route/maddr: 192.168.2.11:8346.
>
>Here is where I begin to be confused. The record-routing certainly does
>not return TRUE -> the subst_uri is never executed. I think that is
>subject to fixing but I am not sure what is the root reason.
>(Jan, cc, will know better.) It is indicated by the "rewrite" log line
>which tells usrloc was applied (i.e., loose_route must have returned false).
>
>It appears that SER's rr-ing fails to replace request-URI.
>That's indicated by passing the uri==myself condition, which should not be
>passed if r-URI was replaced with Route uri containing the port number 8346.
>Other indication is that the comparison bellow does not include the port
>8346.
>If the config file change mentioned above does not help, that would be an
>indication for it too.
>
>14(10871) check_self - checking if host==us: 13==13 && [192.168.2.253] == [192.168.2.253]
>14(10871) check_self - checking if port 5060 matches port 5060
>
>
>Here all the critical log lines.
>
>14(10871) check_self - checking if host==us: 13==13 && [192.168.2.253] == [192.168.2.253]
>14(10871) check_self - checking if port 5060 matches port 5060
>14(10871) check_self - checking if host==us: 13==13 && [192.168.2.253] == [192.168.2.253]
>14(10871) check_self - checking if port 5060 matches port 8346
>14(10871) parse_headers: flags=256
>14(10871) DEBUG: get_hdr_body : content_length=0
>14(10871) found end of header
>14(10871) fnr(): No next Route HF found
>14(10871) ras(): No next URI found
>14(10871) check_self - checking if host==us: 13==13 && [192.168.2.253] == [192.168.2.253]
>14(10871) check_self - checking if port 5060 matches port 5060
>14(10871) rwrite(): Rewriting Request-URI with 'sip:192.168.2.11:7887;transport=tcp'
>
>
>
>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: andrew.vcf
Type: text/x-vcard
Size: 889 bytes
Desc: not available
Url : http://lists.iptel.org/pipermail/serdev/attachments/20040825/77279c44/andrew.vcf
More information about the Serdev
mailing list