[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»). Телефон Боба будет зарегистрирован и подключен к Торонто, а телефон Элис - к серверу Осака.
Прежде всего создадим новый файл канала (iax.conf). Для этого переименуем текущий файл шаблона в iax.conf.sample и создадим новый пустой файл iax.conf:
# cd /etc/asterisk
# mv iax.conf iax.conf.sample
# touch iax.conf
Далее откроем файл iax.conf и введем следующие настройки для сервера Asterisk Торонто:
[general] autokill=yes
register => toronto: welcome@192.168.1.107
[osaka]
type=friend
host=dynamic
trunk=yes
secret=welcome
context=incoming_osaka
deny=0.0.0.0/0.0.0.0
permit=192.168.1.107/255.255.255.255
Пояснения к параметру autokill=yes приведены в предыдущем разделе, а его назначение - гарантировать, что новые соединения, устанавливаемые с удаленной системой и не получившие подтверждения приема в течение заданного времени (по умолчанию - две секунды), корректно завершаются. Это спасает от возникновения множества подвешенных каналов, просто ожидающих подтверждения приема, которое, возможно, никогда не будет получено.
Строка register используется для указания удаленному серверу Asterisk нашего местоположения, чтобы, когда сервер по адресу 192.168.1.107 будет готов послать нам вызов, он отправлял его на наш IP-адрес (в данном случае наш IP-адрес - 192.168.1.104, его мы увидим в конфигурационном файле iax.conf сервера Осака). Имя пользователя Toronto и пароль welcome посылаются на сервер Осака, который проверяет нашу регистрацию. Если аутентификация пройдена успешно, он записывает в память местоположение нашего сервера Asterisk и будет использовать эту информацию при отправке нам вызовов.
Читать дальше