现在网络电话流行,例如skype ,viber  ,whatsapp。。。但是你们知道他们怎么做的吗?


下面看看我的详细步骤把,哈哈!


第一步:在Mac OS桌面新建文件夹,最好不要带中文路径名。新建个目录如:pjsip,解压附件(

见链接),


pjproject-2.0-alpha2.tar.bz2 (mac os)
pjproject-2.0-alpha2.zip(windows)



第二步: 解压开后,命令行cd至 pjlib/include/pj/,创建这个文件。创建文件,touch config_site.h即可。


第三步,就是打开新创建的config_site.h,添加内容:



#define PJ_CONFIG_IPHONE 1


#include <pj/config_site_sample.h>



第四步:cd到解压开的目录,输入sudo ./configure-iphone



务必记住,这里指的编译环境,都是arm7,非i386模拟器,你若无真机debug,你就悲催了,必须得按照我另外一个文章里编译第三方库,参考编译生成i386的库,来配合让模拟器运行。


另外务必记得,你尽量加入sudo ,管理员帐号,输入之后,它会提示你输入系统密码。这一点,很有用,否则你的帐号无法创建文件权限。




第五步:继续依次输入sudo make dep ; sudo make clean; sudo make;




最终,你成功了,如果无报错,应该编译通过,自动生成到系统路径,并保存了库以及头文件路径了,具体的在/usr/lib/   blah blah blah。。。可以自己找找,默认文件夹管理,是看不到这个路径的。




第六步:在pjproject/pjsip-apps/src/ipjsua 路径下,有这么个project,直接打开,编译。(一定要真机调试)




好吧,最终,你在真机上看到运行画面了吧。


别开心,你还只是迈出了第一步。




下面为了验证你的成果,你需要下载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,即可拨通啦。