[Users] failover

Cseke Tamas cseke.tamas at eworldcom.hu
Mon May 15 12:12:41 CEST 2006


Hi,

> 2006/5/9, Cseke Tamas <cseke.tamas at eworldcom.hu>:
>
>> >> That means, if one proxy dies during the session, the UA'll make a
>> >> DNS SRV lookup, find the other proxy, and send the BYE to it instead
>> >> of the proxy, which served the INVITE?
>> >
>> >
>> > not quite - all sequential request (within the dialog) are routed
>> > based on the route set (the Record Route hdr added by the proxies on
>> > the path). The headers contains IP addresses, so basically no DNS
>> > lookup is done for sequential requests. An alternative will be to
>> > configure your proxy to put DNS name instead of IP in the RR hdr.
>> >
>> I 'd like the UAs to make only DNS lookup, when one proxy fails, if the
>> proxy put domain name in The RR header, the UA must do a DNS lookup in
>> every request, isn't it?
>
>
> It should be (that's why it's always recommended to use FQDNs instead
> of IPs in SIP headers).....but I bet thousands of beers that many UAs
> won't do SRV lookup for every message.
>
First of all thanks the replies!
Problem is the same, i wanna send a transaction to another proxy if one 
dies.
But a RR header for the whole dialog is valid, i've got a suggestion to 
use FQDNs...
I quess this way it should work, please someone take a look, if i 
missunderstood something...


In the scenario there is 4 outbound proxy, the message will be send in 
the so called SIP trapezoid (UAC->Outbound proxy -> Inbound proxy -> UAS)
The INVITE transaction is sent successfully to one outbound proxy, but 
this proxy goes down, and the BYE transaction should go to another proxy 
in the same dialog.

DNS SRV for failover and load balancing

_sip._udp IN SRV 0 6 proxy1.outboundproxydomain.com
_sip._udp IN SRV 0 4 proxy2.outboundproxydomain.com
_sip._udp IN SRV 1 6 proxy3.outboundproxydomain.com
_sip._udp IN SRV 1 4 proxy4.outboundproxydomain.com

Address records

outboundproxydomain.com        A    217.xxx.xxx.195
outboundproxydomain.com        A    217.xxx.xxx.196
outboundproxydomain.com        A    217.xxx.xxx.197
outboundproxydomain.com        A    217.xxx.xxx.198

proxy1.outboundproxydomain.com    A    217.xxx.xxx.195
proxy2.outboundproxydomain.com    A    217.xxx.xxx.196
proxy3.outboundproxydomain.com    A    217.xxx.xxx.197
proxy4.outboundproxydomain.com    A    217.xxx.xxx.198


INVITE
______


UAC
    INVITE sip:callee at domain.com SIP/2.0
    Contact: <sip:caller at domain.com>

DNS lookup for outbound proxy (dig -t SRV _sip._udp.outboundproxydomain.com)
Choose proxy1.outboundproxydomain.com
dig -t A proxy1.outboundproxydomain.com -> 217.xxx.xxx.195
Send message to 217.xxx.xxx.195


Outbound proxy(217.xxx.xxx.195)

    INVITE sip:callee at domain.com SIP/2.0   
    Record-Route: <sip:outboundproxydomain.com;lr>
    Contact: <sip:caller at domain.com>

Record-route ONLY its domain name.
Lookup inbound proxy, send message to it.

Inbound proxy

    INVITE sip:callee at domain.com SIP/2.0   
    Record-Route: <sip:proxy.domain.com
    Record-Route: <sip:outboundproxydomain.com;lr>
    Contact: <sip:caller at domain.com>

UAS

    INVITE sip:callee at domain.com SIP/2.0   
    Record-Route: <sip:proxy.domain.com
    Record-Route: <sip:outboundproxydomain.com;lr>
    Contact: <sip:caller at domain.com>

....


BYE
___

UAC
    BYE sip:callee at domain.com SIP/2.0
    Route: <sip:outboundproxydomain.com;lr>
    Route: <sip:proxy.domain.com;lr>
    Contact: <sip:caller at domain.com>

Most important part!!!
lookup proxy (dig -t A outboundproxydomain.com)
217.xxx.xxx.195 failed
send message 217.xxx.xxx.196 (proxy2.outboundproxydomain.com)


Outbound proxy (217.xxx.xxx.196):

    BYE sip:callee at domain.com SIP/2.0
    Route: <sip:proxy.domain.com;lr>
    Contact: <sip:caller at domain.com>

Inbound proxy:

    BYE sip:callee at domain.com SIP/2.0
    Contact: <sip:caller at domain.com>

UAS

    BYE sip:callee at domain.com SIP/2.0
    Contact: <sip:caller at domain.com>


Thanks in advance,
Tamas








More information about the sr-users mailing list