C# Sip Stack/Library

What open-source SIP clients (or libraries) there are that could be freely extended by developers?

The only open source C# sipstack that I know of is lumisoft.

You can find a UA example here: http://www.lumisoft.ee/lswww/download/downloads/examples/

(UserAgent = client)

Looking for a good SIP implementation in C#

My own C# SIP stack is at sipsorcery. It's far from perfect but as far as the RFC3261 core SIP standard goes it should be pretty good and you can hook into that using only SIPSorcery.Core assembly. The server applications can be disregarded if you're looking at doing some specialised call control.

Does anyone know a good .Net VoIP library?

To close this off, a few years ago we got ABTO llc to build us a custom version of their SIP client.

It was a managed code implementation that we purchased from them.

It worked very well, but the project was canned later on.

Thanks for all the info and answers.

Open Source SIP Dialer in C#

Yes, take a look at PJSIP. It is implemented in very portable C. But it also has a number of wrappers in other languages, like this .NET wrapper.

PJSIP, or rather its UA (SIP Dialer) interface PJSUA is very easy to handle, and takes care of both signalling and media for you. Oh, and it's under GPL license.

Sip parser in c#

This class from my sipsorcery project can do it for you.

Update: If you have a string that contains a full SIP packet you can parse the full thing by using:

var req = SIPSorcery.SIP.SIPRequest.ParseSIPRequest(reqStr); 
var headers = req.Header;

var resp = SIPSorcery.SIP.SIPResponse.ParseSIPResponse(respStr);
var headers = resp.Header;

If you don't know whether the SIP packet is a request or a response you can use the SIPMessage class:

var mess = SIPSorcery.SIP.SIPMessage.ParseSIPMessage(messStr, null, null);
var headers = SIPSorcery.SIP.SIPHeader.ParseSIPHeaders(mess.SIPHeaders);

Update 2:

Given you're using pcap.net to capture the SIP packets you are probably ending up with a block of bytes rather than a string. You can use the SIPMessage class to parse the SIP packet from a UDP payload:

var mess = SIPSorcery.SIP.SIPMessage.ParseSIPMessage(packet.Ethernet.IPv4datagram.Udp.Payload, null, null);
var headers = SIPSorcery.SIP.SIPHeader.ParseSIPHeaders(mess.SIPHeaders);


Related Topics



Leave a reply



Submit