Текст книги "Asterisk™: будущее телефонии Второе издание"
Автор книги: Джим Меггелен
Соавторы: Джаред Смит,Лейф Мадсен
Жанр:
ОС и Сети
сообщить о нарушении
Текущая страница: 11 (всего у книги 41 страниц)
Программный телефон X-Lite производства CounterPath
Программный телефон X-Lite компании CounterPath стал очень популярным в сообществе разработчиков Asterisk. Он прост, функционален, приятен на вид и, что самое главное, распространяется бесплатно. В этом разделе мы займемся конфигурацией программного телефона X– Lite для подключения к Asterisk. IP-адрес этого телефона – 192.168.1.250, Asterisk располагается по адресу 192.168.1.100. Доступен X-Lite для Microsoft Windows, Mac и Linux. Копию X-Lite можно скачать по адресу http://www.counterpath.com/index.php?menu=download.
Теперь давайте сконфигурируем программный телефон для установления соединения с сервером Asterisk. Чтобы сконфигурировать X-Lite, нажмите кнопку Settings (Настройки), которая показана на рис. 4.2. Выберите пункты System Settings ^ SIP Proxy ^ [Default] (Настройки системы ^ SIP-прокси ^ [По умолчанию]). При этом на экран будет выведена стандартная конфигурация программного телефона. Измените настройки, как показано на рис. 4.3.
Если система Asterisk не запущена, запустите ее сейчас (информацию по установке и запуску Asterisk можно найти в главе 3). Если Asterisk выполняется в фоновом режиме, вызвать ее CLI можно, выполнив следующую команду:
# asterisk -rvvv

■ Кнопка Settings

Рис. 4.3. Пользовательская конфигурация X-Lite
CLI Asterisk будет предоставлен следующим образом:
*CLI>
Рис. 4.2. Конфигурация X-Lite
Если Asterisk уже была запущена до изменения sip.conf, как рекомендуется в данной главе, перезагрузите диалплан и SIP-канал с помощью следующих двух команд:
*CLI> dialplan reload *CLI> sip reload
В клиенте программного телефона X-Lite закройте окно Settings (Настройки), щелкая по кнопке BACK (НАЗАД) до тех пор, пока не будут закрыты все окна. Вы должны увидеть, что X-Lite пытается зарегистрироваться в Asterisk, и в случае успеха в CLI Asterisk будет выведено следующее:
– Registered SIP '1000' at 192.168.1.250 port 5061 expires 3600 Проверить статус регистрации можно в любой момент следующим образом:
*CLI> sip show peers
Name/username Host Dyn Nat ACL Port Status
1000/1000 192.168.1.250 D N 5061 OK (63 ms)
1 sip peers [1 online , 0 offline]
Более подробная информация, представленная ниже, может быть получена с помощью команды sip show peer 1000: *CLI> sip show peer 1000
| * Name | 1000 |
| Secret : | |
| MD5Secret | |
| Context | phones |
| Subscr.Cont. | |
| Language | |
| AMA flags | Unknown |
| Transfer mode | open |
| CallingPres | Presentation Allowed, Not Screened |
| Callgroup : | |
| Pickupgroup : | |
| Mailbox : | |
| VM Extension | asterisk |
| LastMsgsSent : | 32767/65535 |
| Call limit : | 0 |
| Dynamic : | Yes |
| Callerid : | "" <> |
| MaxCallBR | 384 kbps |
| Expire : | 1032 |
| Insecure : | no |
| Nat : | RFC3581 |
| ACL : | No |
| T38 pt UDPTL | No |
| CanReinvite : | Yes |
| PromiscRedir : | No |
| User=Phone | No |
| Video Support | No |
| Trust RPID : | No |
| Send RPIDSend RPID | No |
| Subscriptions : | Yes |
| Overlap dial : | Yes |
| DTMFmode | rfc2833 |
| LastMsg : | 0 |
| ToHost | |
| Addr->IP | 192.168.1.250 Port 5061 |
| Defaddr->IP : | 0.0.0.0 Port 5060 |
| Def. Username | 1000 |
| SIP Options : | (none) |
| Codecs : | 0x8000e (gsm|ulaw|alaw|h263) |
| Codec Order : | (none) |
| Auto-Framing : | No |
| Status : | Unmonitored |
| Useragent | X-Lite release 1105d |
| Reg. Contact | sip:1000@192.168.1.250:5061 |
Телефонные аппараты Polycom IP 430
Многие считают, что конфигурировать телефоны Polycom сложно. Насколько нам известно, такие выводы делаются по двум причинам: 1) ужасный веб-интерфейс Polycom, или 2) тяжелый и запутанный процесс автоматической подготовки к работе.
Что касается пункта 1, мы согласны. Веб-интерфейс телефонов Polycom является одним из самых неприятных веб-интерфейсов из всех, когда– либо созданных для IP-телефонов. Мы его не используем и вам не советуем[64]64
Как ни странно, но он все-таки выполняет одну полезную функцию – обеспечивает возможность входить в телефон через броузер и запрашивать его конфигурацию.
[Закрыть].
Итак, нам остается только кое-какая конфигурация с использованием сервера. К счастью, в этом отношении IP-телефоны Polycom просто великолепны, настолько, что им даже можно простить веб-интерфейс. Конфигурации телефонов хранятся в файлах на сервере. Каждый телефон находит сервер, загружает с него соответствующие файлы и применяет их к себе.
DHCP-сервер
Если вы не можете управлять используемым DHCP-сервером, вам придется вручную вводить в телефон информацию о FTP-сервере. Для этого необходимо перезагрузить телефон, нажать кнопку setup (настройка) до того, как телефон начнет процесс загрузки, и задать адрес FTP-сервера в небольшом меню загрузки, предлагаемом этим типом телефонов.
Протокол, используемый для загрузки
Телефоны Polycom могут загружать свою конфигурацию по одному из трех протоколов: TFTP, HTTP и FTP.
Сразу же хотим попросить избегать TFTP. Он не обеспечивает необходимой безопасности, и телефон не может использовать информацию о дате для определения того, какие версии файлов являются самыми последними. Этот протокол работает, но есть лучшие способы, и мы здесь не собираемся обсуждать TFTP.
Телефоны Polycom могут извлекать свои данные конфигурации и с помощью HTTP, но он не получил широкого распространения, и мы также не собираемся останавливаться на нем.
В настоящее время FTP является предпочтительным методом получения телефонами Polycom своей конфигурации. Он прекрасно работает, его довольно просто конфигурировать, и он получил хорошую поддержку сообщества.
FTP
В настоящее время FTP – наш любимый способ конфигурации телефонов Polycom. В системе CentOS при выполнении следующей команды будет установлен VSFTPD, Very Secure FTP Daemon:
# 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
# passwd PlcmSpIp
Задаем пароль PlcmSpIp (стандартный пароль FTP для аппаратов Polycom). Его можно изменить, но после этого придется вручную настраивать каждый аппарат, чтобы сообщить ему его нестандартные учетные данные[65]65
Можно придумывать для телефонов невероятно сложные пароли, которые невозможно угадать, но, если вы не собираетесь вводить их в каждый телефон вручную, их имя пользователя и пароль на FTP-сервере придется передавать с DHCP-сервера. Любое устройство, которое может регистрироваться в сети телефонной связи, способно получать информацию с DHCP-серве– ра. Мы не предлагаем игнорировать безопасность, просто не думайте, что создание индивидуального пароля для каждого телефона улучшит ее.
[Закрыть].
Для большей безопасности убедимся, что FTP-сервер хранит эту учетную запись в «темнице» chroot:
# echo PlcmSpIp >> /etc/vsftpd/vsftpd.chroot_list Вот примерно то, что должно быть сделано, чтобы подготовить операционную систему к предоставлению необходимых сервисов телефонам.
Конфигурационные файлы Polycom
Хотя кажется, что разных файлов, которые необходимы для подготовки к работе телефона Polycom, так много, разобраться с ними довольно просто.
bootROM. Лучше всего охарактеризовать этот файл как BIOS и операционную систему телефона. Вероятно, можно дать и более формальное определение, но зачем усложнять? bootROM не нужно регулярно обновлять, но лучше отслеживать выпускаемые версии на тот случай, если в более новом bootROM появятся полезные в вашей среде возможности. Этот файл будет называться bootrom.ld.
Образ приложения. Поскольку телефоны Polycom могут поддерживать другие протоколы VoIP (например, поддерживается MGCP (Media Gateway Control Protocol – протокол контроля медиа-шлюзов)), протокол, который будет использовать данный телефон, является частью образа приложения, загружаемого и выполняемого телефоном. Если в телефоне уже имеется соответствующий образ, этот файл на FTP-сер– вере фактически не нужен; однако обычно он доступен, чтобы обеспечить телефонам возможность получить последнюю версию протокола. К вам могут попасть телефоны, использующие не последнюю версию, поэтому наличие образа с текущей версией протокола гарантирует, что все телефоны будут отвечать самым последним требованиям. Файл sip.cfg file. Обычно в системе имеется только одна версия этого файла, но ему может быть присвоено любое имя, поэтому его версий может быть столько, сколько потребуется. Например, если в организации в ходу два языка, некоторые пользователи могут предпочесть использовать в своих телефонах французский, другие – английский. В этом случае для каждого варианта пришлось бы создать два файла: french.sip.conf и english.sip.conf. Этот файл можно назвать как угодно, но лучше выбирать имя, имеющее смысл, чтобы в будущем администраторы могли понять, почему были приняты именно такие проектные решения.
Основной конфигурационный файл для каждого телефона. Это очень простой и небольшой файл. Его имя соответствует MAC-адресу телефона (то есть у каждого телефона должна быть собственная копия этого файла). Из этого файла телефон получает информацию о том, какие еще файлы необходимо загрузить, чтобы выполнить свою конфигурацию. Этот конфигурационный файл все телефоны читают первым. В нем находится ссылка на образ приложения, который будет использовать данный телефон (в настоящее время названный sip.ld), а также имена XML-файлов, содержащих параметры для этого телефона (файлы .cfg). Основной конфигурационный файл телефона может выглядеть так:
'' ''
'.cfg for each phone.–>' '' ^APPLICATION APP_FILE_PATH="sip.ld" CONFIG_FILES="phone1.cfg, sip.cfg" MISC_FILES="" LOG_FILE_DIRECTORY="" OVERRIDES_DIRECTORY="" CONTACTS_DIRECTORY="" />'
Обратите внимание на имя файла приложения, которое должен будет использовать данный телефон, и конфигурационные файлы, которые он будет пытаться найти и применить.
Специальный конфигурационный файл телефона. Мы рекомендуем присваивать файлам phone1.cfg имена, имеющие смысл. Например, SET
Сбои. Настройки, заданные непосредственно в телефоне, будут храниться в файловой системе телефона и могут иметь приоритет перед параметрами конфигурационных файлов. Если возникают проблемы с внесением изменений в телефон, попытайтесь переформатировать его. Это заставит его принять параметры, содержащиеся в конфигурационных файлах.
Телефон Cisco 7960
Почтенный старец C7960 – сейчас уже часть истории VoIP. Это один из первых SIP-телефонов, к которому действительно можно было относиться серьезно. Единственное, на что можно пожаловаться, – его цена. Это «Cadillac» среди SIP-телефонов (в том смысле, что у них есть всякие прибамбасы, но это не оправдывает их цены и иногда они немного старомодны).
Если вы можете достать один из них, вы получите превосходный SIP– телефон. Если покупаете новый, будьте готовы выложить кругленькую сумму.
Один из аспектов несоответствия этого телефона духу времени – возможность удаленной подготовки к работе только посредством TFTP. TFTP потерял доверие сетевых специалистов из-за отсутствия поддержки аутентификации и шифрования, но поскольку это единственный способ удаленно настроить данный телефон, нам придется использовать демон tftp-сервера. Установить tftp-сервер можно с помощью следующей команды:
# yum install -y tftp-server После установки TFTP-сервер необходимо активировать. Для этого в файле /etc/xinetd.d/tftp строку disable=yes меняем на disable=no.
service tftp {
| socket_type | = dgram |
| protocol | = udp |
| wait | = yes |
| user | = root |
| server | = /usr/sbin/in.tftpd |
| server_args | = -s /tftpboot |
| disable | = no |
| per_source | = 11 |
| cps | = 100 2 |
| flags | = IPv4 |
Затем запускаем TFTP-сервер, выполнив команду
# service xinetd restart
Проверить, выполняется ли сервер, можно с помощью следующей команды:
# chkconfig –list | grep tftp
tftp: on

Поскольку возвращено tftp: on, сервер активирован и выполняется.
Телефоны Cisco по умолчанию загружаются с собственным протоколом связи, SCCP (или Skinny). Мы покажем, как конфигурировать телефон, но из-за узкоспециализированности " Cisco и ее телефонов вам понадобится получить встроенные программы SIP у своего провайдера услуг связи. Также для Asterisk существует две реализации: модули chan_sccp и chan_ skinny, – но их рассмотрение выходит за рамки данной книги.
Мы зарегистрируем наш телефон Cisco как SIP-клиента для станции, которую мы сконфигурировали в разделе «Конфигурация оборудования Zaptel». Следующий конфигурационный файл следует сохранить под именем SIP
# Конфигурация линии 1 line1_name: "1000" line1_authname: "1000" line1_shortname: "Jimmy Carter" line1_password: "" line1_displayname: ""
# Имя телефона, которое отображается в верхнем правом углу дисплея телефона phone_label: "aristotle" ; Не оказывает влияния на обмен сообщениями по протоколу SIP
# Пароль, используемый для доступа к телефону через консоль или по протоколу telnet, не более 31 символа
phone_password: "cisco"
Затем в файле SIPDefault.cnf, также находящемся в папке /tftpboot/ сервера, задаем адрес для регистрации. proxy1_address (адрес прокси1) будет содержать IP-адрес вашего сервера Asterisk, на котором телефон должен зарегистрироваться для линии 1. Параметр image_version (версия образа) указывает версию файлов .loads и .sb2, загружаемую телефоном в память.
image_version: P0S3-08-4-00 proxy1_address: 192.168.1.100
Нам нужен один дополнительный файл, OS79XX.TXT. В нем есть лишь одна строка – версия файлов .bin и .sbn, которая должна быть загружена в память:
P003-08-4-00
Чтобы наш Cisco 7960 использовал эти файлы, мы должны указать ему, откуда он может взять свою конфигурацию. Если используется DHCP-сервер вашего Linux-сервера, сделать это можно, добавив в файл /etc/dhcpd.conf строку
option tftp-server-name "192.168.1.100"; которая содержит IP-адрес сервера, являющегося хостом для TFTP– сервера (предполагается, конечно, что TFTP-сервер сконфигурирован по этому адресу. Этот адрес использовался для нашего Asterisk-серве– ра, и опять мы предполагаем, что TFTP-сервер установлен на одном сервере с Asterisk). Подробнее о конфигурации DHCP-сервера рассказывалось в разделе «DHCP-сервер»: 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 tftp-server-name "192.168.1.100"; 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;
}
В качестве альтернативы можно выполнить настройку с само-Лу го телефона и вручную задать использование альтернативно-I I I' я
" * го, а не предоставляемого DHCP-сервером, TFTP-сервера. Для этого нажмите кнопку settings (настройки) (на моделях G телефонов Cisco она выглядит как квадратик с галочкой внутри; G означает Global). Затем понадобится разблокировать настройки, нажав кнопку 9. Пароль по умолчанию – cisco. Как только телефон будет разблокирован, нажмите кнопку 3 номеронабирателя, чтобы войти в раздел Network Configuration (Настройки сети). С помощью прокрутки перейдите вниз к опции 32, Alternate TFTP (Альтернативный TFTP), и задайте для нее значение YES. Затем поднимитесь к опции 7 и введите IP-адрес TFTP-сервера, с которого вы хотите загружаться. Подтвердите настройки и выйдите из меню, пока телефон перезагружается. Также, используя комбинацию кнопок *+6+settings, можно перезагружать телефон в любое время.
Понаблюдать за тем, как телефон извлекает конфигурацию с TFTP– сервера, можно с помощью команды tshark (yum install ethereal). Задайте фильтрацию по порту 69 следующим образом: # tshark port 69
Это позволит просматривать сетевой трафик телефона, запрашивающего данные с TFTP-сервера.
Если все пройдет успешно, вы увидите, что ваш телефон зарегистрировался в Asterisk!
Linksys SPA-942
С момента приобретения Sipura Technologies компания Linksys выпускает недорогие VoIP-телефоны и аналоговые терминальные адаптеры (ATA). Linksys многое позаимствовала у Cisco. Почитайте книгу Клейтона М. Кристенсена (Clayton M. Christensen) «The Innovator's Dilemma» (издательство HarperCollins), и стратегия Cisco относительно Linksys станет для вас яснее.
Продукты Linksys (и Sipura) снискали славу за свое превосходное качество, особенно с учетом цены, но они известны также тем, что их ужасно сложно настраивать.
Это, главным образом, объясняется тем, что их GUI конфигурации предлагает сотни настраиваемых параметров.
Но нас это не волнует. Вот то, что необходимо знать, чтобы настроить SPA-942 (и, надеемся, большинство VoIP-устройств Linksys) для работы с системой Asterisk.
Как выполнить вход в телефон
Прежде всего необходимо получить IP-адрес телефона, чтобы можно было войти в его GUI. На самом телефоне найдите кнопку со значком,

Рис. 4.4. Клавиатура SPA-942
который выглядит как листок бумаги с загнутым углом (сразу под кнопкой с конвертом). Это кнопка Settings (Настройки) – рис. 4.4.
Чтобы получить IP-адрес телефона, нажмите кнопку Settings (Настройки), а затем – кнопку 9 (или используйте кнопку со стрелками и с помощью прокрутки перейдите к пункту Network (Сеть)). После этого нажмите кнопку select (выбрать) (под жидкокристаллическим дисплеем располагается ряд из 4 кнопок, select – крайняя слева). Во втором поле должен быть указан IP-адрес телефона.
Теперь откройте броузер, введите IP-адрес в адресную строку, нажмите кнопку Enter (Ввод) – и вы увидите окно Info (Информация) телефона.
Регистрация телефона в Asterisk
В верхнем правом углу экрана выберите ссылку Admin Login (Вход под учетной записью администратора). При этом появится несколько новых вкладок, таких как Regional (Региональные), Phone (Телефон), Ext 1, Ext 2 и User (Пользователь).
Выберите вкладку Ext 1, с помощью которой мы выполним настройку первой линии. Выберите в меню следующие опции:
# General ^ Line Enable ^ yes (Общие ^ Линия доступна ^ да).
# NAT Settings ^ NAT Mapping Enable ^ no (Настройки NAT ^ Отображение NAT доступно ^ нет).
# NAT Settings ^ NAT Keep Alive Enable ^ no (Настройки NAT ^ Поддержка NAT доступна ^ нет).
# Proxy and Registration ^ Proxy ^ [Введите IP-адрес Asterisk (например, 192.168.1.100)] (Прокси и регистрация ^ Прокси ^ [Введите IP-адрес Asterisk]).
# Proxy and Registration ^ Register ^ yes (Прокси и регистрация ^ Регистрация ^ да).
# Proxy and Registration ^ Make Call Without Reg ^ no (Прокси и регистрация ^ Звонить без регистрации ^ нет).
# Proxy and Registration ^ Ans Call Without Reg ^ no (Прокси и регистрация ^ Отвечать на звонок без регистрации ^ нет).
# Subscriber Information ^ Display Name ^ Caller ID information (Информация об абоненте ^ Отображать имя ^ Информация об ID звонящего).
# Subscriber Information ^ User ID ^ 1000 (Информация об абоненте ^ ID пользователя ^ 1000).
# Subscriber Information ^ Password ^ [Оставьте незаполненным, если используете простую конфигурацию, описанную ранее в этой главе] (Информация об абоненте ^ Пароль ^ [Оставьте незаполненным, если используете простую конфигурацию, описанную ранее в этой главе]).
# Subscriber Information ^ Use Auth ID ^ yes (Информация об абоненте ^ Использовать ID авторизации ^ да).
# Subscriber Information ^ Auth ID ^ 1000 (Информация об абоненте ^ ID авторизации ^ 1000).
# Audio Configuration ^ Preferred Codec ^ G711u (Конфигурация аудио ^ Предпочтительный кодек ^ G711u).
# Audio Configuration ^ Use Pref Codec Only ^ no (Конфигурация аудио ^ Использовать только предпочтительный кодек ^ нет).
# Audio Configuration ^ Silence Supp Enable ^ no (Конфигурация аудио ^ Поддержка тишины доступна ^ нет).
# Audio Configuration ^ DTMF Tx Method ^ Auto (Конфигурация аудио ^ Метод DTMF Tx ^ Автоматически).
# Подтвердите все изменения
И это все! Теперь ваш телефон должен быть зарегистрирован в Asterisk. Вы узнаете об этом по кнопке-индикатору, расположенному рядом с жидкокристаллическим дисплеем, – он изменит цвет с оранжевого на зеленый.
Конфигурация диалплана для выполнения тестирования
Чтобы ваш телефон мог звонить на другие телефоны (или, для многоканального телефона, звонить самому себе), необходимо внести изменения в файл extensions.conf. Взяв за основу то, что было сделано в разделе «Настройка диалплана для выполнения тестовых вызовов», добавим следующие строки в контекст [internal]: exten => 1000,1,Verbose(1|Extension 1000) exten => 1000,n,Dial(SIP/1000,30) exten => 1000,n,Hangup()
Если имеется два телефона или сконфигурировано несколько линий, можно продублировать предыдущие настройки, заменив 1000 на другой добавочный номер.








