# 手动拨号呼叫接口

# 分机组管理 - 创建分机组

#### 接口说明

创建分机组

#### 请求方式

POST，form-data格式

#### 请求参数

| 参数名 | 类型 | 是否必须 | 说明 |
| --- | --- | --- | --- |
| service | string | 是 | App.Sip\_Extgroup.AddExtgroup |
| token | string | 是 | 通过授权接口获取的token |
| name | string | 是 | 分机组名 |
| status | int | 否 | 分机组状态：0 启用；1 禁用，默认 0 |

#### 接口请求示例（PHP）

    <?php
        $apiUrl = 'http://127.0.0.1:8080';
        $postFields = [
            'service'   => 'App.Sip_Extgroup.AddExtgroup',
            'token'     => 'ABCDEFG',
            'name'  => 'abcdefg',
            'status'  => 1
        ];
        $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": 1581410934,
            "rsptime": 1581410934
        },
        "msg": ""
    }
    

#### 返回数据字段说明

| 字段 | 说明 |
| --- | --- |
|  |

# 分机组管理 - 删除分机组

#### 接口说明

删除分机组

#### 请求方式

POST，form-data格式

#### 请求参数

| 参数名 | 类型 | 是否必须 | 说明 |
| --- | --- | --- | --- |
| service | string | 是 | App.Sip\_Extgroup.DelExtgroup |
| token | string | 是 | 通过授权接口获取的token |
| name | string | 是 | 分机组名 |

#### 接口请求示例（PHP）

    <?php
        $apiUrl = 'http://127.0.0.1:8080';
        $postFields = [
            'service'   => 'App.Sip_Extgroup.DelExtgroup',
            'token'     => 'ABCDEFG',
            'name'  => '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":"删除成功",
            "reqtime":1581409781,
            "rsptime":1581409781
        },
        "msg":""
    }
    

#### 返回数据字段说明

| 字段 | 说明 |
| --- | --- |
|  |

# 分机组管理  - 获取分机组列表

#### 接口说明

获取当前用户拥有的分机组列表

#### 请求方式

POST，form-data格式

#### 请求参数

| 参数名 | 类型 | 是否必须 | 说明 |
| --- | --- | --- | --- |
| service | string | 是 | App.Sip\_Extgroup.GetExtgroupInfo |
| token | string | 是 | 通过授权接口获取的token |
| name | string | 否 | 分机组名，为空则获取所有 |

#### 接口请求示例（PHP）

    <?php
        $apiUrl = 'http://127.0.0.1:8080';
        $postFields = [
            'service'   => 'App.Sip_Extgroup.GetExtgroupInfo',
            'token'     => 'ABCDEFG',
            'name'  => '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": "获取成功",
            "result": [
                {
                    "id": 18,
                    "name": "test-group-3",
                    "status": 1042
                }
            ],
            "reqtime": 1581408746,
            "rsptime": 1581408746
        },
        "msg": ""
    }
    

#### 返回字段说明

| 字段 | 类型 | 说明 |
| --- | --- | --- |
| result | string | 分机列表数组 |
| —id | string | 分机组id |
| —name | string | 分机组名 |
| —status | string | 分机组状态 |

# 分机组管理 - 分机签出分机组

#### 接口说明

将当前用户下的分机从分机组中签出

#### 请求方式

POST，form-data格式

#### 请求参数

| 参数名 | 类型 | 是否必须 | 说明 |
| --- | --- | --- | --- |
| service | string | 是 | App.Sip\_Extgroup.DelExtnumber |
| token | string | 是 | 通过授权接口获取的token |
| name | string | 是 | 分机组名 |
| extnumber | string | 是 | 分机号 |

#### 接口请求示例（PHP）

    <?php
        $apiUrl = 'http://127.0.0.1:8080';
        $postFields = [
            'service'   => 'App.Sip_Extgroup.DelExtnumber',
            'token'     => 'ABCDEFG',
            'name'  => 'abcdefg',
            'extnumber'  => '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": "删除成功",
            "reqtime": 1581409508,
            "rsptime": 1581409508
        },
        "msg": ""
    }
    

#### 返回数据字段说明

| 字段 | 类型 | 说明 |
| --- | --- | --- |
| desc | string | 返回描述 |

# 分机组管理 - 分机签入分机组

#### 接口说明

将当前用户下的一个分机签入到用户拥有的一个分机组

#### 请求方式

POST，form-data格式

#### 请求参数

| 参数名 | 类型 | 是否必须 | 说明 |
| --- | --- | --- | --- |
| service | string | 是 | App.Sip\_Extgroup.AddExtnumber |
| token | string | 是 | 通过授权接口获取的token |
| name | string | 是 | 分机组名 |
| extnumber | string | 是 | 分机号 |

#### 接口请求示例（PHP）

    <?php
        $apiUrl = 'http://127.0.0.1:8080';
        $postFields = [
            'service'   => 'App.Sip_Extgroup.AddExtnumber',
            'token'     => 'ABCDEFG',
            'name'  => 'abcdefg',
            'extnumber'  => '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": "添加成功",
            "reqtime": 1581409508,
            "rsptime": 1581409508
        },
        "msg": ""
    }
    

#### 返回数据字段说明

| 字段 | 类型 | 说明 |
| --- | --- | --- |
| desc | string | 返回描述 |

# 分机组管理 -  分机示闲示忙状态设置

#### 接口说明
设置分机的闲忙状态

#### 请求方式
POST，form-data格式

#### 请求参数

| 参数名 | 类型 | 是否必须 | 说明 |
| --- | --- | --- | --- |
| service | string | 是 | App.Sip\_Extgroup.EditExtnumber |
| token | string | 是 | 通过授权接口获取的token |
| name | string | 是 | 分机组名 |
| extnumber | string | 是 | 分机号 |
| state | string | 是 | 分机状态 idle：示闲；busy：示忙 |

#### 接口请求示例（PHP）

    <?php
        $apiUrl = 'http://127.0.0.1:8080';
        $postFields = [
            'service'   => 'App.Sip_Extgroup.EditExtnumber',
            'token'     => 'ABCDEFG',
            'name'  => 'abcdefg',
            'extnumber'  => '100001',
            'state'  => 'idle'
        ];
        $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": 1581409508,
            "rsptime": 1581409508
        },
        "msg": ""
    }
    

#### 返回数据字段说明

| 字段 | 类型 | 说明 |
| --- | --- | --- |
| desc | string | 返回描述 |

# 分机组管理 - 获取分机组分机闲忙状态

#### 接口说明

获取分机组中的分机状态

#### 请求方式

POST，form-data格式

#### 请求参数

| 参数名 | 类型 | 是否必须 | 说明 |
| --- | --- | --- | --- |
| service | string | 是 | App.Sip\_Extgroup.GetGroupExt |
| token | string | 是 | 通过授权接口获取的token |
| name | string | 否 | 分机组名，为空则获取当前用户所有分机组数据 |
| extnumber | string | 否 | 分机号，为空则获取当前用户所有分机数据 |

#### 接口请求示例（PHP）

    <?php
        $apiUrl = 'http://127.0.0.1:8080';
        $postFields = [
            'service'   => 'App.Sip_Extgroup.GetGroupExt',
            'token'     => 'ABCDEFG',
            'name'  => 'abcdefg',
            'extnumber'  => '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": [
            {
                "name": "autocall-9026",
                "extnumber": "9026004",
                "status": "hangup",
                "priority": 1,
                "linkcount": 0,
                "date": null,
                "state": "idle"
            }
        ],
        "msg": ""
    }
    

#### 返回数据字段说明

| 字段 | 类型 | 说明 |
| --- | --- | --- |
| data | string | 分机号数据数组 |
| —name | string | 分机组名 |
| —extnumber | string | 分机号 |
| —status | string | 分机状态 answer：应答；hangup：挂断 |
| —priority | string | 优先级 |
| —linkcount | string | 通话时长 |
| —date | string | 更新时间 |
| —state | string | 分机闲忙状态 idle：示闲； busy：示忙 |

# 分机管理 - 获取分机列表信息

#### 接口说明

获取用户拥有的分机列表信息。

#### 请求方式
POST，form-data格式

#### 请求参数

| 参数名       | 类型     | 是否必须 | 说明                               |
| :-------- | :----- | :--- | :------------------------------- |
| service   | string | 是    | App.Sip\_Sipnum.GetSipnumberInfo |
| token     | string | 是    | 通过授权接口获取的token                   |
| status    | int    | 是    | 分机状态。1:启用（默认）、2:禁用、3:全部          |
| extnumber | string | 否    | 分机号，为空获取所有                       |

#### 接口请求示例（PHP）

```
<?php
    $apiUrl = 'http://127.0.0.1:8080';
    $postFields = [
        'service'   => 'App.Sip_Sipnum.GetSipnumberInfo',
        'token'     => 'ABCDEFG',
        'status'    => 3,
        'extnumber'  => '100001'
    ];
    $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": [
            {
                "extnumber": "100001",
                "password": "100001",
                "status": 1016,
                "register": "nreg"
            }
        ],
        "reqtime": 1581506241,
        "rsptime": 1581506241
    },
    "msg": ""
}

```

#### 返回参数说明

| 参数名        | 类型     | 说明                       |
| :--------- | :----- | :----------------------- |
| result     | array  | 分机列表数组                   |
| —extnumber | string | 分机号                      |
| —password  | string | 分机号登陆密码                  |
| —status    | int    | 分机号状态                    |
| —register  | string | 分机号注册状态。nreg：未注册；reg：已注册 |

# 分机管理 - 修改分机信息

#### 接口说明

修改用户分机信息。

#### 请求方式
POST，form-data格式

#### 请求参数

| 参数名       | 类型     | 是否必须 | 说明                               |
| :-------- | :----- | :--- | :------------------------------- |
| service   | string | 是    | App.Sip\_Sipnum.EditSipnumber |
| token     | string | 是    | 通过授权接口获取的token                   |
| extnumber | string | 是    | 分机号                       |
| password  | string | 否    | 分机密码          |
| username  | string | 否    | 分机用户名        |
| status    | int    |    否 | 状态 1:启用、2:禁用
| manualdial| int    | 否|是否直拨 1:启用、2:禁用|
| record    | int   | 否 |是否录音 1:启用、2:禁用|

#### 接口请求示例（PHP）

```
<?php
    $apiUrl = 'http://127.0.0.1:8080';
    $postFields = [
        'service'   => 'App.Sip_Sipnum.GetSipnumberInfo',
        'token'     => 'ABCDEFG',
        'extnumber'  => '100001',
        'password'  => '100001',
        'username'  => '100001',
        'status'    => 1,
        'manualdial'    => 1,
        'record'    => 1,
    ];
    $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": 1581506241,
        "rsptime": 1581506241
    },
    "msg": ""
}

```

#### 返回参数说明

| 参数名        | 类型     | 说明                       |
| :--------- | :----- | :----------------------- |
| status     | int  | 0修改成功，1修改失败                   |

# 分机管理 - 获取分机启用状态

#### 接口说明

获取用户拥有的分机列表信息。

#### 请求方式
POST，form-data格式

#### 请求参数

| 参数名       | 类型     | 是否必须 | 说明                                |
| :-------- | :----- | :--- | :-------------------------------- |
| service   | string | 是    | App.Sip\_Status.GetSipValidStatus |
| token     | string | 是    | 通过授权接口获取的token                    |
| extnumber | string | 是    | 分机号，多个分机号用英文逗号隔开                  |

#### 接口请求示例（PHP）

```
<?php
    $apiUrl = 'http://127.0.0.1:8080';
    $postFields = [
        'service'   => 'App.Sip_Status.GetSipValidStatus',
        'token'     => 'ABCDEFG',
        'extnumber'  => '100001'
    ];
    $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": [
            {
                "extnumber": "90170002",
                "code": 1016
            }
        ],
        "reqtime": 1581508401,
        "rsptime": 1581508401
    },
    "msg": ""
}

```

#### 返回参数说明

| 参数名        | 类型     | 说明     |
| :--------- | :----- | :----- |
| result     | array  | 分机数据数组 |
| —extnumber | string | 分机号    |
| —code      | int    | 分机号状态  |

# 分机管理 - 获取分机通话状态

#### 接口说明

获取用户拥有的分机列表信息。

#### 请求方式
POST，form-data格式

#### 请求参数

| 参数名 | 类型 | 是否必须 | 说明 |
| --- | --- | --- | --- |
| service | string | 是 | App.Sip\_Status.GetSipCallStatus |
| token | string | 是 | 通过授权接口获取的token |
| extnumber | string | 是 | 分机号，多个分机号用英文逗号隔开 |

#### 接口请求示例（PHP）

    <?php
        $apiUrl = 'http://127.0.0.1:8080';
        $postFields = [
            'service'   => 'App.Sip_Status.GetSipCallStatus',
            'token'     => 'ABCDEFG',
            'extnumber'  => '100001'
        ];
        $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": [
                {
                    "extnumber": "90170002",
                    "status": 1014,
                    "caller": null,
                    "callee": null,
                    "disnumber": null,
                    "direction": null,
                    "channel": null,
                    "idleduration": null,
                    "callduration": null
                }
            ],
            "reqtime": 1581506689,
            "rsptime": 1581506689
        },
        "msg": ""
    }
    

#### 返回参数说明

| 参数名 | 类型 | 说明 |
| --- | --- | --- |
| result | array | 分机数据数组 |
| —extnumber | string | 分机号 |
| —status | int | 分机号状态 |
| —caller | string | 呼叫人 |
| —callee | string | 被叫人 |
| —disnumber | string | 显示号码 |
| —direction | string | 呼叫方向 |
| —channel | string | 渠道 |
| —idleduration | int | 空闲时长 |
| —callduration | int | 通话时长 |

# 分机管理 - 获取分机注册信息

#### 接口说明

获取用户拥有的分机列表信息。

#### 请求方式

POST，form-data格式

#### 请求参数

| 参数名       | 类型     | 是否必须 | 说明                                   |
| :-------- | :----- | :--- | :----------------------------------- |
| service   | string | 是    | App.Sip\_Status.GetSipRegisterStatus |
| token     | string | 是    | 通过授权接口获取的token                       |
| extnumber | string | 是    | 分机号，多个分机号用英文逗号隔开                     |

#### 接口请求示例（PHP）

```
<?php
    $apiUrl = 'http://127.0.0.1:8080';
    $postFields = [
        'service'   => 'App.Sip_Status.GetSipRegisterStatus',
        'token'     => 'ABCDEFG',
        'extnumber'  => '100001'
    ];
    $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": [
            {
                "extnumber": "90170002",
                "code": 1014,
                "clientip": null,
                "serverip": null
            }
        ],
        "reqtime": 1581507361,
        "rsptime": 1581507361
    },
    "msg": ""
}

```

#### 返回参数说明

| 参数名        | 类型     | 说明        |
| :--------- | :----- | :-------- |
| result     | array  | 分机数据数组    |
| —extnumber | string | 分机号       |
| —code      | int    | 分机号状态     |
| —clientip  | string | 分机注册客户端IP |
| —serverip  | string | 分机注册服务端Ip |

# 语音呼叫API-获取主叫号码信息

#### 接口说明

获取用户拥有的主叫号码列表信息。

#### 请求参数

| 参数名 | 类型 | 是否必须 | 说明 |
| --- | --- | --- | --- |
| service | string | 是 | App.Sip\_Disnum.getDisnumberInfo |
| token | string | 是 | 通过授权接口获取的token |
| status | int | 是 | 1:启用（默认）、2:禁用、3:全部 |
| autocall | int | 是 | 是否预测外呼号码：1:不限（默认）、2:是、3:否|
| disnumber | string | 否 | 主叫号码，多个主叫号码用英文逗号隔开，不传时获取所有 |
| areacode | string | 否 | 号码区号 |

#### 接口请求示例（PHP）

    <?php
        $apiUrl = 'http://127.0.0.1:8080';
        $postFields = [
            'service'   => 'App.Sip_Disnum.getDisnumberInfo',
            'token'     => 'ABCDEFG',
            'status'    => 1,
            'autocall'  => 1,
            'disnumber'    => '0755111,0755222',
            'areacode'  => '0755'
        ];
        $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": [
                {
                    "disnumber": "0755111",
                    "areacode": "0755",
                    "disnumbertype": "tel",
                    "concurrent": 0,
					"status":1017,
					"autocall": "no"
                }
            ],
            "reqtime": 1581506241,
            "rsptime": 1581506241
        },
        "msg": ""
    }
    

#### 返回参数说明

| 参数名 | 类型 | 说明 |
| --- | --- | --- |
| result | array | 分机列表数组 |
| —disnumber | string | 主叫号码 |
| —areacode | string | 区号 |
| —disnumbertype | string | 号码类型 tel:固话 mob:手机 |
| —concurrent | int | 号码并发, 0 表示不限制 |
| —status | int | 号码状态 |
| —autocall | string | 是否预测外呼号码 yes:是 no:否 |

# 语音呼叫API - 接入流程

# 语音呼叫API接入流程

![](https://doc-admin.infin8linx.com/uploads/202503/d86ab231b4965937f47dcea811ec4fca.jpg)

# 语音呼叫API - 发起语音呼叫

#### 接口说明

对某个号码直接发起呼叫，多数适用于网页上点击“呼叫”后调用接口。

#### 请求方式

POST，form-data格式

#### 请求参数

| 参数名        | 类型     | 是否必须 | 说明                     |
| :--------- | :----- | :--- | :--------------------- |
| service    | string | 是    | App.Sip\_Call.MakeCall |
| token      | string | 是    | 通过授权接口获取的token         |
| extnumber  | string | 是    | 分机号                    |
| destnumber | string | 是    | 目标号码                   |
| disnumber  | string | 否    | 主叫号码(用户手机上显示的来电号码)，必须使用系统配置的主叫号码，否则呼叫失败，留空则随机取一个主叫号码      |
| userid     | string | 否    | 自定义参数(员工id)            |
| memberid   | string | 否    | 自定义参数(会员id)            |
| customuuid | string | 否    | 自定义参数(客户id)            |
| ext | string | 否    | 自定义参数(扩展参数)             |

#### 接口请求示例（PHP）

```
<?php
    $apiUrl = 'http://127.0.0.1:8080';
    $postFields = [
        'service'   => 'App.Sip_Call.MakeCall',
        'token'     => 'ABCDEFG',
        'extnumber'  => 'abcdefg',
        'destnumber'  => 'abcdefg',
        'disnumber'  => 'abcdefg',
        'userid'  => 'abcdefg',
        'memberid'  => 'abcdefg',
        'customuuid'  => 'abcdefg',
        'ext'  => '{"aa":11}',
    ];
    $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": 1581389402,
            "rsptime": 1581389402
        },
        "msg": ""
    }

# 语音呼叫API - 通话监听

#### 接口说明

指定分机监听其它正在通话的分机。

#### 请求方式

POST，form-data格式

#### 请求参数

| 参数名        | 类型     | 是否必须 | 说明                     |
| :--------- | :----- | :--- | :--------------------- |
| service    | string | 是    | App.Sip_Call.SpyCall |
| token      | string | 是    | 通过授权接口获取的token         |
| monitortype  | string | 是    | 监听方式，1:监听分机，2：监听切换耳语，3：耳语恢复监听      |
| extnumber  | string | 是    | 监听者坐席                    |
| destnumber | string | 是    | 被监听者坐席                   |

#### 接口请求示例（PHP）

```
<?php
    $apiUrl = 'http://127.0.0.1:8080';
    $postFields = [
        'service'   => 'App.Sip_Call.MakeCall',
        'token'     => 'ABCDEFG',
		'monitortype'  => '1',
        'extnumber'  => '70001',
        'destnumber'  => '7008',
    ];
    $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": 1581389402,
            "rsptime": 1581389402
        },
        "msg": ""
    }

# 语音呼叫API - 通话挂断

#### 接口说明

挂断指定通话分机。

#### 请求方式

POST，form-data格式

#### 请求参数

| 参数名        | 类型     | 是否必须 | 说明                     |
| :--------- | :----- | :--- | :--------------------- |
| service    | string | 是    | App.Sip_Call.HangupCall |
| token      | string | 是    | 通过授权接口获取的token         |
| extnumber  | string | 是    | 分机号                    |

#### 接口请求示例（PHP）

```
<?php
    $apiUrl = 'http://127.0.0.1:8080';
    $postFields = [
        'service'   => 'App.Sip_Call.HangupCall',
        'token'     => 'ABCDEFG',
        'extnumber'  => '70001',
    ];
    $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": 1581389402,
            "rsptime": 1581389402
        },
        "msg": ""
    }

# 语音呼叫API  - IVR语音通知接口

#### 接口说明

实行对某目标号码的呼叫发起，通话被接通后，自动播放语音内容，播放完之后会根据用户的按键或不按键，可将通话转入到分机组中，系统会根据分机状态，及后台配置的分机状态回调地址发送对应的回调数据。

#### 请求方式

POST，form-data格式

#### 请求参数

| 参数名 | 类型 | 是否必须 | 说明 |
| --- | --- | --- | --- |
| service | string | 是 | App.Sip\_Call.PlayVoice |
| token | string | 是 | 通过授权接口获取的token |
| destnumber | string | 是 | 目标号码 |
| voicetype | int | 是 | 播放的语音文件类型。1:离线语音文件、2:在线语音(url) |
| voicefile | string | 是 | 离线音频文件名或在线语音url地址 |
| chengshudu | string | 是 | 1 |
| userid | string | 是 | 用户转入坐席的按键和转入坐席的分机组名示例：”1@extGroup-1” |
| disnumber | string | 否 | 主叫号码，留空则随机取一个主叫号码 |
| customuuid | 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',
            'chengshudu'  => 1,
            'userid'  => '1@extGroup-1',
            'disnumber'  => '13333333333',
            '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": ""
    }
    

#### 分机状态回调数据示例

    {
        "buuid":"f4ffad68-4a0f-11ea-812d-fbc8753285b6",
        "callee":"85322888486",
        "caller":"20280003",
        "companycode":"2028",
        "direction":"callout",
        "disnumber":"2120280001",
        "extnumber":"20280003",
        "isbleg":"true",
        "method":"2",
        "starttime":"1581124302",
        "status":"ring",
        "uuid":"f4ee8e7a-4a0f-11ea-8126-fbc8753285b6",
        "ip":"149.129.249.47"
    }
    

#### 回调字段说明

| 字段 | 类型 | 说明 |
| --- | --- | --- |
| buuid | string | B侧唯一id |
| callee | string | 被叫号码（用户号码） |
| caller | string | 呼叫号码（分机号） |
| companycode | string | 公司码 |
| direction | string | 呼叫方向 callin 呼入、callout 呼出 |
| disnumber | string | 显示号码 |
| extnumber | string | 分机号 |
| isbleg | string | 是否B侧 |
| method | string | 呼叫方式、1分机、2手动、3接口、4双呼、5预测 |
| starttime | string | 呼叫开始时间 |
| status | string | 分机状态 ring 响铃 answer 接听 hangup 挂断 |
| uuid | string | 通话唯一id |
| ip | string | ip |

#### 接口返回说明

该接口请求之后会向目标号码呼叫，目标号码接通之后会直接播放语音文件中的内容。呼叫结果会在通话结束之后，以回调方式通知到后台配置的通话详单回调地址。

#### 回调数据结构示例

    {
        "answertime":"2020-02-09 12:32:51",
        "hangupcause":10001,
        "duration":13,
        "id":220739,
        "extnumber":"",
        "uuid":"3418035c-4af5-11ea-afb2-fbc8753285b6",
        "downloadip":"149.129.249.47",
        "customuuid":"110001168",
        "chengshudu":"0",
        "callmethod":6,
        "recordfilename":"1111.mp3",
        "companycode":9017,
        "memberid":"0",
        "hangupdirection":10040,
        "billsec":10,
        "endtime":"2020-02-09 12:33:01",
        "starttime":"2020-02-09 12:32:38",
        "type":"callout",
        "disnumber":"2190170001",
        "crmid":"0",
        "userkey":"",
        "destnumber":"85781218893"
    }
    

#### 回调数据字段说明

| 字段 | 类型 | 说明 |
| --- | --- | --- |
| answertime | string | 接听时间 |
| hangupcause | string | 挂断原因 |
| duration | string | 等待接听时长 |
| id | string | 话单id |
| extnumber | string | 分机号 |
| uuid | string | 通话唯一id |
| downloadip | string | 下载ip |
| customuuid | string | 自定义参数 |
| chengshudu | string | 自定义参数 |
| callmethod | string | 呼叫方式 |
| recordfilename | string | 通话文件名 |
| companycode | string | 公司码 |
| memberid | string | 自定义参数 |
| hangupdirection | string | 挂断方向 |
| billsec | string | 通话时长 |
| endtime | string | 挂机时间 |
| starttime | string | 呼叫时间 |
| type | string | 呼叫方式 |
| disnumber | string | 主叫号码 |
| crmid | string | 坐席id |
| userkey | string | 用户按键 |
| destnumber | string | 目标号码 |

# 语音双向呼叫 - API接入流程

#### 双向呼叫API接入流程

![](https://doc-admin.infin8linx.com/uploads/202503/c2d9b4edbd97ed2b86e4467a6a49e392.jpg)

# 语音双向呼叫 - 双向呼叫接口

#### 接口说明：

双向呼叫主要用于先呼叫公司客服号码，接通后再对被叫客户号码进行呼叫。

#### 请求方式

POST，form-data格式

#### 请求参数

| 参数名 | 类型 | 是否必须 | 说明 |
| --- | --- | --- | --- |
| service | string | 必须 | App.Sip\_Call.DoubleCall |
| token | 字符串 | 必须 | Token，最小：32；最大32 |
| extnumber | 字符串 | 必须 | 分机号码 |
| anumber | 字符串 | 必须 | 员工手机号码 |
| bnumber | 字符串 | 必须 | 被叫客户号码 |
| disnumber | 字符串 | 可选 | 显示的主叫号码，留空随机取一个主叫 |
| userid | 字符串 | 可选 | 自定义数据(员工ID) |
| memberid | 字符串 | 可选 | 自定义数据(会员ID) |
| chengshudu | 字符串 | 可选 | 自定义数据(成熟度) |
| customuuid | 字符串 | 可选 | 自定义数据(客户ID) |

#### 接口请求示例（PHP）

    <?php
        $apiUrl = 'http://127.0.0.1:8080';
        $postFields = [
            'service'   => 'App.Sip_Call.DoubleCall',
            'token'     => 'ABCDEFG',
            'extnumber'  => 'abcdefg',
            'anumber'  => 'abcdefg',
            'bnumber'  => 'abcdefg',
            'disnumber'  => 'abcdefg',
            'userid'  => 'abcdefg',
            'memberid'  => 'abcdefg',
            'chengshudu'  => 'abcdefg',
            'customuuid'  => '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": "双呼命令发送成功",
            "reqtime": 1584953473,
            "rsptime": 1584953473
        },
        "msg": ""
    }

# 语音验证码 - 错误码信息

#### 错误码信息
**简要描述：**

*   错误码信息

| 错误码  | 说明   |
| :--- | :--- |
| 1000 | 系统错误 |
| 1001 | 参数错误 |

# 语音验证码 - 语音验证码

#### **请求URL**

*   `http://dashboardapi.infin8linx.com/voiceCode`

#### **请求方式**

*   POST

#### **请求参数**

| 参数名        | 必选 | 类型     | 说明                                                                             |
| :--------- | :- | :----- | :----------------------------------------------------------------------------- |
| appid      | 是  | string | 鉴权 appid                                                                       |
| accesskey  | 是  | string | 鉴权 accesskey                                                                   |
| code       | 是  | string | 验证码 4位有效数字                                                                     |
| phone      | 是  | string | 接收验证码的手机号 印尼及墨西哥手机号码不需要加国别号码，例如完整号码为：`0062 8123456789`，则直接以 `8123456789` 请求即可。 |
| nationCode | 是  | string | 语言版本 en:英语 id:印尼 sp:西班牙语                                                       |
| customuuid | 否  | string | 用户自定义参数                                                     |

#### **返回示例**

```
{
    "code": 1,
    "msg": "请求成功",
    "data": {
        "customuuid":"123123"
    }
}

```

#### **返回参数说明**

| 参数名         | 类型     | 说明             |
| :---------- | :----- | :------------- |
| code        | int    | 返回码 1 成功 其他为失败 |
| msg         | string | 返回信息           |
| data        | object | 返回数据           |
| —customuuid | string | 任务唯一id         |

[查看错误码详情](https://www.showdoc.cc/page/edit/663198582928843/4040095140133787 "查看错误码详情")