Asterisk: Краткое руководство

Original: https://docs.google.com/viewer?docex=1&url=http://www.asterisk.org/sites/asterisk/files/mce_files/documents/asterisk_quick_start_guide.pdf

Что такое Asterisk?

Asterisk является платформой с открытым исходным кодом для построения коммуникационных приложений. Asterisk превращает обычный компьютер в сервер связи. Asterisk работает в системах IP PBX, шлюзах VoIP, серверах конференций и многом другом оборудовании. Он используется в малом бизнесе, на крупных предприятиях, в центрах обработки вызовов, в компаниях-перевозчиках и правительственных организациях по всему миру. Asterisk является бесплатным и поставляется с открытым исходным кодом. Asterisk спонсируется компанией Digium, компанией-разработчиком Asterisk. Asterisk находится “под капотом” в бесчисленных приложениях голосовой связи и способен взаимодействовать со многими традиционными телекоммуникационными протоколами, протоколами VoIP, и кодеками. Asterisk предоставляет ошеломляющий список возможностей и функций, включая:

  • IVR
  • ACD
  • Audio and Video Conferencing
  • Voicemail
  • Call Recording
  • Fax termination
  • CDR

О данном Кратком руководстве

Это руководство является пошаговой инструкцией по компиляции и установке Asterisk. Также включены основные инструкции по управления Asterisk через его интерфейс командной строки, или CLI. Представлены примеры конфигурации Asterisk и конфигурации программного телефона SIP. В результате у вас появится возможность совершать звонки через Интернет с использованием протокола IAX2 от Digium.

Для получения более подробной информации существует множество ресурсов, включая информацию о коммерческой поддержке, предоставленной Digium, компанией Asterisk, список которых приведен по следующей ссылке:

Примечание

Любой сервер, доступный из публичного Интернета, требует мер безопасности, и Asterisk не является исключением. Общие меры по обеспечению безопасности не входят в рамки данного Краткого руководства; однако в таблице 2 приведен перечень стандартных портов IP, используемых Asterisk.

Приведены инструкции для версии Asterisk с долгосрочной поддержкой (LTS), в настоящее время это версия 1.8.

Файловая структура

В таблице ниже приведены директории установки по умолчанию для файлов компонентов и библиотек Asterisk. Это не исчерпывающий список, перечислены только основные компоненты, относящиеся к данному Краткому руководству:

Таблица 1: Директории установки по умолчанию
Директория Описание
/etc/asterisk файлы конфигурации
/usr/sbin расположение бинарных исполняемых файлов
/var/log/asterisk журналы сообщений (об ошибках) и CDR
/usr/lib/asterisk/modules библиотеки, модули и компоненты

Стандартные порты

Таблица 2: Стандартные порты
Протокол Порт Транспорт
SIP 5060/5061 TCP/UDP
IAX2 4569 UDP
MGCP 2727 UDP
SCCP 2000 TCP
RTP 10,00 – 20,000 UDP
Manager 5038 TCP
H323 1720 TCP
Dundi 4520 UDP
Unistim 5000 UDP

Требования

Asterisk может работать на различных базовых архитектурах, включая встраиваемые системы и не имеет жестких требований к скорости процессора или объему памяти. Настоящий документ подразумевает использование стандартного x86 процессора.

Asterisk может работать на ряде операционных систем. Linux является единственной официально поддерживаемой ОС, при этом рекомендуется использовать ядро 2.6.25 или выше (хотя Asterisk будет работать на ядрах 2.4). Для текущей и поддерживаемых версий дистрибутивов, рекомендуется использование таких ОС, как CentOS или Debian.

Также требуется подключение к Интернет.

Зависимости

Существует целый ряд пакетов, которые необходимо предварительно установить на хост-сервере, чтобы гарантировать успешную компиляцию Asterisk. Это руководство содержит инструкции по получению этих пакетов для дистрибутивов RedHat и Debian.

Загрузка

Пакеты исходного кода Asterisk доступны по ссылке: http://www.asterisk.org/downloads.

  1. Войдите в вашей машине Linux как пользователь ‘root‘ (суперпользователь). При использовании Ubuntu Linux войдите в обычном режиме и перед каждой командой набирайте ‘sudo‘.

  2. Если вы используете систему X window, откройте окно терминала.

  3. Скачайте текущий архив исходного кода Asterisk на хост-машину. Это загрузит последнюю (наиболее свежую) версию:

    root@localhost:~# cd /usr/src
    root@localhost:/usr/src# wget http://downloads.asterisk.org/pub/telephony/asterisk/asterisk-1.8-current.tar.gz
    
  4. Распакуйте все содержащиеся в архиве файлы с исходным кодом:

    root@localhost:/usr/src# tar –zxvf asterisk-1.8-current.tar.gz
    
  5. Enter the newly created source directory and execute the ‘install_prereq’ in the contrib/scripts subdirectory. This will not only install the required dependencies but also install all packages necessary to build all option Asterisk components.

    root@localhost:/usr/src# cd /asterisk-1.8.16.0
    root@localhost:/usr/src/asterisk-1.8.16.0# ./contrib/scripts/install_prereq
    

Компиляция и установка

  1. Последовательно выполните следующие команды:

    root@localhost:/usr/src/asterisk-1.8.16.0# ./configure
    root@localhost:/usr/src/asterisk-1.8.16.0# make
    root@localhost:/usr/src/asterisk-1.8.16.0# make install
    root@localhost:/usr/src/asterisk-1.8.16.0# make samples
    

Настройка Asterisk (демонстрационная конфигурация)

Приведенная выше команда ‘make samples‘ создает примеры файлов конфигурации в каталоге по умолчанию /etc/asterisk/. Команды, приведенные ниже, показывают, как создать резервные копии некоторых из этих файлов и как создать новую, упрощенную конфигурацию для целей демонстрации или тестирования.
  1. Выполните каждую команду, как показано. Команда ‘mv‘ (move) используется здесь для переименования (создания резервных копий) предоставленных примеров конфигурационных файлов:

    root@localhost:/user/src/asterisk-1.8.16.0#
    root@localhost:/etc/asterisk# mv modules.conf modules.conf.sample
    root@localhost:/etc/asterisk# mv extensions.conf extensions.conf.sample
    root@localhost:/etc/asterisk# mv sip.conf sip.conf.sample
    root@localhost:/etc/asterisk# mv iax.conf iax.conf.sample
    
  2. Отредактируйте файл modules.conf и скопируйте показанную конфигурацию. В примере используется WYSYWG редактор gedit, хотя можно использовать любой редактор. Сохраните файл, когда закончите редактирование:

    root@localhost:/etc/asterisk# gedit modules.conf
    
    [modules]
    autoload=no
    load=pbx_config.so
    load=chan_sip.so
    load=chan_iax2.so
    load=res_rtp_asterisk.so
    load=app_hangup.so
    load=app_dial.so
    load=codec_ulaw.so
    load=codec_gsm.so
    
  3. Повторите для файла extensions.conf:

    root@localhost:/etc/asterisk# gedit extensions.conf
    
    [default]
    exten => _.,1,Hangup()
    
    [demo]
    exten => 2600,1,Dial(IAX2/guest@pbx.digium.com/s@default)
    same => n,Hangup()
    
  4. Повторите для файла sip.conf:

    root@localhost:/etc/asterisk# gedit sip.conf
    
    [general]
    context=default
    allowguest=no
    
    [test_phone_<RANDOM_STRING_1>]
    type=friend
    host=dynamic
    secret= <RANDOM_STRING_2>
    context=demo
    
  5. Замените <RANDOM_STRING_X> действительно случайными строками. Можно создать эти случайные строки из букв и цифр на http://www.random.org/strings/

    Предупреждение

    Если не заменить <RANDOM_STRING> ваша машина, скорее всего, будет поставлена ​​под угрозу !!

  6. В завершение, измените iax.conf:

    root@localhost:/etc/asterisk# gedit iax.conf
    
    [demo]
    type=peer
    username=asterisk
    secret=supersecret
    host=216.207.245.47
    

Настройка клиента SIP

Существует множество свободно доступных клиентов VoIP. Используемый в данном примере программный телефон, Zoiper, доступен для Linux, Windows и Mac OS. Не подразумевается никакого предпочтения или рекомендаций. Инструкции ниже приведены только для Linux.

  1. Скачайте и распакуйте исполняемый файл ‘zoiper‘, как описано ниже. Выполните команды в следующем порядке:

    root@localhost:/etc/asterisk# cd /usr/src
    root@localhost:/usr/src# wget http://www.zoiper.com/downloads/free/linux/zoiper219-linux.tar.gz
    root@localhost:/usr/src# tar –zxvf zoiper219-linux.tar.gz
    
  2. Запустите на исполнение бинарный файл ‘zoiper‘. Он помещен в директорию ‘/usr/src‘:

    root@localhost:/usr/src# ./zoiper
    
  3. Нажмите на показанную на рисунке ниже кнопку [Options]:

    ../_images/zoiper-options.png

    Нажмите на кнопку [Options]

  4. Нажмите [Add new SIP account]

    ../_images/add-new-sip-account.png

    Нажмите [Add new SIP account]

  5. Укажите учетную запись SIP, которая соответствует test_phone_<RANDOM_STRING_1> в /etc/asterisk/sip.conf.

    Предупреждение

    Не копируйте название учетной записи из примера. Создайте вашу собственную случайную строку. При копировании имени учетной записи из примера ниже безопасность вашей машины скорее всего, будет подвергнута риску!

    ../_images/enter-the-sip-account-name.png

    Укажите учетную запись SIP

  6. Укажите информацию об учетной записи.

    1. ‘Domain’ должен соответствовать IP-адресу сервера Asterisk
    2. ‘Username’ должно соответствовать названию созданной вами учетной записи (включая случайную строку).
    3. ‘Password’ должен соответствовать параметру ‘secret‘, который указан в ‘/etc/asterisk/sip.conf‘. Это должна быть случайная строка!
    4. ‘Caller ID Name’ может принимать любое значение
    Укажите информацию об учетной записи

    Укажите информацию об учетной записи

  7. Отметьте показанное на рисунке ниже поле выбора [Show advanced options]:

    Отметьте поле выбора `[Show advanced options]`

    Отметьте поле выбора [Show advanced options]

  8. Нажмите [SIP options]:

    Нажмите `[SIP options]`

    Нажмите [SIP options]

  9. Измените значение Port на 5070. Нажмите [Save]. Это требуется только если клиент Zoiper выполняется на той же хост-машине, на которой запущен Asterisk.

    Измените значение `Port` на 5070

    Измените значение Port на 5070

Тестовый звонок

  1. Запустите демон Asterisk путем выполнения команды ‘asterisk‘ в терминале. Вы не должны увидеть никаких сообщений, система должна вернуться к приглашению Linux:

    root@localhost:/usr/src# asterisk
    root@localhost:/usr/src#
    

Теперь вы сможете сделать тестовый звонок. Наберите настроенный местный номер ‘2600’ на программном телефоне. При этом произойдет набор на сервер Digium с использованием протокола IAX2 и вы услышите главное меню IVR компании Digium.

Теперь у вас есть работающий сервер Asterisk и настроенный телефон, а также пример конфигурации. В дальнейшем то, что вы можете сделать с Asterisk, ограничивается только вашей фантазией!

Приложение A – Asterisk CLI

Подключение к Asterisk CLI

К команде ‘asterisk‘ в терминале Linux имеется множество опций. Некоторые из наиболее распространенных и полезных опций перечислены и описаны ниже. Можно посмотреть подробный перечень всех допустимых опций, запустив ‘asterisk -h‘.

asterisk –r

Если вы запустили Asterisk с помощью сценария или командой ‘asterisk‘ в терминале Linux, вы можете подключиться к этому запущенному экземпляру asterisk при помощи опции ‘-r‘. Будет выведен текст лицензии и информация о гарантии, а затем приглашение CLI:

root@localhost:/usr/src# asterisk -r
Asterisk 1.8.16.0, Copyright (C) 1999 - 2012 Digium, Inc. and others.
Created by Mark Spencer <markster@digium.com>
Asterisk comes with ABSOLUTELY NO WARRANTY; type 'core show warranty' for details.
This is free software, with components licensed under the GNU General Public
License version 2 and other licenses; you are welcome to redistribute it under
certain conditions. Type 'core show license' for details.
=========================================================================
Connected to Asterisk 1.8.16.0 currently running on localhost(pid = 80085)
localhost*CLI>

asterisk –c

Запуск сервера Asterisk в консольном режиме. Это подразумевает, что вы не стартовали asterisk как демон, запустив ‘asterisk‘ (или скриптом). Вы сразу же подключитесь к Asterisk CLI. Команда ‘core stop now‘ в CLI вызовет завершение процесса и возврат к приглашению Linux.

asterisk –x

Передает разрешенные команды CLI в Asterisk и обеспечивает стандартный вывод на терминал. Следом за командой должна быть в кавычках размещена команда CLI, например ‘asterisk –x "sip show peers"‘.

Полезные команды CLI

core show help

Выводит список разрешенных команд CLI.

core restart now

Немедленно перезапускает Asterisk. При этом сессия CLI закрывается и терминал возвращается к приглашению Linux.

core stop now

Немедленно останавливает Asterisk. При этом сессия CLI закрывается и терминал возвращается к приглашению Linux.

sip show peers

Выводит список всех настроенных устройств SIP. В вывод включаются имя пользовательской записи, использованной для данного устройства и его IP адрес.

dialplan show

Выводит активный план нумерации, находящийся в памяти. Это включает в себя, помимо прочей информации, конфигурацию, описанную в файле /etc/asterisk/extensions.conf.