Status: New
Owner: ----
Labels: Type-Defect Priority-Medium Component-Sip-Servlets MSS-3.0.0.FINAL
Roadmap-Fix
New issue 250 by
girish...@gmail.com: Fallback to second DNS Record is not
even attempted in event of TCP Connection failure
http://code.google.com/p/sipservlets/issues/detail?id=250
What steps will reproduce the problem?
1. Setup DNS Server (bind or dnsmasq) with 2 A records for host
machine.yourdomain.com pointing to machines with IP address 10.10.10.10 and
20.20.20.20.
2. Write a simple app to create and send a new Sip Message request to host
sip:
machine.yourdomain.com;transport=tcp as Route header.
3. Deploy and start the app. Capture the generated Sip requests and TCP
messages using wireshark
What is the expected output? What do you see instead?
Mobicents should initiate Sip Transaction to one machine over TCP transport
after DNS lookup. In case of no response or connection failure, invoke
connection to second machine.
Observed that Mobicents falls back to second machine as expected only in
case of no response; i.e. when there is already a TCP connection with
target machine and that does not send back a response within transaction
lifetime of 32 seconds.
However when there is no TCP connection already in place with first machine
and Mobicents tries to create one, observed that it directly throws back
SocketException to application in event of TCP connection failure. It does
not even attempts connection to the second machine.
What version of the product are you using? On what operating system?
mss-1.7.0.FINAL-apache-tomcat-6.0.35 on Redhat 6
Please provide any additional information below.
Section 4.3 of RFC 3263 mentions following procedure to process outgoing
SIP request for which multiple SRV records are returned in DNS lookup:
For SIP requests, failure occurs if the transaction layer reports a
503 error response or a transport failure of some sort (generally,
due to fatal ICMP errors in UDP or connection failures in TCP).
Failure also occurs if the transaction layer times out without ever
having received any response, provisional or final (i.e., timer B or
timer F in RFC 3261 [1] fires). If a failure occurs, the client
SHOULD create a new request, which is identical to the previous, but
has a different value of the Via branch ID than the previous (and
therefore constitutes a new SIP transaction). That request is sent
to the next element in the list as specified by RFC 2782.
--
You received this message because this project is configured to send all
issue notifications to this address.
You may adjust your notification preferences at:
https://code.google.com/hosting/settings