Features

July 24, 2014 ยท View on GitHub

NkSIP main features are:

  • Full support for all curently defined SIP methods: INVITE, ACK, REGISTER, OPTIONS, INFO, UPDATE, PRACK, SUBSCRIBE, NOTIFY, REFER, PUBLISH and MESSAGE, as an UAC, an UAS or and Proxy.
  • Can be used to very easily develop any possible SIP application: endpoints, stateful proxies with serial and parallel forking, stateless proxies, B2BUAs, application servers, registrars, SBCs, load generators, etc.
  • Transports UDP, TCP, TLS, SCTP, WS and WSS (websockets) are available, all of them capable of handling thousands of simultaneous sessions.
  • Full SIP Event support.
  • A written from scratch, fully typed 100% Erlang code with few external dependencies.
  • Robust and highly scalable, using all available processor cores automatically.
  • More than 150 tests covering nearly all of the functionality.
  • Sophisticated plugin mechanism, that adds very low overhead to the core.
  • Hot, on-the-fly core and application configuration and code upgrades.
  • IPv6 support and IPv4 <-> IPv6 bridge.
  • Full support for NAPTR and SRV location, including priority and weights.
  • Dialog and SDP processing utility functions, including media start and stop detection.

Included standard plugins:

  • Digest Authentication.
  • Registrar Server and Automatic Registrations.
  • Event State Compositor.
  • Reliable provisional responses.
  • Session Timers
  • SIP REFER.
  • Outbound and GRUU.
  • Trace and Statistics.

Implemented RFCs

In the current version the following RFCs are fully implemented (see notes):

RFCDescriptionNotes
RFC2617Digest authentication
RFC2782DNS SRV
RFC2915DNS NAPTR
RFC2976INFO
RFC3261SIP 2.0
RFC3262Reliable provisional responses
RFC3263Locating SIP Services
RFC3264Offer/Answer Model
RFC3265Event Notification
RFC3311UPDATE
RFC3326Reason
RFC3327Registering Non-Adjacent Contactspath
RFC3428MESSAGE
RFC3515REFER
RFC3581RPort
RFC3608Service-Route
RFC3903PUBLISH
RFC4168SCTP TransportNo TLS-SCTP
RFC4475Torture TestsIncluded in unit tests
RFC4566SDPOnly parser and generator
RFC5057Multiple Dialogs
RFC5118IPv6 Torture TestsIncluded in unit tests
RFC5389STUNBasic STUN client and server (no IPv6)
RFC5626Outbound
RFC5627GRUU
RFC60262xx responses
RFC6157IPv6 Transition
RFC6665Event NotificationObsoletes 3265. GRUU support pending
RFC7118SIP over WebsocketsClient and server support