Asterisk - бесплатный продукт американской фирмы DigiumДобавлено (30.04.2008, 14:08)
---------------------------------------------
Asterisk -- программная АТС, реализованная под ОС Windows и Linux-подобные ОС.
Очевидность преимущества использования программного продукта заключается в его полностью бесплатном распространении и поддержкой американской компанией Digium (www.digium.com). Более того, если в качестве платформы инсталляции Asterisk'а выбрать бесплатную ОС (я выбрал Ubuntu 7.10), экономическое преимущество более, чем очевидно.
Создавая тему форума, я ставил перед собой цель -- облегчить начинающим инсталляторам эксплуатацию Asterisk'а, как совсем недавно сам абсолютно ничего не зная об этом продукте, пришлось перечитывать англоязычные мануалы и тематические форумы.
Примечание
В любом случае, мои статьи не станут исчерпывающим материалом для тех, кто занялся эксплуатацией и поддержкой Asterisk'а, тем более, что сам постоянно обновляю знания в этом направлении. Мой совет -- книга по Asterisk'у "Будущее телефонии" (анг) ее можно найти в Интернете бесплатно (несколько изданий, у меня есть 2005 и 2007 года) и конечно примеры файлов конфигурации, поставляемые вместе с исходниками Asterisk' а
Если есть желание -- комментируйте, поправляйте... Всегда рад! Итак, начнем-с.....
Добавлено (30.04.2008, 14:51)
---------------------------------------------
Изначально расскажу, где и как можно скачать исходники Asterisk'а
В первую очередь следует зайти на сайт asterisk.org и во вкладке download скачать инсталяцию. На момент написания статьи стабильная (Stable) версия была 1.4.19.1
В общем случае существует еще два пакета инсталяции для работы с платами Zaptel и потоками PRI libpri. Рекомендуется их проинсталировать
Добавлено (30.04.2008, 15:06)
---------------------------------------------
После скачивания исходника, можно приступить к установки. В Ubuntu это делается с помощью менеджера установки пакетов Advanced Packagin Tool. C консоли это делается так:
1. Заходим в каталог с исходниками Asterisk'а
cd \home\ ,например.
2. С помощью комманды ls -l выводим список файлов в каталоге, чтобы убедиться в наличии каталога с исходниками Asterisk'а. Далее переходим в этот каталог с помощью все того же cd /home/asterisk-1.4.19/
3. Далее пишем:
apt-get install asterisk
Жмем Enter
4. После краткого диалога с менеджером пакетов мы установили пакет Asterisk
Добавлено (30.04.2008, 15:08)
---------------------------------------------
Есть еще один вариант установки Asterisk'а с помощью программы установки пакетов Synaptic в графическом режиме
Добавлено (30.04.2008, 15:11)
---------------------------------------------
Вообщем-то уже сейчас можно загружать Asterisk с консоли. Для того, что бы подключиться к Asterisk'у в консольном режиме, необходимо ввести
asterisk -r
появиться коммандная строка CLI
Собственно Asterisk уже работает, для выхода из CLI необходимо ввести stop now
Asterisk будет выгружен из памяти
Добавлено (30.04.2008, 15:13)
---------------------------------------------
Более подробная информация о работе с CLI строкой будет дана позже, основной акцент хочу сначала сделать на теории организации программной АТС. Как по мне не стоит лезть в дебри конфигурации номерного плана и т.п. не разобравшись что к чем в этом Asterisk'е
Добавлено (30.04.2008, 15:22)
---------------------------------------------
Основным местом работы программиста по конфигурации Asterisk'а будет каталог /etc/asterisk/
Файлы, находящиеся в этом каталоге -- это файлы конфигурации АТС. Все они имеют "расширение" .conf (на самом деле никакого расширения нет в Unix-подобных системах)
В первую очередь, рекомендую продублировать этот каталог в качестве Backup. Почему? Расскажу позже
Добавлено (30.04.2008, 15:39)
---------------------------------------------
В Asterisk существует такое понятие, как "канал". Собственно канал выступает посредником между звонком (не важно, входящий ли это звонок или исходящий) и Asterisk'ом.
Asterisk поддерживает практически все известные протоколы Voice over IP (VoIP) и для каждого такого протокола существует свой канал. Другими словами, звонок поступивший/исходящий с помощью SIP протокола попадет в sip канал, а звонок с MGCP протоколом -- соответственно в mgcp канал. Забегая наперед, скажу, что в Asterisk'е есть возможность вручную подлючать/отключать тот или иной канал в одном из файлов конфигурации АТС
Среди множества поддерживаемых каналов в стандартном дистрибутиве Asterisk, следует отметить:
- H.323 -- самый старый протокол VoIP
- MGCP -- протокол протокол управления медиа-шлюзами
- SIP -- протокол инициирования сеанса, наиболее популярный в VoIP
- Skinny -- протокол взаимодействия с оборудованием компании Cisco
- IAX -- протокол транкингового соединения, вобравший в себя все самое лучшее от других VoIP протоколов и зачастую используется для соединения нескольких серверов Asterisk IP-PBX для экономии трафика между ними
Также следует сказать, что Asterisk, при дополнительной инсталляции, поддерживает работу с мобильными телефонами через bluetooth соединение
Добавлено (30.04.2008, 15:42)
---------------------------------------------
Более того, Asterisk не различает аналоговые порты FXO и FXS (соответственно нет различает телефонную линию и телефон как устройство), так как посредником между ними выступает канальный драйвер!
Добавлено (30.04.2008, 15:47)
---------------------------------------------
Каждый канал управляется "драйвером канала". Драйвер канала -- это файл с "расширением" .so
Список всех доступных каналов в Asterisk находиться:
/usr/lib/asterisk/modules
Добавлено (30.04.2008, 15:52)
---------------------------------------------
Собственно драйвер канала черпает информацию о конфигурации канала, заданную программистом Asterisk. С этими параметрами он и будет работать с тем или иным каналом. Если какой-то драйвер канала отсутствует, то звонки, попадающие в этот канал работать не будут. Отсутствующий канальный драйвер можно подключить дописав его файл в /usr/lib/asterisk/modules. Asterisk подгружает эти драйвера во время запуска и перезагрузки
Добавлено (30.04.2008, 16:16)
---------------------------------------------
Расшифровать какой из файлов отвечает за тот или иной канал достаточно просто -- названия файлов канальных драйверов информативны, например, за sip канал отвечает chan_sip.so
Более того, на будущее, если Вы уже запустили работоспособную IP-PBX и необходимо поддержка нового канала, то для подключения модуля канального драйвера нет необходимости перегружать всю АТС -- достаточно с командной строки написать загрузку конкретного модуля CLI> module load chan_sip.so. И вы загрузите в память канальный драйвер SIP протокола
Добавлено (30.04.2008, 16:42)
---------------------------------------------
Примечание
Asterisk записывает себя в сценарии загрузки ОС Ubuntu (и не только Ubuntu). Поэтому, если вы хотите "запустить" Asterisk на Вашем ПК, тогда Вам необходимо только подключиться к уже запущенному демону Asterisk'а
Справка
Демоном в Unix-подобных ОС называется процесс, запущенный в фоновом режиме. Для просмотра всех запущеных процессов в Ubuntu, необходимо с правами суперпользователя ввести:
1. sudo -s -- переходим в режим суперпользователя (типа root, который упразднили в Ubuntu )
2 пароль текущего пользователя
3 ps ax -- выводит список процессов (с номером PUI) запущеных на даный момент в СО
4 kill -9 [номер процесса] -- выгружает процесс с указанным номером со списка процессов (на всякий случай :))) )
Подключение к консоли Asterisk'а осуществляется с помощью команды
asterisk -r
Примечание
В Asterisk'е есть возможность увеличить объем информации, выводимой АТС. Иногда это информация полезна для того, чтобы более детально просмотреть о проблемах, возникших при работе Asterisk (что-то типа on-line отладка). Конечно, всю информацию о работе системы Asterisk можно просмотреть в log файле, куда IP-PBX пишет о всех происходимы событиях, но как по мне очень удобно просматривать ее прямо с консоли
Для того, чтобы Asterisk выводил больше информации, необходимо перегрузить его и снова запустить в режиме консоли, только с параметром Verbosity (так называемое, словесное наполнение, чем больше -v, тем многословней информация выдаваемая Asterisk'ом)
1 С командной строки выгружаем Asterisk -- CLI> stop now
2 Запускаем снова в режиме Verbosity -- asterisk -vvvvvc
При этом мы увидим много информации, о загрузке АТС, списке подключенных канальных драйверов, список подключенных кодеков упаковки речи и пр,