上一篇在编译完之后,就很不负责的结束了,本篇就对 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 的简单使用的更多相关文章

  1. IOS 之 PJSIP 笔记(一) 编译多平台支持的静态库

    好久没有写博客了,这也算是我步入新工作后的第一篇技术博文吧.在进入新公司前,早就有了技术层进入下一个迭代的准备,但很多事情是意想不到的,就像我以 C# 程序员的身份面试入职的,而今却是一个全职的 IO ...

  2. iOS音频学习笔记二:iOS SDK中与音频有关的相关框架

      上层:       Media Player Framework: 包含MPMoviePlayerController.MPMoviePlayerViewController.MPMusicPla ...

  3. Html学习笔记(二) 简单标签

    标签的重点 标签的用途 标签在浏览器中的默认样式 <body>标签: 在网页上显示的内容 <p>标签: 添加段落 <hx>标签: 添加标题 标签一共有6个,h1.h ...

  4. 《CMake实践》笔记二:INSTALL/CMAKE_INSTALL_PREFIX

    <CMake实践>笔记一:PROJECT/MESSAGE/ADD_EXECUTABLE <CMake实践>笔记二:INSTALL/CMAKE_INSTALL_PREFIX &l ...

  5. MongoDB学习:(二)MongoDB简单使用

    MongoDB学习:(二)MongoDB简单使用 MongoDB使用: 执行mongodb的操作之前,我们需要运行命令,来进入操作命令界面 >mongo 提示该错误,说明我们系统缺少一个补丁,该 ...

  6. Mastering Web Application Development with AngularJS 读书笔记(二)

    第一章笔记 (二) 一.scopes的层级和事件系统(the eventing system) 在层级中管理的scopes可以被用做事件总线.AngularJS 允许我们去传播已经命名的事件用一种有效 ...

  7. iOS开发UI篇—UITableview控件简单介绍

    iOS开发UI篇—UITableview控件简单介绍 一.基本介绍 在众多移动应⽤用中,能看到各式各样的表格数据 . 在iOS中,要实现表格数据展示,最常用的做法就是使用UITableView,UIT ...

  8. HTML DOM(学习笔记二)

    嗯,在HTML DOM(学习笔记一)中简单描述了一下HTML DOM 是什么,这一篇将记录下来有关HTML DOM的内容! 1:DOM节点 首先,再来看一下HTML DOM的树状结构,如下图所示: 这 ...

  9. 《MFC游戏开发》笔记二 建立工程、调整窗口

    本系列文章由七十一雾央编写,转载请注明出处.  http://blog.csdn.net/u011371356/article/details/9300383 作者:七十一雾央 新浪微博:http:/ ...

随机推荐

  1. android 常用类

    转载请标明出处:http://blog.csdn.net/lmj623565791/article/details/38965311,本文出自[张鸿洋的博客] 打开大家手上的项目,基本都会有一大批的辅 ...

  2. 关于MYSQL中like 检索汉字问题。

    mysql中like’中国‘查询不出来结果 如果 like‘zg’就看查询出来结果. 查询了半天是由于mysql中编码的原因 解决办法: 进入mysql 输入命令:show variables lik ...

  3. 统计Codec RAM和ROM方法

    有二种方法,你试一下这个也是我2010-03-29工作日志      2010-03-29: 1) How to accurately get the program memory/Data RAM/ ...

  4. Https 公钥、私钥、证书

    .https的握手协议: http://blog.csdn.net/clh604/article/details/221799072.证书的概念:http://blog.csdn.net/sealya ...

  5. “You must not call setTag() on a view Glide is targeting” 解决

    报错原因大致是因为Glide加载的iamgeView调用了setTag()方法导致的错误, 因为Glide已经默认为ImageView设置的Tag. 解决办法:自定义一个Application,在里面 ...

  6. Android permission 访问权限大全

    程序执行需要读取到安全敏感项必需在androidmanifest.xml中声明相关权限请求, 完整列表如下: android.permission.ACCESS_CHECKIN_PROPERTIES ...

  7. 墓地雕塑-LA3708

    https://icpcarchive.ecs.baylor.edu/index.php?option=com_onlinejudge&Itemid=8&category=20& ...

  8. C#获取内网和外网IP

    写了个小客户端,里面用到了获取内网和外网的IP地址,代码如下: // InnerIP var ipHost = Dns.Resolve(Dns.GetHostName()); ]; innerIP = ...

  9. 在Sharepoint2010中一种自定义调查列表的不允许再次答复提示的处理方法!

    在Sharepoint中默认创建的调查列表系统只允许答复一次,再次答复将报错误信息,这对最终用户而言是非常不友好的体验,当然你也可以在调查设置中的常规设置中设置允许多次答复,这样就会有错误提示信息,但 ...

  10. 明天去FDUSC报道了,GOD BLESS ALL OF US

    @lrb @tellmewtf @proverbs