Skip to main content

OpenSIPS Python Packages

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.

Features

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.

Usage

  1. Install the package from source code:

    git clone
    cd python-opensips
    pip install .
    

    or from PyPI:

    pip install opensips
    
  2. Import the package in your Python code:

    from opensips.mi import OpenSIPSMI, OpenSIPSMIException
    from opensips.event import OpenSIPSEvent, OpenSIPSEventException, OpenSIPSEventHandler
    
  3. 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
    

Documentation

  • 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.

Scripts

MI

After installing the package, you can use the provided opensips-mi script to run MI commands. This script takes the following arguments:

  • -t or --type - the type of the MI communication (http, datagram or fifo).
  • -i or --ip - the IP address of the OpenSIPS server.
  • -p or --port - the port of the OpenSIPS MI.
  • -f or --fifo-file - the path to the FIFO file.
  • -fb or --fifo-fallback - the path to the FIFO fallback file.
  • -fd or --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 .env file in the current directory); lower priority than the command line arguments.
  • -ds or --datagram-socket - Unix Datagram Socket.
  • -dt or --datagram-timeout - Datagram Socket timeout in seconds. Default is 0.1.
  • -db or --datagram-buffer-size - Datagram Socket buffer size in bytes. Default is 32768.

Usage

# 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:']}"

Event

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
  • -T or --transport - the transport protocol to use (datagram, stream).
  • -li or --listen-ip - the IP address to listen on.
  • -lp or --listen-port - the port to listen on.
  • -e or --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 .env file in the current directory); lower priority than the command line arguments.

Usage

opensips-event -t datagram -p 8080 -T datagram -lp 50012 -e 3600 E_PIKE_BLOCKED

License

The 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 Commons License 4.0

Creative Commons Logo

© 2024 - OpenSIPS Solutions

Metadata

Release files for opensips 0.1.10

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for opensips 0.1.10
File Size Uploaded
opensips-0.1.10.tar.gz 44.7 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for opensips 0.1.10
File Interpreter ABI Platform
opensips-0.1.10-py3-none-any.whl Python 3 none any Details

Total release size: 96.1 kB

Release files / opensips-0.1.10.tar.gz

Download URL opensips-0.1.10.tar.gz
Size 44.7 kB
Tags Source
SHA-256 checksum
How to use checksums
307b5f7010a20ea2913c5ea28f7db4f18ad0069099b11796e86be2603664192e
BLAKE2b-256 checksum
How to use checksums
672b67795fdd90916b1f302654eed47cc3c422c1a7812a48cc5d8091a5c9fbd4
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 3, 2026.

Transparency log

Release files / opensips-0.1.10-py3-none-any.whl

Download URL opensips-0.1.10-py3-none-any.whl
Size 51.4 kB
Tags Python 3
SHA-256 checksum
How to use checksums
69e4297c83d024c8c1b3194fb8db55d0b25974fccdf8c9f9fe671bdfb7021851
BLAKE2b-256 checksum
How to use checksums
625a1dd2b4a0387053f744fa8fd216202661fb5075becb60e9f75cdd5e9a020b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 3, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.1.10 This release

2 release files

0.1.9

2 release files

0.1.8

2 release files

0.1.7

2 release files

0.1.6

2 release files

0.1.5

2 release files

0.1.4

2 release files

0.1.3

2 release files

0.1.2

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page