Hi,
When kamailio dumps the messages to destination party upon register, do you
see its reply received by kamailio correctly? Most probable cause of the
problem is that kamailio does not receives 200 OK for dumped message from
destination party and assumes message delivery failure, therefore it stores
the message again. This is all done automatically be msilo module.
Thank you.
On Sun, Apr 8, 2018 at 7:42 PM, Abdul Basit <basit.engg(a)gmail.com> wrote:
Dear Team,
Still stuck with the issue. Kindly suggest where i did wrong.
--
regards,
abdul basit | p: +92 32 1416 4196 | o: +92 30 0841 1445
On 6 April 2018 at 20:50, Abdul Basit <basit.engg(a)gmail.com> wrote:
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@192.168.10.18:9060")
modparam("msilo","contact_hdr","Contact:
registrar@192.168.10.18:9060;m
silo=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
_______________________________________________
Kamailio (SER) - Users Mailing List
sr-users(a)lists.kamailio.org
https://lists.kamailio.org/cgi-bin/mailman/listinfo/sr-users