1.2 交互原理
简单认识OM API之后,我们来了解下OM API的通信方式。
传输协议
应用服务器和OM之间基于HTTP 协议进行通信,API消息封装在HTTP包体中。
消息内容如:
HTTP请求消息:
POST /xml HTTP/1.0
Content-Type:text/xml
Content-Length:101
<?xml version="1.0" encoding="utf-8" ?>
<Control attribute="Query">
<DeviceInfo/>
</Control>
HTTP响应消息:
HTTP/1.0 200 OK
<?xml version="1.0" encoding="utf-8" ?>
<DeviceInfo>
<manufacturer>New Rock Technologies, Inc</manufacturer>
<model>Rev 1.0.1 WROC2000-1S/1</model>
<version>Rev 2.2.5.81.1</version>
<mac>00:0E:A9:00:12:BD </mac>
<devices>
<ext lineid="Phone 1" id="200" />
<ext lineid="IPPhone 50" id="208" />
<line lineid="Line 2" id="02161208234" />
<line lineid="IPLine 21" id="02161204000" />
</devices>
</DeviceInfo>
通信方式
应用服务器和OM之间的交互是双向的,双方互为HTTP服务端和客户端。
正向:应用服务器作为HTTP客户端,OM作为HTTP服务端
应用服务器请求OM执行某个功能(如,发起呼叫)或提供某些信息(如,查询状态)。此时,采用的是HTTP POST方法、TCP短连接方式(注:OM只支持TCP短连接接收)。
流程为:①请求 ②响应 ③断开。
交互图如下:
反向:OM作为HTTP客户端,应用服务器作为HTTP服务端
OM主动向应用服务器推送某些消息(如,分机振铃事件),应用服务器收到消息后断开TCP连接(注:这里不是标准的HTTP请求响应流程,不需要应用服务器回复响应)。
此时,采用的是HTTP GET或POST方法(默认为GET,若参数API_METHOD = 1,则为POST)。
注:OM默认以短连接方式推送消息,也可通过参数CONTROL_TYPE配置为长连接。建议采用短连接方式。
流程为:①接收消息 ②断开。