Запуск asterisk не от root
Для начала Вам необходимо создать нового пользователя в linux, от имени которого будет запускаться процесс астериска. Например, пусть имя нового пользователя будет asterisk, и принадлежать он будет к группе с названием asterisk.
Теперь Вам необходимо:
- настроить запуск asterisk от имени пользователя
- задать права на все папки asterisk, новый пользователь должен стать их владельцем.
- выставить права на устройства DAHDI, чтобы asterisk (запущенный не из-под root) смог взаимодействовать с устройствами dahdi.
настроить запуск asterisk от имени пользователя
Для этого необходимо открыть файл /etc/asterisk.conf, и в его параметрах указать:
runuser = имя-нового-пользователя
rungroup = имя-новой-группы
например:
runuser = asterisk
rungroup = asterisk
выставить права на папки asterisk
В случае, если Вы хотите запускать asterisk от пользователя (и группы) с именем asterisk, выполните указанные ниже команды:
Команда chown меняет владельца (и группу) файла (или нескольких файлов). Опция -R означает "поменять владельца всех файлов и папок, находящихся внутри указанной папки". Если по каким-либо причинам опция -R выдает ошибку (при нормальной работе эти команды не выдают никаких сообщений), Вы можете использовать вместо нее опцию --recursive, например:
chown --recursive asterisk:asterisk /etc/asterisk
или:
chown \--recursive asterisk:asterisk /etc/asterisk
Если Вы хотите запускать asterisk от имени другого пользователя/группы, просто измените эти команды соответствующим образом.
выставление прав на устройства DAHDI
Для того, чтобы asterisk мог взаимодействовать с устройствами DAHDI, в правах на эти устройства должны быть даны разрешения на доступ пользователя, от имени которого запущен астериск. Поскольку в настоящее время подавляющее большинство устройств создается динамически в процессе загрузки системы, то изменение прав в папке /dev будет работать только до перезагрузки. Чтобы решить эту проблему, выполните следующее:
- найдите файлы правил для устройств udev. По умолчанию (в системах Debian / CentOS) они находятся в папке /etc/udev/rules.d
- найдите там файл, относящийся к DAHDI. Он должен называться dahdi.rules
- отредактируйте файл - найдите там следующие строки:
и в переменных OWNER и GROUP укажите нужное Вам имя пользователя (и группу).
Окончание настройки
После всех приведенных выше действий перезагрузите сервер. Если же по каким-то причинам Вам это сделать нельзя, то обратите внимание, что Вам необходимо перезагрузить:
- сервис asterisk
- демон udev
Проверка правильности настройки
проверка запуска asterisk
Для начала проверьте, запускается ли asterisk от имени указанного Вами пользователя. Для этого подключитесь к asterisk, выполнив из командной строки linux:
asterisk -rvvv
При запуске asterisk выдаст информацию об авторских правах, укажет свою версию, а также покажет, от имени какого пользователя запущен asterisk:
Running as user 'asterisk'
Running under group 'asterisk'
проверка работы DAHDI
Проверить работу подсистемы DAHDI очень просто: из командной строки asterisk выполните:
dahdi show status
Если после этого Вы получите сообщение вроде такого: "No DAHDI found. Unable to open /dev/dahdi/ctl: Permission denied", значит настройка не удалась, скорее всего, Вы не перезагрузили сервер (или указали разные имена пользователей для asterisk и dahdi).
проверка загрузки модулей
Для проверки, что модули загружаются нормально, из asterisk CLI выполните следующие команды:
module unload app_dial.so
module load app_dial.so
Этими двумя командами мы попробовали выгрузить и загрузить модуль, ответственный за команду Dial астериска. В случае, если ошибок нет, значит права на каталог модулей выставлены нормально.
проверка ведения логов
Для того, чтобы убедиться, что asterisk может писать логи, попробуем перезагрузить конфигурацию модуля logger. Для этого из asterisk CLI запустите команду:
logger reload
В случае наличия проблем об этом будет выведено сообщение, например: "Unable to create queue log: Permission denied".
Проверка доступа к звуковым файлам
Можно также проверить права на доступ к звуковым файлам - для этого в диалплан можно добавить экстеншены с приложениями Record и Playback, а потом позвонив на эти экстеншены, убедиться что запись и воспроизведение звука работает нормально.
|