Kako primiti SMS u C#

Ovaj članak daje informacije o tome kako primiti SMS u C# pomoću Ozeki C# SMS API-ja. Pruža neke primere koda koje možete koristiti i opisuje korake koje treba da preduzmete. Za završetak koraka, potrebno vam je oko 5 minuta. Ukratko, da biste primili SMS sa C# SMS API-jem potrebno je da se prijavite na OnMessages received događaj i napišete metod rukovaoca događaja koji će obraditi dolazni SMS poslat putem Ozeki SMS gateway-a. Pročitajte dalje da saznate više o ovom postupku!

Zašto biste želeli da primate SMS u C#?

Postoje različiti razlozi za primanje SMS-a u C#. Možda želite da prikupite podatke sa senzora ili korisnika mobilnih telefona, možete kreirati SMS usluge koje šalju odgovor sa informacijama, ili možete jednostavno tražiti od korisnika da potvrde da su primili SMS.

Preduslovi Kako primiti SMS u C# (Brzi koraci) Kako primiti SMS u C#
  1. Preuzmite primer za primanje SMS-a u C#
  2. Otvori rešenje u Visual Studio
  3. Povežite se sa Ozeki SMS Gateway-om
  4. Primite simulirani SMS u C#
  5. Povežite se sa mobilnom mrežom
  6. Primite SMS u C# koji je poslat sa mobilnog telefona
  7. Proverite logove u SMS gateway-u
  8. Proverite izveštaj o dostavi na svom mobilnom telefonu

primanje sms-a u c#
Slika 1 - Primanje SMS-a u C#

Primer C# koda za primanje tekstualnih poruka

Primer C# SMS koda ispod opisuje najvažnije korake koje treba preduzeti da biste kreirali uslugu za primanje SMS-a. Ozeki C# SMS API je besplatan. Možete modifikovati API biblioteku, primere koji dolaze sa njom, i možete je koristiti u svom projektu i slobodno je redistribuirati ili njene izvedenice. Sledeći primer pokazuje kako da se pretplatite na OnMessageReceived C# događaj i kako da upravljate ovim događajem. Primer ispisuje dolaznu SMS poruku na konzolu.


class Program
{
    static OzxClient Client;

    static void Main(string[] args)
    {
        Client = new OzxClient();
        Client.AutoReconnect = true;
        Client.OnMessageReceived += Client_OnMessageReceived;
        
        Client.Connect("127.0.0.1",9580,"testuser","testpass");
    }

    static void Client_OnMessageReceived(object sender, OzxArgs<IOzxMessage> e)
    {
        Console.WriteLine("Poruka primljena: " + e.Item.ToString());
    }
}

Parametar e.Item je pun OzxMessage. To znači da imate sve detalje SMS poruka u svom C# SMS API događaju. Ovi detalji uključuju ID pošiljaoca SMS-a, broj telefona na koji je SMS poslat, tekst SMS-a i odgovarajuće vremenske oznake.

Jedna od najvećih prednosti korišćenja Ozeki C# SMS API-ja je to što dobijate dolazne SMS poruke trenutno. Čim stignu u SMS gateway, prosleđuju se vašem C# SMS klijentu kroz uspostavljenu TCP/IP vezu. To znači da nećete doživeti nikakva kašnjenja.

Ako vaš C# SMS API klijent nije povezan sa SMS gateway-om kada je SMS primljen, SMS se čuva u inbox folderu SMS gateway-a. To znači da vaše dolazne poruke neće biti izgubljene čak i ako je SMS softver koji ste napisali koristeći C# SMS API offline. Ovo je zbog činjenice da je Ozeki SMS Gateway zapravo SMS server.

Korak 1 - Preuzmite Ozeki C# SMS biblioteku

Idite na https://ozeki-sms-gateway.com/attachments/5755/OzekiConsole.zip i preuzmite zip fajl sa svojim pretraživačem. Zip fajl će biti u vašem Download direktorijumu (Slika 2). Možete otvoriti preuzimanje direktno u Windows Explorer-u. Preuzeti zip paket će sadržati primer koda koji možete koristiti za primanje SMS-a u C#.

ozeki SMS biblioteka preuzeta
Slika 2 - Ozeki SMS biblioteka preuzeta

Korak 2 - Ekstrahujte C# SMS biblioteku

Ekstrahujte C# SMS biblioteku klikom na OzekiConsole.zip fajl desnim tasterom miša (Slika 2). Ovo će prikazati kontekstni meni. U kontekstnom meniju izaberite "Extract All...". Ovo će prikazati "Extract dijalog prozor", gde treba da kliknete na Extract.

Kliknite na "Extract" dugme u "Extract All" dijalog prozoru (Slika 3).

Ekstrahujte C# SMS primer za primanje
Slika 3 - Ekstrahujte C# SMS primer za primanje

Korak 3 - Otvorite projekat u Visual Studio

Otvori OzekiConsole folder. Ovaj folder će se pojaviti nakon što ste ekstrahovali OzekiConsol.zip paket. U OzekiConsole folderu dvokliknite na OzekiConsole.sln fajl. Ovo će prikazati dijalog "How do you want to open this file?". U ovom dijalogu izaberite "Visual Studio". Nakon što je Visual Studio izabran, kliknite OK da otvorite C# primer projekta. (Slika 4)

Otvori C# SMS primer za primanje u Visual Studio
Slika 4 - Otvori C# SMS primer za primanje u Visual Studio

Корак 4 - Кликните на Program.cs

Отворите Program.cs кликом на фајл у Solution Explorer-у на левој страни екрана. Ово је главни код овог примера C# пројекта. Овај код садржи примере како да пошаљете SMS из C# и како да примите SMS у C#. Код није превише дугачак, има око 300 линија. Демонстрира пуну функционалност C# SMS API-ја. (Слика 5)

Учитајте Program.cs у едитор
Слика 5 - Учитајте Program.cs у едитор

Корак 5 - Поставите тачку прекида у коду за пријем SMS-а

Пронађите OnMessageReceived event handler и поставите тачку прекида на почетној линији процедуре. Ова тачка прекида ће вам омогућити да ухватите OnMessageReceived догађај. OnMessageReceived догађај се активира када ваш C# SMS клиент прими SMS поруку од SMS gateway-а. (Слика 6)

поставите тачку прекида у on sms received догађају
Слика 6 - Поставите тачку прекида у on message received догађају

Корак 6 - Направите OZX кориснички налог за SMS API

Да бисте омогућили C# SMS API примеру да се повеже са SMS gateway-ом, потребно је да направите OZX кориснички налог у SMS gateway-у. Да бисте то урадили, идите до SMS gateway management console-а отварањем URL-а https://127.0.0.1:9515 и кликните на линк "Add new user/application" на десној страни екрана. (Слика 7)

Направите SMS кориснички налог за пријем текстуалних порука
Слика 7 - Направите SMS кориснички налог за пријем текстуалних порука у C#

Линк "Add new user/application" ће приказати листу инсталабилних типова корисника. Потребно је да пронађете OZX кориснички налог на листи. OZX кориснички налог користи високо оптимизовани SMS протокол, који омогућава вашој C# SMS апликацији да комуницира са SMS gateway-ом преко мреже. Пошто SMS gateway и C# SMS клиент комуницирају преко мреже, можете примити текстуалну поруку у вашем C# пројекту чак и ако пројекат ради на другом рачунару. (Слика 8)

инсталирајте C# SMS API кориснички налог
Слика 8 - Кликните install да бисте инсталирали C# SMS API кориснички налог (OZX корисник)

Унесите корисничко име и лозинку. У нашем примеру користимо testuser као корисничко име и testpass као лозинку. C# SMS клиент ће користити ове податке за пријаву на SMS gateway. Ако желите више од једне C# SMS API везе, можете направити више OZX корисничких налога. Сваки кориснички налог ће домаћинствовати свој C# SMS API клиент. Да бисте одлучили који C# SMS клиент ће примити долазни SMS, потребно је да направите улазне руте у Ozeki SMS рутирајућој табели. (Слика 9)

Поставите testuser као C# SMS API корисничко име
Слика 9 - Поставите testuser као C# SMS API корисничко име

Омогућите опције за логирање за C# SMS API налог да бисте добили логове комуникације. Препоручујем да прво означите све checkbox-ове за логирање, како бисте добили детаљне информације о томе шта се дешава са поруком. Ако примите текст, видећете га у логу пре него што буде прослеђен вашем C# SMS клиенту. (Слика 10)

Омогућите логирање да бисте видели примљени SMS пре него што стигне до C# SMS клиента
Слика 10 - Омогућите логирање да бисте видели примљени SMS пре него што стигне до C# SMS клиента

Корак 6 - Додајте нову руту за симулирање долазног SMS-а

Направите нову SMS руту да бисте омогућили admin кориснику да шаље тест SMS поруке C# SMS API клиенту. Једна од најбољих ствари код коришћења Ozeki SMS Gateway-а је што вам омогућава да управљате вашим SMS порукама помоћу рутирајуће табеле. Можете подесити различите мобилне мрежне везе и одлучити која SMS порука ће ићи где. У нашем примеру желимо да рутирамо SMS поруке које долазе од admin налога ка C# SMS API клиенту. У стварном систему нећете рутирати SMS поруке од admin налога, уместо тога ћете рутирати SMS поруке примљене на мобилне мрежне везе ка вашем C# SMS API клиенту.

Да бисте направили нову SMS руту, кликните на Add new route у Ozeki SMS Gateway dashboard-у (Слика 11).

Додајте нову SMS руту за C# SMS клиент
Слика 11 - Додајте нову SMS руту

Да бисте примили текст док пишете ваш C# SMS код, користићете SMS gateway-ову форму за слање порука и послаћете SMS као admin корисник. SMS рута коју ћемо направити ће усмерити SMS поруке које долазе од admin-a ка testuser налогу. Testuser налог ће проследити SMS C# SMS клиенту (Слика 12).

SMS од GUI-ја ка C#
Слика 12 - SMS од admin-a ка C# клиенту

Изаберите testuser као одредиште за ваше долазне SMS поруке у форми за детаље рутирања. Ова рута ће слати SMS поруке од admin корисника ка testuser-у. Testuser ће проследити примљене SMS поруке C# API клиенту (Слика 13).

Направите SMS руту за симулирање долазних текстова
Слика 13 - Направите SMS руту за симулирање долазних текстова

Korak 7 - Pokretanje C# SMS primer projekta

Da biste pokrenuli svoj C# SMS projekat, potrebno je da kliknete na dugme Start u alatnoj traci Visual Studio-a. Nakon što kliknete na ovo dugme, Visual Studio će kompajlirati kod i pokrenuti ga u razvojnom okruženju. Izvršavanje programa će biti zaustavljeno kada algoritam naiđe na tačku prekida. Pošto je naš primer konzolna aplikacija, videćete crnu konzolnu prozor koja će se pojaviti nakon pokretanja izvršavanja. (Slika 14)

Slika 14 - Pokretanje C# SMS API projekta

Ukucajte "help" u konzolnom prozoru. Tekst pomoći će prikazati dostupne komande u ovom primeru projekta. Prva komanda koju ćete koristiti je komanda "connect". Ukucajte "connect 127.0.0.1:9580 testuser testpass" u konzolni prozor da biste povezali svoj C# SMS kod sa SMS Gateway-em. Imajte na umu da 127.0.0.1 znači da SMS gateway radi na istom računaru gde se izvršava vaš C# SMS kod. 9580 je TCP/IP port koji SMS gateway koristi za prihvatanje C# SMS klijenata (OZX korisnika), a testuser i testpass su kredencijali koje smo definisali prilikom kreiranja OZX korisničkog naloga u koraku 6 ovog SMS tutorijala. (Slika 15)

Slika 15 - Pokretanje C# SMS konzolne aplikacije

Nakon što se povežete sa SMS gateway-em, spremni ste da pošaljete svoj prvi SMS svom C# API klijentu.

Korak 8 - Slanje test SMS poruke

Pošaljite test SMS poruku klikom na dugme "New" u alatnoj traci Ozeki u SMS Gateway konzoli za upravljanje. Prilikom slanja test SMS-a, moraćete da definišete adresu primaoca i tekst poruke. Na kartici "Advanced" takođe možete definisati ID pošiljaoca, kao što je alfanumerički server ID za vaš SMS. (Slika 16)

test sms about to be received
Slika 16 - Pisanje test SMS poruke koja će biti primljena

Kliknite OK da biste poslali test SMS. Vaš SMS gateway će vam pružiti događaje vezane za slanje SMS-a, i biće vam prikazan ID poruke. Možete primetiti GUID string u poslednjoj liniji Slike 17.

SMS message ID to be used in the C# sms api
Slika 17 - ID SMS poruke koji će se koristiti u C# SMS API-ju

Nakon što je SMS poslat od strane admin korisnika, primljen je od strane OZX korisničkog naloga pod nazivom testuser. Ovaj korisnički nalog prosleđuje SMS C# SMS klijentu preko mreže. C# SMS klijent prima tekst preko TCP/IP veze uspostavljene metodom connect. Ako ste postavili tačku prekida u događaju OnMessageReceived, ovde će vaša tačka prekida pauzirati izvršavanje programa.

Korak 9 - Prijem SMS-a u C# konzoli

Pročitajte liniju sa primljenom porukom u C# konzoli. Videćete da je SMS poslat od strane admin@localhost na broj telefona +361111111. C# SMS API klijent je primio tekst 'Hello c sharp client' (Slika 18). Tekst poruke je predstavljen C# klijentu u obliku C# događaja. Rukovalac događaja OnMessageReceived se poziva kada se ovaj događaj pokrene, a poruka je postavljena u ulazni parametar metode OzMessageReceived.

receive sms in C# console
Slika 18 - prijem SMS-a u C# konzoli

Sledeća stvar koju želite da uradite je da pogledate log u SMS gateway-u.

Korak 10 - Pregled logova u SMS Gateway-u

Otvorite stranicu sa detaljima testuser-a klikom na link testuser u SMS Gateway kontrolnoj tabli Ozeki. Ovo će nas odvesti do loga događaja za testuser nalog. U ovom logu događaja očekujemo da vidimo komunikaciju koja se odvija između C# SMS klijenta i SMS Gateway-a. Takođe očekujemo da vidimo primljenu SMS poruku u logu komunikacije. (Slika 19)

Slika 19 - Otvaranje stranice sa detaljima testuser-a

Pronađite liniju "Received." u kartici događaja testuser-a. Videćete SMS primljen od strane C# SMS klijenta u ovoj liniji. Možete videti datum i vreme događaja, kao i detalje poruke. Ispod čitljivog log unosa, videćete log komunikacije OZX protokola. Ovaj log vam omogućava da debagujete komunikaciju u slučaju da se pojavi bilo kakav problem. (Slika 20)

Slika 20 - provera dolaznog SMS-a u korisničkom nalogu povezanom sa C# SMS API-jem

Примите текстуалну поруку са мобилне мреже

У претходним корацима симулирали смо долазну поруку. Админ корисник је послао поруку која је прослеђена на C# SMS пример. Следећи корак је повезивање система са мобилном мрежом. За ово имате више опција. Можете се повезати са интернет SMS провајдером користећи Ozeki 10 SMS гејтвеј на ваш Android телефон и користити уграђену SMS везу Android SMS гејтвеја. (Слика 21)

Слика 21 - Примање SMS-а са Android телефона

Да бисте овај приступ омогућили са Android телефоном, све што треба да урадите јесте да направите долазну руту у Ozeki SMS рутирајућој табели. Потребно је да направите ову руту између везе са мобилном мрежом и C# SMS API корисника (testuser). Да бисте пронашли најбољи начин везе са мобилном мрежом за ваш пројекат, погледајте наш водич како да повежете ваш SMS гејтвеј са мобилном мрежом. (Слика 22)

Слика 22 - Табела рутирања за примање SMS-а

Да резимирамо

Ово је био дугачак и веома детаљан списак упутстава који ће вам помоћи да започнете развој C# SMS пројекта који може да прима SMS поруке. Ако почнете да користите ово решење, убрзо ћете открити да је оно веома добро ако желите да примате SMS поруке брзо преко различитих веза са мобилном мрежом. Ово решење функционише било да желите да примате SMS преко Android мобилног телефона или преко IP SMS везе, као што је SMPP клијентска веза.

More information