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.luaclean-file定时清理文件
conference_manager_cdr.luaconference-manager-cdr会议话单管理
conference_manager.luaconference-manager会议管理
heartbeat.luaheartbeat心跳
sip_trace.luasip-traceSIP 跟踪
高级配置-许可证