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.
152 lines
3.8 KiB
152 lines
3.8 KiB
# $Id$
|
|
#
|
|
# 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 ----------------------------------
|
|
mpath="/usr/local/lib/kamailio/modules/"
|
|
|
|
loadmodule "textops.so"
|
|
|
|
loadmodule "sl.so"
|
|
loadmodule "mysql.so"
|
|
loadmodule "maxfwd.so"
|
|
loadmodule "msilo.so"
|
|
loadmodule "tm.so"
|
|
loadmodule "registrar.so"
|
|
loadmodule "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://openser:openserrw@localhost/openser")
|
|
modparam("msilo","from_address","sip:registrar@kamailio.org")
|
|
modparam("msilo","contact_hdr","Contact: registrar@192.168.1.2:5060;msilo=yes\r\n")
|
|
modparam("msilo","content_type_hdr","Content-Type: text/plain\r\n")
|
|
modparam("msilo","offline_message","*** User $rU is offline!")
|
|
|
|
# -- 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");
|
|
exit;
|
|
};
|
|
|
|
|
|
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");
|
|
};
|
|
exit;
|
|
};
|
|
|
|
# domestic SIP destinations are handled using our USRLOC DB
|
|
|
|
if(!lookup("location"))
|
|
{
|
|
if (! t_newtran())
|
|
{
|
|
sl_reply_error();
|
|
exit;
|
|
};
|
|
# we do not care about anything else but MESSAGEs
|
|
if (!method=="MESSAGE")
|
|
{
|
|
if (!t_reply("404", "Not found"))
|
|
{
|
|
sl_reply_error();
|
|
};
|
|
exit;
|
|
};
|
|
log("MESSAGE received -> storing using MSILO\n");
|
|
# MSILO - storing as offline message
|
|
if (m_store("$ru"))
|
|
{
|
|
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();
|
|
};
|
|
};
|
|
exit;
|
|
};
|
|
# if the downstream UA does not support MESSAGE requests
|
|
# go to failure_route[1]
|
|
t_on_failure("1");
|
|
t_relay();
|
|
exit;
|
|
};
|
|
|
|
# forward anything else
|
|
t_relay();
|
|
}
|
|
|
|
failure_route[1] {
|
|
# forwarding failed -- check if the request was a MESSAGE
|
|
if (!method=="MESSAGE")
|
|
{
|
|
exit;
|
|
};
|
|
|
|
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("$ou"))
|
|
{
|
|
log("MSILO: offline message stored\n");
|
|
t_reply("202", "Accepted");
|
|
}else{
|
|
log("MSILO: offline message NOT stored\n");
|
|
t_reply("503", "Service Unavailable");
|
|
};
|
|
}
|
|
|
|
|