全部产品
存储与CDN 数据库 安全 应用服务 数加·人工智能 数加·大数据基础服务 互联网中间件 视频服务 开发者工具 解决方案 物联网 钉钉智能硬件

语音文件外呼API(SingleCallByVoice)---Python

更新时间:2017-06-22 11:31:48

语音文件外呼接口(SingleCallByVoice)

步骤 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 语音文件Code
OutId String 可选 abcdefgh 预留给调用方使用的ID, 最终会通过在回执消息中将此ID带回给调用方

出参列表

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

技术对接步骤

1:下载SDK工具包

SDK工具包中一共包含了2个目录:

aliyun-python-sdk-core:阿里云api调用的核心代码库,python版本。

alicom-python-sdk-dyvmsapi:流量直冲相关接口调用的客户端以及示例代码。

确定本机已经安装了python,版本要求:2.6.5 或以上版本。

进入aliyun-python-sdk-core 执行:python setup.py install。

运行demo示例。进入alicom-python-sdk- dyvmsapi目录执行:python demo.py 。

SDK&DEMO[下载地址]

2: 编写样例程序
  1. from aliyunsdkdyvmsapi.request.v20170525 import SingleCallByTtsRequest
  2. from aliyunsdkdyvmsapi.request.v20170525 import SingleCallByVoiceRequest
  3. from aliyunsdkcore.client import AcsClient
  4. import uuid
  5. """
  6. 语音业务调用接口示例,版本号:v20170525
  7. Created on 2017-06-12
  8. """
  9. #暂时不支持多region,默认配置杭州
  10. REGION = "cn-hangzhou"
  11. # ACCESS_KEY_ID/ACCESS_KEY_SECRET 根据实际申请的账号信息进行替换
  12. ACCESS_KEY_ID = "yourAccessKeyId"
  13. ACCESS_KEY_SECRET = "yourAccessKeySecret"
  14. #初始化AcsClient
  15. acs_client = AcsClient(ACCESS_KEY_ID, ACCESS_KEY_SECRET, REGION)
  16. def voice_call(business_id, called_number, called_show_number, voice_code):
  17. voiceRequest = SingleCallByVoiceRequest.SingleCallByVoiceRequest()
  18. # 语音通知的媒体文件编码,必填
  19. voiceRequest.set_VoiceCode(voice_code)
  20. # 设置业务请求流水号,必填。
  21. voiceRequest.set_OutId(business_id)
  22. # 语音通知的被叫号码,必填。
  23. voiceRequest.set_CalledNumber(called_number)
  24. # 语音通知显示号码,必填。
  25. voiceRequest.set_CalledShowNumber(called_show_number)
  26. voiceResponse = acs_client.do_action_with_exception(voiceRequest)
  27. return voiceResponse
  28. __business_id = uuid.uuid1()
  29. print __business_id
  30. print voice_call(__business_id, "13000000000", "95187", "241b-4649-9fff-04fbc5053bd2.wav")

错误码列表

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 触发流控
本文导读目录