You are viewing an old version of this page. View the current version.

Compare with Current View Page History

Version 1 Next »

В отдельных случаях, когда возможностей WNAM по отправке СМС через провайдера недостаточно, то есть не срабатывают штатные интеграции через API провайдеров, SMPP-подключение, отправка через HTTP GET/POST запросы, возможно реализовать полностью управляемый процесс отправки СМС написанием скрипта на стороне сервера.

Для этого в разделе выбора метода авторизации укажите "Локальный скрипт", и укажите полный путь до него в поле "Заголовок". Поля Логин и Пароль заполнять не требуется:



Скрипт будет вызван сервером WNAM при каждой отправке сообщения. Ему на вход будет передано два аргумента: номер телефона в международном формате (начиная с +), и текст сообщения.

Создайте на сервере соответствующий файл скрипта:

cd /home/wnam/
cat > send_sms.sh 
#!/bin/bash
echo $1 $2 >> /tmp/sms.log
^D

Сделайте скрипт исполняемым:

chmod +x send_sms.sh 

Проверьте его запуск:

./send_sms.sh +7900123456 Message

Убедитесь в том, что в лог-файле /tmp/sms.log присутствуют новые строки.

Выполните тестовую отправку сообщения, нажав на кнопку "Тест" в окне настройки метода авторизации. Укажите номер телефона. В файле /home/wnam/logs/wnam.log появится запись об отправке:

24 мая 2020 20:27:09.878 DEBUG [c.n.w.web.cp.CaptivePortalController:1063] - getTestSend phone=79991234567, site_id=, resend=false, message='Проверка WNAM 24.05.2020, 20:27:02'
24 мая 2020 20:27:09.879 DEBUG [com.netams.wnam.services.SmsService:203] - script sms_to: +79991234567, path=/home/wnam/send_sms.sh, text='Проверка WNAM 24.05.2020, 20:27:02'
24 мая 2020 20:27:09.896 DEBUG [com.netams.wnam.services.SmsService:208] - script sms_to: +79991234567 return 0

Также в файле  /tmp/sms.log появится запись:

+79991234567 Проверка WNAM 24.05.2020, 20:27:02

Если это работает, вы можете модифицировать ваш скрипт как угодно, например можно удалить из телефонного номера ведущий символ +, если того требует ваш СМС-шлюз, переформатировать текст сообщения, сформировать GET- или POST-запрос для утилиты curl, вызвать её, записать что-то в лог-файл и т.п.

Вы также можете реализовать скрипт не только на bash, но и на любом языке программирования, который поддерживает ваша операционная система. Главное, чтобы файл был исполняемым.

Внимание! Запуск скрипта ведется от системного пользователя wnam, будьте внимательны, если скрипту требуются особые разрешения, например запись в файл или tty-порт.

  • No labels