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

10.08.17

Интеграция - SMS рассылки

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

Скачать файл

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование SM По подписке [?] Купить один файл
ОтправкаСМСчереМегафон+МТС
.7z 1,06Mb
139
139
1 SM
Скачать Купить за 1 850 руб.
HTTP Мегафон СМС
.epf 8,11Kb
29
29
1 SM
Скачать Купить за 1 850 руб.
ОтправкаСМСчереМегафон
.epf 14,91Kb
53
53
1 SM
Скачать Купить за 1 850 руб.

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

  • МТС
  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 - если нет, тогда устанавливаем ее.

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

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

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

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

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

UPD 10.08.2017: У мегафона появилась возможность отправки СМС по протоколу HTTP, для работы с HTTP необходимо запросить у мегафона Логин и пароль и чтобы ваш внешний ip они добавили в

разрешенные.

Для получения отчетов о доставке необходимо создать свой http сервис с методом POST.

Код получения отчета:

Функция ЗаписатьОповещениеСМС(Запрос)
    Тело = Запрос.ПолучитьТелоКакСтроку(КодировкаТекста.UTF8);
    
    ЗаписьЖурналаРегистрации("Отчет о доставке",УровеньЖурналаРегистрации.Информация,Метаданные.HTTPСервисы.API,,Тело);
   
    Ответ = Новый HTTPСервисОтвет(200);
    Возврат Ответ;
КонецФункции


Формат отчета о доставке JSON:

{"status":"delivered","short_message":"id:250046790892422 sub:001 dlvrd:001 submit date:1708100950 done date:1708100950 stat:DELIVRD err:0 text:","receipted_message_id":"250046790892422","msg_id":"571ehnhuvq4l960v"}

СМС Мегафон SMPP UDH HTTP

См. также

SALE! 50%

Управление взаимоотношениями с клиентами (CRM) Мессенджеры и боты SMS рассылки Email рассылки Пользователь Платформа 1С v8.3 Конфигурации 1cv8 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 1С:Розница 3.0 Управленческий учет Платные (руб)

Расширение 1С с полным набором инструментов для качественных транзакционных, триггерных и маркетинговых рассылок Email, SMS, WhatsApp, Telegram. Даже простые уведомления об оплате счетов способны существенно упростить сбор дебиторской задолженности. Применение всех возможностей прямого маркетинга выводит коммуникацию с клиентами, уровень сервиса и лояльность на новый уровень.

600 300 руб.

07.04.2014    85200    48    193    

134

Мессенджеры и боты SMS рассылки Платформа 1С v8.3 1С:Управление нашей фирмой 3.0 Россия Платные (руб)

Решение реализовано в виде расширения. Заменяет отправку смс на отправку в WhatsApp через Green-api. Отправка чека картинкой.

7800 руб.

15.05.2024    984    2    4    

4

SMS рассылки Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

Расширение для конфигураций 1С, позволяющее осуществлять подключение к сервису Bytehand и отправку СМС.

1 стартмани

27.09.2023    646    1    user1984097    0    

6

SMS рассылки Абонемент ($m)

Расширение предназначено для оправки СМС по списку телефонов. Является универсальным и подойдёт для любой конфигурации.

2 стартмани

14.09.2023    1727    4    Viki_push    3    

53

Статистика базы данных Внешние источники данных WEB-интеграция SMS рассылки Мобильная разработка Мониторинг Конфигурации 1cv8 Конфигурации 1cv7 Платные (руб)

Интеграция 1С и WhatsApp или Viber или Telegram - это прошлый век. Зачем это всё, когда можно получать сообщение прямо в сам телефон минуя мессенджер? Да ещё и уведомление с сигналом?! А может ли подобный интегратор перекинуть отчёт? Массив данных? - Представляем MIE! С MIE контроль задач станет простым и избавит вас от постоянных мыслей о работе. Где бы вы ни находились, благодаря связи с 1С, приложение вовремя донесет до вас нужную информацию путем уведомлений. Больше вы не пропустите важное событие, пользователи не застанут врасплох названивая и спрашивая "а что случилось, почему не работает система?" - Вы будете в курсе событий! Оповещение из 1С приходит на мобильное устройство в течении 5и минут. Вы сами решаете какие события из 1С должны прийти на телефон. 1й месяц работы программы - бесплатный.

1200 руб.

11.04.2023    3991    0    0    

3

SMS рассылки Email рассылки Пользователь Платформа 1С v8.3 1С:Розница 2 Управленческий учет Абонемент ($m)

Расширение конфигурации Розница 2.3 для включения автоматического формирования документа "Информационная рассылка" (SMS, E-Mail) при начислении бонусов регламентным заданием по правилу расчета бонусных баллов.

1 стартмани

05.12.2022    2444    1    Saipl    0    

0

SMS рассылки Пользователь Платформа 1С v8.3 1С:Розница 2 Розничная и сетевая торговля (FMCG) Россия Управленческий учет Абонемент ($m)

Обработка формирует информационную рассылку клиентам (физическим лицам) на основании продаж по бонусам в течение дня.

2 стартмани

25.10.2022    2683    0    Andreyka2795    0    

2

SMS рассылки Программист Платформа 1С v8.3 1С:Управление торговлей 11 Абонемент ($m)

Внешняя обработка формирует документ "Рассылка клиентам", заполняя списком партнеров и текстом смс, при назначении расписания на обработку можно получать необходимое количество документов, в зависимости от того, как часто происходит отправка.

1 стартмани

22.12.2021    3960    6    bob_    0    

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

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

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

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


15. nikolayvg 23 10.01.16 22:29 Сейчас в теме
Здравствуйте. При установке компоненты на сервер 2008 R2 Standart возникла проблема в пункте
8. Выбираем "Установка новых компонентов", и в диалоге выбираем нужную компоненту (тип файла «все файлы»).
все выбираю, но компонента в списке не появляется. Что может быть не так?
16. BaHgaJI 31 11.01.16 09:07 Сейчас в теме
(15) nikolayvg, точно выбираете тип файла "Все файлы(*.*)" т.к. если файл в папке то он по-любому будет виден. Или в службе компонентов не появляется? Если в службе компонентов, то попробуйте любую другую компоненту добавить, а потом компоненту винсок, должна появиться.
17. nikolayvg 23 14.01.16 05:51 Сейчас в теме
(15) nikolayvg, На всякий случай для остальных:
Воспользовался советом из http://infostart.ru/public/319296/ и установил Visual Basic
18. BaHgaJI 31 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 31 24.05.16 17:01 Сейчас в теме
(19) Bayker, не могу сказать, по идее если по протоколу SMPP то отличий никаких не должно быть
21. SGordon1 10.06.16 12:09 Сейчас в теме
Обновление лежит отдельно , не в архиве?
22. BaHgaJI 31 10.06.16 13:09 Сейчас в теме
23. flord 48 21.07.16 15:51 Сейчас в теме
Никто не сталкивался с такой ситуацией. После отправки команды Bind_transceiver компонента переходит в состояние State = 8 (клиент закрыл подключение)?
24. BaHgaJI 31 22.07.16 08:37 Сейчас в теме
(23) flord, значит ошибка в этом пакете, проверьте логин и пароль, он чувствителен к реестру. Лучше конечно узнать у оператора, что к ним приходит и в чем ошибка.
25. flord 48 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 31 22.07.16 09:05 Сейчас в теме
(25) flord, упоминания нет, потому что скорее всего Bind_transceiver кривой, скиньте как вы его переделали...
27. flord 48 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 31 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 31 22.07.16 15:19 Сейчас в теме
(27) flord, так же у вас не верно Матрица.SetValue(Индекс, КодСимвола(interface_version));//interface_version = 4 (версия 4 = 3.4)

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

addr_ton = 0;
addr_npi = 0;
31. flord 48 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 31 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 48 29.07.16 09:51 Сейчас в теме
(32) Выяснилось, что по нашему заключенному договору с Мегафоном в этой системе Bind_transceiver не поддерживается
(Либо у Мегафона в принципе не поддерживается Bind_transceiver).
Работает Bind_transmitter.

A PDU на запрос BIND был правильным – изменил команду и заработало.
Спасибо за помощь!
34. BaHgaJI 31 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 31 03.08.16 08:30 Сейчас в теме
(35) Revolver_61,
1. неверные параметры в отправленном submit_sm.
2. от smsc других регионов и операторов пришел ответ о невозможности принять смс по разным причинам.
3. закончились деньги на лицевом счету, необходимо обратиться к своему менеджеру для выяснения вопроса.
37. BaHgaJI 31 03.08.16 08:31 Сейчас в теме
(35) Revolver_61, часто эта ошибка приходит если отправляется смс на городской номер
38. Tanis 07.01.17 16:49 Сейчас в теме
Доброго времени!

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

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

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

Без создания регламентных заданий, обработка РассылкаSMSМегафон отправляет сообщения?
41. BaHgaJI 31 20.03.17 11:13 Сейчас в теме
42. cyborg55 34 01.06.17 13:23 Сейчас в теме
Добрый день. Пытаюсь отправить через мтс. Не получается. Как мне получить пароль в формате MD5? Это мне мтс должен в таком формате предоставить?
43. BaHgaJI 31 04.06.17 00:05 Сейчас в теме
(42) нет, мтс предоставляет в обычном формате, в мд5 на любом сайте конквертните, например http://decodeit.ru/md5
44. Spakus 13.09.17 14:09 Сейчас в теме
Здравствуйте.
Скачал конфигурацию, пытаюсь отправить СМС через МТС.
При запуске регламентного задания вываливается ошибка (см. скриншот) в функции "ПолучитьСтатистику" при вызове метода "GetStatistics".

В чем ошибка?
Прикрепленные файлы:
45. BaHgaJI 31 18.09.17 15:22 Сейчас в теме
(44) В конфигураторе удалите ws ссылку и добавьте заново такую же.
46. ooki 21.12.18 13:06 Сейчас в теме
Здравствуйте, BaHgaJI. Спасибо за обработку. Пытаюсь настроить. Пакет bind_transceiver уходит, bind_transceiver_resp прилетает, тут все ок. Дальше отправляем submit_sm. В итоге submit_sm_resp возвращается с кодом ошибки 1 - Invalid Message Length (sm_length parameter). Хотя параметр sm_length не менялся при настройке submit_sm.

МассивКодовРусскихБукв 	= ЗакодироватьРусскийТекст(СообщениеТекст);
ДлинаСообщения	        = МассивКодовРусскихБукв.Количество(); 

............................. (часть кода заполнения первой части матрицы)
 
		Индекс = 28;
		Для  НомерСтроки = 1 По ДлинаНомераТелефона Цикл
			МатрицаДанных.SetValue(Индекс,КодСимвола(НомерТелефона,НомерСтроки));
			Индекс = Индекс+1;
		КонецЦикла;
		
		МатрицаДанных.SetValue(39,	0); 
		МатрицаДанных.SetValue(40,	0); //esm_class
		
		МатрицаДанных.SetValue(41,	0); //protocol_id 
		МатрицаДанных.SetValue(42,	0); //priority_flag 
		
		МатрицаДанных.SetValue(43,	0);  //schedule_delivery_time 
		
		МатрицаДанных.SetValue(44,	0);  //validity_period 
		
		
		МатрицаДанных.SetValue(45,	0);   //registered_delivery //sa! 1
		МатрицаДанных.SetValue(46,	0);   //replace_if_present_flag 
		МатрицаДанных.SetValue(47,	DataCod);//data coding
		МатрицаДанных.SetValue(48,	0); //sm_default_msg_id
		
		МатрицаДанных.SetValue(49,	ДлинаСообщения);   //sm_length

		Индекс = 50;          //short_message
	
		Для  НомерСтроки = 0 По ДлинаСообщения-1 Цикл 
			СимВ = МассивКодовРусскихБукв[НомерСтроки];
			МатрицаДанных.SetValue(Индекс,СимВ);
			Индекс = Индекс+1;
		КонецЦикла;
Показать



Помогите, пожалуйста, разобраться, в чем может быть ошибка?
47. doctorov_s 41 20.03.19 13:25 Сейчас в теме
Добрый день! А подскажите пожалуйста в обработке отправка через мегафон там сделана сразу с отчетом о доставке??
48. doctorov_s 41 20.03.19 13:49 Сейчас в теме
интересует отправка через HHTP
50. amatisol 26.06.19 10:02 Сейчас в теме
Ни у кого нет такой же обработки под УФ, интересует только как организовать отправку через smpp, вообще реально прикрутить это дело, если у кого есть буду благодарен если пришлете, спасибо
51. blaik 09.07.20 12:13 Сейчас в теме
А что значит -3. В обработке «РассылкаSMSМегафон» необходимо поправить имя отправителя в функции сбора пакета Submit_sm.
52. BaHgaJI 31 09.07.20 19:30 Сейчас в теме
(51)мегафон выдает имя отправителя, оно чувствительно к регистру, вроде так, давно было уже не помню=)
53. blaik 09.07.20 22:41 Сейчас в теме
С именем разобрался уже. Подскажите а в Win10 ваша библиотека нормально работает. Просто он не срабатывает процедура с winsock
56. BaHgaJI 31 10.07.20 12:24 Сейчас в теме
(53) когда я писал обработку win10 еще не было, не могу ответить
54. blaik 10.07.20 04:03 Сейчас в теме
И еще вопрос? А какую платформу желательно использовать?
55. BaHgaJI 31 10.07.20 12:24 Сейчас в теме
57. SMSoverEthernetElseSMPP 29.12.20 18:54 Сейчас в теме
Здравствуйте! А работает только отправка? А если нужен наоборот прием, возможно реализовать? Притом приём нужен смс бинарных...
Оставьте свое сообщение