Отправка СМС по протоколу SMPP через МЕГАФОН или через веб-сервис МТС (8.3 обычное приложение)

Опубликовал Артем Замолодчиков (BaHgaJI) в раздел Обмен - SMS рассылки

Конфигурация предназначена для отправки СМС по протоколу SMPP, напрямую, через МЕГАФОН.
Также в конфигурации есть отправка СМС через веб-сервис МТС. Легко встраивается в любую базу и не требует доработок.

Инструкция по настройке:

  • МТС
  1. В справочнике "СервисыSMSрассылки" заполняем пользователя и пароль (пароль должен быть в формате MD5) полученные от оператора.
  2. Далее заполняем документ "SMSРассылка"
  3. Настраиваем регламентное задание "ОбработкаSMSСообщений"

Вот в принципе и все. С мегафоном сложнее... т.к. используется протокол SMPP, единственное, что я нашел для работы с 1С, это компонента WinSock.

  • МЕГАФОН
  1. В справочнике "СервисыSMSрассылки" заполняем пользователя, пароль, ip, и порт.
  2. Регистрируем компоненту WinSock. 
  3. В обработке «РассылкаSMSМегафон» необходимо поправить имя отправителя в функции сбора пакета Submit_sm.
  4. Заполняем документ «SMSРассылка»
  5. Настраиваем регламентное задание "ОбработкаSMSСообщений"
 
  • Регистрация компоненты WinSock:
  • Если регистрируем локально, тогда кидаем ее

C:\Windows\SysWOW64 и в «Выполнить» прописываем regsvr32 “путь к файлу”, если на сервере, то см. ниже.

  • Регистрация на сервере. Компонента старая x32, поэтому, чтобы она работала на сервере x64, необходимо проделать следующее:
  1. Запускаем консоль «Службы компонентов» (Пуск ->Администрирование->Службы компонентов)
  2. В ветке «Приложения COM+» добавлем новое приложение. Правой кнопкой Создать -> Приложение
  3. Выбираем «Создать новое приложение»
  4. Имя задаем MSWinsockWinsock1, способ активации «серверное приложение»
  5. Учетную запись выбираем, под которой стартует сервер 1С
  6. В ветке созданного приложения переходим на ветку "Роли" открываем роль "CreatorOwner" и далее в разделе "Пользователи" создаем пользователя - учетную запись под которой работает сервер 1С.
  7. В ветке созданного приложения переходим на ветку "Компоненты" и создаем компонент.
  8. Выбираем "Установка новых компонентов", и в диалоге выбираем нужную компоненту (тип файла «все файлы»)
  9. Открываем свойства только что созданного компонента, идем на вкладку "Безопасность", проверяем в списке "Явно установленные для выделенных объектов роли" стоит ли галка напротив роль CreatorOwner - если нет, тогда устанавливаем ее.

При написании конфигурации очень помогли статьи http://infostart.ru/public/319296/ и http://infostart.ru/public/297040/ за что автору огромное спасибо.

Основное отличие  данный конфигурации это возможность отправки длинных сообщений с использованием UDH  и использование регламентного задания.

В архиве конфигурация, описание протокола SMPP и компонента WinSock.

Пишите вопросы в комментариях, рад буду помочь.

 

UPD 01.06.2016: Улучшена стабильность обработки(добавлена обработка некоторых ошибок - если номер кривой), добавлена обработка отчетов о доставке, переделана запись id сообщения.

Скачать файлы

Наименование Файл Версия Размер
ОтправкаСМСчереМегафон+МТС
.7z 1,06Mb
17.07.15
101
.7z 1.0 1,06Mb 101 Скачать
ОтправкаСМСчереМегафон
.epf 14,91Kb
01.06.16
22
.epf 1.1 14,91Kb 22 Скачать

См. также

Добавить вознаграждение
Комментарии
1. Артем Замолодчиков (BaHgaJI) 21 21.07.15 09:46 Сейчас в теме
Всего одно скачивание, ну не серьезно ребят) Я так старался, так старался)
2. Артем Замолодчиков (BaHgaJI) 21 14.08.15 16:03 Сейчас в теме
Если кому надо могу выложить с обработкой отчетов о доставке мегафоновских смс,
4. Александр Плюшкин (php5) 9 11.09.15 10:50 Сейчас в теме
Классная вещь, спасибо, пригодилось мне в работе!
5. Артем Замолодчиков (BaHgaJI) 21 02.10.15 08:12 Сейчас в теме
(4) php5, Пожалуйста, это моя работа, кто-то должен!
6. Алексей Мальцев (Prooa) 58 02.11.15 12:02 Сейчас в теме
Здравствуйте, ни как не могу зарегистрировать на Windows7x64. Создаю приложение потом компоненту, выбираю файл, винда пишет что есть такая и не ставит компоненту, а при мWinSocketActiveX = Новый COMОбъект("MSWinsock.Winsock.1"); выдает исключение, что и пропустил не подскажите? Очень нужно
7. Алексей Мальцев (Prooa) 58 03.11.15 06:36 Сейчас в теме
(6) Prooa, зарегистрировал, но смс не отправляет, в режиме отладки видно что срабатывает только "//пришел пакет ENQUIRE_LINK" и все, что не так
8. Артем Замолодчиков (BaHgaJI) 21 03.11.15 14:33 Сейчас в теме
п(7) Prooa, проверьте пользователя и пароль
9. Артем Замолодчиков (BaHgaJI) 21 03.11.15 14:33 Сейчас в теме
(7) Prooa, ENQUIRE_LINK_RESP отправляете?
10. Артем Замолодчиков (BaHgaJI) 21 03.11.15 14:35 Сейчас в теме
(7) Prooa, или скачайте http://infostart.ru/public/393308/ там более наглядно, что приходит, что уходит
11. Алексей Мальцев (Prooa) 58 05.11.15 05:36 Сейчас в теме
Скачал обработку все работает, а с вашей конфы не хочет
12. Артем Замолодчиков (BaHgaJI) 21 19.11.15 12:52 Сейчас в теме
(11) Prooa, походу только у вас не работает.
скорее всего не правильное значение МатрицаДанных.SetValue(7, 4); //command_id 4=submit_sm submit_multi=21
13. Артем Замолодчиков (BaHgaJI) 21 19.11.15 12:54 Сейчас в теме
(11) Prooa, и еще с этими данными надо поиграть, они тоже часто разные у всех бывают

МатрицаДанных.SetValue(17, 5); //source_addr_ton
МатрицаДанных.SetValue(18, 0); //source_addr_npi
14. Артем Замолодчиков (BaHgaJI) 21 04.12.15 12:12 Сейчас в теме
(11) Prooa, нашел в чем могла быть проблема.
в submit_sm_resp иногда приходит пакет с ошибкой если оператор по какой то причине не может отправить смс.

Добавьте в процедуру ОбработатьПакет_submit_sm_resp

КодОшибки = ВходящийПакет.GetValue(11);
Если КодОшибки <> 0 Тогда
ЗаписатьНовыйСтатусСМС("ошибка отправки");
Возврат;
КонецЕсли;


15. Nikolay Nikolay1 (nikolayvg) 14 10.01.16 22:29 Сейчас в теме
Здравствуйте. При установке компоненты на сервер 2008 R2 Standart возникла проблема в пункте
8. Выбираем "Установка новых компонентов", и в диалоге выбираем нужную компоненту (тип файла «все файлы»).
все выбираю, но компонента в списке не появляется. Что может быть не так?
16. Артем Замолодчиков (BaHgaJI) 21 11.01.16 09:07 Сейчас в теме
(15) nikolayvg, точно выбираете тип файла "Все файлы(*.*)" т.к. если файл в папке то он по-любому будет виден. Или в службе компонентов не появляется? Если в службе компонентов, то попробуйте любую другую компоненту добавить, а потом компоненту винсок, должна появиться.
17. Nikolay Nikolay1 (nikolayvg) 14 14.01.16 05:51 Сейчас в теме
(15) nikolayvg, На всякий случай для остальных:
Воспользовался советом из http://infostart.ru/public/319296/ и установил Visual Basic
18. Артем Замолодчиков (BaHgaJI) 21 10.02.16 12:27 Сейчас в теме
Если приходит ошибка 88 (0x65) надо добавить задерку при отправке смс, примерно 5 смс в секунду
19. Дамир Ахметов (Bayker) 24.05.16 14:50 Сейчас в теме
Добрый день, заключили договор с мегафоном, прислал вот это:
1. IP-адрес крипто-сервера
2. IP-адрес SMPP ESME
3. IP-адрес крипто-сервера УФ ОАО "МегаФон"
4. IP-адрес SMS-центра УФ ОАО "МегаФон"
5. Ключ isakmp
6. transform-set:
7. PFS:
8. Isakmp policy

От дальнейшей помощи категорически отказывается, будет ли Ваша разработка работать с Тюменским мегафоном (если там вообще есть различия)?
20. Артем Замолодчиков (BaHgaJI) 21 24.05.16 17:01 Сейчас в теме
(19) Bayker, не могу сказать, по идее если по протоколу SMPP то отличий никаких не должно быть
21. Steve Gordon (SGordon1) 10.06.16 12:09 Сейчас в теме
Обновление лежит отдельно , не в архиве?
22. Артем Замолодчиков (BaHgaJI) 21 10.06.16 13:09 Сейчас в теме
23. Александр Васильев (flord) 97 21.07.16 15:51 Сейчас в теме
Никто не сталкивался с такой ситуацией. После отправки команды Bind_transceiver компонента переходит в состояние State = 8 (клиент закрыл подключение)?
24. Артем Замолодчиков (BaHgaJI) 21 22.07.16 08:37 Сейчас в теме
(23) flord, значит ошибка в этом пакете, проверьте логин и пароль, он чувствителен к реестру. Лучше конечно узнать у оператора, что к ним приходит и в чем ошибка.
25. Александр Васильев (flord) 97 22.07.16 08:45 Сейчас в теме
Пытаемся отправлять СМС через Мегафон СПб.

При отправке смс используем wireshark чтобы понять, почему не получается отправить смс

По логу wireshark:

1. [Connection establish request (SYN): порт сервера хххх]– отправляем запрос на установку соединения
2. [Connection establish acknowledge (SYN + ACK) : порт сервера хххх] – получаем подтверждение
3. Short Message Peer to Peer, Command: Bind_transceiver, Seq: 1, Len: 41 (пакет PDU пришлось переписать не вмещался пароль)
Length: 41
Operation: Bind_transceiver (0x00000009)
Sequence #: 1
System ID: *******
Password: *******
Version (if): 0.0
Type of number: Unknown (0x00)
Numbering plan indicator: Unknown (0x34)
Address: \001\001



4. В ответ от сервера получаем:

Transmission Control Protocol, Src Port: xxxx , Dst Port: yyyyy, Seq: 1, Ack: 42, Len: 0
Source Port: xxxx
Destination Port: yyyyy
[Stream index: 16]
[TCP Segment Len: 0]
Sequence number: 1 (relative sequence number)
Acknowledgment number: 42 (relative ack number)
Header Length: 20 bytes
Flags: 0x011 (FIN, ACK)
000. .... .... = Reserved: Not set
...0 .... .... = Nonce: Not set
.... 0... .... = Congestion Window Reduced (CWR): Not set
.... .0.. .... = ECN-Echo: Not set
.... ..0. .... = Urgent: Not set
.... ...1 .... = Acknowledgment: Set
.... .... 0... = Push: Not set
.... .... .0.. = Reset: Not set
.... .... ..0. = Syn: Not set
.... .... ...1 = Fin: Set [Expert Info (Chat/Sequence): Connection finish (FIN)]
[Connection finish (FIN)]
[Severity level: Chat]
[Group: Sequence]
[TCP Flags: *******A***F]
Window size value: 8186
[Calculated window size: 65488]
[Window size scaling factor: 8]
Checksum: 0x1182 [validation disabled]
Urgent pointer: 0
[SEQ/ACK analysis]
[This is an ACK to the segment in frame: 5265]
[The RTT to ACK the segment was: 0.026876000 seconds]
[iRTT: 0.028090000 seconds]


Нигде упоминания о полученной команде Bind_transceiver_resp в логе нет.

Обработка написана для клиент-серверного варианта.
При отправке смс пользователем запускается фоновое задание.

Сначала происходит инициализация и подключение.
Если сразу после подключения State = 7, отправляем Bind_transceiver

Далее входим в бесконечный цикл обработки State
Если сразу не получили состояние State = 7, ждем его и делаем запрос.

Основная проблема если смотреть из 1с компонента сразу после отправки
Bind_transceiver переходит в режим State = 8 (клиент закрыл подключение)


Событие DataArrival ни разу не сработало – ну оно и понятно.
Не могу понять причину такого поведения.

Админы с нашей стороны и со стороны ОпСоСа говорят, что у них никакие пакеты не режутся.
26. Артем Замолодчиков (BaHgaJI) 21 22.07.16 09:05 Сейчас в теме
(25) flord, упоминания нет, потому что скорее всего Bind_transceiver кривой, скиньте как вы его переделали...
27. Александр Васильев (flord) 97 22.07.16 14:25 Сейчас в теме
Функция СобратьПакет_BIND_Transceiver(sequence_number) Экспорт
                
                ИдПользователя = Справочники.СервисыSMSрассылки.Мегафон.Пользователь;
                Пароль         = Справочники.СервисыSMSрассылки.Мегафон.Пароль;
                
                ДлинаЛогина = СтрДлина(ИдПользователя);
                Если ДлинаЛогина + 1 > 16 Тогда
                               ИдПользователя = Лев(ИдПользователя, 15);
                               ДлинаЛогина = 15;
                               
                               СтрокаОшибки = "" + ТекущаяДата() + "
                               |Длина логина + нулевой символ превышает 16 символов, обрезаем.";
                               
                               ЗаписьЖурналаРегистрации("ОтправкаСМСМегафон.СобратьПакет_BIND_Transceiver",
                                               УровеньЖурналаРегистрации.Ошибка,
                                               Метаданные.Обработки.РассылкаSMSМегафон, "Метаданные.Обработки.РассылкаSMSМегафон",
                                               СтрокаОшибки);
                КонецЕсли; 
                
                ДлинаПароля = СтрДлина(Пароль);
                Если ДлинаПароля + 1 > 9 Тогда
                               Пароль = Лев(Пароль, 8);
                               ДлинаЛогина = 8;
                               
                               СтрокаОшибки = "" + ТекущаяДата() + "
                               |Длина пароля + нулевой символ превышает 9 символов, обрезаем.";
                               
                               ЗаписьЖурналаРегистрации("ОтправкаСМСМегафон.СобратьПакет_BIND_Transceiver",
                                               УровеньЖурналаРегистрации.Ошибка,
                                               Метаданные.Обработки.РассылкаSMSМегафон, "Метаданные.Обработки.РассылкаSMSМегафон",
                                               СтрокаОшибки);
                КонецЕсли; 
                
                Если Не ЗначениеЗаполнено(sequence_number) Тогда
                               sequence_number = 1;
                КонецЕсли;
                
                system_Тип = "";
                Длина_system_Тип = СтрДлина(system_Тип);
                interface_version = 4;
                addr_ton = 0;
                addr_npi = 0;
                address_range = "";
                Длина_address_range = СтрДлина(address_range);
                
                //Длина      header  id + zero           pass + zero        System_Тип + zero      interface_version   addr_ton  addr_npi address_range + zero
                ДлинаПакета = 16 + (ДлинаЛогина + 1) + (ДлинаПароля + 1) + (Длина_system_Тип + 1) +         1             + 1      + 1  + Длина_address_range + 1;
                Матрица = Новый COMSafeArray("VT_UI1", ДлинаПакета); // было 37
                
                // HEADER
                
                // command_length 4 octets
                Матрица.SetValue(0,0);
                Матрица.SetValue(1,0);
                Матрица.SetValue(2,0);
                Матрица.SetValue(3, ДлинаПакета); //command_length
                
                // command_id 4 octets
                Матрица.SetValue(4,0);
                Матрица.SetValue(5,0);
                Матрица.SetValue(6,0);
                Матрица.SetValue(7,9); // Operation: BIND Tranceiver (0x00000009)
                
                // command_id 4 octets
                Матрица.SetValue(8,0);
                Матрица.SetValue(9,0);
                Матрица.SetValue(10,0);
                Матрица.SetValue(11,0); //Не  используется  в PDU bind_transceiver. 
                
                // sequence_number 4 octets
                Матрица.SetValue(12,0);
                Матрица.SetValue(13,0);
                Матрица.SetValue(14,0);
                Матрица.SetValue(15, sequence_number); //уникальный номер последовательности bind_transceiver 
                
                Индекс = 16;
                
                // BODY
                
                // system_id  COctet String max16
                Для  НомерСтроки = 1 По ДлинаЛогина Цикл
                               Матрица.SetValue(Индекс, КодСимвола(ИдПользователя, НомерСтроки));
                               Индекс = Индекс + 1;
                КонецЦикла;
                Матрица.SetValue(Индекс,0); // NULL для логина
                Индекс = Индекс + 1;
                
                // password COctet String max9
                Для НомерСтроки = 1 По ДлинаПароля Цикл
                               Матрица.SetValue(Индекс, КодСимвола(Пароль, НомерСтроки));
                               Индекс = Индекс + 1;
                КонецЦикла;
                Матрица.SetValue(Индекс,0); // NULL для пароля
                Индекс = Индекс + 1;
                
                // system_Тип COctet String max13
                Если ЗначениеЗаполнено(system_Тип) Тогда
                               Для  НомерСтроки = 1 По Длина_system_Тип Цикл
                                               Матрица.SetValue(Индекс, КодСимвола(system_Тип, НомерСтроки));
                                               Индекс = Индекс + 1;
                               КонецЦикла;
                КонецЕсли;
                Матрица.SetValue(Индекс,0); // NULL для system_Тип
                Индекс = Индекс + 1;
                
                // interface_version
                Матрица.SetValue(Индекс, КодСимвола(interface_version));//interface_version = 4 (версия 4 = 3.4)
                Индекс = Индекс + 1;
                
                // addr_ton
                Матрица.SetValue(Индекс, addr_ton);
                Индекс = Индекс + 1;
                
                // addr_npi
                Матрица.SetValue(Индекс, addr_npi);
                Индекс = Индекс + 1;
                
                // address_range
                Если ЗначениеЗаполнено(address_range) Тогда
                               Для  НомерСтроки = 1 По Длина_address_range Цикл
                                               Матрица.SetValue(Индекс, КодСимвола(address_range, НомерСтроки));
                                               Индекс = Индекс + 1;
                               КонецЦикла;
                КонецЕсли; 
                Матрица.SetValue(Индекс,0); // NULL для address_range
                Индекс = Индекс + 1;
                
                // увеличиваем номер запроса
                sequence_number = sequence_number + 1;
                
                Возврат Матрица;
                
КонецФункции
...Показать Скрыть
28. Артем Замолодчиков (BaHgaJI) 21 22.07.16 15:13 Сейчас в теме
(27) flord, ну мой совет поставить после пароля

Матрица.SetValue(29,0);
Матрица.SetValue(30,0);
Матрица.SetValue(31,0);

Матрица.SetValue(32,0);
Матрица.SetValue(33,52);
Матрица.SetValue(34,1);
Матрица.SetValue(35,1);

Матрица.SetValue(36,0);

Там где циферки слева соотвественно ваш индекс.
Просто эти значения четко подобраны и менять их не стоит.
29. Артем Замолодчиков (BaHgaJI) 21 22.07.16 15:19 Сейчас в теме
(27) flord, так же у вас не верно Матрица.SetValue(Индекс, КодСимвола(interface_version));//interface_version = 4 (версия 4 = 3.4)

Должно быть так interface_version 0x34 = 52
30. Артем Замолодчиков (BaHgaJI) 21 22.07.16 15:22 Сейчас в теме
(27) flord, и вот эти должны быть = 1

addr_ton = 0;
addr_npi = 0;
31. Александр Васильев (flord) 97 22.07.16 15:28 Сейчас в теме
Если оставить так – то «съедаются» последние несколько символов пароля.


Если смотреть описание pdu из описания протокола

Матрица.SetValue(32,0); это system_тип
Матрица.SetValue(33,52); это interface_version
Матрица.SetValue(34,1); это addr_ton
Матрица.SetValue(35,1); это addr_npi

Матрица.SetValue(36,0); это address_range

Я прав?

А за что отвечают эти значения, не подскажете?:

Матрица.SetValue(29,0);
Матрица.SetValue(30,0);
Матрица.SetValue(31,0);
32. Артем Замолодчиков (BaHgaJI) 21 22.07.16 18:46 Сейчас в теме
(31) flord, Уже не помню за что отвечают, что-то разделитель, что то просто не нужно и по умолчанию 0, методом тыка подбирал, как пароль может съедаться? попробуйте вот так:
Функция СобратьПакет_BIND_Transceiver(sequence_number) Экспорт
                
                ИдПользователя = Справочники.СервисыSMSрассылки.Мегафон.Пользователь;
                Пароль         = Справочники.СервисыSMSрассылки.Мегафон.Пароль;
                
                ДлинаЛогина = СтрДлина(ИдПользователя);
                Если ДлинаЛогина + 1 > 16 Тогда
                               ИдПользователя = Лев(ИдПользователя, 15);
                               ДлинаЛогина = 15;
                               
                               СтрокаОшибки = "" + ТекущаяДата() + "
                               |Длина логина + нулевой символ превышает 16 символов, обрезаем.";
                               
                               ЗаписьЖурналаРегистрации("ОтправкаСМСМегафон.СобратьПакет_BIND_Transceiver",
                                               УровеньЖурналаРегистрации.Ошибка,
                                               Метаданные.Обработки.РассылкаSMSМегафон, "Метаданные.Обработки.РассылкаSMSМегафон",
                                               СтрокаОшибки);
                КонецЕсли; 
                
                ДлинаПароля = СтрДлина(Пароль);
                Если ДлинаПароля + 1 > 9 Тогда
                               Пароль = Лев(Пароль, 8);
                               ДлинаЛогина = 8;
                               
                               СтрокаОшибки = "" + ТекущаяДата() + "
                               |Длина пароля + нулевой символ превышает 9 символов, обрезаем.";
                               
                               ЗаписьЖурналаРегистрации("ОтправкаСМСМегафон.СобратьПакет_BIND_Transceiver",
                                               УровеньЖурналаРегистрации.Ошибка,
                                               Метаданные.Обработки.РассылкаSMSМегафон, "Метаданные.Обработки.РассылкаSMSМегафон",
                                               СтрокаОшибки);
                КонецЕсли; 
                
                Если Не ЗначениеЗаполнено(sequence_number) Тогда
                               sequence_number = 1;
                КонецЕсли;
                
                system_Тип = "";
                Длина_system_Тип = СтрДлина(system_Тип);
                interface_version = 4;
                addr_ton = 0;
                addr_npi = 0;
                address_range = "";
                Длина_address_range = СтрДлина(address_range);
                
                //Длина      header  id + zero           pass + zero        System_Тип + zero      interface_version   addr_ton  addr_npi address_range + zero
                ДлинаПакета = 16 + (ДлинаЛогина + 1) + (ДлинаПароля + 1) + (Длина_system_Тип + 1) +         1             + 1      + 1  + Длина_address_range + 1;
                Матрица = Новый COMSafeArray("VT_UI1", ДлинаПакета); // было 37
                
                // HEADER
                
                // command_length 4 octets
                Матрица.SetValue(0,0);
                Матрица.SetValue(1,0);
                Матрица.SetValue(2,0);
                Матрица.SetValue(3, ДлинаПакета); //command_length
                
                // command_id 4 octets
                Матрица.SetValue(4,0);
                Матрица.SetValue(5,0);
                Матрица.SetValue(6,0);
                Матрица.SetValue(7,9); // Operation: BIND Tranceiver (0x00000009)
                
                // command_id 4 octets
                Матрица.SetValue(8,0);
                Матрица.SetValue(9,0);
                Матрица.SetValue(10,0);
                Матрица.SetValue(11,0); //Не  используется  в PDU bind_transceiver. 
                
                // sequence_number 4 octets
                Матрица.SetValue(12,0);
                Матрица.SetValue(13,0);
                Матрица.SetValue(14,0);
                Матрица.SetValue(15, sequence_number); //уникальный номер последовательности bind_transceiver 
                
                Индекс = 16;
                
                // BODY
                
                // system_id  COctet String max16
                Для  НомерСтроки = 1 По ДлинаЛогина Цикл
                               Матрица.SetValue(Индекс, КодСимвола(ИдПользователя, НомерСтроки));
                               Индекс = Индекс + 1;
                КонецЦикла;
                Матрица.SetValue(Индекс,0); // NULL для логина
                Индекс = Индекс + 1;
                
                // password COctet String max9
                Для НомерСтроки = 1 По ДлинаПароля Цикл
                               Матрица.SetValue(Индекс, КодСимвола(Пароль, НомерСтроки));
                               Индекс = Индекс + 1;
                КонецЦикла;
                Матрица.SetValue(Индекс,0); // NULL для пароля
                Индекс = Индекс + 1;
         
Матрица.SetValue(Индекс ,0); 
 Индекс = Индекс + 1;
Матрица.SetValue(Индекс ,0); 
 Индекс = Индекс + 1;
Матрица.SetValue(Индекс ,0); 
 Индекс = Индекс + 1;
Матрица.SetValue(Индекс ,52); 
 Индекс = Индекс + 1;
Матрица.SetValue(Индекс ,1); 
 Индекс = Индекс + 1;
Матрица.SetValue(Индекс ,1); 
 Индекс = Индекс + 1;
Матрица.SetValue(Индекс ,0);
                
                Возврат Матрица;
                
КонецФункции
...Показать Скрыть
33. Александр Васильев (flord) 97 29.07.16 09:51 Сейчас в теме
(32) BaHgaJI, Выяснилось, что по нашему заключенному договору с Мегафоном в этой системе Bind_transceiver не поддерживается
(Либо у Мегафона в принципе не поддерживается Bind_transceiver).
Работает Bind_transmitter.

A PDU на запрос BIND был правильным – изменил команду и заработало.
Спасибо за помощь!
34. Артем Замолодчиков (BaHgaJI) 21 29.07.16 11:03 Сейчас в теме
(33) flord, Вот оно че, у нас мегафон на Bind_transceiver работает
35. Владимир Слинько (Revolver_61) 02.08.16 14:45 Сейчас в теме
Подскажите, что означает ошибка "Код Ошибки Постоянного Приложения Приемника ESME (ESME Receiver Permanent App Error Code)" ?
Приходит в пакете submit_sm_resp
36. Артем Замолодчиков (BaHgaJI) 21 03.08.16 08:30 Сейчас в теме
(35) Revolver_61,
1. неверные параметры в отправленном submit_sm.
2. от smsc других регионов и операторов пришел ответ о невозможности принять смс по разным причинам.
3. закончились деньги на лицевом счету, необходимо обратиться к своему менеджеру для выяснения вопроса.
37. Артем Замолодчиков (BaHgaJI) 21 03.08.16 08:31 Сейчас в теме
(35) Revolver_61, часто эта ошибка приходит если отправляется смс на городской номер
38. Stanislav Korablin (Tanis) 07.01.17 16:49 Сейчас в теме
Доброго времени!

Подскажите как именно работает с МТС? Обработку пока не скачивал.

В описании сказано. что вводится логин и пароль (МД5). Эти "учетки" просто пользователя (своего личного) или после договора компании с МТС о доставке смс?
По какому шлюзу обмен идет?

Спасибо!
39. Артем Замолодчиков (BaHgaJI) 21 09.01.17 08:21 Сейчас в теме
Добрый день! Договор с МТС нужен, у них есть апи по SOAP. (веб сервис). В моей конфигурации пример этого веб-сервиса, в принципе самому там не сложно настроить.