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); }
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)); }
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); }
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)); }
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(); } }