SMPP

SMPP (İngilizce Short Message Peer to Peer Protocol; Eşler Arası Kısa Mesaj Protokolü), telekominikasyonda, Harici Kısa Mesaj Varlıkları (ESME), Yönlendirme varlıkları (RE) ve Mesaj Merkezleri (SMSC) arasında kısa mesaj verisinin transferi için, esnek bir veri iletişim arayüzünün sağlanması amacıyla tasarlanan, özgür, endüstri standardı olan bir protokoldür. Genellikle üçüncü partilerde(haber organizasyonları gibi) toplu mesaj iletimini sağlamak amacıyla kullanılır. Dolayısıyla, UMTS, IS-95 (CDMA), CDMA2000, ANSI-136 (TDMA) ve iDEN gibi GSM olmayan SMS protokollerine destek verir. SMPP, SS7 ağlarının dışında, kısa mesaj değiş tokuşu için yaygın olarak kullanılır.Genellikle GSM operatörleri ve katma değerli servis sağlayıcılar arasında toplu SMS gönderimlerinde kullanılır. Bir dış SMS servisi (ESME) SMPP kullanarak TCP/IP veya X.25 üzerinden kendi uygulama katmanında bir Servis Mesajı Merkezi (SMSC) ile SMS alışverişinde bulunabilir.SMPP, başlangıçta küçük bir İrlanda şirketi olan ve daha sonra Logica'nın (firma parçalandı ve artık Acision olarak biliniyor) satın aldığı Aldiscon tarafından tasarlandı. Protokol, aslen geliştirici Ian J Chambers tarafından, SMSC'nin mesaj iletimindeki işlevselliğini SS7 kullanmaksızın test edebilmek amacıyla yaratıldı. 1999 yılında, resmen Logica SMPP'yi, önceleri adı SMPP Geliştiricileri Forumu olan, sonra The SMS Forum olarak adlandırılan (artık forum dağıldı) topluluğa teslim etti. SMPP protokolünün teknik özellikleri, 2007 yılı sonunda kapanan SMS Forum'un web sitesi sayesinde halen mevcuttur. SMPP sahipliği, SMS Forum'un dağılması ile tekrar Acision firmasına döndü.Temmuz 31, 2007 - Kâr amacı gütmeyen, uluslararası kablosuz iletişim endüstrisinin yararı için, görevi SMS'i (Short Message Service) geliştirme, teşvik etme ve tanıtma olan SMS Forum, 27 Temmuz 2007 tarihi itibarıyla terhis ediliecektir.Yapılan haberle ilişkili bir basın açıklaması, aynı zamanda bu sitenin kısa bir süre sonra askıya alınacağını uyarmıştı.Bunun aksine site uzun bir süre daha çoğu işlev ve özellikleri sunar durumdaydı (31 Ocak 2012'ye kadar).SMS Forum'un eski teknik moderatörü ve ağ uzmanı olan Cormac Long'a göre site, çalışmasını durdurdu. SMPP tanımlamaları için Acision ile iletişim kurulması gerekir. Dosyalar ayrıca birçok diğer mevcut sitede mevcut olarak bulunabilir.Protokol, PDU'ların (İngilizce Protocol Data Units, protokol veri birimlerinin veya paketlerin) istek/cevap çiftlerinin OSI 4. katmanı bağlantıları (TCP oturumu veya X.25 SVC3) üzerinden takas edilmesine dayanır. PDU'lar verimli olmaları için ikili olarak kodlanmışlardır. Veri takası eş zamanlı olarak yapılabilir: Her eş gönderilecek her PDU için cevap bekler. Asenkron olarak da yapılması mümkündür: çoklu istekler bekleme olmaksızın gönderilebilir ve diğer eş tarafından düzensiz sırayla kabul edilebilir. İsteklere pencere adı verilir; en iyi performans için, iletişimde bulunan taraflar aynı pencere boyutu ile yapılandırılmış olmalıdır.BOUND_RX: Alıcı (receiver) olarak bağlı. Bu oturum tipinde dış mesaj sistemi (ESME) mesaj merkezinden (SMSC) mesaj almaya hazırdır.SMPP 3.4 (Etiket Uzunluğu Değeri (TLV) parametreleri,  GSM olmayan SMS teknolojileri ve telsiz alıcı-verici desteği eklenmiştir (tekil bağlantılar mesajları alabilir ve iletebilir))Komut Genişliği (command_length): PDU'nun tamamının uzunluğu (komut genişliğinin kendisi de dahil olmak üzere); 16 oktetten küçük veya eşit olmak zorundadır.Komut Durumu (command_status): İsteklerde her zaman 0 değerini alır; cevaplarda ise, işlemin sonucu ile alakalı bilgiyi tutar.Dizi ID (sequence_number): SMPP oturumu içerisindeki istekler ve cevaplar arasındaki ilişkiyi belirtmek için kullanılır; asenkron iletişime izin verir (pencereleme).SMPP'de bütün sayısal alanlar ilk oktetin En Anlamlı Bit (MSB) olduğu, big endian sıralamayı kullanır.Aşağıdaki örnekte 60 oktetlik submit_sm PDU'nun ikili kodlanmış hali bulunmaktadır. 16'lık oktetler halinde gösterilen veri, bu PDU'nun başlığının ve gövdesinin tekil döküm halidir.Bu, SMPP özelliklerinin, submit_sm PDU'sunun tanımıyla bölge bölge nasıl ikili kodlandığını gösteren en iyi örnektir.İlk tırnak içindeki terimler bölümün adını(command_length gibi), virgülden sonraki parantez içerisindeki rakamlar ve/veya harfler bölgeye karşılık gelen değeri ((60)), sonraki oktetler ise bu değerlerin ikili karşılığını (... 00 00 00 3C) temsil eder.GSM 03.38'i temel alan SMPP 3.3'te data_coding değerleri bulunmasına rağmen, SMPP 3.4'ten beri GSM 7 bit varsayılan alfabesi için data_coding değeri yoktur.SMPP 3.4 ve 5.0'a göre data_coding = 0,  "SMSC Varsayılan Alfabesi" anlamına gelir. SMSC'nin türüne ve yapılandırmasına bağlı olarak kodlamaya tabi tutulduğunda gerçekten bu anlamı verir.CDMA'daki C.R1001 standardı kodlamalardan biri olan Shift-JIS Japonca için kullanılır. SMPP 3.4 ve 5.0 Japonca için üç kodlama tanımlar (JIS, ISO-2022-JP ve Genişletilmiş Kanji JIS), fakat hiçbiri CDMA MSG_ENCODING 00101 ile tanımlanamaz. SMPP'deki Shift-JIS'de mesajları taşımak için Piktogram kodlama (data_coding = 9) kullanılır.submit_sm başarısız olduğunda SMSC, sıfır olmayan bir command_status'un değeri ve "empty" message_id ile bir  submit_sm_resp döndürür.