Skip to content
Aaron Clauson edited this page Nov 11, 2019 · 8 revisions

Developers | SIPSorcery Design | Standards Support

Overview

If you're a developer and just want to get up and running with a C# SIP example as fast as possible go here Developers.

The SIPSorcery project is an experiment into the depths of the Session Initiation Protocol (SIP). The project is a combination of the source code available here on CodePlex and a live service hosted at https://www.sipsorcery.com/sipsorcery.html. The project has its roots in a previous mysipswitch project which has now been deprecated.

At its heart the project consists of a C# SIP protocol stack that implements all the required UDP, TCP and TLS transports. In addition to the SIP stack a number of related protocols: STUN, SDP, RTP & RTCP are implemented to varying degrees, usually only insofar as they are required for operation of the sipsorcery.com service.

The SIP Proxy and SIP Application Server make heavy use of the Microsoft Dynamic Language Runtime with the IronRuby engine being heavily used in dialplan processing and the IronPython engine being used for the SIP Proxy control script.

There are 3 main areas the SIPSorcery project focuses on:

  • The core SIP protocol stack and associated plumbing code, contained in the sipsorcery-core source code directory.
  • The SIP server applications are:
    • SIP Proxy with dispatching mechanism for application server fault tolerance,
    • SIP Registrar,
    • SIP Registration Agent, registers contact information with 3rd party SIP providers,
    • SIP Application Server, multi-user SIP call processing using Ruby dialplans,
    • SIP Notification Server, supports the presence and dialog SIP event package notifications,
    • SIP Monitoring Server, receives and collates log messages from the other servers that can then be viewed from a web page or SSH session,
    • WatchTower Server, monitors SIP Application Servers and updates the SIP Proxy dispatch file,
    • SSH Server, uses the NSsh project to provide a multi-user SSH session for server monitoring.
  • An end-user Silverlight client application for managing the sipsorcery.com service, contained in the sipsorcery-silverlight code directory,
    • The SIP protocol stack is able to run within Silverlight allowing SIP TCP communications directly from a browser.

(The sipsorcery-softphone directory is little more than a placeholder and there are currently no plans to develop a softphone in this project, there are already heaps of softphones around)

Unlike a lot of other "SIP Server" projects SIPSorcery DOES not have media processing capabilites (this makes it similar to the SER family of applications), there is a rudimentary RTP stack in the project but nothing further, no codecs etc. This is a deliberate ommission as the goal of the project in experimenting with SIP has always been to focus on the signalling layer and not the media one.

Service at: http://www.sipsorcery.com/.
Blog at: http://blog.sipsorcery.com/.
Forum at: http://forum.sipsorcery.com/index.php.
Twitter: http://twitter.com/sipsorcery.
NuGet: https://www.nuget.org/packages/SIPSorcery/.

Clone this wiki locally