protected void Page_Load(object sender, EventArgs e)
 {
     if (!IsPostBack)
     {
         JsonData = CommonCallJsonData.GetCommonCallJsonData(JsonStr);
     }
 }
        /// 保存短信信息
        /// <summary>
        /// 保存短信信息
        /// </summary>
        /// <param name="msg"></param>
        /// <param name="data"></param>
        /// <returns></returns>
        private bool SMSSaveEvent(out string msg, out string data)
        {
            msg  = "";
            data = "''";
            try
            {
                int loginuserid             = BLL.Util.GetLoginUserID();
                CommonCallJsonData jsondata = CommonCallJsonData.GetCommonCallJsonData(JsonData);
                if (jsondata == null)
                {
                    msg = "参数解析错误!";
                    return(false);
                }
                LogForWebForCall("短信", "保存短信信息:jsondata" + JsonData);
                LogForWebForCall("短信", "页面数据:" + jsondata.PageData.ToString());
                LogForWebForCall("短信", "短信数据:" + jsondata.SMSData.ToString());

                int bgid = jsondata.PageData.BGID_Out;
                int scid = jsondata.PageData.SCID_Out;
                if (bgid <= 0)
                {
                    //当前分组
                    bgid = BLL.SurveyCategory.Instance.GetSelfBGIDByUserID(loginuserid);
                }
                if (scid <= 0)
                {
                    //当前分类
                    scid = BLL.SurveyCategory.Instance.GetSelfSCIDByUserID(loginuserid);
                }
                LogForWebForCall("短信", "分组分类=" + bgid + "-" + scid);

                //更新CustBasicInfo 3表
                jsondata.CBID = SaveCustBasicInfo(jsondata.SMSData.Phone_Out, jsondata.PageData, loginuserid);
                LogForWebForCall("短信", "保存个人用户信息:电话=" + jsondata.SMSData.Phone_Out + ";CBID=" + jsondata.CBID);

                //发送短信
                int sendstatus = SendSMS(jsondata, loginuserid, out msg);
                //新增或者更新SMSSendHistory表
                SaveSMSSendHistory(jsondata, loginuserid, bgid, sendstatus, out data);
                LogForWebForCall("短信", "发送短信:电话=" + jsondata.SMSData.Phone_Out + ";内容=" + jsondata.SMSData.Content_Out.Length + ";任务ID=" + jsondata.PageData.TaskID_Out);

                //更新SendSMSLog表
                SaveSendSMSLog(jsondata, loginuserid);
                LogForWebForCall("短信", "更新SendSMSLog表:电话=" + jsondata.SMSData.Phone_Out);

                //如果任务存在,添加访问记录
                if (jsondata.PageData.TaskID_Out != "")
                {
                    SaveCustPhoneVisitBusiness(jsondata.PageData, jsondata.SMSData.Phone_Out, (int)CallSourceEnum.C05_短信, -1, loginuserid);
                    LogForWebForCall("短信", "添加访问记录:电话=" + jsondata.SMSData.Phone_Out + ";任务ID=" + jsondata.PageData.TaskID_Out);
                }
                LogForWebForCall("短信", "END\r\n");
                return(sendstatus == 0);
            }
            catch (Exception ex)
            {
                msg = ex.Message;
                return(false);
            }
        }
        /// 保存话务信息
        /// <summary>
        /// 保存话务信息
        /// </summary>
        /// <param name="msg"></param>
        /// <param name="data"></param>
        /// <returns></returns>
        private bool CallSaveEvent(out string msg, out string data)
        {
            msg  = "";
            data = "''";
            try
            {
                int loginuserid             = BLL.Util.GetLoginUserID();
                CommonCallJsonData jsondata = CommonCallJsonData.GetCommonCallJsonData(JsonData);
                if (jsondata == null)
                {
                    msg = "参数解析错误!";
                    return(false);
                }
                LogForWebForCall("电话", "保存话务信息:jsondata" + JsonData);
                LogForWebForCall("电话", "页面数据:" + jsondata.PageData.ToString());
                LogForWebForCall("电话", "话务数据:" + jsondata.CallData.ToString());

                int bgid = jsondata.PageData.BGID_Out;
                int scid = jsondata.PageData.SCID_Out;
                if (bgid <= 0)
                {
                    //当前分组
                    bgid = BLL.SurveyCategory.Instance.GetSelfBGIDByUserID(loginuserid);
                }
                if (scid <= 0)
                {
                    //当前分类
                    scid = BLL.SurveyCategory.Instance.GetSelfSCIDByUserID(loginuserid);
                }
                LogForWebForCall("电话", "分组分类=" + bgid + "-" + scid);

                //更新CustBasicInfo 3表
                jsondata.CBID = SaveCustBasicInfo(jsondata.CallData.Phone_Out, jsondata.PageData, loginuserid);
                LogForWebForCall("电话", "保存个人用户信息:电话=" + jsondata.CallData.Phone_Out + ";CBID=" + jsondata.CBID);

                //新增或者更新CallRecord_ORIG_Business表
                BLL.CallRecord_ORIG_Business.Instance.UpdateBusinessDataByCallID(jsondata.CallData.CallID_Out, jsondata.PageData.TaskID_Out, bgid, scid, loginuserid, ref msg);
                LogForWebForCall("电话", "新增或者更新CallRecord_ORIG_Business表:话务ID=" + jsondata.CallData.CallID_Out + ";任务ID=" + jsondata.PageData.TaskID_Out);

                //如果接通:新增或者更新CallRecordInfo表
                if (jsondata.CallData.IsEstablished_Out)
                {
                    SaveCallRecordInfo(jsondata, loginuserid, bgid, scid);
                    LogForWebForCall("电话", "接通-新增或者更新CallRecordInfo表:话务ID=" + jsondata.CallData.CallID_Out + ";任务ID=" + jsondata.PageData.TaskID_Out);
                }
                //如果任务存在,添加访问记录
                if (jsondata.PageData.TaskID_Out != "")
                {
                    SaveCustPhoneVisitBusiness(jsondata.PageData, jsondata.CallData.Phone_Out, jsondata.CallData.CallType_Out, jsondata.CallData.CallID_Out, loginuserid);
                    LogForWebForCall("电话", "添加访问记录:电话=" + jsondata.CallData.Phone_Out + ";任务ID=" + jsondata.PageData.TaskID_Out);
                }
                LogForWebForCall("电话", "END\r\n");
                return(true);
            }
            catch (Exception ex)
            {
                msg = ex.Message;
                return(false);
            }
        }
 /// 保存数据表
 /// <summary>
 /// 保存数据表
 /// </summary>
 /// <param name="jsondata"></param>
 /// <param name="loginuserid"></param>
 private void SaveSendSMSLog(CommonCallJsonData jsondata, int loginuserid)
 {
     Entities.SendSMSLog smsLogModel = new Entities.SendSMSLog();
     smsLogModel.TemplateID   = jsondata.SMSData.TemplateID_Out;
     smsLogModel.CustID       = jsondata.CBID;
     smsLogModel.Mobile       = jsondata.SMSData.Phone_Out;
     smsLogModel.SendTime     = DateTime.Now;
     smsLogModel.SendContent  = jsondata.SMSData.Content_Out;
     smsLogModel.CreateUserID = loginuserid;
     BLL.SendSMSLog.Instance.Insert(smsLogModel);
 }
        /// 发送短信
        /// <summary>
        /// 发送短信
        /// </summary>
        /// <param name="jsondata"></param>
        /// <param name="loginuserid"></param>
        private int SendSMS(CommonCallJsonData jsondata, int loginuserid, out string msg)
        {
            msg = "";
            string md5   = SMSServiceHelper.Instance.MixMd5(jsondata.SMSData.Phone_Out, jsondata.SMSData.Content_Out);
            int    msgid = SMSServiceHelper.Instance.SendMsgImmediately(jsondata.SMSData.Phone_Out, jsondata.SMSData.Content_Out, DateTime.Now.AddHours(1), md5);

            if (msgid > 0)
            {
                return(0);
            }
            else
            {
                msg = BLL.Util.GetEnumOptText(typeof(Entities.SendSMSInfo), msgid);
                return(-1);
            }
        }
 /// 保存用户信息
 /// <summary>
 /// 保存用户信息
 /// </summary>
 /// <param name="msg"></param>
 /// <param name="data"></param>
 /// <returns></returns>
 private bool InsertBasicInfo(out string msg, out string data)
 {
     msg  = "";
     data = "''";
     try
     {
         int loginuserid             = BLL.Util.GetLoginUserID();
         CommonCallJsonData jsondata = CommonCallJsonData.GetCommonCallJsonData(JsonData);
         data = "'" + SaveCustBasicInfo(Phone, jsondata.PageData, loginuserid) + "'";
         return(true);
     }
     catch (Exception ex)
     {
         msg = ex.Message;
         return(false);
     }
 }
 /// 保存数据表
 /// <summary>
 /// 保存数据表
 /// </summary>
 /// <param name="jsondata"></param>
 /// <param name="loginuserid"></param>
 private void SaveSMSSendHistory(CommonCallJsonData jsondata, int loginuserid, int bgid, int sendstatus, out string data)
 {
     //插入发送短信记录
     Entities.SMSSendHistory smssendhistory = new Entities.SMSSendHistory();
     smssendhistory.BGID         = bgid;
     smssendhistory.TemplateID   = jsondata.SMSData.TemplateID_Out;
     smssendhistory.Phone        = jsondata.SMSData.Phone_Out;
     smssendhistory.Content      = jsondata.SMSData.Content_Out;
     smssendhistory.Status       = sendstatus;
     smssendhistory.CustID       = jsondata.CBID;
     smssendhistory.CRMCustID    = jsondata.PageData.CRMCustID_Out.ToString();
     smssendhistory.TaskType     = (int)jsondata.PageData.TaskType_Out;
     smssendhistory.TaskID       = jsondata.PageData.TaskID_Out;
     smssendhistory.CreateTime   = DateTime.Now;
     smssendhistory.CreateUserID = loginuserid;
     BLL.SMSSendHistory.Instance.Insert(smssendhistory);
     data = "'" + smssendhistory.RecID + "'";
 }
        /// 保存来电去电表
        /// <summary>
        /// 保存来电去电表
        /// </summary>
        /// <param name="jsondata"></param>
        /// <param name="loginuserid"></param>
        /// <param name="bgid"></param>
        /// <param name="scid"></param>
        public void SaveCallRecordInfo(CommonCallJsonData jsondata, int loginuserid, int bgid, int scid)
        {
            if (jsondata.CallData.CallID_Out <= 0)
            {
                return;
            }
            CallRecordInfoInfo info = BLL.CallRecordInfo.Instance.GetCallRecordInfoInfo(jsondata.CallData.CallID_Out);
            bool isadd = true;

            if (info == null)
            {
                //新增
                info  = new CallRecordInfoInfo();
                isadd = true;
            }
            else
            {
                //更新
                isadd = false;
            }
            //赋值
            info.SessionID    = jsondata.CallData.SessionID_Out;
            info.ExtensionNum = jsondata.CallData.ExtensionNum_Out;
            info.CallStatus   = jsondata.CallData.CallType_Out;
            if (info.CallStatus == 1)
            {
                //呼入
                //         被叫  主叫
                // 呼入 坐席  用户
                info.PhoneNum = GetTel(CallUserType.坐席, jsondata.CallData.ExtensionNum_Out, jsondata.CallData.Zhujiao_Out, jsondata.CallData.Beijiao_Out);
                info.ANI      = GetTel(CallUserType.用户, jsondata.CallData.ExtensionNum_Out, jsondata.CallData.Zhujiao_Out, jsondata.CallData.Beijiao_Out);
            }
            else
            {
                //呼出
                //         被叫  主叫
                // 呼出 用户  坐席
                info.PhoneNum = GetTel(CallUserType.用户, jsondata.CallData.ExtensionNum_Out, jsondata.CallData.Zhujiao_Out, jsondata.CallData.Beijiao_Out);
                info.ANI      = GetTel(CallUserType.坐席, jsondata.CallData.ExtensionNum_Out, jsondata.CallData.Zhujiao_Out, jsondata.CallData.Beijiao_Out);
            }
            info.BeginTime    = jsondata.CallData.BeginTime_Out;
            info.EndTime      = jsondata.CallData.EndTime_Out;
            info.TallTime     = jsondata.CallData.TallTime_Out;
            info.AudioURL     = jsondata.CallData.AudioURL_Out;
            info.CustID       = jsondata.CBID;
            info.CustName     = jsondata.PageData.CBName_Out;
            info.Contact      = jsondata.PageData.CBName_Out;
            info.TaskTypeID   = (int)jsondata.PageData.TaskType_Out;
            info.TaskID       = jsondata.PageData.TaskID_Out;
            info.SkillGroup   = jsondata.CallData.SkillGroup_Out;
            info.BGID         = bgid;
            info.SCID         = scid;
            info.CallID       = jsondata.CallData.CallID_Out;
            info.CreateTime   = DateTime.Now;
            info.CreateUserID = loginuserid;
            //入库
            if (isadd)
            {
                CommonBll.Instance.InsertComAdoInfo(info);
            }
            else
            {
                CommonBll.Instance.UpdateComAdoInfo(info);
            }
        }