示例#1
0
 public SendReturnObject SendSms(string txt, string receiver, DateTime dt)
 {
     try
     {
         LogStringValue?.Invoke("متن پیام", txt);
         LogStringValue?.Invoke("گیرنده", receiver);
         var binding = new BasicHttpBinding();
         using (var op = new Iv2SoapClient(binding, new EndpointAddress("http://smsapp.ir/webservice/v2.asmx")))
         {
             var res = op.SendSMS(_username, _password, new ArrayOfString {
                 _sender
             }, new ArrayOfString {
                 receiver
             },
                                  new ArrayOfString {
                 txt
             }, new ArrayOfString {
                 dt.ToShortDateString()
             }, new ArrayOfInt {
                 0
             },
                                  new ArrayOfLong {
                 0
             });
             return(new SendReturnObject(string.Empty, SentStatus.Successful, 1));
         }
     }
     catch (Exception ex)
     {
         LogInternalException?.Invoke("SendSms", ex);
     }
     return(new SendReturnObject(string.Empty, SentStatus.Failed, -1));
 }
        private void SetDialedNumberState(string receivedData, ILine line)
        {
            var dialedNumber = FindDialedNumber(receivedData);

            LogStringValue?.Invoke("DialedNumber", dialedNumber);
            if (!string.IsNullOrEmpty(dialedNumber))
            {
                line.DialedNumber = dialedNumber;
            }
        }
示例#3
0
        private void SetDialedNumberState(TildaCIDHID.Public.CalllogDetail receivedData, ILine line)
        {
            var dialedNumber = receivedData.DialNumber;

            LogStringValue?.Invoke("DialedNumber", dialedNumber);
            if (!string.IsNullOrEmpty(dialedNumber))
            {
                line.DialedNumber = dialedNumber;
            }
        }
 private void SetLinesState(string receivedData)
 {
     try
     {
         if (receivedData == null)
         {
             return;
         }
         var lineNo = FindLineNumber(receivedData);
         if (lineNo == 0)
         {
             return;
         }
         ILine line = null;
         if (GetLinesMap().ContainsKey(GetLineKey(lineNo)))
         {
             line = GetLinesMap()[GetLineKey(lineNo)];
         }
         if (line == null)
         {
             return;
         }
         lock (line)
         {
             var status = FindCallStatus(receivedData);
             LogStringValue?.Invoke("Status", status.ToString());
             if (status > 0)
             {
                 line.Status = status;
             }
             SetDurationState(receivedData, line);
             SetDialedNumberState(receivedData, line);
             var str = FindNumber(receivedData);
             if (str != string.Empty)
             {
                 line.Number = str;
                 LogStringValue?.Invoke("PhoneNumber", str);
             }
             var num2 = FindRingCounts(receivedData);
             if (num2 > 0)
             {
                 line.RingCounts = num2;
                 LogIntValue?.Invoke("RingCount", num2);
             }
             line.LastUpdate = DateTime.UtcNow;
         }
     }
     catch (Exception ex)
     {
         LogInternalException?.Invoke("SetLinesState", ex);
     }
 }
        public void StartMonitoring(string port, string baudRate, IntPtr handle = default(IntPtr))
        {
            if (ActivePort == null)
            {
                return;
            }

            _activePort.PortDataReceived += ActivePort_PortDataReceived;
            LogObjectValue?.Invoke("ActivePort", ActivePort);
            LogStringValue?.Invoke("Port", port);
            LogStringValue?.Invoke("BaudRate", baudRate);
            _activePort.LogObjectValue += delegate(string title, object value) { LogObjectValue?.Invoke(title, value); };
            ActivePort.StartListenning(port, baudRate);
            LogMessageValue?.Invoke("Monitoring Started Successfully!");
        }
示例#6
0
 public SendReturnObject SendSms(string txt, string receiver, DateTime dt)
 {
     try
     {
         LogStringValue?.Invoke("متن پیام", txt);
         LogStringValue?.Invoke("گیرنده", receiver);
         mCore.SMS ObjSMS;
         //ObjSMS.
     }
     catch (Exception ex)
     {
         LogInternalException?.Invoke("SendSms", ex);
     }
     return(new SendReturnObject(string.Empty, SentStatus.Failed, -1));
 }
示例#7
0
 public bool IsNumberBlackList(string number)
 {
     try
     {
         LogStringValue?.Invoke("شماره جهت بررسی وضعیت لیست سیاه", number);
         using (var proxy = new sms_webservice())
         {
             return(proxy.is_number_in_blacklist(number) == 1);
         }
     }
     catch (Exception ex)
     {
         LogInternalException?.Invoke("IsNumberBlackList", ex);
     }
     return(false);
 }
示例#8
0
        public RetrievalStatus GetRetrievalStatus(string id)
        {
            try
            {
                LogStringValue?.Invoke("شناسه جهت پیگیری وضعیت ارسال", id);

                using (var proxy = new sms_webservice())
                {
                    return(HandleRetrievalStatusMessage(proxy.sms_deliver(id)));
                }
            }
            catch (Exception ex)
            {
                LogInternalException?.Invoke("GetRetrievalStatus", ex);
            }
            return(RetrievalStatus.Unknown);
        }
示例#9
0
 public SendReturnObject[] SendSmsList(string txt, string[] receivers)
 {
     try
     {
         LogStringValue?.Invoke("متن پیام", txt);
         var binding = new BasicHttpBinding();
         var alma    = new AlmaSms.smsserverPortTypeClient(binding, new EndpointAddress("http://37.130.202.188/public/class/sms/webservice3/server.php?wsdl"));
         var res     = alma.SendSMS(_sender, receivers, txt, "", _username, _password);
         LogStringValue?.Invoke("Result", res);
         return(new[] { new SendReturnObject(string.Empty, SentStatus.Successful, -1) });
     }
     catch (Exception ex)
     {
         LogInternalException?.Invoke("SendSms", ex);
     }
     return(new[] { new SendReturnObject(string.Empty, SentStatus.Failed, -1) });
 }
示例#10
0
 public SendReturnObject OldSendSms(string txt, string receiver, DateTime dt)
 {
     try
     {
         LogStringValue?.Invoke("متن پیام", txt);
         LogStringValue?.Invoke("گیرنده", receiver);
         long resNum;
         var  resOfConvert = long.TryParse(receiver, out resNum);
         if (!resOfConvert)
         {
             throw new Exception("شماره موبايل مي بايست به شكل يك عدد باشد");
         }
         var binding = new BasicHttpBinding();
         using (var proxy = new SendReceiveSoapClient(binding, new EndpointAddress("http://n.sms.ir/ws/SendReceive.asmx")))
         {
             var message  = "";
             var smsLines = proxy.GetSMSLines(_username, _password, ref message);
             if (!string.IsNullOrEmpty(message.Trim()))
             {
                 throw new Exception(message);
             }
             var lst = new List <WebServiceSmsSend>
             {
                 new WebServiceSmsSend
                 {
                     IsFlash     = false,
                     MessageBody = txt,
                     MobileNo    = resNum
                 }
             };
             var retObject = proxy.SendMessage(_username, _password, lst.ToArray(), smsLines.First(x => x.LineNumber == Convert.ToInt64(_sender)).ID, DateTime.Now, ref message);
             if (!string.IsNullOrEmpty(message.Trim()))
             {
                 throw new Exception(message);
             }
             var status = SentStatus.Successful;
             var id     = Convert.ToInt32(retObject[0].ToString());
             return(new SendReturnObject("", status, id));
         }
     }
     catch (Exception ex)
     {
         LogInternalException?.Invoke("SendSms", ex);
     }
     return(new SendReturnObject(string.Empty, SentStatus.Failed, -1));
 }
示例#11
0
        public SendReturnObject SendFlashSms(string txt, string receiver)
        {
            try
            {
                LogStringValue?.Invoke("متن پیام", txt);
                LogStringValue?.Invoke("گیرنده", receiver);
                long resNum;
                var  resOfConvert = long.TryParse(receiver, out resNum);
                if (!resOfConvert)
                {
                    throw new Exception("شماره موبايل مي بايست به شكل يك عدد باشد");
                }
                var token = new Token().GetToken(_password, _username);

                var messageSendObject = new MessageSendObject()
                {
                    Messages = new List <string> {
                        txt
                    }.ToArray(),
                    MobileNumbers = new List <string> {
                        receiver
                    }.ToArray(),
                    LineNumber               = _sender,
                    SendDateTime             = null,
                    CanContinueInCaseOfError = true
                };

                MessageSendResponseObject messageSendResponseObject = new MessageSend().Send(token, messageSendObject);

                if (messageSendResponseObject.IsSuccessful)
                {
                    var id = Convert.ToInt32(messageSendResponseObject.Ids[0]);
                    return(new SendReturnObject("", SentStatus.Successful, id));
                }
                else
                {
                    throw new Exception(messageSendResponseObject.Message);
                }
            }
            catch (Exception ex)
            {
                LogInternalException?.Invoke("SendSms", ex);
            }
            return(new SendReturnObject(string.Empty, SentStatus.Failed, -1));
        }
示例#12
0
        public SendReturnObject SendFlashSms(string txt, string receiver)
        {
            try
            {
                LogStringValue?.Invoke("متن پیام", txt);
                LogStringValue?.Invoke("گیرنده", receiver);
                //retval :
                // Invalid User Pass=0,
                // Successfull = 1,
                // No Credit = 2,
                // DailyLimit = 3,
                // SendLimit = 4,
                // Invalid Number = 5
                // System IS Disable = 6
                // Bad Words= 7
                // Pardis Minimum Receivers=8
                // Number Is Public=9

                //Status :
                // Sent=0,
                // Failed=1
                Send   sms    = new Send();
                long[] rec    = null;
                byte[] status = null;
                int    retval = sms.SendSms(_username, _password, receiver.Split(','), _sender, txt, true, "", ref rec, ref status);
                if (retval == 1)
                {
                    return(new SendReturnObject(string.Empty, SentStatus.Successful, -1));
                }
                if (status.Length > 0 && rec.Length > 0)
                {
                    return(new SendReturnObject($"{status[0]}|{rec[0]}", SentStatus.Failed, -1));
                }
                return(new SendReturnObject(string.Empty, SentStatus.Failed, -1));
            }
            catch (Exception ex)
            {
                LogInternalException?.Invoke("SendSms", ex);
            }
            return(new SendReturnObject(string.Empty, SentStatus.Failed, -1));
        }
示例#13
0
 public SendReturnObject SendFlashSms(string txt, string receiver)
 {
     try
     {
         LogStringValue?.Invoke("متن پیام", txt);
         LogStringValue?.Invoke("گیرنده", receiver);
         using (var proxy = new sms_webservice())
         {
             var retObject = proxy.send_sms(_username, _password, _sender, receiver, txt, "True", null, 0, null);
             var status    = HandleSendErrorMessage(retObject);
             int id        = 0;
             if (status == SentStatus.Successful)
             {
                 id = Convert.ToInt32(status);
             }
             return(new SendReturnObject(retObject, status, id));
         }
     }
     catch (Exception ex)
     {
         LogInternalException?.Invoke("SendSms", ex);
     }
     return(new SendReturnObject(string.Empty, SentStatus.Failed, -1));
 }
示例#14
0
        private void SetLinesState(TildaCIDHID.Public.CalllogDetail receivedData)
        {
            try
            {
                if (receivedData == null)
                {
                    return;
                }
                var lineNo = receivedData.LineNumber;
                if (lineNo == 0)
                {
                    return;
                }
                ILine line = null;
                if (GetLinesMap().ContainsKey(GetLineKey(lineNo)))
                {
                    line = GetLinesMap()[GetLineKey(lineNo)];
                }
                if (line == null)
                {
                    return;
                }
                lock (line)
                {
                    var status = FindCallStatus(receivedData);
                    LogStringValue?.Invoke("Status", status.ToString());
                    if (status > 0)
                    {
                        line.Status = status;
                    }
                    if (receivedData.sUpdateFileds.IndexOf("StatusRecord", StringComparison.Ordinal) != -1)
                    {
                        if (!receivedData.Status_Record)
                        {
                            ActivePort.StartRecordLine(line.LineNumber);
                        }
                        else
                        {
                            ActivePort.StopRecordLine(line.LineNumber);
                        }
                    }
                    if (receivedData.sUpdateFileds.IndexOf("Duration", StringComparison.Ordinal) != -1)
                    {
                        if (receivedData.Duration != -1)
                        {
                            SetDurationState(receivedData, line);
                        }
                    }

                    if (receivedData.sUpdateFileds.IndexOf("DialNumber", StringComparison.Ordinal) != -1)
                    {
                        if (!string.IsNullOrEmpty(receivedData.DialNumber))
                        {
                            SetDialedNumberState(receivedData, line);
                        }
                    }
                    if (receivedData.sUpdateFileds.IndexOf("Number-", StringComparison.Ordinal) != -1)
                    {
                        if (!string.IsNullOrEmpty(receivedData.Number))
                        {
                            var str = FindNumber(receivedData);
                            if (str != string.Empty)
                            {
                                line.Number = str;
                                LogStringValue?.Invoke("PhoneNumber", str);
                            }
                        }
                    }
                    if (receivedData.sUpdateFileds.IndexOf("Rings", StringComparison.Ordinal) != -1)
                    {
                        if (!string.IsNullOrEmpty(receivedData.Rings))
                        {
                            var num2 = FindRingCounts(receivedData);
                            if (num2 > 0)
                            {
                                line.RingCounts = num2;
                                LogIntValue?.Invoke("RingCount", num2);
                            }
                        }
                    }

                    line.LastUpdate = DateTime.UtcNow;
                }
            }
            catch (Exception ex)
            {
                LogInternalException?.Invoke("SetLinesState", ex);
            }
        }