Getting Started: Building and Using PJSIP and PJMEDIA
[Last Update: Sept 13, 2006]
_________________________________________________________________
This article describes how to download, customize, build, and use the open
source PJSIP and PJMEDIA SIP and media stack. The online (and HTML) version
of this file can be downloaded from http://www.pjsip.org/using.htm
Quick Info
Building with GNU tools
Generally these should be all that are needed to build the libraries,
applications, and samples:
$ ./configure
$ make dep && make clean && make
Building Win32 Target with Microsoft Visual Studio
Generally we can just do these steps:
1. Open pjsip-apps/build/pjsip_apps.dsw workspace,
2. Create an empty pjlib/include/pj/config_site.h, and
3. build the pjsua application.
Building for Windows Mobile
Generally these are all that are needed:
1. Open pjsip-apps/build/wince-evc4/wince_demos.vcw EVC4 workspace,
2. Create an empty pjlib/include/pj/config_site.h, and
3. build the pjsua_wince application.
With Visual Studio for Win32 target and the GNU build systems, the output
libraries will be put in lib directory under each projects, and the output
binaries will be put in bin directory under each projects.
Table of Contents:
_________________________________________________________________
1. Getting the Source Distribution
1.1 Getting the Release tarball
1.2 Getting from Subversion trunk
1.3 Source Directories Layout
2. Build Preparation
2.1 config_site.h file
2.2 Disk Space Requirements
3. Building Linux, *nix, *BSD, and MacOS X Targets with GNU Build Systems
3.1 Supported Targets
3.2 Requirements
3.3 Running configure
3.4 Running make
3.5 Cross Compilation
4. Building for Windows Targets with Microsoft Visual Studio
4.1 Requirements
4.2 Building the Projects
4.3 Debugging the Sample Application
5. Building for Windows Mobile Targets (Windows CE/WinCE/PDA/SmartPhone)
5.1 Requirements
5.2 Building the Projects
6. Using PJPROJECT with Applications
Appendix I: Common Problems/Frequently Asked Question (FAQ)
I.1 fatal error C1083: Cannot open include file: 'pj/config_site.h':
No such file or directory
1. Getting the Source Code Distribution
_________________________________________________________________
All libraries (PJLIB, PJLIB-UTIL, PJSIP, PJMEDIA, and PJMEDIA-CODEC) are
currently distributed under a single source tree, collectively named as
PJPROJECT or just PJ libraries. These libraries can be obtained by either
downloading the release tarball or getting them from the Subversion trunk.
1.1 Getting the Release tarball
_________________________________________________________________
Getting the released tarball is a convenient way to obtain stable version of
PJPROJECT. The tarball may not contain the latest features or bug-fixes, but
normally it is considered more stable as each will be tested more rigorously
before released.
The latest released tarball can be downloaded from the
http://www.pjsip.org/download.htm.
1.2 Getting from Subversion trunk
_________________________________________________________________
PJPROJECT Subversion repository will always contain the latest/most
up-to-date version of the sources. Normally the Subversion repository is
always kept in a "good" state. However, there's always a chance that things
break and the tree doesn't build correctly (particularly for the
"not-so-popular" targets), so please consult the mailing list should there
be any problems.
Using Subversion also has benefits of keeping the local copy of the source
up to date with the main PJ source tree and to easily track the changes made
to the local copy, if any.
What is Subversion
Subversion (SVN) is Open Source version control system similar to CVS.
Subversion homepage is in http://subversion.tigris.org/
Getting Subversion Client
A Subversion (SVN) client is needed to download the PJ source files from
pjsip.org SVN tree. SVN client binaries can be downloaded from
http://subversion.tigris.org/, and the program should be available for
Windows, Linux, MacOS X, and many more platforms.
Getting the Source for The First Time
Once Subversion client is installed, we can use these commands to initially
retrieve the latest sources from the Subversion trunk:
$ svn co http://svn.pjproject.net/repos/pjproject/trunk pjproject
$ cd pjproject
Keeping The Local Copy Up-to-Date
Once sources have been downloaded, we can keep the local copy up to date by
periodically synchronizing the local source with the latest revision from
the PJ's Subversion trunk. The mailing list provides best source of
information about the availability of new updates in the trunk.
To update the local copy with the latest changes in the main PJ's
repository:
$ cd pjproject
$ svn update
Tracking Local and Remote Changes
To see what files have been changed locally:
$ cd pjproject
$ svn status
The above command only compares local file against the original local copy,
so it doesn't require Internet connection while performing the check.
To see both what files have been changed locally and what files have been
updated in the PJ's Subversion repository:
$ cd pjproject
$ svn status -u
Note that this command requires active Internet connection to query the
status of PJPROJECT's source repository.
1.3 Source Directories Layout
_________________________________________________________________
Top-Level Directory Layout
The top-level directories (denoted as $TOP here) in the source distribution
contains the following sub-directories:
$TOP/build
Contains makefiles that are common for all projects.
$TOP/pjlib
Contains header and source files of PJLIB. PJLIB is the base
portability and framework library which is used by all other
libraries
$TOP/pjlib-util
Contains PJLIB-UTIL header and source files. PJLIB-UTIL is an
auxiliary library that contains utility functions such as scanner,
XML, STUN, MD5 algorithm, getopt() implementation, etc.
$TOP/pjmedia
Contains PJMEDIA and PJMEDIA-CODEC header and source files. The
sources of various codecs (such as GSM, Speex, and iLBC) can be found
under this directory.
$TOP/pjsip
Contains PJSIP header and source files.
$TOP/pjsip-apps
Contains source code for PJSUA and various sample applications.
Individual Directory Inside Each Project
Each library directory further contains these sub-directories:
bin
Contains binaries produced by the build process.
build
Contains build scripts/makefiles, project files, project workspace,
etc. to build the project. In particular, it contains one Makefile
file to build the project with GNU build systems, and a *.dsw
workspace file to build the library with Microsoft Visual Studio 6 or
later.
build/output
The build/output directory contains the object files and other files
generated by the build process. To support building multiple targets
with a single source tree, each build target will occupy a different
subdirectory under this directory.
build/wince-evc4
This directory contains the project/workspace
没有合适的资源?快使用搜索试试~ 我知道了~
pjsip.rar_SIP 协议_pjs_pjsip_pjsips_sip
共817个文件
c:361个
h:278个
mak:42个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 199 浏览量
2022-09-21
03:51:43
上传
评论
收藏 2.96MB RAR 举报
温馨提示
一个很好的SIP协议栈,用标准C实现.大家学习吧.
资源推荐
资源详情
资源评论
收起资源包目录
pjsip.rar_SIP 协议_pjs_pjsip_pjsips_sip (817个子文件)
aconfigure.ac 13KB
aconfigure 309KB
AUTHORS 544B
pa_win_wmme.c 138KB
pa_linux_alsa.c 118KB
sip_transaction.c 76KB
pjsua_app.c 68KB
pa_converters.c 68KB
pa_unix_oss.c 67KB
pa_win_ds.c 66KB
pjsua_call.c 66KB
sip_inv.c 66KB
pa_process.c 65KB
nb_celp.c 64KB
pa_front.c 61KB
sip_parser.c 57KB
siprtp.c 53KB
sip_msg.c 52KB
evsub.c 51KB
conference.c 50KB
sb_celp.c 50KB
pjsip-perf.c 49KB
tsx_uas_test.c 47KB
sip_dialog.c 42KB
tsx_uac_test.c 41KB
sip_util.c 40KB
pa_x86_plain_converters.c 38KB
sip_transport_tcp.c 38KB
stream.c 37KB
constants.c 37KB
pa_mac_core.c 35KB
sip_transport.c 35KB
sdp_neg_test.c 35KB
os_core_unix.c 34KB
ioqueue_common_abs.c 33KB
ioqueue_winnt.c 33KB
sdp.c 32KB
pjsua_core.c 32KB
pjsua_media.c 30KB
os_core_win32.c 29KB
pa_lib.c 29KB
preprocess_spx.c 29KB
pjsua_pres.c 28KB
pa_skeleton.c 28KB
msg_test.c 28KB
sdp_neg.c 28KB
sip_endpoint.c 28KB
uri_test.c 28KB
z-lbr_48k_tables.c 27KB
pjsua_acc.c 27KB
mdf.c 26KB
dsound_wrapper.c 26KB
dsound.c 26KB
txdata_test.c 25KB
ioq_udp.c 25KB
sip_auth_client.c 25KB
filters.c 24KB
z-mdf.c 24KB
long_term.c 24KB
sip_ua_layer.c 24KB
getopt.c 23KB
ioq_tcp.c 23KB
resample.c 23KB
ltp.c 23KB
smallft.c 23KB
speex_codec.c 22KB
presence.c 21KB
iLBC_decode.c 21KB
enhancer.c 21KB
ioqueue_select.c 21KB
simpleua.c 20KB
transport_udp.c 20KB
sip_transport_udp.c 19KB
session.c 19KB
lsp.c 19KB
transport_test.c 18KB
splitcomb.c 18KB
rtcp.c 18KB
streamutil.c 18KB
cb_search.c 18KB
iLBC_encode.c 18KB
footprint.c 18KB
jitter.c 18KB
sip_uri.c 17KB
ioq_perf.c 17KB
os_core_linux_kernel.c 17KB
sip_reg.c 17KB
sock_linux_kernel.c 17KB
pasound.c 17KB
pjsua_im.c 17KB
ilbc.c 16KB
sip_xfer.c 16KB
jbuf.c 16KB
sndtest.c 16KB
l16.c 16KB
publishc.c 16KB
confsample.c 15KB
g711.c 15KB
sock_bsd.c 15KB
timer.c 15KB
共 817 条
- 1
- 2
- 3
- 4
- 5
- 6
- 9
资源评论
御道御小黑
- 粉丝: 58
- 资源: 1万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功