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@lists.sip-router.org]
De la part de Mostafa Zare
Envoyé : mercredi 15 mars 2017 16:39
À : sr-users@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?
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.
# *** 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"
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
# listen=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:
# 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");
}
}