This works for me fine:
loadmodule "msilo.so"
modparam("msilo","db_url",DBURL) modparam("msilo","from_address","sip:registrar@sip.stribogkonsult.com") modparam("msilo","contact_hdr","Contact: registrar@sip.stribogkonsult.com:5060;msilo=yes\r\n") modparam("msilo","content_type_hdr","Content-Type: text/plain\r\n") modparam("msilo","offline_message","***$rU***$rb***") ........... #storing offline messages route[MSILO_MESSAGE]{ if (lookup("location")){ t_relay(); }else{ m_store("$ru"); sl_send_reply("202", "Accepted"); }; exit(); } #on registrar, check for offline messages and send them route[REGISTRAR] { if (is_method("REGISTER")) { if(isflagset(FLT_NATS)) { setbflag(FLB_NATB); # uncomment next line to do SIP NAT pinging ## setbflag(FLB_NATSIPPING); } if (!save("location",0x04)) sl_reply_error(); # MSILO - dumping user's offline messages m_dump(); exit; } }
On Mon, May 20, 2013 at 12:50 PM, sipatse@in.gr wrote:
Dear All,
Is there any update regarding the aforementioned issue?
Best regards.
Dear All,
We would like to store SIP text Messages when the destination Subscriber is Offline. We have insert into kamailio cfg file the configuration lines below. Unfortunately storing messages is unsuccessful. Any ideas of what missing or what could be wrong?
Best regards.
loadmodule "msilo.so"
#!ifdef WITH_MSILO
modparam("msilo","db_url","mysql://[% kamailio.proxy.dbrwuser %]:[% kamailio.proxy.dbrwpw %]@[% database.dbhost %]/[% kamailio.proxy.dbname %]")
modparam("msilo", "db_table", "silo")
modparam("msilo","from_address","sip:registrar@xxxxxxx.local")
modparam("msilo", "from_address", "sip:$rU@xxxxxxx.local")
modparam("msilo","contact_hdr","Contact: sip:registrar@xx.xx.xx.xx :5062;msilo=yes\r\n")
modparam("msilo","content_type_hdr","Content-Type: text/plain\r\n")
modparam("msilo","offline_message","*** User $rU is offline!")
#!endif
modparam("usrloc", "db_mode", 0) initial value was “1”
########################################################################
#Store messages to offline Subs
########################################################################
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"); };
}
SIP Express Router (SER) and Kamailio (OpenSER) - sr-users mailing list sr-users@lists.sip-router.org http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users