Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

В отдельных случаях, когда возможностей WNAM по отправке СМС-сообщений через провайдера недостаточно , то есть (не срабатывают штатные интеграции через API-провайдеров, SMPP-подключение, отправка через HTTP GET/POST запросы), возможно реализовать полностью управляемый процесс отправки СМС написанием -сообщений при помощи написания скрипта на стороне сервера. Для этого в разделе выбора метода авторизации укажите ("Конфигурация" → "Гостевая авторизация" → "Авторизация") необходимо указать "Отправка СМС абоненту", в поле выбора провайдера СМС указать "Локальный скрипт" , и укажите указать полный путь до него в поле "Заголовок". Поля "Логин" и "Пароль" заполнять не требуется:

Image RemovedImage Added

Скрипт будет вызван вызываться сервером WNAM при каждой отправке сообщения. Ему на На вход скрипта будет передано передаваться два аргумента: номер телефона в международном формате (начиная с со знака +), и текст сообщения. Создайте на сервере Для корректной работы способа авторизации необходимо создать на сервере 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, но и на любом языке программирования, который поддерживает ваша операционная система. Главное , чтобы файл был правило при написании скрипта - файл должен быть исполняемым.

Warning

...

Запуск скрипта ведется от системного пользователя wnam

...

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