# IVR接口文档

# 批量IVR - IVR群呼接入流程

#### IVR群呼接入流程
**接入前录音文件准备：** 接口请求前，请先使用Infinity提供的账号密码登录到后台，在Voice后台的左侧找到菜单“Record Template(offline)”，在此处上传接口要使用的录音文件.\
`录音文件要求：采样率为8000bps，mp3格式，文件名不可带中文，允许英文及"_"符号。`

[![18a9cb71c6f980b20e9983f646a7ead7.jpg](https://document.infin8linx.com/uploads/images/gallery/2025-08/scaled-1680-/18a9cb71c6f980b20e9983f646a7ead7.jpg)](https://document.infin8linx.com/uploads/images/gallery/2025-08/18a9cb71c6f980b20e9983f646a7ead7.jpg)

# 批量IVR - 批量呼出ivr语音(过时）

#### 接口说明

对于需要播放同一个IVR语音内容的不同号码，可以使用此接口批量呼出，单次提交不要超过5000个号码。

#### 请求方式

POST，form-data格式

#### 请求URL

<http://ivr.infin8linx.com/yunhu>

#### 请求参数

| 参数名        | 类型     | 是否必须 | 说明                                                            |
| :--------- | :----- | :--- | :------------------------------------------------------------ |
| service    | string | 是    | App.Sip\_Call.PlayVoice                                       |
| appid      | string | 是    | 授权appid                                                       |
| accesskey  | string | 是    | 授权accesskey                                                   |
| destnumber | string | 是    | 目标号码，多个号码用“,”连接                                               |
| voicetype  | int    | 是    | 播放的语音文件类型。1:离线语音文件（自己录制的语音文件，上传到系统后台或者通过系统后台在线生成的）、2:在线语音(url) （提供一个可以访问的录音文件地址）                             |
| voicefile  | string | 是    | voicetype=1 传后台的录音文件名；voicetype=2 传可以访问的语音url地址                                             |
| userkey    | int    | 否    | 是否需要用户按键，1:需要 0:不需要 默认0                                       |
| chengshudu | string | 否    | 客户自定义数据，在通话结束之后的回调数据中原样返回。                                    |
| disnumber  | string | 否    | 主叫号码(显示在用户手机上的来电号码），留空则系统会随机取一个主叫号码                     |
| customuuid | string | 否    | 客户自定义数据，在通话结束之后的回调数据中原样返回                                     |
| transfer   | int    | 否    | 是否转接到agent， 0不转、1转接，默认值为0，设置为转接agent不能为空               |
| agent      | string | 否    | 坐席组或坐席号                                                        |
| waittime   | int    | 否    | 呼叫等待时间，默认60s (秒)                                                   |
| conntime   | int    | 否    | 呼叫通话时间, 播放多久后自动结束,默认60s (秒)                                               |

#### 接口请求示例（PHP）

```
<?php
    $apiUrl = 'http://127.0.0.1:8080';
    $postFields = [
        'service'   => 'App.Sip_Call.PlayVoice',
        'appid'     => 'ABCDEFG',
        'accesskey'     => 'ABCDEFG',
        'destnumber'  => '133，134，135，135',
        'voicetype'  => 'abcdefg',
        'voicefile'  => 'abcdefg',
        'chengshudu'  => 'abcdefg',
        'disnumber'  => 'abcdefg',
        'customuuid'  => 'abcdefg',
        'waittime'  => 60,
        'conntime'  => 60,
    ];
    $curl = curl_init();
    curl_setopt($curl, CURLOPT_URL, $apiUrl);
    curl_setopt($curl, CURLOPT_POST, 1);
    curl_setopt($curl, CURLOPT_POSTFIELDS, $postFields);
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
    $response = curl_exec($curl);
    $curlError = curl_error($curl);
    curl_close($curl);
    var_dump($response);
?>

```

#### 返回数据结构示例

```
{
    "code": 200,
    "msg": "请求成功",
    "data": {
        "desc": "播放命令发送成功",
        "reqtime": 1588836407,
        "rsptime": 1588836407
    }
}

```

#### 返回参数说明

| 参数名      | 类型     | 说明         |
| :------- | :----- | :--------- |
| code     | int    | 返回码 200 成功 |
| msg      | string | 返回提示信息     |
| data     | object | 返回数据对象     |
| —desc    | string | 请求提示信息     |
| —reqtime | int    | 请求时间戳      |
| —rsptime | int    | 返回时间戳      |

# 语音文件管理 - 上传语音文件

#### 接口说明

**用于上传语音文件到后台，用于ivr语音播放**

#### 请求方式

POST，form-data格式

#### 请求参数

| 参数名       | 类型     | 是否必须 | 说明                  |
| :-------- | :----- | :--- | :------------------ |
| service   | string | 是    | App.Sip_Voice.UploadAudio |
| token     | string | 是    | 登录token             |
| filename | file | 是    | 上传的文件         |
| voicename | string | 是    | 语音名称         |
| mark | file | 否    | 备注描述         |

#### 接口请求示例（PHP）

```
<?php
    $apiUrl = 'http://127.0.0.1:8080';
    $postFields = [
    'service'    => 'App.Sip_Auth.Login',
    'token'      => 'ABCDEFG',
    'filename'  => 'ABCDEFG',
    'voicename'  => 'ABCDEFG',
    ];
    $curl = curl_init();
    curl_setopt($curl, CURLOPT_URL, $apiUrl);
    curl_setopt($curl, CURLOPT_POST, 1);
    curl_setopt($curl, CURLOPT_POSTFIELDS, $postFields);
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
    $response = curl_exec($curl);
    $curlError = curl_error($curl);
    curl_close($curl);
    var_dump($response);
?>

```

#### 返回数据结构示例

```
{
    "ret": 200,
    "data": {
        "status": 0,
        "desc": "upload success",
        "result": {
            "id": 1897,
            "filename": "welcome.mp3",
            "voicename": "欢迎语音",
            "mark": null
        },
        "reqtime": 1788924778,
        "rsptime": 1788924779
    },
    "msg": ""
}

```

#### 返回参数说明

| 参数名         | 类型     | 说明               |
| :---------- | :----- | :--------------- |
| id | int    | 语音文件id             |
| filename | string | 语音文件             |
| voicename       | string | 语音文件名称 |

# 语音文件管理 - 获取语音文件

#### 接口说明
获取语音文件列表。

#### 请求方式
POST，form-data格式

#### 请求参数

| 参数名          | 类型     | 是否必须 | 说明                                                                |
| :----------- | :----- | :--- | :---------------------------------------------------------------- |
| service      | string | 是    | App.Sip_Voice.GetAudioList                                             |
| token        | string | 是    | 通过授权接口获取的token                                                    |
| filename    | string | 否    | 文件名                                |
| voicename      | string | 否    | 语音名称，支持模糊查询                               |
| status     | int    | 否    | 0:启用、1:禁用、2:全部                    |
| currentpage  | int    | 否    | 页数，默认：1                                                           |
| itemsperpage | int    | 否    | 每页数量，默认：10，最小：1；最大：1000                                           |

#### 接口请求示例（PHP）

```
<?php
    $apiUrl = 'http://127.0.0.1:8080';
    $postFields = [
        'service'   => 'App.Sip_Cdr.GetBill',
        'token'     => 'ABCDEFG',
        'starttime'  => '2019-01-12 00:00:00',
        'endtime'    => '2020-12-12 00:00:00',
        'direction'  => 3
        'syncflag'   => 3,
        'callmethod' => 0,
        'currentpage'  => 1,
        'itemsperpage'  => 10,
    ];
    $curl = curl_init();
    curl_setopt($curl, CURLOPT_URL, $apiUrl);
    curl_setopt($curl, CURLOPT_POST, 1);
    curl_setopt($curl, CURLOPT_POSTFIELDS, $postFields);
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
    $response = curl_exec($curl);
    $curlError = curl_error($curl);
    curl_close($curl);
    var_dump($response);
?>

```

#### 返回数据结构示例

```
{
    "ret": 200,
    "data": {
        "status": 0,
        "desc": "success",
        "result": {
            "totalitems": 4,
            "currentpage": 1,
            "itemsperpage": 20,
            "audios": [
                {
                    "id": 1897,
                    "createtime": "2026-09-09 11:32:59",
                    "updatetime": "2026-09-09 11:32:59",
                    "status": 0,
                    "filename": "welcome.mp3",
                    "voicename": "欢迎语音",
                    "mark": null
                },
                {
                    "id": 32,
                    "createtime": "2020-04-05 12:24:32",
                    "updatetime": "2020-04-05 12:24:32",
                    "status": 0,
                    "filename": "162729test_Telat3hari.mp3",
                    "voicename": "test",
                    "mark": null
                },
                {
                    "id": 30,
                    "createtime": "2020-04-05 12:24:32",
                    "updatetime": "2020-04-05 12:24:32",
                    "status": 0,
                    "filename": "d0bc00b05d3e.mp3",
                    "voicename": "apply_pass_voice2",
                    "mark": null
                },
                {
                    "id": 6,
                    "createtime": "2020-04-05 12:24:32",
                    "updatetime": "2020-04-05 12:24:32",
                    "status": 0,
                    "filename": "pylv8-favv2.mp3",
                    "voicename": "apply_pass_voice",
                    "mark": null
                }
            ]
        },
        "reqtime": 1788924914,
        "rsptime": 1788924914
    },
    "msg": ""
}

```

#### 返回参数说明

| 参数名               | 类型     | 说明          |
| :---------------- | :----- | :---------- |
| result            | objest | 返回的结果集      |
| —totalitems       | int    | 记录总数        |
| —currentpage      | int    | 当前页码        |
| —itemsperpage     | int    | 每页数量        |
| —audios            | array  | 记录数组        |
| ——id              | int    | 记录id        |
| ——filename       | string | 文件名         |
| ——voicename      | string | 语音文件名称        |
| ——mark       | string | 备注说明        |
| ——status       | string | 状态        |
| ——createtime      | string | 创建时间        |
| ——updatetime         | string | 更新时间      |

# 语音文件管理 - 播放语音文件

#### 接口说明

当有新增分机或是分机进行调整后出现异常时，可以通过该接口清除Token后，再重新获取Token继续操作。

#### 请求方式

POST，form-data格式

#### 请求参数

| 参数名     | 类型     | 是否必须 | 说明                   |
| :------ | :----- | :--- | :------------------- |
| service | string | 是    | App.Sip_Voice.GetAudio |
| token   | string | 是    | Token字符串             |
| id   | int | 是    | 语音记录ID             |
| download   | int | 否    | 0:在线播放（默认）、1:下载文件            |

#### 接口请求示例（PHP）

```
<?php
    $apiUrl = 'http://127.0.0.1:8080';
    $postFields = [
        'service'   => ' App.Sip_Voice.GetAudio',
        'token'     => 'ABCDEFG',
        'id'     => '111',
    ];
    $curl = curl_init();
    curl_setopt($curl, CURLOPT_URL, $apiUrl);
    curl_setopt($curl, CURLOPT_POST, 1);
    curl_setopt($curl, CURLOPT_POSTFIELDS, $postFields);
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
    $response = curl_exec($curl);
    $curlError = curl_error($curl);
    curl_close($curl);
    var_dump($response);
?>

```

#### 返回数据结构示例

    {
        "ret": 200,
        "data": {
            "status": 0,
            "desc": "获取成功",
            "reqtime": 1602655204,
            "rsptime": 1602655204
        },
        "msg": ""
    }

# 语音文件管理 - 编辑语音文件

#### 接口说明

用来编辑语音文件，修改相关属性

#### 请求方式

POST，form-data格式

#### 请求参数

| 参数名     | 类型     | 是否必须 | 说明                   |
| :------ | :----- | :--- | :------------------- |
| service | string | 是    | App.Sip_Voice.EditAudio |
| token   | string | 是    | Token字符串             |
| id   | int | 是    | 语音记录ID             |
| voicename   | string | 否    | 语音名称            |
| mark   | string | 否    | 语音备注            |
| status   | int | 否    | 0:启用、1:禁用            |

#### 接口请求示例（PHP）

```
<?php
    $apiUrl = 'http://127.0.0.1:8080';
    $postFields = [
        'service'   => 'App.Sip_Voice.EditAudio',
        'token'     => 'ABCDEFG',
        'id'     => '111',
        'voicename'     => '111',
    ];
    $curl = curl_init();
    curl_setopt($curl, CURLOPT_URL, $apiUrl);
    curl_setopt($curl, CURLOPT_POST, 1);
    curl_setopt($curl, CURLOPT_POSTFIELDS, $postFields);
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
    $response = curl_exec($curl);
    $curlError = curl_error($curl);
    curl_close($curl);
    var_dump($response);
?>

```

#### 返回数据结构示例

    {
        "ret": 200,
        "data": {
            "status": 0,
            "desc": "获取成功",
            "reqtime": 1602655204,
            "rsptime": 1602655204
        },
        "msg": ""
    }

# 语音文件管理 - 删除语音文件

#### 接口说明

用于删除语音文件

#### 请求方式

POST，form-data格式

#### 请求参数

| 参数名     | 类型     | 是否必须 | 说明                   |
| :------ | :----- | :--- | :------------------- |
| service | string | 是    | App.Sip_Voice.DelAudio |
| token   | string | 是    | Token字符串             |
| id   | int | 是    | 语音记录ID             |
| download   | int | 否    | 0:在线播放（默认）、1:下载文件            |

#### 接口请求示例（PHP）

```
<?php
    $apiUrl = 'http://127.0.0.1:8080';
    $postFields = [
        'service'   => ' App.Sip_Voice.DelAudio',
        'token'     => 'ABCDEFG',
        'id'     => '111',
    ];
    $curl = curl_init();
    curl_setopt($curl, CURLOPT_URL, $apiUrl);
    curl_setopt($curl, CURLOPT_POST, 1);
    curl_setopt($curl, CURLOPT_POSTFIELDS, $postFields);
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
    $response = curl_exec($curl);
    $curlError = curl_error($curl);
    curl_close($curl);
    var_dump($response);
?>

```

#### 返回数据结构示例

    {
        "ret": 200,
        "data": {
            "status": 0,
            "desc": "删除成功",
            "reqtime": 1602655204,
            "rsptime": 1602655204
        },
        "msg": ""
    }

# IVR管理 - 播放ivr语音(异步批量)-v2

#### 接口说明

对于需要播放同一个IVR语音内容的不同号码，可以使用此接口批量呼出，单次提交不要超过5000个号码。

#### 请求方式

POST，form-data格式

#### 请求参数

| 参数名        | 类型     | 是否必须 | 说明                                                            |
| :--------- | :----- | :--- | :------------------------------------------------------------ |
| service    | string | 是    | App.Sip_Call.PlayVoiceBatch                                      |
| token      | string | 是    | 通过授权接口获取的token                                                         |
| destnumber | string | 是    | 目标号码，多个号码用“,”连接                                               |
| voicetype  | int    | 是    | 播放的语音文件类型。1:离线语音文件（自己录制的语音文件，上传到系统后台或者通过系统后台在线生成的）、2:在线语音(url) （提供一个可以访问的录音文件地址）                             |
| voicefile  | string | 是    | voicetype=1 传后台的录音文件名；voicetype=2 传可以访问的语音url地址                                
| disnumber  | string | 否    | 主叫号码(显示在用户手机上的来电号码），留空则系统会随机取一个主叫号码                     |
| userid	| string	| 否 			| 自定义数据(员工ID)| 
| memberid	| string	| 否 			| 自定义数据(会员ID)| 
| ext	    | string	| 否 			| 自定义数据(可以是json字符串)                     | 
| customuuid | string | 否    | 客户自定义数据，在通话结束之后的回调数据中原样返回                                     |
| transfer   | int    | 否    | 是否转接到agent， 0不转、1转接，默认值为0，设置为转接agent不能为空               |
| agent      | string | 否    | 坐席组或坐席号                                                        |
| waittime   | int    | 否    | 呼叫等待时间，默认60s (秒)                                                   |
| conntime   | int    | 否    | 呼叫通话时间, 播放多久后自动结束,默认60s (秒)                                               |

#### 接口请求示例（PHP）

```
<?php
    $apiUrl = 'http://127.0.0.1:8080';
    $postFields = [
        'service'   => 'App.Sip_Call.PlayVoiceBatch',
        'token'     => 'ABCDEFG',
        'destnumber'  => '133，134，135，135',
        'voicetype'  => 'abcdefg',
        'voicefile'  => 'abcdefg',
        'userid'  => 'abcdefg',
        'disnumber'  => 'abcdefg',
        'customuuid'  => 'abcdefg',
        'waittime'  => 60,
        'conntime'  => 60,
    ];
    $curl = curl_init();
    curl_setopt($curl, CURLOPT_URL, $apiUrl);
    curl_setopt($curl, CURLOPT_POST, 1);
    curl_setopt($curl, CURLOPT_POSTFIELDS, $postFields);
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
    $response = curl_exec($curl);
    $curlError = curl_error($curl);
    curl_close($curl);
    var_dump($response);
?>

```

#### 返回数据结构示例

```
{
    "ret": 200,
    "data": {
        "status": 0,
        "desc": "成功",
        "result": {
            "batch_id": "20260917114314491892",
            "count": 5
        },
        "reqtime": 1789616594,
        "rsptime": 1789616594
    },
    "msg": ""
}

```

#### 返回参数说明

| 参数名      | 类型     | 说明         |
| :------- | :----- | :--------- |
| code     | int    | 返回码 200 成功 |
| msg      | string | 返回提示信息     |
| data     | object | 返回数据对象     |
| —desc    | string | 请求提示信息     |
| —reqtime | int    | 请求时间戳      |
| —rsptime | int    | 返回时间戳      |

# IVR管理 - 查看IVR呼叫进度-v2

#### 接口说明

查看ivr任务呼叫进度

#### 请求方式

POST，form-data格式

#### 请求参数

| 参数名        | 类型     | 是否必须 | 说明                                                            |
| :--------- | :----- | :--- | :------------------------------------------------------------ |
| service    | string | 是    | App.Sip_Call.GetIvrBatchStatus                                      |
| token      | string | 是    | 通过授权接口获取的token                                                         |
| batch_id | string | 是    | 批次ID                                            |


#### 接口请求示例（PHP）

```
<?php
    $apiUrl = 'http://127.0.0.1:8080';
    $postFields = [
        'service'   => 'App.Sip_Call.GetIvrBatchStatus',
        'token'     => 'ABCDEFG',
        'batch_id'  => '12123131313'
    ];
    $curl = curl_init();
    curl_setopt($curl, CURLOPT_URL, $apiUrl);
    curl_setopt($curl, CURLOPT_POST, 1);
    curl_setopt($curl, CURLOPT_POSTFIELDS, $postFields);
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
    $response = curl_exec($curl);
    $curlError = curl_error($curl);
    curl_close($curl);
    var_dump($response);
?>

```

#### 返回数据结构示例

```
{
    "ret": 200,
    "data": {
        "status": 0,
        "desc": "成功",
        "result": {
            "batch_id": "20260917114314491892",
            "total": 5,
            "pending": 0,
            "calling": 0,
            "success": 5,
            "fail": 0
        },
        "reqtime": 1789616670,
        "rsptime": 1789616670
    },
    "msg": ""
}

```

#### 返回参数说明

| 参数名      | 类型     | 说明         |
| :------- | :----- | :--------- |
| code     | int    | 返回码 200 成功 |
| msg      | string | 返回提示信息     |
| data     | object | 返回数据对象     |
| —desc    | string | 请求提示信息     |
| —reqtime | int    | 请求时间戳      |
| —rsptime | int    | 返回时间戳      |

# IVR管理 - IVR语音通知(同步)

#### 接口说明

实行对某目标号码的呼叫发起，通话被接通后，自动播放语音内容，单次最大30，间隔3秒

#### 请求方式

POST，form-data格式

#### 请求参数

| 参数名 | 类型 | 是否必须 | 说明 |
| --- | --- | --- | --- |
| service | string | 是 | App.Sip\_Call.PlayVoice |
| token | string | 是 | 通过授权接口获取的token |
| destnumber | string | 是 | 目标号码 |
| voicetype | int | 是 | 播放的语音文件类型。1:离线语音文件、2:在线语音(url) |
| voicefile | string | 是 | 离线音频文件名或在线语音url地址 |
| disnumber | string | 否 | 主叫号码，留空则随机取一个主叫号码 |
| userid | string | 是 | 自定义数据(员工ID) |
| customuuid | string | 否 | 客户自定义数据，在通话结束之后的回调数据中原样返回 |
| ext | string | 否 | 自定义数据(可以是json字符串) |
| transfer | string | 否 | 是否转接到agent：0不转、1转接；为1时应填写agent |
| agent | string | 否 | 坐席组或坐席号；transfer=1时必填 |
| waittime | string | 否 | 最大等待时间 |
| conntime | string | 否 | 最大通话时间 |


#### 接口请求示例（PHP）

    <?php
        $apiUrl = 'http://127.0.0.1:8080';
        $postFields = [
            'service'   => 'App.Sip_Call.PlayVoice',
            'token'     => 'ABCDEFG',
            'voicetype'  => 2,
            'destnumber'  => '13333333333',
            'voicefile'  => 'wwww.baidu.com/test.mp3',
            'disnumber'  => '13333333333',
            'userid'  => 'extGroup-1',
            'customuuid'  => '13333333333'
        ];
        $curl = curl_init();
        curl_setopt($curl, CURLOPT_URL, $apiUrl);
        curl_setopt($curl, CURLOPT_POST, 1);
        curl_setopt($curl, CURLOPT_POSTFIELDS, $postFields);
        curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
        $response = curl_exec($curl);
        $curlError = curl_error($curl);
        curl_close($curl);
        var_dump($response);
    ?>
    

#### 返回数据结构示例

    {
        "ret": 200,
        "data": {
            "status": 0,
            "desc": "播放命令发送成功",
            "reqtime": 1581307099,
            "rsptime": 1581307099
        },
        "msg": ""
    }


#### 返回参数说明

| 参数名        | 类型     | 说明                       |
| :--------- | :----- | :----------------------- |
| status     | int   | 0修改成功，1修改失败                   |
| desc     | string  | 描述信息                   |
| result   | object  | 对象信息当前为空                   |