У меня есть для вас интересный. Я просмотрел свои системы мониторинга и уведомлений сервера (на базе Nagios) и понял, что если наше интернет-соединение выйдет из строя, оно не сможет меня уведомить. У меня уже есть модем, который прослушивает (через CentOS 5) на свободной линии POTS, чтобы я мог дозвониться в случае, если наш интернет отключится. Мне было интересно, смогу ли я придумать сценарий (Shell, Python и т. Д.), Который может набирать номер и воспроизводить записанное сообщение (волновой файл, как я предполагаю), когда оно будет поднято. Я знаю, что Windows поддерживает голосовые вызовы через голосовой модем, мне было интересно, существует ли решение для Linux ...
Я знаю, что asterisk, вероятно, может это сделать, но разве это не излишество (полноценная система VOIP только для механизма уведомления, который, надеюсь, никогда не будет использоваться)? И не будет ли это мешать основной функции модема в качестве резервного сетевого интерфейса (PPP создается через mgetty)?
Я немного поискал, но особо ничего не нашел. Я знаю, как дозвониться из командной строки, но только как модем (не как голос). В худшем случае, я мог бы настроить его для дозвона как модем, а затем просто понять, что если я получу звонок со звуками модема с этого номера, это будет уведомление ... Любое понимание будет оценено ...
Linux использует vgetty
для голосовых данных через модем (в основном в качестве автоответчика). Похоже, есть модуль perl на CPAN который поставляется с примером сценария, подобного тому, что вы хотите.
Callme скрипт
В подкаталоге examples исходного дистрибутива есть скрипт callme.pl. При этом набирается заданный номер и воспроизводится данное сообщение. Используйте следующую команду для его запуска:
vm shell -S /usr/bin/perl callme.pl <number> <message>.rmd
Я нашел это во время быстрого поиска:
Я использую внешний сервер для запуска дополнительного экземпляра Nagios, что является последним уведомлением в случае полного отказа.
Хотел бы я получить ответ на ваш вопрос о воспроизведении звука через модем. Я хочу сказать, что это должно быть просто, но мои знания об этом начинают ржаветь. Раньше было Голосовые модемы продается специально для воспроизведения аудио.
На вашем месте я бы попытался перенаправить воспроизведение звука с помощью программного обеспечения консоли. Я думаю, это может быть очень просто. Я могу исследовать больше позже, когда у меня будет время.
Если у вас была учетная запись удаленного доступа к Интернету, она могла подключиться к Интернету, отправить текст по электронной почте, а затем отключиться.
Столкнулся с этим вопросом во время поиска в Google и решил, что, хотя я специально хочу записать / воспроизвести образец голоса, простое SMS-сообщение может подойти для вашей ситуации.
Я использовал модем Huawei (USB-ключ) в качестве SMS-центра на моем raspberry pi с бесплатной SIM-картой от CSP, чтобы я мог отправлять ей текстовые сообщения, и он отвечал базовой информацией о системе. Я предполагаю, что его можно легко изменить для отправки SMS в ответ на обнаружение Nagios сбоя в Интернете!
Обратите внимание, что для отправки SMS вам потребуется обычная SIM-карта телефона (а не SIM-карта только для данных / планшета).
Я использовал сообщение в блоге здесь: http://hristoborisov.com/index.php/projects/turning-the-raspberry-pi-into-a-sms-center-using-python/
... который специально использует этот пример кода на github.
В интересах предотвращения гниения ссылок суть в том, чтобы использовать serial
библиотека на питоне (import serial
) и посылать модему обычные AT-команды. Переведите модем в текстовый режим, а затем отправьте тестовое сообщение, используя следующие строки:
AT+CMGF=1\r
AT+CMGS="07123456789"\r
some message here.<Ctrl-Z>
Помимо модуля и сценария Perl, Vgetty включает сценарий Bash. message.sh
который аналогичным образом может вызывать и воспроизводить сообщение. Его можно найти в mgetty_src_1.1.37/voice/scripts
каталог. Его можно установить с помощью документации mgetty / vgetty в зависимости от вашего дистрибутива. В OpenSuSE 42.1 его можно найти в /usr/share/doc/packages/mgetty/voice/scripts/message.sh
.
Чтобы использовать это:
message.sh 5551212 message.rmd
Он не требует запуска vgetty, только правильно установлен и настроен для вашего модема. Телефонный номер может быть местным (555-1212) или полным (1-942-555-1212), но без дефисов (-). message.rmd
должен быть в формате, понятном вашему модему, - иначе будьте готовы услышать шипение и треск.