#
# demo script showing how to set-up usrloc replication
#
# ----------- global configuration parameters ------------------------
log_level=3# logging level (cmd line: -dddddddddd)log_stderror=yes # (cmd line: -E)# ------------------ module loading ----------------------------------
#set module path
mpath="/usr/local/lib/opensips/modules/"loadmodule"db_mysql.so"loadmodule"sl.so"loadmodule"tm.so"loadmodule"maxfwd.so"loadmodule"usrloc.so"loadmodule"registrar.so"loadmodule"auth.so"loadmodule"auth_db.so"# ----------------- setting module-specific parameters ---------------
# digest generation secret; use the same in backup server;
# also, make sure that the backup server has sync'ed time
modparam("auth","secret","alsdkhglaksdhfkloiwr")# ------------------------- request routing logic -------------------
# main routing logic
route{# initial sanity checks -- messages with
# max_forwars==0, or excessively long requestsif(!mf_process_maxfwd_header("10")){ sl_send_reply("483","Too Many Hops");
exit;
};
if($ml >=2048){ sl_send_reply("513", "Message too big");
exit;
};
# if the request is for other domain use UsrLoc# (in case, it does not work, use the following command# with proper names and addresses in it)if(is_myself("$rd")){if($rm=="REGISTER"){# verify credentialsif(!www_authorize("foo.bar", "subscriber")){ www_challenge("foo.bar", "0");
exit;
};
# if ok, update contacts and ... save("location");
# ... if this REGISTER is not a replica from our# peer server, replicate to the peer server $var(backup_ip)="backup.foo.bar"{ip.resolve};
if(!$si==$var(backup_ip)){ t_replicate("sip:backup.foo.bar:5060");
};
exit;
};
# do whatever else appropriate for your domain log("non-REGISTER\n");
};
}