[Kamailio-Users] Question regarding TM module DNS failover with SRV records

Daniel-Constantin Mierla miconda at gmail.com
Thu Dec 10 18:32:22 CET 2009



On 12/10/09 5:49 PM, Nathan Angelacos wrote:
> Daniel-Constantin Mierla wrote:
>> Hello,
>>
>> On 12/10/09 5:29 AM, Nathan Angelacos wrote:
>>>
>>> According to the 1.5.x TM module documentation,
>>> DNS failover is triggered by a 503 reply or a timeout.
>>>
>>> When using SRV records, it appears a 503 triggers the failure_route 
>>> instead.
>>>
>>> Given:
>>>
>>> host -t srv _sip._udp.voip.example.net
>>>  _sip._udp.voip.example.net has SRV record 1 0 5060 
>>> fast-server.example.net.
>>>  _sip._udp.voip.example.net has SRV record 2 0 5060 
>>> slow-server.example.net.
>>>
>>> On an invite to voip.example.net, if fast-server does not respond 
>>> within "fr_timer" seconds, t_relay fires off a serial branch 
>>> (t_on_branch is triggered) and the invite goes to slow-server.
>>>
>>> If fast-server responds with a 503, the t_on_failure route is 
>>> triggered instead, and the invite is not sent on to slow-server.
>>>
>>> If its not a bug in the module, does anyone have  clues of how to 
>>> coax the next DNS SRV record out of the t_on_failure route?  Or what 
>>> can be done to get t_relay to consume the 503?
>>>
>> does the 503 reply include a retry-after header?
>
> It did not.  Adding one generates the expected results.  Thanks!
>
> (Now to convince the customer to add the header - "It worked before 
> with the other provider...")
>
then maybe is easier to patch kamailio 1.5. Look in modules/tm/t_reply.c

At line 708, replace:

             /* is the Retry-After header present (if present,
              * it should be already parsed) */
             hdr = t->uac[picked_branch].reply->headers;
             for( ; hdr ; hdr=hdr->next)
                 if (hdr->type==HDR_RETRY_AFTER_T)
                     return 1;
             return 0;

with:

          return 1;

Cheers,
Daniel

-- 
Daniel-Constantin Mierla
* http://www.asipto.com/




More information about the Users mailing list