SMPP: Revizyonlar arasındaki fark

[kontrol edilmiş revizyon][kontrol edilmemiş revizyon]
İçerik silindi İçerik eklendi
k reklam amaçlı dış bağlantılar çıkarıldı.
Ozaferayan (mesaj | katkılar)
Değişiklik özeti yok
1. satır:
'''SMPP''' ([[İngilizce]] '''Short Message Peer to Peer Protocol'''; Eşler Arası Kısa Mesaj Protokolü), [[telekominikasyon|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.
'''SMPP''' ('''Short message peer-to-peer protocol'''), [[SMS]] gönderici ve alıcıları arasında SMS alışverişini sağlamak üzere tasarlanmış uluslar arası bir telekomünikasyon [[protokol]]üdü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.
 
==Tarihçe==
SMPP küçük bir [[İrlanda]] teknoloji firması olan [[Aldiscon]] tarafından geliştirildi. Aldison daha sonra [[Logica]] tarafından satın alındı. SMPP 1999'dan beri [[SMS Forum]] adlı organizasyon tarafından geliştiriliyor. Günümüzde SMPP sürüm 5.0 olsa da en sık kullanılan sürümler 3.3 ve 3.4 sürümleridir.
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ü.
 
SMPP geliştirimine ara verildi ve SMS forumu dağıldı. SMS forum websitesiden:
 
<blockquote>Temmuz 31, 2007 - Kar 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 itibariyle terhis ediliecektir</blockquote>
 
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.
 
==SMPP işlevleri==
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ı [[Senkronizasyon|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.
 
===SMPP Sürümleri===
SMPP standardı zaman geçtikçe gelişti. Çokça kullanılan SMPP sürümleri şunlardır:
* SMPP 3.3 (en eski kullanılan sürümdür; sadece [[GSM]]'i destekler)
* 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))
* SMPP 5.0 (SMPP'nin en son versiyonudur; hücre yayını için destek eklenmiştir)
 
 
Geçerli sürüme, bağlama komutundaki '''interface_version''' parametresi ile aktarılır.
 
==PDU Biçimi==
SMPP PDU'su başlık ile başlar, gövde ile devam eder:
{| class="wikitable" style="text-align:center"
|-
| style="background: black; color: white; font-weight: bold" colspan="5" | SMPP PDU
|-
| colspan="4" | PDU Başlığı (zorunlu)
| PDU Gövdesi (İsteğe Bağlı)
|-
| Komut <br> Genişliği || Komut <br> Id || Komut <br> Durumu || Dizi <br> Id || PDU Gövdesi
|-
| 4 oktet
| colspan="4" | Genişlik = (Komut genişliği değeri - 4) oktet
|}
 
===PDU Başlığı===
Her PDU bir başlık ile başlar. Başlık 4 alandan oluşur, her alanın uzunluğu 4 oktettir:
* '''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 ID (command_id)''': SMPP işlemini (veya komutunu) tanımlar.
* '''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.
 
==Örnek==
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.
 
===PDU Başlığı===
'command_length', (60) ... 00 00 00 3C
'command_id', (4) ... 00 00 00 04
'command_status', (0) ... 00 00 00 00
'sequence_number', (5) ... 00 00 00 05
 
===PDU Gövdesi===
'service_type', () ... 00
'source_addr_ton', (2) ... 02
'source_addr_npi', (8) ... 08
'source_addr', (555) ... 35 35 35 00
'dest_addr_ton', (1) ... 01
'dest_addr_npi', (1) ... 01
'dest_addr', (555555555) ... 35 35 35 35 35 35 35 35 35 00
'esm_class', (0) ... 00
'protocol_id', (0) ... 00
'priority_flag', (0) ... 00
'schedule_delivery_time', (0) ... 00
'validity_period', (0) ... 00
'registered_delivery', (0) ... 00
'replace_if_present_flag', (0) ... 00
'data_coding', (0) ... 00
'sm_default_msg_id', (0) ... 00
'sm_length', (15) ... 0F
'short_message', (Hello wikipedia) ... 48 65 6C 6C 6F 20 77 69 6B 69 70 65 64 69 61''''
 
==SMPP'nin Tuhaflıkları==
Birçok kabuller olmasına rağmen, SMPP birkaç şüpheli özellik barındırır:
* GSM 7 bit varsayılan alfabesi için data_coding alanı boş olarak kalır.
* data_coding = 0 alanı için standartlaştırılmış bir anlam yoktur.
* Shift-JIS kodlaması desteği belirsizdir.
* submit_sm_resp alanı SMPP sürümleri arasında uyumsuzluk gösterir.
 
===GSM 7 bit varsayılan alfabesi için data_coding alanı boştur===
GSM 03.38'i temel alan SMPP 3.3'de 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.
 
===data_coding = 0 alanı için standartlaştırılmış bir anlam 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.
 
===Shift-JIS kodlaması desteği belirsizdir===
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_resp alanı SMPP sürümleri arasında uyumsuzluk gösterir===
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.
 
== Desteklediği işlemler ==
"https://tr.wikipedia.org/wiki/SMPP" sayfasından alınmıştır