Hello Klaus, IƱaki,
I have done some tests after your answers, and here are the results :
- I have tried to register a user with multiple Contact headers, for
the same Address of Record in a single REGISTER, specifying the
transport used in each Contact Header field, and I only see one entry
for each client doing "openserctl ul show". For each entry, the
Socket:: value show that the transport layer taken in account is the
transport layer used to send the REGISTER message.
- I tried to add "transport=tcp" as a R-URI parameter but
unfortunately the message is still sent over UDP from OpenSER to
client B.
- About Klaus's remark, I also thought that you could only send SIP
messages in UDP to a client registered inUDP but when I went through
the 18th paragraph of RFC 3261 ("Transport"), I understood that it was
mandatory for a SIP client to listen on the same port in UDP and TCP.
I don't have the precise reference but it is the way I understood this
part of the RFC. Anyway, I would be ready to register on both
protocols using multiple Contact in the REGISTER message, and I would
like to avoid having to send a REGISTER in UDP AND a REGISTER in TCP.
Best regards,
Antoine
When I send a REGISTER with a Contact field containing a transport parameter,
2008/4/22 Klaus Darilion <klaus.mailinglists(a)pernau.at>at>:
Antoine Fressancourt schrieb:
Hello list,
I have several questions about the support of TCP in OpenSER in
general, and about the switch/ failover from UDP to TCP in particular.
Forcing UDP->TCP failover will only work if the client is listening on TCP
too - and the proxy knows the port where the client is listening.
If the client has registered using UDP, then the proxy has to use UDP for
sending requests to this client.
Thus, if you want TCP you have to make sure that the clients use TCP and
openser will automatically use TCP.
you can force some clients to use TCP by adding NAPTR records for you
domain with TCP as the preferred protocol.
regards
klaus
In my setup, I have several SIP clients registered to a single
OpenSER, and they exchange presence messages on a peer-to-peer basis.
When the presence document is complex, the size of the message sent
exceeds a given limit, and I want my message to be sent over TCP. My
clients are registered on the OpenSER, and the REGISTER has been sent
over UDP. From now, when client A sends a NOTIFY using TCP to client
B, the message is transported over TCP from A to the OpenSER, and is
transported over UDP from the OpenSER to B.
So here are my questions :
- How can I tell OpenSER to relay the message to B using TCP ?
- Do I have something particular to do while registering to tell
OpenSER that the client is listening in UDP and TCP ?
Thank you in advance for your answers,
Antoine
_______________________________________________
Users mailing list
Users(a)lists.openser.org
http://lists.openser.org/cgi-bin/mailman/listinfo/users