Welcome!
TLDR: First run the demo. Or look at this class.
Looking for documentation on an old version? 0.15 and below are documented here.
Looking for help on how to migrate from an old version? See the migration guides.
TypeScript? Yes. Compatibility with JavaScript.
Source code? Building from source code.
Node module? npm install sip.js
Bundle? Download UMD here.
Herein lies software enabling Session Initiation Protocol (SIP) internet endpoints (called user agents) to carry various forms of real-time multimedia session data such as voice, video, or text messages. Said software is organized into four (4) divisions - each of which provides a different integration point for development...
- SimpleUser class
- SessionManager class
- API framework
- Core library
Additional supporting implementations of classes for use with web browser environments are provided...
- SessionDescriptionHandler - WebRTC session description handler
- Transport - SIP over secure WebSocket
The SimpleUser class provides a representation of a simple internet endpoint (a simple user agent). It requires an understanding of what a phone call is, but minimal knowledge of SIP. There are working Demonstrations provided to help get started. It is the recommended interface for many applications. It has its limitations. The SimpleUser class is implemented utilizing the SessionManager class and as such provides a working example of how one might utilize the SessionManager class.
The SessionManager class provides a representation of a simple internet endpoint which can handle multiple concurrent calls (a user agent). It requires an understanding of what a phone call is, but minimal knowledge of SIP. It is the recommended interface for many applications which require managing multiple concurrent calls. It has its limitations. The SessionManager class is implemented utilizing the API framework and as such provides a working example of how one might utilize the API framework.
The API framework is intended to provide a complete and suitable framework on which to build most end user applications - business phones, video conferencing endpoints, smart doorbells. A working knowledge of the SIP protocol is a prerequisite for using it. The framework provides infrastructure to connect with a SIP server as well as establish and maintain SIP registrations, sessions and subscriptions. There are no user interface components in it. The source code of the SessionManager class is well documented and provides a good example of how to get started using the API framework. The framework is implemented on top of the Core library and as such provides a working example of how one might utilize the Core library.
The Core library provides lower level representations of the elements which comprise the SIP protocol. It implements the constructs required by user agents. It strives to be RFC compliant. It is intended to provide the foundational building blocks upon which to build a higher level abstraction suitable for any application.