阿里电话服务

maven依赖包(jdk1.8以上)

<!-- 阿里云 SDK -->
<dependency>
    <groupId>com.aliyun</groupId>
    <artifactId>aliyun-java-sdk-core</artifactId>
    <version>4.4.6</version>
</dependency>
<dependency>
    <groupId>com.aliyun</groupId>
    <artifactId>aliyun-java-sdk-dyvmsapi</artifactId>
    <version>1.2.2</version>
</dependency>

import com.alibaba.fastjson.JSONObject;
import com.aliyuncs.DefaultAcsClient;
import com.aliyuncs.IAcsClient;
import com.aliyuncs.dyvmsapi.model.v20170525.SingleCallByTtsRequest;
import com.aliyuncs.dyvmsapi.model.v20170525.SingleCallByTtsResponse;
import com.aliyuncs.exceptions.ClientException;
import com.aliyuncs.exceptions.ServerException;
import com.aliyuncs.profile.DefaultProfile;
import com.aliyuncs.profile.IClientProfile;
import lombok.extern.slf4j.Slf4j;

@Slf4j
public class SingleCallByTts {

    //异常产生时间、异常标题
    /*
    * date   电话时间
    * eventTitle   电话标题
    * calledNumber   被呼叫的电话号码
    * playTimes      语音重听次数
    * volume         语音音量
    * 
    * */
    public static boolean callByTts(String date, Object eventTitle, String calledNumber, int playTimes, int volume) throws ClientException {
        boolean callResult = false;
        //云通信产品-语音API服务产品名称(产品名固定,无需修改)
        final String product = "Dyvmsapi";
        //产品域名(接口地址固定,无需修改)
        final String domain = "dyvmsapi.aliyuncs.com";
        //AK信息
        final String accessKeyId = "LTAIqCyCA3iGSyYE"; // RAM账号的AccessKey ID
        final String accessKeySecret = "8NJHcqUukg0mMgTz7iCBpPLUdhyvPH"; // RAM账号AccessKey Secret
        try {
            //初始化acsClient 暂时不支持多region
            IClientProfile profile = DefaultProfile.getProfile("cn-hangzhou", accessKeyId, accessKeySecret);
            DefaultProfile.addEndpoint("cn-hangzhou", "cn-hangzhou", product, domain);
            IAcsClient client = new DefaultAcsClient(profile);

            // 创建API请求并设置参数
            SingleCallByTtsRequest request = new SingleCallByTtsRequest();
            request.setRegionId("cn-hangzhou");
            //必填-被叫显号
            request.setCalledShowNumber("057156028367");
            //必填-被叫号码
            request.setCalledNumber(calledNumber);
//            request.setCalledNumber("155xxxxxxxx");
            //必填-TTS文本模板Code
            request.setTtsCode("TTS_178451118");
            //替换TTS模板中变量的JSON串
            JSONObject jo = new JSONObject();
//        LocalDateTime now = LocalDateTime.now();
//        DateTimeFormatter pattern = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
//        String format = now.format(pattern);
            jo.put("name", eventTitle);
            jo.put("Date", date);
            request.setTtsParam(JSONObject.toJSONString(jo));
//        request.setTtsParam("{\"name\":\"xxxxx\",\"Date\":\"2019-11-24 15:01:00\"}");
            //播放次数(最多3次)
            request.setPlayTimes(playTimes);
            //音量0--200
            request.setVolume(volume);
//            request.setSpeed(5);
            //可选-外部扩展字段,此ID将在回执消息中带回给调用方,预留给调用方使用的ID, 最终会通过在回执消息中将此ID带回给调用方
            request.setOutId("abcdefgh");

            SingleCallByTtsResponse response = client.getAcsResponse(request);
            if (response.getCode() != null && response.getCode().equals("OK")) {
                //请求成功
                log.info("语音文本外呼---------------成功");
                callResult = true;
            } else {
                //请求成功
                log.info("语音文本外呼---------------失败");
            }
            //请求ID
            log.info("RequestId=" + response.getRequestId());
            //状态码-返回OK代表请求成功,其他错误码详见错误码列表
            log.info("Code=" + response.getCode());
            //状态码的描述
            log.info("Message=" + response.getMessage());
            //调用的回执ID
            log.info("CallId=" + response.getCallId());
            /**
             * 错误码列表
             * 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.TTS_TEMPLATE_ILLEGAL TTS模板不合法
             * isv.DISPLAY_NUMBER_ILLEGAL   号显不合法
             * isv.TEMPLATE_MISSING_PARAMETERS  文本转语音模板参数缺失
             * isv.BLACK_KEY_CONTROL_LIMIT  模板变量中存在黑名单关键字
             * isv.INVALID_PARAMETERS   参数异常
             * isv.PARAM_NOT_SUPPORT_URL    变量不支持url参数
             * isp.SYSTEM_ERROR 系统错误
             * isv.MOBILE_NUMBER_ILLEGAL    号码格式非法
             * isv.BUSINESS_LIMIT_CONTROL   触发流控
             * isv.PARAM_LENGTH_LIMIT   参数长度受限
             */
        } catch (ServerException e) {
            e.printStackTrace();
            log.error(e.getMessage());
        } catch (ClientException e) {
            log.error("ErrCode:" + e.getErrCode());
            log.error("ErrMsg:" + e.getErrMsg());
            log.error("RequestId:" + e.getRequestId());
        }
        return callResult;
    }


    public static void main(String[] args) throws ClientException {
        callByTts("2024-12-04 11:30:30", "XXXXXXXX", "18888888888", 2, 10);
    }
}
 

需要注册一个阿里账户,获取 accessKeyId和accessKeySecret。

还需要获取一个TTS语音模板

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值