[OpenSIPS-Users] dispatcher module + load balancing + round robin

Bogdan-Andrei Iancu bogdan at voice-system.ro
Tue Aug 19 12:55:28 CEST 2008


Hi there,

The dispatch functions accept only one algorithm - 0, callid, will 
anyhow distribute the calls over the all available peers, so no need to 
explicitly set a "round robin" action

Regards,
Bogdan

technocrat voip wrote:
> Do we have any option for the dispatcher function,where i can give 
> more that one startergy ( parameter). Like "0" for hash on callid and 
> "4" for round robin.
>
> thanks
>
>
> On Mon, Aug 18, 2008 at 4:54 PM, Bogdan-Andrei Iancu 
> <bogdan at voice-system.ro <mailto:bogdan at voice-system.ro>> wrote:
>
>     Hi there,
>
>     technocrat voip wrote:
>
>         Thanks for the response.
>
>         I think i got the required action.
>
>         following is the DBG messages
>
>         [....]
>
>
>
>         Few concerns / doubts are.
>
>         1) If i use  the "0" (hash on callid) instead of "4" (round
>         robin) , does this mean that there is no gaurenty that all the
>         messages of one UA will be going to same server.
>
>     hash on callid guarantees that all requests for a dialog will go
>     to the same destination (callid is constant across dialog)
>
>
>         2) If i use the "0" does this also take care of load
>         balancing. In round robin i observed it is like 1:1 forwarding
>         to the servers , what would be in the "0" case ?
>
>     yes, it will do dispatching across all the available destinations
>     from the class.
>
>
>         3) In general what would be the best option to use with the
>         dispatcher in load balancing for the half a million users.
>
>     depends of what you want to balance and if the peers behind are or
>     not identical.
>
>     Regards,
>     Bogdan
>
>
>
>         thanks ..
>
>         On Mon, Aug 18, 2008 at 1:56 PM, Bogdan-Andrei Iancu
>         <bogdan at voice-system.ro <mailto:bogdan at voice-system.ro>
>         <mailto:bogdan at voice-system.ro
>         <mailto:bogdan at voice-system.ro>>> wrote:
>
>            Hi David,
>
>            This should not be an issue - normally you should do
>         dispatching
>            only on
>            the original requests and use record_route/loose_route for the
>            sequential requests (with no dispatching). CANCEL are
>         automatically
>            routed to the same destination as INVITE by TM, so again,
>         you do not
>            need to do dispatching on them.
>
>            Regards
>            Bogdan
>
>            David Villasmil wrote:
>            > Hello,
>            >
>            >      You can't simply do a round-robin on all messages,
>         you must
>            do it
>            > with hash on call id. At least in my experience. That's
>         because
>            if you
>            > send an invite to server 1 and receive a CANCEL and your
>         simply
>            doing
>            > rr it is not guarateed to go to the same server you sent the
>            original
>            > INVITE to.... But if you use hash over call-id you can be
>         sure all
>            > subsequent messages are delivered to the correct server.
>            >
>            >
>            > David
>            >
>            > On Sun, Aug 17, 2008 at 8:12 PM, Bogdan-Andrei Iancu
>            > <bogdan at voice-system.ro <mailto:bogdan at voice-system.ro>
>         <mailto:bogdan at voice-system.ro
>         <mailto:bogdan at voice-system.ro>>> wrote:
>            >
>            >> Hi there,
>            >>
>            >> do you get any error into the logs?
>            >>
>            >> have you tried to use a different algorithm like 0 (hash
>         over the
>            >> callid) - second param, to see if there is any difference?
>            >>
>            >> Regards,
>            >> Bogdan
>            >>
>            >> technocrat voip wrote:
>            >>
>            >>> I am have openser installed and my expectation with the
>         below
>            >>> configuration is open ser will forward the request it
>         gets to the
>            >>> other servers ( dispatch.cfg ) in round robin fashion .
>            >>>
>            >>> I mean first will goto the first serer and second to the
>            second server
>            >>> and third again to first server like that..
>            >>>
>            >>> My configs are like below
>            >>>
>            >>> openser.cfg
>            >>>
>            >>>
>            >>> children=4
>            >>>
>            >>> /* uncomment the following lines to enable debugging */
>            >>> debug=9
>            >>> fork=no
>            >>> log_stderror=yes
>            >>> port=5060
>            >>>
>            >>> /* uncomment and configure the following line if you want
>            openser to
>            >>>    bind on a specific interface/port/proto (default
>         bind on all
>            >>> available) */
>            >>> listen=udp:xxx.xxx.xxx.204:5060
>            >>>
>            >>>
>            >>> ####### Modules Section ########
>            >>>
>            >>> #set module path
>            >>> mpath="/usr/local/lib/openser/modules/"
>            >>>
>            >>> /* uncomment next line for MySQL DB support */
>            >>> #loadmodule "mysql.so"
>            >>> loadmodule "sl.so"
>            >>> loadmodule "tm.so"
>            >>> loadmodule "rr.so"
>            >>> loadmodule "maxfwd.so"
>            >>> loadmodule "usrloc.so"
>            >>> loadmodule "registrar.so"
>            >>> loadmodule "textops.so"
>            >>> loadmodule "mi_fifo.so"
>            >>> loadmodule "uri_db.so"
>            >>> loadmodule "uri.so"
>            >>> loadmodule "xlog.so"
>            >>> loadmodule "acc.so"
>            >>> loadmodule "dispatcher.so"
>            >>> # ----------------- setting module-specific parameters
>            ---------------
>            >>>
>            >>> # ----- mi_fifo params -----
>            >>> modparam("mi_fifo", "fifo_name", "/tmp/openser_fifo")
>            >>>
>            >>> # ----- rr params -----
>            >>> # add value to ;lr param to cope with most of the UAs
>            >>> modparam("rr", "enable_full_lr", 1)
>            >>> # do not append from tag to the RR (no need for this
>         script)
>            >>> modparam("rr", "append_fromtag", 0)
>            >>> # ----- rr params -----
>            >>> modparam("registrar", "method_filtering", 1)
>            >>> # ----- uri_db params -----
>            >>> /* by default we disable the DB support in the module
>         as we do
>            not need it
>            >>>    in this configuration */
>            >>> modparam("uri_db", "use_uri_table", 0)
>            >>> modparam("uri_db", "db_url", "")
>            >>> # ----- usrloc params -----
>            >>> modparam("usrloc", "db_mode",   0)
>            >>> /* uncomment the following lines if you want to enable DB
>            persistency
>            >>>    for location entries */
>            >>> #modparam("usrloc", "db_mode",   2)
>            >>> #modparam("usrloc", "db_url",
>            >>> #    "mysql://openser:openserrw@localhost/openser")
>            >>>
>            >>>
>            >>> # ----- auth_db params -----
>            >>> /* uncomment the following lines if you want to enable
>         the DB
>            based
>            >>>    authentication */
>            >>>
>            >>> #------ dispatcher params -----
>            >>>
>          
>          modparam("dispatcher","list_file","/usr/local/etc/openser/dispatcher.cfg")
>            >>>
>            >>>
>            >>> ####### Routing Logic ########
>            >>>
>            >>>
>            >>> # main request routing logic
>            >>>
>            >>> route{
>            >>>
>            >>>     log(1,"This is the another log message \n");
>            >>>     xlog("L_INFO", "SIP Request: method [$rm] from [$fu] to
>            [$tu]\n");
>            >>>
>            >>>
>            >>>     if (!mf_process_maxfwd_header("10")) {
>            >>>         sl_send_reply("483","Too Many Hops");
>            >>>         exit;
>            >>>     }
>            >>>
>            >>>     ds_select_dst("2","4");
>            >>>
>            >>>     forward();
>            >>> }
>            >>>
>            >>>
>            >>> dispatcher.cfg
>            >>>
>            >>> # $Id: dispatcher.list 3662 2008-02-07 13:06:00Z miconda $
>            >>> # dispatcher destination sets
>            >>> #
>            >>>
>            >>> # line format
>            >>> # setit(integer) destination(sip uri) flags (integer,
>         optional)
>            >>>
>            >>> # proxies
>            >>> 2 sip:xx.xx.xxx.137:5080
>            >>> 2 sip:xxx.xxx.xx.59:5080
>            >>>
>            >>>
>            >>> continously it goes to 59 only it never goes to 137 ..
>            >>>
>            >>> Any help in this would be appreciated.
>            >>>
>            >>>
>            >>>
>            >>>
>            >>> Please
>            >>>
>          
>          ------------------------------------------------------------------------
>            >>>
>            >>> _______________________________________________
>            >>> Users mailing list
>            >>> Users at lists.opensips.org
>         <mailto:Users at lists.opensips.org>
>         <mailto:Users at lists.opensips.org
>         <mailto:Users at lists.opensips.org>>
>
>            >>> http://lists.opensips.org/cgi-bin/mailman/listinfo/users
>            >>>
>            >>>
>            >> _______________________________________________
>            >> Users mailing list
>            >> Users at lists.opensips.org
>         <mailto:Users at lists.opensips.org>
>         <mailto:Users at lists.opensips.org
>         <mailto:Users at lists.opensips.org>>
>
>            >> http://lists.opensips.org/cgi-bin/mailman/listinfo/users
>            >>
>            >>
>            >
>            > _______________________________________________
>            > Users mailing list
>            > Users at lists.opensips.org
>         <mailto:Users at lists.opensips.org>
>         <mailto:Users at lists.opensips.org
>         <mailto:Users at lists.opensips.org>>
>
>            > http://lists.opensips.org/cgi-bin/mailman/listinfo/users
>            >
>            >
>
>
>            _______________________________________________
>            Users mailing list
>            Users at lists.opensips.org <mailto:Users at lists.opensips.org>
>         <mailto:Users at lists.opensips.org
>         <mailto:Users at lists.opensips.org>>
>
>            http://lists.opensips.org/cgi-bin/mailman/listinfo/users
>
>
>
>




More information about the Users mailing list