Page tree
Skip to end of metadata
Go to start of metadata

Порядок настройки уведомлений

  1. В номенклатуре в подгруппе Службы уведомлений группы Системные службы создать позицию службы для отправки уведомлений, установить у нее галку Может быть объектом.
  2. Создать сетевую службу на основе добавленной позиции номенклатуры, сделать необходимые настройки управления службой.
  3. Создать нового агента Менеджер активного оборудования для обработки событий, сделать необходимые настройки управления агентом, настроить параметры запуска задания по этому агенту.
  4. Для службы уведомлений создать действия, осуществляющие рассылку. Для получения адресов рассылки использовать подстановку USER_CONTACT_LIST с параметром, определяющим тип адреса (ADDR_TYPE_EMail, ADDR_TYPE_Telephone).
  5. Создать события для сетевой службы уведомлений с нужным типом: Поступление на лицевой счет, Наличие рекомендуемого платежа и т. п. Выбрать менеджера (ранее созданный агент), добавить действия (только прямые).
  6. Подписать на данную службу абонентов (индивидуально на вкладке Службы или с помощью пункта Подписка на службы меню Обработки).
  7. Если используются события с типом Наличие рекомендуемого платежа, настроить параметры запуска задания Обработка рекомендуемых платежей.

Рекомендуется использовать отдельную копию менеджера активного оборудования (hamd) для работы с SMS-уведомлениями. Для установки дополнительной копии агента следует обратиться к сотрудникам технической поддержки.

Пример скрипта уведомления

Скрипт для отправки SMS-сообщений с помощью сервиса «SMS-центр» предоставлен одним из наших клиентов. При необходимости не составит труда переделать его для работы и с другими SMS-шлюзами.

sendsms.py
#!/usr/bin/env python
# -*- coding: UTF-8 -*-

import sys, os, re

login = "mylogin"
password = "mysecretpasswd"

params = {}
params["END_DATE"] = ""
end_date = ""

for i in range( 1,len(sys.argv) ):
    args = sys.argv[i].split("=")
    params[args[0]] = args[1]

# Проверка корректности номера
p = re.compile("^\d{11}$")
phone_match = p.match(params["USER_NUM"])
if not(phone_match) or ((phone_match) and (phone_match.group() != params["USER_NUM"])):
  os._exit(0)

if params["msgtmpl"] == "in_pay":
    msg = "%s платеж на л/с %s, сумма %s. Баланс %s" % (params["DOC_DATE"], params["ACCOUNT"], params["DOC_SUM"], params["BALANCE"])

if len(params["END_DATE"]) != 0:
    end_date = " до %s" % (params["END_DATE"])

if params["msgtmpl"] == "rec_pay":
    msg = "Рекомендуем оплатить услуги связи: %s руб.%s, л/с %s" % (params["REC_PAY"], end_date, params["ACCOUNT"])

if params["msgtmpl"] == "nonpay_block":
    msg = "Услуги по л/с %s заблокированы в связи с недостатком средств" % (params["ACCOUNT"])

cmd = "curl --silent --show-error --url \"http://smsc.ru/sys/send.php\" -d \"login=%s&psw=%s&phones=%s&mes=%s&charset=utf-8&time=09-22\"" % (login, password, params["USER_NUM"], msg)

os.system(cmd)
#print cmd

Пример шаблона команды при поступлении платежа:

/usr/local/bin/sendsms.py msgtmpl=in_pay USER_NUM="$USER_CONTACT_LIST[ADDR_TYPE_Telephone]" DOC_SUM="$DOC_SUM" DOC_DATE="$DOC_TIME[DD.MM HH24:MI]" BANK="$PAYMENT_BANK_CODE" ACCOUNT="$USER_ACCOUNT" BALANCE="$ACCOUNT_BALANCE"

Пример шаблона команды для сообщения о наличии рекомендуемого платежа:

/usr/local/bin/sendsms.py msgtmpl=rec_pay USER_NUM="$USER_CONTACT_LIST[ADDR_TYPE_Telephone]" REC_PAY="$RECOMMENDED_PAY" END_DATE="$GOODS_END_DATE[DD.MM]" ACCOUNT="$USER_ACCOUNT"

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

/usr/local/bin/sendsms.py msgtmpl=nonpay_block USER_NUM="$USER_CONTACT_LIST[ADDR_TYPE_Telephone]" ACCOUNT="$USER_ACCOUNT"

Примечания

  1. Для того, чтобы SMS-уведомления работали, необходимо, чтобы у абонентов в АСР уже имелись контактные мобильные телефоны в формате E.164. Для хранения телефонов рекомендуется использовать специальный вид адреса Адрес для уведомлений.
  2. Уведомления работают следующим образом:
    • За N дней (настраивается  в параметрах задания "Обработка рекомендуемых платежей") до окончания расчетного периода по инвойсу абоненту, если у него по расчетам АСР не хватает на лицевом счете денег для будущего списания, будет каждый день приходить SMS с текстом Рекомендуем оплатить услуги связи: %s руб. до %s, л/с %s, где вместо %s будет, соответственно, сумма вычисленного АСР рекомендуемого платежа, дата окончания инвойса и номер лицевого счета абонента.
    • Если абонент уплатил всю сумму рекомендуемого платежа, SMS на следующий день уже не придет.
    • Если абонент уплатил ее частично, на следующий день SMS придет с рекомендуемым платежом, уменьшенным на сумму платежа.
    • Если абонент не заплатил или заплатил недостаточно, то его отключит и SMS перестанут приходить.
    • Если абоненту была подключена блокировка за неуплату (отдельное задание), то получит соответствующее уведомление.
    • Также абоненту будет приходить SMS при каждом зачислении реального платежа на его лицевой счет.
  3. Если по какой-то причине SMS-рассылка не сработала в заданное время, то удалить ставшие уже ненужными готовые к отправке сообщения можно либо через техподдержку, либо заставив скрипт рассылки работать вхолостую.
  4. Новые абоненты будут получать уведомления только, если при создании будут подписаны на службу уведомлений.
  5. При подключении к сервису SMS-рассылок рекомендуется отдельно обговорить, чтобы получатель вместо непонятного номера отправителя видел название вашей компании. К таким сообщениям гораздо больше доверия.
  • No labels