[OpenSIPS-Users] Dialog and avp_timeout

Marcello Lupo mlist at itspecialist.it
Thu Apr 5 18:51:45 CEST 2012


Hi Bogdan,
ok thank you for the answer.
I will implement it this night.
Bye,
Marcello

On Apr 5, 2012, at 6:44 PM, Bogdan-Andrei Iancu wrote:

> Hi Marcello,
> 
> If it is an ACK for 200 OK, it will be an end-2-end ACK driven by Route hdrs , so it will have "loose_route" returning true.
> 
> if it is an ACK for a negative reply, it will be a hop-by-hop ACL with no Route hdrs, so it script (check the default one) will go like loose_route() false -> is ACK -> t_check_tran() true -> t_relay().
> 
> 
> But in your case, you shouldn't really care too much - it an ACK, set a new timeout just before the loose_route() - if it is an 200 OK ACK -> the timeout will be set; if a negative reply ACK, no dialog, no timeout :)
> 
> Regards,
> Bogdan
> 
> On 04/05/2012 07:26 PM, Marcello Lupo wrote:
>> Hi,
>> in which way i can recognize the ACK to a 200 OK and check that there is a valid dialog attached to it to don't change the timeout_avp value for an ACK to a non 200 OK?
>> Thank you
>> Regards
>> Marcello
>> 
>> On Apr 5, 2012, at 12:22 PM, Marcello Lupo wrote:
>> 
>>> Hi,
>>> thank you.
>>> In this way i cannot check the $DLG_status variable correct? I read in the docs that this variable is available only after the loose_route.
>>> Regards
>>> Marcello
>>> 
>>> On Apr 5, 2012, at 10:10 AM, Razvan Crainea wrote:
>>> 
>>>> Hi, Marcello!
>>>> 
>>>> The dialog is matched by the loose_route function. And this is when all the dialog structures are updated. If you are changing anything after the loose_route, the changes won't be visible in the dialog.
>>>> 
>>>> Regards,
>>>> 
>>>> --
>>>> Răzvan Crainea
>>>> OpenSIPS Developer
>>>> http://www.opensips-solutions.com
>>>> 
>>>> 
>>>> On 04/05/2012 11:06 AM, Marcello Lupo wrote:
>>>>> Hi,
>>>>> effectively i was using it after the loose_route().
>>>>> I will try to do it after the loose_route().
>>>>> Why it have to be done in this way? Just for information.
>>>>> Thank you for the answer.
>>>>> Regards
>>>>> Marcello
>>>>> 
>>>>> On Apr 5, 2012, at 9:36 AM, Razvan Crainea wrote:
>>>>> 
>>>>>> Hi, Marcello!
>>>>>> 
>>>>>> The block used to handle the ACK timeout is executed before loose_route or after? It should be before.
>>>>>> 
>>>>>> Regards,
>>>>>> 
>>>>>> --
>>>>>> Răzvan Crainea
>>>>>> OpenSIPS Developer
>>>>>> http://www.opensips-solutions.com
>>>>>> 
>>>>>> 
>>>>>> On 04/04/2012 11:59 PM, Marcello Lupo wrote:
>>>>>>> Hi,
>>>>>>> I'm using opensips 1.6.4 with dialog support.
>>>>>>> I use dialog default timeout to close automatically calls after 3 hours and it works great.
>>>>>>> Sometimes happen that some dialog remain in state 3 (200 OK received but ACK not received) till the default_timeout is reached.
>>>>>>> I was trying to set default_timeout to 120 seconds and change the avp_timeout on the ACK to a greater value so the calls in state 3 will be automatically closed form the system after 120 sec.
>>>>>>> I read around the docs that the timeout can be changed everywhere in the script after the dialog has been created but it is not working for me.
>>>>>>> 
>>>>>>> Every time the system give me:
>>>>>>> 
>>>>>>> DBG:dialog:get_dlg_timeout: invalid AVP value, use default timeout
>>>>>>> 
>>>>>>> and never update the timeout_avp.
>>>>>>> 
>>>>>>> I have in the config:
>>>>>>> 
>>>>>>> modparam("dialog", "default_timeout", 120)
>>>>>>> modparam("dialog", "timeout_avp", "$avp(i:104)")
>>>>>>> modparam("dialog", "bye_on_timeout_flag", 21)
>>>>>>> 
>>>>>>> In routing block when dialog start:
>>>>>>> 
>>>>>>> create_dialog();
>>>>>>> setflag(21);
>>>>>>> 
>>>>>>> 
>>>>>>> In routing block to check ACK:
>>>>>>> 
>>>>>>>        if(method=="ACK"&&    $DLG_status!=NULL) {
>>>>>>>                $avp(i:104)="10800";
>>>>>>>               # $avp(i:104)=10800;
>>>>>>>                setflag(21);
>>>>>>>        }
>>>>>>> 
>>>>>>> I tried to put the avp_timeout value as INT or as STRING but no difference. Looking in the source code seems that default_timeout is INT but timeout_avp expect string value.
>>>>>>> 
>>>>>>> Someone can help?
>>>>>>> Thank you
>>>>>>> Bye
>>>>>>> Marcello
>>>>>>> 
>>>>>>> 
>>>>>>> _______________________________________________
>>>>>>> Users mailing list
>>>>>>> Users at lists.opensips.org
>>>>>>> http://lists.opensips.org/cgi-bin/mailman/listinfo/users
>>>>>> _______________________________________________
>>>>>> Users mailing list
>>>>>> Users at lists.opensips.org
>>>>>> http://lists.opensips.org/cgi-bin/mailman/listinfo/users
>>> 
>>> _______________________________________________
>>> Users mailing list
>>> Users at lists.opensips.org
>>> http://lists.opensips.org/cgi-bin/mailman/listinfo/users
>> 
>> _______________________________________________
>> Users mailing list
>> Users at lists.opensips.org
>> http://lists.opensips.org/cgi-bin/mailman/listinfo/users
> 
> 
> -- 
> Bogdan-Andrei Iancu
> OpenSIPS Founder and Developer
> http://www.opensips-solutions.com
> 




More information about the Users mailing list