Browse Source

set access rights for unix domain socket file and use sendto()

- example in config for using datagram network sockets
Daniel-Constantin Mierla 8 years ago
parent
commit
7b3071692b
2 changed files with 11 additions and 3 deletions
  1. 4 2
      kamcli/iorpc.py
  2. 7 1
      kamcli/kamcli.ini

+ 4 - 2
kamcli/iorpc.py

@@ -326,8 +326,10 @@ def command_jsonrpc_socket(ctx, dryrun, srvaddr, rcvaddr, oformat, cmd, params=[
             rcvaddr = rcvaddr + "." + str(os.getpid())
             rcvaddr = rcvaddr + "." + str(os.getpid())
             ctx.vlog("unix socket reply: " + rcvaddr)
             ctx.vlog("unix socket reply: " + rcvaddr)
             sockclient.bind( rcvaddr )
             sockclient.bind( rcvaddr )
-            sockclient.connect( srvaddr )
-            sockclient.send( scmd )
+            os.chmod(rcvaddr, 0660)
+            #sockclient.connect( srvaddr )
+            #sockclient.send( scmd )
+            sockclient.sendto( scmd, srvaddr )
 
 
             # receive the response (content, sockserver)
             # receive the response (content, sockserver)
             response = sockclient.recv(84000)
             response = sockclient.recv(84000)

+ 7 - 1
kamcli/kamcli.ini

@@ -37,17 +37,23 @@ type=jsonrpc
 [jsonrpc]
 [jsonrpc]
 ; transport - can be: fifo, socket
 ; transport - can be: fifo, socket
 transport=socket
 transport=socket
+
 ; path - where kamailio is listening for JSONRPC FIFO commands
 ; path - where kamailio is listening for JSONRPC FIFO commands
 path=/var/run/kamailio/kamailio_rpc.fifo
 path=/var/run/kamailio/kamailio_rpc.fifo
 rplnamebase=kamailio_rpc_reply.fifo
 rplnamebase=kamailio_rpc_reply.fifo
 rpldir=/tmp
 rpldir=/tmp
+
 ; srvaddr - where kamailio is listening for JSONRPC socket commands
 ; srvaddr - where kamailio is listening for JSONRPC socket commands
 ;   - it has to be a path to unix socket file or udp:ipaddr:port
 ;   - it has to be a path to unix socket file or udp:ipaddr:port
 srvaddr=/var/run/kamailio/kamailio_rpc.sock
 srvaddr=/var/run/kamailio/kamailio_rpc.sock
+; srvaddr=udp:127.0.0.1:9062
+
 ; rcvaddr - where kamclie is listening for the JSONRPC responses
 ; rcvaddr - where kamclie is listening for the JSONRPC responses
 ;   - it has to be a path to unix socket file or udp:ipaddr:port
 ;   - it has to be a path to unix socket file or udp:ipaddr:port
 ;   - pid of kamcli is added at the end to allow multiple use at same time
 ;   - pid of kamcli is added at the end to allow multiple use at same time
-rcvaddr=/var/run/kamailio/kamailio_rpc.sock
+rcvaddr=/var/run/kamailio/kamailio_rpc_reply.sock
+; rcvaddr=udp:127.0.0.1:9064
+
 ; outformat - how RPC result is printed, can be: json or yaml
 ; outformat - how RPC result is printed, can be: json or yaml
 ; - yaml is more compact output
 ; - yaml is more compact output
 outformat=yaml
 outformat=yaml