快速集成

接口对接,快速集成文档参照。

任务调用接口集成

第一步:获取实例ID以及场景ID

参照业务管理创建外呼实例和外呼话术后,进行获取对应的实例ID(InstanceId)及场景ID(ScriptId)。获取位置参见下图:

  1. 业务管理:找到创建好的业务,点击编辑,会展示实例ID。

    image

  2. 场景ID:进入业务,找到场景管理,在所创建的话术场景侧,点击场景ID,即可获取。

    image

    image

第二步:创建外呼任务

调用CreateJobGroup接口,获取返回的JobGroupId

第三步:上传外呼号码名单

调用AssignJobs - 批量创建外呼任务接口,传入上面获取到的JobGroupId,将外呼被叫号码名单传入该任务中

任务结果自动推送回调

MQ简介

  • 介绍:对于每个外呼任务的呼叫完成状态,智能外呼服务会通过消息队列(RocketMQ)的方式通知调用方。消息中会返回任务Id,外呼任务的状态(接通/无人接听/呼叫失败)等。

  • 操作:接入方在阿里云购买的RocketMQ服务,RocketMQ需要为版本4.0的MQ服务,现在默认建立都是5.0的MQ实例,需要客户通过自助服务工具自行申请加白为MQ 4.0,客户建立好MQ实例以及Topic和GroupId后,需要提供以下信息给到智能外呼机器人的运营人员:

    1.消息队列实例

    2.子账号的AK 和 SK,需要同时开通MQ和智能外呼机器人的管理权限

    3.Topic和GroupId

    4.namesever

  • MQ的SDK版本建议:

    <dependency>

    <groupId>com.aliyun.openservices</groupId>

    <artifactId>ons-client</artifactId>

    <version>1.8.8.Final</version

    </dependency>

  • MQ开通以及集成

    RocketMQ的购买参见其产品详情页:产品详情页

    订阅RocketMQ消息参见RocketMQ的帮助文档:消息队列RocketMQ版帮助文档

    开通消息队列后该如何获取任务完成信息参考文档:

MQ消息类型:

消息级别

消息类型

EventType

任务

任务完成

JobComplete

通话

开始呼叫

Dialing

通话

接通通话

CallAnswered

通话

通话结束:挂机或者未接通超时

CallFinished

录音

录音生成成功

RecordingReady

CallFinished消息体

{
    "contacts": [
        {
            "honorific": "0861752659680",
            "id": "c27c0414-e8db-4735-9794-95c08d03a668",
            "name": "0861752659680",
            "phoneNumber": "19990563338",
            "referenceId": "C5"
        }
    ],
    "eventTime": 1723450215923,
    "eventType": "CallFinished",
    "extras": [
        {
            "key": "TenantId",
            "value": "1871840481341364"
        },
        {
            "key": "ServiceId",
            "value": "209566505377768184"
        }
    ],
    "groupId": "cedf70e5-c801-49f3-9215-e772293f5e7a",
    "id": "d6f07788-bb47-41f9-b8c2-58720bf238df",
    "instanceId": "87a3b859-6124-43e5-9371-40dc90e80170",
    "referenceId": "f2dcbca80a3d49caadfcd16d1650b812",
    "tagHits": [

    ],
    "task": {
        "actualTime": 1723450215592,
        "callId": "dec3b9ec40c14961a8c47a1366fb7901",
        "calledNumber": "19990563338",
        "callingNumber": "075536567741",
        "endTime": 1723450215592,
        "id": "770ab0c4-56dd-4c0f-b44d-8539b7b3d393",
        "planedTime": 1723450208000,
        "status": "Busy"
    }
}

JobComplete消息体:

{
    "eventType":"JobComplete",
    "eventTime":1588850490334,
    "instanceId":"08a4c460-****-737e069a154f",
    "groupId":"8869f35d-****-9b46437bc0fa",
    "id":"08a4c460-****-737e069a154f",
    "status":"Failed",
    "failureReason":"NoAnswer",
    "extras":[
        {
            "key":"custom",
            "value":"aaa"
        }
    ],
    "contacts":[
        {
            "id":"762c2e16-****-00a0f13372b1",
            "honorific":"test",
            "name":"test",
            "phoneNumber":"11111111",
            "referenceId":"762c2e16-****-00a0f13372b1"
        }
    ],
    "tasks":[
        {
            "id":"60b48efe-****-5d6b70479641",
            "callId":"60b48efe-****-5d6b70479641",
            "planedTime":1588850490334,
            "actualTime":1588850490334,
            "endTime":1588850490334,
            "callingNumber":"123456",
            "calledNumber":"11111111",
            "status":"NoAnswer"
        },
        {
            "id":"60b48efe-****-5d6b70479642",
            "callId":"60b48efe-****-5d6b70479642",
            "planedTime":1588850590334,
            "actualTime":1588850590334,
            "endTime":1588850590334,
            "callingNumber":"123456",
            "calledNumber":"11111111",
            "status":"NoAnswer"
        }
    ]
}

RecordingReady消息体:

{
    "eventType":"RecordingReady",
    "eventTime":1588850490334,
    "instanceId":"08a4c460-***-737e069a154f",
    "groupId":"8869f35d-***-9b46437bc0fa",
    "id":"08a4c460-***-737e069a154f",
    "extras":[
        {
            "key":"custom",
            "value":"aaa"
        }
    ],
    "contacts":[
        {
            "id":"762c2e16-***-00a0f13372b1",
            "honorific":"test",
            "name":"test",
            "phoneNumber":"11111111",
            "referenceId":"762c2e16-***-00a0f13372b1"
        }
    ],
    "recording":{
        "taskId":"60b48efe-***-5d6b70479641",
        "callId":"60b48efe-***-5d6b70479641",
        "duration":5,
        "fileName":"a.wav",
        "mkvUrl":"https://a.wav",
        "url":"https://a.wav"
    }
}

枚举值:

任务级别
- JobComplete 任务完成

通话级别
- Dialing 开始呼叫
- CallAnswered 通话接通
- CallFinished 通话结束,挂机或者未接通超时

录音级别
- RecordingReady 录音生成成功

JobGroup状态示例值
-JobGroupStatus {
    Draft(0),草稿
    Scheduling(1),调度中
    Executing(2),执行中
    Completed(3),已完成
    Paused(4),挂起
    Failed(5),失败
    Cancelled(6),已取消
    Initializing(7),初始化
}

Job状态示例值
-JobStatus {
    Scheduling(0, "调度中"),
    Executing(1, "执行中"),
    Succeeded(2, "结束-已触达"),
    Paused(3, "暂停"),
    Failed(4, "结束-未触达"),
    Cancelled(5, "已取消-人工干预"),
    Drafted(6, "草稿态"),
}

Task状态示例值
-TaskStatus {
    Executing(0, "正在拨打"),
    Succeeded(1, "已接通"),
    NoAnswer(2, "未接通-无人接听"),
    NotExist(3, "未接通-空号"),
    Busy(4, "未接通-占线"),
    Cancelled(5, "未呼出-任务停止"),
    Failed(6, "失败"),
    NotConnected(7, "未接通-无法接通"),
    PoweredOff(8, "未接通-关机"),
    OutOfService(9, "未接通-被叫停机"),
    InArrears(10, "未接通-被叫欠费"),
    EmptyNumber(11, "未呼出-空号不外呼"),
    PerDayCallCountLimit(12, "未呼出-超出每日上限"),
    ContactBlockList(13, "未呼出-黑名单"),
    CallerNotRegistered(14, "未呼出-主叫号码未注册"),
    Terminated(15, "未呼出-被终止"),
    VerificationCancelled(16, "未呼出-呼叫前验证不通过取消"),
    OutOfServiceNoCall(17, "未呼出-被叫停机不外呼"),
    InArrearsNoCall(18, "未呼出-被叫欠费不外呼"),
    CallingNumberNotExist(19, "未呼出-主叫号码不存在"),
}

未触达原因示例值
 -JobFailureReason {
    Unknown(0),未知错误
    NoAnswer(1),无人接听
    InvalidStrategy(2),无效的策略,策略配置不正确
    TimeUp(3),调度时发现超时
    NoStrategy(4),策略为空或没有找到
    CallFailed(5),呼叫失败
    PerDayCallCountLimit(6),号码每日呼叫次数限制
    ContactBlockList(7),禁止外呼名单
    EmptyNumber(8),空号不再外呼
    JobPerDayCallCountLimit(9),号码每日呼叫次数限制
    VerificationCancelled(10),呼叫前验证不通过取消
    ContactSuspended(11),止呼
    InArrears(12),欠费
    OutOfService(13),停机
    NoneRepeatableJobMaxAttemptCountLimit(14),任务最大尝试次数, 当RepeatBy(@see )为None时生效
}