SipDeveloperGuide » History » Revision 46
« Previous |
Revision 46/215
(diff)
| Next »
Adrian Georgescu, 03/22/2009 09:53 AM
= Developer guide =
<abbr title="WikiStart, Sip*, depth=2">TOC</abbr>
The main goal of this library is to provide a simple to use API to create real-time communications applications between end-points based on SIP protocol.
PrerequisitesTo use the library and the concepts described below you must be familiar with Python programming language and basic SIP call flows from [http://www.tech-invite.com/Ti-sip-CF3665.html RFC 3665]. Understanding of TCP/IP networking and real time application development in general are strongly recommended.
Instructions for installing the library are found [wiki:SipInstallation here].
MiddlewareTo develop your application you should use the middleware API that hides the complexity and interactions of the lower level SIP, SDP, RTP, ICE, MSRP, XCAP and related protocols. With a minimal amount of coding you can create a client SIP application for setting up audio, instant messaging and desktop sharing sessions.
- [wiki:SipMiddlewareApi Middleware API] - event driven middleware suitable for developing interactive user interfaces (e.g. GUI)
- [wiki:SipSettingsAPI Settings API] - used to managing the settings used by the middleware
=== Sample code ===
The middleware API is used by the command line tools used for [wiki:SipTesting testing the library].
ComponentsTo develop your own middleware or application while controlling the underlying protocol layers yourself, you can use the following APIs that provides granular control over their respective components:
- [wiki:SipCoreApiDocumentation SIP core API] - The API for the SIP, SDP, RTP, ICE and audio engine (cross platform sound-card abstraction, codecs)
- [wiki:SipMSRPApi MSRP API] - The API for Message Session Relay Protocol (MSRP) and its relay extension used for instant messaging, file transfers and desktop sharing applications
- [wiki:SipPresenceApi Presence API] - The API for payloads carried within SIP signaling used for publication, subscription and notifications of SIP events
- [wiki:SipXCAPApi XCAP API] - The API for XCAP document manipulation used for storage of buddy lists and presence policy documents
You may use for example the above components API to create a SIP application server.
NetworkingTo use a SIP application you need access to a TCP/IP network (e.g. the Internet). The library uses the following ports when active:
'''Local port''' | '''Direction''' | '''Remote port''' | '''Protocol''' | '''Description''' | '''Allocation''' | '''Setting''' | ||||||||
1x port >1024 | In/Out | Typically 5060 set in DNS | UDP | SIP over UDP | At start | Global.sip.local_udp_port | ||||||||
1x port >1024 | In/Out | Typically 5060 set in DNS | TCP | SIP over TCP | At start | Global.sip.local_tcp_port | ||||||||
1x port >1024 | In/Out | Typically 5061 set in DNS | TCP | SIP over TLS | At start | Global.sip.local_tls_port | ||||||||
2x port >1024 | In/Out | Random negotiated in SDP | UDP | RTP/RTCP stream | Per session | Global.rtp.port_range | ||||||||
1x port >1024 | In/Out | Typically 2855 negotiated in SDP | TCP | MSRP stream | Per session | Global.msrp.local_port | ||||||||
1x port >1024 | Out | Typically 443, statically provisioned | TCP | XCAP requests | Per request | Global.xcap.local_port |
Updated by Adrian Georgescu almost 16 years ago · 46 revisions