Skip to main content

Implementation of FreeSWITCH Event Socket protocol with asyncio

Project description

What is Genesis?

Genesis is a python library designed to build applications (with asyncio) that work with freeswitch through ESL.

Tests badge Build badge License badge Pypi Version badge Pypi python version badge Pypi wheel badge

What is FreeSwitch?

FreeSWITCH is a free and open-source application server for real-time communication, WebRTC, telecommunications, video and Voice over Internet Protocol (VoIP). Multiplatform, it runs on Linux, Windows, macOS and FreeBSD. It is used to build PBX systems, IVR services, videoconferencing with chat and screen sharing, wholesale least-cost routing, Session Border Controller (SBC) and embedded communication appliances. It has full support for encryption, ZRTP, DTLS, SIPS. It can act as a gateway between PSTN, SIP, WebRTC, and many other communication protocols. Its core library, libfreeswitch, can be embedded into other projects. It is licensed under the Mozilla Public License (MPL), a free software license.

By wikipedia.

What is ESL?

ESL is a way to communicate with FreeSwitch. See more details here.

Why asyncio?

Asynchronous programming is a type of parallel programming in which a unit of work is allowed to run separately from the primary application thread. When the work is complete, it notifies the main thread about completion or failure of the worker thread. There are numerous benefits to using it, such as improved application performance and enhanced responsiveness. We adopted this way of working, as integrating genesis with other applications is simpler, since you only need to deal with python's native asynchronous programming interface.

Installation

Install Genesis using pip:

pip install genesis

Docs

Full documentation is available on the documentation website. To preview the docs locally, install Hugo and run:

hugo --source docs --serve

Running tests

Install development dependencies with Poetry and execute the test suite using tox:

poetry install
tox

How to contribute?

If you are thinking of contributing in any way to the project, you will be very welcome. Whether it's improving existing documentation, suggesting new features or running existing bugs, it's only by working together that the project will grow.

Do not forget to see our Contributing Guide and our Code of Conduct to always be aligned with the ideas of the project.

Contributors

Will be welcome ❤️

Author


@Otoru

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

genesis-0.9.2.tar.gz (16.8 kB view details)

Uploaded Source

Built Distribution

genesis-0.9.2-py3-none-any.whl (22.2 kB view details)

Uploaded Python 3

File details

Details for the file genesis-0.9.2.tar.gz.

File metadata

  • Download URL: genesis-0.9.2.tar.gz
  • Upload date:
  • Size: 16.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/2.1.3 CPython/3.10.2 Linux/6.11.0-1015-azure

File hashes

Hashes for genesis-0.9.2.tar.gz
Algorithm Hash digest
SHA256 3ab27e6381ac4713e3d9314e33eb107616ae7a00642cc16ccc034d07c1dc86e5
MD5 e82a99e582d3667ccde612ffac7f52b3
BLAKE2b-256 0df791b680407558545e9ee1f3c62dfb1b4ae95992d1c14fc6bb29b401b25037

See more details on using hashes here.

File details

Details for the file genesis-0.9.2-py3-none-any.whl.

File metadata

  • Download URL: genesis-0.9.2-py3-none-any.whl
  • Upload date:
  • Size: 22.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/2.1.3 CPython/3.10.2 Linux/6.11.0-1015-azure

File hashes

Hashes for genesis-0.9.2-py3-none-any.whl
Algorithm Hash digest
SHA256 69cf194fef3947fa830bbbfcab88e37157016175192b1614106dc1f2a8076077
MD5 403def450b94e0aa2596ce7f5bcb7806
BLAKE2b-256 d272804278f101d94329bf27b60bc86b3099baf198da31d9c1da8250ac02980a

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page