上一篇在编译完之后,就很不负责的结束了,本篇就对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,你应该知道怎么玩了吧~~ 其实很简单的嘛~