Пример #1
0
        public bool HSIFC(string impu, int caseCode, string webRef, int ifc, servRequest eRequest, out string sResult)
        {
            var _url    = parameters.UrlPGW();
            var _action = "Notification";

            if (string.IsNullOrEmpty(webRef))
            {
                if (!PGW_LGI(0, out webRef))
                {
                    sResult = "Login to PGW failed, please check user credentials.";

                    return(false);
                }
            }

            impu = Program.NormalizeMSISDN(impu, 13); //TELURI

            XmlDocument soapEnvelopeXml = null;

            switch (eRequest)
            {
            case servRequest.prov:
                soapEnvelopeXml = soapEnvelope.ADD_HSIFC_PGW(impu, ifc);
                break;

            case servRequest.remove:
                soapEnvelopeXml = soapEnvelope.RMV_HSIFC_PGW(impu, ifc);
                break;

            case servRequest.printOut:
                soapEnvelopeXml = soapEnvelope.LST_HSIFC_PGW(impu);
                break;

            case servRequest.none:
                break;

            default:
                break;
            }

            HttpWebRequest webRequest = CreateWebRequestPGW(_url, _action, webRef);

            if (!InsertSoapEnvelopeIntoWebRequest(impu, "ADD_HSIFC", soapEnvelopeXml, webRequest, out sResult))
            {
                return(false);
            }

            IAsyncResult asyncResult = webRequest.BeginGetResponse(null, null);

            asyncResult.AsyncWaitHandle.WaitOne();

            bool bResult = xmlResponse.myResponse(impu, webRequest, asyncResult, null, "ADD_HSIFC", caseCode, out sResult);

            return(bResult);
        }
Пример #2
0
        public bool AGCF_ASBR(string sSubscriberNumber, string sEquipmentID, string sTerminationID, string sPassword, int iGatewayType, int iProtocolType, servRequest eRequest, int caseCode, out string sResult)
        {
            var _url    = parameters.urlSPG();
            var _action = "Notification";

            XmlDocument soapEnvelopeXml = null;

            string PUI = Program.NormalizeMSISDN(sSubscriberNumber, 12);
            string PRI = Program.NormalizeMSISDN(sSubscriberNumber, 11);

            switch (eRequest)
            {
            case servRequest.prov:
                soapEnvelopeXml = soapEnvelope.ADD_AGCF_ASBR(PUI, PRI, sEquipmentID, sTerminationID, sPassword);
                break;

            case servRequest.remove:
                soapEnvelopeXml = soapEnvelope.RMV_AGCF_ASBR(PUI);
                break;

            case servRequest.printOut:
                soapEnvelopeXml = soapEnvelope.LST_AGCF_ASBR(PUI);
                break;

            case servRequest.printAsbrMgw:
                soapEnvelopeXml = soapEnvelope.LST_AGCF_ASBR_EID(sEquipmentID);
                break;

            case servRequest.none:
                break;

            default:
                break;
            }

            HttpWebRequest webRequest = CreateWebRequestSPG(_url, _action);

            if (!InsertSoapEnvelopeIntoWebRequest(sSubscriberNumber, "AGCF_MGW", soapEnvelopeXml, webRequest, out sResult))
            {
                return(false);
            }

            IAsyncResult asyncResult = webRequest.BeginGetResponse(null, null);

            asyncResult.AsyncWaitHandle.WaitOne();

            return(xmlResponse.myResponse(sSubscriberNumber, webRequest, asyncResult, null, "AGCF_MGW", caseCode, out sResult));
        }
Пример #3
0
        public bool HCAPSCSCF(string subscriber_id, string scscf, string pbxID, int caseCode, servRequest eRequest, out string sResult)
        {
            subscriber_id = Program.NormalizeMSISDN(subscriber_id, 10);

            var _url    = parameters.UrlPGW();
            var _action = "Notification";

            string webRef = string.Empty;

            if (!PGW_LGI(0, out webRef))
            {
                sResult = "Login to PGW failed, please check user credentials.";
                return(false);
            }

            XmlDocument soapEnvelopeXml = null;

            switch (eRequest)
            {
            case servRequest.prov:
                soapEnvelopeXml = soapEnvelope.ADD_HCAPSCSCF_PGW(subscriber_id, scscf, pbxID);
                break;

            case servRequest.remove:
                soapEnvelopeXml = soapEnvelope.RMV_HCAPSCSCF_PGW(subscriber_id, scscf, pbxID);
                break;

            case servRequest.printOut:
                soapEnvelopeXml = soapEnvelope.LST_HCAPSCSCF_PGW(subscriber_id);
                break;

            case servRequest.none:
                break;

            default:
                break;
            }


            HttpWebRequest webRequest = CreateWebRequestPGW(_url, _action, webRef);

            if (!InsertSoapEnvelopeIntoWebRequest(subscriber_id, "HCAPSCSCF", soapEnvelopeXml, webRequest, out sResult))
            {
                return(false);
            }

            IAsyncResult asyncResult = webRequest.BeginGetResponse(null, null);

            asyncResult.AsyncWaitHandle.WaitOne();

            bool bResult = xmlResponse.myResponse(subscriber_id, webRequest, asyncResult, null, "HCAPSCSCF", caseCode, out sResult);

            PGW_LGO(0, webRef);

            return(bResult);
        }
Пример #4
0
        public bool AGCF_MGW(string sEquipmentID, string sMediaGwDescription, int iGatewayType, int iProtocolType, servRequest eRequest, int caseCode, out string sResult)
        {
            var _url    = parameters.urlSPG();
            var _action = "Notification";

            XmlDocument soapEnvelopeXml = null;

            switch (eRequest)
            {
            case servRequest.prov:
                soapEnvelopeXml = soapEnvelope.ADD_AGCF_MGW(sEquipmentID, sMediaGwDescription, iGatewayType, iProtocolType);
                break;

            case servRequest.remove:
                soapEnvelopeXml = soapEnvelope.RMV_AGCF_MGW(sEquipmentID);
                break;

            case servRequest.printOut:
                soapEnvelopeXml = soapEnvelope.LST_AGCF_MGW(sEquipmentID);
                break;

            case servRequest.none:
                break;

            default:
                break;
            }

            HttpWebRequest webRequest = CreateWebRequestSPG(_url, _action);

            if (!InsertSoapEnvelopeIntoWebRequest(sEquipmentID, "AGCF_MGW", soapEnvelopeXml, webRequest, out sResult))
            {
                return(false);
            }

            IAsyncResult asyncResult = webRequest.BeginGetResponse(null, null);

            asyncResult.AsyncWaitHandle.WaitOne();

            return(xmlResponse.myResponse(sEquipmentID, webRequest, asyncResult, null, "AGCF_MGW", caseCode, out sResult));
        }
Пример #5
0
        public static void ProcessOpNpdbChange(Dictionary <string, string> InputKeys, servRequest eRequest, out Dictionary <string, string> KeyNpdb)
        {
            InputKeys.TryGetValue("SUBSCRIBER NUMBER", out string isdn);
            InputKeys.TryGetValue("DESCRIPTION", out string desc);

            if (string.IsNullOrEmpty(isdn))
            {
                MessageBox.Show("'SUBSCRIBER NUMBER' can't be empty.", "missing parameter");
                KeyNpdb = null;
                return;
            }

            isdn = Program.NormalizeMSISDN(isdn, 4);

            if (!isdn.StartsWith("2"))
            {
                isdn = NormalizeMSISDN(isdn, 1);
            }

            string sCommand = string.Empty;

            switch (eRequest)
            {
            case servRequest.prov:
                if (!int.TryParse(InputKeys["INDEX NUMBER"], out int index))
                {
                    MessageBox.Show("check 'INDEX NUMBER'", "invalid parameter value");
                    KeyNpdb = null;
                    return;
                }

                if (string.IsNullOrEmpty(desc))
                {
                    desc = isdn;
                }

                sCommand = "ADD SERUATTR: USRNUM=" + "\"" + isdn + "\"" + ", DESC=" + "\"" + desc + "\"" + " ,SERVATTR=OMNP-1, NUMTYPE=TYPE1, RNIDXTYPE=RN, RNIDX2=" + index + ";";
                break;

            case servRequest.remove:
                sCommand = "RMV SERUATTR: MODE = num, USRNUM=" + "\"" + isdn + "\"" + ";";
                break;

            default:
                break;
            }

            KeyNpdb = new Dictionary <string, string> {
            };

            KeyNpdb.Add("isdn", isdn);

            string[] npdbIPs = parameters.stpIP().Split(new string[] { ";" }, StringSplitOptions.RemoveEmptyEntries);

            foreach (var item in npdbIPs)
            {
                string sResult = string.Empty;

                string sNode   = item.Substring(0, item.IndexOf("="));
                string sNodeIP = item.Substring(sNode.Length + 1);

                KeyNpdb.Add(sNode, null);

                tcpconnect tcp = new tcpconnect();

                tcp.NpdbCommand(sCommand, sNodeIP, out sResult);

                tcp.DisconnectHost(sNodeIP);

                string regExpPattern = string.Concat("RETCODE", ".*?=.*?", "(.*)");

                Regex regExp = new Regex(regExpPattern, RegexOptions.IgnoreCase);

                Match regExpMatch = regExp.Match(sResult);

                if (!regExpMatch.Success)
                {
                    KeyNpdb[sNode] = "result unknown, check with network display.";

                    continue;
                }

                KeyNpdb[sNode] = regExpMatch.Groups[1].ToString();
            }
        }