[SR-Users] MSILO: SIP stored offline MESSAGE repetitive delivery
Abdul Basit
basit.engg at gmail.com
Fri Apr 6 17:50:08 CEST 2018
Hi team,
I am facing an issue while setting up IM server based on kamailio.
SIP-SIP online messaging is fine. For offline messaging i am using msilo
module which is storing offline messages in 'silo' table.
As B-party come online ... it receive offline messages stored in database.
But
*Problem is*.. these messages will deliver to B-party as many time it
REGISTER online.
How can I configure msilo module to mark messages delivery status?
or how can i delete the delivered messages so that there will be no chance
of delivering them again on next REGISTER?
Message parts of kamailio.cfg are
....
/* add local domain aliases */
alias="192.168.10.18"
port=9060
# ----- msilo params -----
modparam("msilo", "db_url", DBURL)
modparam("msilo", "db_table", "silo")
modparam("msilo", "sc_mid", "id")
modparam("msilo","from_address","sip:registrar at 192.168.10.18:9060")
modparam("msilo","contact_hdr","Contact: registrar at 192.168.10.18:9060;
msilo=yes\r\n")
modparam("msilo","content_type_hdr","Content-Type: text/plain\r\n")
........
route[MSILO_MESSAGE] {
if (!is_method("MESSAGE")) return;
xlogl("L_NOTICE", "[$rm] r-uri: $ru d-uri: $du \n");
if (lookup("location")) {
xlogl("L_NOTICE", "[$rm] -> loaction found. Relying message [[$rb]]
to the UAC \n");
t_relay();
} else {
if (!t_newtran()) {
xlogl("L_ERROR", "[$rm] -> ERROR creating new transaction \n");
sl_reply_error();
exit;
};
xlogl("L_NOTICE", "[$rm] -> Storing MSILO_MESSAGE \n
[$ru]-[$tu]-[$ou] \n ");
if (m_store("$ru")) {
xlogl("L_NOTICE", "MSILO: offline message stored! \n");
if (!t_reply("202", "Accpeted and Strored")) {
xlogl("L_ERROR", "MSILO: Err sending 202 reply... \n");
sl_reply_error();
}
} else {
xlogl("L_ERROR", "MSILO: offline message NOT stored... \n");
if (!t_reply("503", "Service Unavailable")) {
sl_reply_error();
}
}
}
exit;
}
.....
# Handle SIP registrations
route[REGISTRAR] {
if (!is_method("REGISTER")) return; // discard all non-REGISTER methods
if(isflagset(FLT_NATS)) {
setbflag(FLB_NATB);
#!ifdef WITH_NATSIPPING
setbflag(FLB_NATSIPPING); //# do SIP NAT pinging
#!endif
}
$avp(received) = "sip:" + $si + ":" + $sp + ";transport=" + $proto;
xlogl("L_INFO", "[$rm] -> UAC actual location $avp(received) \n");
if (!save("location",0x04)) {
xlogl("L_ERROR", "[$rm] -> Unable to save user location \n");
sl_reply_error();
}
else {
xlogl("L_INFO", "[$rm] -> dumping messages with MSILO \n");
# MSILO - dumping user's offline messages to user
if (m_dump("$fu")) {
xlogl("L_NOTICE", "MSILO: offline messages for $fu dumped - if
they were \n");
}
else {
xlogl("L_NOTICE", "MSILO: no offline messages dumped \n");
};
}
exit;
}
Any idea?
--
regards,
abdul basit
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.kamailio.org/pipermail/sr-users/attachments/20180406/5ea9216b/attachment-0001.html>
More information about the sr-users
mailing list