ввод команды AT в демон gammu SMS

#sms #daemon #gammu

#sms #демон #gammu

Вопрос:

Мне нужно выполнять переадресацию вызовов (перенаправление) на SIM-карту, которая постоянно используется демоном gammu sms. Операция переадресации может выполняться несколько раз в день. Демон Gammu sms поддерживает связь с GSM-модемом 24 часа в сутки. Я не могу отправить какую-либо команду AT на порт, пока демон запущен. Инструмент Gammu (не демон) имеет готовые к использованию команды для переадресации вызовов, и они отлично работают, пока демон остановлен. Конечно, когда демон выполняет команду, правильно заявляет, что порт занят.

Есть ли какой-либо способ аккуратно вводить AT-команды в gammu-smsd и читать ответ?

Моя идея состоит в том, чтобы: 1. Остановить демона. 2. Выполните переадресацию вызова, прочитайте результат 3. Запустите демон, но эта идея не выглядит как умное или элегантное решение.

Если ввод команд в демон sms невозможен, есть ли какой-нибудь щадящий способ остановить демона, не убивая процесс? Я не хочу прерывать работу демона, пока он отправляет SMS.

Ответ №1:

Вы можете использовать SIGUSR1 и SIGUSR2 для приостановки и возобновления работы демона, а также использовать командную строку Gammu во время приостановки работы SMSD.

Для получения дополнительной информации см. Документацию Gammu SMSD Signals. Для этого есть даже пример:

 SMSD_PID=`pidof gammu-smsd`
if [ -z "$SMSD_PID" ] ; then
    echo "Failed to figure out SMSD PID!"
else
    kill -SIGUSR1 $SMSD_PID
    gammu identify
    kill -SIGUSR2 $SMSD_PID
fi