Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/poroh/ersip
Erlang SIP
https://github.com/poroh/ersip
erlang erlang-sip library sdp sip
Last synced: 2 months ago
JSON representation
Erlang SIP
- Host: GitHub
- URL: https://github.com/poroh/ersip
- Owner: poroh
- License: mit
- Created: 2017-12-03T23:36:00.000Z (over 6 years ago)
- Default Branch: master
- Last Pushed: 2023-12-20T15:32:43.000Z (6 months ago)
- Last Synced: 2024-02-21T00:47:19.076Z (4 months ago)
- Topics: erlang, erlang-sip, library, sdp, sip
- Language: Erlang
- Size: 1.3 MB
- Stars: 116
- Watchers: 18
- Forks: 27
- Open Issues: 10
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Lists
- awesome-rtc - ersip - Library comprising building blocks for SIP applications. (Developer Resources / Erlang Libraries)
README
[![Build Status](https://travis-ci.org/poroh/ersip.svg?branch=master)](https://travis-ci.org/poroh/ersip) [![Coverage Status](https://coveralls.io/repos/github/poroh/ersip/badge.svg?branch=master)](https://coveralls.io/github/poroh/ersip?branch=master)
# Erlang SIP and SDP library
## Documentation
Full module documentation is available [here](https://github.com/poroh/ersip/blob/master/doc/README.md).
## Approach to design
What you cannot find in ersip:
+ Supervisors
+ Servers
+ ETS
+ DependenciesYou can find only pure functions that are compliant to SIP specification.
## Real world examples
Working examples:
+ Stateful SIP proxy: https://github.com/poroh/ersip_proxy
+ Hunt group service (B2BUA) example: https://github.com/poroh/piraha## 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