Система отправки сообщений (sms,email и тд). Шаблоны сообщений

Skip to end of metadata
Go to start of metadata
Вы просматриваете старую версию данной страницы. Смотрите текущую версию. Сравнить с текущим  |   просмотр истории страницы

Описание системы отправки сообщений

Система отправки сообщений Carbon Billing 5 поддерживает четыре метода отправки:

  • SMS
  • E-mail
  • Telegram
  • PUSH

Для её работы следует настроить шаблоны и параметры отправки, для каждого метода свои.

Быстрый запуск. Как проверить?

  1. Настройте смс-шлюз.
    Если у Вас демо - то уже настроен шлюз Carbon и этот шаг можно пропустить.
  2. Укажите у оператора связи адрес почты отправителя
  3. Настройте шаблоны сообщений. Уже есть предустановленные почти по всем шаблонам.
  4. Заполните в карточке абонента реквизиты: "Email для оповещений" и "Номер SMS для оповещений" (можно что-то одно)
  5. Отправьте тестовое сообщение

Настройка системы и методов отправки

Включение системы отправки сообщений

Для работы системы отправки сообщений, следует включить этот сервис в настройках биллинга
Для этого необходимо перейти в "Управление абонентами и тарифами - настройки - настройки(в файле) - настройки демона отправки сообщений" и выставить флаг в поле "Включить отправку сообщений"

Настройка SMS рассылки

  1. Откройте вкладку "Настройка сообщений" в карточке оператора связи. Нажмите кнопку "Редактировать" (пиктограмма в виде карандашика в колонке "Действие"



  2. Снимите опцию "Использовать СМС шлюз Carbon" и нажмите "Сохранить", Вас автоматический перенаправит на вкладку "Настройка сообщений" в карточке оператора связи



  3. Снова нажмите кнопку "Редактировать"



  4. Настройте требуемые параметры и нажмите "Сохранить". Обязательными являются:

    • Адрес СМС шлюза
    • Post параметры
    • MD5 подпись

Следующие параметры настройте по необходимости:

  • Заголовок сообщения - автоматический добавляемая тема email-сообщения, на случай если она не указана в шаблоне или в форме отправки сообщения.
  • Предупреждать о лимите за n дней - количество дней для шаблона сообщения "Предупреждение за n дней" (описано далее в статье).
  • Количество попыток отправки - количество попыток в случае, если сервер, на который передаётся сообщение, не отвечает.
  • Начало тихого часа - начала периода времени, когда сообщения не отправляются (работает и на sms и на email).
  • Окончание тихого часа - конец периода времени, когда сообщения не отправляются (работает и на sms и на email).
  • Убирать "" из номера - автоматический убирает "" в начале телефонного номера (например, "79121234567" вместо "+79121234567") если этого требует sms-шлюз
Важно:
SMS-шлюз должен уметь принимать параметры отправляемого сообщения GET-запросом по протоколу http (или https). Иными словами, должна быть возможность отправки сообщения путём вставки запроса в адресную строку браузера.

Пример запроса к sms-шлюзу

http://smsc.ru?charset=utf-8&login='company'&psw='company123'&phones=79991231122&mes=Тест отправки

Использованы следующие параметры:
smsc.ru - адрес вашего смс шлюза
company - название вашей компании
company123 - пароль, выданный смс-шлюзом
79991231122 - номер для тестовой отправки, на который придет смс
Тест отправки -  текст для отправки, указывается без кавычек

Соответственно, "Адрес СМС шлюза" из настроек сообщений в строке браузера находится слева от символа "?", а "Post параметры СМС шлюза" - справа, при этом используются переменные:

  • %(sms)s - номер телефона
  • %(text)s - текст сообщения.
Для того, чтобы корректно работал шаблон сообщений "Предупреждение за n дней", необходимо в настройках сообщений оператора связи указать параметр "Предупреждать о лимите за n дней"

Примеры интеграции с SMS-шлюзами

SMSC

Сайт компании: smsc.ru

Адрес СМС шлюза:

https://smsc.ru/sys/send.php?

Post параметры:

charset=utf-8&login=Ваш логин&psw=Ваш пароль&phones=%sms%&mes=%text%
Важно:
Чтоб смс отправилось, в карточке абонента должен быть выбран оператор связи с настроенным смс-шлюзом.

Простор СМС

Адрес СМС шлюза:

http://gate.prostor-sms.ru/send/

Post параметры:

login='Ваш логин'&password='Ваш пароль'&phone=%sms%&text=%text%

SMSPILOT.RU

Описание интеграции в документации SMSPILOT.RU

Адрес СМС шлюза:

http://smspilot.ru/api.php

Post параметры:

send=%text%&to=%sms%&apikey=XXXYYYZZZ

Вместо XXXYYYZZZ скопируйте API-ключ из настроек: Личный кабинет -> Настройки -> Настройки API

На стороне sms-шлюза Вы должны быть подключены как бизнес-клиент, либо скопировать шаблоны из Carbon Billing 5 в "Шаблоны" в личном кабинете SMSPILOT.RU

Настройка Email рассылки

Для того, чтобы сообщения отправлялись, следует указать "Email для оповещений" в карточке оператора связи.

Например: info@provider.name

Настройка отправки Email со стороннего сервера

По умолчанию биллинг отправляет Email сообщения со встроенного smtp сервера. Но также есть возможность отправлять Email со стороннего сервера.
Чтобы попасть в настройки smtp сервера перейдите Настройки -> Настройки (в файле) -> Настройки демона отправки сообщений.

Страница настроек выглядит следующим образом:

Доступны в следующие настройки:

  • SMTP Шифрование SSL
  • SMTP Сервер
  • SMTP Порт
  • SMTP Пароль
  • enabled - включение отправки сообщений
  • SMTP Логин
  • SMTP Шифрование TSL
  • SMTP расширенное журналирование - Подробное журналирование SMTP-соединений
Чтобы вернуть настройки по умолчанию, необходимо в поле "SMTP Сервер" вписать "localhost", а поля "SMTP Порт", "SMTP Логин" и "SMTP Пароль" оставить пустыми.

Настройка Telegram рассылки и интеграция с ботом

Мы описали это статье Отправка уведомлений через Telegram

Настройка PUSH-уведомлений из личного кабинета

Мы описали это статье PUSH-уведомления из личного кабинета

Настройка шаблонов сообщений


Для каждого типа сообщения надо создать свой шаблон

Опция Отправлять сообщение отвечает за то нужно отправлять сообщение или нет. Эту галочку можно также поставить в самом шаблоне при редактировании.
Опция Отправлять каждый день работает только для шаблона "Предупреждение за n дней", при её активации сообщение отправится за количество дней указанных в настройках оператора связи в поле "Предупреждать о лимите за n дней", а так же каждый день до даты когда он будет заблокирован.

Пример 1. Шаблон сообщения сброса пароля

Возможные переменные

В шаблонах можно использовать следующие параметры:
%(contract_number)s - номер договора;
%(balance)s - текущий баланс;
Для округления баланса до целого значения используйте параметр %(balance).f
%(currecy)s - валюта сокращение (например руб.);
%(text)s - передаваемый текст (сообщение непосредственно конкретному абоненту);
%(operator_name)s - имя оператора связи(по умолчанию "Лучший провайдер");
%(allow_limit)s - сумма, которая указана в пороге включения(тариф);
%(gen_pwd)s - созданный через админ. панель пароль(не существует, если пароль изменен через ЛК);
%(login)s - логин абонента;
%(tarif_name)s - тариф абонента;
%(plan_comment)s - описание тарифа (например скорость, указывается руками);
%(recomend_pay_sum)5.2f - рекомендуемый платеж
%(recomend_pay_sum_post)5.2f - рекомендуемый платеж постоплата
%(minimal_pay_sum)5.2f - минимальный платеж для разблокировки
%(subscriber_name)s - Имя абонента, который создал заявку в helpdesk
%(abonent_id)s - ID абонента, который создал заявку в helpdesk
%(subscriber_sms) - номер телефона абонента, который создал заявку в helpdesk
%(subscriber_comment)s - стандартный реквизит "Комментарий"
%(psw_token)s - проверочный код для сброса пароля Личного кабинета

%(gen_pwd)s - это пароль всегда от первой учетной записи

А также любые поля абонента, тарифа, счета и прочих данных, отображаемых на вкладке "Информация" в карточке абонента. Названия переменных можно взять из описания моделей в API REST v2.0

Например:

Уважаемый Абонент! Ваши персональные данные: ФИО: "%(name)s", Дата выставления Акта: "%(next_auto_acount)s", Код в 1С: "%(code1c)s", Дата начала предоставления услуг: "%(activate_date)s", Лицевой счет: %(account_id)s, Тариф: "%(tarif_name)s", Оператор связи: "%(operator_name)s"

Будет отправлено сообщение приблизительно следующего содержания:

Уважаемый Абонент! Ваши персональные данные: ФИО: "Новый абонент", Дата выставления Акта: "2017-11-01 00:00:00", Код в 1С: "1sTESTcode", Дата начала предоставления услуг: "2017-10-01 00:00:00", Лицевой счет: 10001319, Тариф: "Анлим 30мб", Оператор связи: "ООО Лучший провайдер"

Текст заголовка - тема e-mail или заголовок смс.
Текст шаблона - непосредственно отправляемый текст.

Тип сообщения. События.

Каждый шаблон сообщения может быть отправлен по любому из выбранных событий:

  • Подключение услуги - приходит абоненту при подключении услуги;
  • Положительный баланс - приходит абоненту при переходе абонента в положительный баланс(ниже порога отключения абонента);
  • Отрицательный баланс - приходит абоненту при переходе абонента в отрицательный баланс(выше порога отключения абонента);
  • Выставлен счет - приходит абоненту при выставлении счета абоненту (используется чаще для юр.лиц). Для того, чтобы отправка счета выполнялась вручную из вкладки "Операции", шаблон с данным типом должен быть включен. Вместе со счетом юр.лицам отправляется ещё и акт. Отправка акта выполняется с помощью этого же шаблона сообщений(Выставлен счет);
  • Зачисление денег - приходит абоненту при поступлении средств на счет (при условии что в настройках абонента стоят галочки Юр.лицо и Отправлять Счет/Акт, а также Настройки - Число месяца выставления счетов на предоплату);
  • Ручная отправка сообщения - при ручной отправке;
  • Занесено в Аудит - при занесении информации в Аудит;
  • Достигнут порог предупреждения - при достижении порога предупреждения (порог предупреждения из опций тарифа);
  • Сообщение из HelpDesk - при создании заявки от абонента в HelpDesk (приходит инженерам Helpdesk);
  • Сообщение из CRM - при создании задачи в CRM (приходит ответственному исполнителю).
  • Предупреждение за n дней - за n дней до даты когда абонент будет заблокирован
  • Создание учетной записи из услуги - отправляется при создании учетной записи при подключении услуги

Способы отправки сообщений

В настоящее время поддерживаются 2 способа отправки сообщений пользователям:

  • Письмо на e-mail
  • SMS сообщение на телефон

Если не выбрать конкретный вид сообщения, то рассылка будет вестись всеми доступными средствами.

Отправитель

Поле отправитель зависит от типа сообщения:

  • Если сообщение системное, например у пользователя кончились деньги на счёте, то в поле отправитель будет указан e-mail, принадлежащий Оператору связи.
  • Если сообщение отправлялось вручную с помощью веб-интерфейс администратора Carbon Billing 5, то отправителем будет указан e-mail администратора системы, который это сообщение отправил;
  • Если данные поля не заполнены, отправителем будет почта вида root@www.example.com, где www.example.com - доменное имя главного внешнего интерфейса.

Отправка сообщений

Для отправки сообщений непосредственно одному из абонентов необходимо зайти в раздел Абоненты, выбрать абонента, вкладка Отправить сообщения.
Выбирается метод отправки и выбирается шаблон сообщения. Для отправки произвольного текста, следует создать шаблон с типом "Ручная отправка" и текстом шаблона %(text)s

Если выбрать "Метод отправки" и он отличается от того, что настроен в шаблоне сообщения (поле "Тип отправки"), то будет использоваться метод, выбранный на странице создания сообщения.
Например, если в шаблоне настроен тип "SMS", а на форме не выбран метод ("---"), то сообщение отправится только по SMS. Если в шаблоне настроен тип "SMS", но при создании сообщения выбрать "Email", то сообщение отправится только по Email.

Отладка

Логи работы демона отправки сообщений за текущие сутки находятся в файле

/app/asr_billing/var/log/msgd.log

Логи за прошедшие сутки архивируются в этом же каталоге под названием msgd.log-<date>.gz

Перестали отправляться email-сообщения абонентам, при использовании встроенного smtp сервера

  1. В момент отправки запускаем лог и видим следующее:
    Команда
    tail -f /app/asr_billing/var/log/msgd.log | grep -A2 'Отправляем'
    Пример вывода с ошибкой
    2019-11-18 13:45:37,976 - worker - msg_lib - INFO - Отправляем email сообщение абоненту:Иванов Иван Иванович
    2019-11-18 13:45:37,985 - worker - msg_lib - ERROR - Can't send:[Errno 111] Connection refused
    
  2. Проверим настройки почтового сервера. Если настройки стандартные, нужно проверить встроенный почтовый сервер на localhost. Проверим, запущен ли он:
    Команда
    service postfix status
    Пример вывода, сервер остановлен
    master остановлен
  3. Перезапускаем встроенный почтовый сервер:
    Команда
    service postfix restart
    Пример вывода, сервер перезапущен (остановлен он был ранее)
    Останавливается postfix:                                   [СБОЙ ]
    Запускается postfix:                                       [  OK  ]
    

Проблемы с отправкой email-сообщений, при использовании стороннего smtp сервера

Для отладки отправки smtp сообщений сделайте следующее:

  1. Включите опцию расширенного логирования в настройках
  2. Перезапустите службу отправки сообщений, для применения настроек
    chroot /app/asr_billing/ service msgd restart
    
  3. Сделайте пробную отправку сообщения

    Выберите метод отправки smtp. Текст и тема произвольные.
  4. Проследите в логе службы отпраки сообщений за ходом отправки
    /app/asr_billing/var/log/msgd.log

Если у вас возникнут вопросы по ошибкам в smtp диалоге, сохраните лог отправки и создайте заявку в техническую поддержку.

Перестали отправляться sms-сообщения абонентам.

Проверям лог отправки сообщений на наличие ошибок:

Команда
grep -i 'error' /app/asr_billing/var/log/msgd.log 

Видим сообщение об ошибке сертификата:

Пример вывода с ошибкой
2019-12-17 08:01:07,298 - worker - msg_lib - ERROR - Can't send message(Curl error):(60, 'SSL certificate problem: self signed certificate in certificate chain')
2019-12-17 08:01:07,423 - worker - msg_lib - ERROR - Can't send message(Curl error):(60, 'SSL certificate problem: self signed certificate in certificate chain')
2019-12-17 08:01:07,545 - worker - msg_lib - ERROR - Can't send message(Curl error):(60, 'SSL certificate problem: self signed certificate in certificate chain')

Данная ошибка означает, что биллинг не может подключиться к SMS-шлюзу из-за проблем с корневым SSL-сертификатом в chroot биллинга. Для решения проблемы необходимо обновить корневые SSL-сертификаты в chroot биллинга.

Команды
chroot /app/asr_billing
cd /etc/ssl/certs
rm -f ca-bundle.crt ca-bundle.trust.crt
wget https://curl.haxx.se/ca/cacert.pem --no-check-certificate
cp cacert.pem ca-bundle.crt
cp cacert.pem ca-bundle.trust.crt
rm -f cacert.pem 
Введите метки, чтобы добавить к этой странице:
Please wait 
Ищите метку? просто начните печатать.