smpp протокол. SMPP: Центърът чака SMS.... Запазени кодове за грешка за smpp връзка

Има такъв клас услуги в мрежата,
които дават възможност на потребителите
извикайте всякакви функции чрез изпращане на SMS до
специални номераи получаване на отговори също в
СМС Например, можете да се регистрирате
имейл кутия, за която можете да настроите
препращане входящ сапункъм вашия телефон.
Можете да получавате новини в реално време и
участвайте в чатове. Възможно чрез SMS
поръчайте снимки и мелодии за вашите
мобилни телефони. Накрая можете да участвате в
гласуване. Някои OpSoS
поддържат такава услуга, когато за всеки
той не плаща за SMS изпратените от потребителя
само на OpSoSu, но и на собственика на услугата,
при плащане на услуги, най-често
виртуален. Когато използваме телефона, ние не го правим
Прилагаме съпътстващия разход на пари
същата стойност като при използване на WebMoney
или при извършване на плащания чрез SberBank.
Възможностите за SMS дават широк обхват за
електронен бизнес. Много хора са привлечени от
примамливата перспектива за получаване на бели дробове
пари, когато просто гледаш
процес и броите пари, но те работят за
вашите скриптове на сървъра. Не си поставям цели
създайте ръководство за нов тип "бизнес"
за един човек." В тази статия аз
Само ще заявя техническа странапроблеми
автоматизирана обработка на SMS.

Различни подходи

В зависимост от възложените задачи и на
налична сума пари, която можете да изберете
едно от следните решения:

  • Можете да изпращате SMS само чрез формуляри
    на уебсайтове на OpSoSov или на някои
    портали. Безплатно е. Така че е възможно
    прилагайте изпращане на SMS от вашия портал,
    но за изпълнение платена услуга, от
    които потребителите очакват специална надеждност,
    това не е сериозно. За тях вече е писано много,
    така че няма да се фокусирам върху тях,
    особено след като всички те са в момента
    са защитени от теста на Тюринг, така че това
    методът в момента не е наличен.
  • Специални http-to-SMS шлюзове за бизнес приложения.
    Плащаш и те ти дават възможност да правиш http заявки
    изпращайте SMS от вашите скриптове до всеки
    точка на света, а също и получаване на SMS,
    изпратени на специални номера. Така
    много е лесно да направите портал с SMS форма или
    известие за нови писма.
  • Протоколът SMPP позволява не само
    получават и предават SMS, но и получават
    изпратени известия за доставка
    съобщения, както и анулиране и замяна
    съобщения. Разпределя ви се номер или
    цял набор от числа, получавате всичко
    съобщения, идващи към него и
    изпращайте съобщения от произволен номер.
    Евентуално уведомление за получени
    съобщения: SMS центърът е свързан към
    предварително зададени IP и порт и
    изпраща ви съобщения.

В тази статия ще говоря за SMPP като
усъвършенстван метод за работа с SMS шлюзове.

С този протокол можете да получите
и изпращайте SMS чрез така наречените SMS центрове.
SMS центровете са портали между интернет
И клетъчни мрежи. За да работите с това
протокол има готови решения,
например Net::SMPP в Perl. Описание на протокола и
връзки към софтуерни продуктиможе да се намери
на www.smpp.org.
Последна версияпротокол по това време
писане на статия - 3.4. Можете също да изтеглите там
програма за тестване на клиентски софтуер - SMPP
Инструмент за тестване на клиенти (SCTT). Все още не сте закупили достъп до
истински SMS център, трябва да го тествате по някакъв начин
вашите програми. Единственото неудобно нещо е, че SCTT
написано за Linux, така че трябва
бъркайте с Virtual PC или веднага кодирайте под Linux.

Описание на протокола

Връзката може да бъде инициирана по следния начин:
потребител, посочен в описанието
Протокол за външни кратки съобщения (ESME) и SMS център
(SMSC). Имайте предвид, че поради тази възможност
Би било погрешно да го наречем SMS център
сървър, тъй като може да бъде
клиент. Първият вариант се използва като
обикновено при изпращане на съобщения, а второто
при получаване, въпреки че никой не забранява
изпращане на съобщения чрез връзка,
инсталирани от SMS центъра и получаване чрез
връзка, установена от вас самите. всичко
данните в SMPP протокола са вложени в блокове,
наречени протоколни единици данни (PDU), които имат
заглавка, указваща размера на блока и
код на операцията.

Формат на заглавката на PDU:

DWORD Length - дължината на целия блок, включително
заглавие
Команда DWORD
Състояние на DWORD - 0 в заявки и кодове за грешки и отговори
DWORD SequenceNumber - пореден номер.

Серийният номер в отговора трябва
равно на числото в заявката.

Всички числа в SMPP са кодирани така, че най-високото
байт вляво. За това можете да използвате
функция htonl(). Всички PDU са разделени на заявки и
отговори. В кодовете на заявките най-значимият бит е
нула, около един отговор. За всяка молба
отговорът трябва да дойде, освен
известия за получени съобщения. Чао
не е получен отговор, операцията се разглежда
недовършени. Ако няма отговор
преди връзката да бъде изгубена, участникът, било то SMSC
или ESME, трябва да повтори заявката. протокол
асинхронен, т.е. подателят на заявката може
изпратете друга заявка без да чакате
отговор, като отговорите могат да последват по всяко време
последователности. Всички операции също
се разделят на такива, които могат да се използват
ESME, които могат да се използват от SMSC и други
който може да се използва и от двамата
партии. Връзката може да е в
следните състояния:

— Отворен (все още не е удостоверен)
— Трансфер
— Рецепция
— Приемане и предаване
- Затворено

В състояние "Отворено", т.е. веднага след това
установяване на TCP връзка ESME, който желае
изпрати SMS, трябва да изпрати заявка до bind_transmitter.
За получаване - bind_receiver. И за двете действия
незабавно - bind_transceiver. Тази заявка изпраща
вход и парола. Ако връзката е установена
SMSC, тогава първо трябва да изпрати заявка за прехвърляне
и подайте данните за вход и парола в него, защото в
В тази ситуация вече имате нужда от неговите права за достъп
проверка. Например, ще ви покажа как да го гладите
команда bind_transmitter:

Заглавие:
DWORD дължина
DWORD команда = BIND_TRANSMITTER
Състояние на DWORD = 0
DWORD Пореден номер

Данни:
Линия за влизане
Парола за низ
Тип на низовата система (например WWW или Mail)
Версия на протокола BYTE = 0x34
BYTE addr_ton (тип номер), 0 = по подразбиране
BYTE addr_npi (Номерен план), 0 = по подразбиране
Низ Диапазон от числа, празен низ,
ако самият доставчик знае какви номера ние
ние служим

Низовете са ASCIIZ, т.е. завършващи с нула.

Повечето от параметрите на тази заявка
могат да бъдат нули или празни низове. IN
отговорът на такова искане ще дойде
който в допълнение към заглавката ще съдържа SystemId на SMS центъра,
и полето за състояние ще бъде нула, ако е успешно. Ако
е установена предавателна връзка, тогава ние
имаме право да изпращаме заявки submit_sm и ако
е установена връзка за приемане, тогава имате нужда
изчакайте заявки за доставяне_s, съдържащи текстове
получени съобщения и да ги обработвате.
След като завършим работата, изпращаме съобщението за развързване и
прекъснете връзката.

Повечето заявки имат куп
параметри, над които не можете особено
вземете парна баня и ги обезсмислете. Така че въпреки
впечатляващо количество документация,
прост SMS телефонен секретар, базиран на
които можете да изградите някои
помощна система, разбрах я
с обем само 25 kB текст на C++ и тест за
SCTT показа, че всичко работи и остава
просто купете достъп до SMSC :).

С кого да се свържа

Съобщения чрез SMPP протокол за вашите собствени
Много OpSoS приемат клиенти, така че
няма конкретни препратки. Потърсете информация за
уебсайт на OpSoS, който предпочитате
работа. В допълнение, вашия собствен SMS център,
работи по протокола SMPP, предоставя

Съкращението SMPP означава Short message peer-to-peer protocol, протокол, използван за предаване на SMS, USSD и други видове съобщения, обикновено в VAS системи. В края на статията има списък на термините, използвани в текста.

SMPP е разработен от Aldiscon от Ирландия, който по-късно е придобит от Logica. През 1999 г. SMPP попада под контрола на Форума на разработчиците на SMPP, по-късно преименуван на SMSForum. Протоколът се основава на обмена на PDU (протоколни единици данни), предавани на ниво мрежов модел 4OSI. Обменът на пакети може да се извърши както синхронно (след изпращане на заявка, по-нататъшният обмен на пакети се спира до получаване на отговор), така и асинхронно (заявките се изпращат без забавяне, отговорите се обработват, когато пристигнат). Доскоро последната публикувана спецификация беше SMPP 3.4, а спецификацията SMPP 5.0 за дълго времебеше собственост на Logica, но в момента също е достъпен. Обикновено този протокол се използва в режим постоянна връзка, което ви позволява значително да увеличите скоростта на предаване, тъй като няма нужда да установявате връзка всеки път. Връзката може да бъде инициирана или от потребител, наречен External Short Message Entity (ESME) в описанието на протокола, или от SMS център (SMSC).

Има няколко режима на свързване:

Режим „Предавател” (предавател) – режим само за изпращане на съобщения до SMSC и получаване на съответни отговори, без получаване на входящи съобщения (DELIVER_SM пакети);

Режим „Получател“ (приемник) - в този режим всичко е обратното, само получаване на входящи съобщения и връщане на съответните отговори от SMPP клиента към SMSC, изпращането на кратки съобщения през този режим не се извършва (SUBMIT _SM пакети);

режим " Приемопредавател" - режим за изпращане и получаване на съобщения, процесмогат да бъдат реализирани синхронно или асинхронно.

Всички данни в протокола SMPP, както беше споменато по-рано, са вложени в блокове, наречени протоколни единици данни, които се състоят от заглавка и тяло.

Заглавието на PDU пакета съдържа следните полета:

command_length - показва общ бройоктети, съдържащи се в този пакет, включително полето за дължина.

command _ id – идентификатор на командата (например подайте _ sm,заявка _ sm и т.н.). ИИдентификационният номер на командата за отговор е идентичен на съответния идентификатор на командата за заявка, но с зададени 31 бита.

command_status - показва успеха или неуспеха на заявката. Това поле е значимо само в съобщението за отговор и трябва да бъде зададено на NULL в съобщенията за заявка.

последователност _ номер – в товаПолето съдържа пореден номер, който позволява заявките и отговорите да бъдат свързвани за целите на корелацията. Използването на поредни номера позволява SMPP пакетите да се обменят асинхронно.

Тялото на PDU не е задължително и може да не бъде включено във всеки PDU пакет. Структурата на тялото е описана отделно в спецификацията на протокола, в зависимост от типа PDU.

Също така PDU пакетът може да съдържа незадължителни параметри, имащи общ формат TLV (Tag, Length, Value) Тези параметри предоставят механизъм за бъдещо въвеждане на нови параметри, както и когато бъдат дефинирани в бъдещите версии на протокола SMPP. Незадължителните параметри са полета, които могат да бъдат включени по желание в SMPP съобщение; удобна поръчкав раздела за допълнителни параметри на предадения PDU и не е задължително да бъдат кодирани в реда, представен в спецификацията на протокола.

Етикет – идентификатор на този специфичен параметър на опцията;

Дължина - определя дължината на полето Стойност в октети (тази дължина не включва дължината на полетата Tag и Lengt). Незадължителното поле на параметъра Length винаги ще бъде с дължина 2 октета;

Стойност – това поле съдържа действителните данни за този параметър на опцията.

Области на приложение на кратки съобщения в модерен святса страхотни, SMPP протоколът е идеален за бърз трансфер голямо количествосъобщения, например за компании, които имат голяма основаклиенти или за провеждане на SMS гласуване в реално време, където има голям потоквходящи и изходящи данни.

| Повече ▼ Подробно описаниеМожете да намерите протокола в спецификацията на руски тук: SMPP_v3.4_rus.pdf

Основни понятия и съкращения

SM (Short Message) – кратко съобщение;

SMS (Short Message Service) - услуга за кратки съобщения, прехвърля SM между клиенти на мобилни мрежи, както и външни клиентски приложения;

USSD (Unstructured Supplementary Service Data) е стандартна услуга в GSM мрежи, което ви позволява да организирате интерактивно взаимодействие между мрежов абонат и сервизно приложение в режим на предаване на кратки съобщения;

MMS (Multimedia Messaging Service) е система за предаване на мултимедийни съобщения (изображения, мелодии, видеоклипове) през клетъчни мрежи.

SMSC (Short Message Service Center) - Център за обслужване на кратки съобщения - основа за функционирането на SMS;

VAS (Value Added Services) – услуги, които носят допълнителен доход;

ESME (External Short Message Entity) - Външен клиентско приложение, прилагане на SMPP протокола, получаване или изпращане кратки съобщения;

HLR (Home location register) - Постоянна база данни за абонати, свързани към мобилна мрежа. HLR осигурява маршрута за предаване на SMS до получателя на SM;

Октет - 8 бита. На руски октетът обикновено се нарича байт.

Изпращане на SMS чрез smpp, smpp gateway

Един от протоколите за изпращане на SMS съобщения е SMPP. Той описва процеса на взаимодействие между получателя на съобщението, т.е. smpp клиента и smpp сървъра, използвайки специална системапредаване на данни.

Използвайки изпращането на CMC съобщения чрез SMPP протокола като основа, вие ще можете да:

  • 1) използвайте различни текстови формати, както и wap натискане на sms;
  • 2) изпращайте не само кратки, но и дълги текстове;
  • 3) получават подробни отчети за доставени и забавени SMS;
  • 4) обмен на съобщения в двупосочен формат;
  • 5) изберете скоростта на изпращане.

По този начин, smpp протоколима големи възможности, които обаче са свързани с някои характеристики на използване и инсталиране, които ще разгледаме.

ИМАТЕ ЛИ НУЖДА ОТ КАЧЕСТВЕН SMPP GATEWAY?Свържете се с нас и ние ще осигурим тестов достъп!

Характеристики на работа с SMPP

За да работите с SMPP протокола, трябва да имате подходящ софтуер (SMPP клиент, версия 3.4). В този случай оборудването трябва да бъде постоянно свързано към шлюза на компанията SMS-Agent. За да изпращане на SMSчрез SMPP се извърши бързо и без забавяне, всички клиенти на нашата компания преминават тест за съвместимост на оборудването. Това ви позволява да се отървете от много технически трудности в началния етап.

Освен това, преди да използват протокола за изпращане на SMS съобщения, потребителите могат да тестват изпращането на SMS съобщения чрез SMPP, за да определят желаната скорост на доставка.

Специалистите на SMS-Agent са винаги готови да предоставят съвети относно използването, свързването и тестването на услугата SMPP, което ще опрости вашата задача.

Връзка чрез SMPP протокол

System_id - потребителско име, регистрирано в системата
парола - потребителска парола
адрес - smpp.сайт
порт - 2775
Портът, използван за криптирана SSL връзка, е 3443

Поддържани SMPP команди

Параметри за изпращане на съобщение (SUBMIT_SM) чрез SMPP

Правила за работа с SMPP връзка

Когато се установи връзка, на клиента се дават 10 секунди, за да изпрати командата BIND_TRANSMITTER или BIND_TRANSCEIVER. В противен случай връзката ще бъде затворена от сървъра.

Клиентът е длъжен да отговори на всички изпратени от сървъра пакети със съответния resp пакет в рамките на 1 минута. В противен случай връзката ще бъде прекъсната от сървъра без изпращане на UNBIND.

Получаване на статус на доставка на съобщението

Има две опции за получаване на статус на доставка от smpp протокол(активни и пасивни). Пасивен варианте за предпочитане.

Пасивната опция включва настройка на флага registered_delivery на пакета SUBMIT_SM.
След като съобщението достигне окончателното си състояние, сървърът ще изпрати пакет DELIVER_SM със съобщение за разписка за доставка.
Форматът на съобщението за разписка за доставка е по-долу.

Активна опцияосигурява периодично проучване на състоянието на съобщението чрез изпращане на QUERY_SM.

Формат на разписката за доставка

"id:IIIIIIIII sub:SSS dlvrd:DDD дата на изпращане:YYMMDDhhmm done date:YYMMDDhhmm stat:DDDDDDD err:E Текст: . . . . . . .."

Запазени кодове за грешка за smpp връзка

Код Описание
0x0400 (1024) Кодирането не е разпознато
0x0401 (1025) Твърде много голям текстсъобщения. Максимална дължинане трябва да надвишава 160 байта
0x0402 (1026) Грешка при регистрация на съобщение. Ако възникне тази грешка, моля, свържете се с поддръжката
0x0403 (1027) Текстът на съобщението не е проверен за неподходящи думи и/или фрази
0x0404 (1028) Подател или получател в черния списък
0x0453 (1107) Задейства се ограничение за изпращане същият тексткъм същия номер
0x043C (1084) Не достъпна тарифаза исканото направление
0x043F (1087) Няма подходяща тарифа от контрагента нагоре по веригата
0x045A (1114) Правилата за маршрутизиране не са намерени
0x0446 (1094) Транспортна грешка. Ако възникне тази грешка, моля, свържете се с поддръжката
0x0433 (1075) Недостатъчни средства по сметката

Протоколът за обмен е дефиниран от спецификацията на SMPP версия 3.4.

Версия 1.0 е само за изпращане на съобщения и получаване на статус на доставка.

Получаване на съобщения в този моментНе се поддържа.

Описанието на грешката може да се намери в спецификацията на SMPP версия 3.4.

За да повишите нивото на сигурност при работа със системата, можете да предоставите списък с IP адреси, от които ще се осъществява връзката.

Настройки на връзката

Поддържани команди

  • system_id - потребителско име, регистрирано в системата.
  • парола - потребителска парола за SMS
  • Адрес - sms.site
  • Порт - 9001

Сървърът ще отговори на неподдържани команди със съобщение GENERIC_NAK с код на грешка ESME_RINVCMDID.

Параметри за изпращане на съобщение (SUBMIT_SM)

Правила за работа с SMPP връзка

Когато се установи връзка, на клиента се дават 10 секунди, за да изпрати командата BIND_TRANSMITTER или BIND_TRANSCEIVER. В противен случай връзката ще бъде затворена от сървъра.

Клиентът е длъжен да отговори на всички изпратени от сървъра пакети със съответния resp пакет в рамките на 1 минута. В противен случай връзката ще бъде прекъсната от сървъра без изпращане на UNBIND.

Получаване на статус на доставка на съобщението

Има два варианта за получаване на статус на доставка (активен и пасивен). Пасивният вариант е за предпочитане.

Пасивната опция включва настройка на флага registered_delivery на пакета SUBMIT_SM. След като съобщението достигне окончателното си състояние, сървърът ще изпрати пакет DELIVER_SM със съобщение за разписка за доставка. Форматът на съобщението за разписка за доставка е по-долу.

Активната опция предвижда периодично проучване на статуса на съобщението чрез изпращане на QUERY_SM.