开发 iOS 的 VOIP 客户端
首先要下载全套资料,不过比较烦,不是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,即可拨通啦。
帖子地址 http://www.cocoachina.com/bbs/read.php?tid-60853.html
开发 iOS 的 VOIP 客户端相关推荐
- java跨平台 ios_Smobiler如何实现.net一键开发,ios和android跨平台运行
目录 一 概述 二 原理 移动端控件 移动端API 三 写在最后 一. 概述 Smobiler实现了.net服务端开发,ios和android客户端直接运行显示,无需学习Objective-C或Jav ...
- IOS开发——仿网易新闻客户端
IOS开发--仿网易新闻客户端 本文没有内容,传个资源 衔接地址:http://download.csdn.net/detail/u012881779/7152281 左侧导航部分: 新闻版块 订阅版 ...
- QT开发pjsip的VOIP,A8平台运行
QT开发pjsip的VOIP 开发环境 平台:A8 环境:Linux-3.0.8 实现功能:使用QT开发VOIP进行初始化.拨号.挂起 测试工具:minisipserver服务器 效果 界面: min ...
- iOS开发- ios学习资源(持续更新)
mark一些自己在学习过程中收集的资源.免得需要的时候没地方找. 持续更新.(最新更新时间: 2014.4.4) 1.苹果官方文档 构建iOS程序:下面的这篇文章介绍了 iOS 程序开发的过程: St ...
- 视频直播APP源码开发iOS音频播放流程
视频直播APP源码开发iOS音频播放流程 概览 随着移动互联网的发展,如今的手机早已不是打电话.发短信那么简单了,播放音乐.视频.录音.拍照等都是很常用的功能.在iOS中对于多媒体的支持是非常强大的, ...
- 苹果教你如何开发iOS应用
做iOS开发买什么苹果本比较好 描述不清违规检举侵权投诉| | 2015-02-06 17:38 LayaeLL | 浏览 576 次 来自:手机知道 2015-12-16 10:32 iOS程序开发 ...
- 直播网站源码直播平台软件开发iOS动手做一个直播(原理篇)
直播网站源码直播平台软件开发iOS动手做一个直播(原理篇) 上篇文章主要给出了代码,但是并没有详细说明直播相关的知识,这篇文章就说一下直播的相关理论知识.附上直播代码篇地址. ###推流 腾讯直播平台 ...
- 用Qt第一次开发IOS的记录——Qt for IOS
前言 我之前是个只开发电脑客户端的Qter,本来客户端都没整明白,结果现在开发ios app的任务落我头上,惊喜程度可想而知,为了它我学了qml,为了它我又开始问白痴问题了,为了它我调动了我整个人脉( ...
- xamarin c#开发ios/android 应用
最近项目需要开发手机客户端,而现在项目又是微软的项目,所以正在考虑用xamarin c#开发ios 应用,这方面的资料不是很多,下面是一些资料的汇总 等研究一段时间再写的使用心得. xamarin 的 ...
最新文章
- 如何挑选深度学习 GPU?
- MySQL 8.0版本无法使用 node、Navicat等三方工具连接的问题
- 使用WCF传输DataTable:DataTable和Xml格式的字符串相互转换(C#)
- 读书感想--list/BSS等等
- python查看库函数和方法_查看python库函数和三方库函数文档
- Android版本Oppo电视,OPPO 智能电视 R1
- Redundant declaration: @SpringBootApplication already applies given @ComponentScan
- deepin切换root
- 【WinForm】打印机编辑打印内容并实现双排打印
- cie1931 python绘制_科学网-gnuplot与CIE1931 XYZ三刺激值曲线-范学良的博文
- 如何用echarts组件制作图表
- HtmlUnit的入门教程整理
- javaScript教程笔记(一)JS简史
- 基于Springboot+vue实现前后端分离二手图书交易
- anemometer mysql 500_Anemometer将Mysql慢查询日志可视化
- ubuntu下putty的安装及使用
- Fri Oct 7 10:08:00 UTC 0800 2016日期格式转换为 yyyy-mm-dd hh24:mi:ss (Map实现版)
- php文件怎么打开? 教你用什么软件打开php文件
- GL Studio 5 安装与体验
- 【每天学点管理】——员工激励
热门文章
- html表格文字方向改变,excel表格怎么改变文字方向
- ubuntu 20.04 ssh “Key exchange failed“
- excel提取奇数行
- 七个受用一生的心理寓言
- ICM20602六轴传感器-IIC通信模式
- 如何修改Windows上Docker的镜像源
- 一加7t人脸识别_10月换新推荐:一加7T/荣耀20青春版领衔好手机
- 【C语言】如何去求最大公约数和最小公倍数?
- python中列表概念_详解python列表
- JS 封装一个判断闰年平年的方法 aa(nian)