How to build and compile PJSIP using xCode and run the sample code IPJSUA?
3 Answers
First, you need to open the terminal. Terminal can be found at Applications->Utilities->terminal. After you open the terminal, make sure you point to the desktop to make it easier to get the data folder. just type :
cd Desktop
Congrats, you already at your desktop. Now continue to type this.
svn co http://svn.pjsip.org/repos/pjproject/trunk pjproject
That code means you download the pjproject from the website to your desktop. After you finish download the PJSIP, you need to add a config_site.h. Honestly, I don't what should we do that, but just follow it. :D
How do you create a config_site.h? Just copy the config_site_sample.h, paste, and change the content become like this.
After this, we need to change the configure-iphone. I figured it out. If you just want to run at simulator you need to change the DevPath. If you want to test on device, just leave it be.
Now, I will give example to run on the Simulator. Open pjproject and you will find the configure-iphone. Open the file using a text editor and change the DEVPATH and hardcode the IPHONESDK.
The devpath will looks like this.
DEVPATH=/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer
Remember, this refers to the path to your Xcode app. If you want to make sure, go to finder->applications->xcode->show package contents. I also hardcoded the IPHONESDK.
IPHONESDK=iPhoneSimulator5.1.sdk
After you're done with that, we will going back to the terminal. Make sure you already at the pjproject folder. Type this.
export CC=/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin/gcc
export CFLAGS="-O2 -m32 -miphoneos-version-min=5.0 -g -ggdb -g3 -DNDEBUG"
export LDFLAGS="-O2 -m32"
After that, you can configure it. Just click this on terminal. If you want to test on your device, you don't need to change the configure-iphone, export CC, etc., just directly configure-iphone.
./configure-iphone
After you're done, continue by entering the commands below to build the library and all dependencies. This line below is where the magic happens and it needs to complete successfully for you to continue.
make dep && make clean && make
You will find that all the libraries will compile. The resulting library can help us if we want to create a new project. -> this is what I'm thinking right now. Now you almost finished, just go to the pjsip-apps->src->ipjsua. You will find the Xcode project, just click it to open at your xcode. Click build and run. You will find the interface like this.
If you want to test on your device, you must have the certificate and private key chain. I can't explain that because I got that certificate from my company. They provide it.
If you want to try, you must create a SIP account first. You can use sip2sip or ekiga. At here I tried ekiga. for example my SIP is 12345678@ekiga.net and 87654321@ekiga.net.
After the simulator we key in +a to add new account. Next you will have to type your SIP name. remember to type "sip:". dont ever forget. here is the example:sip:12345678@ekiga.net.
After that you will have to type the URL address, just type ekiga.net since that is our URL. This URL means our server. Tor example, sip:ekiga.net.
Next is the auth realm. Type the same as the URL address, sip:ekiga.net. Next is your username. In here my username is 12345678. You don't need to add sip or type with @ekiga.net. Last is your password. After you register, it will automatically add it to the account. Just go to the textfield, and hit enter. It will refresh for you.
Next, we need to add buddy. Type +b
, and you must input the URI address. Type sip:87654321@ekiga.net
and you are done. Back to the textfield, it will add automatically to your buddy list.
You will see that your account still in offline mode. You need to change into online mode before you make a call. Just change the status by type t, and hit enter.
After that you can make a call by type M. and type 1. because our buddy is no 1. 1 is their ID. and you can make a call.

- 4,106
- 36
- 54

- 1,381
- 3
- 17
- 35
-
Thank you @Alfred Angkasa. Now i am getting error with #import
file not found. Any idea How to solve it? – Ganesh G Dec 29 '12 at 14:36 -
hi @GaneshGuturi, you want to build this pjsip for emulator or for device? – Alfred Angkasa Dec 30 '12 at 00:39
-
For Simulator only but what i did, first i found ABFavoritesList.h and ABFavoritesEntry.h amd i added to my applicayion and after imported like #import "ABFavoritesEntry.h" and #import "ABFavoritesList.h" after that am having this problem Undefined symbols for architecture i386: "_pjsua_media_transports_create", referenced from: _sip_startup in call.o ld: symbol(s) not found for architecture i386 clang: error: linker command failed with exit code 1 (use -v to see invocation) – Ganesh G Dec 31 '12 at 07:49
-
i used to get the same error like you post. Have you follow all my instruction? i mean the answer. Happy New Year 2013. thanks. :) – Alfred Angkasa Jan 01 '13 at 03:03
-
Thank you and wish u da same. I followed all the instructions and i could able to run ipjsua and i am getting output like above screen shot. But when I am compiling siphon then am getting above mentioned error. I searched in google bt am not getting any proper solution.What to do? Thanks. – Ganesh G Jan 01 '13 at 11:26
-
1Hi @Alfred Angkasa, I could able to run SIPHONE but i just want to know what are these +a, +b, t and m. Whare I can type in application? – Ganesh G Jan 04 '13 at 11:24
-
hi.. sorry for the late reply. i have to settle something. +a if i'm not wrong is add your SIP account.. +b is for buddy. t is make it available online. m is for make a call.. :) – Alfred Angkasa Jan 04 '13 at 17:32
-
Call isnt going through to other device even I register with PJSIP library successfully and added couple of buddies to my list aswell. It always stuck in Calling. – user366584 May 12 '13 at 10:44
-
i am getting error with #import #include
file not found. Any idea How to solve it? – ronymattar Dec 27 '13 at 15:23 -
Hey can you tell me how to build PJSIP for windows phone ? I build successfully and deploy it to device but it telnet to local IP and do nothing – Đức Bùi Jul 07 '14 at 04:11
-
-
I am getting error configure-ios: command not found any idea why I am getting this error? I am stucked to build app please help me if possible. – Jayeshkumar Sojitra Oct 15 '14 at 06:49
-
How to drag and drop in to my project? i mean what files are need to be drag and drop. – Rushang Prajapati Mar 06 '20 at 06:57
Please check below link. You can get source code from there and biuld for both device and simulator.
https://github.com/radif/SIPHON-SIP-Client-that-actually-compiles

- 1,991
- 1
- 24
- 37
For XCode 4.5
->
export DEVPATH=/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/
export IPHONESDK=iPhoneSimulator5.1.sdk
export CC=/Applications/Xcode.app/Contents/Developer/usr/bin/gcc

- 52,876
- 38
- 145
- 202

- 31
- 2