Hi <br>
I try to play with msilo. I manage to have messages stored in the
database but I do not manage to send them to the user when this one
becomes on-line.<br>
<br>
When I look at /var/log/messages:<br>
ERROR: mk_proxy: could not resolve hostname: "<a href="http://xxx.fr">xxx.fr</a>"<br>
with <a href="http://xxx.fr">xxx.fr</a> the name of my domain<br>
the server is: <a href="http://sip.xxx.fr">sip.xxx.fr</a><br>
<br>
more details<br>
May 16 19:41:51 S /usr/local/sbin/ser[12042]: ERROR: mk_proxy: could not resolve hostname: "<a href="http://xxx.fr">xxx.fr</a>"<br>
May 16 19:41:51 S /usr/local/sbin/ser[12042]: ERROR: uri2proxy: bad host name in URI <<a href="http://sip:dom@xxx.fr:5062">sip:dom@xxx.fr:5062</a>;transport=udp><br>
May 16 19:41:51 S /usr/local/sbin/ser[12042]: ERROR: uri2sock: Can't create a dst proxy<br>
May 16 19:41:51 S /usr/local/sbin/ser[12042]: t_uac: no socket found<br>
<br>
Here is ser.cfg<br>
#<br>
# $Id: ser.cfg,v <a href="http://1.25.2.1">1.25.2.1</a> 2005/02/18 14:30:44 andrei Exp $<br>
#<br>
# simple quick-start config script<br>
#<br>
<br>
# ----------- global configuration parameters ------------------------<br>
<br>
debug=9 # debug level (cmd line: -dddddddddd)<br>
#fork=yes<br>
#log_stderror=no # (cmd line: -E)<br>
<br>
/* Uncomment these lines to enter debugging mode <br>
#fork=no<br>
#log_stderror=yes<br>
*/<br>
<br>
check_via=no # (cmd. line: -v)<br>
dns=on # (cmd. line: -r)<br>
rev_dns=off # (cmd. line: -R)<br>
#port=5060<br>
#children=4<br>
<br>
fifo="/tmp/ser_fifo"<br>
fifo_db_url="mysql://ser:heslo@localhost/ser"<br>
<br>
<br>
listen=address v6<br>
listen=<a href="http://sip.xxx.fr">sip.xxx.fr</a><br>
listen=address v4<br>
<br>
alias="<a href="http://xxx.fr">xxx.fr</a>"<br>
alias="canonical name"<br>
alias="<a href="http://sip.xxx.fr">sip.xxx.fr</a>"<br>
alias="v4 address"<br>
alias="v4 address"<br>
<br>
# ------------------ module loading ----------------------------------<br>
<br>
# Uncomment this if you want to use SQL database<br>
loadmodule "/usr/local/lib/ser/modules/mysql.so"<br>
<br>
loadmodule "/usr/local/lib/ser/modules/sl.so"<br>
loadmodule "/usr/local/lib/ser/modules/tm.so"<br>
loadmodule "/usr/local/lib/ser/modules/rr.so"<br>
loadmodule "/usr/local/lib/ser/modules/maxfwd.so"<br>
loadmodule "/usr/local/lib/ser/modules/usrloc.so"<br>
loadmodule "/usr/local/lib/ser/modules/registrar.so"<br>
loadmodule "/usr/local/lib/ser/modules/textops.so"<br>
loadmodule "/usr/local/lib/ser/modules/acc.so"<br>
<br>
# Uncomment this if you want digest authentication<br>
# mysql.so must be loaded !<br>
loadmodule "/usr/local/lib/ser/modules/auth.so"<br>
loadmodule "/usr/local/lib/ser/modules/auth_db.so"<br>
loadmodule "/usr/local/lib/ser/modules/msilo.so"<br>
<br>
<br>
<br>
# ----------------- setting module-specific parameters ---------------<br>
<br>
# -- usrloc params --<br>
<br>
#modparam("usrloc", "db_mode", 0)<br>
<br>
# Uncomment this if you want to use SQL database <br>
# for persistent storage and comment the previous line<br>
modparam("usrloc", "db_mode", 2)<br>
<br>
# -- auth params --<br>
# Uncomment if you are using auth module<br>
#<br>
modparam("auth_db", "db_url","mysql://ser:xxxxx@localhost/ser")<br>
modparam("auth_db", "calculate_ha1", yes)<br>
#<br>
# If you set "calculate_ha1" parameter to yes (which true in this config), <br>
# uncomment also the following parameter)<br>
#<br>
modparam("auth_db", "password_column", "password")<br>
<br>
# -- rr params --<br>
# add value to ;lr param to make some broken UAs happy<br>
modparam("rr", "enable_full_lr", 1)<br>
<br>
modparam("msilo", "db_url", "mysql://ser:xxxxx@localhost/ser")<br>
modparam("msilo", "db_table", "silo")<br>
#modparam("msilo", "registrar", "<a href="mailto:sip:dom@xxx.fr">sip:dom@xxx.fr</a>")<br>
<br>
modparam("rr", "enable_full_lr", 1)<br>
<br>
modparam("acc", "log_level", 1)<br>
modparam("acc", "log_flag", 1 )<br>
modparam("acc", "db_url", "mysql://ser:xxxxx@localhost/ser")<br>
modparam("acc", "db_flag", 1)<br>
modparam("acc", "db_missed_flag", 1)<br>
#modparam("acc", "log_fmt", "fisum")<br>
modparam("acc", "report_ack", 1)<br>
modparam("acc", "log_level", 5)<br>
modparam("acc", "failed_transactions", 1)<br>
modparam("acc", "report_cancels", 1)<br>
# ------------------------- request routing logic -------------------<br>
<br>
# main routing logic<br>
<br>
route{<br>
<br>
# initial sanity checks -- messages with<br>
# max_forwards==0, or excessively long requests<br>
if (!mf_process_maxfwd_header("10")) {<br>
sl_send_reply("483","Too Many Hops");<br>
break;<br>
};<br>
if (msg:len >= 2048 ) {<br>
sl_send_reply("513", "Message too big");<br>
break;<br>
};<br>
<br>
<br>
# we record-route all messages -- to make sure that<br>
# subsequent messages will go through our proxy; that's<br>
# particularly good if upstream and downstream entities<br>
# use different transport protocol<br>
if (!method=="REGISTER") record_route(); <br>
<br>
# subsequent messages withing a dialog should take the<br>
# path determined by record-routing<br>
if (loose_route()) {<br>
# mark routing logic in request<br>
append_hf("P-hint: rr-enforced\r\n"); <br>
route(1);<br>
break;<br>
};<br>
<br>
if (!uri==myself) {<br>
# mark routing logic in request<br>
append_hf("P-hint: outbound\r\n"); <br>
route(1);<br>
break;<br>
};<br>
<br>
# if the request is for other domain use UsrLoc<br>
# (in case, it does not work, use the following command<br>
# with proper names and addresses in it)<br>
if (uri==myself) {<br>
<br>
if (method=="REGISTER") {<br>
<br>
# Uncomment this if you want to use digest authentication<br>
log(1, "Prompting for
login/pass\n");<br>
if (!www_authorize("<a href="http://xxx.fr">xxx.fr</a>",
"subscriber")) {<br>
www_challenge("<a href="http://xxx.fr">xxx.fr</a>", "0");<br>
<br>
};<br>
save("location");<br>
<br>
m_dump();<br>
# MSILO - dumping user's offline messages<br>
#if (m_dump())<br>
#{<br>
# log(1, "MSILO: offline messages dumped - if they
were\n");<br>
#}else{<br>
# log(1, "MSILO: no offline messages dumped\n");<br>
#};<br>
break;<br>
};<br>
<br>
<br>
if (!lookup("location")) {<br>
<br>
if ((method=="INVITE" || method=="ACK") && t_newtran() ) {<br>
t_reply("404", "Not Found");<br>
#acc_request("404 Not Found");<br>
break;<br>
};<br>
<br>
if (method == "MESSAGE") {<br>
log(1,"Message recu en absence\n");<br>
if (!t_newtran()) {<br>
log(1,"t_newtran MSILO\n");<br>
sl_reply_error();<br>
break;<br>
}<br>
log(1,"MESSAGE received -> storing using
MSILO\n");<br>
# MSILO -
storing as offline message<br>
if
(m_store("0"))<br>
{<br>
log(1,"MSILO:
offline message stored\n");<br>
if
(!t_reply("202", "Accepted"))<br>
{<br>
sl_reply_error();<br>
};<br>
}else{<br>
log(1,"MSILO:
offline message NOT stored\n");<br>
if
(!t_reply("503", "Service Unavailable"))<br>
{<br>
sl_reply_error();<br>
};<br>
};<br>
break;<br>
<br>
};<br>
<br>
<br>
<br>
#if (method == "MESSAGE") {<br>
#log(1, "MSILO: message recu absent\n");<br>
# };<br>
#}else {<br>
#if (method == "MESSAGE") {<br>
#log(1, "MSILO: message recu present\n");<br>
#};<br>
};<br>
<br>
lookup("aliases");<br>
if (!uri==myself) {<br>
append_hf("P-hint: outbound alias\r\n"); <br>
route(1);<br>
break;<br>
};<br>
<br>
# native SIP destinations are handled using our USRLOC DB<br>
if (!lookup("location")) {<br>
sl_send_reply("404", "Not Found");<br>
break;<br>
};<br>
};<br>
append_hf("P-hint: usrloc applied\r\n"); <br>
route(1);<br>
}<br>
<br>
route[1] <br>
{<br>
# send it out now; use stateful forwarding as it works reliably<br>
# even for UDP2TCP<br>
if (!t_relay()) {<br>
sl_reply_error();<br>
};<br>
}<br>
<br>
<br clear="all"><br>If i add modparam("msilo", "registrar", "<a href="mailto:sip:dom@xxx.fr">sip:dom@xxx.fr</a>")<br>
then it complains<br>
May 16 19:39:36 S2 /usr/local/sbin/ser[11894]: MESSAGE received -> storing using MSILO<br>
May 16 19:39:36 S2 /usr/local/sbin/ser[11894]: MSILO: offline message NOT stored<br>
May 16 19:39:36 S2 /usr/local/sbin/ser[11895]: Warning: run_failure_handlers: no UAC support (0, 256)<br>
<br>
any hints are welcome!<br>
<br>