Пожалуйста, войдите здесь. Часто задаваемые вопросы О нас
Задайте Ваш вопрос

История изменений [назад]

нажмите, чтобы скрыть/показать версии 1
изначальная версия
редактировать

спросил 2013-10-16 11:53:58 +0400

vlad.v Gravatar vlad.v

Команда SHELL не передает переменную скрипту

Доброе время суток! Прошу помощи ибо сам уже ничего не понимаю. Ситуация такая: есть скрипт, который получает СМС, обрабатывает его текст и выдает ответ, который должен получить Астер. Выглядит эта команда так: Set(answ=${SHELL(/home/serv/sms-code.sh ${SMS})}); Проблема заключается в том, что Астериск напрочь отказывается передавать переменную ${SMS} скрипту. При запуске с консоли (./sms-code.sh 56611523), все работает на ура, скрипт выдает ответ. Но если его запускает Астериск, то скрипт выдает ошибку т.к. не передается переменная. Ясным делом начал думать что проблема с владельцем папки или правами, владельца ставил разного от serv:serv до root:root, так же было и asterisk:asterisk. Ничего не помогло, так же ставил chmod 777, просто не знаю что делать и куда смотреть. Пробовал разобраться сам, убил 1.5 дня, но выхода так и не нашел.

OS:Debian Aterisk:1.8

Буду благодарен за любой совет. Заранее спасибо!!

Команда SHELL не передает переменную скрипту

Доброе время суток! Прошу помощи ибо сам уже ничего не понимаю. Ситуация такая: есть скрипт, который получает СМС, обрабатывает его текст и выдает ответ, который должен получить Астер. Выглядит эта команда так: Set(answ=${SHELL(/home/serv/sms-code.sh ${SMS})}); Проблема заключается в том, что Астериск напрочь отказывается передавать переменную ${SMS} скрипту. При запуске с консоли (./sms-code.sh 56611523), все работает на ура, скрипт выдает ответ. Но если его запускает Астериск, то скрипт выдает ошибку т.к. не передается переменная. Ясным делом начал думать что проблема с владельцем папки или правами, владельца ставил разного от serv:serv до root:root, так же было и asterisk:asterisk. Ничего не помогло, так же ставил chmod 777, просто не знаю что делать и куда смотреть. Пробовал разобраться сам, убил 1.5 дня, но выхода так и не нашел.

OS:Debian OS:Debian, Aterisk:1.8

Буду благодарен за любой совет. Заранее спасибо!!

нажмите, чтобы скрыть/показать версии 3
Добавил новую информацию
редактировать

Команда SHELL не передает переменную скриптуВыполнение скрипта от пользователя Астериск

Решил переименовать тему, т.к. появились новые данные. Доброе время суток! Прошу помощи ибо сам уже ничего не понимаю. Ситуация такая: есть скрипт, который получает СМС, обрабатывает его текст и выдает ответ, который должен получить Астер. Выглядит эта команда так: Set(answ=${SHELL(/home/serv/sms-code.sh ${SMS})}); Проблема заключается в том, что Астериск напрочь отказывается передавать переменную ${SMS} скрипту. При запуске с консоли (./sms-code.sh 56611523), все работает на ура, скрипт выдает ответ. Но если его запускает Астериск, то скрипт выдает ошибку т.к. не передается переменная. Ясным делом начал думать что проблема с владельцем папки или правами, владельца ставил разного от serv:serv до root:root, так же было и asterisk:asterisk. Ничего не помогло, так же ставил chmod 777, просто не знаю что делать и куда смотреть. Пробовал разобраться сам, убил 1.5 дня, но выхода так и не нашел.

++ Чуть позже оказалось что дело не в переменной, а в том что скрипт не может эту переменную записать в файл и разобрать на символы, если он запущен от пользователя Астериск, если запустить Астериск с ключем -vvgc то скрипты он выполняет от РУТа и все проходит на ура. Собственно вопрос, почему скрипт запущенный под пользователем Аsterisk не может создать файл если сам скрипт и директория в которой он лежит имеет chmod 777?!

OS:Debian, Aterisk:1.8

Буду благодарен за любой совет. Заранее спасибо!!

Выполнение скрипта от пользователя Астериск

Решил переименовать тему, т.к. появились новые данные. данные.

Доброе время суток! Прошу помощи ибо сам уже ничего не понимаю. Ситуация такая: есть скрипт, который получает СМС, обрабатывает его текст и выдает ответ, который должен получить Астер. Выглядит эта команда так: Set(answ=${SHELL(/home/serv/sms-code.sh ${SMS})}); Проблема заключается в том, что Астериск напрочь отказывается передавать переменную ${SMS} скрипту. При запуске с консоли (./sms-code.sh 56611523), все работает на ура, скрипт выдает ответ. Но если его запускает Астериск, то скрипт выдает ошибку т.к. не передается переменная. Ясным делом начал думать что проблема с владельцем папки или правами, владельца ставил разного от serv:serv до root:root, так же было и asterisk:asterisk. Ничего не помогло, так же ставил chmod 777, просто не знаю что делать и куда смотреть. Пробовал разобраться сам, убил 1.5 дня, но выхода так и не нашел.

++ Чуть позже оказалось что дело не в переменной, а в том что скрипт не может эту переменную записать в файл и разобрать на символы, если он запущен от пользователя Астериск, если запустить Астериск с ключем -vvgc то скрипты он выполняет от РУТа и все проходит на ура. Собственно вопрос, почему скрипт запущенный под пользователем Аsterisk не может создать файл если сам скрипт и директория в которой он лежит имеет chmod 777?!

OS:Debian, Aterisk:1.8

Буду благодарен за любой совет. Заранее спасибо!!

Выполнение скрипта от пользователя АстерискАстериск [Решено]

Решил переименовать тему, т.к. появились новые данные.

Доброе время суток! Прошу помощи ибо сам уже ничего не понимаю. Ситуация такая: есть скрипт, который получает СМС, обрабатывает его текст и выдает ответ, который должен получить Астер. Выглядит эта команда так: Set(answ=${SHELL(/home/serv/sms-code.sh ${SMS})}); Проблема заключается в том, что Астериск напрочь отказывается передавать переменную ${SMS} скрипту. При запуске с консоли (./sms-code.sh 56611523), все работает на ура, скрипт выдает ответ. Но если его запускает Астериск, то скрипт выдает ошибку т.к. не передается переменная. Ясным делом начал думать что проблема с владельцем папки или правами, владельца ставил разного от serv:serv до root:root, так же было и asterisk:asterisk. Ничего не помогло, так же ставил chmod 777, просто не знаю что делать и куда смотреть. Пробовал разобраться сам, убил 1.5 дня, но выхода так и не нашел.

++ Чуть позже оказалось что дело не в переменной, а в том что скрипт не может эту переменную записать в файл и разобрать на символы, если он запущен от пользователя Астериск, если запустить Астериск с ключем -vvgc то скрипты он выполняет от РУТа и все проходит на ура. Собственно вопрос, почему скрипт запущенный под пользователем Аsterisk не может создать файл если сам скрипт и директория в которой он лежит имеет chmod 777?!

OS:Debian, Aterisk:1.8

Буду благодарен за любой совет. Заранее спасибо!!


Ответ на головоломку прост как никогда! Всегда в скрипте нужно писать именно полный путь к файлу, будь то ЛОГ или временный файл или скрипт. Всем спасибо!!

Проект компании "АТС Дизайн"
Asterisk® и Digium® являются зарегистрированными торговыми марками компании Digium, Inc., США.
IP АТС Asterisk распространяется под лицензией GNU GPL.