<div dir="ltr"><div dir="ltr" class="gmail_msg">hi guys<br class="gmail_msg"><div class="gmail_msg">i'm newbie to kamailio.</div><div class="gmail_msg">i've installed kamailio version 5 (and all the modules) from pkgs on a jessie debian.</div><div class="gmail_msg">i have the below config on my kamailio.cfg</div><div class="gmail_msg">when i try to start kamailio service it throws the following error.</div><div class="gmail_msg">what's the problem?</div><div class="gmail_msg"><br class="gmail_msg"></div><div class="gmail_msg"><ul class="gmail_msg"><li class="gmail_msg">systemctl status kamailio:<br class="gmail_msg"></li></ul></div><div class="gmail_msg"><div class="gmail_msg">kamailio.service - Kamailio (OpenSER) - the Open Source SIP Server<br class="gmail_msg">   Loaded: loaded (/lib/systemd/system/kamailio.service; enabled)<br class="gmail_msg">   Active: failed (Result: exit-code) since Wed 2017-03-15 19:01:17 IRST; 10s ago<br class="gmail_msg">  Process: 9377 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)<br class="gmail_msg"> Main PID: 1576 (code=exited, status=0/SUCCESS)<br class="gmail_msg"></div><div class="gmail_msg"><br class="gmail_msg"></div><div class="gmail_msg">Mar 15 19:01:17 kamailio-debian kamailio[9377]: ERROR: <core> [core/modparam.c:152]: set_mod_param_regex(): No module matching <jsonrpcs> found</div><div class="gmail_msg">Mar 15 19:01:17 kamailio-debian kamailio[9377]: CRITICAL: <core> [core/cfg.y:3404]: yyerror_at(): parse error in config file /etc/kamailio/kamailio.cfg, line 103, column 72: Can't set module parameter</div><div class="gmail_msg">Mar 15 19:01:17 kamailio-debian kamailio[9377]: ERROR: <core> [core/modparam.c:141]: set_mod_param_regex(): parameter <ds_probing_threshhold> of type <2> not found in module <dispatcher></div><div class="gmail_msg">Mar 15 19:01:17 kamailio-debian kamailio[9377]: CRITICAL: <core> [core/cfg.y:3404]: yyerror_at(): parse error in config file /etc/kamailio/kamailio.cfg, line 135, column 50: Can't set module parameter</div><div class="gmail_msg">Mar 15 19:01:17 kamailio-debian kamailio[9377]: ERROR: bad config file (4 errors)</div><div class="gmail_msg">Mar 15 19:01:17 kamailio-debian kamailio[9377]: INFO: <core> [core/sctp_core.c:53]: sctp_core_destroy(): SCTP API not initialized</div><div class="gmail_msg">Mar 15 19:01:17 kamailio-debian kamailio[9377]: loading modules under config path: /usr/lib/x86_64-linux-gnu/kamailio/modules/</div><div class="gmail_msg">Mar 15 19:01:17 kamailio-debian systemd[1]: kamailio.service: control process exited, code=exited status=255</div><div class="gmail_msg">Mar 15 19:01:17 kamailio-debian systemd[1]: Failed to start Kamailio (OpenSER) - the Open Source SIP Server.</div><div class="gmail_msg">Mar 15 19:01:17 kamailio-debian systemd[1]: Unit kamailio.service entered failed state.</div></div><div class="gmail_msg"><br class="gmail_msg"></div><div class="gmail_msg"><br class="gmail_msg"></div><div class="gmail_msg"><ul class="gmail_msg"><li class="gmail_msg">kamailio.cfg:<br class="gmail_msg"></li></ul></div><div class="gmail_msg"><div class="gmail_msg"># *** To run in debug mode:<br class="gmail_msg"></div><div class="gmail_msg">#     - define WITH_DEBUG</div><div class="gmail_msg">#</div><div class="gmail_msg"><br class="gmail_msg"></div><div class="gmail_msg">#!ifndef DBURL</div><div class="gmail_msg">#!define DBURL "mysql://kamailio:kamailiorw@localhost/kamailio"</div><div class="gmail_msg">#!endif</div><div class="gmail_msg"><br class="gmail_msg"></div><div class="gmail_msg">####### Global Parameters #########</div><div class="gmail_msg"><br class="gmail_msg"></div><div class="gmail_msg">#!ifdef WITH_DEBUG</div><div class="gmail_msg">debug=4</div><div class="gmail_msg">log_stderror=yes</div><div class="gmail_msg">#!else</div><div class="gmail_msg">debug=2</div><div class="gmail_msg">log_stderror=no</div><div class="gmail_msg">#!endif</div><div class="gmail_msg"><br class="gmail_msg"></div><div class="gmail_msg">memdbg=5</div><div class="gmail_msg">memlog=5</div><div class="gmail_msg"><br class="gmail_msg"></div><div class="gmail_msg"># log_facility=LOG_LOCAL0</div><div class="gmail_msg"># Ds increasing debug...</div><div class="gmail_msg">debug=2</div><div class="gmail_msg"><br class="gmail_msg"></div><div class="gmail_msg">fork=yes</div><div class="gmail_msg">children=4</div><div class="gmail_msg"><br class="gmail_msg"></div><div class="gmail_msg">/* comment the next line to enable TCP */</div><div class="gmail_msg">disable_tcp=yes</div><div class="gmail_msg"><br class="gmail_msg"></div><div class="gmail_msg">/* uncomment the next line to disable the auto discovery of local aliases</div><div class="gmail_msg">   based on revers DNS on IPs (default on) */</div><div class="gmail_msg">auto_aliases=no</div><div class="gmail_msg"><br class="gmail_msg"></div><div class="gmail_msg">/* add local domain aliases */</div><div class="gmail_msg"># alias="<a href="http://mysipserver.com" class="gmail_msg" target="_blank">mysipserver.com</a>"</div><div class="gmail_msg"><br class="gmail_msg"></div><div class="gmail_msg">port=5060</div><div class="gmail_msg"><br class="gmail_msg"></div><div class="gmail_msg">/* uncomment and configure the following line if you want Kamailio to</div><div class="gmail_msg">   bind on a specific interface/port/proto (default bind on all available) */</div><div class="gmail_msg"># listen=udp:<a href="http://0.0.0.0:5060" class="gmail_msg" target="_blank">0.0.0.0:5060</a></div><div class="gmail_msg"># listen=<a href="http://127.0.0.1:5060" class="gmail_msg" target="_blank">127.0.0.1:5060</a></div><div class="gmail_msg"><br class="gmail_msg"></div><div class="gmail_msg"><br class="gmail_msg"></div><div class="gmail_msg">sip_warning=no</div><div class="gmail_msg"><br class="gmail_msg"></div><div class="gmail_msg">####### Modules Section ########</div><div class="gmail_msg"><br class="gmail_msg"></div><div class="gmail_msg"># set paths to location of modules (to sources or installation folders)</div><div class="gmail_msg">mpath="/usr/lib/x86_64-linux-gnu/kamailio/modules/"</div><div class="gmail_msg"><br class="gmail_msg"></div><div class="gmail_msg">#!ifdef WITH_MYSQL</div><div class="gmail_msg">loadmodule "db_mysql.so"</div><div class="gmail_msg">#!endif</div><div class="gmail_msg"><br class="gmail_msg"></div><div class="gmail_msg">loadmodule "mi_fifo.so"</div><div class="gmail_msg">loadmodule "kex.so"</div><div class="gmail_msg">loadmodule "tm.so"</div><div class="gmail_msg">loadmodule "tmx.so"</div><div class="gmail_msg">loadmodule "sl.so"</div><div class="gmail_msg">loadmodule "rr.so"</div><div class="gmail_msg">loadmodule "pv.so"</div><div class="gmail_msg">loadmodule "maxfwd.so"</div><div class="gmail_msg">loadmodule "textops.so"</div><div class="gmail_msg">loadmodule "siputils.so"</div><div class="gmail_msg">loadmodule "xlog.so"</div><div class="gmail_msg">loadmodule "sanity.so"</div><div class="gmail_msg">loadmodule "ctl.so"</div><div class="gmail_msg">loadmodule "mi_rpc.so"</div><div class="gmail_msg">loadmodule "acc.so"</div><div class="gmail_msg">loadmodule "dispatcher.so"</div><div class="gmail_msg"><br class="gmail_msg"></div><div class="gmail_msg"><br class="gmail_msg"></div><div class="gmail_msg"># ----------------- setting module-specific parameters ---------------</div><div class="gmail_msg"><br class="gmail_msg"></div><div class="gmail_msg"><br class="gmail_msg"></div><div class="gmail_msg"># ----- mi_fifo params -----</div><div class="gmail_msg">modparam("jsonrpcs", "fifo_name", "/var/run/kamailio/kamailio_rpc.fifo")</div><div class="gmail_msg"><br class="gmail_msg"></div><div class="gmail_msg"><br class="gmail_msg"></div><div class="gmail_msg"># ----- rr params -----</div><div class="gmail_msg"># add value to ;lr param to cope with most of the UAs</div><div class="gmail_msg">modparam("rr", "enable_full_lr", 1)</div><div class="gmail_msg"># do not append from tag to the RR (no need for this script)</div><div class="gmail_msg">modparam("rr", "append_fromtag", 0)</div><div class="gmail_msg"><br class="gmail_msg"></div><div class="gmail_msg"><br class="gmail_msg"></div><div class="gmail_msg"># ----- acc params -----</div><div class="gmail_msg">modparam("acc", "log_flag", 1)</div><div class="gmail_msg">modparam("acc", "failed_transaction_flag", 3)</div><div class="gmail_msg">modparam("acc", "log_extra",</div><div class="gmail_msg">        "src_user=$fU;src_domain=$fd;dst_ouser=$tU;dst_user=$rU;dst_domain=$rd;src_ip=$si")</div><div class="gmail_msg"><br class="gmail_msg"></div><div class="gmail_msg"># ----- tm params -----</div><div class="gmail_msg">modparam("tm", "fr_timer", 2000)</div><div class="gmail_msg">modparam("tm", "fr_inv_timer", 40000)</div><div class="gmail_msg"><br class="gmail_msg"></div><div class="gmail_msg"># ----- dispatcher params -----</div><div class="gmail_msg"># modparam("dispatcher", "db_url", DBURL)</div><div class="gmail_msg"># modparam("dispatcher", "table_name", "dispatcher")</div><div class="gmail_msg"><br class="gmail_msg"></div><div class="gmail_msg">modparam("dispatcher", "list_file", "/etc/kamailio/dispatcher.list")</div><div class="gmail_msg">modparam("dispatcher", "flags", 2)</div><div class="gmail_msg">modparam("dispatcher", "dst_avp", "$avp(AVP_DST)")</div><div class="gmail_msg">modparam("dispatcher", "grp_avp", "$avp(AVP_GRP)")</div><div class="gmail_msg">modparam("dispatcher", "cnt_avp", "$avp(AVP_CNT)")</div><div class="gmail_msg"><br class="gmail_msg"></div><div class="gmail_msg">modparam("dispatcher", "ds_probing_mode", 1)</div><div class="gmail_msg">modparam("dispatcher", "ds_ping_interval", 15)</div><div class="gmail_msg">modparam("dispatcher", "ds_probing_threshhold", 1)</div><div class="gmail_msg">modparam("dispatcher", "ds_ping_reply_codes", "class=2;class=3;class=4")</div><div class="gmail_msg"><br class="gmail_msg"></div><div class="gmail_msg"><br class="gmail_msg"></div><div class="gmail_msg">####### Routing Logic ########</div><div class="gmail_msg"><br class="gmail_msg"></div><div class="gmail_msg"><br class="gmail_msg"></div><div class="gmail_msg"># main request routing logic</div><div class="gmail_msg"><br class="gmail_msg"></div><div class="gmail_msg">route {</div><div class="gmail_msg"><br class="gmail_msg"></div><div class="gmail_msg">        # per request initial checks</div><div class="gmail_msg">        route(REQINIT);</div><div class="gmail_msg"><br class="gmail_msg"></div><div class="gmail_msg">        # handle requests within SIP dialogs</div><div class="gmail_msg">        route(WITHINDLG);</div><div class="gmail_msg"><br class="gmail_msg"></div><div class="gmail_msg">        ### only initial requests (no To tag)</div><div class="gmail_msg"><br class="gmail_msg"></div><div class="gmail_msg">        # CANCEL processing</div><div class="gmail_msg">        if (is_method("CANCEL"))</div><div class="gmail_msg">        {</div><div class="gmail_msg">                if (t_check_trans())</div><div class="gmail_msg">                        t_relay();</div><div class="gmail_msg">                exit;</div><div class="gmail_msg">        }</div><div class="gmail_msg"><br class="gmail_msg"></div><div class="gmail_msg">        t_check_trans();</div><div class="gmail_msg"><br class="gmail_msg"></div><div class="gmail_msg">        # record routing for dialog forming requests (in case they are routed)</div><div class="gmail_msg">        # - remove preloaded route headers</div><div class="gmail_msg">        remove_hf("Route");</div><div class="gmail_msg">        if (is_method("INVITE|SUBSCRIBE"))</div><div class="gmail_msg">                record_route();</div><div class="gmail_msg"><br class="gmail_msg"></div><div class="gmail_msg">        # account only INVITEs</div><div class="gmail_msg">        if (is_method("INVITE"))</div><div class="gmail_msg">        {</div><div class="gmail_msg">                setflag(1); # do accounting</div><div class="gmail_msg">        }</div><div class="gmail_msg">        # dispatch destinations</div><div class="gmail_msg">        route(DISPATCH);</div><div class="gmail_msg"><br class="gmail_msg"></div><div class="gmail_msg">        # handle presence related requests</div><div class="gmail_msg">        route(PRESENCE);</div><div class="gmail_msg"><br class="gmail_msg"></div><div class="gmail_msg">        # handle registrations</div><div class="gmail_msg">        route(REGISTRAR);</div><div class="gmail_msg"><br class="gmail_msg"></div><div class="gmail_msg">        if ($rU==$null)</div><div class="gmail_msg">        {</div><div class="gmail_msg">                # request with no Username in RURI</div><div class="gmail_msg">                sl_send_reply("484","Address Incomplete");</div><div class="gmail_msg">                exit;</div><div class="gmail_msg">        }</div><div class="gmail_msg"><br class="gmail_msg"></div><div class="gmail_msg">}</div><div class="gmail_msg"><br class="gmail_msg"></div><div class="gmail_msg"><br class="gmail_msg"></div><div class="gmail_msg">route[RELAY] {</div><div class="gmail_msg">        if (!t_relay()) {</div><div class="gmail_msg">                sl_reply_error();</div><div class="gmail_msg">        }</div><div class="gmail_msg">        exit;</div><div class="gmail_msg">}</div><div class="gmail_msg"><br class="gmail_msg"></div><div class="gmail_msg"># Per SIP request initial checks</div><div class="gmail_msg">route[REQINIT] {</div><div class="gmail_msg">        if (!mf_process_maxfwd_header("10")) {</div><div class="gmail_msg">                sl_send_reply("483","Too Many Hops");</div><div class="gmail_msg">                exit;</div><div class="gmail_msg">        }</div><div class="gmail_msg"><br class="gmail_msg"></div><div class="gmail_msg">        if(!sanity_check("1511", "7"))</div><div class="gmail_msg">        {</div><div class="gmail_msg">                xlog("Malformed SIP message from $si:$sp\n");</div><div class="gmail_msg">                exit;</div><div class="gmail_msg">        }</div><div class="gmail_msg">}</div><div class="gmail_msg"><br class="gmail_msg"></div><div class="gmail_msg"># Handle requests within SIP dialogs</div><div class="gmail_msg">route[WITHINDLG] {</div><div class="gmail_msg">        if (has_totag()) {</div><div class="gmail_msg">                # sequential request withing a dialog should</div><div class="gmail_msg">                # take the path determined by record-routing</div><div class="gmail_msg">                if (loose_route()) {</div><div class="gmail_msg">                        if (is_method("BYE")) {</div><div class="gmail_msg">                                setflag(1); # do accounting ...</div><div class="gmail_msg">                                setflag(3); # ... even if the transaction fails</div><div class="gmail_msg">                        }</div><div class="gmail_msg">                        route(RELAY);</div><div class="gmail_msg">                } else {</div><div class="gmail_msg">                        if (is_method("SUBSCRIBE") && uri == myself) {</div><div class="gmail_msg">                                # in-dialog subscribe requests</div><div class="gmail_msg">                                route(PRESENCE);</div><div class="gmail_msg">                                exit;</div><div class="gmail_msg">                        }</div><div class="gmail_msg">                        if ( is_method("ACK") ) {</div><div class="gmail_msg">                                if ( t_check_trans() ) {</div><div class="gmail_msg">                                        # non loose-route, but stateful ACK;</div><div class="gmail_msg">                                        # must be ACK after a 487 or e.g. 404 from upstream server</div><div class="gmail_msg">                                        t_relay();</div><div class="gmail_msg">                                        exit;</div><div class="gmail_msg">                                } else {</div><div class="gmail_msg">                                        # ACK without matching transaction ... ignore and discard.</div><div class="gmail_msg">                                        exit;</div><div class="gmail_msg">                                }</div><div class="gmail_msg">                        }</div><div class="gmail_msg">                        sl_send_reply("404","Not here");</div><div class="gmail_msg">                }</div><div class="gmail_msg">                exit;</div><div class="gmail_msg">        }</div><div class="gmail_msg">}</div><div class="gmail_msg"><br class="gmail_msg"></div><div class="gmail_msg"># Handle SIP registrations</div><div class="gmail_msg">route[REGISTRAR] {</div><div class="gmail_msg">        if(!is_method("REGISTER"))</div><div class="gmail_msg">                return;</div><div class="gmail_msg">        sl_send_reply("404", "No registrar");</div><div class="gmail_msg">        exit;</div><div class="gmail_msg">}</div><div class="gmail_msg"><br class="gmail_msg"></div><div class="gmail_msg"># Presence server route</div><div class="gmail_msg">route[PRESENCE] {</div><div class="gmail_msg">        if(!is_method("PUBLISH|SUBSCRIBE"))</div><div class="gmail_msg">                return;</div><div class="gmail_msg"><br class="gmail_msg"></div><div class="gmail_msg">        sl_send_reply("404", "Not here");</div><div class="gmail_msg">        exit;</div><div class="gmail_msg">}</div><div class="gmail_msg"><br class="gmail_msg"></div><div class="gmail_msg"># Dispatch requests</div><div class="gmail_msg">route[DISPATCH] {</div><div class="gmail_msg">        # Destination types:</div><div class="gmail_msg">        # <a href="http://kamailio.org/docs/modules/4.2.x/modules/dispatcher.html#dispatcher.f.ds_select_dst" class="gmail_msg" target="_blank">http://kamailio.org/docs/modules/4.2.x/modules/dispatcher.html#dispatcher.f.ds_select_dst</a></div><div class="gmail_msg">        # 4 = round robin</div><div class="gmail_msg">        # 9 = weight-based</div><div class="gmail_msg">        # round robin dispatching on gateways group '1'</div><div class="gmail_msg">        if(!ds_select_dst("1", "9"))</div><div class="gmail_msg">        {</div><div class="gmail_msg">                send_reply("404", "No destination");</div><div class="gmail_msg">                exit;</div><div class="gmail_msg">        }</div><div class="gmail_msg"><br class="gmail_msg"></div><div class="gmail_msg">        t_set_fr(0,2000);</div><div class="gmail_msg">        t_on_failure("ROUTE_ADVANCE");</div><div class="gmail_msg"><br class="gmail_msg"></div><div class="gmail_msg">        route(RELAY);</div><div class="gmail_msg">        exit;</div><div class="gmail_msg">}</div><div class="gmail_msg"><br class="gmail_msg"></div><div class="gmail_msg">event_route[dispatcher:dst-down] {</div><div class="gmail_msg">        xlog("L_ERR", "Destination down: $rm $ru ($du)\n");</div><div class="gmail_msg">}</div><div class="gmail_msg"><br class="gmail_msg"></div><div class="gmail_msg">event_route[dispatcher:dst-up] {</div><div class="gmail_msg">        xlog("L_ERR", "Destination up: $rm $ru\n");</div><div class="gmail_msg">}</div><div class="gmail_msg"><br class="gmail_msg"></div><div class="gmail_msg">failure_route[ROUTE_ADVANCE] {</div><div class="gmail_msg"><br class="gmail_msg"></div><div class="gmail_msg">        if (t_is_canceled()) {</div><div class="gmail_msg">                exit;</div><div class="gmail_msg">        }</div><div class="gmail_msg"><br class="gmail_msg"></div><div class="gmail_msg">        xlog("L_NOTICE", "Media server $du failed to answer, selecting other one!\n");</div><div class="gmail_msg"><br class="gmail_msg"></div><div class="gmail_msg">        if (t_check_status("503") || (t_branch_timeout() and !t_branch_replied())) {</div><div class="gmail_msg"><br class="gmail_msg"></div><div class="gmail_msg">                ds_mark_dst("ip");</div><div class="gmail_msg">                # select the new destination</div><div class="gmail_msg">                if(ds_next_dst())</div><div class="gmail_msg">                {</div><div class="gmail_msg">                        # again set local timeout for reply</div><div class="gmail_msg">                        # xlog("L_NOTICE", "Selecting next route upon failure\n");</div><div class="gmail_msg">                        t_set_fr(0,2000);</div><div class="gmail_msg">                        t_on_failure("ROUTE_ADVANCE");</div><div class="gmail_msg">                        route(RELAY);</div><div class="gmail_msg">                        exit;</div><div class="gmail_msg">                }</div><div class="gmail_msg">                else</div><div class="gmail_msg">                {</div><div class="gmail_msg">                        #last available node failed to reply, no other destinations available</div><div class="gmail_msg">                        send_reply("404", "No destination");</div><div class="gmail_msg">                        xlog("L_NOTICE","No destination, sent 404\n");</div><div class="gmail_msg">                        exit;</div><div class="gmail_msg">                }</div><div class="gmail_msg"><br class="gmail_msg"></div><div class="gmail_msg">        } else {</div><div class="gmail_msg">                xlog("L_NOTICE","Unhandled failured route!\n");</div><div class="gmail_msg">        }</div><div class="gmail_msg"><br class="gmail_msg"></div><div class="gmail_msg">}</div></div><div class="gmail_msg"><br class="gmail_msg"></div></div></div>