... h1. Быстрый запуск. Как проверить? # [Настройте смс-шлюз|#configure_gate]; # [Укажите у оператора связи адрес почты отправителя|#configure_isp]; # [Настройте шаблоны сообщений|#configure_messages]. Уже есть предуастановленные почти по всем шаблонам; # [Заполните в карточке абонента реквизиты|CarbonBilling:Создание абонента. Заведение абонента. Работа с абонентами. Редактирование абонентов#fill_sms_email_fields]: "*Email для оповещений*" и "*Номер SMS для оповещений*" (можно что-то одно); # [Отправьте тестовое сообщение|#send_message]. h1. Настройка системы и методов отправки {anchor:configure_gate} h2. Включение системы отправки сообщений Для работы системы отправки сообщений, следует включить этот сервис в настройках биллинга Для этого необходимо перейти в "Управление абонентами и тарифами - настройки - настройки(в файле) - настройки демона отправки сообщений" и выставить флаг в поле "Включить отправку сообщений" !demon.png|border=1,width=800! h2. Настройка SMS рассылки # Откройте вкладку "*Настройка сообщений*" в карточке оператора связи. Нажмите кнопку "*Редактировать*" (пиктограмма в виде карандашика в колонке "Действие" \\ \\ !smsgate_1.png|border=1,width=800!\\ # Настройте требуемые параметры и нажмите "*Сохранить*". \\ \\ !smsgate_5.png|border=0,width=400! h4. Способы отправки смс: # POST. Обязательные параметры: #* Адрес СМС шлюза #* Post параметры #* MD5 подпись # GET - данные для GET-запроса нужно записать в поле "Post параметры". # Ростелеком JSON - игнорирует поле "Post параметры" и поле "MD5 подпись". h4. Список параметров: * *Адрес СМС шлюза* * *Post параметры* * *Тип запроса к серверу* \- Доступны: ** POST ** GET ** Ростелеком JSON * *Заголовок сообщения* \- автоматический добавляемая тема email-сообщения, на случай если она не указана в шаблоне или в форме отправки сообщения. * *Предупреждать о блокировке за n дней* \- количество дней для шаблона сообщения "Предупреждение за n дней" (описано далее в статье). {note:title=Важно:} Опция "Предупреждать о блокировке за n дней" не работает вместе с включенной опцией "[Льготный период оплаты (Число месяца, до которого не проверять превышение баланса)|http://docs.carbonsoft.ru/x/aQIFAw] {note} * *Количество попыток отправки* \- количество попыток в случае, если сервер, на который передаётся сообщение, не отвечает. * *Начало тихого часа* \- начала периода времени, когда сообщения не отправляются (работает и на sms и на email). * *Окончание тихого часа* \- конец периода времени, когда сообщения не отправляются (работает и на sms и на email). * *MD5 подпись* * *Убирать + из номера* \- автоматический убирает + в начале телефонного номера (например, "79121234567" вместо "+79121234567") если этого требует sms-шлюз * *Логин сервера sms* \- логин basic авторизации sms сервера. * *Пароль сервера sms* \- пароль basic авторизации sms сервера. {info} Для включения basic-авторизации необходимо одновременно заполнить поля логин\праоль сервера sms. {info} * *Имя отправителя sms* \- Имя отправителя. Используется только для типа отправки *Ростелеком JSON*. {note:title=Важно:} SMS-шлюз должен уметь принимать параметры отправляемого сообщения по протоколу http (или https). Отправка производится POST или GET запросом. {note} h3. Пример запроса к sms-шлюзу {code} http://smsc.ru?charset=utf-8&login='company'&psw='company123'&phones=79991231122&mes=Тест отправки {code} Использованы следующие параметры: *smsc.ru* \- адрес вашего смс шлюза *company* \- название вашей компании *company123* \- пароль, выданный смс-шлюзом *79991231122* \- номер для тестовой отправки, на который придет смс *Тест отправки* \- текст для отправки, указывается без кавычек Соответственно, "*Адрес СМС шлюза*" из настроек сообщений в строке браузера находится {color:#ff0000}слева{color} от символа "*?*", а "*Post параметры СМС шлюза*" - {color:#ff0000}справа{color}, при этом используются переменные: * {color:#008000}%(sms)s{color} \- номер телефона * {color:#008000}%(text)s{color} \- текст сообщения. {note}Для того, чтобы корректно работал шаблон сообщений "*Предупреждение за n дней*", необходимо на вкладке "*Настройка сообщений*" у оператора связи указать параметр "*Предупреждать о блокировке за n дней*" {note} {info} Поле *Предупреждение за n дней* будет работать для всех типов отправки сообщений с шаблоном *Предупреждение за n дней* {info} h2. Примеры интеграции с SMS-шлюзами h3. [SMSC|https://smsc.ru/?ppcarbon|https://smsc.ru/?ppcarbon] *Сайт компании:* *[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% {code} {note:title=Важно:} Чтоб смс отправилось, в карточке абонента должен быть выбран оператор связи с настроенным смс-шлюзом. {note} h3. [Digital Direct|https://digital-direct.ru] *Сайт компании:* *[digital-direct.ru|https://digital-direct.ru]* Обязательные параметры: # Адрес СМС шлюза: {code} https://direct.i-dgtl.ru/api/v1/message {code} # Тип запроса к серверу {code} Digital Direct JSON {code} # Пароль сервера sms {info} В ЛК Digital Direct необходимо получить ключ АПИ и вписать его в поле "Пароль сервера СМС" {info} {note} *Важно:* если ключ будет длиннее 128 символов, обратитесь к нам{note} # Имя отправителя sms Здесь нужно указать имя согласованное с провайдером (настраивается в ЛК Digital Direct) # "Убирать "+" из номера" Здесь нужно поставить галочку. # "Post параметры" При необходимости передачи доп. параметров: записать их в поле "Post параметры" в формате JSON, при этом убедиться что в логе */app/asr_billing/var/log/msgd.log* нет ошибок отправки h3. [Простор СМС|https://prostor-sms.ru] *Сайт компании:* *[prostor-sms.ru|https://prostor-sms.ru]* Обязательные параметры: # Адрес СМС шлюза: {code} http://gate.prostor-sms.ru/send/ {code} # Post параметры: {code} login='Ваш логин'&password='Ваш пароль'&phone=%sms%&text=%text% {code} h3. [SMSPILOT.RU|https://smspilot.ru] *Сайт компании:* *[smspilot.ru|https://smspilot.ru]* [Описание интеграции в документации 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] На стороне sms-шлюза Вы [должны быть подключены как бизнес-клиент|https://smspilot.ru/faq.php#q24], либо скопировать шаблоны из Carbon Billing 5 в "[Шаблоны|https://smspilot.ru/my-template.php]" в личном кабинете SMSPILOT.RU {anchor:configure_isp} h3. Ростелеком СМС Реклама *Сайт компании:* *[rt.ru|https://msk.rt.ru]* Обязательные параметры: # Адрес СМС шлюза: {code} https://sms.rt.ru/api/v2/send_message {code} # Тип запроса к серверу {code} Ростелеком JSON {code} # Логин сервера sms # Пароль сервера sms # Имя отправителя sms h3. [SemySMS|https://semysms.net] *Сайт компании:* *[semysms.net|https://semysms.net/]* [Описание интеграции в документации SemySMS|https://semysms.net/api.php] Обязательные параметры: # Адрес СМС шлюза {code} https://semysms.net/api/3/sms.php {code} # Тип запроса к серверу {code} POST {code} # Post параметры {code} token=Ваш токен&device=Код устройства&phone=%2B%sms%&msg=%text% {code}
|
... h2. Создание шаблона h3. Создание в настройках биллинга В пунте *"Шаблоны сообщений"* можно создать шаблоны доступные всем [операторам связи|Агентские схемы и ведение филиалов]. Для создания нажмите кнопку *"Добавить"*. !Create_msg_001.png|border=1,width=1200! Для каждого типа сообщения нужно создать свой шаблон. !3.png|border=1,width=600! h3. Создание с привязкой к оператору связи При ведении в биллинге нескольких [опраторов связи|Агентские схемы и ведение филиалов] можно создать различные шаблоны для каждого оператора. Сделать это можно в настройках конкретного оператора связи: !2.png|border=1,width=600! При этом шаблон сообщения отобразится в настройках биллинга. У него будет заполнено поле *"Принадлежит оператору"*. Изменить пренадлежность опретору нет возможности. Для измения пренадлежности создайте новый шаблон. h2. Параметры шаблона сообщений При создания шаблона сообщений доступны параметры: * *Текст заголовка* - тема e-mail или заголовок смс; * *Текст шаблона* - непосредственно отправляемый текст; * *Отправлять сообщение* - опция отвечает за то, нужно отправлять сообщение или нет; * *Тип отправки* - указывает метод, которым будет отправлено сообщение. Методы описаны в [ниже|Система отправки сообщений (sms,email и тд). Шаблоны сообщений#Способы отправки сообщений]; * *Отправлять каждый день* - работает только для шаблона "Предупреждение за n дней", при её активации сообщение отправится за количество дней указанных в настройках оператора связи в поле "Предупреждать о блокировке за n дней", а так же каждый день до даты когда он будет заблокирован; * *Статус абонента* - сообщения будут отправлены только абонентам со [статусом|Статусы абонентов]; * *Отправлять абоненту с типом договора* - тип: юридические или физические лица; * *Использовать шаблонизатор django* - включает использование набора переменых [django|Система отправки сообщений (sms,email и тд). Шаблоны сообщений#Использование переменных Django]. h2. Возможные переменные В шаблонах сообщений можно использвать два набора переменных - стандартные перемнные и переменные шаблонизатора [django|Система отправки сообщений (sms,email и тд). Шаблоны сообщений#Использование переменных Django]. В одном шаблоне сообщений можно использовать либо стандартные переменные, либо и переменные шаблонизатора django. Ниже перечислены стандартные переменные: * %(name)s - ФИО абонента; * %(contract_number)s - номер договора; * %(balance)s - текущий баланс; {info} Для округления баланса до целого значения используйте параметр %(balance).f {info} * %(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} Пример: {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} {{ abonent.abonent_id_trafcounters }} {code} Пример использования обратной ссылки для отправки в сообщении логина и пароля от учетной записи с типом 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} Если вы хотите использовать другие модели, обратитесь в [техническую поддержку|https://helpdesk.carbonsoft.ru]. Включать шаблонизатор 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. Тип сообщения. События. Каждый шаблон сообщения может быть отправлен по любому из выбранных событий: * *Подключение услуги* \- приходит абоненту при подключении услуги; * *Положительный баланс* \- приходит абоненту при переходе абонента в положительный баланс(выше порога отключения абонента); * *Отрицательный баланс* \- приходит абоненту при переходе абонента в отрицательный баланс(ниже порога отключения абонента); * *Выставлен счет* \- приходит абоненту при выставлении счета абоненту (используется чаще для юр.лиц). Для того, чтобы отправка счета выполнялась вручную из вкладки "Операции", шаблон с данным типом должен быть включен. Вместе со счетом юр.лицам отправляется ещё и акт. Отправка акта выполняется с помощью этого же шаблона сообщений(Выставлен счет); * *Зачисление денег* \- приходит абоненту при поступлении средств на счет (при условии что в настройках абонента стоят галочки Юр.лицо и Отправлять Счет/Акт, а также Настройки - Число месяца выставления счетов на предоплату); * *Ручная отправка сообщения* \- при ручной отправке; * *Занесено в Аудит* \- при занесении информации в Аудит; * *Достигнут порог предупреждения* \- при достижении порога предупреждения (порог предупреждения из опций тарифа); * *Сообщение из HelpDesk* \- при создании заявки от абонента в HelpDesk (приходит инженерам Helpdesk); * *Сообщение из CRM* \- при создании задачи в CRM (приходит ответственному исполнителю); * *Предупреждение за n дней* \- за n дней до даты когда абонент будет заблокирован; * *Создание учетной записи из услуги* \- отправляется при создании учетной записи при подключении услуги; * *Данные для HotSpot* \- данные для авторизации в [HotSpot|Софт HotSpot]; * *Комментарий к заявке HelpDesk* \- при создании коментария к заявке HelpDesk (приходит абоненту); * *Анонимная заявка с вэб-сайта* \- отправляется при создании [заявки на подкючение|Заявка на подключение]; * *Поздравление* \- поздравление с праздником, подробнее в [статье|Поздравления]; * *Сброс пароля в Личном кабинете* \- данные для сброса пароля от Личного кабинета, подробнее в [статье|Восстановление пароля к личному кабинету]. h2. Способы отправки сообщений В настоящее время поддерживаются четыре способа отправки сообщений пользователям: !message_template_send_types.png|border=1,height=500! * Письмо электроную почту (e-mail)
|
... h2. Отправитель Поле отправитель зависит от типа сообщения: * Если сообщение системное, например у пользователя кончились деньги на счёте, то в поле отправитель будет указан e-mail, принадлежащий Оператору связи. * Если сообщение отправлялось вручную с помощью веб-интерфейс администратора Carbon Billing 5, то отправителем будет указан e-mail администратора системы, который это сообщение отправил; * Если данные поля не заполнены, отправителем будет почта вида root@www.example.com, где www.example.com - доменное имя главного внешнего интерфейса. {anchor:send_message} h2. Пример 1. Шаблон сообщения [сброса пароля|Восстановление пароля к личному кабинету] !Выделение_001.jpg|border=1! h1. Отправка сообщений {note:title=Важно:} При отправке СМС-сообщений нужно обязательно выбрать шаблон отправки. Если не выбрать шаблон, то сообщения уйдут по всем подходящим шаблонам (например, по всем абонентам в папках вместо одного). {note} Для отправки сообщений непосредственно одному из абонентов необходимо зайти в раздел Абоненты, выбрать абонента, вкладка Отправить сообщения. Выбирается метод отправки и выбирается шаблон сообщения. Для отправки произвольного текста, следует создать шаблон с типом *"Ручная отправка"* и текстом шаблона *%(text)s* Если выбрать "Метод отправки" и он отличается от того, что настроен в шаблоне сообщения (поле "Тип отправки"), то будет использоваться метод, выбранный на странице создания сообщения. Например, если в шаблоне настроен тип "SMS", а на форме не выбран метод ("---"), то сообщение отправится только по SMS. Если в шаблоне настроен тип "SMS", но при создании сообщения выбрать "Email", то сообщение отправится только по Email. !send_message.png|border=1,width=701,height=184! h1. Отладка Логи работы демона отправки сообщений за текущие сутки находятся в файле {code}/app/asr_billing/var/log/msgd.log{code} Логи за прошедшие сутки архивируются в этом же каталоге под названием *msgd.log-<date>.gz* h3. Перестали отправляться email-сообщения абонентам, при использовании встроенного smtp сервера # В момент отправки запускаем лог и видим следующее: {code:title=Команда}tail -f /app/asr_billing/var/log/msgd.log | grep -A2 'Отправляем'{code} {code:title=Пример вывода с ошибкой}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 {code} # Проверим настройки почтового сервера. Если настройки стандартные, нужно проверить встроенный почтовый сервер на localhost. Проверим, запущен ли он: {code:title=Команда}service postfix status{code} {code:title=Пример вывода, сервер остановлен}master остановлен{code} # Перезапускаем встроенный почтовый сервер: {code:title=Команда}service postfix restart{code} {code:title=Пример вывода, сервер перезапущен (остановлен он был ранее)}Останавливается postfix: [СБОЙ ] Запускается postfix: [ OK ] {code} h3. Не отправляются email-сообщения, используем сторонний smtp сервер, по логу не ясно в чём проблема Добавьте больше информации в лог: # Включите опцию расширенного логирования в [настройках|https://docs.carbonsoft.ru/pages/viewpage.action?pageId=49087090#Системаотправкисообщений(sms%2Cemail).Шаблонысообщений-НастройкаотправкиEmail] !smtp01.png|border=1! # Перезапустите службу отправки сообщений, для применения настроек {code} chroot /app/asr_billing/ service msgd restart {code} # Сделайте пробную отправку сообщения !smtp02.png|border=1! Выберите метод отправки smtp. Текст и тема произвольные. !smtp04.png|border=1! # Проследите в логе службы отправки сообщений за ходом отправки {code}/app/asr_billing/var/log/msgd.log{code} Пример: {code} fgrep ERROR /app/asr_billing/var/log/msgd.log 2018-09-02 10:22:26,350 - worker - msg_lib - ERROR - Can't send:(553, '5.7.1 Sender address rejected: not owned by auth user.', u'test@example.com') {code} Произошла ошибка № 553, при отправке письма. Просмотреть коды ошибок можно в документации [Google|https://support.google.com/a/answer/3726730?hl=ru&ref_topic=1355150] на руссом или [IANA|https://www.iana.org/assignments/smtp-enhanced-status-codes/smtp-enhanced-status-codes.xhtml] на английском. Если у вас возникнут вопросы по ошибкам в smtp диалоге, сохраните лог отправки и создайте обращение в портале [HelpDesk|https://helpdesk.carbonsoft.ru/login.php]. h3. Перестали отправляться sms-сообщения абонентам, в логе ошибка "SSL certificate problem" Проверям лог отправки сообщений на наличие ошибок: {code:title=Команда}grep -i 'error' /app/asr_billing/var/log/msgd.log {code} Видим сообщение об ошибке сертификата: {code:title=Пример вывода с ошибкой}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') {code} Данная ошибка означает, что биллинг не может подключиться к SMS-шлюзу из-за проблем с корневым SSL-сертификатом в chroot биллинга. Для решения проблемы необходимо обновить корневые SSL-сертификаты в chroot биллинга. {code:title=Команды}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 {code} h3. В логе зафиксирована ошибка Can't send message id=#######:HTTPConnectionPool(host='1.1.1.1'('Ваш IP'), port=80): {code} 2021-09-02 08:02:16,861 - worker - msg_lib - ERROR - Can't send message id=48788: HTTPConnectionPool(host='.1.1.1.1'('Ваш IP'), port=80):- Max retries exceeded with url: /sms/add.php (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x7ff3f093b850>: - Failed to establish a new connection: [Errno 111] Connection refused',)) {code} Это говорит о том что не удалось установить новое соединение с смс оператором и в настоящее время невозможно отправить собщение из за превышения максимального количества повторных попыток соединения для отправки смс сообщения. Необходимо обратиться к оператору предоставляющему смс услуги. h3. При отправке сообщения вручную, время указывается некорректно {code:title=Пример записи аудита} 391045 Системные события 2020-10-19 12:41 test Добавлена запись №44011: таблица ОтправитьСообщения Изменения=([Время отправки=2020-10-20 00:00:54.314402],[Метод отправки=] {code} Необходимо проверить в настройках "Оператора" в разделе *Настройка сообщений* время начала и окончания "Тихого часа". h3. Не отправляются Email-сообщения, используем собственный SMTP-сервер, в логе ошибка "Name or service not known" {code}2021-06-30 09:33:38,863 - worker - msg_lib - INFO - SMTP params: host=smtp.my-personal-server.ru, port=465, tsl=True, ssl=True, login=info@my-personal-server.ru 2021-06-30 09:33:38,867 - worker - msg_lib - INFO - Отправляем email сообщение абоненту: Тестов Тест Тестович 2021-06-30 09:33:38,923 - worker - msg_lib - ERROR - Can't send:[Errno -2] Name or service not known{code} Скорей всего проблема в DNS - он не настроен для биллинга, не отвечает, или отдаёт некорректный ответ. Попробуйте отрезолвить домен SMTP-сервера из биллинга: {code:title=chroot /app/asr_billing/ nslookup smtp.my-personal-server.ru}Server: 10.10.1.1 Address: 10.10.1.1#53 Name: smtp.my-personal-server.ru Address: 10.10.0.1{code} DNS-сервер вернул локальный адрес. Скорей всего ответ неверный, так как обычно у публичного SMTP-сервера будет публичный IP-адрес. Так же ответ может не прийти вообще, если DNS-сервер недоступен в данный момент, или может его не настроили. h4. Решение Настройте исправный 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" {code}2021-06-30 09:26:52,663 - worker - msg_lib - INFO - Telegram params: token=11111111111:DDDDDDDDDDDDfffffffffFFFFFFFF88888FFFFF, proxy=None 2021-06-30 09:26:53,184 - worker - msg_lib - ERROR - Ошибка запуска Telegram-бота: urllib3 HTTPError HTTPSConnectionPool(host='api.telegram.org', port=443): Max retries exceeded with url: /bot1876073174:AAFmQXtNzLk_aCFguXk6ZX0EfamGhQz9aps/getMe (Caused by NewConnectionError('<telegram.vendor.ptb_urllib3.urllib3.connection.VerifiedHTTPSConnection object at 0x7f2f8e61ea10>: Failed to establish a new connection: [Errno -2] Name or service not known',)){code} Причина и решение такие же как для ошибки "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 2021-08-26 08:39:29,713 - worker - msg_lib - INFO - Абонент #2731 не зарегистрирован в боте 2021-08-26 08:39:29,956 - worker - msg_lib - ERROR - Can't send message #436655: Chat not found{code} Проверьте, назначен ли абоненту TELEGRAM ID в "Реквизитах", либо сформируйте [отчет|https://docs.carbonsoft.ru/pages/viewpage.action?pageId=175833127#Примерытехническихотчётов-Отчетсоспискомабонентов%2CподключившихоповещениечерезTelegram.SUP651766] для просмотра всех абонентов которые подключили бота. h3. Отключить отправку сообщений на сервере Иногда во время отладки или работе с базой данных на тестовом сервере полезно отключить отправку сообщений. # Отключите отправку в конфигурационном файле биллинга: {code:title=Путь конфигурационному файлу} /app/asr_billing/cfg/config {code} {code:title=Служба отправки сообщений включена} msgd['enabled']='1' {code} {code:title=Служба отправки сообщений отключена} msgd['enabled']='0' {code} # Перезапустите службу отправки сообщений для примения измений в силу: {code} chroot /app/asr_billing/ service msgd restart {code}
|