[OpenSIPS-Users] Request for clarification on tm timers

Bogdan-Andrei Iancu bogdan at voice-system.ro
Wed Mar 10 12:57:28 CET 2010


Hi Mike,

RT_Txx are the retransmission timers (as defined per RFC3261). and you 
can change them via:
       http://www.opensips.org/html/docs/modules/1.6.x/tm.html#id228598

It seams that the delay comes from RADIUS level, when doing RADIUS acc:
   

Mar 10 00:09:25 OpenSIPS /sbin/opensips[13343]: ACC: call missed: timestamp=1268197765;method=INVITE;from_tag=as027c059e;to_tag=3477186414-725808;call_id=1ef525222aa5126677bfec8276a376a2 at myIPaddress;code=503;reason=Service 
Unavailable
Mar 10 00:09:55 OpenSIPS /sbin/opensips[13343]: rc_send_server: no reply from RADIUS server OpenSIPS:1813

Regards,
Bogdan

Flatbush Telecom wrote:
> Thank you for the prompt response, Bogdan.
>
> I enabled "restart_fr_on_each_reply" and found that I would enter failure 
> route a lot faster (immediately in most cases) however, there are occasions 
> when I have to wait 30 seconds for the failure route. Is there a way to set 
> that 30 seconds to something smaller? Is it the RT_T2 timer? How do I 
> specify a shorter period for RT_T2?
>
> I have attached an example of the 30 second delay from when I receive a 
> negative INVITE in the reply route and when the failure route kicks in as it 
> appears in my syslog
>
> Thanks for your help,
>
> Mike Montgomery
>
> Mar 10 00:09:25 OpenSIPS /sbin/opensips[13338]: enter route [13] 
> RequestURI=sip:50375990162 at myIPaddress RequestUser=50375990162 
> Source=myIPaddress Method=INVITE TO sip:50375990162 at myIPaddress 
> FromURI=sip:5672512350 at myIPaddress FromUser=5672512350
> Mar 10 00:09:25 OpenSIPS /sbin/opensips[13338]: PRE Strip requested URI = 
> sip:50375990162 at myIPaddress
> Mar 10 00:09:25 OpenSIPS /sbin/opensips[13338]: INFO:pdt:prefix2domain: no 
> prefix found in [50375990162]
> Mar 10 00:09:25 OpenSIPS /sbin/opensips[13338]: Strip prefix >>>> requested 
> URI = sip:50375990162 at myIPaddress
> Mar 10 00:09:25 OpenSIPS /sbin/opensips[13338]:  Canonical URI = 
> sip:50375990162 at myIPaddress
> Mar 10 00:09:25 OpenSIPS /sbin/opensips[13338]: valid CALLERID <<<<< 
> ............ sip:5672512350 at myIPaddress
> Mar 10 00:09:25 OpenSIPS /sbin/opensips[13338]:  load gateway... flags = 
> <null>
> Mar 10 00:09:25 OpenSIPS /sbin/opensips[13338]:  1. next gateway... flags = 
> 0
> Mar 10 00:09:25 OpenSIPS /sbin/opensips[13339]: enter onreply_route [2] 
> RequestURI=<null> RequestUser=<null> Source=nexthopIPaddress Method=INVITE 
> TO sip:50375990162 at myIPaddress FromURI=sip:5672512350 at myIPaddress 
> FromUser=5672512350
> Mar 10 00:09:25 OpenSIPS /sbin/opensips[13339]:  ----- Reply Route 100 
> Trying = 100, Trying
> Mar 10 00:09:25 OpenSIPS /sbin/opensips[13343]: enter onreply_route [2] 
> RequestURI=<null> RequestUser=<null> Source=nexthopIPaddress Method=INVITE 
> TO sip:50375990162 at myIPaddress FromURI=sip:5672512350 at myIPaddress 
> FromUser=5672512350
> Mar 10 00:09:25 OpenSIPS /sbin/opensips[13343]:  ----- Reply Route  FAILURE 
> status = 503, Service Unavailable
> Mar 10 00:09:25 OpenSIPS /sbin/opensips[13343]: ACC: call missed: 
> timestamp=1268197765;method=INVITE;from_tag=as027c059e;to_tag=3477186414-725808;call_id=1ef525222aa5126677bfec8276a376a2 at myIPaddress;code=503;reason=Service 
> Unavailable
> Mar 10 00:09:55 OpenSIPS /sbin/opensips[13343]: rc_send_server: no reply 
> from RADIUS server OpenSIPS:1813
> Mar 10 00:09:55 OpenSIPS /sbin/opensips[13343]: ERROR:acc:acc_rad_request: 
> radius-ing failed
> Mar 10 00:09:55 OpenSIPS /sbin/opensips[13343]: enter failure_route [2] 
> Source=myIPaddress Method=INVITE TO sip:50375990162 at myIPaddress FROM 
> sip:5672512350 at myIPaddress
> Mar 10 00:09:55 OpenSIPS /sbin/opensips[13343]:  -----
> Mar 10 00:09:55 OpenSIPS /sbin/opensips[13343]:  ----- FAILURE status = 
> <null>
> Mar 10 00:09:55 OpenSIPS /sbin/opensips[13343]:  -----
> Mar 10 00:09:55 OpenSIPS /sbin/opensips[13343]: ACC: call missed: 
> timestamp=1268197795;method=INVITE;from_tag=as027c059e;to_tag=;call_id=1ef525222aa5126677bfec8276a376a2 at myIPaddress;code=503;reason=Service 
> Unavailable
> ----- Original Message ----- 
> From: <users-request at lists.opensips.org>
> To: <users at lists.opensips.org>
> Sent: 03/09/2010 4:00 AM
> Subject: Users Digest, Vol 20, Issue 26
>
>
>   
>> Send Users mailing list submissions to
>> users at lists.opensips.org
>>
>> To subscribe or unsubscribe via the World Wide Web, visit
>> http://lists.opensips.org/cgi-bin/mailman/listinfo/users
>> or, via email, send a message with subject or body 'help' to
>> users-request at lists.opensips.org
>>
>> You can reach the person managing the list at
>> users-owner at lists.opensips.org
>>
>> When replying, please edit your Subject line so it is more specific
>> than "Re: Contents of Users digest..."
>>
>>
>> Today's Topics:
>>
>>   1. [NEW] OpenSIPS Control Panel 4.0 is released (with user
>>      provisioning) (Bogdan-Andrei Iancu)
>>   2. Re: Load Balance for OpenSIPS Proxies (osiris123d)
>>   3. basic over view of flags (Nigel Daniels)
>>   4. Re: Load Balance for OpenSIPS Proxies (Stanis?aw Pitucha)
>>   5. [dialog] Can't fetch data in 200 reply route of BYE (liuf)
>>   6. Re: Load Balance for OpenSIPS Proxies (osiris123d)
>>   7. Re: OpenSER+Asterisk+BLF (Mark Sayer)
>>   8. Re: [NEW] OpenSIPS Control Panel 4.0 is released (with user
>>      provisioning) (TCB)
>>   9. Re: [dialog] Can't fetch data in 200 reply route of BYE
>>      (Bogdan-Andrei Iancu)
>>  10. Re: basic over view of flags (Bogdan-Andrei Iancu)
>>  11. Re: Request for clarification on tm timers (Bogdan-Andrei Iancu)
>>
>>
>> ----------------------------------------------------------------------
>>
>> Message: 1
>> Date: Mon, 08 Mar 2010 21:37:28 +0200
>> From: Bogdan-Andrei Iancu <bogdan at voice-system.ro>
>> Subject: [OpenSIPS-Users] [NEW] OpenSIPS Control Panel 4.0 is released
>> (with user provisioning)
>> To: "users at lists.opensips.org" <users at lists.opensips.org>,
>> "devel at lists.opensips.org" <devel at lists.opensips.org>,
>> news at lists.opensips.org, business at lists.opensips.org
>> Message-ID: <4B9551F8.9040605 at voice-system.ro>
>> Content-Type: text/plain; charset=ISO-8859-1; format=flowed
>>
>> Hi all,
>>
>> A new major release of OpenSIPS Control Panel is available. This new
>> release bring radical changes, as CP is not any more only a system
>> provisioning tool, but a complete OpenSIPS provisioning interface.
>>
>> OpenSIPS CP 4.0 brings users and admin management tools - yes, now you
>> can add, edit, remove OpenSIPS users (see online/offline users) and
>> administrators (with permissions) for the web interface.
>>
>> Also OpenSIPS CP 4.0 comes with more system tools like "dialog" tool
>> (for monitoring and terminating ongoing dialogs) and "permissions tool
>> (for IP based authentication).
>>
>>
>> Downloads are available under http://opensips-cp.sourceforge.net/
>>
>> Regards,
>> Bogdan
>>
>>
>> -- 
>> Bogdan-Andrei Iancu
>> www.voice-system.ro
>>
>>
>>
>>
>> ------------------------------
>>
>> Message: 2
>> Date: Mon, 8 Mar 2010 13:09:51 -0800 (PST)
>> From: osiris123d <duane.larson at gmail.com>
>> Subject: Re: [OpenSIPS-Users] Load Balance for OpenSIPS Proxies
>> To: users at lists.opensips.org
>> Message-ID: <1268082591536-4698310.post at n2.nabble.com>
>> Content-Type: text/plain; charset=us-ascii
>>
>>
>> Just doing some more research and it sounds like the best "open source" 
>> way
>> to accomplish this is to use Ultra Monkey(LVS, Linux-HA, Ldirectord). 
>> Guess
>> I will get this up and running and test it out.  If anyone had any issue
>> using Ultra Monkey or LVS please let me know.  Hopefully this solves my
>> needs.
>> -- 
>> View this message in context: 
>> http://n2.nabble.com/Load-Balance-for-OpenSIPS-Proxies-tp4693532p4698310.html
>> Sent from the OpenSIPS - Users mailing list archive at Nabble.com.
>>
>>
>>
>> ------------------------------
>>
>> Message: 3
>> Date: Mon, 8 Mar 2010 15:41:42 -0800
>> From: Nigel Daniels <nigel.daniels at connectandsell.com>
>> Subject: [OpenSIPS-Users] basic over view of flags
>> To: users at lists.opensips.org
>> Message-ID:
>> <e1b260b91003081541p3f4d693em873ff999e78c32cf at mail.gmail.com>
>> Content-Type: text/plain; charset="iso-8859-1"
>>
>> I am looking for a basic overview of the  flags in opensips I understand
>> that there are tmessage flags branch flags and script flags but what I 
>> cant
>> find in the documentation is what there pourpose is can any one provide a
>> stright forward example to the pourpose of flags in opensips and how they
>> are used
>> -------------- next part --------------
>> An HTML attachment was scrubbed...
>> URL: 
>> http://lists.opensips.org/pipermail/users/attachments/20100308/f4a3eeb4/attachment-0001.htm
>>
>> ------------------------------
>>
>> Message: 4
>> Date: Tue, 09 Mar 2010 01:31:58 +0000
>> From: Stanis?aw Pitucha <viraptor at gmail.com>
>> Subject: Re: [OpenSIPS-Users] Load Balance for OpenSIPS Proxies
>> To: users at lists.opensips.org
>> Message-ID: <4B95A50E.9060009 at gmail.com>
>> Content-Type: text/plain; charset=UTF-8
>>
>> On 08.03.2010 05:05, osiris123d wrote:
>>     
>>> Have two servers using Linux Heartbeat and have OpenSIPS Load Balancer
>>> running on it.  The load balancer will balance between two OpenSIPS proxy
>>> servers.  This way I have 100% redundancy.
>>>       
>> Complicated.
>> Why not simply 2 proxies running with Heartbeat / Carp / vrrp /
>> whatever? If one fails, you get the ip address on the other host and
>> work as normal.
>>
>>
>>
>> ------------------------------
>>
>> Message: 5
>> Date: Mon, 8 Mar 2010 18:25:08 -0800 (PST)
>> From: liuf <liuf at ffcs.cn>
>> Subject: [OpenSIPS-Users] [dialog] Can't fetch data in 200 reply route
>> of BYE
>> To: users at lists.opensips.org
>> Message-ID: <1268101508759-4699883.post at n2.nabble.com>
>> Content-Type: text/plain; charset=us-ascii
>>
>>
>> When I used fetch_dlg_value to get data in 200 reply route of BYE, it 
>> always
>> empty.
>>
>> I read some source about dialog module, I had discovered some possible
>> mistakes in function dlg_onreq() (file dlg_handles.c)(svn rev
>> 6658)(2010-03-08)
>>
>> When opensips receive 'BYE', current_dlg_pointer must be not null, and
>> current_dlg_pointer had been initiated, so this function will be return
>> before 't->dialog_ctx = (void*)current_dlg_pointer;' be exec. So in 200
>> reply of BYE, can't get dialog pointer.
>>
>> I'm not sure this problem really exits? Would you please confirm it?
>>
>> function dlg_onreq() (svn rev 6658 2010-03-08)
>> ==============================================
>> void dlg_onreq(struct cell* t, int type, struct tmcb_params *param)
>> {
>> /* is the dialog already created? */
>> if (current_dlg_pointer!=NULL) {
>> /* new, un-initialized dialog ? */
>> if ( current_dlg_pointer->flags & DLG_FLAG_ISINIT )
>> return;
>>
>> /* dialog was previously created by create_dialog()
>>    -> just do the last settings */
>> run_create_callbacks( current_dlg_pointer, param->req);
>>
>> current_dlg_pointer->lifetime = get_dlg_timeout(param->req);
>>
>> if (param->req->flags&bye_on_timeout_flag)
>> current_dlg_pointer->flags |= DLG_FLAG_BYEONTIMEOUT;
>>
>> t->dialog_ctx = (void*)current_dlg_pointer;
>>
>> /* dialog is fully initialized */
>> current_dlg_pointer->flags |= DLG_FLAG_ISINIT;
>> } else {
>> ......
>> ========================================================
>> -- 
>> View this message in context: 
>> http://n2.nabble.com/dialog-Can-t-fetch-data-in-200-reply-route-of-BYE-tp4699883p4699883.html
>> Sent from the OpenSIPS - Users mailing list archive at Nabble.com.
>>
>>
>>
>> ------------------------------
>>
>> Message: 6
>> Date: Mon, 8 Mar 2010 20:49:57 -0800 (PST)
>> From: osiris123d <duane.larson at gmail.com>
>> Subject: Re: [OpenSIPS-Users] Load Balance for OpenSIPS Proxies
>> To: users at lists.opensips.org
>> Message-ID: <1268110197013-4700306.post at n2.nabble.com>
>> Content-Type: text/plain; charset=us-ascii
>>
>>
>> That would work if all I ever needed was one proxy to handle everything.
>> Heartbeat/Carp/VRRP doesn't scale well if the one box is being overloaded.
>> Active/Active is better than Active/Standby.  And from the sounds of
>> UltraMonkey you can keep adding more servers.
>> -- 
>> View this message in context: 
>> http://n2.nabble.com/Load-Balance-for-OpenSIPS-Proxies-tp4693532p4700306.html
>> Sent from the OpenSIPS - Users mailing list archive at Nabble.com.
>>
>>
>>
>> ------------------------------
>>
>> Message: 7
>> Date: Tue, 09 Mar 2010 17:56:52 +1300
>> From: Mark Sayer <datapipes at avtb.co.nz>
>> Subject: Re: [OpenSIPS-Users] OpenSER+Asterisk+BLF
>> To: OpenSIPS users mailling list <users at lists.opensips.org>
>> Message-ID: <20100309050035.485F524CC2E at mail.unleash.net.nz>
>> Content-Type: text/plain; charset="us-ascii"; format=flowed
>>
>> All right I'm convinced and have started the migration from OpenSER
>> 1.2 to OpenSIPS 1.6. Can anyone point me to list of database changes
>> between these two? I've gotten 1.6 to run right out of the can which
>> is nice and the config file differences don't look too bad. VMA - I
>> might get back to you with any problems as you've done this recently.
>>
>> Mark
>>
>> At 02:28 a.m. 09/03/2010, you wrote:
>>     
>>> Hi Mark,
>>>
>>> On Sunday7Mar, 2010, at 1:21 AM, Mark Sayer wrote:
>>>
>>>       
>>>> We are needing to modify the configure of a currently operating
>>>> OpenSER to properly relay the SUBSCRIBE and SIP-NOTIFY messages that
>>>> are sent between Asterisk and a phone that supports BLF (like the
>>>> Snom 300 or Yealink T26). Our setup includes an OpenSER 1.2 &
>>>> Asterisk 1.4.17 in the same box. OpenSER performs all registration,
>>>> authentication and NAT. Asterisk handles the media and the accounting.
>>>>         
>>> I am facing the exact same issue on my platform. The only solution I
>>> have found is to upgrade to opensips 1.6 and implement the presence on
>>> the proxy. AFAIK asterisk can't handle presence for devices not
>>> directly registered to it.
>>>
>>> BTW, the config migration from 1.2 to 1.6 was less complicated than I
>>> feared...
>>>
>>> Regards,
>>> - vma
>>> .
>>>
>>>
>>>
>>> _______________________________________________
>>> Users mailing list
>>> Users at lists.opensips.org
>>> http://lists.opensips.org/cgi-bin/mailman/listinfo/users
>>>       
>>
>>
>> ------------------------------
>>
>> Message: 8
>> Date: Tue, 9 Mar 2010 07:19:17 +0200
>> From: TCB <tawandac at gmail.com>
>> Subject: Re: [OpenSIPS-Users] [NEW] OpenSIPS Control Panel 4.0 is
>> released (with user provisioning)
>> To: OpenSIPS users mailling list <users at lists.opensips.org>
>> Message-ID:
>> <f9db9e001003082119g2b83b4c1sdbf2dc5b692bf90c at mail.gmail.com>
>> Content-Type: text/plain; charset="iso-8859-1"
>>
>> Looking good. Well done.
>>
>> On Mon, Mar 8, 2010 at 9:37 PM, Bogdan-Andrei Iancu
>> <bogdan at voice-system.ro>wrote:
>>
>>     
>>> Hi all,
>>>
>>> A new major release of OpenSIPS Control Panel is available. This new
>>> release bring radical changes, as CP is not any more only a system
>>> provisioning tool, but a complete OpenSIPS provisioning interface.
>>>
>>> OpenSIPS CP 4.0 brings users and admin management tools - yes, now you
>>> can add, edit, remove OpenSIPS users (see online/offline users) and
>>> administrators (with permissions) for the web interface.
>>>
>>> Also OpenSIPS CP 4.0 comes with more system tools like "dialog" tool
>>> (for monitoring and terminating ongoing dialogs) and "permissions tool
>>> (for IP based authentication).
>>>
>>>
>>> Downloads are available under http://opensips-cp.sourceforge.net/
>>>
>>> Regards,
>>> Bogdan
>>>
>>>
>>> --
>>> Bogdan-Andrei Iancu
>>> www.voice-system.ro
>>>
>>>
>>> _______________________________________________
>>> Users mailing list
>>> Users at lists.opensips.org
>>> http://lists.opensips.org/cgi-bin/mailman/listinfo/users
>>>
>>>       
>>
>> -- 
>> TC
>> -------------- next part --------------
>> An HTML attachment was scrubbed...
>> URL: 
>> http://lists.opensips.org/pipermail/users/attachments/20100309/8e4c1c77/attachment-0001.htm
>>
>> ------------------------------
>>
>> Message: 9
>> Date: Tue, 09 Mar 2010 10:36:49 +0200
>> From: Bogdan-Andrei Iancu <bogdan at voice-system.ro>
>> Subject: Re: [OpenSIPS-Users] [dialog] Can't fetch data in 200 reply
>> route of BYE
>> To: OpenSIPS users mailling list <users at lists.opensips.org>
>> Message-ID: <4B9608A1.5040504 at voice-system.ro>
>> Content-Type: text/plain; charset=ISO-8859-1; format=flowed
>>
>> Hi Liuf,
>>
>> dlg_onreq() function is intended to be called/used only for initial
>> requests (for the INVITEs creating a dialog).
>>
>> So, this function is not intended to be used for BYE request - the BYE
>> is handled via the dlg_onroute() function which is used for all
>> sequential requests.
>>
>> If you find any issues is some parts of the code, please let me know and
>> I will take care.
>>
>> Regards,
>> Bogdan
>>
>> liuf wrote:
>>     
>>> When I used fetch_dlg_value to get data in 200 reply route of BYE, it 
>>> always
>>> empty.
>>>
>>> I read some source about dialog module, I had discovered some possible
>>> mistakes in function dlg_onreq() (file dlg_handles.c)(svn rev
>>> 6658)(2010-03-08)
>>>
>>> When opensips receive 'BYE', current_dlg_pointer must be not null, and
>>> current_dlg_pointer had been initiated, so this function will be return
>>> before 't->dialog_ctx = (void*)current_dlg_pointer;' be exec. So in 200
>>> reply of BYE, can't get dialog pointer.
>>>
>>> I'm not sure this problem really exits? Would you please confirm it?
>>>
>>> function dlg_onreq() (svn rev 6658 2010-03-08)
>>> ==============================================
>>> void dlg_onreq(struct cell* t, int type, struct tmcb_params *param)
>>> {
>>> /* is the dialog already created? */
>>> if (current_dlg_pointer!=NULL) {
>>> /* new, un-initialized dialog ? */
>>> if ( current_dlg_pointer->flags & DLG_FLAG_ISINIT )
>>> return;
>>>
>>> /* dialog was previously created by create_dialog()
>>>    -> just do the last settings */
>>> run_create_callbacks( current_dlg_pointer, param->req);
>>>
>>> current_dlg_pointer->lifetime = get_dlg_timeout(param->req);
>>>
>>> if (param->req->flags&bye_on_timeout_flag)
>>> current_dlg_pointer->flags |= DLG_FLAG_BYEONTIMEOUT;
>>>
>>> t->dialog_ctx = (void*)current_dlg_pointer;
>>>
>>> /* dialog is fully initialized */
>>> current_dlg_pointer->flags |= DLG_FLAG_ISINIT;
>>> } else {
>>>  ......
>>> ========================================================
>>>
>>>       
>> -- 
>> Bogdan-Andrei Iancu
>> www.voice-system.ro
>>
>>
>>
>>
>> ------------------------------
>>
>> Message: 10
>> Date: Tue, 09 Mar 2010 10:40:44 +0200
>> From: Bogdan-Andrei Iancu <bogdan at voice-system.ro>
>> Subject: Re: [OpenSIPS-Users] basic over view of flags
>> To: OpenSIPS users mailling list <users at lists.opensips.org>
>> Message-ID: <4B96098C.1010600 at voice-system.ro>
>> Content-Type: text/plain; charset=ISO-8859-1; format=flowed
>>
>> Hi Nigel,
>>
>> Have you went through the flags docs
>> (http://www.opensips.org/Resources/DocsCoreFlags16)  ? There you have a
>> good explanation on the flag types and behaviours.
>>
>> For what to use them, there are 2 cases:
>>    1) to signal some actions to some modules (like via flags you
>> trigger the accounting in acc module)
>>    2) for whatever scripting purposes you need - like to remember if
>> the requests came from a GW, to mark a state for later processing in
>> failure route, to mark a message as coming from behind a nat, etc...
>>
>> Regards,
>> Bogdan
>>
>> Nigel Daniels wrote:
>>     
>>> I am looking for a basic overview of the  flags in opensips I
>>> understand that there are tmessage flags branch flags and script flags
>>> but what I cant find in the documentation is what there pourpose is
>>> can any one provide a stright forward example to the pourpose of flags
>>> in opensips and how they are used
>>> ------------------------------------------------------------------------
>>>
>>> _______________________________________________
>>> Users mailing list
>>> Users at lists.opensips.org
>>> http://lists.opensips.org/cgi-bin/mailman/listinfo/users
>>>
>>>       
>> -- 
>> Bogdan-Andrei Iancu
>> www.voice-system.ro
>>
>>
>>
>>
>> ------------------------------
>>
>> Message: 11
>> Date: Tue, 09 Mar 2010 11:00:05 +0200
>> From: Bogdan-Andrei Iancu <bogdan at voice-system.ro>
>> Subject: Re: [OpenSIPS-Users] Request for clarification on tm timers
>> To: OpenSIPS users mailling list <users at lists.opensips.org>
>> Message-ID: <4B960E15.902 at voice-system.ro>
>> Content-Type: text/plain; charset=ISO-8859-1; format=flowed
>>
>> Hi,
>>
>> First of all, if you want to dynamically change the final response
>> timeout (fr_timeout), you need to have the "restart_fr_on_each_reply"
>> enabled .See :
>>       http://www.opensips.org/html/docs/modules/1.6.x/tm.html#id270372
>>
>> Regards,
>> Bodgan
>>
>> Flatbush Telecom wrote:
>>     
>>> I have a question regarding the final response and how to accelerate
>>> failover.
>>>
>>> I have studied the documentation and have watched the discussions
>>> regarding fr_timer and fr_inv_timer. I do not think I understand the
>>> fine points of tm and would appreciated your assistance.
>>>
>>> My question is how do I accelerate the final response back to UAC?
>>> Right now it takes up to 30 seconds from when I know I have received a
>>> negative response to INVITE until my failure_route gets executed. If I
>>> do not call failure_route, it still takes up to 30 seconds
>>>
>>> Right now when UAC sends an INVITE, fr_timer has a default value of 3.
>>> In my onreply_route, fr_inv_timer gets set to 30 when I receive
>>> provisional response 100. If there is further progress to a
>>> provisional response >= 180, fr_inv_timer gets set to 90. If I receive
>>> a negative response, I call failure _route from my onreply_route.
>>>
>>> At that point, I know I have received a negative acknowledge but will
>>> not signal UAC for another 30 seconds that the call failed.
>>>
>>> I have attached appropriate pieces of my config your your review.
>>> Thank you very much for any help you can provide.
>>>
>>> Mike Montgomery
>>>
>>> # ------------lcr params (to get to functionality) ------------
>>> modparam("lcr", "contact_avp", "$avp(i:711)")
>>> modparam("lcr|tm", "fr_inv_timer_avp", "$avp(i:704)")
>>> modparam("lcr", "gw_uri_avp", "$avp(i:709)")
>>> modparam("^auth$|lcr", "rpid_avp", "$avp(i:302)")
>>> modparam("lcr", "ruri_user_avp", "$avp(i:500)")
>>> modparam("lcr", "flags_avp", "$avp(i:712)")
>>>        /* Turning on the regex mode for prefix */
>>> #modparam("lcr", "prefix_mode", 1)
>>> modparam("lcr","fr_inv_timer_next",10)
>>> modparam("lcr|tm","fr_inv_timer",10)
>>> modparam("tm", "fr_timer", 3)
>>> modparam("tm", "onreply_avp_mode", 1)
>>> modparam("tm", "fr_timer_avp", "$avp(i:24)")
>>> modparam("tm", "pass_provisional_replies", 1)
>>> avp_aliases="fr_timer=i:24"
>>> avp_aliases="fr_inv_timer=i:704"
>>> modparam("tm", "restart_fr_on_each_reply", 0)
>>>
>>> route[13] {
>>> xlog("L_INFO","enter route [13] RequestURI=$ru RequestUser=$rU
>>> Source=$si Method=$rm TO $tu FromURI=$fu FromUser=$fU \n");
>>>     #From an external domain outbound
>>>         if(allow_trusted()) {
>>>
>>>                 xlog("L_INFO","PRE Strip requested URI = $ru \n");
>>>
>>>             prefix2domain("0", "2");
>>>
>>>                 xlog("L_INFO","Strip prefix >>>> requested URI = $ru 
>>> \n");
>>>
>>>             $avp(s:can_uri) = $ru;
>>>
>>>                 xlog("L_INFO"," Canonical URI = $avp(s:can_uri) \n");
>>>
>>>             revert_uri();
>>>
>>> # if no caller ID add dummy callerID
>>>
>>>             if ($fU!~"^[0-9]*") {
>>>                 uac_replace_from("sip:14436230000@$si");
>>>                 xlog("L_INFO","NO CALLERID inserted>>>>> ............
>>> $fu  \n");
>>>             } else {
>>>                 xlog("L_INFO","valid CALLERID <<<<< ............ $fu
>>> \n");
>>>             }
>>>
>>>             if (!load_gws()) {
>>>                 xlog("L_INFO"," load_gws() FAILED >>> gw_uri_avp =
>>> $avp(i:709) \n");
>>>                 sl_send_reply("503", "Unable to load gateways");
>>>                 exit;
>>>             }
>>>
>>>                xlog("L_INFO"," load gateway... flags = $avp(i:712) \n");
>>>
>>>             if(!next_gw()){
>>>                 xlog("L_INFO"," next_gw() FAILED >>> ruri_user_avp =
>>> $avp(i:500) \n");
>>>                 sl_send_reply("503", "Unable to find a gateway");
>>>                 exit;
>>>             }
>>>                 xlog("L_INFO"," 1. next gateway... flags = $avp(i:712)
>>> \n");
>>>
>>> # set provisional response timer
>>>             $avp(fr_timer)=3;
>>>
>>>             t_on_reply("2");
>>>
>>>             if (!t_relay()) {
>>>                 sl_reply_error();
>>>             };
>>>             exit;
>>>
>>>         } else {
>>>                 sl_send_reply("403", "Forbidden r13");
>>>                 exit;
>>>         };
>>> }
>>> onreply_route[2] {
>>>         xlog("L_INFO","enter onreply_route [2] RequestURI=$ru
>>> RequestUser=$rU Source=$si Method=$rm TO $tu FromURI=$fu FromUser=$fU
>>> \n");
>>>
>>>         if(status=~"100"){
>>>            $avp(fr_inv_timer) = 35;
>>>            xlog("L_INFO"," ----- Reply Route 100 Trying = $rs, $rr \n");
>>>         };
>>>
>>>         if(status=~"18[0-3]"){
>>>            $avp(fr_inv_timer) = 100;
>>>            xlog("L_INFO"," ----- Reply Route $rs $rr \n");
>>>         };
>>>
>>>         if(status=~"[3-6][0-9][0-9]"){
>>>            xlog("L_INFO"," ----- Reply Route  FAILURE status = $rs,
>>> $rr \n");
>>>           t_on_failure("2");
>>>         };
>>>     exit;
>>>         }
>>>
>>> failure_route[2] {
>>> xlog("L_INFO","enter failure_route [2] Source=$si Method=$rm TO $tu
>>> FROM $fu \n");
>>> xlog("L_INFO"," ----- \n");
>>> xlog("L_INFO"," ----- FAILURE status = $rs \n");
>>> xlog("L_INFO"," ----- \n");
>>>
>>>     ##--
>>>     ##-- If cancelled, exit.
>>>     ##--
>>>     if (t_was_cancelled()) {
>>>         exit;
>>>     };
>>>
>>>      if (!use_next_gw()) {
>>>          t_reply("503", "No gateways available");
>>>           xlog("L_INFO"," failure route NO MORE GATEWAYS 503 back to
>>> caller \n");
>>>          exit;
>>>          };
>>>
>>>         xlog("L_INFO"," failure route next gateway... dr_ruri=
>>> $avp(dr_ruri) ... dr_attrs = $avp(dr_attrs) destination = $dd \n");
>>>
>>>         # Set accounting flags again Account INVITE packets
>>>         setflag(5);
>>>         # Set accounting flags again Account Missed calls
>>>         setflag(8);
>>>
>>>     t_on_reply("2");
>>>
>>>     t_relay();
>>>
>>>     exit;
>>> }
>>>
>>>
>>> ------------------------------------------------------------------------
>>>
>>> _______________________________________________
>>> Users mailing list
>>> Users at lists.opensips.org
>>> http://lists.opensips.org/cgi-bin/mailman/listinfo/users
>>>
>>>       
>> -- 
>> Bogdan-Andrei Iancu
>> www.voice-system.ro
>>
>>
>>
>>
>> ------------------------------
>>
>> _______________________________________________
>> Users mailing list
>> Users at lists.opensips.org
>> http://lists.opensips.org/cgi-bin/mailman/listinfo/users
>>
>>
>> End of Users Digest, Vol 20, Issue 26
>> *************************************
>>
>>     
>
>
>
> _______________________________________________
> Users mailing list
> Users at lists.opensips.org
> http://lists.opensips.org/cgi-bin/mailman/listinfo/users
>
>   


-- 
Bogdan-Andrei Iancu
www.voice-system.ro




More information about the Users mailing list