In my ‘kamctlrc’ file :

 

## path to FIFO file for engine RPCFIFO

RPCFIFOPATH="/var/run/kamailio/kamailio_rpc_fifo"

#RPCFIFOPATH="/tmp/kamailio_rpc_fifo"

 

In my ‘kamailio.cfg’ :

 

!!ifndef DEFINE_FIFO_NAME

!!define DEFINE_FIFO_NAME "/var/run/kamailio/kamailio_rpc_fifo"

!!endif  

 

 

modparam("jsonrpcs", "pretty_format", 1)

modparam("jsonrpcs", "transport", 2)

modparam("jsonrpcs", "fifo_name", DEFINE_FIFO_NAME)

modparam("jsonrpcs", "fifo_mode", 0755)

modparam("jsonrpcs", "fifo_group", "kamailio")

modparam("jsonrpcs", "fifo_user", "kamailio")

 

 

kamailio doesn’t start. It reports ‘Permission denied’ :

 

Mar 24 17:31:21 localhost /usr/sbin/kamailio[1138]: ERROR: jsonrpcs [jsonrpcs_fifo.c:144]: jsonrpc_init_fifo_server(): Can't create FIFO: Permission denied (mode=493)

Mar 24 17:31:21 localhost /usr/sbin/kamailio[1138]: CRITICAL: jsonrpcs [jsonrpcs_fifo.c:489]: jsonrpc_fifo_process(): failed to init jsonrpc fifo server

Mar 24 17:31:21 localhost /usr/sbin/kamailio[1120]: ALERT: <core> [main.c:741]: handle_sigs(): child process 1138 exited normally, status=255

Mar 24 17:31:21 localhost /usr/sbin/kamailio[1130]: DEBUG: <core> [core/sr_module.c:920]: init_mod_child(): rank 4: tm

Mar 24 17:31:21 localhost /usr/sbin/kamailio[1137]: DEBUG: <core> [core/sr_module.c:920]: init_mod_child(): rank -1: tm

Mar 24 17:31:21 localhost /usr/sbin/kamailio[1127]: DEBUG: htable [htable.c:226]: child_init(): rank is (1)

Mar 24 17:31:21 localhost /usr/sbin/kamailio[1120]: INFO: <core> [main.c:759]: handle_sigs(): terminating due to SIGCHLD

Mar 24 17:31:21 localhost /usr/sbin/kamailio[1139]: DEBUG: <core> [core/sr_module.c:920]: init_mod_child(): rank -2: kex

Mar 24 17:31:21 localhost /usr/sbin/kamailio[1130]: DEBUG: tm [callid.c:137]: child_init_callid(): callid: '15b1f0d63a718465-1130@129.227.83.108'

Mar 24 17:31:21 localhost /usr/sbin/kamailio[1137]: DEBUG: tm [callid.c:137]: child_init_callid(): callid: '15b1f0d63a718465-1137@129.227.83.108'

Mar 24 17:31:21 localhost /usr/sbin/kamailio[1127]: DEBUG: <core> [core/action.c:1656]: run_child_one_init_route(): attempting to run event_route[core:worker-one-init]

Mar 24 17:31:21 localhost /usr/sbin/kamailio[1136]: INFO: <core> [main.c:814]: sig_usr(): signal 15 received

Mar 24 17:31:21 localhost /usr/sbin/kamailio[1135]: INFO: <core> [main.c:814]: sig_usr(): signal 15 received

Mar 24 17:31:21 localhost /usr/sbin/kamailio[1134]: INFO: <core> [main.c:814]: sig_usr(): signal 15 received

Mar 24 17:31:21 localhost /usr/sbin/kamailio[1133]: INFO: <core> [main.c:814]: sig_usr(): signal 15 received

Mar 24 17:31:21 localhost /usr/sbin/kamailio[1132]: INFO: <core> [main.c:814]: sig_usr(): signal 15 received

Mar 24 17:31:21 localhost /usr/sbin/kamailio[1131]: INFO: <core> [main.c:814]: sig_usr(): signal 15 received

Mar 24 17:31:21 localhost /usr/sbin/kamailio[1129]: INFO: <core> [main.c:814]: sig_usr(): signal 15 received

Mar 24 17:31:21 localhost /usr/sbin/kamailio[1128]: INFO: <core> [main.c:814]: sig_usr(): signal 15 received

Mar 24 17:31:21 localhost /usr/sbin/kamailio[1120]: ERROR: ctl [ctl.c:387]: mod_destroy(): ERROR: ctl: could not delete unix socket /var/run/kamailio//kamailio_ctl: Permission denied (13)

Mar 24 17:31:21 localhost /usr/sbin/kamailio[1120]: ERROR: jsonrpcs [jsonrpcs_fifo.c:595]: jsonrpc_fifo_destroy(): FIFO stat failed: Permission denied

 

If I replace the values in the 2 files as appropriate :

 

In the ‘kamctlrc” to RPCFIFOPATH="/tmp/kamailio_rpc_fifo"

 

In the ‘kamailio.cfg” to !!define DEFINE_FIFO_NAME "/tmp/kamailio_rpc_fifo"

 

Then kamailo starts :

 

[root@vm-vse02-siprouter1 ~]# ps -ef |grep kam

kamailio  1235     1  0 17:37 ?        00:00:00 /usr/sbin/kamailio -P /var/run/kamailio.pid -m 1024 -M 8 -u kamailio -g kamailio

kamailio  1236  1235  0 17:37 ?        00:00:00 /usr/sbin/kamailio -P /var/run/kamailio.pid -m 1024 -M 8 -u kamailio -g kamailio

kamailio  1237  1235  0 17:37 ?        00:00:00 /usr/sbin/kamailio -P /var/run/kamailio.pid -m 1024 -M 8 -u kamailio -g kamailio

kamailio  1238  1235  0 17:37 ?        00:00:00 /usr/sbin/kamailio -P /var/run/kamailio.pid -m 1024 -M 8 -u kamailio -g kamailio

kamailio  1239  1235  0 17:37 ?        00:00:00 /usr/sbin/kamailio -P /var/run/kamailio.pid -m 1024 -M 8 -u kamailio -g kamailio

kamailio  1240  1235  0 17:37 ?        00:00:00 /usr/sbin/kamailio -P /var/run/kamailio.pid -m 1024 -M 8 -u kamailio -g kamailio

kamailio  1241  1235  0 17:37 ?        00:00:00 /usr/sbin/kamailio -P /var/run/kamailio.pid -m 1024 -M 8 -u kamailio -g kamailio

kamailio  1242  1235  0 17:37 ?        00:00:00 /usr/sbin/kamailio -P /var/run/kamailio.pid -m 1024 -M 8 -u kamailio -g kamailio

kamailio  1243  1235  0 17:37 ?        00:00:00 /usr/sbin/kamailio -P /var/run/kamailio.pid -m 1024 -M 8 -u kamailio -g kamailio

kamailio  1244  1235  0 17:37 ?        00:00:00 /usr/sbin/kamailio -P /var/run/kamailio.pid -m 1024 -M 8 -u kamailio -g kamailio

kamailio  1245  1235  0 17:37 ?        00:00:00 /usr/sbin/kamailio -P /var/run/kamailio.pid -m 1024 -M 8 -u kamailio -g kamailio

kamailio  1246  1235  0 17:37 ?        00:00:00 /usr/sbin/kamailio -P /var/run/kamailio.pid -m 1024 -M 8 -u kamailio -g kamailio

kamailio  1247  1235  0 17:37 ?        00:00:00 /usr/sbin/kamailio -P /var/run/kamailio.pid -m 1024 -M 8 -u kamailio -g kamailio

kamailio  1248  1235  0 17:37 ?        00:00:00 /usr/sbin/kamailio -P /var/run/kamailio.pid -m 1024 -M 8 -u kamailio -g kamailio

root      1251  1165  0 17:37 pts/0    00:00:00 grep --color=auto kam

 

and I can get result from kamctl/kamcmd commands :

[root@vm-vse02-siprouter1 ~]# kamctl dispatcher dump

which: no gdb in (/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/)

{

  "jsonrpc":  "2.0",

  "result": {

    "NRSETS": 1,

    "RECORDS":  [{

        "SET":  {

          "ID": 1,

          "TARGETS":  [{

              "DEST": {

                "URI":  "sip:cs1-tool-misc.orange-voicemail.net:5060",

                "FLAGS":  "AP",

                "PRIORITY": 0

              }

            }]

        }

      }]

  },

  "id": 1301

}

[root@vm-vse02-siprouter1 ~]# kamcmd dispatcher.list

{

        NRSETS: 1

        RECORDS: {

                SET: {

                        ID: 1

                        TARGETS: {

                                DEST: {

                                        URI: sip:cs1-tool-misc.orange-voicemail.net:5060

                                        FLAGS: AP

                                        PRIORITY: 0

                                }

                        }

                }

        }

}

 

 

Now, if I change the fifo patch and name to “/var/run/kamailio/kamailio_rpc_fifo’ and apply the following rights on /var/run/  to:

 

chmod 755 kamalio/

chown + kamailio:kamailio kamailio/

 

then kamailio starts.

 

Is there a reason for these results ?

 

Thanks in advance for your answer.

 

Cordialement

Patrick GINHOUX