Asterisk™: будущее телефонии Второе издание
Шрифт:
Повторим еще раз: задайте в sip.conf максимально простую конфигурацию Asterisk и после этого не меняйте ничего. Поверьте, то, что написано здесь, будет работать. Приведите свой телефон в рабочее состояние (то есть чтобы он мог принимать и делать вызовы) и только после этого начинайте экспериментировать с разными настройками. Мы видели слишком много страданий (включая собственные) и хотим положить им конец.
Упрощение sip.conf
Файл sip.conf (который был скопирован в папку /etc/asterisk с помощью команды make samples в предыдущей главе) содержит большое количество опций и документации, но сам файл на самом деле очень
context=default ; Контекст по умолчанию для входящих ; вызовов
allowoverlap=noallowoverlap=no | Отключить поддержку набора номера |
в режиме overlap. | |
(Значение по умолчанию - yes) | |
bindport=5060 | Используемый UDP-порт 5060 (стандартный SIP-порт) bindport - локальный UDP-порт, который будет слушать Asterisk |
bindaddr=0.0.0.0 | Используемый IP-адрес 0.0.0.0 (все доступные адреса) |
srvlookup=yes | Активировать поиск DNS SRV-записей для исходящих вызовов Примечание: Asterisk использует только первый хост в SRV-записях Деактивация поиска DNS SRV-записей отключает возможность размещать SIP-вызовы к другим SIP-пользователям в Интернете на основании доменных имен |
[authentication] |
В разделе [general] находятся опции, которые будут применяться ко всем клиентам и каналам SIP. Некоторые настройки задаются только в разделе [general], другие могут задаваться в разделе [general] как применяемые по умолчанию для всех условных инструкций и могут быть переопределены в другом месте. Эти опции перечислены в столбцах [users] и [peers] под заголовком [authentication].
Как правило, закомментированные опции являются используемыми Asterisk по умолчанию или значение по умолчанию указано в описании опции.
Также можно проверить текущее состояние SIP-канала в Asterisk с помощью CLI-команды sip show settings.
Если Asterisk и программный телефон выполняются в одной системе (то есть программный телефон X-Lite и Asterisk выполняются на портативном или настольном компьютере), придется изменить SIP-порт, который слушает клиент. Его надо будет заменить с 5060 на 5061 (или любой другой свободный порт), чтобы Asterisk и программный телефон не мешали друг другу.
Основные компоненты сервера
Перед тем как углубиться в описание следующих файлов, осталось определить еще несколько параметров на сервере. Выполнение соответствующих сервисов в собственной сети обеспечит возможность автоматической настройки аппаратов Polycom при их подключении. Работыздесь немного, и, поверьте, результат того стоит. Потренируйтесь немного - и в будущем для любой новой системы на это будет уходить лишь несколько минут, что сохранит вам массу времени и избавит от «борьбы» с веб-интерфейсами. Когда вы возьмете новенький телефон Polycom, подключите его в свою сеть, посмотрите, как он сам себя настроит и успешно зарегистрируется на сервере Asterisk, вы испытаете
DHCP-сервер
Обычно DHCP-сервер используется для конфигурации основных настроек протокола IP для устройства (IP-адрес, шлюз по умолчанию и DNS), но протокол DHCP (Dynamic Host Configuration Protocol - протокол динамической конфигурации хоста) на самом деле может передавать множество других параметров. В нашем случае мы хотим, чтобы он передал в телефонные аппараты некоторую информацию с указанием, откуда они могут загрузить конфигурационные файлы. Вот пример настроек DHCP-сервера Linux, которые обеспечат то, что нам требуется:
ddns-update-style interim;
ignore client-updates;
subnet 192.168.1.0 netmask 255.255.255.0 { option routers 192.168.1.1; option subnet-mask 255.255.255.0; option domain-name-servers 192.168.1.1; option ntp-servers pool.ntp.org; option time-offset -18000;
range dynamic-bootp 192.168.1.128 192.168.1.254;
default-lease-time 21600;
max-lease-time 43200;
}
Помните, здесь предполагается, что все устройства данной сети относятся к телефонной системе (при такой настройке IP-адрес предоставляется любому запрашивающему его устройству). Для более сложного окружения придется сконфигурировать демон DHCP для обработки различных обслуживаемых им устройств. Например, можно придумать диапазон IP-адресов, которые будут использоваться только для телефонов Polycom в локальной телефонной сети. Поскольку уникальный идентификатор организации (Organizationally Unique Identifier, OUI) всех IP-телефонов Polycom для настольных компьютеров - 00:04: f2, исходя из этого можно выбрать диапазон.
В DHCP-средах Microsoft имя tftp-сервера называют именем хоста сервера загрузки (Boot server host name). Оно определено как опция 66.
DHCP-протокол намного более гибок, чем часто кажется на первый взгляд, потому что в большинстве сред он не используется для выполнения сложных задач подготовки к работе. Приложив немного усилий и внимания, можно разработать такую среду DHCP, которая будет обслуживать и телефонные устройства, и устройства работы с данными и существенно упростит работу по администрированию при введении новых устройств.
FTP-сервер
В настоящее время мы предпочитаем использовать для конфигурации аппаратов Polycom протокол FTP (File Transfer Protocol - протокол передачи файлов)1. Мы бы рекомендовали выбрать его, а не TFTP и для устройств, которые могут работать с обоими протоколами. В системе CentOS при выполнении следующей команды будет установлен VSFTPD, Very Secure FTP Daemon (очень безопасный демон FTP):
# yum -y install vsftpd
Затем для обеспечения защиты необходимо предотвратить анонимные входы в систему. Для этого вносим простое изменение в конфигурационный файл vsftpd, находящийся в папке /etc/vsftpd/vsftpd.conf:
# anonymous_enable=NO
Перезапустите сервер с помощью команды service vsftpd restart. Чтобы гарантировать запуск демона после каждой перезагрузки, выполняем команду chkconfig vsftpd on.
Теперь необходимо создать пользовательскую учетную запись и группу, которые будут использоваться для телефонных аппаратов. В данном случае мы создадим учетную запись для аппаратов Polycom.
# groupadd PlcmSpIp
# useradd PlcmSpIp -g PlcmSpIp -p PlcmSpIp