Masowe wysyłanie sms przez modem

0

Witajcie
mam taki mały problem, którego nie mogę przeskoczyć, otóż: pisze mały programik który przez modem gsm wysyła wiadomości sms. Ponieważ ma on wysyłać wiadomości grupowo wyciągnąłem nr telefonów do pliku tekstowego i te wartości pobierane są do programu prawidłowo:
Kod:

         foreach (string line in lines)
            {
                comboBox1.Items.Add(line);
            }

combo wypełnia się wartościami. Ale kiedy próbuję wysyłać smsy wysyłany jest tylko do pierwszego numeru. Czy możecie spojrzeć na kod i wyszukać problemu?
Kod:

            SerialPort portConfig = new SerialPort();
            portConfig.PortName = "COM5";
            portConfig.BaudRate = 460800;
            portConfig.Parity = Parity.None;
            portConfig.DataBits = 8;
            portConfig.StopBits = StopBits.One;
            portConfig.Handshake = Handshake.XOnXOff;
            portConfig.Open();

            foreach (string line in lines)
            {
                portConfig.NewLine = "\r\n";
                portConfig.WriteLine("AT+CMGF=1;");
                portConfig.WriteLine("AT+CMGS=\"" + line + "\"");
                //Thread.Sleep(100);
                portConfig.Write(textBox2.Text + (char)26);
            }
            portConfig.Close();

PS
dla pytających, nie bawię się w spamowanie :) wczoraj dzwoniąc od operatora (play) dowiedziałem się ze przy wysyłaniu dużej ilości smsów w krótkim czasie uruchamiany jest filtr spamujący i zakładana jest blokada. Wiadomości mają być wysyłane do grupy ludzi z informują o najbliższych spotkaniach.

0

A jakie są limity, jakiej wielkości? Blokada na jaki czas?

0

Tego już konsultantka nie wiedziała, niestety

0

Jestem na 99% pewien, że powinieneś poczekać, aż modem wyśle SMS, i dopiero potem przesyłać następne dane.

0

            foreach (string line in lines)
            {
                SerialPort portConfig = new SerialPort();
                portConfig.PortName = "COM5";
                portConfig.BaudRate = 460800;
                portConfig.Parity = Parity.None;
                portConfig.DataBits = 8;
                portConfig.StopBits = StopBits.One;
                portConfig.Handshake = Handshake.XOnXOff;
                portConfig.Open();
                portConfig.NewLine = "\r\n";
                portConfig.WriteLine("AT+CMGF=1;");
                portConfig.WriteLine("AT+CMGS=\"" + line + "\"");
                //Thread.Sleep(100);
                portConfig.Write(textBox2.Text + (char)26);
                portConfig.Close();
            }
            

daje taki sam efekt, kombinowałem już na wszelkie sposoby i ... lipa

0

Przecież w taki sposób wcale nie czekasz na wysłanie SMSa :P
Modem nie wysyła żadnego pakietu ack?

0
foreach (string line in lines)
            {
                SerialPort portConfig = new SerialPort();
                portConfig.PortName = "COM5";
                portConfig.BaudRate = 460800;
                portConfig.Parity = Parity.None;
                portConfig.DataBits = 8;
                portConfig.StopBits = StopBits.One;
                portConfig.Handshake = Handshake.XOnXOff;
                portConfig.Open();
                portConfig.NewLine = "\r\n";
                portConfig.WriteLine("AT+CMGF=1;");
                portConfig.WriteLine("AT+CMGS=\"" + line + "\"");
                portConfig.Write(textBox2.Text + (char)26); 
                MessageBox.Show(line, "wiadomość wysłana");   <------- wielka niewiadoma
                portConfig.Close();
            }

Patryk27, smsy sa wysyłane, na pewno jeden, pierwszy z brzegu. Pojawiła się rzecz niewiadoma dla mnie, wstawiłem messagebox i widzę gdzie jest wysyłany sms (nr telefonu) i teraz smsy dochodzą, ale tez nie za każdym razem.

0

Działa, po prostu modem musiał mieć czas na wysłanie, wstawiłem: Thread.Sleep(2000) i wszystko działa.
Dzięki za odzew :)

1 użytkowników online, w tym zalogowanych: 0, gości: 1