355 500 произведений, 25 200 авторов.

Электронная библиотека книг » Джим Меггелен » Asterisk™: будущее телефонии Второе издание » Текст книги (страница 9)
Asterisk™: будущее телефонии Второе издание
  • Текст добавлен: 7 октября 2016, 17:17

Текст книги "Asterisk™: будущее телефонии Второе издание"


Автор книги: Джим Меггелен


Соавторы: Джаред Смит,Лейф Мадсен

Жанр:

   

ОС и Сети


сообщить о нарушении

Текущая страница: 9 (всего у книги 41 страниц)

Доступ к GUI

После завершения установки и перезагрузки компьютера можно переходить к GUI Asterisk. URL, используемый для доступа к GUI Asterisk, – это IP-адрес или имя хоста, которое выводится на экран после перезагрузки компьютера. Введите этот IP-адрес в адресной строке броузера. С помощью GUI Asterisk можно улучшать и настраивать AsteriskNOW.


Альтернативные установки

AsteriskNOW можно также испытать, используя образ VMware Player (http://www.vmware.com/download/player/), универсальный образ гостевого домена Xen (http:// wiki.rpath.com/wiki/Xen_Solutions_Using_ rPath_Technologies) или LiveCD (только что записанного и запущенного). Все альтернативные установки можно найти на странице для скачивания AsteriskNOW (http://www.asterisknow.org/downloads). Примечание: при использовании LiveCD имя пользователя и пароль по умолчанию – admin и password соответственно.

Дополнительные источники

В настоящее время сообществом разработчиков Asterisk на форумах Asterisk создается «Руководство пользователя AsteriskNOW». Дополнительную информацию по AsteriskNOW, включая скриншоты процесса установки по шагам и конфигурирования с помощью Мастера настройки, можно найти по адресуhttp://www.asterisknow.org. Посетите также форумы Asterisk (http://forums.digium.com). Больше информации и справочных данных по rPath Linux представлено в разделе Википедии rPath,http://wiki.rpath.com.

Заключение

В данной главе рассмотрены процедуры получения, компиляции и установки Asterisk и связанных с ней пакетов. В следующей главе мы коснемся вопроса исходной конфигурации системы с точки зрения различных каналов связи, таких как аналоговые устройства, подключенные к портам FXS и FXO, SIP-каналы и конечные точки IAX2.

Глава 4 Исходная конфигурация Asterisk

Я не всегда понимаю, о чем говорю, но всегда уверен, что я прав.

- Мухаммед Али

После выполнения всех этапов, описанных в главе 3, должна быть получена рабочая система Asterisk. Если что-то не так, не пожалейте времени, вернитесь назад и еще раз просмотрите все шаги, проконсультируйтесь в Википедии, привлеките сообщество и заставьте свою систему работать.

К сожалению, пока мы не можем никуда позвонить, потому что еще не создан ни один канал. Чтобы оторвать этот самолет от земли, необходима взлетная полоса. Существуют десятки разных типов каналов и различных способов сконфигурировать каждый из них, но мы просто хотим получить возможность позвонить, поэтому давайте сделаем это и не будем пока вдаваться в тонкости. Мы решили привести здесь рекомендации по конфигурации четырех каналов: Foreign eXchange Office (FXO), Foreign eXchange Station (FXS), Session Initiation Protocol (SIP) и Inter-Asterisk eXchange (IAX)[53]53
  Официально текущей версией является IAX2, но, поскольку от поддержки IAX1 отказались много лет назад, под IAX и IAX2 подразумевается одна и та же версия.


[Закрыть]
. Были выбраны именно эти типы, потому что, бесспорно, они самые популярные из каналов, используемых в малых системах Asterisk, а одной из принципов данной книги является разумная простота. Рассматривая эти каналы, мы не стремимся к тому, чтобы дать исчерпывающий и всесторонний обзор всех типов линий или топологий, а просто представляем основную информацию, необходимую для разработки телекоммуникационной системы. Подробно конфигурация сценариев и каналов рассматривается в приложении D.

Начнем с изучения базовой конфигурации аналоговых интерфейсов, таких как порты FXS и FXO, на примере платы Digium TDM11B (которая является аналоговой платой с одним портом FXS и одним портом FXO)[54]54
  .„и H.323, и SCCP, и MGCP, и UNISTIM.


[Закрыть]
.

Далее мы коснемся нескольких интерфейсов для передачи голоса по IP-протоколу (Voice over Internet Protocol, VoIP): рассмотрим локальный канал SIP и IAX2, подключенный к программному телефону или телефонному аппарату, а также соединение двух серверов Asterisk по этим двум популярным протоколам.

Для SIP будут рассмотрены телефонные аппараты Linksys, Polycom, Aastra, Grandstream и Cisco. Приносим извинения, если в этот список не вошла используемая вами модель телефона. Однако важно то, что при всем многообразии предлагаемых этими аппаратами настраиваемых параметров обычно, чтобы устройство заработало, необходимо задать только несколько из них. Это и будет нашей целью, потому что мы считаем, что для первого раза достаточно просто привести устройство в рабочее состояние, а не выполнять полную идеальную настройку. Здесь не будут обсуждаться все функции, которые, возможно, вам хотелось бы использовать (такие, как идентификация вызывающего абонента (Caller ID) или расширенные настройки кодеков и политики безопасности), но с вашего телефона можно будет звонить и принимать звонки, а это должно заставить вас улыбнуться – хорошее состояние духа не помешает, когда мы углубимся в дебри.

Проработав эту главу, вы получите базовую систему, состоящую из нескольких полезных интерфейсов. Они обеспечат основу, необходимую для изучения файла extensions.conf (подробно обсуждаемого в главе 5), в котором хранится диалплан (фактически этот файл содержит инструкции, необходимые Asterisk для построения диалплана). Не имея аналогового оборудования, некоторые примеры будет невозможно реализовать, но все равно у вас будет сконфигурированная система, подходящая для среды, поддерживающей исключительно VoIP.

Что мне на самом деле нужно

Символ звездочки (*) используется как символ подстановки во многих приложениях. Это хорошее имя для данной офисной АТС по многим причинам, одна из которых – огромное число типов интерфейсов, с которыми может соединяться Asterisk. К ним относятся:

• Аналоговые интерфейсы, такие как телефонная линия и аналоговые телефоны.

• Цифровые линии, такие как линии T1 и E1.

• Протоколы VoIP, такие как SIP и IAX1.

Asterisk не требует никакого специализированного оборудования – даже звуковой карты, – хотя естественно ожидать, что система телефонной связи должна физически соединяться с телефонной сетью. Существует множество типов канальных плат, которые обеспечивают возможность соединения Asterisk с такими устройствами, как аналоговые телефоны или PSTN-сети, но они не являются обязательным условием функционирования Asterisk. На стороне пользователя (или станции) системы может использоваться любой программный телефон Windows, Linux и других операционных систем или практически любой физический IP-телефон. То есть вопрос с телефонами системы решен. Что касается линии связи, если нет прямого подключения к центральной АТС, можно передавать звонки по Интернету с помощью провайдера сервиса VoIP.

Работа с конфигурационными файлами интерфейсов

В данной главе будет построена конфигурация Asterisk на платформе, установленной в предыдущей главе. Для первых нескольких разделов, в которых рассматриваются каналы FXO и FXS, предполагается использование комплекта TDM11B производства Digium (который поставляется с одним FXO– и одним FXS-интерфейсом). Он обеспечит возможность подключения к аналоговой сети (FXO) и аналоговому телефону (FXS). Обратите внимание, что этот аппаратный интерфейс не является обязательным; если вы хотите настроить конфигурацию для общения только по IP-протоколу, можете пропустить раздел, посвященный конфигурации SIP.

Сама по себе выполняемая здесь конфигурация не будет иметь особенного практического значения, но она станет основой для дальнейшей работы. Будут рассмотрены следующие файлы: zaptel.conf

1

Здесь будет выполнена низкоуровневая конфигурация аппаратного интерфейса. Будут настроены один канал FXO и один канал FXS. Это сконфигурирует драйвер для ядра Linux.

zapata.conf

В данном файле будет выполнена настройка взаимодействия Asterisk с оборудованием. Этот файл обеспечивает конфигурацию оборудования, используемого в пользовательском процессе Asterisk, на более высоком уровне. extensions.conf

Будут созданы достаточно примитивные диалпланы, но они подтвердят работоспособность системы. sip.conf

Здесь будет сконфигурирован SIP-протокол. iax.conf

Здесь будет выполнена конфигурация входных и выходных IAX-каналов.

Следующие разделы посвящены редактированию нескольких конфигурационных файлов. Чтобы внесенные изменения возымели действие, придется перезагрузить эти файлы. После редактирования файла zaptel.conf понадобится выполнить перезагрузку конфигурации оборудования, используя строку /sbin/ztcfg -vv (-vv можно опустить, если не нужен развернутый вывод). Изменение файла zapata.conf потребует выполнения команды module reload из консоли Asterisk; однако изменение методов обмена сигналами требует перезагрузки системы (команда restart). После редактирования файлов iax.conf и sip.conf необходимо выполнить команды iax2 reload и sip reload соответственно. Для тестирования вновь определенных устройств необходим диалплан, посредством которого могут устанавливаться соединения. Хотя диал– план Asterisk еще не рассматривался (этим мы займемся в следующей главе), для тестирования работы, выполняемой в данной главе, необходимо создать базовый файл extensions.conf.

Создайте резервную копию файла-шаблона extensions.conf (попробуйте команду bash mv extensions.conf extensions.conf.sample), затем создайте пустой файл extensions.conf (используя команду bash touch extensions.conf) и вставьте в него следующие строки:

[globals]

[general]

autofallthrough=yes

[default]

[incoming_calls]

[internal]

[phones]

include => internal

В разделе [general] задано autofallthrough=yes, что указывает Asterisk продолжать выполнение, если все действия для добавочного номера исчерпаны. Если задать этому параметру значение no, Asterisk после выполнения всех предусмотренных приоритетов будет ожидать ввода. Это значение является предпочтительным, если последним приложением, выполняемым для добавочного номера, является приложение Backg round(). Если задано значение yes (которое стало значением по умолчанию в версии 1.4), Asterisk прервет вызов после завершения выполнения Background() (после воспроизведения имеющихся звуковых файлов). Чтобы заставить Asterisk ожидать ввода номера после того, как приложение завершит воспроизведение предоставляемых ему голосовых сообщений, используется приложение WaitExten().

Не пугайтесь, если вышесказанное не имеет сейчас для вас особого смысла. Просто мы еще не рассматривали диалплан, приложения, приоритеты и добавочные номера (все это ожидает нас в следующей главе). Поэтому пока что просто задайте autofallthrough=yes. Безопаснее использовать команду autofallthrough=yes, поскольку мы не хотим, чтобы Asterisk простаивала без дела в ожидании ввода номера, если это не указано ей явно.

Контекст parkedcalls – это внутренний контекст Asterisk, заданный в файле features.conf.

Пока что это все, но данный файл будет использоваться по ходу этой главы для построения тестового диалплана, который поможет убедиться в работоспособности всех наших устройств. Также не забудьте выполнить команду dialplan reload из командной строки Asterisk, чтобы внесенные изменения вступили в силу. Проверьте свои изменения, введя в командной строке команду dialplan show:

*CLI> dialplan show

[ Context 'phones', created by 'pbx_config' ] Include => 'internal' [pbx_config]

[ Context 'internal', created by 'pbx_config' ]

[ Context 'incoming_calls', created by 'pbx_config' ]

[ Context 'default', created by 'pbx_config' ]

[ Context 'parkedcalls', created by 'res_features' ]

'700' => 1. Park((null)) [res_features]

-= 1 extension (1 priority) in 5 contexts. =-Настройка диалплана для выполнения тестовых вызовов

Теперь давайте подробнее остановимся на тестовом диалплане, о котором мы начали разговор в предыдущем разделе, – он позволит выполнять обратный вызов программного телефона, после того как тот будет настроен, и использовать приложение диалплана Echo() для тестирования двусторонней аудиосвязи. Более подробно диалпланы рассматриваются в главе 5, а пока что просто добавим выделенные курсивом строки в существующий файл extensions.conf. Мы будем использовать этот диалплан по ходу данной главы и дополнять его в определенных разделах. После ввода текста в extensions.conf диалплан необходимо перезагрузить, выполнив команду dialplan reload из консоли Asterisk: [globals]

[general]

[default]

exten => s,1,Verbose(1Unrouted call handler)

exten => s,n,Answer()

exten => s,n,Uait(1)

exten => s,n,Playback(tt-weasels)

exten => s,n,Hangup()

[incoming_calls]

[internal]

exten => 500,1,Verbose(^Echo test application)

exten => 500,n,Echo() extern => 500,n,Hangup()

[phones]

include => internal

Каналы FXO и FXS

Каналы FXO и FXS отличаются друг от друга лишь тем, что один из них обеспечивает тональный сигнал готовности линии. FXO-порт не генерирует тонального сигнала, он его принимает. Самый простой пример – тональный сигнал, поставляемый телефонной компанией. FXS– порт обеспечивает и тональный сигнал, и напряжение сигнала вызова (звонка), предупреждающего пользователя о входящем вызове. Оба интерфейса обеспечивают двустороннюю связь (то есть передачу и прием в обоих направлениях одновременно)[55]55
  Двустороннюю связь иногда называют также полнодуплексной. Полудуплексная связь – это связь, которая осуществляется одновременно только в одном направлении.


[Закрыть]
.

Если у вашего сервера Asterisk есть совместимый FXO-порт, в него можно подключить телефонную линию телефонной компании (или telco), что позволит Asterisk использовать эту телефонную сеть для отправки и приема телефонных звонков. Кроме того, если ваш сервер Asterisk имеет совместимый FXS-порт, в него можно подключить аналоговый телефон. Таким образом, Asterisk сможет направлять поступающие вызовы в телефон и вы будете способны использовать этот телефон для звонков куда-либо.

В конфигурации порты определяются протоколом обмена сигналами, который они используют, а не их физической сущностью. Например, физический FXO-порт будет определен в конфигурации протоколом обмена сигналами FXS, а FXS-порт – протоколом FXO. Это может сбивать с толку до тех пор, пока не станут ясны причины такого явления. Платы FX_ названы так не исходя из их физической сути, а соответственно тому, какие устройства подключаются к ним. Следовательно, плата FXS – это плата, подключаемая к станции (station). Таким образом, можно заметить, что, для того чтобы справится со своими задачами, плата FXS должна вести себя как центральная АТС и использовать протокол обмена сигналами FXO. Аналогично, плата FXO подключается к центральной АТС. Это означает, что она должна будет вести себя как станция и использовать протокол обмена сигналами FXS. Модем в компьютере – классический пример устройства FXO.

Более старая плата X100P производства компании Digium использовала набор микросхем Motorola, а плата X101P (которую Digium продавала до того, как полностью переключилась на TDM400P) базируется на наборе микросхем Ambient/Intel MD3200. Эти платы являются модемами с драйверами, которые можно использовать в качестве отдельного устройства FXO (интерфейс для телефонии не может использоваться как FXS-порт). От поддержки плат X101P отказались в пользу плат TDM-серий.

Эти платы (или их клоны) НЕЛЬЗЯ использовать в средах производственной эксплуатации. Ведь не просто так они стоят на eBay всего $10.

Платы X100P/X101P не годятся для производственной эксплуатации, потому что часто являются причиной возникновения эха и не дают возможности удаленного управления разъединением. Будьте благоразумны и не тратьте время на это оборудование. Если обратиться с вопросом об этих платах к сообществу, многие ответы будут недружелюбными. Мы вас предупредили.

Как найти порты FXO и FXS на плате TDM400P

На рис. 4.1 представлена плата TDM400P с модулями FXS и FXO. Фото черно-белое, поэтому невозможно различить цвета, но под номером 1 -FXS-модуль зеленого цвета, а под номером 2 – FXO-модуль, оранжево– красный. В нижнем правом углу рисунка можно увидеть разъем Molex, посредством которого плата подключается к блоку питания компьютера.

Конфигурация канала FXO для соединения с PSTN

Начнем с конфигурации FXO-канала. Сначала сконфигурируем оборудование Zaptel, а затем – устройства Zapata. Зададим очень простой диалплан и покажем, как тестировать канал.

Подключение FXS-порта (зеленый модуль) к PSTN может привести к выходу из строя модуля и платы из-за подачи напряжения в систему, которая предназначена для его производства, а не потребления!

Рис. 4.1. Плата TDM400P с модулем FXS (1 по горизонтали) и модулем FXO (2 по горизонтали)

Если на плате TDM400P есть модули FXS, убедитесь, что вы не забыли подключить питание к разъему Molex, который используется для обеспечения напряжения, необходимого для возбуждения генератора звонка в FXS-портах. Разъем Molex не нужен, если имеются только FXO-модули.

Конфигурация оборудования Zaptel

Для конфигурации оборудования используется файл zaptel.conf, который находится в папке /etc/. Приведенная минимальная конфигурация определяет FXO-порт, использующий протокол обмена сигналами FXS:

fxsks=2

loadzone=us

defaultzone=us

В первой строке, кроме указания используемого протокола обмена сигналами (FXO или FXS), для канала 2 задается один из следующих протоколов:

• Loop start (ls)

• Ground start (gs)

• Kewlstart (ks)

Разница между loop start (кольцевая сигнализация) и ground start (сигнализация с заземлением) в том, как оборудование запрашивает тональный сигнал: линия, использующая сигнализацию с заземлением, подает сигнал дальнему концу о том, что хочет получить тональный сигнал, путем мгновенного заземления одного из проводов; линия с сигнализацией по шлейфу для запроса тонального сигнала использует замыкание. Хотя в новых системах их уже практически нет, аналоговые линии с сигнализацией с заземлением по-прежнему применяются во многих областях[56]56
  Да, в многоканальных линиях T1 существует такая вещь, как сигнализация с заземлением, но она не имеет ничего общего с фактическим заземлением линии (полностью цифровой).


[Закрыть]
. Сигнализация с заземлением на самом деле довольно странная штука, потому что в Asterisk нет ее аналоговой формы. Фактически передается не напряжение заземления, а сигнальный бит, предусмотренный для аналоговых сетей, присутствующих на стороне T1. Если вы чего-то здесь не понимаете, не отчаивайтесь; скорее всего, вам никогда не придется использовать сигнализацию с заземлением. Сейчас почти все линии связи (и аналоговые телефоны/модемы/ факсы) используют сигнализацию по шлейфу. Kewlstart, в сущности, – это то же самое, что и кольцевая сигнализация, за исключением того что он обладает более развернутой логикой и, таким образом, может определять отсоединение удаленного конца[57]57
  Отсоединение удаленного конца имеет место, когда на дальнем конце линии кладут трубку. В неконтролируемой сети нет средства оповещения ближнего конца о том, что вызов завершен. Если используется телефон, это не представляет проблемы, поскольку абонент поймет, что звонок завершен, и сам повесит трубку. Однако система голосовой почты, записывающая сообщение, не имеет никакой возможности определить, что дальний конец прервал соединение, и, таким образом, будет продолжать записывать тишину, или даже тональный сигнал, или сигнал занятости линии. Kewlstart может определять такие условия и отсоединять линию.


[Закрыть]
. Kewlstart является предпочтительным протоколом обмена сигналами для аналоговых линий в Asterisk.

Чтобы определить другой метод обмена сигналами, не kewlstart, замените ks в выражении для fxsks на ls или gs (для кольцевой сигнализации или сигнализации с заземлением соответственно).

Параметр загрузки зоны loadzone задает набор сигналов (которые указаны в файле zonedata.c), используемых для канала. Файл zonedata.c содержит информацию о всевозможных звуках, воспроизводимых телефонной системой в определенной стране: тональный сигнал, сигналы дозвона, сигнал «занято» и т. д. Если применить загруженную тоновую зону к Zap-каналу, этот канал будет воспроизводить сигналы заданной страны. Для разных каналов можно задать различные наборы сигналов. Если для канала зона не задана, используется параметр зоны по умолчанию defaultzone.

После конфигурации zaptel.conf можно загрузить драйверы для платы. Команда modprobe применяется для загрузки модулей, используемых ядром Linux. Например, чтобы загрузить драйвер wctdm, нужно выполнить команду

# modprobe wctdm

Если при загрузке драйверов не выводится никаких сообщений, значит, драйверы загружены успешно[58]58
  Обычно в случае успешной загрузки модулей можно не просматривать отладочную информацию, но если вы хотите увидеть ее, проверьте вывод консоли (по умолчанию он находится на TTY-терминале номер 9, но это можно изменить в сценарии safe_asterisk – подробнее см. в предыдущей главе).


[Закрыть]
. Убедиться в том, что оборудование и порты были загружены и сконфигурированы правильно, можно с помощью программы ztcfg:

# /sbin/ztcfg -vv

На экран будут выведены сконфигурированные каналы и используемый метод обмена сигналами. Например, для TDM400P с одним модулем FXO будет получен такой вывод:

Zaptel Configuration Channel map:

Channel 02: FXS Kewlstart (Default) (Slaves: 02) 1 channels configured.

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

ZT_CHANCONFIG failed on channel 2: Invalid argument (22)

Did you forget that FXS interfaces are configured with FXO signaling and that FXO interfaces use FXS signaling?

(ZT CHANCONFIG дала сбой для канала 2: Недействительный аргумент (22).

Вы забыли, что FXS-интерфейсы конфигурируются на использование протокола обмена сигналами FXO и FXO-интерфейсы используют протокол FXS?) Чтобы выгрузить драйверы из памяти, используйте команду удаления модуля rmmod: # rmmod wctdm

Программа zttool является инструментом диагностики, используемым для определения статуса оборудования. Выполнив ее, мы получаем список всех установленных аппаратных средств. В этом списке можно выбирать то или иное устройство и просматривать информацию о его текущем статусе. Статус OK означает, что устройство загружено успешно:

Alarms Span

OK Wildcard TDM400P REV E/F Board 1


    Ваша оценка произведения:

Популярные книги за неделю