Skip to content

poroh/ersip

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Build Status Coverage Status

Erlang SIP and SDP library

Documentation

Full module documentation is available here.

Approach to design

What you cannot find in ersip:

  • Supervisors
  • Servers
  • ETS
  • Dependencies

You can find only pure functions that are compliant to SIP specification.

Real world examples

Working examples:

Provided primitives

Primitives that provided by SIP stack:

  • Connection parser split streams and retrieve low level SIP messages (ersip_conn)
  • Low level SIP message processing (ersip_msg)
  • Lazy high-level SIP message processing (ersip_sipmsg)
  • Transactions support (ersip_trans)
  • Basic UAS support (ersip_uas)
  • Registrar function support (ersip_registrar)
  • SIP stateful proxy function support (ersip_proxy)
  • SIP common dialog support (ersip_dialog)

Supported RFC

RFC supported in this SIP stack:

  • RFC 2543 SIP: Session Initiation Protocol (backward compatibility)
  • RFC 3261 SIP: Session Initiation Protocol (partially):
    • 7 SIP Messages
    • 8.2 UAS Behavior
    • 9 Canceling a Request
    • 10 Registration - Registrar part only
    • 12 Dialogs
    • 16 Proxy Behavior
    • 17 Transactions
    • 18 Transport
    • 19 Common Message Components
  • RFC 3262 Reliability of Provisional Responses in the Session Initiation Protocol (SIP)
    • 6 Definition of the PRACK Method
    • 7 Header Field Definitions
    • 7.1 RSeq
    • 7.2 RAck
  • RFC 6026 Correct Transaction Handling for 2xx Responses to Session Initiation Protocol (SIP) INVITE Requests
  • RFC 3581 An Extension to the Session Initiation Protocol (SIP) for Symmetric Response Routing (rport)
  • RFC 4475 Session Initiation Protocol (SIP) Torture Test Messages
  • RFC 5118 Session Initiation Protocol (SIP) Torture Test Messages for Internet Protocol Version 6 (IPv6)
  • RFC 4566 SDP: Session Description Protocol (partially)
  • RFC 3515 The Session Initiation Protocol (SIP) Refer Method (header/method only):
    • 2.1 The Refer-To Header Field
  • RFC 6665 SIP-Specific Event Notification (header/method only)
    • 8.2.1. "Event" Header Field
    • 8.2.3. "Subscription-State" Header Field
  • RFC 3891 The Session Initiation Protocol (SIP) "Replaces" Header (header only)
    • 6.1. The Replaces Header
  • RFC 3966 The tel URI for Telephone Numbers

License

MIT

Roadmap

  • Basic low-level parser (completed)
  • Essential headers support (completed)
  • High-level SIP message (completed)
  • Stateless proxy support (completed)
    • Request passing (completed)
    • Response passing (completed)
  • Transaction support (completed)
    • Transaction identification (completed)
    • Non-INVITE transaction (completed)
    • INVITE transaction (completed)
  • Registrar support (completed)
  • Parser limits enforcement (completed)
  • Stateful proxy support (completed)
  • Common dialog support (completed)
  • SDP support (completed)
  • Detailed documentation and tutorials
  • Authorization and proxy authorization
  • INVITE dialog support
  • High-level UA support