通信百科

voip软交换电话系统API接口说明


我公司的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
}
```
响应为成功删除的记录数
需要更多的接口文档,可以联系我公司,我们一起打包给你!供你参考选择。

下一篇:下一篇:什么是猫池