NkSIP main features:
- Full RFC3261 coverage, including SIP Registrar and Event State Compositor (using the RAM built-in store or any other external database).
- Full support for PRACK, INFO, UPDATE, SUBSCRIBE, NOTIFY, REFER, PUBLISH and MESSAGE, as UAC, UAS and Proxy.
- A written from scratch, fully typed Erlang code easy to understand and extend. Unit tests cover nearly all of the functionality.
- Hot core and application code upgrade.
- Very few external dependencies: Lager for error logging and Cowboy as TCP/SSL acceptor and Websocket server.
- UDP, TCP, TLS and SCTP transports, capable of handling thousands of simultaneous sessions.
- Stateful proxy servers with serial and parallel forking.
- Stateless proxy servers, even using TCP/TLS.
- Full IPv6 support. NkSIP can connect IPv4-only with IPv6-only hosts.
- Full support for NAPTR and SRV location, including priority and weights.
- Automatic registrations and timed pings.
- Dialog and SDP media start and stop detection.
- SDP processing utilities.
- Powerful event support.
- Simple STUN server (for future SIP Outbound support).
- Full RFC4475 and RFC5518 Torture Tests passing.
- Robust and highly scalable, using all available processor cores.
In the current version the following RFCs are fully implemented (see notes):
RFC | Description | Notes |
---|---|---|
RFC2617 | Digest authentication | |
RFC2782 | DNS SRV | |
RFC2915 | DNS NAPTR | |
RFC2976 | INFO | |
RFC3261 | SIP 2.0 | |
RFC3262 | Reliable provisional responses | |
RFC3263 | Locating SIP Services | |
RFC3264 | Offer/Answer Model | |
RFC3265 | Event Notification | |
RFC3311 | UPDATE | |
RFC3326 | Reason | |
RFC3327 | Registering Non-Adjacent Contacts | path |
RFC3428 | MESSAGE | |
RFC3515 | REFER | |
RFC3581 | RPort | |
RFC3608 | Service-Route | |
RFC3903 | PUBLISH | |
RFC4168 | SCTP Transport | No TLS-SCTP |
RFC4475 | Torture Tests | Included in unit tests |
RFC4566 | SDP | Only parser and generator |
RFC5057 | Multiple Dialogs | |
RFC5118 | IPv6 Torture Tests | Included in unit tests |
RFC5389 | STUN | Basic STUN client and server (no IPv6) |
RFC6026 | 2xx responses | |
RFC6157 | IPv6 Transition | |
RFC6665 | Event Notification | Obsoletes 3265. GRUU support pending |