[Serusers] use_dns_cache and call forwarding

Miklos Tirpak miklos at iptel.org
Thu Jul 24 15:32:22 CEST 2008


On 07/24/2008 01:11 PM, caio wrote:
> Hi Miklos,
> This happens only when I try to do a call to a subcriber having
> forwarding enabled.
> 
> Normal calls success ok. I'm not sure about the append_branch() usage
> and how to work with 'on busy' and 'no answer' forwarding features.


The config script looks fine, I suppose you see the log messages "LOG: 
--> appending new branch..." and "LOG: --> Calling route_6..." before 
the error logs you posted.

SER tries to forward the call to wsa.lab. It tries to resolve the SRV 
record first without success, than resolves the A record (there is no 
error, so the resolution is ok).

I believe there is a routing or firewall problem, because sendto() 
function returns with error, so the issue is not SER-related in my 
opinion, try to google for "sendto operation not permitted". Disable 
iptables or any other firewall you have, verify that the routing is 
correct, and SER listens on the interface that is used to send out the 
packet.

I would also try to send a call to wsa.lab without failure route with a 
very simple ser script.

Miklos

> 
> Thanks your comments..
> 
> Claudio
> 
> On Thu, Jul 24, 2008 at 4:58 AM, Miklos Tirpak <miklos at iptel.org> wrote:
>> Hi,
>>
>> On 07/23/2008 05:22 PM, caio wrote:
>>> Hi guys,
>>> I have a problem with call forwarding (on busy or not answer).., the
>>> call fall into the failure_route(1) block, and AVP checking and pushto
>>> does its job.
>>>
>>> Here a snipped of code of failure_route(1) (flag 27 means call fwd if
>>> no answer):
>>>
>>>        if (isflagset(27) && t_check_status("408")) { # if fwd no
>>> answer is set and reply msg is 408
>>>
>>>                if (avp_pushto("$ruri", "s:fwdnoanswer")) {
>>>                        avp_delete("s:fwdnoanswer");
>>>                        resetflag(27);
>>>
>>>                        avp_print();
>>>
>>>                        log(1, "LOG: --> appending new branch...");
>>>                        if (!append_branch()){
>>>                                t_reply("500", "Too many branches?!");
>>>                                drop;
>>>                        }
>>>
>>>                        log(1, "LOG: --> Calling route_6...");
>>>                        route(6);
>>>                        break;
>>>
>>> Route(6) finally calls route(1), where t_relay is called.
>>> But have a dns failure..and the call never is forwarded.
>>>
>>> == ser.log ==
>>>
>>> DEBUG: mk_proxy: doing DNS lookup...
>>> get_record: lookup(_sip._udp.wsa.lab, 33) failed_
>>> sip_resolvehost: no SRV record found for wsa.lab, trying 'normal'
>>> lookup..._
>>> check_via_address(190.244.33.5, 190.244.33.5, 0)_
>>> ERROR: udp_send: sendto(sock,0x2ab32599c720,910,0,0x2ab325999e68,16):
>>> Operation not permitted(1)_
>>> msg_send: ERROR: udp_send failed_
>>> ERROR: t_forward_nonack: sending request failed_
>>> DEBUG: add_to_tail_of_timer[4]: 0x2ab325999e80_
>>> DEBUG: add_to_tail_of_timer[0]: 0x2ab325999ea0_
>>> ERROR: w_t_relay (failure mode): forwarding failed_
>>>
>>> A question regarding this trouble.....Can I disable use_dns_cache ?
>>> SER version is 0.9.7.
>> there is no DNS cache in version 0.9.x as I recall, but anyway, your problem
>> does not seem to be related to DNS, but to the UDP message sending: SER
>> fails to send out the UDP packet, "Operation not permitted". Is there no
>> firewall or routing problem at the proxy side?
>>
>> Miklos
>>
>>> What do you recommend?
>>> If you need my ser.cfg I can paste it...
>>>
>>> Thanks..
>>>
> 
> 
> 
> --
> caio
> 
> 
> 



More information about the sr-users mailing list