Hello,
what is at line 613?
Likely you mixed the #!ifdef/#!endif blocks, see the last message in the
next snippet of logs:
Aug 17 21:35:41 debian kamailio[3693]: : <core> [cfg.y:3368]: yyerror_at(): parse
error in config file /etc/kamailio/kamailio.cfg, line 613, column 12:
Aug 17 21:35:41 debian kamailio[3693]: ERROR: bad config file (5 errors)
Aug 17 21:35:41 debian kamailio[3693]: WARNING: <core> [ppcfg.c:221]:
pp_ifdef_level_check(): different number of preprocessor directives: N(#!IF[N]DEF) -
N(#!ENDIF) = 3
You have 3 more IFDEF or IFNDEF than ENDIF.
Cheers,
Daniel
On 17/08/16 22:22, Eng Hooda wrote:
Hello All,
I am trying to enable msilo offline message delivery module,
I used the official technical documentation :
https://www.kamailio.org/docs/modules/stable/modules/msilo.html
I managed to add load module statement and modparam statement without error.
At this point msilo is still not active , it was obvious that I needed to add route
statement.
I copied the provided route statement , and edited it so will be similar to route
functions that are already there.
that was the outcome:
# Routing to MSILO
route[MSILO] {
#!ifdef WITH_MSILO
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");
};
}
#!endif
return;
}
but after that I restarted kamailio service and got the following errors:
root@debian:~# service kamailio restart
Job for kamailio.service failed. See 'systemctl status kamailio.service' and
'journalctl -xn' for details.
root@debian:~# systemctl status kamailio.service -l
● kamailio.service - Kamailio (OpenSER) - the Open Source SIP Server
Loaded: loaded (/lib/systemd/system/kamailio.service; enabled)
Active: failed (Result: exit-code) since Wed 2016-08-17 21:35:41 EET; 4s ago
Process: 3693 ExecStart=/usr/sbin/kamailio -P /var/run/kamailio/kamailio.pid -f
$CFGFILE -m $SHM_MEMORY -M $PKG_MEMORY -u $USER -g $GROUP (code=exited, status=255)
Main PID: 3470 (code=exited, status=0/SUCCESS)
Aug 17 21:35:41 debian kamailio[3693]: : <core> [cfg.y:3368]: yyerror_at(): parse
error in config file /etc/kamailio/kamailio.cfg, line 556, column 5: bad command
Aug 17 21:35:41 debian kamailio[3693]: : <core> [cfg.y:3368]: yyerror_at(): parse
error in config file /etc/kamailio/kamailio.cfg, line 613, column 12: syntax error
Aug 17 21:35:41 debian kamailio[3693]: : <core> [cfg.y:3368]: yyerror_at(): parse
error in config file /etc/kamailio/kamailio.cfg, line 613, column 12:
Aug 17 21:35:41 debian kamailio[3693]: ERROR: bad config file (5 errors)
Aug 17 21:35:41 debian kamailio[3693]: WARNING: <core> [ppcfg.c:221]:
pp_ifdef_level_check(): different number of preprocessor directives: N(#!IF[N]DEF) -
N(#!ENDIF) = 3
Aug 17 21:35:41 debian kamailio[3693]: INFO: <core> [sctp_core.c:53]:
sctp_core_destroy(): SCTP API not initialized
Aug 17 21:35:41 debian kamailio[3693]: loading modules under config path:
/usr/lib/x86_64-linux-gnu/kamailio/modules/
Aug 17 21:35:41 debian systemd[1]: kamailio.service: control process exited, code=exited
status=255
Aug 17 21:35:41 debian systemd[1]: Failed to start Kamailio (OpenSER) - the Open Source
SIP Server.
Aug 17 21:35:41 debian systemd[1]: Unit kamailio.service entered failed state.
line 556 is a parenthesis. {
I checked the code for missing parentheses and they are all there.
line 613 is t_relay();
also tried to run with #!define WITH_DEBUG , there was no further info to debug the cfg
file.
Also I tried to mimic some cfg examples like this one :
http://telephonynetworks.blogspot.com.eg/2012/08/configuracion-de-kamailio-…
but it uses an older version of kamailio 3.3 , and I noticed considerable changes in
mpath statement, so that was unsuccessful.
kamailio.cfg is attached with and without msilo route.
For the experts out there Please Advise .
system details : {(OS:Debian8 i386),(Kamailio4.4 with mySQL , UDP only)}
Thank you all in advance.
Best Regards,
Eng Hooda
_______________________________________________
SIP Express Router (SER) and Kamailio (OpenSER) - sr-users mailing list
sr-users(a)lists.sip-router.org
http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users