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);
        }
    }
相关推荐
亿信华辰软件1 小时前
构建智慧数据中台,赋能饮料集团全链路数字化转型新引擎
大数据·人工智能·云计算
曹天骄5 小时前
Cloudflare Worker 关联域名访问后出现301 / 308
运维·云计算
我爱娃哈哈6 小时前
SpringBoot + MinIO + 阿里云 OSS:文件上传下载、分片断点续传全链路方案
spring boot·后端·阿里云
一碗甜汤ᐝ7 小时前
腾讯云部署bisheng毕昇
语言模型·云计算·腾讯云
久绊A8 小时前
GPU 集群资源利用率过高?从异常 ECS 实例排查到清理全实操
云计算·云平台
Elieal9 小时前
基于 Spring MVC + 阿里云通义千问的 AI 助手开发
spring·阿里云·mvc
翼龙云_cloud9 小时前
阿里云渠道商:弹性伸缩爬虫实战 智能应对流量高峰的 3 步方案
爬虫·阿里云·云计算
China_Yanhy10 小时前
AWS KMS 深度配置指南:原理、场景与选型策略
云计算·aws
翼龙云_cloud10 小时前
亚马逊云渠道商:如何在AWS控制台中创建每月成本预算?
服务器·云计算·aws
2401_8658548811 小时前
腾讯云云手机的质量如何
智能手机·云计算·腾讯云