Запуск и остановка сервера Asterisk


Замечание: Возможно, Вам сначала понадобиться загрузить драйвер Zaptel, в том случае, если у Вас используется аппаратное обеспечение от Zaptel.
Замечание: В большей части этой документации и примерах, подразумевается, что сервер Asterisk инсталлирован и запускается для работы от пользователя root.

Если Вы уже установили Asterisk, то Вы можете попробовать запустить его для начала в консольном режиме (без перехода в фоновый режим) с выводом некоторой отладочной информации, с помощью команды:

/usr/sbin/asterisk -vvvgc

Если он не запустился, проверьте аппаратное обеспечение, которое требуется для его работы.

Обратите внимание на раздел: Asterisk CLI, где Вы сможете найти список доступных консольных команд. используйте команду stop now, для завершения работы сервера Asterisk.

Параметры командной строки при запуске сервера Asterisk

Фактически, запустить сервер Asterisk можно просто без аргументов. Сервер Asterisk, если запускается без параметров, работает в фоновом режиме:

/usr/sbin/asterisk

Вы можете соединиться с уже запущенным в фоновом режиме сервером Asterisk и получить доступ к его консоли, набрав команду:

/usr/sbin/asterisk -r

на той же машине, где запущен сервер Asterisk. К одному и тому же запущенному серверу Asterisk может быть подключено несколько CLI консолей одновременно.

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

  • -h : Помощь. Запустите '/sbin/asterisk -h', чтобы получить список доступных параметров командной строки.
  • -C : Запуск сервера Asterisk с использованием конфигурационного файла, отличного от используемого по умолчанию: /etc/asterisk/asterisk.conf.
  • -f : Foreground. Запуск сервера Asterisk, без перехода к выполнению в фоновом режиме.
  • -c : Включает консольный режим. Запускает сервер Asterisk, без перевода его в фоновый режим (подразумевает параметр -f), с включенным консольным интерфейсом командной строки (CLI), который может использоваться для выполнения команд и просмотра состояния системы.
  • -r : Режим удаленной консоли. Запускается консольный интерфейс командной строки CLI, который соединяется с, работающим в фоновом режиме, сервером Asterisk на этой же машине.
  • -n : Запрещает использование цветного вывода в консоль (для использования совместно с параметрами: -c или -r)
  • -i: Запрашивать при загрузке "cryptographic initialization passcodes".
  • -p : Запускает сервер в режиме задачи, работающей в режиме псевдо-реального времени. Запуск с приоритетом реального времени (real-time priority). ('Вне зависимости от значения этого понятия.'')
  • -q : Тихий режим (Quiet mode) (подавление вывода)
  • -v : Увеличивает объем выводимой информации (verbosity) (несколько v = еще больший объем)
  • -d : Включает вывод дополнительной отладочной информации для всех подгружаемых модулей.
  • -g : Заставляет сервер Asterisk создавать core dump, в случае фатальных ошибок выполнения (segmentation violation).
  • -x : Выполнить CLI команду (может использоваться только с параметром -r)

Запуск сервера Asterisk при загрузке операционной системы

В разных операционных системах имеются сильные различия в методах запуска различных приложений в процессе загрузки системы. В директории /usr/src/asterisk/contrib/init.d содержаться некоторые примеры скриптов запуска для различных операционных систем. Используйте один из них или напишите его для своей конкретной ситуации.

Вы можете или запустить /sbin/asterisk напрямую, или можете использовать shell скрипт, содержащийся в директории /sbin/safe_asterisk, который запустит сервер Asterisk, и будет перезапускать его, если он завершил свое выполнение при какой-либо возникшей в нем ошибке.

Один из самых простых путей для запуска asterisk в Linux при загрузке операционной системы и перезапуска его в случае аварийного завершения его выполнения, это запуск его с помощью процесса init. Добавьте следующую строку в файл /etc/inittab:

as:2:respawn:/usr/sbin/asterisk -f

Цифра '2', в вышеприведенной записи, это run level, в котором Вы желаете запускать сервер asterisk. Вы можете определить несколько run level'ов, воспользуйтесь "man inittab" для получения дополнительной информации. Многие системы на основе Debian, по умолчанию, используют run level номер 2, это значит, что, указав запуск сервера asterisk с run level 2 в inittab, приведет к тому, что он всегда будет запускаться при нормальной загрузке операционной системы и будет заново запущен, если по какой либо причине его выполнение завершилось (вне зависимости от причины). Может случиться так, что Вы предпочтете использовать в inittab скрипт, который уже будет запускать asterisk, но обычно, если же выбран такой способ запуска, то он работает нормально.

Если Вы используете Red Hat, то Вы можете получить рабочий rc.d/init.d скрипт запуска сервера, выполним следующие команды:

cd /usr/src/asterisk
make config

При этом, скопируется скрипт с именем: contrib/init.d/rc.redhat.asterisk в файл: /etc/rc.d/init.d/asterisk, и после этого можно выполнить команду:
/sbin/chkconfig --add asterisk