C# SMS API klasa poruka

Klasa SMS poruka u C# SMS API je odgovorna za prenos poruke između C# SMS API aplikacije i Ozeki SMS Gateway-a. Ovo je klasa koju prosleđujete metodi Client.Send() kada želite da pošaljete SMS putem C#/Net SMS API-ja.

C# SMS API / ID SMS poruke

ID: ID poruke se koristi za identifikaciju SMS-a. Ovaj ID se vraća za izveštaje o slanju SMS-a i izveštaje o isporuci SMS-a.

C# SMS API / ID pošiljaoca SMS-a

FromConnection: Naziv SMS veze sa mobilnom mrežom preko koje je SMS stigao u Ozeki SMS Gateway. Na primer, ako se povezujete na mobilnu mrežu koristeći SMPP klijentsku vezu, ovo će biti "SMPPClient1" kada SMS stigne preko te veze. Ako koristite Android SMS gateway, ovo bi bilo "Vodafone UK" ako je SMS stigao preko SIM kartice koja koristi Vodafone mrežu.

FromAddress: ID pošiljaoca SMS poruke. Ako je SMS poslat sa mobilnog telefona sa brojem +44123467, ovo polje će sadržati vrednost +44123467. Ako želite da navedete prilagođeni ID pošiljaoca za SMS koji želite da pošaljete, ovo je polje koje treba da postavite. Možete uneti broj telefona u ovo polje, SMS shortcode povezan sa C# SMS API, ili alfanumerički ID pošiljaoca koji identifikuje C# SMS API.

FromStation: Ovo je ID SMS gateway računara koji je primio SMS. Svaki Ozeki SMS Gateway ima jedinstven globalni ID (GUID). Ako se vaš C# API povezuje na više SMS Gateway-a, ovaj ID je koristan za identifikaciju odakle SMS poruka dolazi.

C# SMS API / Primalac SMS-a

ToConnection: Koristite ovo polje ako želite da zaobiđete tabelu rutiranja SMS-a u SMS Gateway-u. Možete navesti naziv SMS veze sa mobilnom mrežom koja će se koristiti za isporuku SMS-a u ovom polju.

ToAddress: Broj telefona na koji treba poslati SMS. Ako želite da pošaljete tekstualnu poruku na mobilni telefon +3620123456, unesite +3620123456 u ovo polje. Ovo polje je obavezno za odlazne SMS poruke.

ToStation: Ovo polje se može koristiti ako želite da prosledite svoj SMS preko određenog SMS gateway-a. Ovo polje je relevantno samo ako radite sa više SMS Gateway-a. Možete ga bezbedno ostaviti prazno.

C# SMS API / Tekst SMS-a

Text: Ovo polje je mesto gde treba uneti tekst poruke. Ovo polje može sadržati poruke do 65 536 karaktera. Ako je dužina poruke duža od 160 karaktera, vaš SMS će biti poslat kao višedelna SMS poruka. Ovo polje je obavezno za svaku SMS poruku.

C# SMS API / Datumi

CreateDate: Ovaj vremenski pečat se automatski postavlja na Datetime.Now kada se kreira instanca klase poruka.

ValidUntil: Postavite ovo vreme u vašoj C# SMS API implementaciji, da navedete datum isteka SMS-a. Ako vaš SMS istekne, biće uklonjen iz outbox foldera. Ovaj datum se takođe koristi za postavljanje perioda važenja za SMS pre nego što se pošalje u mobilnu mrežu.

TimeToSend: Da biste zakazali SMS za buduće slanje u vašem C# SMS API-ju, postavite ovaj datum na budući trenutak u vremenu. Vaša SMS poruka će ostati u outbox-u SMS Gateway-a dok ne dođe vreme za njeno slanje. (Imajte na umu da je Ozeki SMS Gateway SMS server što znači da može da čuva i prosleđuje vaše SMS poruke).

C# SMS API / Zahtev za izveštaj o isporuci

IsSubmitReportRequested: Postavite ovo na true ako želite da primate SubmitAccepted izveštaj u vašoj C# SMS API implementaciji.

IsDeliveryReportRequested: Postavite ovo na true ako želite da primate izveštaj o isporuci u vašoj C# SMS API implementaciji.

IsViewReportRequested: Postavite ovo na true ako želite da primate izveštaj o pregledu u vašoj C# SMS API implementaciji. Imajte na umu da izveštaji o pregledu SMS poruka nisu vraćeni od strane mobilne mreže. Izveštaj o pregledu se koristi ako šaljete poruke primaocu u četu, i primalac pregleda vaše poruke u aplikaciji za četovanje.

C# SMS API / Oznake

Tags: Oznake poruka su opciona polja. Možete navesti polja u formatu naziv/vrednost. Ova lista dodatnih parametara može se koristiti za specificiranje prilagođenih vrednosti koje se koriste u prenosu SMS-a, kao što su sirovi PDU, shema kodiranja podataka, brojevi SMS portova i druge slične vrednosti, koje se mogu koristiti za kodiranje.

C# SMS API klasa poruke izvorni kod


using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace OZX
{
    public class OzxMessage : IOzxMessage
    {
        public string ID { get; set; }

        public string FromConnection { get; set; }
        public string FromAddress { get; set; }
        public string FromStation { get; set; }

        public string ToConnection { get; set; }
        public string ToAddress { get; set; }
        public string ToStation { get; set; }

        public string Text { get; set; }

        public DateTime CreateDate { get; set; }
        public DateTime ValidUntil { get; set; }
        public DateTime TimeToSend { get; set; }

        public bool IsSubmitReportRequested { get; set; }
        public bool IsDeliveryReportRequested { get; set; }
        public bool IsViewReportRequested { get; set; }

        //**********************************************
        // Opcioni tagovi
        //**********************************************

        static Dictionary<string, string> _tags;
        static Dictionary<string, string> Tags
        {
            get { return _tags ?? (_tags = new Dictionary<string,string>()); }
        }
        
        public Dictionary<string, string> GetTags()
        {
            lock (Tags)
            {
                return Tags.ToDictionary(entry => entry.Key, entry => entry.Value);
            }
        }

        public void AddTag(string key, string value)
        {
            lock (Tags)
            {
                if (Tags.ContainsKey(key))
                    Tags[key] = value;
                else
                    Tags.Add(key, value);
            }
        }

        //**********************************************
        // Konstrukcija
        //**********************************************

        public OzxMessage()
        {
            ID = Guid.NewGuid().ToString();
            CreateDate = DateTime.Now;
            TimeToSend = DateTime.MinValue;
            ValidUntil = DateTime.Now.AddDays(7);
            IsSubmitReportRequested = true;
            IsDeliveryReportRequested = true;
            IsViewReportRequested = true;
        }


        //**********************************************
        // To string
        //**********************************************
        public override string ToString()
        {
            var sb = new StringBuilder();
            if (!string.IsNullOrEmpty(FromAddress))
                sb.Append(FromAddress.ToString());
            else
                sb.Append(FromConnection);
            
            sb.Append("->");
            
            if (!string.IsNullOrEmpty(ToAddress))
                sb.Append(ToAddress.ToString());
            else
                sb.Append(ToConnection);

            if (Text != null)
            {
                sb.Append(" '");
                sb.Append(Text);
                sb.Append("'");
            }
            return sb.ToString();
        }

    }
}

More information