This repository contains a collection of Python packages for OpenSIPS. These modules are designed to be as lightweight as possible and provide a simple interface for interacting with OpenSIPS. Alongside the source code, the repository also contains a Docker image that comes with the OpenSIPS Python packages pre-installed.
Currently, the following packages are available:
- mi- can be used to execute OpenSIPS Management Interface (MI) commands.
- event- allows you to use OpenSIPS Event Interface subscriptions.
- 
Install the package from source code: git clone cd python-opebsips pip install . or from PyPI: pip install opensips 
- 
Import the package in your Python code: from opensips.mi import OpenSIPSMI, OpenSIPSMIException from opensips.event import OpenSIPSEvent, OpenSIPSEventException, OpenSIPSEventHandler 
- 
Use the methods provided by the modules: mi = OpenSIPSMI('http', url='http://localhost:8888/mi') try: response = mi.execute('ps') # do something with the response except OpenSIPSMIException as e: # handle the exception mi_connector = OpenSIPSMI('http', url='http://localhost:8888/mi') hdl = OpenSIPSEventHandler(mi_connector, 'datagram', ip='127.0.0.1', port=50012) def some_callback(message): # do something with the message (it is a JSON object) pass ev: OpenSIPSEvent = None try: event = hdl.subscribe('E_PIKE_BLOCKED', some_callback) except OpenSIPSEventException as e: # handle the exception try: ev.unsubscribe('E_PIKE_BLOCKED') except OpenSIPSEventException as e: # handle the exception 
- MI - contains information about supported MI communication types and required parameters for each type.
- Event Interface - lists the supported event transport protocols and provides information about the required parameters for each protocol.
- Docker - provides information about the Docker image that contains the OpenSIPS Python packages.
After installing the package, you can use the provided opensips-mi script to run MI commands. This script takes the following arguments:
- -tor- --type- the type of the MI communication (- http,- datagramor- fifo).
- -ior- --ip- the IP address of the OpenSIPS server.
- -por- --port- the port of the OpenSIPS MI.
- -for- --fifo-file- the path to the FIFO file.
- -fbor- --fifo-fallback- the path to the FIFO fallback file.
- -fdor- --fifo-reply-dir- the directory where the FIFO reply files are stored.
- --env-file- the path to the environment file that contains the MI parameters (by default, the script will look for the- .envfile in the current directory); lower priority than the command line arguments.
- -dsor- --datagram-socket- Unix Datagram Socket.
- -dtor- --datagram-timeout- Datagram Socket timeout in seconds. Default is 0.1.
- -dbor- --datagram-buffer-size- Datagram Socket buffer size in bytes. Default is 32768.
# general usage
opensips-mi -t datagram -p 8080 command_name [command_args ...]
# this will execute get_statistics command
opensips-mi -t datagram -p 8080 -s core: shmem:
# you can pass json string as argument with -j flag for commands that require arrays as arguments
opensips-mi -t datagram -p 8080 get_statistics -j "{'statistics': ['core:', 'shmem:']}"You can use the provided opensips-event script to subscribe for OpenSIPS events. This script takes the following arguments:
- all the above arguments for the MI communication
- -Tor- --transport- the transport protocol to use (- datagram,- stream).
- -lior- --listen-ip- the IP address to listen on.
- -lpor- --listen-port- the port to listen on.
- -eor- --expire- the expiration time for the subscription.
- the event name to subscribe for.
- --env-file- the path to the environment file that contains the MI parameters (by default, the script will look for the- .envfile in the current directory); lower priority than the command line arguments.
opensips-event -t datagram -p 8080 -T datagram -lp 50012 -e 3600 E_PIKE_BLOCKEDThe python-opensips source code is licensed under the GNU General Public License v3.0
All documentation files (i.e. .md extension) are licensed under the Creative Common License 4.0
© 2024 - OpenSIPS Solutions
