Развитие отправки СМС через SMPP

09.12.15

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

Обработка поможет разобраться в настройке отправки СМС через протокол SMPP.
В основе взята обработка этой публикации: http://infostart.ru/public/380146/

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

Наименование Файл Версия Размер
Обработка
.epf 22,40Kb
59
.epf 22,40Kb 59 Скачать

Обработка адаптировалась к собственной конфигурации и не привязана к объектам конкретной конфигурации (хотя оставлен код для примера).

1) Сделан вывод всех входящих и исходящих пакетов

2) Возможность вручную отправить СМС или несколько СМС и увидеть статус доставки

3) Макет соответствия кодов для кодификации русского текста заменен на расчет

 

Порядок использования для автоматической отправки СМС выполнен следующим образом:

1) СМС-ки на отправку хранятся в отдельном документе.

2) В регламентное задание добавлено задание, которое раз в 3 минуты смотрит дату последнего пакета ящика коротких сообщений. Если эта дата старше 5 минут, процедура принудительно запускает приложение 1С с параметром запуска SMS_SMPP (это происходит на сервере).

Если ВыбЯщик.ПоследнийПакет < ТекущаяДата() - 300 Тогда
	СтруктураПараметровБазы = Новый Структура("Srvr, Ref");
	СтрокаСоединения = СтрокаСоединенияИнформационнойБазы();
	ПараметрыСоединения = РаботаСоСтроками.СтрРазбитьПоРазделителю2(СтрокаСоединения, ";");
	Для Каждого ТекПараметр Из ПараметрыСоединения Цикл
		Если НЕ ЗначениеЗаполнено(ТекПараметр.Значение) Тогда
			Продолжить;
		КонецЕсли;
		ПозицияРавно = Найти(ТекПараметр.Значение, "=");
		СтруктураПараметровБазы.Вставить(Лев(ТекПараметр.Значение, ПозицияРавно-1), СтрЗаменить(Сред(ТекПараметр.Значение, ПозицияРавно+1), """", ""));
	КонецЦикла;
	СтрокаСоединения = """"+СтруктураПараметровБазы.Srvr+"\"+СтруктураПараметровБазы.Ref+"""";
	СтрокаЗапуска = КаталогПрограммы()+"1cv8s.exe ENTERPRISE /S" + СтрокаСоединения + " /N"""+Константы.АдминистраторЛогин.Получить()+""" /P"""+Константы.АдминистраторПароль.Получить()+""" /CSMS_SMPP";
	СтрокаЗапуска = СтрЗаменить(СтрокаЗапуска, "\Program Files\", "\Program Files (x86)\");
	//ВызватьИсключение СтрокаЗапуска;
	ЗапуститьПриложение(СтрокаЗапуска);
КонецЕсли;

3) В модуль обычного приложения в обработчик ПриНачалеРаботыСистемы добавлена обработка специфического параметра запуска. Если получен параметр запуска SMS_SMPP, то открывается указанная обработка, заполняется ящик коротких сообщений и запускается отправка смс в автоматическом режиме. Обмен пакетами обновляет реквизит "дата последнего пакета" для ящика коротких сообщений.

Пример: 

НовОбр.Значение = Обработки.ОтправкаКороткихСообщенийSMPP.Создать();
НовОбр.Значение.Ящик = ВыбЯщик.Ссылка;
НовОбр.Значение.ПодключитьSMPPP();
 

upd: Обновлена обработка: добавлена функция разрезания полученных "склеенных" пакетов

SMS SMPP

См. также

Email, SMS, Telegram рассылки из 1С - Директ Маркетинг

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

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

7788 руб.

07.04.2014    83616    40    191    

127

Подтверждение скидки и верификация дисконтной карты по СМС (SMS) или звонку для 1С

SMS рассылки Оптовая торговля Розничная торговля Оперативный учет 1С:Управление нашей фирмой 1.6 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Россия Управленческий учет Платные (руб)

Клиенту на номер телефона уходит СМС с четырехзначным случайным цифровым кодом. Клиент сообщает код продавцу, если код подходит, только тогда применяется скидка или бонусная программа. Вместо SMS можно направлять входящий звонок на телефон покупателя, последние четыре цифры и будут являться кодом подтверждения.

4500 руб.

06.09.2017    25098    25    0    

32

Отправка SMS через сервис Bytehand

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

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

1 стартмани

27.09.2023    531    1    user1984097    0    

6

Универсальная простая отправка СМС

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

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

2 стартмани

14.09.2023    1448    3    Viki_push    3    

50

MIE - система мониторинга важных событий. Все важные события из 1С теперь у Вас в мобильном!

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

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

1200 руб.

11.04.2023    3712    0    0    

2

Автоматическая рассылка (SMS, E-Mail) при начислении бонусов регламентным заданием для Розницы 2.3

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

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

1 стартмани

05.12.2022    2302    1    Saipl    0    

0

SMS-рассылка из 1С:Розница 2.3 (бонусная система)

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

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

2 стартмани

25.10.2022    2530    0    Andreyka2795    0    

2

Пример автоматического создания рассылок смс для УТ 11.4

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

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

1 стартмани

22.12.2021    3829    6    bob_    0    

2
Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. Prooa 39 10.11.15 05:58 Сейчас в теме
А можно код процедуры СобратьПакет_Query_SM, очень нужно
2. deminded 7 10.11.15 12:16 Сейчас в теме
(1) Prooa,

Функция СобратьПакет_Query_SM(НомерПакета, ИдентификаторСМС)
	Сообщить("Начато: СобратьПакет_Query_SM");
	
	ОтправительСМС = Ящик.ОтправительПоУмолчанию;
	//ОтправительСМС = "";
	
	ДлинаИдентификатора 	= СтрДлина(ИдентификаторСМС);
	Сообщить("-"+ИдентификаторСМС+"-");
	ДлинаИмениОтправителя 	= СтрДлина(СокрЛП(ОтправительСМС));
	ДлинаПакета 			= 20 + ДлинаИдентификатора + ДлинаИмениОтправителя;	
	
	МатрицаДанных 			= Новый COMSafeArray("VT_UI1",ДлинаПакета);
	
	//Заголовок
	МатрицаДанных.SetValue(0,	0);
	МатрицаДанных.SetValue(1,	0);
	МатрицаДанных.SetValue(2,	0);
	МатрицаДанных.SetValue(3,	ДлинаПакета);  //общая длина пакета command_length
	
	МатрицаДанных.SetValue(4,	0);
	МатрицаДанных.SetValue(5,	0);
	МатрицаДанных.SetValue(6,	0);
	МатрицаДанных.SetValue(7,	3);  //command_id 3=query_sm
	
	МатрицаДанных.SetValue(8,	0);
	МатрицаДанных.SetValue(9,	0);
	МатрицаДанных.SetValue(10,	0);
	МатрицаДанных.SetValue(11,	0);  //command_status
	
	МатрицаДанных.SetValue(12,	0);
	МатрицаДанных.SetValue(13,	0);
	МатрицаДанных.SetValue(14,	0);
	МатрицаДанных.SetValue(15,	НомерПакета); //номер пакета
	//мНомерПакета = мНомерПакета + 1;
	
	//message_id	
	Индекс = 16;
	Для Сч = 1 По ДлинаИдентификатора Цикл
		МатрицаДанных.SetValue(Индекс,	КодСимвола(ИдентификаторСМС, Сч));
		Индекс = Индекс + 1;
	КонецЦикла;
	МатрицаДанных.SetValue(Индекс,	0); Индекс = Индекс + 1; 
	//message_id
	
	МатрицаДанных.SetValue(Индекс,	0); Индекс = Индекс + 1;  //source_addr_ton (5 - буквенно-алфавитный)
	МатрицаДанных.SetValue(Индекс,	0); Индекс = Индекс + 1; //source_addr_npi 
	
	//source_addr
	Для НомерСимвола = 1 По ДлинаИмениОтправителя Цикл
		МатрицаДанных.SetValue(Индекс, КодСимвола(ОтправительСМС, НомерСимвола));
		Индекс = Индекс+1;
	КонецЦикла;
	МатрицаДанных.SetValue(Индекс,	0); Индекс = Индекс+1;
	//source_addr
	
	Сообщить( "Окончено: СобратьПакет_Query_SM");
	Возврат МатрицаДанных;
КонецФункции // СобратьПакет_Query_SM()

Процедура ОбработатьПакет_Query_sm_resp(ВходящийПакет)
	//Сообщить("Начато: ОбработатьПакет_Query_sm_resp");
	
	РазмерПакета = ВходящийПакет.GetValue(3);
	КодСтатуса = ВходящийПакет.GetValue(РазмерПакета-2);	
	Индекс = 16;
	
	message_id = "";
	Пока Индекс < РазмерПакета Цикл
		ТекЗначение = ВходящийПакет.GetValue(Индекс);
		Если ТекЗначение = 0 Тогда
			Индекс = Индекс + 1;
			Прервать;
		КонецЕсли;
		message_id = message_id + Символ(ВходящийПакет.GetValue(Индекс));
		Индекс = Индекс + 1;
	КонецЦикла;
	final_date = "";
	Пока Индекс < РазмерПакета Цикл
		ТекЗначение = ВходящийПакет.GetValue(Индекс);
		Если ТекЗначение = 0 Тогда
			Индекс = Индекс + 1;
			Прервать;
		КонецЕсли;
		final_date = final_date + Символ(ВходящийПакет.GetValue(Индекс));
		Индекс = Индекс + 1;
	КонецЦикла;
	
	message_state = ВходящийПакет.GetValue(Индекс); Индекс = Индекс + 1;
	error_code = ВходящийПакет.GetValue(Индекс);
КонецПроцедуры
Показать
3. flesh611 25.12.15 11:19 Сейчас в теме
Очень нужная вещь. А где можно узнать какие коды ошибок каким ошибкам соответствуют при обработке пакета submit_sm_resp? Возникают 2 ошибки с кодом 10 и 100, не пойму в чем дело
4. deminded 7 25.12.15 14:47 Сейчас в теме
(3) flesh611, все коды ошибок есть в спецификации (Спецификация Протокола SMPP v.3.4 )
Например, https://alphasms.ua/storage/files/SMPP-v3.4.rus.pdf
5. Tanis 07.01.17 16:58 Сейчас в теме
Доброго времени суток!

В публикации не указано, или не увидел. Чей логин и пароль используются? эти смс уходят через какие шлюзы или какие компании по доставке смсок?

Спасибо!
6. deminded 7 09.01.17 09:05 Сейчас в теме
(5) Добрый день. Мы использовали обработку для общения со шлюза tele2. Никакие промежуточные компании доставки смс-ок не используются, это их собственный, "родной" smpp-интерфейс http://bsms.tele2.ru/
Логин, пароль и адрес были выданы нам провайдером.
7. MarkMart 09.12.20 16:09 Сейчас в теме
Не хотите Ваш проект на УФ переписать ?
Думаю скачаванию прибавилось бы
AntonGoryainov; +1 Ответить
Оставьте свое сообщение