Project

General

Profile

Actions

SipDeveloperGuide » History » Revision 56

« Previous | Revision 56/215 (diff) | Next »
Adrian Georgescu, 03/23/2009 08:06 PM


= 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.

Prerequisites

To use the library and the concepts described below you must be familiar with Python programming language and SIP call flows from [http://www.tech-invite.com/Ti-sip-CF3665.html RFC 3665]. Understanding of TCP/IP networking in general and real time application development in particular are strongly recommended.

Instructions for installing the library are found [wiki:SipInstallation here].

Middleware

To 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 Configuration API] - used for 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].

Components

If you wish to develop your own middleware and/or application while having control over 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, something the high level middleware was not designed for.

TCP/IP ports

To 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'''
1xport >1024 In/Out Typically 5060 set in DNS UDP [wiki:SipCoreApiDocumentation#Engine SIP over UDP] At start Global.sip.local_udp_port
1xport >1024 In/Out Typically 5060 set in DNS TCP [wiki:SipCoreApiDocumentation#Engine SIP over TCP] At start Global.sip.local_tcp_port
1xport >1024 In/Out Typically 5061 set in DNS TCP [wiki:SipCoreApiDocumentation#Engine SIP over TLS] At start Global.sip.local_tls_port
2xport >1024 In/Out Random negotiated in SDP UDP [wiki:SipCoreApiDocumentation#RTPTransport RTP/RTCP stream] Per session Global.rtp.port_range
1xport >1024 In/Out Typically 2855 negotiated in SDP TCP [wiki:SipMSRPApi#transport.MSRPTransport MSRP stream] Per session Global.msrp.local_port
1xport >1024 Out Typically 443, configured TCP [wiki:SipXCAPApi XCAP requests] Per request Global.xcap.local_port

Updated by Adrian Georgescu over 15 years ago · 56 revisions