Java:阿里云联络中心“双呼A”功能系统接入

1.背景

最近公司做的项目需要在线支持拨打虚拟电话给联系人,就对阿里云呼叫服务(云联络中心)进行调研测试。本文主要针对"双呼A"这一功能后端对接进行简单说明,有问题欢迎一起交流

2.准备工作

  • 阿里云账号(个人/企业)
  • 开通云联络中心->进入云联络中心管理控制台
  • 个人账号: 创建实例
  • 企业账号: 可先创建体验版演示实例

具体开通参考:如何开通和使用云联络中心_云联络中心(Cloud Contact Center)-阿里云帮助中心

3.双呼A接口

双呼和传统的双方通话不同,主叫并不直接呼叫对方,而是通过一个背靠背代理(Back to Back Agent),背靠背代理首先呼叫主叫方,接通后,再呼叫被叫方,然后把二者拉进一个会场。在这种方式下,由于每个呼叫的所有消息流经背靠背代理,因此服务提供商可以据此提供增值服务,比如计时、录音、隐藏真实号码等等。

4.JAR包

复制代码
<!-- AliYun 阿里云联络中心-->
<dependency>
    <groupId>cn.hutool</groupId>
    <artifactId>hutool-all</artifactId>
    <version>5.8.21</version>
</dependency>
<dependency>
    <groupId>com.aliyun</groupId>
    <artifactId>ccc20200701</artifactId>
    <version>2.27.1</version>
</dependency>

5.代码

5.1 对接接口

java 复制代码
package com.service;

import com.alibaba.fastjson.JSONObject;
import com.aliyun.tea.TeaModel;

import javax.servlet.http.HttpServletRequest;

public class AliYunCallService extends CommonService{
    private static final String ALIYUN_ACCESS_KEY = Config.get("aliyun.access.key");
    private static final String ALIYUN_ACCESS_SECRET = Config.get("aliyun.access.secret");
    private static final String ALIYUN_CALL_INSTANCE_ID = Config.get("aliyun.call.instance.id");
    private static final String ALIYUN_CALL_END_POINT = Config.get("aliyun.call.end.point");


    private static String instanceId ;

    private HttpServletRequest request;

    private static com.aliyun.ccc20200701.Client aliYunCallClient;

    static {
        init();
        instanceId = ALIYUN_CALL_INSTANCE_ID;
    }

    public String getInstance() {
        return instanceId;
    }

    public static void init(){
        try{
            com.aliyun.teaopenapi.models.Config config = new com.aliyun.teaopenapi.models.Config()
                    .setAccessKeyId(ALIYUN_ACCESS_KEY)
                    .setAccessKeySecret(ALIYUN_ACCESS_SECRET);
            config.endpoint = ALIYUN_CALL_END_POINT;
            aliYunCallClient = new com.aliyun.ccc20200701.Client(config);
        }catch (Exception e){
            e.printStackTrace();
        }
    }

    public TeaModel startBack2BackCall (String caller,String callee,String broker) throws Exception {
        com.aliyun.ccc20200701.models.StartBack2BackCallRequest StartBack2BackCallRequest = new com.aliyun.ccc20200701.models.StartBack2BackCallRequest()
                .setInstanceId(instanceId)
                .setCaller(caller)
                .setCallee(callee)
                .setBroker(broker)
                .setTimeoutSeconds(60);
        com.aliyun.teautil.models.RuntimeOptions runtime = new com.aliyun.teautil.models.RuntimeOptions();
        return aliYunCallClient.startBack2BackCallWithOptions(StartBack2BackCallRequest, runtime).getBody();
    }

    public TeaModel getCallDetailRecord (String contactId) throws Exception {
        com.aliyun.ccc20200701.models.GetCallDetailRecordRequest request = new com.aliyun.ccc20200701.models.GetCallDetailRecordRequest()
                .setInstanceId(instanceId)
                .setContactId(contactId);
        return aliYunCallClient.getCallDetailRecord(request).getBody();
    }
   

}

5.2 测试代码

java 复制代码
    @Test
    public void call() {
        AliYunCallService aliYunCallService = new AliYunCallService();
        try {
       System.out.println("StartBack2BackCall"+aliYunCallService.startBack2BackCall("131********","151********","0102157****").toMap());  
      System.out.println("GetCallDetailRecord"+aliYunCallService.getCallDetailRecord("job-57********").toMap());
        } catch (Exception e) {
            throw new RuntimeException(e);
        }
    }
相关推荐
Serverless社区20 小时前
函数计算的云上计费演进:从请求驱动到价值驱动,助力企业走向 AI 时代
阿里云·云原生·serverless
容器魔方2 天前
Bloomberg 正式加入 Karmada 用户组!
云原生·容器·云计算
AKAMAI3 天前
Sport Network 凭借 Akamai 实现卓越成就
人工智能·云原生·云计算
10岁的博客3 天前
《云计算如何驱动企业数字化转型:关键技术与实践案例》
云计算
m0_694845574 天前
教你使用服务器如何搭建数据库
linux·运维·服务器·数据库·云计算
shinelord明4 天前
【数据行业发展】可信数据空间~数据价值的新型基础设施
大数据·架构·云计算·创业创新
XINVRY-FPGA4 天前
XCKU15P-2FFVA1760I AMD 赛灵思 Xilinx Kintex UltraScale+ FPGA
arm开发·嵌入式硬件·阿里云·fpga开发·云计算·硬件工程·fpga
王道长服务器 | 亚马逊云4 天前
一个迁移案例:从传统 IDC 到 AWS 的真实对比
java·spring boot·git·云计算·github·dubbo·aws
世间小小鱼4 天前
【爬坑指南】亚马逊文件中心 AWS S3 预签名URL 前端直传
前端·云计算·aws
TG_yunshuguoji4 天前
亚马逊云代理商:AWS亚马逊云的独特优势与实用价值
服务器·云计算·aws