Функция EXISTS в базе знаний asterisk.
Добавлено: 17 апр 2019, 08:42
Здравствуйте, заметил, что в базе знаний по функции EXISTS как-то не очень профессионально написана справка.
http://asterisk.ru/knowledgebase/Asterisk+func+exists
Проверяется существования чего? Файла? Переменной? Екстеншена? Или левой ноги?
Да, вполне можно проверить как минимум значение и переменной и файла. И даже переменную, содержащую путь к файлу
Например она может проверить наличие файла в каталоге, прежде чем воспроизвести звук. Это удобно использовать, когда контент динамически меняется, например:
same => n,Set(filename=/temp/file123) ; Назначаем переменной filename какой-нибудь путь к файлу
same => n,Gotoif($[${EXISTS(${filename})}]?yes:no) ; Проверяем наличие файла (переменной) и если он есть, то воспроизводим этот файл, если нет, то сообщаем пользователю об ошибке.
same => n(yes),Playback(${filename})
same => n(no),Playback(error-message)
Так же, подобный пример существует на voip-info
https://www.voip-info.org/asterisk-func-exists/
Несмотря на скудную справку эта переменная довольно полезна
http://asterisk.ru/knowledgebase/Asterisk+func+exists
Проверяется существования чего? Файла? Переменной? Екстеншена? Или левой ноги?
Да, вполне можно проверить как минимум значение и переменной и файла. И даже переменную, содержащую путь к файлу
Например она может проверить наличие файла в каталоге, прежде чем воспроизвести звук. Это удобно использовать, когда контент динамически меняется, например:
same => n,Set(filename=/temp/file123) ; Назначаем переменной filename какой-нибудь путь к файлу
same => n,Gotoif($[${EXISTS(${filename})}]?yes:no) ; Проверяем наличие файла (переменной) и если он есть, то воспроизводим этот файл, если нет, то сообщаем пользователю об ошибке.
same => n(yes),Playback(${filename})
same => n(no),Playback(error-message)
Так же, подобный пример существует на voip-info
https://www.voip-info.org/asterisk-func-exists/
Несмотря на скудную справку эта переменная довольно полезна