» »

pošiljanje SMS C#

pošiljanje SMS C#

Neon87 ::

Pozdravljeni!

Delam nek projekt v katerem rabim pošiljanje SMSov.
Pa pride do problema iskanja ponudnika, da bi lahk spravu sms naprej..
kakršnakoli uporaba najdi.si odpade, pa še za vsako zahtevajo validacijo...google najde precej o tem, vendar ponudniki omogočajo določene države in ni nič za Slovenijo.
Edina rešitev bi bla nekak uporabit telefon kot oddajnik in ga povezat z aplikacijo ter preko USB vmesnika..

To se gre samo za nek prikaz delovanja, če bi se resno stvar uporabljala se bi(bo) ponudnika plačalo in potem ne bo problema..
Če ma kdo kako idejo kk to nardit, nasvet, al pa link, za free varjanto tega, lepo prosim za pomoč.

Hvala

BlueRunner ::

Mobitel in Si.mobil imata oba storitev, s pomočjo katere lahko pošiljaš (in zaračunavaš) SMS sporočila njihovim uporabnikom. Za testiranje in funkcionalnost pobrskaj po njihovih straneh, za brezplačno testiranje pa jim pošllji kakšno sporočilo. Mobitel je bil svoje čase kar precej odprt, če je videl, da se gre za resno možnost posla.

Če želiš obveščanje v smislu nadzora aplikacij, sistemov, ipd... ne glede na operaterja mobilne telefonije, potem boš verjetno najhitreje prišel čez s pomočjo svojega mobilnega aparata. Večina jih podpira standarden AT vmesnik na serijskih vratih, s pomočjo katerega lahko pošiljaš in sprejemaš SMS sporočila.

Kasneje, ko se bo stvar "resno uporabljala" pa lahko telefon nadomestiš s katerim izmed namenskih GSM modulov, ki uporabljajo enak protokol/standard.

preem ::

ja prek teh modulov gre ta zadeva, vem, ko smo pri eni stranki to štimal. Sicer ne vem kje so ga dobil, pomoje pri mobitelu ker imajo SIM od mobitela in prek te kartice pošiljaš sms-e. Deluje pa čist enostavno, en daemon laufa na strežniku, ki nadzoruje en folder, in sms pošlješ tako da ga zapišeš v en fajl in shraniš v ta folder. splača se pri providerju pozanimat za tak modul, sej more bit dost pocen pomoje.

ql000 ::

Pred časom sem sodeloval v enem projektu, ko smo potrebovali ravno to funkcionalnost. Po benchmarku trga smo se nekako odločili za Enforo enabler. Ful luštna zadeva, takrat je stala, mislim da 10.000 SIT - dobrih 40€. Dejansko gre za razvojni model, ki ga v končni fazi lahko zapreš v škatlico. Vse kar ti ostane je, da sprogramiraš pošiljanje SMS-ov preko AT komand.

Evo, če bo kaj pomagalo:
private void OpenPortBtn_Click(object sender, EventArgs e)
        {
            string COMPortName = "COM";
            string COMPort;
            string SelectedPort;
            COMPort = ComNoTextBox.Text.ToString();
            SelectedPort = COMPortName + COMPort;

            COMPortOpenStatusStrip.Text = SelectedPort;

            try
            {
                SerialPort.PortName = SelectedPort;
                RecievedDataTextBox.Text ="Opened COM Port: " + SelectedPort;
                BaudRateComboBox.SelectedItem = SerialPort.BaudRate;

                SerialPort.Open();
            }
            catch(System.Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
            
        }

        private void ClosePortBtn_Click(object sender, EventArgs e)
        {
            SerialPort.Close();
            COMPortOpenStatusStrip.Text = "";
            RecievedDataTextBox.AppendText(Environment.NewLine + "Serial Port Closed!");
        }

        private void SendSMSBtn_Click(object sender, EventArgs e)
        {
            string SMSText;
            
            SMSText = SMSTextBox.Text;

            SMSMessage(PhoneNoTextBox.Text.ToString(), SMSText);
        }

        private void SMSTextBox_KeyPress(object sender, KeyPressEventArgs e)
        {
            SMSLength++;
            SMSLengthTextBox1.Text = SMSLength.ToString();
        }

        private void SMSMessage(string PhoneNumber, string SMSMessage)
        {
            
            //string ATSMSTextFormat = "AT+CMGF=1\n";
            //string ATSMSPhoneAndText = "AT+CMGS=" + PhoneNumber.ToString() + SMSMessage + "\n";
            
            SerialPort.Write("AT\r");
            System.Threading.Thread.Sleep(20);
            //SerialPort.Write("AT+CSMP=17,167,0,0\r");
            System.Threading.Thread.Sleep(20);
            SerialPort.Write("AT+CMGF=1\r");
            System.Threading.Thread.Sleep(20);
            SerialPort.Write("AT+CMGS=" + PhoneNumber + "\r");
            System.Threading.Thread.Sleep(20);
            SerialPort.Write(SMSMessage + "\x1A");
            System.Threading.Thread.Sleep(20);

            DataRecived = SerialPort.ReadExisting();

            RecievedDataTextBox.AppendText(Environment.NewLine + DataRecived.ToString());
        }

Neon87 ::

hvala!
Se pravi, če bi namest tega bil en mobitel priključen preko USB, bi to delovalo?
Verjetno bi mogla bit naložena neka aplikacija še na mobitelu?

BlueRunner ::

Da, če ti telefon prikaže tudi serijski port (dial-up port).

Ne, na telefonu ne rabiš nobene aplikacije. Telefon to bodisi omogoča, bodisi ne omogoča. Večina telefonov to danes omogoča, tako da lahko kar s svojim poskusiš.

mHook ::

Lahko pa uporabiš Clickatell, kjer je en SMS 0,035 EUR in imaš API za uporabo v programih, dela pa tudi prek HTTP(S) GET/POST in mail-a.

ql000 ::

Na ZS sem pozabil omeniti, da so cene poslanih sporočil so itak stvar ponudnika katerega kartico imaš v modulu.

LP,
ql000

Neon87 ::

nism dobil kakega ZSja..
velja, hvala vsem, sporočim ko bo uspelo, če bo :D

Neon87 ::

Nekaj se igram...port mi uspe odpret(pogledam v device managerju na katerem com portu je moja nokia priključena), potem pa ko hočem napisat neko AT komando z .Write(.....) mi zmrzne oz. se nekje zacikla.

Ma kdo kako idejo zakaj?

ql000 ::

Pri takih zadevah popizdiš! Jaz sem si vedno pomagal s kakim programom za monitoring portov, ala RS232 Analyzer ali pa kaj podobnega. Vse ostalo v Winsih je precej ubogo.

Neon87 ::

zdravo, neki časa je zdj tt projekt miroval, pa mam še samo en problem, ki mi res dela precejšnje preglavice.

In sicer me zanima kk bi lahk odkril na katermu portu je prikloplnem usb modem(telefon).
Dejstvo je da zadnje mi nekak najde, če je to zadnji uporabljen port. Če pa je kje vmes pa ne.

Aplikacija mora delovat avtomatsko, zato more sama zaznat pravi port. Prebrskal sem res celi internet, pa ne vem kk bi naredu to.

Ideja je, da grem čez vse aktivne porte in gledam, če je telefon, preko ene lastnosti, ki jo neka knjižnica omogoča.
Ko pridem do port.Open() in ustreznega porta, ki bi moral biti pravi, mi ga noče nastavt.

Kot kodo noče vzet forum, tako da se opravičujem, da je kr quote.

public void SetPortNumber()
{
foreach (string com in SerialPort.GetPortNames())
{
string s = com[3].ToString();
if (com.Length > 4)
{
s = s + com[4].ToString();
}
if (com.Length > 5)
{
s = s + com[5].ToString();
}
GsmCommMain Gsm2 = new GsmCommMain(int.Parse(s), 115200, 100);
// if (!Gsm2.IsOpen())
// {
try
{
Gsm2.Open(); //TU NASTANE PROBLEM, VES ČAS MEČE EXCEPTIONE,TUDI KO PRIDEM DO USTREZNEGA. In sicer: the system cannot find the file specified
SignalQualityInfo signal = Gsm2.GetSignalQuality();
Gsm2.Close();
if (signal.SignalStrength > 0)
{
port = int.Parse(s);
// MessageBox.Show("Port " + port);
return;
}
}
catch (Exception ee)
{

MessageBox.Show(ee.Message);
}
// }
}
port = -1;
}



Obstaja kak način, da bi prekinil port, ko se mi zdi da je kr neki v uporabi..ne vm, ni mi več jasno.

Lepo prosim za pomoč.

Tutankhamun ::

Raj povej kaj za vraga je to?
foreach (string com in SerialPort.GetPortNames())
{
    string s = com[3].ToString();
    if (com.Length > 4)
    {
        s = s + com[4].ToString();
    }
    if (com.Length > 5)
    {
        s = s + com[5].ToString();
    }
 ...
 ...


Aaa zdej štekam...
string [] comPorts = erialPort.GetPortNames();

foreach (string com in comPorts)
{
    int com_number = int.Parse (com.substring (3));
 ...
 ...


če že morš tko delat, al pa sparsaš sam številke. Sam a si prepričan da morš številko vn dobit. To pa res prvič vidm. Ponavad se ceu ime utakne "com1" v funkcijo.
AMD Phenom QUAD 9950 Black Edition, 8GB

Zgodovina sprememb…

Neon87 ::

sam številko rabim...pa številko zihr dobi prav...tk da tu ni kakega problema.


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

[C#] Delo z okni - urejanje osebe

Oddelek: Programiranje
8984 (856) darkolord
»

C#, TextBox in PopUp forma

Oddelek: Programiranje
61101 (995) MarCar
»

C# textbox polnjenje

Oddelek: Programiranje
71627 (1492) Mitja Bonča
»

Spremljanje dogajanja na ekranu

Oddelek: Programiranje
81259 (1118) boss-tech
»

[VB] Komunikacija s serijskimi napravami

Oddelek: Programiranje
412303 (1577) mNeRo

Več podobnih tem