开发 iOS 的 VOIP 客户端

本文详细介绍了如何在Mac系统中设置并编译PJSIP库,进而实现iPhone上的VoIP功能。包括下载资料、配置环境、编译库、搭建服务器、配置客户端等步骤。并通过MiniSipServer和3CXPhoneClient实现远程通信。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

   首先要下载全套资料,不过比较烦,不是iOS专用: http://trac.pjsip.org/repos/wiki/Getting-Started/iPhone ,代码也能官网或者附件中下载,记得论坛附件后缀名重命名为*.tar.bz2。
    在 Mac 里新建个文件夹,解压开,最好不要带中文路径名。

  1. 解压开后,命令行 Terminal 至 pjlib/include/pj/config_site.h,以我实际案例为基础,差不多是 /pjsip/pjlib/include/pj/config_site.h,创建这个文件(touch config_site.h)即可。
     
  2. 打开编辑 config_site.h,具体内容为:
    #define PJ_CONFIG_IPHONE 1
    #include <pj/config_site_sample.h>
     
  3. 开始命令行里编译。到解压开的目录中,输入 sudo ./configure-iphone, 命令行里多按按 Tab 键,让它自动提示,比如先输入./  然后打个 Tab 键,它会提示你能选择的命令有哪些。
    务必记住,这里指的编译环境,都是 arm7,非 i386 模拟器,你若无真机 debug,除非编译第三方库,参考编译生成i386的库,来配合让模拟器运行。所以没有 iPhone 的最好别尝试了。
    另外务必记得,你尽量加入 sudo ,管理员帐号,输入之后,它会提示你输入系统密码。这一点,很有用,否则你的帐号无法创建文件权限,你这不白编译么?
     
  4. 在原有命令行 configure 之后,继续依次输入 sudo make dep ; sudo make clean; sudo make;
    如果无报错,应该编译通过,自动生成到系统路径,并保存了库以及头文件路径了,具体的在/usr/lib/   blah blah blah。。。可以自己找找,默认文件夹管理,是看不到这个路径的。
     
  5. 在 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,即可拨通啦。

    帖子地址 http://www.cocoachina.com/bbs/read.php?tid-60853.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值