Пример #1
0
        //创建基础的 呼叫源,路由规则,呼叫源规则,*000的被叫规则
        public static bool CreateCalinglSourceRule()
        {
            
            //创建呼叫源,1,任何类型,任何类型
            DB_Talk.Model.m_CallingSource modelCs = new DB_Talk.Model.m_CallingSource();
            modelCs.ID = 1;
            modelCs.i_MainType = 6;   //任何类型
            modelCs.i_SubType = 1;    //任何类型
            modelCs.BoxID=Global.Params.BoxID;
            List<DB_Talk.Model.m_CallingSource> list = new DB_Talk.BLL.m_CallingSource().GetModelList(
                string.Format(" i_Flag=0 and ID='{0}' and i_MainType='{1}' and i_SubType='{2}' and BoxID='{3}'",
                               modelCs.ID, modelCs.i_MainType, modelCs.i_SubType, modelCs.BoxID));
            if (list.Count == 0) //不存在才创建
            {
                if (!CreateCallSource(modelCs)) 
                    return false;
            }
          

            //创建路由规则0,0,0
            DB_Talk.Model.m_RouteRule modelRRule = new DB_Talk.Model.m_RouteRule();
            modelRRule.ID = 0;
            modelRRule.OriRouteID = 0;
            modelRRule.DestRouteID = 0;
            modelRRule.BoxID = Global.Params.BoxID;
            List<DB_Talk.Model.m_RouteRule> listModelRRule = new DB_Talk.BLL.m_RouteRule().GetModelList(
               string.Format(" i_Flag=0 and ID='{0}' and OriRouteID='{1}' and DestRouteID='{2}' and BoxID='{3}'",
                              modelRRule.ID, modelRRule.OriRouteID, modelRRule.DestRouteID, modelRRule.BoxID));
            if (listModelRRule.Count == 0)
            {
                if (!CreateRoutingRule(modelRRule))
                    return false;
            }
           
            //创建呼叫源规则,1,不限,0,1,0
            DB_Talk.Model.m_CalinglSourceRule CalinglSourceRule = new DB_Talk.Model.m_CalinglSourceRule();
            CalinglSourceRule.CallingOrigID = 1;  //呼叫源索引1
            CalinglSourceRule.i_ServerType = 1;   //服务类型不限
            CalinglSourceRule.i_MinReLength = 0;   //最小收号长度0
            CalinglSourceRule.CalledRuleID = 1;   //被叫分析规则索引1
            CalinglSourceRule.OriRouteID = 0;     //目的路由索引
            CalinglSourceRule.BoxID = Global.Params.BoxID;
            List<DB_Talk.Model.m_CalinglSourceRule> listCallingSource = new DB_Talk.BLL.m_CalinglSourceRule().GetModelList(
              string.Format(" i_Flag=0 and CallingOrigID='{0}' and CalledRuleID='{1}' and i_ServerType='{2}' and OriRouteID='{3}' and BoxID='{4}'",
              CalinglSourceRule.CallingOrigID, CalinglSourceRule.CalledRuleID,CalinglSourceRule.i_ServerType, CalinglSourceRule.OriRouteID, CalinglSourceRule.BoxID));
            if (listCallingSource.Count == 0)
            {
                if (!CreateCallSourceRule(CalinglSourceRule))
                    return false;
            }
           


            //设置默认的被叫规则

            DB_Talk.Model.m_CalledRule CalledRule = new DB_Talk.Model.m_CalledRule();
            CalledRule.BoxID = Global.Params.BoxID;
            CalledRule.CalledID = 1;
            CalledRule.CallingOriID = 1;
            CalledRule.DestRouteID = 0;
            CalledRule.vc_CalledNumber = "*000";
            CalledRule.i_CalledType = MBoxSDK.ConfigSDK.CALLED_RULE_TYPE.SERVICE.GetHashCode();
            CalledRule.i_CalledSubType = MBoxSDK.ConfigSDK.CALLED_SUB_RULE_TYPE.话务员.GetHashCode();

            List<DB_Talk.Model.m_CalledRule> listCall = new DB_Talk.BLL.m_CalledRule().GetModelList(
                 string.Format(" i_Flag=0 and vc_CalledNumber='{0}' and BoxID='{1}'",
                        CalledRule.vc_CalledNumber, CalledRule.BoxID));
            if (listCall.Count == 0)
            {
                if (CreateCalledRule(CalledRule))
                    new DB_Talk.BLL.m_CalledRule().Add(CalledRule);
                else
                    return false;
            }
            //默认400的规则

            DB_Talk.Model.m_CalledRule CalledRule400 = new DB_Talk.Model.m_CalledRule();
            CalledRule400.BoxID = Global.Params.BoxID;
            CalledRule400.CalledID = 1;
            CalledRule400.CallingOriID = 1;
            CalledRule400.DestRouteID = 0;
            CalledRule400.vc_CalledNumber = "400";
            CalledRule400.i_CalledType = MBoxSDK.ConfigSDK.CALLED_RULE_TYPE.SERVICE.GetHashCode();
            CalledRule400.i_CalledSubType = MBoxSDK.ConfigSDK.CALLED_SUB_RULE_TYPE.FD.GetHashCode();
            CalledRule400.i_CalledChangeType = 2;
            CalledRule400.i_CalledChangeLength = 3;
            List<DB_Talk.Model.m_CalledRule> listCall400 = new DB_Talk.BLL.m_CalledRule().GetModelList(
                 string.Format(" i_Flag=0 and vc_CalledNumber='{0}' and BoxID='{1}'",
                        CalledRule400.vc_CalledNumber, CalledRule400.BoxID));
            if (listCall400.Count == 0)
            {
                if (CreateCalledRule(CalledRule400))
                    new DB_Talk.BLL.m_CalledRule().Add(CalledRule400);
                else
                    return false;
            }  

            return true;
        }
Пример #2
0
        //创建呼叫源
        private static bool CreateCallSource(DB_Talk.Model.m_CallingSource model)
        {
            bool b = false;
            List<DB_Talk.Model.m_CallingSource> lst = new List<DB_Talk.Model.m_CallingSource>();
            QueryCallSource(out lst);
            if (lst != null && lst.Count > 0)
            {
                if (lst.Contains(model))
                {
                    List<DB_Talk.Model.m_CallingSource> list = new DB_Talk.BLL.m_CallingSource().GetModelList(
                               string.Format(" i_Flag=0 and ID='{0}' and i_MainType='{1}' and i_SubType='{2}' and BoxID='{3}'",
                               model.ID,model.i_MainType,model.i_SubType,model.BoxID));
                    if (model.BoxID>0 && list.Count == 0)  //box中存在,数据库中不存在的,自动添加到数据库
                    {
                        new DB_Talk.BLL.m_CallingSource().Add(model);
                    }
                    return true;  //存在的不再添加
                }
            }
            MBoxSDK.ConfigSDK.tagCallSource CallSource = new MBoxSDK.ConfigSDK.tagCallSource();
            CallSource.callSourceID = model.ID;
            CallSource.callSourceMainType = model.i_MainType;  //默认6任何类型
            CallSource.callSourceSubType = model.i_SubType;    //1;   //默认任何类型
            // CallSource.callSourceValue =0;
            b = MBoxSDK.ConfigSDK.MBOX_CreateCallSource(Global.Params.BoxHandle, CallSource);
            if(b) new DB_Talk.BLL.m_CallingSource().Add(model);
            return b;

        }