Настройка TurboSMS в ABillS

Приведу пример настройки сервиса TurboSMS в ABillS, который я использовал для отправки клиентам отчетов Ureports в Viber, а также отправки в Viber фискальных чеков Checkbox.

В первую очередь заключаем договора с TurboSMS, регистрируем имя отправителя Viber в панели TurboSMS.

В конфигурации /usr/abills/libexec/config.pl я указывал добавление +380 к началу номера, а также что номер должен состоять из 10 символов, например 0981234567:

$conf{SMS_NUMBER_EXPR} = '^0/+380;';
$conf{SMS_NUMBER}='[0-9]{10}';

Так как все мобильные телефоны заносились без +380 и когда-то давно я указал параметр который разрешает только 10 цифр в поле мобильный телефон:

$conf{CELL_PHONE_FORMAT}='\d{10}';

Также указал еще параметры:

$conf{SMS_CONTACT_ID} = '1';
$conf{SMS_TURBOSMS_VIBER} = 1;
$conf{SMS_TURBOSMS_VIBER_TOKEN}='ixnfo.com';
$conf{SMS_TURBOSMS_VIBER_URL}='https://api.turbosms.ua/message/send.json';
$conf{SMS_TURBOSMS_MESSAGE_HEADER}='IXNFO';
$conf{SMS_TURBOSMS_VIBER_COUNTRY_CODE}='38';
$conf{SMS_TURBOSMS_TRANSACTIONAL}='1';
$conf{SMS_TURBOSMS_DBHOST} = 'sql.turbosms.ua';
$conf{SMS_TURBOSMS_DBNAME} = 'users';
$conf{SMS_TURBOSMS_DBCHARSET}= 'utf8';
$conf{SMS_TURBOSMS_USER} = 'ixnfo.com';
$conf{SMS_TURBOSMS_PASSWD} = 'xxx';
$conf{SMS_TURBOSMS_TABLE} = 'ixnfo';
#$conf{SMS_TURBOSMS_SEND_TIME}= '12:00:00';
#$conf{SMS_TURBOSMS_SEND_FEES}=0;
#$conf{SMS_TURBOSMS_DEBUG} = 6;
$conf{SMS_TURBOSMS_SIGN}='IXNFO';
$conf{SMS_TURBOSMS_TTL}='28800';

$conf{UREPORTS_SKIP_ACTIVATE_SMS}=1;
#$conf{UREPORTS_ROUNDING}=1;
$conf{UREPORTS_ALLOWED_TYPES} = 'Viber';

$conf{EXTRECEIPTS_USER_CELL_PHONE}='1';
$conf{EXTRECEIPTS_SEND_USER}='Viber';
$conf{EXTRECEIPTS_EXT_RECEIPT_INFO}=1;

Также я добавил задания в /etc/crontab (первое выполняется ежедневно в 10 утра для рассылки отчетов Ureports, второе выполняется каждые 30 минут для получения статуса сообщений, которые можно посмотреть в ABillS меню Отчеты — Оповещения):

1 10 * * * root /usr/abills/libexec/ureports_sender.pl
*/30 * * * * root /usr/abills/libexec/billd sms_status

Сообщения из ABillS отправляются как транзакционные, поэтому перед отправкой необходимо добавить шаблоны сообщений в панели TurboSMS https://turbosms.ua/pattern.html, которые модерируются пару дней.

Без подтвержденного шаблона в turbosms, сообщение не отправится и в отправленых Viber в админ панели turbosms его тоже не будет, будет ошибка (но не всегда):

"response_status":"NOT_ALLOWED_MESSAGE_TRANSACTION_PATTERN"

В транзакционном сообщении Viber разрешается до 500 символов. В переменной нельзя передать список, а лишь несколько слов, количество я не знаю, его определяет Viber, но это можно протестировать или узнать у менеджера TubroSMS. Но мы отправляли в переменно десятки слов, проблем с этим не было. Также если ничего не передать в любой из переменных, то сообщение может отправиться как рекламной, поэтому обязательно нужно что-то передавать.

Приведу примеры нескольких своих шаблонов, например для отправки ссылки на фискальный чек Checkbox:

https://%1%.checkbox.in.ua/api/v1/receipts/%2%/png

Отчет Ureports №11:

У Вас недостатньо коштів для активації тарифу наступного місяця.
Депозит: %1%
Кредит: %2%
Абон. плата за місяць: %3%
Гарного дня!

Отчет Ureports №13 (я рассылаю только этот отчет):

Через %1% дні закінчення послуги.
Щомісячний платіж: %2%
На рахунку: %3%
ID: %4%
Гарного дня!

Шаблон по которому мы отправляли заявки работникам через самописную систему (вот в переменной после «Текст заявки:» как раз и отправляли десятки слов):

Вид заявки: %1%
№ заявки: %2%
Адреса: %3%
Телефон клієнта: %4%
Текст заявки: %5%
Виконати до %6%
Гарного дня!

Вид заявки: Обслуговування
№ заявки: 11278
Адреса: Засулля вул. Лісна, 290
Телефон клієнта: 0670000000
Текст заявки: Червона лампочка на модемі
Виконати до 15.06.2022
Гарного дня!

Время жизни сообщения (TTL) по умолчанию 3600 (1 час), по истечении которого, если пользователь не в сети Viber, то сообщение считается не доставленным и оплата за сообщение не взымается, можно изменить TTL передав по API другое значение.

Был еще случай, когда у пользователя были отключены бизнес сообщения, он их включил, но нашего отправителя не видел в заблокированных, даже спустя несколько дней он не получал сообщения, была ошибка NOT_ALLOWED_NUMBER_STOPLIST. В списке подписчиков в панели TurboSMS я видел этого пользователя и что он отписался определенного числа (когда ему пришло первое сообщение, которое он даже не видел так как были отключены бизнес сообщения). Написал в поддержку TurboSMS по этому поводу и они убрали из своего игнор листа.

Также однажды у Viber были какие-то проблемы и сообщения перестали отправляться, со статусом Rejected, я написал в поддержку TurboSMS, они связались с поддержкой Viber и через несколько часов проблема была решена.

Также был случай когда возникла ошибка подключения к mysql серверу sql.turbosms.ua, поддержка turbosms посоветовала изменить имя пользователя и пароль, после изменении имени пользователя база данных будет назваться аналогично имени пользователя. После этого подключение успешно выполнилось.

Официальная документация ABillS http://abills.net.ua:8090/display/AB/Sms
API документация https://turbosms.ua/api.html

SQL запрос на количество отправленных сообщений сегодня, можно мониторить через zabbix например и сообщать когда отправлено больше чем обычно:

SELECT count(*) FROM ureports_log WHERE execute >=CURDATE();

Смотрите другие мои статьи про ABIllS
Скрипт отправки СМС через Goip4 шлюз для ABillS

Оставьте комментарий

Добавить комментарий