SMPP - Кыска билдирүү Тең-теңге протоколу

Салам! Мессенджерлер жана социалдык тармактар ​​күн сайын байланыштын салттуу ыкмаларын алмаштырып жатканы менен, бул SMSтин популярдуулугун төмөндөтпөйт. Популярдуу сайтта текшерүү, же транзакция жөнүндө билдирүү кайталанат, алар жашайт жана жашайт. Мунун баары кантип иштейт деп ойлонуп көрдүңүз беле? Көп учурда, SMPP протоколу төмөндө талкууланат массалык билдирүүлөрдү жөнөтүү үчүн колдонулат.

Буга чейин Habréде smpp жөнүндө макалалар бар болчу, 1,2, бирок алардын максаты протоколдун өзүн сүрөттөп берүү эмес болчу. Албетте, сиз дароо баштапкы булактан баштасаңыз болот - мүнөздөмөлөрү, бирок анын кыскача мазмуну болсо жакшы болмок деп ойлойм. Мен мисал катары v3.4 аркылуу түшүндүрөм.Сиздин объективдүү сыныңыз үчүн кубанычта болом.

SMPP протоколу бир теңдешүү протоколу болуп саналат. Бул ар бир персонал/хаб сервери бирдей укуктарга ээ экенин билдирет. Эң жөнөкөй учурда, SMS билдирүү схемасы төмөнкүдөй көрүнөт:

SMPP - Кыска билдирүү Тең-теңге протоколу

Бирок, эгерде улуттук оператордо кайсы бир алыскы аймакка каттам жок болсо, ал бул үчүн ортомчудан – SMS хабдан сурайт. Кээде, бир SMS жөнөтүү үчүн, бир нече өлкөнүн, ал тургай, континенттердин ортосунда чынжыр куруу керек.

Протокол жөнүндө

SMPP бул PDU алмашууга негизделген жана SMS жана ussd билдирүүлөрүн өткөрүү үчүн TCP/IP же X25 сессиялары аркылуу берилүүчү колдонмо катмарынын протоколу. Адатта, SMPP туруктуу режимде колдонулат, бул убакытты үнөмдөөгө жардам берет. SMPP кардар-сервер байланыш моделин колдонот.

Байланыш режими

SMPP - Кыска билдирүү Тең-теңге протоколу

SMPP аркылуу жөнөтүүчү менен SMS-борбордун ортосунда билдирүүлөрдү алмашуу төмөнкүдөй режимдерде жүргүзүлүшү мүмкүн:

Передатчик (передатчик) – кабарды бир багытта, бирден берүү
Алуучу - SMS борборунан гана билдирүү алат.
Transreceiver (transceiver) - SMS борбору менен колдонуучунун ортосунда билдирүүлөрдү алмашуу

түзүлүш

SMPP - Кыска билдирүү Тең-теңге протоколу

Билдирүүнүн узундугу

Бир SMS билдирүү кириллицада терүүдө 70 белгиден жана 157 латын тамгасынан ашпашы мүмкүн + 3 UDH Эгерде сиз көп сандагы символдор менен SMS жөнөтсөңүз, ал бир нече сегменттерге бөлүнүп, кабыл алуучу түзүлүштө бириктирилет. Сегменттөөдө белгилердин саны кабардын бир бөлүгүн көрсөткөн кабардын аталыштары менен кыскартылат. Ошондуктан, чоң SMS-билдирүү жөнөтүүдө ал максимум 153 латын тамгасын же 67 типтүү эмес белгини камтыйт.

Маалыматтарды коддоо схемасы

Бирок, символдор билдирүүнү жеткирүү үчүн коддоону талап кылат. SMPP протоколунда атайын талаа коддоо үчүн жооптуу - Маалыматтарды коддоо схемасы же DCS. Бул билдирүүлөр кантип таанылышы керек экенин көрсөткөн талаа. Мындан тышкары, DCS талаа камтыйт:

  • коддоону аныктаган символдор топтому;
  • билдирүү классы;
  • окугандан кийин автоматтык түрдө өчүрүү өтүнүчү;
  • билдирүү кысуу көрсөткүчү;
  • уктуруу билдирүү тили;

Стандарттык 7-бит алфавити (GSM 03.38). Бул GSM билдирүү системасы үчүн иштелип чыккан. Бул коддоо англис жана бир катар латын тилдерине ылайыктуу. Ар бир белги 7 биттен турат жана октетке коддолгон.

UTF-16 (GSM UCS2де) 7 биттик алфавитте жетишпеген белгилерди кошуу үчүн UTF-16 коддоосу иштелип чыккан, ал билдирүүнүн өлчөмүн 160тан 70ке чейин кыскартуу аркылуу кошумча белгилерди (анын ичинде кириллица) кошот; коддоонун бул түрү дээрлик толугу менен Юникодду кайталайт.

8 биттик колдонуучу аныктаган маалыматтар. Аларга KOI8-R жана Windows-1251 кирет. Бул чечим ошол эле UTF-16га салыштырмалуу үнөмдүү көрүнөт да. Ар кандай түзмөктөрдө шайкештик жөнүндө акылга сыярлык суроо туулат. Анткени бул учурда эки түзмөк тең алдын ала конфигурацияланышы керек.

Билдирүү классы

  • Колдонуучунун талабы боюнча телефондун эстутумунда сакталган Class0, же флеш билдирүү;
  • Class1 же телефондун эсинде сакталгандар;
  • Class1 же телефондун эсинде сакталгандар;
  • Class2 билдирүүнүн мобилдик терминалдын эстутумунда сакталышын камсыз кылууга тийиш, антпесе, сактоо мүмкүн эместиги жөнүндө SMS-борборго эскертиши керек;
  • Class3 - бул учурда телефон аппараттагы эстутумдун көлөмүнө карабастан, билдирүүнү сактоого боло тургандыгы жөнүндө эскертме жөнөтүшү керек. Билдирүүнүн бул түрү билдирүү алуучуга жеткенин билдирет;

Кабардын түрү

Үнсүз билдирүү (SMS0) Мазмуну жок SMS билдирүүнүн түрү. Бул SMS эскертүүсүз келет жана аппараттын экранында көрүнбөйт.

пакет

Ар бир pdu операциясы жупташкан жана сурам менен жооптон турат. Мисалы: байланыш орнотулганын айткан буйрук (bind_transmitter / bind_transmitter_resp) же билдирүү жөнөтүлдү (deliver_sm / delivery_sm_resp)

SMPP - Кыска билдирүү Тең-теңге протоколу

Ар бир pdu пакети эки бөлүктөн турат - баш жана корпус. Баштын түзүлүшү бардык pdu пакеттери үчүн бирдей: команданын узундугу - пакеттин узундугу, id - пакеттин аталышы, ал эми статус буйругу билдирүү ийгиликтүү же ката менен жөнөтүлгөнүн көрсөтөт.

Кошумча TLV параметрлери

TLV (Тег узундугунун мааниси) же кошумча талаалар. Мындай параметрлер протоколдун функционалдуулугун кеңейтүү үчүн колдонулат жана талап кылынбайт. Бул талаа pdu талаасынын аягында пайда болот. Мисал катары, TLV dest_addr_np_information колдонуу менен, сиз сандын көчмө жөндөмдүүлүгү жөнүндө маалыматты берүүнү уюштура аласыз.

Тон жана Нпи

TON (Type of Number) параметри SMSCге даректөө форматы жана тармактын түрү жөнүндө маалымат берет.
NPI (Numbering Plan Identification) номерлөө планын көрсөтүүчү параметр.

SMPP - Кыска билдирүү Тең-теңге протоколу

Билдирүү булагы дареги, же альфа аты

Телефонуңузга жөнөтүлгөн билдирүүлөр эки түрдүү болот: санариптик жана алфавиттик. Санариптик номерлер узун (телефон номерине окшош) же кыска болушу мүмкүн. Кээде операторлор нейтралдуу аталыштардан жөнөтүүгө чектөө коюшат, мисалы Infosms, Alert ж.б. Кээде операторлор алардын тармагында аты катталбаса, трафикке уруксат бербей коюшат. Бирок, бул оператордун өзгөчөлүктөрү.

Тапшыруу этаптары

SMPP - Кыска билдирүү Тең-теңге протоколу

SMS-ТАПКЫРУУ - бул MO FSM билдирүүсүн жөнөтүүдө (мобилдик терминалдан кыска билдирүү)
SMS-ТАПШЫРУУ — билдирүү SMSC тарабынан жөнөтүлгөндүгүн тастыктоо
SRI SM (SendRoutingInfo) - SMSC абоненттин MSC / VLR жайгашкан жерине байланыштуу HLRден маалымат алат
SRI SM RESP — Абоненттик позиция эт боюнча HLRден жооп
MT-FSM — жайгашкан жерди алгандан кийин «Кыска билдирүүнү багыттоо» операциясы аркылуу билдирүү жөнөтүлөт
MT-FSM ACK — SMSC билдирүү жөнөтүлгөнү тууралуу жооп
SMS-АБАЛЫ ОТЧЕТ — SMSC билдирүү жеткирүү статусун жөнөтөт.

Билдирүү жеткирүү абалы

SMS-АБАЛЫ ОТЧЕТ бир нече маанилерди кабыл алышы мүмкүн:
DELIVRD билдирүү ийгиликтүү жеткирилди
ЧЕТ АЛУУ — SMS борбору тарабынан четке кагылган билдирүү
БҮТКӨН — билдирүү TTL аяктагандан кийин жөнөтүүчү кезектен алынып салынат (билдирүүнүн иштөө мөөнөтү)
UNDELIV - жеткирилбей калган башка учурлар
БЕЛГИСИЗ- жөнөтүү боюнча жооп жок.

Трансфер каталары

Кээде SMS билдирүүлөр абонентке жеткирилбей калышынын себептери бар. Бул себептердин натыйжасы каталардын пайда болушу болуп саналат. Каталар PDUs_sms_resp дарегине кайтарылат. Бардык каталарды убактылуу (Убактылуу) жана туруктуу (Туруктуу) деп бөлүүгө болот.

Мисал катары, absent_subscriber убактылуу катары классификацияланышы мүмкүн - абонент жеткиликтүү эмес же онлайн эмес, ал эми туруктуу - абонент жок. Болгон каталарга жараша бул билдирүүлөрдү кайра жөнөтүү саясаты түзүлөт.

Мисалы, эгер абонент чалуу менен бош эмес болсо жана MT телефону бош эмес деген катаны алса, билдирүү бир нече мүнөттөн кийин кайра жөнөтүлүшү мүмкүн, бирок, эгер абоненттин билдирүүсүн кабыл алуу кызматы бөгөттөлсө, кайра жөнөтүүнүн мааниси болбойт. Сиз SMSC баракчаларында каталардын тизмесин таба аласыз, мисалы, сыяктуу бул.

Source: www.habr.com

Комментарий кошуу