Exemplo n.º 1
0
        /// <summary>
        /// 同步中间号
        /// </summary>
        /// <param name="agentNumber"></param>
        /// <param name="opt">0 新增,1 修改,2 删除</param>
        private bool SyncAgentNumber(Model.Entity.AgentNumber agentNumber, String midNum, int opt)
        {
            try
            {
                var request = new RestRequest(Method.POST);
                request.AddParameter("SERVICENAME", "setIvrType");
                request.AddParameter("OPERATE", opt);
                request.AddParameter("STREAMNUMBER", Guid.NewGuid().ToString());
                CloudPlatformInfo cpi   = GetCloudPlatformInfo(agentNumber.Platform);
                string            time  = DateTime.Now.ToString("yyyyMMddHHmmss");
                string            token = MD5Helper.MD5Encrypt(cpi.Key + time, null);
                request.AddParameter("TOKEN", token.ToLower());
                request.AddParameter("VCCID", int.Parse(cpi.VccId));
                request.AddParameter("MIDDLEINNUM", midNum);
                request.AddParameter("TYPE", 1);
                request.AddParameter("SOURCEDATA", 11);

                var client = new RestClient(cpi.UrlNumberAnalysis + "?token=" + token.ToLower());
                client.AddHandler("application/json", new CommAnalysisResponseDeserializer());
                Logger.Debug("开始同步中间号,内容为:" + request.Parameters.Select(x => x.Name + ":" + x.Value).ToList());
                var response = client.Execute <CommAnalysisResponse>(request);
                return(ProcessResponse(agentNumber, opt, response));

//                client.ExecuteAsync<CommAnalysisResponse>(request, response => { ProcessResponse(agentNumber, opt, response); });
//                return true;
            }
            catch (Exception e)
            {
                Logger.Error("同步中间号出错:", e);
                return(false);
            }
        }
Exemplo n.º 2
0
        public CloudPlatformInfo GetCloudPlatformInfo(int platform)
        {
            CloudPlatformInfo cpi = new CloudPlatformInfo();

            cpi.VccId             = AppConfig.GetValue(Constants.CLOUDPLATFORM_G_VCCID);
            cpi.Key               = AppConfig.GetValue(Constants.CLOUDPLATFORM_G_KEY);
            cpi.UrlDial           = AppConfig.GetValue(Constants.CLOUDPLATFORM_G_URL_DIAL);
            cpi.UrlNumberAnalysis = AppConfig.GetValue(Constants.CLOUDPLATFORM_G_URL_NUMBER_ANALYSIS);
            return(cpi);
        }
Exemplo n.º 3
0
        private bool SyncAgentNumber(Model.Entity.DeviceContact contact, Model.Entity.Device device, string callerNum, string calledNum, string callInMidNum, string callOutMidNum, int opt)
        {
            try
            {
                SetBindNum sbn = new SetBindNum();
                sbn.header.SERVICENAME = "setBindNum";
                sbn.header.OPERATE     = opt;
                CloudPlatformInfo cpi   = AgentNumber.GetInstance().GetCloudPlatformInfo(2);
                string            time  = DateTime.Now.ToString("yyyyMMddHHmmss");
                string            token = MD5Helper.MD5Encrypt(cpi.Key + time, null);
                sbn.header.TOKEN = token.ToLower();
                sbn.header.VCCID = int.Parse(cpi.VccId);

                sbn.body.TYPE         = 1;
                sbn.body.STREAMNUMBER = Guid.NewGuid().ToString();
                sbn.body.MESSAGEID    = DateTime.Now.ToString("yyyyMMddHHmmssfff");
                sbn.body.WAYBILLNUM   = "";
                sbn.body.CALLERNUM    = callerNum;
                sbn.body.MIDDLEINNUM  = callInMidNum;
                sbn.body.MIDDLEOUTNUM = callOutMidNum;
                sbn.body.CALLEDNUM    = calledNum;
                sbn.body.MAXDURATION  = 3600;
                sbn.body.ISRECORD     = 0;
                sbn.body.STATE        = 0;
                sbn.body.VALIDTIME    = "";

                var client = new RestClient(cpi.UrlNumberAnalysis);
                client.AddHandler("application/json", new CommAnalysisResponseDeserializer());
                var request = new RestRequest(Method.POST);
                request.AddJsonBody(sbn);
                request.Timeout          = 5000;
                request.ReadWriteTimeout = 5000;
                JsonSerializer jsonSerializer = new JsonSerializer {
                    ContentType = "application/json"
                };
                request.JsonSerializer = jsonSerializer;
                Logger.Error("开始同步通讯录绑定关系,内容为:" + jsonSerializer.Serialize(sbn));
                var response = client.Execute <CommAnalysisResponse>(request);
                return(ProcessResponse(contact, opt, response));
            }
            catch (Exception e)
            {
                Logger.Error("同步通讯录绑定关系出错:", e);
                return(false);
            }
        }