I did a similar quest 7 years ago, but was looking for a built-in version of C. I looked at the oSIP library. He did all the work of converting SIP packets to and from structures.
However, one point in the documentation stuck with me. The author recommended that you familiarize yourself with the SIP specification ( RFC 3261 ) in order to use the library effectively. After reading the specifications several times, I ended up writing my own parser and call management application.
Keep in mind that SIP is still an evolving standard. There is an active SIPForum group that is currently developing SIPConnect 1.1 to standardize the interface between a SIP service provider (such as Vonage) and SIP-PBX. There is also an activity called BLISS to define “best practices” for implementing SIP functions between user agents.
Compatibility is tough. There are hundreds of RFCs associated with SIP. Different endpoints use different ones, and interpretations of specifications are not always compatible. There are several different interaction events (e.g. SIPit ) to make sure your implementation works with others.
No matter what you choose, make sure that you understand the specifications for the functions that you implement well. In addition, specifications and libraries will help the side of the package, but you still need a “call control” library (a higher “brain” level to decide how to handle the SIP request / response). You also need a media layer to handle sound, if your application is not just a SIP proxy.
Having said all this, several Internet Telephony Providers (ITSPs) have used the SIP Express Router as a proxy server for their services. It is very customizable and has a high degree of success for compatibility.
JayG Feb 09 '09 at 14:52 2009-02-09 14:52
source share