REST API文档
高级配置-扩展功能
话机自动配置
查看话机信息
- 请求 URL:
/api/device_provisions
- 请求方式:
GET
- Body 信息:无
- 返回值:
{ "data": [ { "vendor": "huawei", "deleted_at": "", "mac": "", "created_at": "2022-05-17 15:06:04", "id": 1, "extn": "1007@demo.xswitch.cn", "name": "kf1", "updated_at": "2022-05-17 15:06:04", "type": "" } ], "rowCount": 1, "pageCount": 1, "page": 1 }
示例:
curl -XGET -H "X-XTRA-AUTH-ID: 62dd0173-4916-4b1c-b958-546e4d7c91fe" 192.168.1.100:8081/api/device_provisions
新建话机配置
- 请求 URL:
/api/device_provisions
- 请求方式:
POST
- 消息头:
Content-Type: application/json
- Body 信息: 参见分配器信息说明。
Body:
{ "name": "我在测试", "vendor": "gs", "mac": "000B7461582D", "extn": "[{\"extn\":\"1001\"}]" //绑定的分机号 }
返回:
{ "data": "1", "code": 200, "message": "success" }
- curl 示例:
curl -XPOST -H "X-XTRA-AUTH-ID: 69ee9c54-734b-11e7-a262-b5df20245f60" \ -d '{"extn": "[{\"extn\":\"1007|demo.xswitch.cn\"}]","name": "kf1","vendor": "huawei","mac":"000B7461582D"}' \ -H "Content-Type: application/json" http://192.168.1.100:8081/api/device_provisions
批量创建话机配置
- 请求 URL:
/api/device_provisions/import
- 请求方式:
POST
- 消息头:
Content-Type: application/json
- Body 信息: 参见分配器信息说明。
Body:
{ "devices": [ { "名称": "我在测试", "分机号": "1002", "供应商": "潮流", "MAC": "000B7461582D" }, { "名称": "admin", "分机号": "1000", "供应商": "gs", "MAC": "000b82d74615" }, { "名称": "我在测试", "分机号": "1001", "供应商": "gs", "MAC": "000B7461582D" } ] }
返回:
{ "message": "success", "code": 200, "data": [ { "updated_at": "2022-11-16 14:08:47", "created_at": "2022-11-16 14:08:47", "extn": "1002", "vendor": "潮流", "mac": "000B7461582D", "id": 43, "deleted_at": "", "name": "我在测试", "type": "" }, { "updated_at": "2022-11-16 14:08:47", "created_at": "2022-11-16 14:08:47", "extn": "1000", "vendor": "gs", "mac": "000b82d74615", "id": 44, "deleted_at": "", "name": "admin", "type": "" }, { "updated_at": "2022-11-16 14:08:47", "created_at": "2022-11-16 14:08:47", "extn": "1001", "vendor": "gs", "mac": "000B7461582D", "id": 45, "deleted_at": "", "name": "我在测试", "type": "" } ] }
- curl 示例:
curl -XPOST -H "X-XTRA-AUTH-ID: 69ee9c54-734b-11e7-a262-b5df20245f60" \ -d '{"data":[{"extn": "1031","mac": "00a859f6c74i","vendor": "xyt", "name": "lili"},{"extn": "1032","mac": "0a859f6c74o","vendor": "xyt", "name": "zhangsan"},{"extn": "1031","mac": "00a859f6c74p","vendor": "xyt", "name": "lisi"}]}' \ -H "Content-Type: application/json" http://192.168.1.100:8081/api/device_provisions
修改话机配置信息
- 请求 URL:
/api/device_provisions/:id
- 请求方式:
PUT
- Body 信息:
{ "extn": "1006", "id": 1 }
- curl 示例:
curl -XPUT -H "X-XTRA-AUTH-ID: 62dd0173-4916-4b1c-b958-546e4d7c91fe" \ -H "Content-Type: application/json" \ -d '{"extn": "1006", "id": 1}' \ 192.168.1.100:8081/api/device_provisions/1
- 返回值:
{ "message": "success", "code": 200, "data": "1" }
删除话机配置
- 请求 URL:
/api/device_provisions/:id
- 请求方式:
DELETE
- 消息头: 无
- 返回值:
状态 | 返回值 |
---|---|
成功 | "code": 200 |
失败 | 404 |
- 示例:
curl -H "X-XTRA-AUTH-ID: 62dd0173-4916-4b1c-b958-546e4d7c91fe" -XDELETE http://192.168.1.100:8081/api/device_provisions/1
返回:
{ "data": "1", "code": 200, "message": "success" }
媒体文件
媒体文件用于管理音视频文件、录音系统,也支持 TTS 和传真类型的文件管理。
媒体文件属性:
- uuid:通话 UUID,可以为空
- type:媒体文件类型,参见下表
- name:文件名,可以为中文
- description:描述信息
- ext:扩展名
- mime:文件 MIME 类型
- size:文件大小,字节数
- abs_path:绝对路径
- dir_path:目录名
- rel_path:相对路径
- created_at:创建时间
- updated_at:更新时间
媒体文件类型:
- SYSTEM:系统内置
- AUDIO:音频
- VIDEO:视频
- UPLOAD:用户上传
- TTS:TTS 生成
- PDF:PDF 文件
- FAX:传真文件
- RECORD:录音文件
查看所有媒体文件
- 请求 URL:
/api/media_files
- 请求方式:
GET
- 返回值: code(200 即为正常),msg
- curl 示例:
curl -XGET -H "X-XTRA-AUTH-ID: 62dd0173-4916-4b1c-b958-546e4d7c91fe" 192.168.1.100:8081/api/media_files
筛选:
- 请求 URL:
/api/media_files?uuid=$uuid
:返回指定通话 UUID 相关的媒体文件信息 - 请求 URL:
/api/media_files?type=UPLOAD
:返回全部上传的媒体文件信息 - 请求 URL:
/api/media_files?types=UPLOAD,TTS,SYSTEM
:返回全部上传文件、TTS 生成的以及系统内置的媒体文件信息
返回结果示例:
{ "rowCount": 5, "pageCount": 1, "data": [ { "abs_path": "/usr/local/freeswitch/storage/recordings/conference-record-713556038-demo.xswitch.cn-2022-05-17-01-30-09-6242c44b-c2f2-4882-8941-784d44ba9885.wav", "description": "713556038-demo.xswitch.cn", "id": 5, "bit_rate": 0, "user_id": 0, "thumb_path": "", "deleted_at": "", "file_name": "", "created_at": "2022-05-17 11:21:51", "original_file_name": "conference-record-713556038-demo.xswitch.cn-2022-05-17-01-30-09-6242c44b-c2f2-4882-8941-784d44ba9885.wav", "geo_position": "", "sample_rate": 0, "channel_uuid": "68b2dd28-cf52-4246-9002-7c1b8eeba5d0", "file_size": 321444, "processing_flag": 0, "channels": 0, "duration": 0, "meta": "", "updated_at": "2022-05-17 11:21:51", "rel_path": "conference-record-713556038-demo.xswitch.cn-2022-05-17-01-30-09-6242c44b-c2f2-4882-8941-784d44ba9885.wav", "ext": "wav", "type": "CONFERENCE", "mime": "audio/wave", "name": "713556038-demo.xswitch.cn", "dir_path": "" } ... ], "page": 1 }
请求单个媒体文件信息
- 请求 URL:
/api/media_files/$id
返回指定 ID 的媒体文件信息 - 请求方式:
GET
- 返回值: code(200 即为正常),msg
- curl 示例:
curl -XGET -H "X-XTRA-AUTH-ID: 62dd0173-4916-4b1c-b958-546e4d7c91fe" 192.168.1.100:8081/api/media_files/1
下载媒体文件
- 请求 URL:
/api/media_files/$id.$ext
返回指定 ID 的媒体文件内容 - 请求方式:
GET
- 返回值: code(200 即为正常),msg
- curl 示例:
其中:
$id
为媒体文件 ID$ext
为媒体文件扩展名
curl -XGET -H "X-XTRA-AUTH-ID: 62dd0173-4916-4b1c-b958-546e4d7c91fe" 192.168.1.100:8081/api/media_files/1.wav
对于媒体 MIME 类型为x-xui/phrase
类型的文件,支持.wav
和.mp3
两种方式下载。
媒体文件上传
支持form
方式的媒体文件上传,如:
curl -H "X-XTRA-AUTH-ID: e19c87cc-265e-4774-8f28-eca172f37b75" -F 'file=@./x.png' https://demo.xswitch.cn/api/upload [ { "abs_path": "/usr/local/freeswitch/storage/upload/upload-20200319162632-5b35d276-62cc-446b-8ff5-8e903c11d7c1.png", "bit_rate": "", "channel_uuid": "", "channels": "", "created_at": "2020-03-19 16:26:32", "deleted_at": "", "description": "UPLOAD", "dir_path": "/usr/local/freeswitch/storage/upload", "duration": "", "ext": "png", "file_name": "", "file_size": "24393", "geo_position": "", "id": "2", "meta": "", "mime": "image/png", "name": "x.png", "original_file_name": "x.png", "processing_flag": "0", "rel_path": "upload-20200319162632-5b35d276-62cc-446b-8ff5-8e903c11d7c1.png", "sample_rate": "", "thumb_path": "", "type": "UPLOAD", "updated_at": "2020-03-19 16:26:32", "user_id": "" } ]
修改指定媒体文件
- 请求 URL:
/api/media_files/:id
- 请求方式:
PUT
- 消息头:
Content-Type: application/json
- Body 信息:
{"id": 1, name": "test", "description": "test"}
- 返回值:
状态 返回值
成功 JSON 信息 失败 500
- 示例:
Body:
{ "description": "UPLOAD", "id": "2", "name": "test.bat", "type": "UPLOAD" }
返回:
{ "message": "success", "data": "2", "code": 200 }
删除指定媒体文件
- 请求 URL:
/api/media_files/:id
- 请求方式:
DELETE
- 返回值: code(200 即为正常)
- curl 示例:
curl -H "X-XTRA-AUTH-ID: 62dd0173-4916-4b1c-b958-546e4d7c91fe" -XDELETE 192.168.1.100:8081/api/media_files/2
- 返回(示例):
{ "data": "2", "code": 200, "message": "success" }
日志
操作日志查询支持按时间、操作员、资源、动作等精确查询。
请求参数说明:
参数 | 说明 |
---|---|
page | 查询哪页数据 |
perPage | 每页查询条数 |
operator | 按操作员查询 |
resource | 按资源查询 |
action | 按动作查询 |
startDate | 按起始时间查询 |
返回参数说明:
参数 | 说明 |
---|---|
page | 当前页 |
pageCount | 总页数 |
rowCount | 返回总数 |
resource | 资源 |
user_id | 操作用户 ID |
user_name | 操作用户名称 |
action | 操作动作 |
获取系统操作日志
请求 URL:
/api/logs
请求 URL:
/api/logs?page=1&perPage=500&operator=Admin
请求方式:
GET
返回值: code(200 即为正常),msg
参数: 参考上述参数说明
返回系统操作日志(示例):
{ "page": 1, "pageCount": 4, "rowCount": 637, "data": [ { "id": "11", "resource": "XUI", "user_id": "0", "message": "{\"DEVER\": \"1.11.44\"}", "summary": "1.11.44", "action": "UPDATE", "user_name": "SYSTEM", "created_at": "2020-08-03 11:25:18" }, { "id": "10", "resource": "XUI", "user_id": "0", "message": "{\"DEVER\": \"1.11.43\"}", "summary": "1.11.43", "action": "UPDATE", "user_name": "SYSTEM", "created_at": "2020-08-03 11:25:17" } ... ] }
脚本检查
获取 xlonglive 脚本运行情况
- 请求 URL:
/api/check/:name
- 请求方式:
GET
- 返回值: code(0 为正在运行,200 为没有运行)
- curl 示例:
curl -H "X-XTRA-AUTH-ID: 62dd0173-4916-4b1c-b958-546e4d7c91fe" -XGET 192.168.1.100:8081/api/check/clean-file
- 返回(示例):
{ "msg": "Already Running", "code": 0 }
- 脚本名称与 name 对照表
脚本名称 | name | 描述 |
---|---|---|
clean_file.lua | clean-file | 定时清理文件 |
conference_manager_cdr.lua | conference-manager-cdr | 会议话单管理 |
conference_manager.lua | conference-manager | 会议管理 |
heartbeat.lua | heartbeat | 心跳 |
sip_trace.lua | sip-trace | SIP 跟踪 |