# # MSILO usage example # # debug=9 # debug level (cmd line: -dddddddddd) fork=no # don't fork log_stderror=yes # log to stderr (cmd line: -E) children=2 # number of children check_via=no # (cmd. line: -v) dns=off # (cmd. line: -r) rev_dns=off # (cmd. line: -R) port=5060 listen=10.0.0.2 # listen address # ------------------ 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 -- modparam("msilo","db_url","sql://user:xxx@127.0.0.1/msilo") 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 doesn't support MESSAGEs\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"); }; }