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-3...
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@lists.sip-router.org http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users