[SR-Users] msilo route error

Daniel-Constantin Mierla miconda at gmail.com
Thu Aug 18 08:49:12 CEST 2016


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 at debian:~# service kamailio restart
> Job for kamailio.service failed. See 'systemctl status kamailio.service' and 'journalctl -xn' for details.
> root at 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-33-con-nat.html
>
> 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 at lists.sip-router.org
> http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users

-- 
Daniel-Constantin Mierla
http://www.asipto.com - http://www.kamailio.org
http://twitter.com/#!/miconda - http://www.linkedin.com/in/miconda




More information about the sr-users mailing list