Джим Меггелен - Asterisk™: будущее телефонии Второе издание Страница 31
- Категория: Компьютеры и Интернет / Программное обеспечение
- Автор: Джим Меггелен
- Год выпуска: неизвестен
- ISBN: нет данных
- Издательство: неизвестно
- Страниц: 136
- Добавлено: 2019-06-19 14:52:37
Джим Меггелен - Asterisk™: будущее телефонии Второе издание краткое содержание
Прочтите описание перед тем, как прочитать онлайн книгу «Джим Меггелен - Asterisk™: будущее телефонии Второе издание» бесплатно полную версию:Джим Меггелен - Asterisk™: будущее телефонии Второе издание читать онлайн бесплатно
Как всегда, постараемся наладить все быстро с минимальной настройкой конфигурационного файла, чтобы максимально сократить проблемы, которые могут возникнуть при конфигурации устройств. Как это было с файлом sip.conf, для регистрации IAX-телефона в Asterisk, в файл iax.conf необходимо добавить лишь несколько простых строк. Давайте посмотрим:
[general] autokill=yes
[idefisk] type=friend host=dynamic context=phones
Да, действительно, это все, что необходимо для настройки программного телефона. Это не самая безопасная или функциональная конфигурация (даже не использует ся пароль), но она будет работать. В разделе [general] файла iax.conf имеется единственная опция - autokill=yes. Она используется для того, чтобы предотвратить задержку в системе, когда участник сети не отвечает (ACK) на пакет NEW (запрос на установление нового соединения) в течение 2000 мс. Вместо значения yes здесь можно задать время (в миллисекундах) ожидания ACK на пакет NEW. Управлять опцией autokill (автоуничтожение) для каждого отдельного равноправного участника сети можно, определяя параметр qualify (качество) для тех участников, о возможном недостаточном качестве используемых сетевых соединений которых известно заранее.
Весь остальной файл - описание программного телефона. Мы определяем для него тип friend, указывая Asterisk на то, что будем производить звонки на это устройство, а также принимать звонки с него. friend является сокращенной записью для одновременного определения peer (отправляющего вызовы программному телефону) и user (принимающего вызовы от программного телефона). Можно было бы дать отдельные описания для peer и user:
[idefisk] type=user context=phones
[idefisk] type=peer host=dynamic
Сконфигурировав файл iax.conf, сохраняем его и перезагружаем модуль канала IAX2 из консоли Asterisk с помощью команды module reload chan_iax2.so. Подтверждаем существование нового равноправного участника сети, выполнив команду iax2 show peers.
localhost*CLI> iax2 show peers
Name/Username Host Mask Port Status
idefisk (Unspecified) (D) 255.255.255.255 0 Unmonitored
1 iax2 peers [0 online, 0 offline, 1 unmonitored]
Конфигурация программного телефона
Рис. 4.7. Окно Account Options (Опции учетной записи) программного телефона idefisk
После установки программного телефона idefisk откройте клиентское приложение. На экран будет выведено окно, представленное на рис. 4.6.
Рис. 4.6. Программный телефон idefisk
После запуска программного телефона, чтобы можно было выполнять с него звонки, его необходимо настроить. Также, чтобы можно было принимать звонки, этот телефон должен быть зарегистрирован в Asterisk. Для этого щелкните правой кнопкой мыши по иконке в верхнем левом углу экрана. Откроется меню. Выберите в нем пункт Account Options (Опции учетной записи), что обеспечит открытие окна, показанного на рис. 4.7.
Начните с создания новой учетной записи для программного телефона, щелкнув по кнопке New (Новая) и введя соответствующую информацию. В поле Host (Хост) должен быть указан IP-адрес или доменное имя вашей системы Asterisk, при этом имя пользователя должно совпадать с именем, указанным в квадратных скобках [] в файле iax.conf. Поле Password (Пароль) оставляем незаполненным, потому что мы не задавали параметр secret в файле iax.conf, а в полях Caller ID (ID звонящего) и Number (Номер) можно задать любые значения. Чтобы idefisk зарегистрировал эту учетную запись при запуске, поставьте флажок Register on startup (Зарегистрировать при запуске). Введя все необходимые данные, щелкните по кнопке OK, чтобы сохранить новую учетную запись.
Если был установлен флажок Register on startup (Зарегистрировать при запуске), телефон попытается зарегистрироваться в Asterisk. В консоли Asterisk будет выведена информация о том, что телефон зарегистрирован:
-- Registered IAX2 'idefisk' (UNAUTHENTICATED) at 127.0.0.1:32771 Проверить регистрацию можно из консоли Asterisk с помощью команды iax2 show peers:
localhost*CLI> iax2 show peers
Name/Username Host Mask Port Status
idefisk 127.0.0.1 (D) 255.255.255.255 32771 Unmonitored
1 iax2 peers [0 online, 0 offline, 1 unmonitored]
Конфигурация диалплана для тестирования
Осталось только подтвердить возможность выполнения вызовов с помощью нашего телефона, задав простой диалплан в файле extensions. conf. Можно просто проверить наличие аудиосигнала в обоих направлениях, позвонив на добавочный номер 500, или настроить диалплан, созданный в разделе «Настройка диалплана для выполнения тестовых вызовов» данной главы, чтобы выполнить ряд тестовых вызовов. Если добавочный номер 1000 задан для SIP-телефона, что мы делали в предыдущих разделах, обеспечим, чтобы данная конфигурация не перекрывала его, и используем добавочный номер 1001 (если вы сконфигурировали несколько добавочных номеров для SIP, просто задайте здесь для программного телефона IAX2 уникальный добавочный номер): [globals]
[general]
[default]
exten => s,1,Verbose(1|Unrouted call handler)
exten => s,n,Answer()
exten => s,n,Wait(1)
exten => s,n,Playback(tt-weasels)
exten => s,n,Hangup()
[incoming_calls]
[internal]
exten => 500,1,Verbose(1|Echo test application)
exten => 500,n,Echo()
exten => 500,n,Hangup()
exten => 1001,1,Verbose(1\Extension 1000)
exten => 1001,n,Dial(IAX2/idefisk,30)
exten => 1001,n,Hangup()
[phones]
include => phones
Подключение к поставщику сервисов IAX
Некоторые поставщики сервисов интернет-телефонии (ITSP) предоставляют возможность начинать и завершать соединения с помощью протокола IAX2. Кроме сведения до минимума количества портов, которые необходимо открыть в межсетевом экране (для IAX2 требуется лишь один порт, через который ведется и обмен сигналами, и передача медиа-данных), способность объединения каналов этого протокола привлекательна как для поставщиков сервисов, так и для их клиентов из- за сохранения полосы пропускания, которое возможно при выполнении множества одновременных соединений между конечными точками. Если ITSP предлагает завершение соединения с использованием IAX2, очень высока вероятность, что он использует Asterisk; таким образом, конфигурация для подключения к этому поставщику сервисов, скорее всего, будет аналогична той, которую мы приводим здесь. Следующая конфигурация - это шаблон для подключения к поставщику сервисов IAX2:
[general] autokill=yes
register => имяпользователя:пароль@мой.провайдер-сервиса.Ш
[мой_уникальный^]
type=user
secret=мой_уникальный_пароль
context=incoming_calls
trunking=yes
disallow=all
allow=gsm
allow=ulaw
deny=0.0.0.0/0.0.0.0 permit=10.251.100.1/255.255.255.255
[мой_уникальный^]
type=peer
host=10.251.100.1
trunking=yes disallow=all allow=gsm allow=ulaw
Чтобы принимать входящие вызовы по прямому номеру (номеру прямого набора внутренних абонентов - Direct Inward Dialing, DID), присвоенному вам поставщиком сервисов, необходимо откорректировать файл extensions.conf. Возможно, вы хотите направлять звонки на автоответчик или просто на телефон у себя на столе. В любом случае звонки от поставщика услуг можно принимать и сопоставлять с входящим DID с помощью следующей реализованной в диалплане логики: [globals]
[general]
autofallthrough=yes
[default]
[incoming_calls]
exten => 14165551212,1,NoOp()
exten => 14165551212,n,Dial(SIP/1000,30)
exten => 14165551212, n, Playback(the-party-you-are-calling&is-curntly-unavail) exten => 14165551212,n,Hangup()
exten => 4165551212,1,Goto(1${EXTEN})
[internal]
[phones]
include => internal
Соединение двух серверов Asterisk по протоколу IAX
Часто желательно объединить два физических сервера Asterisk по протоколу IAX, чтобы иметь возможность обмениваться вызовами между двумя физическими местоположениями (расстояние между этими точками можем быть ничтожно мало, а может измеряться и километрами). Одно из преимуществ использования протокола IAX для этого - его способность, называемая объединением каналов, в которой используется метод отправки голосовых данных множества звонков под одним заголовком. Для одного или двух одновременных вызовов эффект от этой возможности невелик, но если между двумя точками выполняются десятки или сотни звонков, выигрыш в пропускной способности за счет использования объединения каналов может быть огромным.
Конфигурация локального межсетевого экрана
Если ip-таблицы используются на одном компьютере с сервером Asterisk, можно выполнить следующие команды для открытия порта 4569 для протокола IAX2. Замечательная книга по организации межсетевых экранов с помощью ip-таблиц - «Linux Firewalls» (Novell Press) Стива Суэринга (Steve Suehring) и Роберта Циглера (Robert Ziegler).
# iptables -I RH-Firewall-1-INPUT -p udp --dport 4569 -j ACCEPT
# service iptables save
Помните, что это откроет порт 4569 для всего UDP-трафика из любого источника.
Системе понадобится интерфейс синхронизации - или аппаратный, производства Digium, или программный, использующий ядро драйвера ztdummy. Для этого в системе должен быть установлен и запущен драйвер Zaptel. Подробно об установке Zaptel рассказывается в главе 3.
Конфигурация серверов Asterisk
Мы будем использовать простую схему из двух серверов Asterisk, зарегистрированных непосредственно друг на друге, и отдельных телефонов, зарегистрированных на каждом из серверов Asterisk. Будем называть серверы Asterisk Торонто и Осака (см. раздел «Соединение двух серверов Asterisk по протоколу SIP»). Телефон Боба будет зарегистрирован и подключен к Торонто, а телефон Элис - к серверу Осака.
Жалоба
Напишите нам, и мы в срочном порядке примем меры.