An Erlang SIP application server framework for building robust and scalable server-side SIP applications like proxies, registrars, and B2BUAs.
NkSIP is an Erlang SIP application server framework that facilitates building server-side SIP applications such as proxies, registrars, and B2BUAs. It abstracts SIP complexity while allowing full control over requests and responses, enabling developers to create scalable and robust telephony solutions. The framework supports multiple transports and includes a plugin system for extensibility.
Erlang developers and engineers building SIP-based telephony infrastructure, including proxies, session border controllers, and real-time communication servers.
Developers choose NkSIP for its Erlang-based concurrency and fault tolerance, which ensure high scalability and reliability. Its plugin mechanism and hot upgrade capabilities allow for flexible, maintainable deployments without downtime.
Erlang SIP application server
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Implements all SIP methods like INVITE, REGISTER, and OPTIONS as UAC, UAS, or Proxy, enabling versatile server applications such as proxies and B2BUAs.
Supports UDP, TCP, TLS, SCTP, WS, and WSS transports, handling thousands of simultaneous sessions and automatically utilizing all processor cores for high performance, as noted with 3,000+ call cycles per second.
Features a low-overhead plugin mechanism for adding functionality like authentication and event handling without modifying the core, reducing development overhead.
Allows on-the-fly configuration, code upgrades, and behavior changes without downtime, leveraging Erlang's runtime for zero-duration maintenance.
Demands proficiency in Erlang and OTP, which has a steeper learning curve compared to more common languages, limiting accessibility for non-Erlang developers.
The README admits that Travis CI fails sometimes due to timers, indicating potential reliability issues in continuous integration and testing environments.
Core functionality requires implementing callback modules or using plugins, which can be complex for simple use cases, despite sane defaults.