[Serusers] tcp branching errors

Tomasz Zieleniewski tzieleniewski at gmail.com
Thu Nov 15 11:31:22 CET 2007


Hi,

I have the following situation.
I have two ser rel_2_0_0 instances one acting as a boundary proxy the
other on as internal proxy (registrar, location).

I have the following situation I have a user which has registered two
contacs one woth tcp transport the other one with udp.

All messages coming to and outgoing from my network travels through
boundary sip proxy.

When internal ser perform lookup_location it get to contacts and the
destination set contains two records:
Nov 15 11:03:13 sen ser[3673]:  route[FORWARD]: destination set:
Contact: sip:xlite at 192.168.0.164:1221;rinstance=d35f9cda6bd79b0a;transport=TCP,
sip:xlite at 192.168.0.164:7060

Then internal ser forward message to boundary SIP proxy by changing
the destination of the message and with the usage of t_relay().
I see from log that there are two branches involved:
Nov 15 11:03:13 sen ser[3673]: branch_route[BRANCH_ROUTE]: <INVITE>
ruri:<sip:xlite at 192.168.0.164:1221;rinstance=d35f9cda6bd79b0a;transport=TCP>
t:<sip:00 at voip.rd.touk.pl> f:<sip:lkl at voip.rd.touk.pl>
Nov 15 11:03:13 sen ser[3673]: branch_route[BRANCH_ROUTE]:
append_hf(P-Warn: forked branch)
Nov 15 11:03:13 sen ser[3673]: branch_route[BRANCH_ROUTE]: <INVITE>
ruri:<sip:xlite at 192.168.0.164:7060;rinstance=cfca8523e3747cb0>
t:<sip:00 at voip.rd.touk.pl> f:<sip:lkl at voip.rd.touk.pl>
Nov 15 11:03:13 sen ser[3673]: branch_route[BRANCH_ROUTE]:
append_hf(P-Warn: forked branch)

both INVITES reaches boudary SIP proxy.

Because first contact was unreachable there was an tcp error:
ser[3516]: ERROR: tcp_blocking_connect: poll error: flags 18
Nov 15 11:03:13 sen ser[3516]: ERROR: tcp_blocking_connect: SO_ERROR
(111) Connection refused
Nov 15 11:03:13 sen ser[3516]: ERROR: tcpconn_connect:
tcp_blocking_connect failed
Nov 15 11:03:13 sen ser[3516]: ERROR: tcp_send: connect failed
Nov 15 11:03:13 sen ser[3516]: msg_send: ERROR: tcp_send failed
Nov 15 11:03:13 sen ser[3516]: ERROR: t_send_branch: sending request
on branch 0 failed

after which ser invokes sl_reply_error() which results in 477 next hop
error reponse message sent to internal ser instance.
The problem arises when boudary sip proxy processes second INVITE
which correspond to second destination.
when boundary SIP proxy receives it doesn't send it to user agent but
instead reponses to internal ser with
500 I'm terribly sorry, server error occurred (1/SL)
the only thing I see in the boundary SIP proxy log is:
ERROR: sl_reply_error used: I'm terribly sorry, server error occurred (1/SL)

Did I miss something here or this is an error?
Waiting for Your feedback

Best regards
Tomasz



More information about the sr-users mailing list