1.3 测试demo
我们提供多种语言(如PHP、JAVA、C#、C)编写的发送和接收消息的demo,详情请参考API新编开发指南。
下面,我们用测试工具(相当于一个简单的应用服务器)来演示OM和API应用服务器的配置方法及收发消息过程。
配置
注:这里我们采用IP认证方式。
步骤一:配置OM设备认证地址
登录OM设备页面,点击应用服务器 > API,在应用服务器一栏选择自定义(默认选中为侬好,侬好是内置在设备里的小型呼叫中心),填写应用服务器地址(即测试工具所在的电脑IP:OM发送端口,可自定义)如,192.168.130.27:8989。
步骤二:配置分机和外线的API开关
进入应用服务器 > API,在API功能开关一栏将分机和外线的状态监控、来电应答前/来电应答后控制开关打开,点击保存,并重启设备。
设备配置如下图所示:
步骤三:配置测试工具
点击这里下载测试工具,并在电脑桌面打开,填写一个HTTP监听端口(该端口与设备上配置的OM发送端口保持一致,应为8989 ),点击开始监听(注:测试工具的源码可点击这里下载)。
填写发送地址(即OM的IP地址和HTTP端口),如192.168.130.219:80。
注:OM的HTTP端口默认为80,可在设备高级设置>安全配置>Web管理处修改。
测试工具配置如下图所示:
跑个流程
完成了配置以后,接下来我们演示一个分机呼叫分机的流程,为第二章的接口使用和理解奠定基础。
发送命令
如何通过OM API实现分机呼分机呢?
只需向OM发送一条API消息:
<?xml version="1.0" encoding="utf-8" ?>
<Transfer attribute="Connect">
<ext id="200"/>
<ext id="201"/>
</Transfer>
说明:
第一行是XML声明,每个API消息都有且相同。它定义了XML的版本(1.0)和所使用的编码方式(utf-8)。
第二行是XML的根。根元素Transfer表明这个是一个呼叫转接类的API。属性值Connect表示本次转接的属性为连接。
第三、第四行中ext是“分机”的英文单词extension的简写,200为主叫分机号码,201为被叫分机号码。
第五行为根节点的闭合标签。
注:更多 XML 的语法参见XML教程,更多OM API语法详解请参见第二章。
观察执行结果
执行完该 API 后,后续流程为:
主叫分机200会先振铃(默认,先呼谁后呼谁由参数API_CALLING控制);
将200摘机后,被叫分机201开始振铃,并且200可以听到“嘟嘟”的回铃音;
将201也摘机后,双方成功建立通话;
任意一方挂机后通话结束。
观察收到的API消息
查看测试工具,可以看到接收到很多条API消息。这些消息中,有两个消息是话单(CDR),其他的为事件(Event)。
CDR为通话记录,在通话结束时产生。2个CDR中一个是主叫分机的通话记录,另一个是被叫分机的通话记录;
Event表示事件消息,由呼叫过程中OM自动触发。
1. 事件
本次呼叫过程中,收到的事件属性有这些:BUSY、IDLE、RING、ALERT、ANSWER、ANSWERED、BYE。
其中:
BUSY和IDLE是一对,在分机状态发生变化时产生。BUSY表示分机由空闲变为忙状态, IDLE 表示分机由忙变为空闲状态;
RING、ALERT、ANSWER、ANSWERED、BYE属于一个系列,在呼叫过程中产生。其中:
RING和ALERT是一对, RING表示分机开始振铃,ALERT表示收到对方的回铃(ringback)信号。
ANSWER和ANWERED是一对,ANSWER 表示分机应答,ANSWERED表示收到对方应答的信号。
BYE表示通话结束。
通过以上事件,你可以实时监控分机的线路状态和呼叫情况,并可以实现一些应用功能,比如:来/去电弹屏(当分机振铃时将来电号码对应的客户资料弹屏显示在电脑屏幕上)。
注:更多关于事件的介绍,参见2.5章节。
2.通话记录(CDR)
通话结束后,OM会立即将通话记录推送给应用服务器(这里指测试工具)。
消息格式
<?xml version="1.0" encoding="utf-8" ?>
<Cdr id="13620170308103713-0">
<callid>32820</callid>
<TimeStart>20170308103709</TimeStart>
<Type>IN</Type>
<Route>IC</Route>
<CPN>200</CPN>
<CDPN>201</CDPN>
<TimeEnd>20170308103713</TimeEnd>
<Duration>2</Duration>
<TrunkNumber></TrunkNumber>
<Recording>20170308/200_201_20170308_103711_8034_cd.wav</Recording>
<RecCodec>PCMU</RecCodec>
</Cdr>
参数说明
参数名称 | 解释说明 |
---|---|
cdr id | 通话记录的编号。格式:系列号+年月日时分秒+固定内容(-0) |
callid | 通话的相对唯一标识符 |
TimeStart | 呼叫起始时间戳,格式:年月日时分秒 |
Type | 话务类型,IN表示呼入,LO表示内部呼叫 |
Route | 路由类型,IC表示内部路由 |
CPN | 主叫号码 |
CDPN | 被叫号码 |
TimeEnd | 呼叫释放时间戳,格式:年月日时分秒 |
Duration | 通话时长,单位:秒。即,从呼叫接通到呼叫释放的时长,不包括振铃时间。 |
Trunk | 中继号码(本次是内部呼叫,没有用到中继,所以值为空) |
Recording | 录音文件的相对保存路径,格式:生成日期/录音文件名称 |
注:更多关于CDR的介绍,参见2.6章节。