本文为您介绍如何调用ClickToDial接口发起语音双呼。
功能介绍
语音双呼是指通过语音服务分配的号码分别向主叫、被叫发起呼叫,双方接通后建立起正常通话,通话双方显示的号码均为语音服务平台号码。常用于企业办公电话等,例如钉钉办公电话。通过调用ClickToDial接口可隐藏通话双方真实号码,同时平台可留存双方通话记录。
前提条件
购买语音号码。具体操作,请参见购买号码。
创建文本转语音模板或上传语音文件。具体操作,请参见创建文本转语音模板或通过控制台上传语音文件。
获取AccessKey信息。具体操作,请参见获取AccessKey。
完成本地SDK环境搭建,更多详情,请参见安装SDK。
代码示例
本示例展示了调用ClickToDial接口发起语音双呼。接口详情,请参见ClickToDial。
如果您需要进行调试,推荐使用阿里云OpenAPI 开发者门户。
说明
调用接口前,需配置环境变量,通过环境变量读取访问凭证。AccessKey ID和AccessKey Secret的环境变量名:VMS_AK_ENV 、VMS_SK_ENV。配置详情请参见配置访问凭证。
// This file is auto-generated, don't edit it. Thanks.
package com.aliyun:dyvmsapi20170525:*;
import com.aliyun.tea.*;
public class Client {
public static com.aliyun.dyvmsapi20170525.Client createClient(String accessKeyId, String accessKeySecret, String regionId) throws Exception {
com.aliyun.tearpc.models.Config config = new com.aliyun.tearpc.models.Config();
config.accessKeyId = accessKeyId;
config.accessKeySecret = accessKeySecret;
config.regionId = regionId;
}
public static void main(String[] args) throws Exception {
// 阿里云账号AccessKey拥有所有API的访问权限,建议您使用RAM用户进行API访问或日常运维。
// 强烈建议不要把AccessKey ID和AccessKey Secret保存到工程代码里,否则可能导致AccessKey泄露,威胁您账号下所有资源的安全。
// 本示例以将AccessKey ID和AccessKey Secret保存在环境变量为例说明。您也可以根据业务需要,保存到配置文件里。
com.aliyun.dyvmsapi20170525.Client client = Client.createClient(System.getenv("VMS_AK_ENV"), System.getenv("VMS_SK_ENV"), "regionId");
com.aliyun.dyvmsapi20170525.models.ClickToDialRequest request = com.aliyun.dyvmsapi20170525.models.ClickToDialRequest.build(TeaConverter.buildMap(
new TeaPair("callerShowNumber", "123****"),
new TeaPair("callerNumber", "1570000****"),
new TeaPair("calledShowNumber", "12****"),
new TeaPair("calledNumber", "1380000****")
));
com.aliyun.dyvmsapi20170525.models.ClickToDialResponse response = client.clickToDial(request);
}
}
# This file is auto-generated, don't edit it. Thanks.
from alibabacloud_dyvmsapi20170525.client import Client as DyvmsapiClientClient
from alibabacloud_tea_rpc import models as _rpc_models
from alibabacloud_dyvmsapi20170525 import models as dyvmsapi_client_models
import os
class Client:
@staticmethod
def create_client(access_key_id, access_key_secret, region_id):
"""
使用AK&SK初始化账号Client
"""
config = _rpc_models.Config(
)
config.access_key_id = access_key_id
config.access_key_secret = access_key_secret
config.region_id = region_id
@staticmethod
def main(args):
# 阿里云账号AccessKey拥有所有API的访问权限,建议您使用RAM用户进行API访问或日常运维。
# 强烈建议不要把AccessKey ID和AccessKey Secret保存到工程代码里,否则可能导致AccessKey泄露,威胁您账号下所有资源的安全。
# 本示例以将AccessKey ID和AccessKey Secret保存在环境变量为例说明。您也可以根据业务需要,保存到配置文件里。
client = create_client(os.getenv("VMS_AK_ENV"), os.getenv("VMS_SK_ENV"), "regionId")
request = dyvmsapi_client_models.ClickToDialRequest(
caller_show_number="123****",
caller_number="1570000****",
called_show_number="12****",
called_number="1380000****"
)
response = client.click_to_dial(request)
def __init__(self):
pass
// This file is auto-generated, don't edit it. Thanks.
package client
import (
"os"
dyvmsapiclient "github.com/alibabacloud-go/dyvmsapi-20170525/client"
rpc "github.com/alibabacloud-go/tea-rpc/client"
"github.com/alibabacloud-go/tea/tea"
)
// 使用AK&SK初始化账号Client
func CreateClient (accessKeyId *string, accessKeySecret *string, regionId *string) (_result *dyvmsapiclient.Client) {
config := &rpc.Config{}
config.AccessKeyId = accessKeyId
config.AccessKeySecret = accessKeySecret
config.RegionId = regionId
return _result
}
func Main (args []*string) (_err error) {
// 阿里云账号AccessKey拥有所有API的访问权限,建议您使用RAM用户进行API访问或日常运维。
// 强烈建议不要把AccessKey ID和AccessKey Secret保存到工程代码里,否则可能导致AccessKey泄露,威胁您账号下所有资源的安全。
// 本示例以将AccessKey ID和AccessKey Secret保存在环境变量为例说明。您也可以根据业务需要,保存到配置文件里。
client := CreateClient(tea.String(os.Getenv("VMS_AK_ENV")), tea.String(os.Getenv("VMS_SK_ENV")), tea.String("regionId"))
request := &dyvmsapiclient.ClickToDialRequest{
CallerShowNumber: tea.String("123****"),
CallerNumber: tea.String("1570000****"),
CalledShowNumber: tea.String("12****"),
CalledNumber: tea.String("1580000****"),
}
response, _err := client.ClickToDial(request)
if _err != nil {
return _err
}
return _err
}
<?php
// This file is auto-generated, don't edit it. Thanks.
namespace alibabacloud/dyvmsapi-20170525:^0\1\0;
use AlibabaCloud\SDK\Dyvmsapi\V20170525\Dyvmsapi;
use AlibabaCloud\Tea\Rpc\Rpc\Config;
use AlibabaCloud\SDK\Dyvmsapi\V20170525\Models\ClickToDialRequest;
use AlibabaCloud\SDK\Dyvmsapi\V20170525\Models\ClickToDialResponse;
class Client {
/**
* 使用AK&SK初始化账号Client
* @param string $accessKeyId
* @param string $accessKeySecret
* @param string $regionId
* @return Dyvmsapi
*/
public static function createClient($accessKeyId, $accessKeySecret, $regionId){
$config = new Config([]);
$config->accessKeyId = $accessKeyId;
$config->accessKeySecret = $accessKeySecret;
$config->regionId = $regionId;
}
/**
* @param array $args
* @return void
*/
public static function main($args){
// 阿里云账号AccessKey拥有所有API的访问权限,建议您使用RAM用户进行API访问或日常运维。
// 强烈建议不要把AccessKey ID和AccessKey Secret保存到工程代码里,否则可能导致AccessKey泄露,威胁您账号下所有资源的安全。
// 本示例以将AccessKey ID和AccessKey Secret保存在环境变量为例说明。您也可以根据业务需要,保存到配置文件里。
$client = self::createClient(getenv("VMS_AK_ENV"), getenv("VMS_SK_ENV"), "regionId");
$request = new ClickToDialRequest([
"callerShowNumber" => "123****",
"callerNumber" => "1570000****",
"calledShowNumber" => "12****",
"calledNumber" => "1380000****"
]);
$response = $client->clickToDial($request);
}
}
// This file is auto-generated, don't edit it. Thanks.
using System;
using System.Collections;
using System.Collections.Generic;
using System.IO;
using System.Threading.Tasks;
using Tea;
using Tea.Utils;
namespace AlibabaCloud.SDK.Dyvmsapi20170525:*
{
public class Client
{
// 使用AK&SK初始化账号Client
public static AlibabaCloud.SDK.Dyvmsapi20170525.Client CreateClient(string accessKeyId, string accessKeySecret, string regionId)
{
AlibabaCloud.RPCClient.Models.Config config = new AlibabaCloud.RPCClient.Models.Config();
config.AccessKeyId = accessKeyId;
config.AccessKeySecret = accessKeySecret;
config.RegionId = regionId;
}
public static void Main(string[] args)
{
// 阿里云账号AccessKey拥有所有API的访问权限,建议您使用RAM用户进行API访问或日常运维。
// 强烈建议不要把AccessKey ID和AccessKey Secret保存到工程代码里,否则可能导致AccessKey泄露,威胁您账号下所有资源的安全。
// 本示例以将AccessKey ID和AccessKey Secret保存在环境变量为例说明。您也可以根据业务需要,保存到配置文件里。
AlibabaCloud.SDK.Dyvmsapi20170525.Client client = Client.CreateClient(Environment.GetEnvironmentVariable("VMS_AK_ENV"), Environment.GetEnvironmentVariable("VMS_SK_ENV"), "regionId");
AlibabaCloud.SDK.Dyvmsapi20170525.Models.ClickToDialRequest request = new AlibabaCloud.SDK.Dyvmsapi20170525.Models.ClickToDialRequest
{
CallerShowNumber = "123****",
CallerNumber = "1570000****",
CalledShowNumber = "12****",
CalledNumber = "1380000****",
};
AlibabaCloud.SDK.Dyvmsapi20170525.Models.ClickToDialResponse response = client.ClickToDial(request);
}
}
}
// This file is auto-generated, don't edit it
import DyvmsapiClient, * as $DyvmsapiClient from '@alicloud/dyvmsapi20170525';
import RPC, * as $RPC from '@alicloud/rpc-client';
import * as $tea from '@alicloud/tea-typescript';
export default class Client {
// 使用AK&SK初始化账号Client
static createClient(accessKeyId: string, accessKeySecret: string, regionId: string): DyvmsapiClient {
let config = new $RPC.Config({ });
config.accessKeyId = accessKeyId;
config.accessKeySecret = accessKeySecret;
config.regionId = regionId;
}
static async main(args: string[]): Promise<void> {
// 阿里云账号AccessKey拥有所有API的访问权限,建议您使用RAM用户进行API访问或日常运维。
// 强烈建议不要把AccessKey ID和AccessKey Secret保存到工程代码里,否则可能导致AccessKey泄露,威胁您账号下所有资源的安全。
// 本示例以将AccessKey ID和AccessKey Secret保存在环境变量为例说明。您也可以根据业务需要,保存到配置文件里。
let client = Client.createClient(process.env.VMS_AK_ENV, process.env.VMS_SK_ENV, "regionId");
let request = new $DyvmsapiClient.ClickToDialRequest({
callerShowNumber: "123****",
callerNumber: "1570000****",
calledShowNumber: "12****",
calledNumber: "1380000****",
});
let response = await client.clickToDial(request);
}
}
执行结果
正常返回结果如下所示:
{
"Message": "OK",
"RequestId": "4ABF7FB6-449C-4624-8CC6-9AAE3684****",
"Code": "OK",
"CallId": "1187209624900105518****"
}
调用SDK返回错误码,详情请参见错误码。
反馈
- 本页导读 (1)
文档反馈