IOS 之 PJSIP 笔记(二) iPJSUA 的简单使用
上一篇在编译完之后,就很不负责的结束了,本篇就对 PJSIP 库中提供的一个示例 iPJSUA 的使用,做一个简单的介绍。也能解除很多人对官方文档的一个困扰,起码我是被困扰过了。
首先,要确保你的 PJSIP 的库和你即将要编译的平台对应,或者你直接使用上一篇博文最后链接下载的库,那样不用做任何配置,因为它相应的 lib 文件夹中的库,都是支持多平台的。
打开位于:pjsip-apps/src/pjsua/ios/ 下的 ipjsua.xcodeproj ,command + r ,运行该项目,如果编译不成功,请参看我上面说的那句话;如果提示缺少 ”libmilenage-arm-apple-darwin9.a“,删除项目 Libraries 文件夹中,对应的该文件:
再次 command + r,应该不会出什么问题了,那么你将看见如下的界面:
很直观的一个界面,它叫你 telnet 到一个指定的地址和端口,那么从你的 mac 或者其它能和你电脑通讯的机器上 telnet 相应的地址即可。进去后,就可以参考 PJSUA-CLI 中的指令来进行相应操作了。
由于我的 mac 是安装在虚拟机中的(屌丝。。。),宿主系统是 win7,那么我在我的 win7 中搭建一个 SIP 服务器,和添加一个 SIP 客户端,来做一个最基本的使用演示。这里使用 miniSIPServer 和 miniSIPPhone 来作演示,从这里下载试用版:
下载后,安装,打开即可:
SIP 帐号和密码,对应着分机里面的设定,默认它已经给我们建立了几个,账户和密码一样,以下是 SIPPhone 客户端帐号配置(账户名、密码:101,对应分机配置):
这样我们的服务器搭建好了,并且有这么一个客户端,这样就可以在 mac 中与该服务器和客户端进行通讯了,大家可以看到,我这里主系统的 IP 为 192.168.1.100,那么你们要视自己实际情况而定了。
首先从 mac 系统的终端中 telnet 模拟器中提示的地址和端口,进入后,我们参考文档上,注册一个账户(类似于登录到服务器上,并不是新增加一个帐号,也就是说该账户服务器上必须要有)的命令是: acc add,这里有个技巧,当我们不知道后面怎么输入参数时,就按 tab 键,它会给我们提示。这里我们输入 acc add 然后按 tab 键(一次没反应,就再按一次):
它提示要我们输入 SIP URL,然后我们输入 sip:102@192.168.1.100 ,再按 tab 它又会提示输入 SIP 注册服务器的地址,当然熟悉了之后,并不需要这样一直按 tab,直接如下:
参数的意义分别是: 用户的 SIP 地址,注册服务器地址,Realm,用户名,密码,回车后,显示注册成功,这时候,我们看下 miniSIPServer 的分机列表:
此时 102 分机已经在线了,现在对 101 发起一次呼叫:
call new sip:101@192.168.1.100
OK,这时听到 miniSIPPhone 振铃了,我们点击接听即可接通:
上图为分机在通话中的状态,我们挂断它,终端输入:
call hangup
这时我们的通话被终结了,最后,我们来接一通电话,从 miniSIPPhone 中,直接呼叫 102:
这时候,我们在 mac 的 telnet 终端中输入 call list , 会看到一个状态为 incoming 的呼叫:
我们输入 : call answer 200,即可接入,其中 200 为状态码(和 http 的状态码类似)。
OK,到这里,这个 iPJSUA,你应该知道怎么玩了吧~~ 其实很简单的嘛~
IOS 之 PJSIP 笔记(二) iPJSUA 的简单使用的更多相关文章
- IOS 之 PJSIP 笔记(一) 编译多平台支持的静态库
好久没有写博客了,这也算是我步入新工作后的第一篇技术博文吧.在进入新公司前,早就有了技术层进入下一个迭代的准备,但很多事情是意想不到的,就像我以 C# 程序员的身份面试入职的,而今却是一个全职的 IO ...
- iOS音频学习笔记二:iOS SDK中与音频有关的相关框架
上层: Media Player Framework: 包含MPMoviePlayerController.MPMoviePlayerViewController.MPMusicPla ...
- Html学习笔记(二) 简单标签
标签的重点 标签的用途 标签在浏览器中的默认样式 <body>标签: 在网页上显示的内容 <p>标签: 添加段落 <hx>标签: 添加标题 标签一共有6个,h1.h ...
- 《CMake实践》笔记二:INSTALL/CMAKE_INSTALL_PREFIX
<CMake实践>笔记一:PROJECT/MESSAGE/ADD_EXECUTABLE <CMake实践>笔记二:INSTALL/CMAKE_INSTALL_PREFIX &l ...
- MongoDB学习:(二)MongoDB简单使用
MongoDB学习:(二)MongoDB简单使用 MongoDB使用: 执行mongodb的操作之前,我们需要运行命令,来进入操作命令界面 >mongo 提示该错误,说明我们系统缺少一个补丁,该 ...
- Mastering Web Application Development with AngularJS 读书笔记(二)
第一章笔记 (二) 一.scopes的层级和事件系统(the eventing system) 在层级中管理的scopes可以被用做事件总线.AngularJS 允许我们去传播已经命名的事件用一种有效 ...
- iOS开发UI篇—UITableview控件简单介绍
iOS开发UI篇—UITableview控件简单介绍 一.基本介绍 在众多移动应⽤用中,能看到各式各样的表格数据 . 在iOS中,要实现表格数据展示,最常用的做法就是使用UITableView,UIT ...
- HTML DOM(学习笔记二)
嗯,在HTML DOM(学习笔记一)中简单描述了一下HTML DOM 是什么,这一篇将记录下来有关HTML DOM的内容! 1:DOM节点 首先,再来看一下HTML DOM的树状结构,如下图所示: 这 ...
- 《MFC游戏开发》笔记二 建立工程、调整窗口
本系列文章由七十一雾央编写,转载请注明出处. http://blog.csdn.net/u011371356/article/details/9300383 作者:七十一雾央 新浪微博:http:/ ...
随机推荐
- windows下使用TortoiseGit代替Git命令行操作
windows下使用TortoiseGit代替Git命令行操作 大家在使用svn的时候,都非常喜欢使用小乌龟,也就是TortoiseSVN:那么git也有小乌龟版本,即TortoiseGit. 1.安 ...
- mac上parallel与virtualbox无法共存
Mac reboots when you attempt to launch Parallels Desktop 8 and Virtual Box simultaneously Article ID ...
- centos7 linux 安装jdk8
1.下载64位jdk8 http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html 2.在 ...
- [转载] Redis
转载:http://snowolf.iteye.com/blog/1630697 大约一年多前,公司同事开始使用Redis,不清楚是配置,还是版本的问题,当时的Redis经常在使用一段时间后,连接爆满 ...
- Difference between LET and LET* in Common LISP
Difference between LET and LET* in Common LISP LET Parallel binding which means the bindings com ...
- 发布FTP服务,防火墙配置
最近需要在Web服务器上发布一下FTP,不想安装Server-U之类的,就用IIS的了,安装好后,发现外网无法连接.经过测试,发现是防火墙的问题. 查找了下关于FTP的资料,ftp server支持两 ...
- mssql表名列名对应语句
if exists (select * from tempdb..sysobjects where name like '#magic%') drop table #magic go select a ...
- ISO给UIImageView增加点击事件
自己做了一个九宫格,里面的图标都是由多张图片重叠构成,然后包装成一个button来使用: 遇到的问题是如何给这个“button”增加点击事件? 解决思路1:网友提示在该“button”上增加一个真正的 ...
- VPN理论简单介绍(转载)
标签:VPN理论简单介绍 原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://lvnian.blog.51cto.com/715528 ...
- php高级面试题知识点(转载)
php高级面试题知识点大全 时间:2016-01-26 06:36:22来源:网络 导读:php高级面试题知识点大全,本套面试题内容包括php魔术方法.php单点登录.linux基本命令.前端开发技术 ...