Hi All

 

As per previous Q “mentioned below” I did try using t_replicate however once the client A logons on to server A it just keeps sending subscribe requests to server B

 

Hi All

I have the following scenario
Openser Server A --> Uses Localhost MySQL Server
Openser Server B --> Uses ServerA MySQL server

Each server is in a different location.  Both servers share the same database. I.e. in other words a user can successfully logon to either server. Both servers have a similar configuration file. My problem at hand is the following

User A and User C logon to Server A
User  B logs on to Server B

User A and User C can call each other.

How can User A and C communicate with user B ?

Can anyone provide me with a working example.

 

 

My Config

 

####### 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 "auth.so"
loadmodule "auth_db.so"
 
# ----- 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)
/* uncomment the next line to disable parallel forking via location */
# modparam("registrar", "append_branches", 0)
/* uncomment the next line not to allow more than 10 contacts per AOR */
#modparam("registrar", "max_contacts", 10)
 
 
# ----- uri_db params -----
modparam("uri_db", "use_uri_table", 0)
modparam("uri_db", "db_url", "mysql://db_string")
 
# ----- usrloc params -----
modparam("usrloc", "db_mode",   3)
modparam("usrloc", "db_url","mysql://db_string")
 
# ----- auth_db params -----
modparam("auth_db", "calculate_ha1", yes)
modparam("auth_db", "password_column", "password")
modparam("auth_db", "use_domain", 0)
modparam("auth_db", "db_url","mysql://db_string")
 
 
 
modparam("usrloc", "db_url","mysql://db_string")
 
# ----------------- setting module-specific parameters ---------------
 
# -- mi_fifo params --
 
modparam("mi_fifo", "fifo_name", "/tmp/openser_fifo_xmpp")
 
# -- usrloc params --
 
# -- rr params --
# add value to ;lr param to make some broken UAs happy
modparam("rr", "enable_full_lr", 1)
 
###### Routing Logic ########
 
 
route
{
        if(!mf_process_maxfwd_header("10")){
                sl_send_reply("486", "To Many Hops");
                return;
        }
 
        if(msg:len >= max_len){
                sl_send_reply("513", "Message To Big");
                return;
        }
 
       
       
        #########End of XMPP Section ###################
       
       
        if(!is_method("REGISTER")){
                record_route();
        }
 
        if(loose_route()){
                route(1);
                return;
        }
 
        if(uri == myself){
                if(is_method("REGISTER")){
                        if(!www_authorize("mydomain.net", "subscriber")){
                                www_challenge("mydomain.net", "1");
                                return;
                        }
 
                        save("location");
                        if(!src_ip==xx.yy.zz.12)
                        {
                          t_replicate("xx.yy.zz.12", "5060");
                        };
                       return;
                                               
 
                }
 
                if(does_uri_exist()){
                        # local uri does exist, is probably a user.
 
                        # lookup location
                        if(lookup("location")){
                        route(1);
                        return;
                        }
                } else {
                        # probably a call to pstn....
                        route(2);
                        return;
                }
        }
}
 
route[1] {
 
         
        # for INVITEs enable some additional helper routes
        if (is_method("INVITE")) {
                t_on_branch("2");
                t_on_reply("2");
                t_on_failure("1");
        }
 
        if (!t_relay()) {
                sl_reply_error();
        };
        exit;
}
 
route[2]
{
        # pstn handling, simply route out to pstn.
         xlog("L_INFO","rewritehostport to Splendor_VOIP_GW:5065");
         sl_send_reply("100","Call Going To PSTN");
         sethostport("xx.yy.zz.39");
         route(1);
}
 
/*
route[2] {
# for INVITEs enable some additional helper routes
       rewritehostport ("xx.yy.zz.39:5060");
       xlog("L_INFO","rewritehostport to Splendor_VOIP_GW:5065");
       route(1);
}
*/                  
 
# Presence route
/* uncomment the whole following route for enabling presence
   NOTE: do not forget to enable the call of this route from the main
     route */
 
branch_route[2] {
        xlog("new branch at $ru\n");
}
 
 
onreply_route[2] {
        xlog("incoming reply\n");
}