[SR-Users] mi_fifo: No module matching <jsonrpcs> found

Ginhoux, Patrick patrick.ginhoux at fr.unisys.com
Wed Mar 15 18:49:36 CET 2017


Hi,

I’m a newbie too and I’m looking at the 5.0.0 version.

For your issue, it seems you want to use jsonrpcs module, but it is not loaded.

Try to add the “loadmodule "jsonrpcs.so" in your file.

Cordialement
Patrick GINHOUX

De : sr-users [mailto:sr-users-bounces at lists.sip-router.org] De la part de Mostafa Zare
Envoyé : mercredi 15 mars 2017 16:39
À : sr-users at lists.sip-router.org
Objet : [SR-Users] mi_fifo: No module matching <jsonrpcs> found

hi guys
i'm newbie to kamailio.
i've installed kamailio version 5 (and all the modules) from pkgs on a jessie debian.
i have the below config on my kamailio.cfg
when i try to start kamailio service it throws the following error.
what's the problem?


  *   systemctl status kamailio:
kamailio.service - Kamailio (OpenSER) - the Open Source SIP Server
   Loaded: loaded (/lib/systemd/system/kamailio.service; enabled)
   Active: failed (Result: exit-code) since Wed 2017-03-15 19:01:17 IRST; 10s ago
  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)
 Main PID: 1576 (code=exited, status=0/SUCCESS)

Mar 15 19:01:17 kamailio-debian kamailio[9377]: ERROR: <core> [core/modparam.c:152]: set_mod_param_regex(): No module matching <jsonrpcs> found
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
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>
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
Mar 15 19:01:17 kamailio-debian kamailio[9377]: ERROR: bad config file (4 errors)
Mar 15 19:01:17 kamailio-debian kamailio[9377]: INFO: <core> [core/sctp_core.c:53]: sctp_core_destroy(): SCTP API not initialized
Mar 15 19:01:17 kamailio-debian kamailio[9377]: loading modules under config path: /usr/lib/x86_64-linux-gnu/kamailio/modules/
Mar 15 19:01:17 kamailio-debian systemd[1]: kamailio.service: control process exited, code=exited status=255
Mar 15 19:01:17 kamailio-debian systemd[1]: Failed to start Kamailio (OpenSER) - the Open Source SIP Server.
Mar 15 19:01:17 kamailio-debian systemd[1]: Unit kamailio.service entered failed state.



  *   kamailio.cfg:
# *** To run in debug mode:
#     - define WITH_DEBUG
#

#!ifndef DBURL
#!define DBURL "mysql://kamailio:kamailiorw@localhost/kamailio"
#!endif

####### Global Parameters #########

#!ifdef WITH_DEBUG
debug=4
log_stderror=yes
#!else
debug=2
log_stderror=no
#!endif

memdbg=5
memlog=5

# log_facility=LOG_LOCAL0
# Ds increasing debug...
debug=2

fork=yes
children=4

/* comment the next line to enable TCP */
disable_tcp=yes

/* uncomment the next line to disable the auto discovery of local aliases
   based on revers DNS on IPs (default on) */
auto_aliases=no

/* add local domain aliases */
# alias="mysipserver.com<http://mysipserver.com>"

port=5060

/* uncomment and configure the following line if you want Kamailio to
   bind on a specific interface/port/proto (default bind on all available) */
# listen=udp:0.0.0.0:5060<http://0.0.0.0:5060>
# listen=127.0.0.1:5060<http://127.0.0.1:5060>


sip_warning=no

####### Modules Section ########

# set paths to location of modules (to sources or installation folders)
mpath="/usr/lib/x86_64-linux-gnu/kamailio/modules/"

#!ifdef WITH_MYSQL
loadmodule "db_mysql.so"
#!endif

loadmodule "mi_fifo.so"
loadmodule "kex.so"
loadmodule "tm.so"
loadmodule "tmx.so"
loadmodule "sl.so"
loadmodule "rr.so"
loadmodule "pv.so"
loadmodule "maxfwd.so"
loadmodule "textops.so"
loadmodule "siputils.so"
loadmodule "xlog.so"
loadmodule "sanity.so"
loadmodule "ctl.so"
loadmodule "mi_rpc.so"
loadmodule "acc.so"
loadmodule "dispatcher.so"


# ----------------- setting module-specific parameters ---------------


# ----- mi_fifo params -----
modparam("jsonrpcs", "fifo_name", "/var/run/kamailio/kamailio_rpc.fifo")


# ----- rr params -----
# add value to ;lr param to cope with most of the UAs
modparam("rr", "enable_full_lr", 1)
# do not append from tag to the RR (no need for this script)
modparam("rr", "append_fromtag", 0)


# ----- acc params -----
modparam("acc", "log_flag", 1)
modparam("acc", "failed_transaction_flag", 3)
modparam("acc", "log_extra",
        "src_user=$fU;src_domain=$fd;dst_ouser=$tU;dst_user=$rU;dst_domain=$rd;src_ip=$si")

# ----- tm params -----
modparam("tm", "fr_timer", 2000)
modparam("tm", "fr_inv_timer", 40000)

# ----- dispatcher params -----
# modparam("dispatcher", "db_url", DBURL)
# modparam("dispatcher", "table_name", "dispatcher")

modparam("dispatcher", "list_file", "/etc/kamailio/dispatcher.list")
modparam("dispatcher", "flags", 2)
modparam("dispatcher", "dst_avp", "$avp(AVP_DST)")
modparam("dispatcher", "grp_avp", "$avp(AVP_GRP)")
modparam("dispatcher", "cnt_avp", "$avp(AVP_CNT)")

modparam("dispatcher", "ds_probing_mode", 1)
modparam("dispatcher", "ds_ping_interval", 15)
modparam("dispatcher", "ds_probing_threshhold", 1)
modparam("dispatcher", "ds_ping_reply_codes", "class=2;class=3;class=4")


####### Routing Logic ########


# main request routing logic

route {

        # per request initial checks
        route(REQINIT);

        # handle requests within SIP dialogs
        route(WITHINDLG);

        ### only initial requests (no To tag)

        # CANCEL processing
        if (is_method("CANCEL"))
        {
                if (t_check_trans())
                        t_relay();
                exit;
        }

        t_check_trans();

        # record routing for dialog forming requests (in case they are routed)
        # - remove preloaded route headers
        remove_hf("Route");
        if (is_method("INVITE|SUBSCRIBE"))
                record_route();

        # account only INVITEs
        if (is_method("INVITE"))
        {
                setflag(1); # do accounting
        }
        # dispatch destinations
        route(DISPATCH);

        # handle presence related requests
        route(PRESENCE);

        # handle registrations
        route(REGISTRAR);

        if ($rU==$null)
        {
                # request with no Username in RURI
                sl_send_reply("484","Address Incomplete");
                exit;
        }

}


route[RELAY] {
        if (!t_relay()) {
                sl_reply_error();
        }
        exit;
}

# Per SIP request initial checks
route[REQINIT] {
        if (!mf_process_maxfwd_header("10")) {
                sl_send_reply("483","Too Many Hops");
                exit;
        }

        if(!sanity_check("1511", "7"))
        {
                xlog("Malformed SIP message from $si:$sp\n");
                exit;
        }
}

# Handle requests within SIP dialogs
route[WITHINDLG] {
        if (has_totag()) {
                # sequential request withing a dialog should
                # take the path determined by record-routing
                if (loose_route()) {
                        if (is_method("BYE")) {
                                setflag(1); # do accounting ...
                                setflag(3); # ... even if the transaction fails
                        }
                        route(RELAY);
                } else {
                        if (is_method("SUBSCRIBE") && uri == myself) {
                                # in-dialog subscribe requests
                                route(PRESENCE);
                                exit;
                        }
                        if ( is_method("ACK") ) {
                                if ( t_check_trans() ) {
                                        # non loose-route, but stateful ACK;
                                        # must be ACK after a 487 or e.g. 404 from upstream server
                                        t_relay();
                                        exit;
                                } else {
                                        # ACK without matching transaction ... ignore and discard.
                                        exit;
                                }
                        }
                        sl_send_reply("404","Not here");
                }
                exit;
        }
}

# Handle SIP registrations
route[REGISTRAR] {
        if(!is_method("REGISTER"))
                return;
        sl_send_reply("404", "No registrar");
        exit;
}

# Presence server route
route[PRESENCE] {
        if(!is_method("PUBLISH|SUBSCRIBE"))
                return;

        sl_send_reply("404", "Not here");
        exit;
}

# Dispatch requests
route[DISPATCH] {
        # Destination types:
        # http://kamailio.org/docs/modules/4.2.x/modules/dispatcher.html#dispatcher.f.ds_select_dst
        # 4 = round robin
        # 9 = weight-based
        # round robin dispatching on gateways group '1'
        if(!ds_select_dst("1", "9"))
        {
                send_reply("404", "No destination");
                exit;
        }

        t_set_fr(0,2000);
        t_on_failure("ROUTE_ADVANCE");

        route(RELAY);
        exit;
}

event_route[dispatcher:dst-down] {
        xlog("L_ERR", "Destination down: $rm $ru ($du)\n");
}

event_route[dispatcher:dst-up] {
        xlog("L_ERR", "Destination up: $rm $ru\n");
}

failure_route[ROUTE_ADVANCE] {

        if (t_is_canceled()) {
                exit;
        }

        xlog("L_NOTICE", "Media server $du failed to answer, selecting other one!\n");

        if (t_check_status("503") || (t_branch_timeout() and !t_branch_replied())) {

                ds_mark_dst("ip");
                # select the new destination
                if(ds_next_dst())
                {
                        # again set local timeout for reply
                        # xlog("L_NOTICE", "Selecting next route upon failure\n");
                        t_set_fr(0,2000);
                        t_on_failure("ROUTE_ADVANCE");
                        route(RELAY);
                        exit;
                }
                else
                {
                        #last available node failed to reply, no other destinations available
                        send_reply("404", "No destination");
                        xlog("L_NOTICE","No destination, sent 404\n");
                        exit;
                }

        } else {
                xlog("L_NOTICE","Unhandled failured route!\n");
        }

}

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.sip-router.org/pipermail/sr-users/attachments/20170315/b3ea1ec2/attachment.html>


More information about the sr-users mailing list