我公司的voip软交换电话系统提供丰富API接口,为各行业通信整合集成提供方便!下面,小编一一为大家列出:
登录和系统基础信息获取:
## 登录和获取系统基础信息绝大多数接口都需要登录后使用
### 登录
地址:/login
方法:POST
参数:
```json
{
"username": "string",--------------------用户名
"password": "string"---------------------密码
}
```
响应:
```json
{
"result": "api"--------------------------结果
}
```
会给出用户身份以及cookie,如果返回的结果是“login”则代表登录失败
返回结果的可能值:
- admin---------------------管理员
- operator------------------接线员
- api-----------------------api接口
- login---------------------需要登录,登录失败
返回的cookie的名称是`JSESSIONID`,值类似于`FC16EC02923FD2BAE77B1673613BFBF6`
两次数据访问之间的最长有效期为半小时,否则需要重新登录,访问需要登录的接口(地址以`/api/`开头)会出现403错误
### 维持会话有效性
可以使用ping请求维持有效性
地址:/api/ping
方法:GET
响应:
```json
{
"result": "pong"
}
```
响应不具有意义,该请求用于维持会话有效和检查权限
### 系统型号信息
地址:/system-info/model-info
方法:GET
响应:
```json
{
"model": "080",-----------------------------型号识别码
"showModel": "CooVox-U80",------------------型号显示名称
"extenLimit": 200---------------------------最大分机数限制
}
```
这个取决于具体的设备
数字分机管理接口:
## 数字分机管理
数字分机包括sip和iax,iax作为可选项进行开通,默认均为sip
### 查询
地址:/api/extension-digital/list-extension-page
方法:POST
参数
```json
{
"keyword": "",--------------------------查询关键字,对分机号、用户名、部门名进行模糊匹配,空字符串会得到所有记录
"page": {
"pageNumber": 0,----------------------分页的当前页码,从0开始
"size": 1,----------------------------每一页的允许的最大记录数,最小1
"sort": {-----------------------------对结果排序
"direction": "ASC",-----------------排序的方式,ASC:升序,DESC:降序
"order": "exten"--------------------排序的属性,支持后面返回中分机属性的任意属性
}
}
}
```
响应:
```json
{
"content": [----------------------------结果的主体部分,以数组形式给出,没有符合条件结果会是空数组
{
"exten": "100",---------------------分机号
"username": "测试1",-----------------来电显示名称,最长不超过32个字符
"password": "123456",---------------注册密码
"pinCode": "516",-------------------快速注册码
"email": "",------------------------邮箱地址
"outboundCid": "18583230080",-------外呼显示号码
"mobileNumber": "",-----------------移动号码(暂时没有使用)
"language": "en",-------------------提示音语言,语言代码
"voicemail": true,------------------是否开启语音信箱,true/false
"voicemailPassword": "1234",--------语音信箱密码
"remoteExten": false,---------------是否开启远程分机,true/false,开启建议密码强度比较高
"registCount": 3,-------------------允许同时注册终端数目
"videoCall": true,------------------是否开启视频通话,true/false
"videoCallCodec": "h264",-----------视频通话的编码,vp8、h264、h263、h261、h263p,单一编码
"webRtc": true,---------------------是否允许web登录,true/false
"recording": "none",----------------录音,none:不开录音,in:呼入录音,out:呼出录音,both:呼入呼出都录音
"callSpy": false,-------------------是否允许监听,true/false
"transport": "UDP",-----------------注册协议,UDP/TCP/TLS,单一编码
"dtmf": "rfc4733",------------------dtmf模式,auto/rfc4733/inband/info,单一
"srtp": false,----------------------是否开启加密,true/false
"qualify": 60,----------------------在线检测间隔时间,0表示关闭,单位秒
"audioCodec": "ulaw,alaw,g729",-----语音编码,ulaw、alaw、g729、gsm、g722、g726、speex、opus,可以是多个编码,使用英文逗号隔开
"addressExpiration": 120,-----------注册超时,单位秒
"dialPlanId": 1,--------------------拨号计划编号,自定义为1开始,需要从服务器获取记录列表
"dialPlanName": "DialPlan1",--------拨号计划对应的名称
"musicOnHoldId": 2,-----------------通话等待音音乐文件夹编号,自定义上传,需要获取上传的记录列表
"nat": true,------------------------是否开启NAT转换,true/false
"iax": false,-----------------------是否开启IAX分机支持,true/false
"departmentExten": "0400,0401",-----所加入部门的分机号,多个部门号之间使用英文逗号分隔
"departmentName": "JKSHDFJSKNDFJKSHFKNSUCKEHKVYUNJKHKjhksdvjnkjt1,t2"---所参数部门名称,多个名称之间使用英文逗号分隔
}
],
"pageable": {---------------------------分页参数信息,和查询提供的信息对应
"sort": {
"unsorted": false,------------------没有排序
"sorted": true----------------------已经排序
},
"pageSize": 1,------------------------单页记录数量
"pageNumber": 0,----------------------当前页码
"offset": 0,--------------------------起始记录位置(根据分页信息计算)
"unpaged": false,---------------------没有分页
"paged": true-------------------------已经分页
},
"totalElements": 27,--------------------根据查询条件获取到的总记录数
"totalPages": 27,-----------------------根据宗记录数和分页参数,得到的总页数
"last": false,--------------------------是否是最后一页
"sort": {
"unsorted": false,--------------------没有排序
"sorted": true------------------------已经排序
},
"first": true,--------------------------当前是第一页
"size": 1,------------------------------当前页允许的最大记录数
"number": 0,----------------------------当前页码
"numberOfElements": 1-------------------当前页的实际记录数
}
```
响应结果使用分页形式给出,单次查询需要给出每一页的大小和当前需要的页码 参数和响应结果的属性值的说明见上面,后面的请求不再单独进行说明
### 获取分机基本信息
用于设置呼叫目的地等,一次性获取全部数字分机,不分页,仅包含基本信息
地址:/api/extension-digital/extensions-info
方法:GET
响应:
```json
[
{
"exten": "126",---------------------分机号
"name": "126",----------------------分机来电显示名称
"type": "voip"----------------------分机类型,voip:数字分机,analog:模拟分机,此处固定为数字分机,有一个接口会获取到模拟分机
}
]
```
响应为一个数组形式,没有分机时会获取到空数组
### 获取开启了语音信箱的分机
这里获取的分机是开启了语音信箱的分机,用于设置转到语音信箱的目的地
地址:/api/extension-digital/voicemail-extensions-info
方法:GET
响应:
(同分机基本信息)
### 添加
添加的分机号会进行检测,可以先行进行检测
地址:/api/extension-digital/is-extension-available/<exten>
方法:GET
响应:
```json
{
"result": false
}
```
将需要检测的分机号通过请求地址发送到服务器,返回的结果是布尔值true/false
也可以使用服务器生成一个可用的分机号
地址:/api/extension-common/gen-add-extension
方法:POST
参数:
name=extension
响应:
```json
{
"result": "127"
}
```
这里使用表单方式提交参数,使用x-www-form-urlencoded,响应为分机号
参数不是变量,是固定的值
添加分机的接口:
地址:/api/extension-digital/add-extension
方法:POST
参数:
```json
{
"addressExpiration": 120,
"audioCodec": "ulaw,alaw,g729",
"callSpy": false,
"dialPlanId": 1,
"dnd": false,
"dtmf": "rfc4733",
"email": "",
"exten": "102",
"language": "en",
"mobileNumber": "",
"musicOnHoldId": 1,
"outboundCid": "",
"password": "joHpm#7AN7",
"qualify": 60,
"recording": "none",
"registCount": 1,
"remoteExten": false,
"srtp": false,
"transport": "UDP",
"username": "102",
"videoCall": false,
"videoCallCodec": "h264",
"voicemail": true,
"voicemailPassword": "1234",
"webRtc": false,
"nat": true,
"iax": false
}
```
响应:
```json
{
"result": true
}
```
参数说明信息参看信息查询里面的说明
这里需要验证拨号计划编号、通话等待提示音文件编号是否存在,分机号是否能够添加等,不能添加的记录会报错误
### 修改
分机号不允许修改
地址:/api/extension-digital/update-extension
方法:POST
参数:
(同添加)
响应:
(同添加)
分机号用于确认修改哪一个分机记录,如果分机号不存在,会报错误,也会检验相关属性,不符合要求和添加一样,会报错误
### 删除
可以一次删除多个分机记录
地址:/api/extension-digital/delete-extension
方法:POST
参数:
```json
{
"extensions": [----------------------------------需要删除的分机号数组
"100"
]
}
```
响应:
```json
{
"result": 1
}
```
响应为成功删除的记录数
需要更多的接口文档,可以联系我公司,我们一起打包给你!供你参考选择。