examples/replicate.cfg
0e3e0fbf
 #
 # $Id$
 #
 # demo script showing how to set-up usrloc replication
 #
 
 # ----------- global configuration parameters ------------------------
 
 debug=3          # debug level (cmd line: -dddddddddd)
 fork=no
 log_stderror=yes # (cmd line: -E)
 
 # ------------------ module loading ----------------------------------
 
 loadmodule "modules/mysql/mysql.so"
 loadmodule "modules/sl/sl.so"
 loadmodule "modules/tm/tm.so"
 loadmodule "modules/maxfwd/maxfwd.so"
 loadmodule "modules/usrloc/usrloc.so"
 loadmodule "modules/registrar/registrar.so"
 loadmodule "modules/auth/auth.so"
c96013a1
 loadmodule "modules/auth_db/auth_db.so"
0e3e0fbf
 
 # ----------------- 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 requests
 	if (!mf_process_maxfwd_header("10")) {
 		sl_send_reply("483","Too Many Hops");
 		break;
 	};
 	if (len_gt( max_len )) {
 		sl_send_reply("513", "Message too big");
 		break;
 	};
 
 	# 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 (uri==myself) {
 
 		if (method=="REGISTER") {
 
 			# verify credentials
 			if (!www_authorize("foo.bar", "subscriber")) {
 				www_challenge("foo.bar", "0");
 				break;
 			};
 
 			# if ok, update contacts and ...
 			save("location");
 			# ... if this REGISTER is not a replica from our
 			# peer server, replicate to the peer server
 			if (!src_ip==backup.foo.bar) {
 				t_replicate("backup.foo.bar", "5060");
 			};
 			break;
 		};
 		# do whatever else appropriate for your domain
 		log("non-REGISTER\n");
 	};
 }