Giter Site home page Giter Site logo

ersip's Introduction

Build Status Coverage Status

Erlang SIP and SDP library

Some time ago I found that there are no opensource SIP library that does not force you to some software design. All libraries provides some framework that is required in your project if you want to use SIP. I believe that this is wrong way. Goal of this project is to provide high-level primitives that implements all SIP functions but leave to user how to organize these primitives in his/her software.

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 idenification (completed)
    • Non-INVITE transaction (completed)
    • INVITE transaction (completed)
  • Registrar support (completed)
  • Parser limits enforcement (completed)
  • Statefull proxy support (completed)
  • Common dialog support (completed)
  • Authorization and proxy authorization (in-progress)
  • SDP support (in-progress)
  • INVITE dialog support
  • High-level UA support
  • Detailed documentation and tutorials

Realworld 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 - in progress)
  • 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 (patially - in progress)

About Author

Dmitry Poroh:

Has huge (17 years) exprience in telecommunication areas. Among other projects I have developed:

  • SMTP protocol (RFC2821)
  • HTTP/FTP proxy (RFC2616, RFC0959)
  • OSPF protocol (RFC2328)
  • ZigBee/IEEE 802.15.4 protocol stack
  • HTTP/HTTPS implementation (RFC2616)
  • DiffServ implementation
  • VPN (IPSec/ESP) tunnels implementation
  • RTP/RTCP implementation (RFC3550/RFC3551)

Also I have experience in VOIP area:

  • Private PBX implementation based on FreeSWITCH
  • Multipoint Control Unit (developed from scratch)
  • MSML-capable Audio Media Gateway (developed from scratch)
  • Session Border Controller (developed from scratch)

I try to contribute all my experience to this project because I beleive that SIP protocol is instrument that must be free and available.

ersip's People

Contributors

odobenus avatar poroh avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.