examples/msilo.cfg
f899765a
 #
 # MSILO usage example
 #
 # $ID: daniel $
 #
 
 
 
 children=2
 check_via=no      # (cmd. line: -v)
 dns=off           # (cmd. line: -r)
 rev_dns=off       # (cmd. line: -R)
 
 
 # ------------------ module loading ----------------------------------
 
 loadmodule "../sip_router/modules/print/print.so"
 loadmodule "../sip_router/modules/textops/textops.so"
 
 loadmodule "../sip_router/modules/sl/sl.so"
 loadmodule "../sip_router/modules/mysql/mysql.so"
 loadmodule "../sip_router/modules/maxfwd/maxfwd.so"
 loadmodule "../sip_router/modules/msilo/msilo.so"
 loadmodule "../sip_router/modules/tm/tm.so"
 loadmodule "../sip_router/modules/registrar/registrar.so"
 loadmodule "../sip_router/modules/usrloc/usrloc.so"
 
 # ----------------- setting module-specific parameters ---------------
 
 # -- registrar params --
 
 modparam("registrar", "default_expires", 120)
 
 # -- registrar params --
 
 modparam("usrloc", "db_mode", 0)
 
 # -- msilo params --
 
3ee34899
 modparam("msilo","db_url","mysql://user:xxx@127.0.0.1/msilo")
f899765a
 modparam("msilo","registrar","sip:registrar@mydomain.com")
 
 # -- tm params --
 
 modparam("tm", "fr_timer", 10 )
 modparam("tm", "fr_inv_timer", 15 )
 modparam("tm", "wt_timer", 10 )
 
 
 route{
 	if ( !mf_process_maxfwd_header("10") )
 	{
 		sl_send_reply("483","To Many Hops");
 		drop();
 	};
 
 
 	if (uri==myself) {
 		# for testing purposes, simply okay all REGISTERs
 		if (method=="REGISTER")
 		{
 			save("location");
 			log("REGISTER received -> dumping messages with MSILO\n");
 
 			# MSILO - dumping user's offline messages
 			if (m_dump())
 			{
 				log("MSILO: offline messages dumped - if they were\n");
 			}else{
 				log("MSILO: no offline messages dumped\n");
 			};
 			break;
 		};
 
 		# domestic SIP destinations are handled using our USRLOC DB
 		
 		if(!lookup("location")) 
 		{
 			if (! t_newtran())
    			{
 				sl_reply_error();
 				break;
    			};
 			# we do not care about anything else but MESSAGEs
 			if (!method=="MESSAGE")
 			{
 				if (!t_reply("404", "Not found")) 
 				{
 					sl_reply_error();
 				};
     			break;
 			};
 			log("MESSAGE received -> storing using MSILO\n");
 			# MSILO - storing as offline message
 			if (m_store("0"))
 			{
 				log("MSILO: offline message stored\n");
 				if (!t_reply("202", "Accepted")) 
 				{
 					sl_reply_error();
 				};
 			}else{
 				log("MSILO: offline message NOT stored\n");
 				if (!t_reply("503", "Service Unavailable")) 
 				{
 					sl_reply_error();
 				};
 			};
 			break;
 		};
 		# if the downstream UA does not support MESSAGE requests
 		# go to failure_route[1]
 		t_on_failure("1");
 		t_relay();
 		break;
 	};
 
 	# forward anything else
 	t_relay();
 }
 
 failure_route[1] {
 	# forwarding failed -- check if the request was a MESSAGE 
 	if (!method=="MESSAGE")
 	{
     	break;
 	};
 	
 	log(1,"MSILO: the downstream UA does not support MESSAGE requests ...\n");
 	# we have changed the R-URI with the contact address -- ignore it now
 	if (m_store("1"))
 	{
 		log("MSILO: offline message stored\n");
 		t_reply("202", "Accepted"); 
 	}else{
 		log("MSILO: offline message NOT stored\n");
 		t_reply("503", "Service Unavailable");
 	};
 }