|
Ключ
Эта строка удалена.
Это слово было удалено. Это слово было добавлено.
Эта строка добавлена.
|
Изменения (83)
просмотр истории страницы... |
| h1. Описание системы отправки сообщений |
| Система отправки сообщений Carbon Billing 5 поддерживает четыре метода следующие методы отправки: |
| * SMS * Telegram |
| * PUSH |
| |
| Устаревшие и более не используемые способы отправки (названия оставлены для совместимости): * Agent * Winpop |
| Для работы системы сообщений следует настроить шаблоны и параметры отправки, для каждого метода свои. |
... |
| # [Настройте смс-шлюз|#configure_gate]; # [Укажите у оператора связи адрес почты отправителя|#configure_isp]; |
| # [Настройте шаблоны сообщений|#configure_messages]. Уже есть предуастановленные почти по всем шаблонам; |
| # [Заполните в карточке абонента реквизиты|CarbonBilling:Создание абонента. Заведение абонента. Работа с абонентами. Редактирование абонентов#fill_sms_email_fields]: "*Email для оповещений*" и "*Номер SMS для оповещений*" (можно что-то одно); # [Отправьте тестовое сообщение|#send_message]. |
... |
| # Откройте вкладку "*Настройка сообщений*" в карточке оператора связи. Нажмите кнопку "*Редактировать*" (пиктограмма в виде карандашика в колонке "Действие" \\ |
| \\ !smsgate_1.png|border=1,width=800!\\ |
| \\ |
| # Настройте требуемые параметры и нажмите "*Сохранить*". \\ |
... |
| ** Ростелеком JSON * *Заголовок сообщения* \- автоматический добавляемая тема email-сообщения, на случай если она не указана в шаблоне или в форме отправки сообщения. |
| * *Предупреждать о лимите блокировке за n дней* \- количество дней для шаблона сообщения "Предупреждение за n дней" (описано далее в статье). |
| {note:title=Важно:} Опция "Предупреждать о блокировке за n дней" не работает вместе с включенной опцией "[Льготный период оплаты (Число месяца, до которого не проверять превышение баланса)|http://docs.carbonsoft.ru/x/aQIFAw] {note} |
| * *Количество попыток отправки* \- количество попыток в случае, если сервер, на который передаётся сообщение, не отвечает. * *Начало тихого часа* \- начала периода времени, когда сообщения не отправляются (работает и на sms и на email). |
... |
| * *Пароль сервера sms* \- пароль basic авторизации sms сервера. {info} |
| Для включения basic -авторизации необходимо одновоерменно одновременно заполнить поля логин\праоль сервера sms. |
| {info} * *Имя отправителя sms* \- Имя отправителя. Используется только для типа отправки *Ростелеком JSON*. |
| |
| {note:title=Важно:} SMS-шлюз должен уметь принимать параметры отправляемого сообщения по протоколу http (или https). Отправка производится POST или GET запросом. |
... |
| * {color:#008000}%(text)s{color} \- текст сообщения. |
| {note}Для того, чтобы корректно работал шаблон сообщений "*Предупреждение за n дней*", необходимо на вкладке "*Настройка сообщений*" у оператора связи указать параметр "*Предупреждать о лимите блокировке за n дней*" {note} |
| {info} Поле *Предупреждение за n дней* будет работать для всех типов отправки сообщений с шаблоном *Предупреждение за n дней* |
... |
| *Сайт компании:* *[smsc.ru|https://smsc.ru/?ppcarbon|https://smsc.ru/?ppcarbon]* |
| Обязательные параметры: |
| # Адрес СМС шлюза: |
| {code} https://smsc.ru/sys/send.php? {code} |
| |
| # Post параметры: |
| {code} charset=utf-8&login=Ваш логин&psw=Ваш пароль&phones=%sms%&mes=%text% |
... |
| *Сайт компании:* *[prostor-sms.ru|https://prostor-sms.ru]* |
| Обязательные параметры: |
| # Адрес СМС шлюза: |
| {code} http://gate.prostor-sms.ru/send/ {code} |
| # Post параметры: |
| {code} login='Ваш логин'&password='Ваш пароль'&phone=%sms%&text=%text% |
... |
| [Описание интеграции в документации SMSPILOT.RU|https://smspilot.ru/faq.php#q61] |
| Обязательные параметры: |
| # Адрес СМС шлюза: |
| {code} http://smspilot.ru/api.php {code} |
| # Post параметры: |
| {code} send=%text%&to=%sms%&apikey=XXXYYYZZZ {code} |
| |
| Вместо *XXXYYYZZZ* скопируйте API-ключ из настроек: [Личный кабинет|https://smspilot.ru/my.php] \-> Настройки \-> [Настройки API|https://smspilot.ru/my-settings.php#api] |
... |
| *Сайт компании:* *[semysms.net|https://semysms.net/]* |
| |
| [Описание интеграции в документации SemySMS|https://semysms.net/api.php] |
| Настройка: |
| Обязательные параметры: |
| # Адрес СМС шлюза {code} |
... |
| # Post параметры {code} |
| token=<Ваш токен>&device=<Код устройства>&phone=%2B%sms%&msg=%text% |
| token=Ваш токен&device=Код устройства&phone=%2B%sms%&msg=%text% |
| {code} h2. Настройка Email рассылки |
| Для того, чтобы сообщения отправлялись, следует указать "Email для оповещений" в карточке оператора связи. |
| Укажите *Email для оповещений* в карточке [оператора связи|Агентские схемы и ведение филиалов|Создание оператора связи]. При формирования письма он будет добавлен в поле *From*. Например: info@provider.name |
| |
| Например: info@provider.name |
| !mail01.png|border=1! |
| {note} Обязательно заполните адрес, так как почтовые сервера отбрасывают письма с пустым полем *From*. {note} |
| h3. Настройка отправки Email со стороннего сервера |
... |
| Мы описали это статье [CarbonBilling:Отправка уведомлений через Telegram] |
| h2. Настройка PUSH-уведомлений из личного кабинета |
| h1. Настройка шаблонов сообщений |
| |
| Мы описали это статье [PUSH-уведомления из личного кабинета|CarbonBilling:PUSH-уведомления из личного кабинета] |
| h2. Создание шаблона |
| |
| h2. А что с WhatsApp? |
| h3. Создание в настройках биллинга В пунте *"Шаблоны сообщений"* можно создать шаблоны доступные всем [операторам связи|Агентские схемы и ведение филиалов]. Для создания нажмите кнопку *"Добавить"*. !Create_msg_001.png|border=1,width=1200! Для каждого типа сообщения нужно создать свой шаблон. !3.png|border=1,width=600! |
| |
| h3. WhatsApp Business API, официальный метод интеграции Пока этот метод не поддерживается. Мы делали тестовую интеграцию с WhatsApp в 2017 году, поэтому такой способ отправки сообщений остался в интерфейсе, но по техническим причинам развития функция не получила. На текущий момент официальным методом интеграции является подключение к WhatsApp Bisiness API через партнёров Facebook, что несёт с собой некоторую финансовую нагрузку на компанию, рассылающую сообщения - то есть оператора связи. Подробней об условиях Вы можете уточнить у партнёра Facebook в России, компании [Infobip|https://www.infobip.com/products/whatsapp-business]. Если Вы сочтёте их условия приемлемыми, напишите нам - мы реализуем интеграцию в Carbon Billing 5. h3. Неофициальный метод интеграции, могут заблокировать номер Как пример подобного сервиса - [https://chat-api.com/ru/] Это не очень надёжное решение (WhatsApp может заблокировать номер заподозрив рассылку спама), но распространённое. {info}Если Вам нужен именно такой метод интеграции с Chat API, либо другим подобным сервисом - пожалуйста, напишите нам. Мы сделаем интеграцию при достаточном спросе среди операторов связи{info} h1. Настройка шаблонов сообщений |
| h3. Создание с привязкой к оператору связи При ведении в биллинге нескольких [опраторов связи|Агентские схемы и ведение филиалов] можно создать различные шаблоны для каждого оператора. Сделать это можно в настройках конкретного оператора связи: |
| !2.png|border=1,width=600! |
| Для каждого типа сообщения надо создать свой шаблон !3.png|border=1,width=600! |
| При этом шаблон сообщения отобразится в настройках биллинга. У него будет заполнено поле *"Принадлежит оператору"*. Изменить пренадлежность опретору нет возможности. Для измения пренадлежности создайте новый шаблон. |
| |
| Опция *Отправлять сообщение* отвечает за то нужно отправлять сообщение или нет. Эту галочку можно также поставить в самом шаблоне при редактировании. |
| h2. Параметры шаблона сообщений При создания шаблона сообщений доступны параметры: * *Текст заголовка* - тема e-mail или заголовок смс; * *Текст шаблона* - непосредственно отправляемый текст; * *Отправлять сообщение* - опция отвечает за то, нужно отправлять сообщение или нет; * *Тип отправки* - указывает метод, которым будет отправлено сообщение. Методы описаны в [ниже|Система отправки сообщений (sms,email и тд). Шаблоны сообщений#Способы отправки сообщений]; |
| Опция * *Отправлять каждый день* - работает только для шаблона "Предупреждение за n дней", при её активации сообщение отправится за количество дней указанных в настройках оператора связи в поле "Предупреждать о лимите блокировке за n дней", а так же каждый день до даты когда он будет заблокирован.; |
| * *Статус абонента* - сообщения будут отправлены только абонентам со [статусом|Статусы абонентов]; * *Отправлять абоненту с типом договора* - тип: юридические или физические лица; * *Использовать шаблонизатор django* - включает использование набора переменых [django|Система отправки сообщений (sms,email и тд). Шаблоны сообщений#Использование переменных Django]. |
| |
| h3. Пример 1. Шаблон сообщения [сброса пароля|http://docs.carbonsoft.ru/pages/viewpage.action?pageId=155713989] !Выделение_001.jpg|border=1! |
| h2. Возможные переменные |
| В шаблонах можно использовать следующие параметры: |
| В шаблонах сообщений можно использвать два набора переменных - стандартные перемнные и переменные шаблонизатора [django|Система отправки сообщений (sms,email и тд). Шаблоны сообщений#Использование переменных Django]. В одном шаблоне сообщений можно использовать либо стандартные переменные, либо и переменные шаблонизатора django. Ниже перечислены стандартные переменные: * %(name)s - ФИО абонента; |
| * %(contract_number)s - номер договора; |
| * %(balance)s - текущий баланс; |
| {info} |
| Для округления баланса до целого значения используйте параметр %(balance).f |
| %(currecy)s - валюта сокращение (например руб.); %(text)s - передаваемый текст (сообщение непосредственно конкретному абоненту); %(operator_name)s - имя оператора связи(по умолчанию "Лучший провайдер"); %(allow_limit)s - сумма, которая указана в пороге включения(тариф); %(total_abonpay)s - общая сумма абонентской платы по тарифным и нетарифным услугам; %(tarif_abonpay)s - сумма абонентской платы по тарифным услугам; %(nontarif_abonpay)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_email)s - email абонента, который создал заявку в helpdesk %(subscriber_comment)s - [стандартный реквизит|Реквизиты] "Комментарий" %(psw_token)s - проверочный код для [сброса пароля Личного кабинета|http://docs.carbonsoft.ru/pages/viewpage.action?pageId=155713989] |
| {info} |
| %(gen_pwd)s - это пароль всегда от *первой* учетной записи |
| * %(currecy)s - валюта сокращение (например руб.); * %(text)s - передаваемый текст (сообщение непосредственно конкретному абоненту); * %(operator_name)s - имя оператора связи(по умолчанию "Лучший провайдер"); * %(allow_limit)s - сумма, которая указана в пороге включения(тариф); * %(total_abonpay)s - общая сумма абонентской платы по тарифным и нетарифным услугам; * %(tarif_abonpay)s - сумма абонентской платы по тарифным услугам; * %(nontarif_abonpay)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_email)s - email абонента, который создал заявку в helpdesk * %(subscriber_home)s - адрес абонета, который создал заявку в helpdesk * %(enough_to_date)s - дата [хватит денег до|Финансовые операции. Учет НДС#Прогнозируемая дата блокировки] * %(psw_token)s - проверочный код для [сброса пароля личного кабинета|Восстановление пароля к личному кабинету] |
| {info} |
| %(gen_pwd)s - это пароль всегда от *первой* учетной записи. {info} |
| |
| А также любые *поля* абонента, тарифа, счета и прочих данных, отображаемых на вкладке "Информация" в карточке абонента. Названия переменных можно взять из описания моделей в [CarbonBilling:API REST v2.0] |
| Пример: {code:title=Шаблон} Уважаемый Абонент! Ваши персональные данные: ФИО: %(name)s, Дата выставления Акта: %(next_auto_acount)s, Код в 1С: %(code1c)s, Дата начала предоставления услуг: %(activate_date)s, Лицевой счет: %(account_id)s, Тариф: %(tarif_name)s, Оператор связи: %(operator_name)s. {code} {code:title=Сообщение} Уважаемый Абонент! Ваши персональные данные: ФИО: Новый абонент, Дата выставления Акта: 2017-11-01 00:00:00, Код в 1С: 1sTESTcode, Дата начала предоставления услуг: 2017-10-01 00:00:00, Лицевой счет: 10001319, Тариф: Анлим 0мб, Оператор связи: ООО Лучший провайдер. {code} |
| |
| h2. Использование переменных Django |
| |
| Шаблонизатор django содержит более широкий набор переменных. При его использвании можно указать любые *поля* абонента, тарифа, счета и прочих данных, отображённых на вкладке "Информация" в карточке абонента. Названия переменных можно взять из описания моделей в [CarbonBilling:API REST v2.0]. Доступны следующие модели: * Abonents * FinanceOperations |
| |
| Так же можно получить данные из других моделей используя обратные ссылки. Например, получить значения счётчиков трафика. |
| Например: {code} |
| {code}Уважаемый Абонент! Ваши персональные данные: ФИО: "%(name)s", Дата выставления Акта: "%(next_auto_acount)s", Код в 1С: "%(code1c)s", Дата начала предоставления услуг: "%(activate_date)s", Лицевой счет: %(account_id)s, Тариф: "%(tarif_name)s", Оператор связи: "%(operator_name)s"{code} Будет отправлено сообщение приблизительно следующего содержания: {code}Уважаемый Абонент! Ваши персональные данные: ФИО: "Новый абонент", Дата выставления Акта: "2017-11-01 00:00:00", Код в 1С: "1sTESTcode", Дата начала предоставления услуг: "2017-10-01 00:00:00", Лицевой счет: 10001319, Тариф: "Анлим 30мб", Оператор связи: "ООО Лучший провайдер"{code} |
| {{ abonent.abonent_id_trafcounters }} {code} |
| |
| *Текст заголовка* \- тема e-mail или заголовок смс. *Текст шаблона* \- непосредственно отправляемый текст. |
| Пример использования обратной ссылки для отправки в сообщении логина и пароля от учетной записи с типом Internet: {code} {% for user in abonent.abonent_id_users.all %} {% if user.service_type_id == 1 %} Ваш логин: {{ user.login }} Ваш новый пароль: {{ user.gen_pwd }} {% endif %} {% endfor %} {code} Переменные оператора связи можно получить из переменной *Operator*. Например имя оператора связи: {code} {{ operator.name }} {code} |
| |
| h2. Использование переменных Django |
| Если вы хотите использовать другие модели, обратитесь в [техническую поддержку|https://helpdesk.carbonsoft.ru]. |
| |
| При включении опции "Использовать шаблонизатор django" можно использовать математические функции django, например, вычислить сумму, которую должен внести абонент. Ниже пример такого шаблона сообщения: |
| Включать шаблонизатор django нужно в каждом шаблоне сообщения. |
| |
| !message_django_01.png|border=1! Формат переменной. Например, номер договора абонента: |
| {code} |
| {{ abonent.contract_number }} {code} При включении опции "Использовать шаблонизатор django" можно использовать математические функции django. Например, вычислить сумму, которую должен внести абонент: {code} |
| {% load mathfilters %}Обслуживание по л/с {{ abonent.contract_number }} приостановлено. Внесите не менее {% if total_abonpay <= BALANCE %}0{% else %}{{ total_abonpay|sub:BALANCE }}{% endif %} руб. {code} |
| Также можно обрезать значение переменной(в примере ниже обрезаются последние 9 знаков). Например для того, чтобы отправить в сообщении только дату из поля Хватит денег до, без времени: {code} Денег хватит до {{ enough_to_date|slice:":-9" }} {code} В шаблонизаторе django так же можно использвать переменные из стандартного набора. Для этого укажите их в фомате django: {code:title=Формат стандартного набора} %(text)s {code} {code:title=Формат django} {{ text }} {code} |
| h2. Тип сообщения. События. |
... |
| Каждый шаблон сообщения может быть отправлен по любому из выбранных событий: * *Подключение услуги* \- приходит абоненту при подключении услуги; |
| * *Положительный баланс* \- приходит абоненту при переходе абонента в положительный баланс(ниже баланс(выше порога отключения абонента); |
| * *Отрицательный баланс* \- приходит абоненту при переходе абонента в отрицательный баланс(выше баланс(ниже порога отключения абонента); |
| * *Выставлен счет* \- приходит абоненту при выставлении счета абоненту (используется чаще для юр.лиц). Для того, чтобы отправка счета выполнялась вручную из вкладки "Операции", шаблон с данным типом должен быть включен. Вместе со счетом юр.лицам отправляется ещё и акт. Отправка акта выполняется с помощью этого же шаблона сообщений(Выставлен счет); * *Зачисление денег* \- приходит абоненту при поступлении средств на счет (при условии что в настройках абонента стоят галочки Юр.лицо и Отправлять Счет/Акт, а также Настройки - Число месяца выставления счетов на предоплату); |
... |
| * SMS сообщение на телефон * Telegram-бот, через который можно не только получать рассылку, но и получить данные по лицевому счету, услугам и тарифу |
| * PUSH-уведомления |
| Если не выбрать конкретный вид сообщения, то рассылка будет вестись всеми доступными средствами. |
| h32. Отправитель |
| Поле отправитель зависит от типа сообщения: |
| |
| * Если сообщение системное, например у пользователя кончились деньги на счёте, то в поле отправитель будет указан e-mail, принадлежащий Оператору связи. |
| |
| * Если сообщение отправлялось вручную с помощью веб-интерфейс администратора Carbon Billing 5, то отправителем будет указан e-mail администратора системы, который это сообщение отправил; |
| |
| * Если данные поля не заполнены, отправителем будет почта вида root@www.example.com, где www.example.com - доменное имя главного внешнего интерфейса. {anchor:send_message} |
| h2. Пример 1. Шаблон сообщения [сброса пароля|Восстановление пароля к личному кабинету] !Выделение_001.jpg|border=1! |
| h1. Отправка сообщений |
... |
| Настройте исправный DNS-сервер в меню [базового модуля|https://docs.carbonsoft.ru/pages/viewpage.action?pageId=155353709] по статье [Настройка DNS|https://docs.carbonsoft.ru/pages/viewpage.action?pageId=155353741#%D0%9D%D0%B0%D1%81%D1%82%D1%80%D0%BE%D0%B9%D0%BA%D0%B0%D1%81%D0%B5%D1%80%D0%B2%D0%B5%D1%80%D0%B0%28%D0%BF%D0%B0%D1%80%D0%B0%D0%BC%D0%B5%D1%82%D1%80%D1%8B%D1%81%D0%B5%D1%82%D0%B8%29-%D0%9D%D0%B0%D1%81%D1%82%D1%80%D0%BE%D0%B9%D0%BA%D0%B0DNS] |
| |
| h3. Ошибка: Can't send:(550, '5.1.1 < >: Recipient address rejected: User unknown in local recipient table') {code} 2021-05-24 09:02:14,562 - worker - msg_lib - INFO - Отправляем email сообщение абоненту:VIP_client 2021-05-24 09:02:14,570 - worker - msg_lib - ERROR - Can't send:{u'\u0065\u006d\u0061\u0069\u006c': (550, '5.1.1 < >: Recipient address rejected: User unknown in local recipient table')}{code} |
| Проверьте, корректно ли указан "Email для оповещений:" в карточке абонента. |
| h3. Не отправляются сообщения Telegram, в логе ошибка "Name or service not known" |
... |
| Причина и решение такие же как для ошибки "Name or service not known" при отправке email: что-то не так с DNS-сервером или его настройкой в биллинге. Решение описано чуть выше. |
| h3. Не отправляются сообщения Telegram, в логе ошибка "Can't send message due to unknown reason: Forbidden: user is deactivated" {code} 2025-02-27 09:34:50,614 - worker - msg_lib - INFO - Отправка сообщения через Telegram абоненту #1234 Иван Иванович Иванов 2025-02-27 09:34:50,728 - worker - msg_lib - ERROR - Can't send message due to unknown reason#2315519: Forbidden: user is deactivated {code} Ошибка в логе указывает на то, что пользователь удалил Telegram-аккаунт или заблокировал бота. Чтобы решить проблему необходимо удалить Telegram ID из [реквизитов|CarbonBilling:Реквизиты] абонента. |
| h3. Ошибка в логе Chat not found {code}2021-08-26 08:39:29,703 - worker - msg_lib - INFO - Отправка сообщения через Telegram абоненту #2731 VIP_CLIENT |
... |
