[OpenSIPS-Users] tm module CANCEL reason on timeout

Bogdan-Andrei Iancu bogdan at opensips.org
Fri Oct 26 11:16:04 CEST 2012


Hi John,

Somehow I agree with you from (from the logical perspective) - as things 
could be much clear in this area (of the timeout), especially that in 
you already have a logical separation (like internally, from handling, 
from reasons perspective).
But at the end we need to follow what the RFC says, good or bad :) .

Regarding the reason via AVP - please open a feature request on the 
opensips SF tracker, so that we do not forget about it.

Regards,

Bogdan-Andrei Iancu
OpenSIPS Founder and Developer
http://www.opensips-solutions.com


On 10/25/2012 06:34 PM, John Quick wrote:
> Bogdan,
>
> I think your AVP implementation would be very useful. Thanks.
>
> "From SIP reply codes perspective there is no difference between timeout
> with replies and timeout with none" - I dislike this, but that does not mean
> it is wrong!
>
> It seems illogical to me - what is the point of having available a large
> pool of SIP Response codes (some of which are rarely used) and then using
> the same one to show two completely different results. This has caused me
> problems when trying to detect a "failed" downstream server or network path.
> I had to write extra code in my failure_route just to help identify which of
> these two outcomes has happened when status is 408.
>
> Best regards,
>
> John Quick
>
>
> -----Original Message-----
> From: Bogdan-Andrei Iancu [mailto:bogdan at opensips.org]
> Sent: 25 October 2012 14:34
> To: john.quick at smartvox.co.uk
> Cc: 'OpenSIPS users mailling list'
> Subject: Re: [OpenSIPS-Users] tm module CANCEL reason on timeout
>
> Hi John,
>
>   From SIP reply codes perspective there is no difference between timeout
> with replies or timeout without replies - you all the time get the 408 (at
> least this is what I know :) ).
>
> The difference is only in the reason code.
>
> Now about the implementation - if using AVPs, you will have to provide let's
> say the full Reason hdr (name, value, EOH) so you could put actually more
> headers in the AVP (it will be handled like a string to appended to
> headers). If there is no such AVP, we will use the internal default one.
>
> Regards,
>
> Bogdan-Andrei Iancu
> OpenSIPS Founder and Developer
> http://www.opensips-solutions.com
>
>
> On 10/25/2012 03:37 PM, John Quick wrote:
>> Hi Bogdan,
>>
>> It is interesting that RFC3398 recommends mapping ISUP 19 to SIP 480.
>> I think this makes sense and so I agree with your logic. It is good to
>> use two different response values, one for "timeout" (no response) and
>> another for "ring-no-answer" (where a 180 response has been received)
>> because these are two completely different conditions.
>>
>> However, doesn't this mean that there is an inconsistency elsewhere in
>> OpenSIPS?
>> If I understand correctly, the timers in the tm module operate as follows:
>> "timeout" (no response) is linked to fr_timer "ring-no-answer" is
>> linked to fr_inv_timer.
>>
>> Yet, the tm module always generates the same SIP response, 408, for
>> both fr_timer and for fr_inv_timer. Should it not generate 408 for
>> fr_timer and
>> 480 for fr_inv_timer?
>>
>> Regarding your suggestions for controlling the reason phrase within
>> the tm module, I would say that both methods look satisfactory. The
>> AVP is probably the more straightforward for users. However, I have
>> just found the following information in RFC3326:
>> "A SIP message MAY contain more than one Reason value (i.e., multiple
>>      Reason lines), but all of them MUST have different protocol values
>>      (e.g., one SIP and another Q.850)."
>>
>> If it were added to the tm module, would the "reason cause" AVP allow
>> the addition of multiple "Reason" headers?
>>
>> John
>>
>> -----Original Message-----
>> From: Bogdan-Andrei Iancu [mailto:bogdan at opensips.org]
>> Sent: 25 October 2012 12:41
>> To: john.quick at smartvox.co.uk; OpenSIPS users mailling list
>> Subject: Re: [OpenSIPS-Users] tm module CANCEL reason on timeout
>>
>> Hi John,
>>
>> The 480 code is on purpose. See the mapping between Q.850 and SIP for
>> reasons:
>>
>> https://support.net.com/display/VXDOC471/Mapping+Q.850+to+SIP+Responses
>>       or:
>>
>> wiki.freeswitch.org/index.php?title=Special:PdfPrint&page=Hangup_Cause
>> s
>>
>> So, if you have a TIMEOUT with no reply, you should report a 408, but
>> if there is timeout with reply, it should be 480. And as in SIP you
>> generate CANCEL only for timeouts with replies ->   it;s 480.
>>
>> Please correct me if my logic is wrong.
>>
>> On controlling the Reason phrase in Cancel, this is a bit tricky, as
>> CANCELs are internally generated (on timer) and you have no script
>> interaction. I see 2 approaches here:
>>        - make local_route to be trigerred from local CANCELs too, so
>> you can do your own headers
>>        - at INVITE time (per branch) set via an AVP the reason hdr to
>> be used (if not default) in case of CANCELing that branch.
>>
>> Regards,
>>
>> Bogdan-Andrei Iancu
>> OpenSIPS Founder and Developer
>> http://www.opensips-solutions.com
>>
>>
>> On 10/22/2012 04:38 PM, John Quick wrote:
>>> In "modules/tm/timer.c" function "final_response_handler", a #define
>>> is used to set the Reason header in the CANCEL when triggered by the
>> invite timeout.
>>> The default is cause=480;text="NO_ANSWER", but I think it should be
>>> 408 because 408 is timeout and 480 is temporarily unavailable.
>>>
>>> I need to be able to control the Reason header when a timeout is
>>> triggered in tm. When the call is being sent to our SS7 gateway, we
>>> need the reason header to be set as follows:
>>> Reason: Q.850;cause=19;text="No Answer"
>>> When the call is going to a SIP device, I want the header to be like
>>> the current default:
>>> Reason: SIP;cause=408;text="NO_ANSWER"
>>>
>>> Is it permissible to add 2 reason headers or to somehow append
>>> different reasons for different transports to one header?
>>>
>>> Could the developers put this on the roadmap please - to add
>>> functionality to have more control over the reason header in the tm
>>> module
>> on timeout.
>>> Many thanks.
>>>
>>> John Quick
>>> Smartvox Limited
>>>
>>>
>>>
>>>
>>> _______________________________________________
>>> Users mailing list
>>> Users at lists.opensips.org
>>> http://lists.opensips.org/cgi-bin/mailman/listinfo/users
>>>
>



More information about the Users mailing list