By Mark Spencer <[email protected]> and the Asterisk.org developer community.
Copyright (C) 2001-2021 Sangoma Technologies Corporation and other copyright holders.
Крайне важно, чтобы вы прочитали и полностью поняли содержание документа с информацией о безопасности, прежде чем пытаться настроить и запустить сервер Asterisk.
Дополнительные сведения см. в разделе «Важные вопросы безопасности».
Asterisk — это набор инструментов для АТС и телефонии с открытым исходным кодом. В некотором смысле это промежуточное программное обеспечение между Интернетом и телефонными каналами внизу и Интернетом и телефонными приложениями наверху. Однако Asterisk поддерживает больше телефонных интерфейсов, чем только интернет-телефонию. Asterisk также имеет обширную поддержку традиционной телефонии PSTN.
Для получения дополнительной информации о самом проекте посетите домашнюю страницу Asterisk и официальную документацию. Кроме того, на voip-info.org вы найдете много информации, собранной сообществом Asterisk.
Существует книга об Asterisk, опубликованная О'Рейли по лицензии Creative Commons. Его можно приобрести в книжных магазинах, а также в загружаемой версии на веб-сайте asteriskdocs.org.
УАТС Asterisk с открытым исходным кодом разработана и протестирована в основном на операционной системе GNU/Linux и поддерживается во всех основных дистрибутивах GNU/Linux.
Asterisk также был «портирован» и, как сообщается, корректно работает и на других операционных системах, включая Sun Solaris, Mac OS X от Apple, Cygwin и варианты BSD.
Во-первых, убедитесь, что у вас есть поддерживаемое оборудование (но учтите, что вам не нужно НИКАКОЕ специальное оборудование, даже звуковая карта) для установки и запуска Asterisk.
Поддерживаемое телефонное оборудование включает в себя:
Если вы обновляетесь с предыдущей версии Asterisk, обязательно прочтите файл UPGRADE.txt в исходном каталоге. Некоторые файлы и параметры конфигурации вам придется изменить, хотя мы приложили все усилия для обеспечения обратной совместимости.
Чтобы узнать о новых возможностях, ознакомьтесь с примерами конфигурации в каталоге configs дистрибутива исходного кода. Список новых функций в этой версии Asterisk см. в файле CHANGES.
Убедитесь, что ваша система содержит совместимый компилятор и библиотеки разработки. Для Asterisk требуется либо коллекция компиляторов GNU (GCC) версии 4.1 или выше, либо компилятор, поддерживающий спецификацию C99 и некоторые расширения языка gcc. Кроме того, в вашей системе должны быть доступны заголовки библиотеки C, а также заголовки и библиотеки для ncurses.
Существует множество модулей, которые имеют дополнительные зависимости. Чтобы узнать, какие библиотеки ищут, см. ./configure --help
или запустите make menuselect
чтобы просмотреть зависимости для конкретных модулей.
Во многих дистрибутивах эти зависимости устанавливаются пакетами с такими именами, как «glibc-devel», «ncurses-devel», «openssl-devel» и «zlib-devel» или аналогичные.
Итак, продолжим:
В каталоге doc больше документов, чем этот. Вы также можете проверить файлы конфигурации, содержащие примеры и справочные руководства, в каталоге configs.
./configure
Выполните сценарий настройки, чтобы угадать значения системно-зависимых переменных, используемых во время компиляции. Если сценарий указывает, что некоторые необходимые компоненты отсутствуют, вы можете запустить ./contrib/scripts/install_prereq install
чтобы установить необходимые компоненты. Обратите внимание, что при этом будут установлены все зависимости для всех функций Asterisk. После запуска скрипта вам нужно будет перезапустить ./configure
.
make menuselect
[необязательно]Это необходимо, если вы хотите выбрать модули, которые будут скомпилированы, и проверить зависимости различных дополнительных модулей.
make
Предполагая, что сборка завершена успешно:
make install
Если вы впервые работаете с Asterisk, возможно, вы захотите установить образец АТС с демонстрационными расширениями и т. д. Если да, запустите:
make samples
При этом все существующие файлы конфигурации, которые вы установили, будут перезаписаны.
# asterisk -vvvc
Вы увидите кучу подробных сообщений, проносящихся по вашему экрану во время инициализации Asterisk (это «очень-очень подробный» режим). Когда все будет готово, если вы указали «c», вы получите консоль командной строки, которая выглядит следующим образом:
*CLI>
Вы можете в любой момент ввести «core show help», чтобы получить помощь по системе. Чтобы получить помощь по конкретной команде, введите «core show help». Чтобы запустить УАТС с помощью звуковой карты, вы можете ввести «консольный набор» для набора номера УАТС. Затем вы можете использовать «ответ консоли», «отбой консоли» и «набор номера консоли», чтобы имитировать действия телефона. Помните, что если у вас нет полнодуплексной звуковой карты (и Asterisk сообщит вам где-нибудь в своих подробных сообщениях, есть ли у вас или нет), то она не будет работать должным образом (пока).
«man asterisk» в командной строке Unix/Linux предоставит вам подробную информацию о том, как запустить и остановить Asterisk, а также обо всех параметрах командной строки для запуска Asterisk.
Не стесняйтесь просматривать файлы конфигурации в /etc/asterisk
, где вы найдете много информации о том, что вы можете делать с Asterisk.
Все файлы конфигурации Asterisk имеют общий формат. Комментарии разделяются знаком ';' (поскольку '#', являющийся цифрой DTMF, может встречаться во многих местах). Файл конфигурации разделен на разделы, имена которых указаны через []. Каждый раздел обычно содержит два типа операторов: в форме «переменная = значение» и в форме «объект => параметры». Внутреннее использование '=' и '=>' абсолютно одинаково, поэтому они используются только для облегчения понимания файла конфигурации и не влияют на его фактический анализ.
Записи формы 'переменная=значение' устанавливают значение некоторого параметра в звездочке. Например, в chan_dahdi.conf можно указать:
switchtype=national
Чтобы указать Asterisk, что коммутатор, к которому они подключаются, имеет тип «национальный». В общем, параметр будет применяться к экземплярам, которые происходят ниже его спецификации. Например, если файл конфигурации гласит:
switchtype = national
channel => 1-4
channel => 10-12
switchtype = dms100
channel => 25-47
Тип переключателя «национальный» будет применяться к каналам с первого по четвертый и каналам с 10 по 12, тогда как тип переключателя «dms100» будет применяться к каналам с 25 по 47.
«Объект => параметры» создает экземпляр объекта с заданными параметрами. Например, строка «канал => 25-47» создает объекты для каналов с 25 по 47 карты, получая настройки из указанных выше переменных.
Те, кто использует SIP-телефоны, должны знать, что Asterisk чувствителен к большим скачкам во времени. Изменение системного времени вручную с помощью date(1) (или других подобных команд) может привести к сбою регистрации SIP и других внутренних процессов. Если ваша система не может самостоятельно поддерживать точное время, используйте NTP для синхронизации системных часов с «реальным временем». NTP предназначен для синхронизации системных часов путем ускорения или замедления системных часов до тех пор, пока они не будут синхронизированы с «реальным временем», а не путем скачка времени и возникновения разрывов. Большинство дистрибутивов Linux включают предварительно скомпилированные версии NTP. Остерегайтесь некоторых методов синхронизации времени, которые периодически получают правильное реальное время, а затем вручную устанавливают системные часы.
Кажущееся изменение времени из-за перехода на летнее время — всего лишь кажущееся явление. Использование летнего времени в системе Linux является исключительно проблемой пользовательского интерфейса и не влияет на работу ядра Linux или Asterisk. Системные часы в ядрах Linux работают по всемирному координированному времени. UTC не использует летнее время.
Также обратите внимание, что эта проблема не связана с синхронизацией каналов TDM и, как известно, по крайней мере влияет на регистрацию SIP.
В зависимости от размера вашей системы и вашей конфигурации Asterisk может использовать большое количество файловых дескрипторов. В UNIX файловые дескрипторы используются не только для файлов на диске. Дескрипторы файлов также используются для обработки сетевых коммуникаций (например, вызовов SIP, IAX2 или H.323) и доступа к оборудованию (например, к оборудованию аналоговых и цифровых магистралей). Asterisk имеет доступ ко многим файлам на диске для всего: от информации о конфигурации до хранилища голосовой почты.
Большинство систем ограничивают количество файловых дескрипторов, которые Asterisk может открыть одновременно. Это может ограничить количество одновременных вызовов, которые может обработать ваша система. Например, если ограничение установлено на уровне 1024 (обычное значение по умолчанию), Asterisk может обрабатывать примерно 150 SIP-вызовов одновременно. Чтобы изменить количество файловых дескрипторов, следуйте инструкциям для вашей системы ниже:
Если ваша система использует PAM (подключаемые модули аутентификации), отредактируйте /etc/security/limits.conf
. Добавьте эти строки в конец файла:
root soft nofile 4096
root hard nofile 8196
asterisk soft nofile 4096
asterisk hard nofile 8196
(цифры корректируйте по вкусу). Возможно, вам придется перезагрузить систему, чтобы эти изменения вступили в силу.
Если вышеприведенных инструкций, специально адаптированных для вашей системы, нет, вы можете попробовать добавить команду ulimit -n 8192
в сценарий, запускающий Asterisk.
Дополнительную документацию по различным функциям см. в каталоге doc. Еще раз прочтите все примеры конфигурации, которые включают документацию по параметрам конфигурации.
Наконец, вы можете посетить сайт поддержки и присоединиться к списку рассылки, если хотите получить дополнительную информацию.
Добро пожаловать в растущее мировое сообщество пользователей Asterisk!
Mark Spencer, and the Asterisk.org development community
Asterisk является торговой маркой корпорации Sangoma Technologies.