コード例 #1
0
        /// <summary>
        /// 发起双呼
        /// </summary>
        public async Task <String> StartBack2BackCall(YaeherPhone yaeherPhone)
        {
            AliCCC               aliCCC               = new AliCCC();
            AliAccessToken       aliAccessToken       = new AliAccessToken();
            AliAccessTokenEntity aliAccessTokenEntity = new AliAccessTokenEntity();
            AccessTokenInfo      accessTokenInfo      = new AccessTokenInfo();
            HttpHelper           httpHelper           = new HttpHelper();

            #region 公共参数
            aliCCC.Format         = "JSON";
            aliCCC.Version        = "2017-07-05";
            aliCCC.Timestamp      = DateTime.UtcNow.ToUniversalTime().ToString("yyyy-MM-ddTHH:mm:ssZ");
            aliCCC.SignatureType  = "BEARERTOKEN";
            aliCCC.RegionId       = "cn-shanghai";
            aliCCC.SignatureNonce = new RandomCode().GenerateCheckCode(45);
            ///人工维护的token  10个月维护一次
            accessTokenInfo.refresh_token = "s6P4FNojcR0t9Yk6";
            var aliAccessTokens = await aliAccessToken.RefreshAccessToken(accessTokenInfo);

            aliCCC.BearerToken = aliAccessTokens.access_token;
            #endregion

            #region 双呼参数
            aliCCC.Action           = "StartBack2BackCall";
            aliCCC.InstanceId       = "33295c19-1afd-4926-ae46-cd5a28ade3e8";
            aliCCC.CallCenterNumber = yaeherPhone.CallCenterNumber;
            aliCCC.Caller           = yaeherPhone.Caller;
            aliCCC.Callee           = yaeherPhone.Callee;
            #endregion

            string        url           = "https://ccc.cn-shanghai.aliyuncs.com/?";
            StringBuilder stringBuilder = new StringBuilder();
            stringBuilder.Append(url);
            stringBuilder.Append("&Format=" + aliCCC.Format);
            stringBuilder.Append("&Version=" + aliCCC.Version);
            stringBuilder.Append("&Timestamp=" + aliCCC.Timestamp);
            stringBuilder.Append("&SignatureType=" + aliCCC.SignatureType);
            stringBuilder.Append("&RegionId=" + aliCCC.RegionId);
            stringBuilder.Append("&SignatureNonce=" + aliCCC.SignatureNonce);
            stringBuilder.Append("&BearerToken=" + aliCCC.BearerToken);
            stringBuilder.Append("&Action=" + aliCCC.Action);
            stringBuilder.Append("&InstanceId=" + aliCCC.InstanceId);
            //stringBuilder.Append("&WorkflowId=" + aliCCC.WorkflowId);
            stringBuilder.Append("&CallCenterNumber=" + aliCCC.CallCenterNumber);
            stringBuilder.Append("&Caller=" + aliCCC.Caller);
            stringBuilder.Append("&Callee=" + aliCCC.Callee);
            var AuthorizationCode = await httpHelper.PostResponseAsync(stringBuilder.ToString(), "");

            return(AuthorizationCode.ToString());
        }
コード例 #2
0
        /// <summary>
        /// 获取呼叫录音
        /// </summary>https://help.aliyun.com/document_detail/65296.html?spm=a2c4g.11186623.2.17.77faaaedlaOoCW
        /// <returns></returns>
        public async Task <String> ListCallDetailRecords()
        {
            AliCCC     aliCCC     = new AliCCC();
            HttpHelper httpHelper = new HttpHelper();

            #region 公共参数
            aliCCC.Format         = "JSON";
            aliCCC.Version        = "2017-07-05";
            aliCCC.Timestamp      = DateTime.UtcNow.ToUniversalTime().ToString("yyyy-MM-ddTHH:mm:ssZ");
            aliCCC.SignatureType  = "BEARERTOKEN";
            aliCCC.RegionId       = "cn-shanghai";
            aliCCC.SignatureNonce = new RandomCode().GenerateCheckCode(45);
            ///人工维护的token
            aliCCC.BearerToken = "eyJhbGciOiJSUzI1NiIsImsyaWQiOiJlNE92NnVOUDhsMEY2RmVUMVhvek5wb1NBcVZLblNGRyIsImtpZCI6IkpDOXd4enJocUowZ3RhQ0V0MlFMVWZldkVVSXdsdEZodWk0TzFiaDY3dFUifQ.bkJudEI3OUpCcmF2aWhuNmNmbE5lbVdzNW45cFBOSWdNellrQStPYmZ5cjZVOG9rMUJqUTZqLzl3RDdkbzhHQkorMzdwYmYwR1BCTDZHUGRjaVhMVUFkaFAzeVNYanBuK2N6UkN1SnRRc3FRMGJIVTF4cVVjUDVRNUJpK2JsSWxZdlowZ2VWSzYvS2pzcVNjWHJLSlVvWkNnWE0wWGJZZ0NCVm1BaEtaTHBPVnRjdnAvUmwwV01tSFFkWnVQa0lQWEp0UFlQV3Q3QThSd0RHVTdUY1BnYlhIVy9uTmc3RVJYNk9VOENrPQ.F6WZmD5Jp3rNB7ps-FlbwaE6uqZDuFQCZv9lRwzMs8YQVln_NqiMFdhX3Wxn8TvYmFaoh2oqKkme7VkCR6e4n6cIXCa-CfC1DW5H7EaDhsJx0lU_HR01ufRI2ZBQyAKzZ72nnZPqE-7pxi4PwmArLniFJIwvv_MDgA71gY3C5KWgnDGV14qG0BWG-K78UJIItJ3xnZYUvbl3zdcgdIZOj9zI-fU4Ibj4Ods3lXF9CVG42J6E8cK1QAs0efJ4i5HvnvEMna3wdczbPpdBUQ6_0-fEpVzic6TxnDO4KO_qMrZ3ch-GBd0CQMsU3SNvWIqZ4orhz37mN9GXD3IiqEyMig";
            #endregion

            #region 获取录音地址
            aliCCC.Action     = "ListCallDetailRecords";
            aliCCC.InstanceId = "33295c19-1afd-4926-ae46-cd5a28ade3e8";
            int    PageNumber    = 1;
            int    PageSize      = 100;
            string CallDetailurl = "https://ccc.cn-shanghai.aliyuncs.com/?";
            #region 公共参数
            StringBuilder stringBuilder = new StringBuilder();
            stringBuilder.Append(CallDetailurl);
            stringBuilder.Append("&Format=" + aliCCC.Format);
            stringBuilder.Append("&Version=" + aliCCC.Version);
            stringBuilder.Append("&Timestamp=" + aliCCC.Timestamp);
            stringBuilder.Append("&SignatureType=" + aliCCC.SignatureType);
            stringBuilder.Append("&RegionId=" + aliCCC.RegionId);
            stringBuilder.Append("&SignatureNonce=" + aliCCC.SignatureNonce);
            stringBuilder.Append("&BearerToken=" + aliCCC.BearerToken);
            stringBuilder.Append("&Action=" + aliCCC.Action);
            stringBuilder.Append("&InstanceId=" + aliCCC.InstanceId);
            #endregion
            stringBuilder.Append("&StartTime=" + TimeHelp.GetTimeStamp(DateTime.Parse("2018-10-10")));
            stringBuilder.Append("&StopTime=" + TimeHelp.GetTimeStamp(DateTime.Parse("2018-10-12")));
            stringBuilder.Append("&PageNumber=" + PageNumber);
            stringBuilder.Append("&PageSize=" + PageSize);
            var AuthorizationCode = await httpHelper.PostResponseAsync(stringBuilder.ToString(), "");

            var ListCallDetail = JsonHelper.FromJson <CallDetailRecordInfo>(AuthorizationCode);
            #endregion

            #region 获取下载地址
            List <ALICCListCallDetail> aLICCListCallDetailList = new List <ALICCListCallDetail>();
            if (ListCallDetail != null)
            {
                foreach (var CallDetail in ListCallDetail.CallDetailRecords.List.CallDetailRecord)
                {
                    ALICCListCallDetail aLICCListCallDetail = new ALICCListCallDetail();
                    aLICCListCallDetail.ContactId          = CallDetail.ContactId;
                    aLICCListCallDetail.StartTime          = CallDetail.StartTime;
                    aLICCListCallDetail.Duration           = CallDetail.Duration;
                    aLICCListCallDetail.ContactType        = CallDetail.ContactType;
                    aLICCListCallDetail.ContactDisposition = CallDetail.ContactDisposition;
                    aLICCListCallDetail.CallingNumber      = CallDetail.CallingNumber;
                    aLICCListCallDetail.CalledNumber       = CallDetail.CalledNumber;
                    aLICCListCallDetail.InstanceId         = CallDetail.InstanceId;
                    if (CallDetail.Recordings.Recording.Count > 0)
                    {
                        aLICCListCallDetail.FileName = CallDetail.Recordings.Recording[0].FileName;
                    }
                    aLICCListCallDetailList.Add(aLICCListCallDetail);
                }
            }
            StringBuilder FilestringBuilder = new StringBuilder();
            //重新获取随机值
            aliCCC.SignatureNonce = new RandomCode().GenerateCheckCode(45);
            #region
            FilestringBuilder.Append(CallDetailurl);
            FilestringBuilder.Append("&Format=" + aliCCC.Format);
            FilestringBuilder.Append("&Version=" + aliCCC.Version);
            FilestringBuilder.Append("&Timestamp=" + aliCCC.Timestamp);
            FilestringBuilder.Append("&SignatureType=" + aliCCC.SignatureType);
            FilestringBuilder.Append("&RegionId=" + aliCCC.RegionId);
            FilestringBuilder.Append("&SignatureNonce=" + aliCCC.SignatureNonce);
            FilestringBuilder.Append("&BearerToken=" + aliCCC.BearerToken);
            string DownloadAction = "DownloadRecording";
            FilestringBuilder.Append("&Action=" + DownloadAction);
            FilestringBuilder.Append("&InstanceId=" + aliCCC.InstanceId);
            #endregion
            if (aLICCListCallDetailList.Count > 0)
            {
                foreach (var aLICCListCallDetail in aLICCListCallDetailList)
                {
                    FilestringBuilder.Append("&FileName=" + aLICCListCallDetail.FileName);
                    var MediaDownloadParam = await httpHelper.PostResponseAsync(FilestringBuilder.ToString(), "");

                    var MediaDownload = JsonHelper.FromJson <MediaDownload>(MediaDownloadParam);
                    if (MediaDownload != null)
                    {
                        aLICCListCallDetail.SignatureUrl = MediaDownload.MediaDownloadParam.SignatureUrl;
                    }
                }
            }
            return(AuthorizationCode.ToString());

            #endregion
        }