Request for clarification on tm timers

classic Classic list List threaded Threaded
4 messages Options
Reply | Threaded
Open this post in threaded view
|

Request for clarification on tm timers

Flatbush Telecom
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
[hidden email]
http://lists.opensips.org/cgi-bin/mailman/listinfo/users
Reply | Threaded
Open this post in threaded view
|

Re: Request for clarification on tm timers

Bogdan-Andrei Iancu
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
> [hidden email]
> http://lists.opensips.org/cgi-bin/mailman/listinfo/users
>  


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


_______________________________________________
Users mailing list
[hidden email]
http://lists.opensips.org/cgi-bin/mailman/listinfo/users
Reply | Threaded
Open this post in threaded view
|

Re: Request for clarification on tm timers

Flatbush Telecom
In reply to this post by Flatbush Telecom
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@myIPaddress RequestUser=50375990162
Source=myIPaddress Method=INVITE TO sip:50375990162@myIPaddress
FromURI=sip:5672512350@myIPaddress FromUser=5672512350
Mar 10 00:09:25 OpenSIPS /sbin/opensips[13338]: PRE Strip requested URI =
sip:50375990162@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@myIPaddress
Mar 10 00:09:25 OpenSIPS /sbin/opensips[13338]:  Canonical URI =
sip:50375990162@myIPaddress
Mar 10 00:09:25 OpenSIPS /sbin/opensips[13338]: valid CALLERID <<<<<
............ sip:5672512350@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@myIPaddress FromURI=sip:5672512350@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@myIPaddress FromURI=sip:5672512350@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@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@myIPaddress FROM
sip:5672512350@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@myIPaddress;code=503;reason=Service
Unavailable
----- Original Message -----
From: <[hidden email]>
To: <[hidden email]>
Sent: 03/09/2010 4:00 AM
Subject: Users Digest, Vol 20, Issue 26


> Send Users mailing list submissions to
> [hidden email]
>
> 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
> [hidden email]
>
> You can reach the person managing the list at
> [hidden email]
>
> 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 <[hidden email]>
> Subject: [OpenSIPS-Users] [NEW] OpenSIPS Control Panel 4.0 is released
> (with user provisioning)
> To: "[hidden email]" <[hidden email]>,
> "[hidden email]" <[hidden email]>,
> [hidden email], [hidden email]
> Message-ID: <[hidden email]>
> 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 <[hidden email]>
> Subject: Re: [OpenSIPS-Users] Load Balance for OpenSIPS Proxies
> To: [hidden email]
> Message-ID: <[hidden email]>
> 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 <[hidden email]>
> Subject: [OpenSIPS-Users] basic over view of flags
> To: [hidden email]
> Message-ID:
> <[hidden email]>
> 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 <[hidden email]>
> Subject: Re: [OpenSIPS-Users] Load Balance for OpenSIPS Proxies
> To: [hidden email]
> Message-ID: <[hidden email]>
> 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 <[hidden email]>
> Subject: [OpenSIPS-Users] [dialog] Can't fetch data in 200 reply route
> of BYE
> To: [hidden email]
> Message-ID: <[hidden email]>
> 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 <[hidden email]>
> Subject: Re: [OpenSIPS-Users] Load Balance for OpenSIPS Proxies
> To: [hidden email]
> Message-ID: <[hidden email]>
> 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 <[hidden email]>
> Subject: Re: [OpenSIPS-Users] OpenSER+Asterisk+BLF
> To: OpenSIPS users mailling list <[hidden email]>
> Message-ID: <[hidden email]>
> 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
>>[hidden email]
>>http://lists.opensips.org/cgi-bin/mailman/listinfo/users
>
>
>
>
> ------------------------------
>
> Message: 8
> Date: Tue, 9 Mar 2010 07:19:17 +0200
> From: TCB <[hidden email]>
> Subject: Re: [OpenSIPS-Users] [NEW] OpenSIPS Control Panel 4.0 is
> released (with user provisioning)
> To: OpenSIPS users mailling list <[hidden email]>
> Message-ID:
> <[hidden email]>
> Content-Type: text/plain; charset="iso-8859-1"
>
> Looking good. Well done.
>
> On Mon, Mar 8, 2010 at 9:37 PM, Bogdan-Andrei Iancu
> <[hidden email]>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
>> [hidden email]
>> 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 <[hidden email]>
> Subject: Re: [OpenSIPS-Users] [dialog] Can't fetch data in 200 reply
> route of BYE
> To: OpenSIPS users mailling list <[hidden email]>
> Message-ID: <[hidden email]>
> 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 <[hidden email]>
> Subject: Re: [OpenSIPS-Users] basic over view of flags
> To: OpenSIPS users mailling list <[hidden email]>
> Message-ID: <[hidden email]>
> 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
>> [hidden email]
>> 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 <[hidden email]>
> Subject: Re: [OpenSIPS-Users] Request for clarification on tm timers
> To: OpenSIPS users mailling list <[hidden email]>
> Message-ID: <[hidden email]>
> 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
>> [hidden email]
>> http://lists.opensips.org/cgi-bin/mailman/listinfo/users
>>
>
>
> --
> Bogdan-Andrei Iancu
> www.voice-system.ro
>
>
>
>
> ------------------------------
>
> _______________________________________________
> Users mailing list
> [hidden email]
> http://lists.opensips.org/cgi-bin/mailman/listinfo/users
>
>
> End of Users Digest, Vol 20, Issue 26
> *************************************
>



_______________________________________________
Users mailing list
[hidden email]
http://lists.opensips.org/cgi-bin/mailman/listinfo/users
Reply | Threaded
Open this post in threaded view
|

Re: Request for clarification on tm timers

Bogdan-Andrei Iancu
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@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@myIPaddress RequestUser=50375990162
> Source=myIPaddress Method=INVITE TO sip:50375990162@myIPaddress
> FromURI=sip:5672512350@myIPaddress FromUser=5672512350
> Mar 10 00:09:25 OpenSIPS /sbin/opensips[13338]: PRE Strip requested URI =
> sip:50375990162@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@myIPaddress
> Mar 10 00:09:25 OpenSIPS /sbin/opensips[13338]:  Canonical URI =
> sip:50375990162@myIPaddress
> Mar 10 00:09:25 OpenSIPS /sbin/opensips[13338]: valid CALLERID <<<<<
> ............ sip:5672512350@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@myIPaddress FromURI=sip:5672512350@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@myIPaddress FromURI=sip:5672512350@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@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@myIPaddress FROM
> sip:5672512350@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@myIPaddress;code=503;reason=Service
> Unavailable
> ----- Original Message -----
> From: <[hidden email]>
> To: <[hidden email]>
> Sent: 03/09/2010 4:00 AM
> Subject: Users Digest, Vol 20, Issue 26
>
>
>  
>> Send Users mailing list submissions to
>> [hidden email]
>>
>> 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
>> [hidden email]
>>
>> You can reach the person managing the list at
>> [hidden email]
>>
>> 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 <[hidden email]>
>> Subject: [OpenSIPS-Users] [NEW] OpenSIPS Control Panel 4.0 is released
>> (with user provisioning)
>> To: "[hidden email]" <[hidden email]>,
>> "[hidden email]" <[hidden email]>,
>> [hidden email], [hidden email]
>> Message-ID: <[hidden email]>
>> 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 <[hidden email]>
>> Subject: Re: [OpenSIPS-Users] Load Balance for OpenSIPS Proxies
>> To: [hidden email]
>> Message-ID: <[hidden email]>
>> 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 <[hidden email]>
>> Subject: [OpenSIPS-Users] basic over view of flags
>> To: [hidden email]
>> Message-ID:
>> <[hidden email]>
>> 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 <[hidden email]>
>> Subject: Re: [OpenSIPS-Users] Load Balance for OpenSIPS Proxies
>> To: [hidden email]
>> Message-ID: <[hidden email]>
>> 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 <[hidden email]>
>> Subject: [OpenSIPS-Users] [dialog] Can't fetch data in 200 reply route
>> of BYE
>> To: [hidden email]
>> Message-ID: <[hidden email]>
>> 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 <[hidden email]>
>> Subject: Re: [OpenSIPS-Users] Load Balance for OpenSIPS Proxies
>> To: [hidden email]
>> Message-ID: <[hidden email]>
>> 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 <[hidden email]>
>> Subject: Re: [OpenSIPS-Users] OpenSER+Asterisk+BLF
>> To: OpenSIPS users mailling list <[hidden email]>
>> Message-ID: <[hidden email]>
>> 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
>>> [hidden email]
>>> http://lists.opensips.org/cgi-bin/mailman/listinfo/users
>>>      
>>
>>
>> ------------------------------
>>
>> Message: 8
>> Date: Tue, 9 Mar 2010 07:19:17 +0200
>> From: TCB <[hidden email]>
>> Subject: Re: [OpenSIPS-Users] [NEW] OpenSIPS Control Panel 4.0 is
>> released (with user provisioning)
>> To: OpenSIPS users mailling list <[hidden email]>
>> Message-ID:
>> <[hidden email]>
>> Content-Type: text/plain; charset="iso-8859-1"
>>
>> Looking good. Well done.
>>
>> On Mon, Mar 8, 2010 at 9:37 PM, Bogdan-Andrei Iancu
>> <[hidden email]>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
>>> [hidden email]
>>> 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 <[hidden email]>
>> Subject: Re: [OpenSIPS-Users] [dialog] Can't fetch data in 200 reply
>> route of BYE
>> To: OpenSIPS users mailling list <[hidden email]>
>> Message-ID: <[hidden email]>
>> 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 <[hidden email]>
>> Subject: Re: [OpenSIPS-Users] basic over view of flags
>> To: OpenSIPS users mailling list <[hidden email]>
>> Message-ID: <[hidden email]>
>> 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
>>> [hidden email]
>>> 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 <[hidden email]>
>> Subject: Re: [OpenSIPS-Users] Request for clarification on tm timers
>> To: OpenSIPS users mailling list <[hidden email]>
>> Message-ID: <[hidden email]>
>> 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
>>> [hidden email]
>>> http://lists.opensips.org/cgi-bin/mailman/listinfo/users
>>>
>>>      
>> --
>> Bogdan-Andrei Iancu
>> www.voice-system.ro
>>
>>
>>
>>
>> ------------------------------
>>
>> _______________________________________________
>> Users mailing list
>> [hidden email]
>> http://lists.opensips.org/cgi-bin/mailman/listinfo/users
>>
>>
>> End of Users Digest, Vol 20, Issue 26
>> *************************************
>>
>>    
>
>
>
> _______________________________________________
> Users mailing list
> [hidden email]
> http://lists.opensips.org/cgi-bin/mailman/listinfo/users
>
>  


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


_______________________________________________
Users mailing list
[hidden email]
http://lists.opensips.org/cgi-bin/mailman/listinfo/users