[OpenSIPS-Users] explizit handling auf replyto
Bogdan-Andrei Iancu
bogdan at voice-system.ro
Thu Sep 24 10:42:33 CEST 2009
Hi Uwe,
Sorry for the delay - I took a look at the logs and there is what I
understand from there:
- I guess you do a parallel forking as the 486 comes from a second
branch (id 1 starting from 0) (see ;branch=z9hG4bK52ad.7d455a97.1 )
- The TM decides to store the reply without relaying
"DBG:tm:relay_reply: branch=1, save=1, relay=-1" TM does not relay it
as probably there is no final reply on the first branch (id = 0).
So, the final reply is not forwarded because not all branches are
completed yet, so TM cannot pick yet a final reply to be sent to UAC.
It is a typical behaviour during parallel forking.
Regards,
Bogdan
Uwe Kastens wrote:
> Hello,
>
> Ok. I need to have that forward() in my configuration the get answers
> like 404, 486, 487 back to my asterisk. Reading your statements this
> should not be possible since I use t_relay for the requests and the
> replys should be routed by default.
>
> I will make a trace and post it to the list. One with forward and the
> other without.
>
> BR and Thanks in advance
>
> Uwe
>
>
>
> Bogdan-Andrei Iancu schrieb:
>
>> Uwe,
>>
>> forward() is a function exclusivly used for REQUESTS - for replies,
>> nothing needs to be done as OpenSIPS will do it automatically:
>>
>> 1) if the requests was statefully forwarded (via t_relay() ), the
>> transaction will contain all the info to route back the reply
>>
>> 2) if the requests was statelessly forwarded (via forward() ), the VIA
>> stack (in received reply) will contain all the info to route back the reply
>>
>> Regards,
>> Bogdan
>>
>>
>> Uwe Kastens wrote:
>>
>>> Hi Bogdan,
>>>
>>>
>>>
>>>>> I need to route this
>>>>> replys with an reply_route and forward them explicitly to the pstn gateway.
>>>>>
>>>>>
>>>>>
>>>> and how do you do reply routing ?? replies are automatically routed
>>>> based on VIA stack and you cannot influence this from script.
>>>>
>>>>
>>> ...
>>> if (!t_relay()) {
>>> sl_reply_error();
>>> };
>>>
>>> t_on_reply("1");
>>> }
>>> onreply_route[1] {
>>> xlog("L_DBG","========== route [1] t_on_failure msg-len from $si:$sp:
>>> $ml \n$mb\n ==========\n");
>>> forward("10.20.30.101:5100");
>>> }
>>>
>>> BR
>>>
>>> Uwe
>>>
>>>
>>>
>>>
>>>
>>>> Regards,
>>>> Bogdan
>>>>
>>>>
>>>>> This not as it should be?
>>>>>
>>>>>
>>>>>
>>>>> BR
>>>>>
>>>>> Uwe
>>>>>
>>>>>
>>>>>
>>>>>> using forward() forces a stateless behaviour of OpenSIPS. To be able to
>>>>>> catch replies for a requests (what on_reply route does) it requires a
>>>>>> statefull approach. This is the reason it does not work for you.
>>>>>>
>>>>>> If you use t_relay() instead of forward(), you should be able to use
>>>>>> failure and onreply routes.
>>>>>>
>>>>>> Regards,
>>>>>> Bogdan
>>>>>>
>>>>>> Uwe Kastens wrote:
>>>>>>
>>>>>>
>>>>>>
>>>>>>> Hello,
>>>>>>>
>>>>>>> I am using opensips 1.5.1 and I have the problem, that busy messages are
>>>>>>> not passed to the mediagw. Anything else is working (ACK etc.pp.). If I
>>>>>>> route that message via forward("IP:port") to the media gw in on_replyto,
>>>>>>> busy is processed correctly. If not, the busy is not send to the mediagw.
>>>>>>>
>>>>>>> So I was wondering if I had to handle some replyto messages?
>>>>>>>
>>>>>>> BR
>>>>>>>
>>>>>>> uwe
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
More information about the Users
mailing list