Ring Group - Как заставить Asterisk просто сохранить последнюю попытку

Проблема заключается в том, что текущая оболочка расширяет переменную слишком рано; он не установлен в своем контексте, поэтому команда echoне получает никаких аргументов, то есть команды заканчиваются:

$ fruit=apple echo

Вот обходной путь, когда переменная не раскрывается слишком рано из-за одинарных кавычек:

$ fruit=apple sh -c 'echo $fruit'

В качестве альтернативы вы также можете использовать однострочный сценарий оболочки, который демонстрирует, что переменная fruitправильно передается выполняемой команде:

$ cat /tmp/echof
echo $fruit
$ /tmp/echof

$ fruit=apple /tmp/echof
apple
$ echo $fruit

$

Несколько комментариев, так как этот вопрос вызвал неожиданные споры и дискуссии:

  • Тот факт, что переменная fruitуже экспортирована или нет, не влияет на поведение, важно то, каково значение переменной в тот момент, когда оболочка расширяет ее.
$ export fruit=banana
$ fruit=apple echo $fruit
banana
  • Тот факт, что команда echoявляется встроенной, не влияет на проблему OP.Однако бывают случаи, когда использование встроенных функций или функций оболочки с таким синтаксисом приводит к неожиданным побочным эффектам, например.:
$ export fruit=banana
$ fruit=apple eval 'echo $fruit'
apple
$ echo $fruit
apple
  • Хотя между заданным здесь вопросом и тем есть сходство, это не совсем одно и то же. Что касается этого другого вопроса, временное значение переменной IFSеще недоступно, когда оболочка разделяет словона другую переменную $var, а здесь временное значение переменной fruitеще недоступно, когда оболочка расширяет ту же переменную .

  • Существует также другой вопрос , где ОП спрашивает о значении используемого синтаксиса и, точнее, спрашивает «почему это работает?». Здесь ОП знает о важности, но сообщает о неожиданном поведении и спрашивает о его причине, то есть «почему это не работает?». Хорошо, после более внимательного прочтения плохого снимка экрана, размещенного на другом вопросе, там действительно описана та же ситуация (BAZ=jake echo $BAZ), так что да, в конце концов, это дубликат

1
15.04.2019, 22:28
1 ответ

Текущая версия asterisk регистрирует все звонки, которые "были предложены для исходящего звонка" Нет, вы не можете настроить это.

Однако в некоторых случаях вы можете указать cdr.conf

unanswered=no

Если ваши добавочные номера имеютqual=yes, скорее всего, такие звонки не будут записываться (будут использоваться подсказки добавочных номеров ).

0
28.01.2020, 00:15

Теги

Похожие вопросы