123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141 |
- #
- # 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 --
- modparam("msilo","db_url","mysql://user:[email protected]/msilo")
- modparam("msilo","registrar","sip:[email protected]")
- # -- 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");
- };
- }
|