1 | | {{{ |
2 | | #!html |
3 | | <!-- Getting started table --> |
4 | | <p align="center"><FONT size="+1">Welcome to PJSIP Wiki!</FONT></p> |
5 | | <TABLE border=0 cellspacing="10" cellpadding="5" width="100%" bgcolor="#D6FFD6" align="center"> |
6 | | <TR valign="top"><TD align="center"> |
7 | | <p>First thing first:</p> |
8 | | <p><FONT size="+1"><A HREF="/repos/wiki/Getting-Started">Getting Started with PJSIP</A></FONT><BR> |
9 | | If you're new to PJSIP, this will guide you to get PJSIP up and running in all platforms that we support.</p> |
10 | | </TD></TR> |
11 | | </TABLE> |
12 | | |
13 | | |
14 | | <!-- MAIN TABLE WITH 1 ROW and 2 COLUMNS --> |
15 | | <TABLE border=0 cellspacing="10" cellpadding="5" width="100%"><TR valign="top"> |
16 | | |
17 | | <!-- LEFT COLUMN --> |
18 | | <TD width="48%"> |
| 1 | {{{#!table style="border: none" |
| 2 | {{{#!td align=left valign=top style="border: none; font-size: 150%" |
| 3 | '''Getting Started''' |
| 4 | {{{#!div align=left style="font-size: 70%;" |
| 5 | * [[span([/repos/wiki/Getting-Started Getting Started with PJSIP],title=This will guide you to get PJSIP up and running in all platforms that we support.)]] |
| 6 | * '''New: ''' [[span([wiki:Video_Users_Guide Video User's Guide],title=describes how to use the video feature with PJSIP.)]] |
| 7 | * [[span([wiki:PJSIP-Datasheet PJSIP Datasheet],title=lists all the supported features.)]] |
| 8 | * [[span([/repos/roadmap PJSIP Roadmap],title=shows the development plans.)]] |
| 9 | }}} |
| 10 | }}} |
| 11 | {{{#!td align=left valign=top style="border: none; font-size: 150%" |
| 12 | '''Frequently Asked Questions''' |
| 13 | {{{#!div align=left style="font-size: 70%;" |
| 14 | * [[span([wiki:FAQ FAQ],title=Please read this first for any questions.)]] |
| 15 | * [[span([wiki:sound-problems Sound Problems],title=This is a good place to start for troubleshooting everything related to audio/media problems.)]] |
| 16 | * [wiki:Testing_Audio_Device_with_pjsystest How to Test and Optimize Your Audio Device] |
| 17 | * [[span([wiki:IPAddressChange Handling IP address change],title=This article describes some issues and their corresponding solutions related to access point disconnection; reconnection; and change in your PJSIP applications. The general issues related to the discussion will be explained; along with some specific issues to Symbian applications.)]] |
23 | | {{{ |
24 | | #!html |
25 | | <TABLE border=0 width="100%" bgcolor=#E6FFE6><TR><TD> |
26 | | }}} |
| 27 | Common: |
| 28 | * [[span([wiki:Python_SIP_Tutorial Python SIP Tutorial],title=A thorough tutorial on how to use Python to develop your PJSIP application. This article is also useful as introduction to PJSIP features.)]] |
| 29 | * [[span([wiki:QoS Support for QoS (TOS/DSCP, WMM, 802.1p)],title=explains how QoS is supported throughout the libraries.)]] |
| 30 | * [[span([wiki:AutomatedTesting PJSIP Automated Testing],title=PJSIP distribution has been equipped with automated testing scripts. This article describes how to configure it.)]] |
| 31 | * [[span([wiki:IPv6 Detailed explanation of IPv6 changes],title=explains technical details on what have been changed to support IPv6 throughout the libraries.)]] |
29 | | * [wiki:FAQ PJSIP Frequently Asked Questions (FAQ)]. Please read this first for any questions. |
| 35 | * [[span([wiki:Media_Transport_Adapter Media Transport Adapter],title=is the primary mean to integrate RTP/RTCP processing into the media flow; get full access to SDP; and be involved in SDP negotiation.)]] |
| 36 | * [[span([wiki:Intel_IPP_Codecs Using Intel® IPP with PJMEDIA],title=explains how to setup the development in order to use Intel® Integrated Performance Primitive (IPP) libraries and reap various goodies from it such as AMR NB; AMR WB; G.722.1; G.723.1; G.726; G.728; and G.729 codecs.')]] |
| 37 | * [[span([wiki:SRTP SRTP Support],title=This article explains how to setup and configure Secure RTP (SRTP) support as well as a technical implementation notes. Could be useful for anyone looking to implement other media transport types as well.)]] |
| 38 | * [[span([wiki:3rd_Party_Media Integrating Third Party Media Stack],title=This article explains several strategies that can be used if one wants to integrate third party media codecs with PJSIP.)]] |
31 | | * [/repos/roadmap PJSIP Roadmap] shows the development plans. |
32 | | |
33 | | * [wiki:PJSIP-Datasheet PJSIP Datasheet] lists all the supported features. |
34 | | |
35 | | {{{ |
36 | | #!html |
37 | | </TD></TR></TABLE> |
38 | | }}} |
39 | | |
40 | | == Tutorials == |
41 | | |
42 | | {{{ |
43 | | #!html |
44 | | <TABLE border=0 width="100%" bgcolor=#FFFFE6><TR><TD> |
45 | | }}} |
46 | | |
47 | | General: |
48 | | * [wiki:Getting_Started_Using Getting Started Part II: Building Your Own Application using PJSIP]. This is the continuation of the [wiki:Getting-Started Getting Started] document, and is particularly useful for those who are stucked with Makefiles for their development. |
| 40 | NAT traversal/PJNATH: |
| 41 | * [[span([wiki:Using_Standalone_ICE Using Standalone PJNATH's ICE],title=This article describes how to use the ICE stream transport of PJNATH directly without PJSIP/PJMEDIA in (probably non-SIP/SDP) applications.)]] |
| 42 | * [wiki:PJNATH_Memory_Usage PJNATH RAM Usage Analysis and Optimization] |
| 43 | * [[span([wiki:IceNegotiationFailure ICE Negotiation Failure],title=A short article explaining how to read the log file to find out information related to ICE negotiation results; and potential reasons of the failure.)]] |
51 | | * [wiki:DevelopingSymbianAppWithCarbide Developing, Building and Debugging PJSIP for Symbian S60 3rd Edition Device using Carbide C++]. This is a complete tutorial on how to setup Carbide, your device, and PJSIP for your development. |
52 | | |
53 | | Python: |
54 | | * [wiki:Python_SIP_Tutorial Python SIP Tutorial]. A thorough tutorial on how to use Python to develop your PJSIP application. This article is also useful as introduction to PJSIP features. |
55 | | |
56 | | Windows 95/98: |
57 | | * [wiki:Windows98_Support Building the Software for Windows 95/98 (win95/98)] explains things to tweak to make PJSIP works on Windows 95 and Windows 98. |
58 | | |
59 | | |
60 | | {{{ |
61 | | #!html |
62 | | </TD></TR></TABLE> |
63 | | }}} |
64 | | |
65 | | == Features Configuration and Integration == |
66 | | |
67 | | {{{ |
68 | | #!html |
69 | | <TABLE border=0 width="100%" bgcolor=#E6E6FF><TR><TD> |
70 | | }}} |
71 | | |
72 | | Common: |
73 | | * [wiki:QoS Support for QoS (TOS/DSCP, WMM, 802.1p)] explains how QoS is supported throughout the libraries. |
74 | | |
75 | | * [wiki:AutomatedTesting PJSIP Automated Testing] - PJSIP distribution has been equipped with automated testing scripts, and this article describes how to configure it. |
76 | | |
77 | | Media related: |
78 | | * '''New: ''' [wiki:Video_Users_Guide Video User's Guide] describes how to use the video feature with PJSIP. |
79 | | |
80 | | * [wiki:Media_Transport_Adapter Media Transport Adapter] is the primary mean to integrate RTP/RTCP processing into the media flow, get full access to SDP, and be involved in SDP negotiation. |
81 | | |
82 | | * [wiki:Intel_IPP_Codecs Using Intel® Integrated Performance Primitive (IPP) with PJMEDIA] explains how to setup the development in order to use Intel® IPP libraries and reap various goodies from it such as AMR NB, AMR WB, G.722.1, G.723.1, G.726, G.728, and G.729 codecs. |
83 | | |
84 | | * [wiki:SRTP SRTP Support in PJSIP]. This article explains how to setup and configure Secure RTP (SRTP) support as well as a technical implementation notes. Could be useful for anyone looking to implement other media transport types as well. |
85 | | |
86 | | * Integrating Third Party Media Stack with PJSIP. These articles explains several strategies that can be used if one wants to integrate third party media codecs with PJSIP: |
87 | | * [wiki:3rd_Party_Media_20 Version 2.0 and above] |
88 | | * [wiki:3rd_Party_Media Version 1.x] |
89 | | |
90 | | * [wiki:Audio_Dev_API Audio Device API]. New audio device abstraction API introduced in version 1.1. |
91 | | |
92 | | NAT traversal/PJNATH: |
93 | | * [wiki:Using_Standalone_ICE Using Standalone PJNATH's ICE in (non-SIP) Applications]. This article describes how to use the ICE stream transport of PJNATH directly without PJSIP/PJMEDIA in (probably non-SIP/SDP) applications. |
94 | | |
95 | | * [wiki:PJNATH_Memory_Usage PJNATH RAM Usage Analysis and Optimization] |
96 | | |
97 | | Symbian: |
98 | | * [wiki:APS Using Audio Proxy Server (APS) in PJSIP] describes how to setup PJSIP to use APS. |
99 | | |
100 | | * [wiki:VAS Using VoIP Audio Services (VAS) in PJSIP] describes how to setup PJSIP to use VAS. |
101 | | |
102 | | * [wiki:Nokia_APS_VAS_Direct Using APS-Direct and VAS-Direct in PJMEDIA] describes how to setup the application to use the handset/hardware codecs such as G.729 and AMR-NB provided by Nokia S60 Audio Proxy Server/APS and VoIP Audio Services/VAS API. |
| 46 | * [[span([wiki:APS Using Audio Proxy Server (APS) in PJSIP],title=describes how to setup PJSIP to use APS.)]] |
| 47 | * [[span([wiki:VAS Using VoIP Audio Services (VAS) in PJSIP],title=describes how to setup PJSIP to use VAS.)]] |
| 48 | * [[span([wiki:Nokia_APS_VAS_Direct Using APS-Direct and VAS-Direct in PJMEDIA],title=describes how to setup the application to use the handset/hardware codecs such as G.729 and AMR-NB provided by Nokia S60 Audio Proxy Server/APS and VoIP Audio Services/VAS API.)]] |
106 | | * [wiki:TLS Configuring PJSIP with TLS] describes how to setup and configure PJSIP to use Transport Layer Security (TLS) transport. |
| 52 | * [[span([wiki:TLS Configuring PJSIP with TLS],title=describes how to setup and configure PJSIP to use Transport Layer Security (TLS) transport.)]] |
| 53 | * [[span([wiki:SIP_Redirection Handling SIP Redirection],title=describes how to make UAC invite session/call follow SIP redirect (3xx) responses.)]] |
| 54 | * '''New: ''' [[span([wiki:URI_Escaping URI Escaping Info],title=contains information about SIP element escaping rules within PJSIP.)]] |
| 55 | * '''New: ''' [[span([wiki:Using_SIP_TCP Using SIP TCP],title=contains information about using SIP TCP transport.)]] |
108 | | * [wiki:SIP_Redirection Handling SIP Redirection] describes how to make UAC invite session/call follow SIP redirect (3xx) responses. |
109 | | |
110 | | * '''New: ''' [wiki:URI_Escaping URI Escaping Info] contains information about SIP element escaping rules within PJSIP. |
111 | | |
112 | | * '''New: ''' [wiki:Using_SIP_TCP Using SIP TCP] contains information about using SIP TCP transport. |
113 | | |
114 | | Other: |
115 | | * [wiki:IPv6 Detailed explanation of IPv6 changes] explains technical details on what have been changed to support IPv6 throughout the libraries. |
116 | | |
117 | | * [wiki:new_changes Major Changes since Version 0.5] |
118 | | |
119 | | {{{ |
120 | | #!html |
121 | | </TD></TR></TABLE> |
122 | | }}} |
123 | | |
124 | | |
125 | | |
126 | | {{{ |
127 | | #!html |
128 | | <!-- MAIN TABLE --> |
129 | | <!-- RIGHT COLUMN --> |
130 | | </TD><TD width="48%"> |
131 | | }}} |
132 | | |
133 | | == Troubleshooting == |
134 | | |
135 | | {{{ |
136 | | #!html |
137 | | <TABLE border=0 width="100%" bgcolor=#E0E6FF><TR><TD> |
138 | | }}} |
139 | | |
| 57 | == Technical Articles == |
| 58 | General: |
| 59 | * [[span([wiki:PJSUA_Locks Avoiding deadlock with PJSUA-LIB],title=This article explains about the standard mutex lock ordering in PJSUA-LIB so is a '''must read''' for anyone working with PJSUA-API.)]] |
142 | | * [wiki:sound-problems Sound Problems]. This is a good place to start for troubleshooting everything related to audio/media problems. |
143 | | |
144 | | * [wiki:Testing_Audio_Device_with_pjsystest Testing and Optimizing Your Audio Device with pjsystest]. |
145 | | |
146 | | ICE related: |
147 | | * [wiki:IceNegotiationFailure ICE Negotiation Failure]. A short article explaining how to read the log file to find out information related to ICE negotiation results, and potential reasons of the failure. |
148 | | |
149 | | Other: |
150 | | * [wiki:crash-problem Crash Problem on Win32] |
151 | | |
152 | | S60 Supported phones: |
153 | | * [wiki:S60-Phones-Supported Supported and Unsupported Symbian 9.x, S60 Nokia phones] |
154 | | |
155 | | {{{ |
156 | | #!html |
157 | | </TD></TR></TABLE> |
158 | | }}} |
159 | | |
160 | | == Technical Articles == |
161 | | |
162 | | {{{ |
163 | | #!html |
164 | | <TABLE border=0 width="100%" bgcolor=#E6FFFF><TR><TD> |
165 | | }}} |
166 | | |
167 | | General: |
168 | | * [wiki:IPAddressChange Handling of IP address change and/or access point disconnection and reconnection in mobile applications]. This article describes some issues and their corresponding solutions related to access point disconnection, reconnection, and change in your PJSIP applications. The general issues related to the discussion will be explained, along with some specific issues to Symbian applications. |
169 | | |
170 | | |
171 | | Media related: |
172 | | * [wiki:Tone_Generator Analyzing the PJMEDIA Tone Generator Algorithms Performance]. This article explains the speed and frequency accuracy characteristics of the various tone generator back-end algorithms that are supported by PJMEDIA. |
173 | | |
174 | | * [wiki:PJMEDIA-MIPS PJMEDIA Performance Measurement]. This article is a '''must read''' for anyone looking to use PJMEDIA in performance constrained platforms (such as embedded or mobile devices), as it lists the performance requirements for each and all features in PJMEDIA. One can then tailor the features to meet both the functional and technical requirements of the development. |
175 | | |
176 | | * [wiki:MeasuringSoundLatency Measuring Sound Latency] explains some tips to measure audio/sound latencies. |
177 | | |
178 | | * [wiki:media-flow Media Flow Explained]. This short article explains how the media flows between various PJMEDIA components. |
| 62 | * [[span([wiki:Tone_Generator PJMEDIA Tone Generator Algorithms Performance],title=This article explains the speed and frequency accuracy characteristics of the various tone generator back-end algorithms that are supported by PJMEDIA.)]] |
| 63 | * [[span([wiki:PJMEDIA-MIPS PJMEDIA Performance Measurement],title=This article is a '''must read''' for anyone looking to use PJMEDIA in performance constrained platforms (such as embedded or mobile devices); as it lists the performance requirements for each and all features in PJMEDIA. One can then tailor the features to meet both the functional and technical requirements of the development.)]] |
| 64 | * [[span([wiki:MeasuringSoundLatency Measuring Sound Latency],title=explains some tips to measure audio/sound latencies.)]] |
| 65 | * [[span([wiki:media-flow Media Flow Explained],title=This short article explains how the media flows between various PJMEDIA components.)]] |
196 | | {{{ |
197 | | #!html |
198 | | <TABLE border=0 width="100%" bgcolor=#FFE6FF><TR><TD> |
| 84 | '''[[span(Reference Manuals,title=Explore PJSIP online manuals and developer guides.)]]''' |
| 85 | {{{#!table style="border: none" |
| 86 | {{{#!td align=left valign=top style="border: none; font-size: 115%" |
| 87 | [http://www.pjsip.org/docs/latest/pjlib/docs/html/index.htm PJLIB Online Manual]\\ |
| 88 | [http://www.pjsip.org/docs/latest/pjlib-util/docs/html/index.htm PJLIB-UTIL Online Manual]\\ |
| 89 | [http://www.pjsip.org/docs/latest/pjnath/docs/html/index.htm PJNATH Online Manual]\\ |
| 90 | [http://www.pjsip.org/docs/latest/pjmedia/docs/html/index.htm PJMEDIA Online Manual]\\ |
| 91 | [http://www.pjsip.org/docs/latest/pjsip/docs/html/index.htm PJSIP Online Manual]\\ |
| 92 | [http://www.pjsip.org/docs/latest/pjsip/docs/html/group__PJSUA__LIB.htm PJSUA-API Online Manual]\\ |
| 93 | [http://www.pjsip.org/python/pjsua.htm PJSUA Python Module Manual]\\ |
| 94 | [http://www.pjsip.org/pjsua.htm PJSUA Manual]\\ |
| 95 | [[span([http://www.pjsip.org/release/0.5.4/PJSIP-Dev-Guide.pdf PJSIP Developer's Guide (PDF)],title=This is a lenghty documentation which was created during PJSIP design process. It explains concepts and relations (class library) and other descriptions about most objects in PJSIP. This document can also serve as general design document for writing SIP stacks.)]] |
| 96 | }}} |
| 97 | {{{#!td align=left valign=top style="border: none; font-size: 90%" |
| 98 | [[span([http://www.pjsip.org/docs/latest-1/pjlib/docs/html/index.htm 1.x],title=Latest Version of 1.x.)]]\\ |
| 99 | [[span([http://www.pjsip.org/docs/latest-1/pjlib-util/docs/html/index.htm 1.x],title=Latest Version of 1.x.)]]\\ |
| 100 | [[span([http://www.pjsip.org/docs/latest-1/pjnath/docs/html/index.htm 1.x],title=Latest Version of 1.x.)]]\\ |
| 101 | [[span([http://www.pjsip.org/docs/latest-1/pjmedia/docs/html/index.htm 1.x],title=Latest Version of 1.x.)]]\\ |
| 102 | [[span([http://www.pjsip.org/docs/latest-1/pjsip/html/index.html 1.x],title=Latest Version of 1.x.)]]\\ |
| 103 | [[span([http://www.pjsip.org/docs/latest-1/pjsip/docs/html/group__PJSUA__LIB.htm 1.x],title=Latest Version of 1.x.)]]\\ |
| 104 | }}} |
| 105 | {{{#!td align=left valign=top style="border: none; font-size: 90%" |
| 106 | [[span([http://www.pjsip.org/docs/latest-2/pjlib/docs/html/index.htm 2.x],title=Latest Version of 2.x.)]]\\ |
| 107 | [[span([http://www.pjsip.org/docs/latest-2/pjlib-util/docs/html/index.htm 2.x],title=Latest Version of 2.x.)]]\\ |
| 108 | [[span([http://www.pjsip.org/docs/latest-2/pjnath/docs/html/index.htm 2.x],title=Latest Version of 2.x.)]]\\ |
| 109 | [[span([http://www.pjsip.org/docs/latest-2/pjmedia/docs/html/index.htm 2.x],title=Latest Version of 2.x.)]]\\ |
| 110 | [[span([http://www.pjsip.org/docs/latest-2/pjsip/html/index.html 2.x],title=Latest Version of 2.x.)]]\\ |
| 111 | [[span([http://www.pjsip.org/docs/latest-1/pjsip/docs/html/group__PJSUA__LIB.htm 2.x],title=Latest Version of 2.x.)]]\\ |
| 112 | }}} |
| 113 | }}} |
| 114 | }}} |