mirror of https://github.com/sipwise/kamailio.git
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
142 lines
3.0 KiB
142 lines
3.0 KiB
#
|
|
# 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: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 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");
|
|
};
|
|
}
|
|
|
|
|