全部产品
云市场

智能外呼

更新时间:2019-04-10 12:34:20

智能外呼接口(SmartCall)

步骤 1 创建阿里云账号

为了访问语音服务,您需要有一个阿里云账号。如果没有,可首先按照如下步骤创建阿里云账号:

1、访问阿里云 官方网站,单击页面上的免费注册按钮。

2、按照屏幕提示完成注册流程并进行企业实名认证语音服务只支持企业实名认证用户使用。为了更好地使用阿里云服务,建议尽快完成实名认证,否则部分阿里云服务将无法使用。具体实名认证流程,请参考 这里

步骤 2 获取阿里云访问密钥

为了使用智能外呼API-JAVA SDK,您必须申请阿里云的访问密钥。

阿里云访问秘钥是阿里云为用户使用 API(非控制台)来访问其云资源设计的“安全口令”。您可以用它来签名 API 请求内容以通过服务端的安全验证。

该访问秘钥成对(AccessKeyId 与 AccessKeySecret)生成和使用。每个阿里云用户可以创建多对访问秘钥,且可随时启用(Active)、禁用(Inactive)或者删除已经生成的访问秘钥对。

您可以通过阿里云控制台的 秘钥管理页面 创建、管理所有的访问秘钥对,且保证它处于“启用”状态。由于访问秘钥是阿里云对 API 请求进行安全验证的关键因子,请妥善保管你的访问秘钥。如果某些秘钥对出现泄漏风险,建议及时删除该秘钥对并生成新的替代秘钥对。

步骤 3 在控制台完成号码申请与语音文件上传,获得调用接口必备的参数

在“语音号码”页面完成资质的申请,号码的购买。

在“智能外呼文件”页面完成智能外呼文件上传。

入参列表

参数名称 参数类型 必填与否 样例取值 参数说明
calledShowNumber String 必须 4001112222 被叫显号
calledNumber String 必须 13700000000 被叫号码
voiceCode String 必须 2d4c-4e78-8d2a-afbb06cf6216.wav,$name$ 语音文件Code,支持多文件和tts参数混播,用逗号分隔,比如2d4c-4e78-8d2a-afbb06cf6216.wav,$name$,tts具体内容在voiceCodeParam里面设置
volume Integer 可选 1 音量,-4到4之间,建议设为1
recordFlag Boolean 可选 true 是否录音
asrModelId String 可选 2070aca1eff146f9a7bc826f1c3d4d33 ASR模型ID
muteTime Integer 可选 10000 静音时长,单位ms,1000-20000之间,超过这个范围默认10000
pauseTime Integer 可选 800 停顿时长,单位ms,300-1200之间,超过这个范围默认800
actionCodeBreak Boolean 可选 true 开场放音文件是否可打断,默认为true,打断
outId String 可选 abcdefgh 预留给调用方使用的ID, 最终会通过在回执消息中将此ID带回给调用方(15个字符及以内)
dynamicId String 可选 abcdefgh 预留给调用方使用的动态扩展id,在回调地址中带回,用于客户的开发标识需要
earlyMediaAsr Boolean 可选 false 早媒体语音识别标识,默认是fasle,使用的话设成true
voiceCodeParam String 可选 “{\”name\”:\”喂,你好\”}” tts参数传递字符串,使用json格式,name和voiceCode的$name$参数对应
sessionTimeout Integer 可选 120 最大通话时长,单位秒,超时后自动挂断
actionCodeTimeBreak Integer 可选 120 基于用户持续说话时长打断,单位是ms,在ationCodeBreak为true时并且取值大于0时生效
ttsConf Boolean 可选 true Tts声音设置参数,为true时需要设置ttsStyle、ttsColume、ttsSpeed三个参数来设置声音风格。为false时三个参数值设置无效
ttsStyle String 可选 xiaoyan Tts变量播放时的声音风格,默认是xiaoyan,具体风格见声音风格列表
ttsVolume Integer 可选 80 Tts变量播放时音量 0-100之间,默认是0
ttsSpeed Integer 可选 100 Tts变量播放时声音速度200到-200,默认是0
asrBaseId String 可选 customer_service_8k asr基础模型,在设置asrModelId模型id的情况下,优先使用asrModelId,不设置asrModelId,会使用asr基础模型;不填默认是customer_service_8k 普通话,目前就支持customer_service_8k 普通话、dialect_customer_service_8k 重口音两种

声音风格列表

说明 编码
小云标准女声 xiaoyun
小刚标准男声 xiaogang
若兮温柔女声 ruoxi
小梦标准女声 xiaomeng
小威标准男声 xiaowei
阿美甜美女声 amei
小雪温柔女声 xiaoxue
思琪温柔女声 siqi
思佳标准女声 sijia
思诚标准男声 sicheng
思悦温柔女声 siyue
小美甜美女声 xiaomei
思彤标准童声 sitong
宁儿标准女声 ninger
小北萝莉女声 xiaobei
伊娜浙普女声 yina

出参列表

出参名称 出参类型 样例取值 参数说明
RequestId String 8906582E-6722 请求ID
Code String OK 状态码-返回OK代表请求成功,其他错误码详见错误码列表
Message String 请求成功 状态码的描述
CallId String 134523^4351232 调用的回执ID

技术对接步骤

1:下载SDK工具包

SDK工具包中一共包含了2个类库,一个aliyun-java-sdk-core包,另外一个是alicom-dyvms-api包,将这两个包执行mvn package命令或者mvn deploy命令打包出相应的jar包,添加到工程类库中依赖使用。

SDK&DEMO[下载地址]

2: 编写样例程序
  1. //可自助调整超时时间
  2. System.setProperty("sun.net.client.defaultConnectTimeout", "10000");
  3. System.setProperty("sun.net.client.defaultReadTimeout", "10000");
  4. //初始化acsClient,暂不支持region化
  5. IClientProfile profile = DefaultProfile.getProfile("cn-hangzhou", accessKeyId, accessKeySecret);
  6. DefaultProfile.addEndpoint("cn-hangzhou", "cn-hangzhou", product, domain);
  7. IAcsClient acsClient = new DefaultAcsClient(profile);
  8. //组装请求对象-具体描述见控制台-文档部分内容
  9. SmartCallRequest request = new SmartCallRequest();
  10. //必填-被叫显号,可在语音控制台中找到所购买的显号
  11. request.setCalledShowNumber("06336760013");
  12. //必填-被叫号码
  13. request.setCalledNumber("1005");
  14. //必填-语音文件ID
  15. request.setVoiceCode("3355eedd-3706-4f75-bff9-e645e88e1730.wav");
  16. //可选-外部扩展字段
  17. request.setOutId("yourOutId");
  18. request.setSpeed(1);
  19. request.setVolume(2);
  20. request.setMuteTime(10000);
  21. request.setPauseTime(800);
  22. request.setActionCodeBreak(false);
  23. request.setAsrModelId("2070aca1eff146f9a7bc826f1c3d4d31");
  24. //hint 此处可能会抛出异常,注意catch
  25. SmartCallResponse smartCallResponse = acsClient.getAcsResponse(request);
  26. return smartCallResponse;
  27. }

错误码列表

Code 描述
OK 请求成功
isp.RAM_PERMISSION_DENY RAM权限DENY
isv.OUT_OF_SERVICE 业务停机
isv.PRODUCT_UN_SUBSCRIPT 未开通云通信产品的阿里云客户
isv.OUT_OF_SERVICE 业务停机
isv.PRODUCT_UNSUBSCRIBE 产品未开通
isv.ACCOUNT_NOT_EXISTS 账户不存在
isv.ACCOUNT_ABNORMAL 账户异常
isv.VOICE_FILE_ILLEGAL 语音文件不合法
isv.DISPLAY_NUMBER_ILLEGAL 号显不合法
isv.INVALID_PARAMETERS 参数异常
isp.SYSTEM_ERROR 系统错误
isv.MOBILE_NUMBER_ILLEGAL 号码格式非法
isv.BUSINESS_LIMIT_CONTROL 触发流控
isv.ASR_MODEL_ERROR 无权限使用该模型