首先要下载全套资料,不过比较烦,不是iOS专用: http://trac.pjsip.org/repos/wiki/Getting-Started/iPhone ,代码也能官网或者附件中下载,记得论坛附件后缀名重命名为*.tar.bz2。
在 Mac 里新建个文件夹,解压开,最好不要带中文路径名。
- 解压开后,命令行 Terminal 至 pjlib/include/pj/config_site.h,以我实际案例为基础,差不多是 /pjsip/pjlib/include/pj/config_site.h,创建这个文件(touch config_site.h)即可。
- 打开编辑 config_site.h,具体内容为:
#define PJ_CONFIG_IPHONE 1
#include <pj/config_site_sample.h>
- 开始命令行里编译。到解压开的目录中,输入 sudo ./configure-iphone, 命令行里多按按 Tab 键,让它自动提示,比如先输入./ 然后打个 Tab 键,它会提示你能选择的命令有哪些。
务必记住,这里指的编译环境,都是 arm7,非 i386 模拟器,你若无真机 debug,除非编译第三方库,参考编译生成i386的库,来配合让模拟器运行。所以没有 iPhone 的最好别尝试了。
另外务必记得,你尽量加入 sudo ,管理员帐号,输入之后,它会提示你输入系统密码。这一点,很有用,否则你的帐号无法创建文件权限,你这不白编译么?
- 在原有命令行 configure 之后,继续依次输入 sudo make dep ; sudo make clean; sudo make;
如果无报错,应该编译通过,自动生成到系统路径,并保存了库以及头文件路径了,具体的在/usr/lib/ blah blah blah。。。可以自己找找,默认文件夹管理,是看不到这个路径的。
- 在 pjproject/pjsip-apps/src/ipjsua 路径下,有这么个 project,直接打开,编译。记得选择 iOS Device 编译,配置东西基本都设定好了。当然了,开发证书是免不了的。
最终,在真机上看到运行画面了吧。别开心,你还只是迈出了第一步。下面为了验证你的成果,你需要下载 MiniSipServer 免费版、3CX Phone Client 客户端,当然还要连上 WiFi。
搭建 MiniSipServer 非常简单,个人建议使用英文版,中国版翻译得很2,词不达意。见如下链接,添加帐号,设定密码,等等。http://www.myvoipapp.com/docs/mss_services/manual/index.html#add_local_usr
然后,你必须打开 3CX VOIP 客户端,登陆后这个帐号就在服务器端绿色显示在线了。下面就要在 iPhone 上用命令行设定了。
+=============================================================================+");
| Call Commands: | Buddy, IM & Presence: | Account: |");
| | | |");
| m Make new call | +b Add new buddy .| +a Add new accnt |");
| M Make multiple calls | -b Delete buddy | -a Delete accnt. |");
| a Answer call | i Send IM | !a Modify accnt. |");
| h Hangup call (ha=all) | s Subscribe presence | rr (Re-)register |");
| H Hold call | u Unsubscribe presence | ru Unregister |");
| v re-inVite (release hold) | t ToGgle Online status | > Cycle next ac.|");
| U send UPDATE | T Set online status | < Cycle prev ac.|");
| ],[ Select next/prev call +--------------------------+-------------------+");
| x Xfer call | Media Commands: | Status & Config: |");
| X Xfer with Replaces | | |");
| # Send RFC 2833 DTMF | cl List ports | d Dump status |");
| * Send DTMF with INFO | cc Connect port | dd Dump detailed |");
| dq Dump curr. call quality | cd Disconnect port | dc Dump config |");
| | V Adjust audio Volume | f Save config |");
| S Send arbitrary REQUEST | Cp Codec priorities | f Save config |");
+------------------------------+--------------------------+-------------------+");
| q QUIT L ReLoad sleep MS echo [0|1|txt] n: detect NAT type |");
+=============================================================================+");
在iPhone上输入 +a 添加帐号啦,他会提示你输入你的帐号 URL,记得使用此格式 sip:account@example.com 或者 sip:account@192.168.0.1,前提是你没设端口,你要是改动了默认端口,你自己看着办吧。
然后他会依次问你,帐号,密码,都照填,auth 据说可以随便填,或者填入*,代表空。添加帐号成功后,你在server端就会看到,你的帐号又绿色亮啦!
然后添加朋友,输入 +b;SIP 帐号规则还是,sip:friend@example.com; 添加成功后,就是输入 m ; 开始打电话啦,他会提示你有个 buddy 在线,直接输入数字 ID,即可拨通啦。