I would say that as long as your UA's contact header registered in ser
specifies UDP, t_relay should do the trick when receiving the bye (tcp) and
relaying it (udp).
It works in my lab :) I cannot be more specific as i am away now ... sorry.
Cesc
On 9/29/05, Mark Aiken <aiken.mark(a)gmail.com> wrote:
HI,
The original RURI does have but when SER relays to UDP UA it places
transport=tcp in the Record-Route but not in the RURI to the UDP UA, which
seems correct to me.
I guess the problem is when using relay_to_udp on an INVITE from a TCP UA,
to force SER to act as a TCP to UDP proxy, SER cant handle loose routing new
requests in the same dialog back via TCP.
There seems to be no code in SER to handle this, from the small bits I've
looked at anyway. The information is in the rr params that SER added, but
SER just ignores the information on loose routed requests when the route is
a local one.
Does anyone know if there is some special trick to get SER to handle
TCP<->UDP conversion of loose routed requests? Should the UA be adding the
transport=tcp from the rr param to the RURI of the BYE ( I would not think
so, since its the 2nd route added by SER anyway, not the topmost).
For SER to work as a TCP<=>UDP proxy, one needs to "search" for the
transport=tcp, somehow be sure its in a local route header, and add the
transport=tcp to the uri before calling t_relay, I guess. I haven't tried
that yet. All this for loose routed requests.
This seems like a lot of work in the .cfg file which is better done in
rr/tm module.
I still think I must be doing something wrong as SER should handle this
automatically for loose routed requests.
Is using relay_to_udp not the proper way to force TCP to UDP proxy of an
INVITE?
Mark
On 9/29/05, Klaus Darilion <klaus.mailinglists(a)pernau.at> wrote:
Hi Mark!
I do not know it exactly, but I think the important thing is the contact
header URI of the INVITE. Does it contain a transport=tcp parameter?
Otherwise, ser is correct when using UDP.
klaus
Mark Aiken wrote:
Hi,
I'm having problems getting SER to (loose) route requests from UDP to
TCP. I'm not sure if the UA is at fault here or some SER config issue.
SER receives an INVITE over TCP, record_route() is called and then the
request is relayed via UDP (t_relay_to_udp) to
the UA. The
INVITE relayed to the UDP UA now has 2 Record-Route headers added by
SER. One has the transport=tcp parameter.
Record-Route: <sip: xx.xx.xx.xx;r2=on;ftag=xyz;lr=on>
Record-Route: <sip:xx.xx.xx.xx;transport=tcp;r2=on;ftag=xyz>
When the UA sends the BYE to SER, it has the 2 Route headers like so
(on
a single line):
Route:
<sip:xx.xx.xx.xx;r2=on;ftag=xyz;lr=on>,<sip:xx.xx.xx.xx
;transport=tcp;r2=on;ftag=xyz;lr=on>
The SER script simply calls t_relay() in the loose_route section of
the
script.
I expected t_relay() to relay the BYE via TCP, since the Route header
has transport=tcp, but it sends the BYE via UDP instead.
Anyone seen this problem before? Do I need to check for transport=tcp
and call t_relay_to_tcp, rather than using t_relay after
loose_route()?
Mark
------------------------------------------------------------------------
_______________________________________________
Serusers mailing list
Serusers(a)iptel.org
http://mail.iptel.org/mailman/listinfo/serusers
_______________________________________________
Serusers mailing list
Serusers(a)iptel.org
http://mail.iptel.org/mailman/listinfo/serusers