Hi,
This is not quite something small and simple. I strongly suggest you to start with an open source SIP library. You can find several projects on the world wide web that are free of charge. Some of them are really well done, but sometimes heavy for what we need. But they provide good examples for someone to start programming in SIP. I strongly recommend you Vovida since this is the most complete one in my opinion, but here is the list of free stack I know: www.vovida.org (Open source Vovida SIP stack) http://www.gnu.org/software/osip/osip.html (oSIP SIP stack) http://www.sourceforge.net/projects/openh323 (OPAL SIP, this is a subproject of openh323, just check in the CVS browser). However, I'll resume you in a few general steps the implementation of a sip stack from scratch. First of all, you need to implement or generate an ABNF parser to understand and validate SIP/SDP messages. You can find several open source projects that allow you to generate parser from a grammar. Search on the Web for bison, flex or antlr. Secondly, you need to implement different network layers since SIP supports many transport protocols such as TCP, UDP and TLS. If you refer to RFC 3261, you need to implement the transaction layer. Basically, the transaction layer is an object that lives a certain amount of time to ensure that packets sent over unreliable transports are sent reliably. Furthermore, you need to maintains pieces of state and time information during a transaction which are useful for your User Agent (read RFC 3261) to takes decision of retransmit or delete a certain packet. Finally, you need to join your network/transaction layer with your parsers and maintain session/dialog information. A dialog is a peer to peer relationship that basically tells you who is the remote endpoint you are talking to. You need to keeps information about routes (proxies or servers) that are between you and the remote party you are calling. You also need to maintain dialog state. Different decision are taken when packets are received based on the dialog state. This is really brief but the spec is about many hundred of pages long so I can't tell you all about SIP. See www.zvon.org for better human interface reading of RFC documents. Hope this helped, Kevin Bouchard Software developer Pyxis Products Cardinal Health 330 St-Vallier Street E., Suite 330 Quebec City, QC, Canada G1K 9C5 Tel.: (418)872-0172, x8974 Fax: (418)872-0038 [EMAIL PROTECTED] > -----Original Message----- > From: [EMAIL PROTECTED] [mailto:sip-implementors- > [EMAIL PROTECTED] On Behalf Of [EMAIL PROTECTED] > consulting.com > Sent: 14 octobre, 2004 06:13 > To: [EMAIL PROTECTED] > Subject: [Sip-implementors] SIP > > Good morning; > > We are working at the moment trying to develop some SIP applications, > programming in C++ (Symbian). We were very pleased if you send us some > simple examples where we could understand the way of programming with this > protocol. > > Thank you on advance for your attention. > > Yours sincerely. > > Marcos > > > > _______________________________________________ > Sip-implementors mailing list > [EMAIL PROTECTED] > http://lists.cs.columbia.edu/mailman/listinfo/sip-implementors _______________________________________________ Sip-implementors mailing list [EMAIL PROTECTED] http://lists.cs.columbia.edu/mailman/listinfo/sip-implementors
