Cisco ip phone 7931 инструкция на русском

Скачать

Страница из 76

Штаб-квартира корпорации

Cisco Systems, Inc.

170 West Tasman Drive

San Jose, CA 95134-1706

USA

http://www.cisco.com

Тел.: +1 408 526-4000

+1 800 553-NETS (6387)

Факс: +1 408 526-4100

IP-телефон Cisco 7961G/7961G-GE 
и 7941G/7941G-GE для 
Cisco CallManager 4.1(3)

СОДЕРЖИТ ЛИЦЕНЗИЮ И ГАРАНТИЮ

Руководство по 

эксплуатации телефона

Руководство по эксплуатации телефона

Содержание

  1. Настройка телефона Cisco серии 79XX для работы с Asterisk
  2. Используется:
  3. Настройка
  4. Что не вошло в статью
  5. Subnets.ru blog
  6. Перепрошивка и настройка VoIP телефона Cisco 7931G

Настройка телефона Cisco серии 79XX для работы с Asterisk

В статье будут описаны нюансы настройки IP-телефона Cisco на примере цискофона 7942G.
Итак, если вы присматриваетесь к VoIP-устройствам Cisco серии 79XX, то добро пожаловать под кат.

Используется:

Cisco VoIP Phone 7942G
Asterisk 1.4.39
TFTP-server-0.49
Внимание! Инструкция подходит не для всех телефонов Cisco 79XX. См. здесь

Настройка

Комбинации клавиш в Cisco

**#** — перезагрузка телефона (через меню)
**# — разблокировка настроек (также через меню). Разблокировка нужна, например, для того чтобы поставить настройки DHCP-клиента

Смена прошивки

Итак, сначала нужно разыскать нужную прошивку для работы по SIP, т.к. по умолчанию используется версия с SCCP. Для этого есть гугл или торренты.

Далее заходим на известный всем сайт voip-info.org. По ссылке выложена информация о прошивке. Т.к. у меня версия астериска 1.4 (которая не умеет работать по tcp), то советуют брать версию 8.5.4. По этой ссылке есть много и другой полезной информации.
Таким образом, нам нужен файл cmterm-7942_7962-sip.8-5-4.zip. Все файлы которые там есть нужно вывалить в корень тфтп-сервера.

Русская локаль

Еще бы нам не помешала русская локаль. Ну т.е. чтобы все надписи на экране были на русском языке.
Я её брал из файла po-locale-ru_RU-8.4.3.1000-1.exe (тоже можно найти в интернете). Тут есть одна хитрость — при запуске программы она вываливает ошибку и потом закрывается. Но нам ведь всего лишь нужны файлы локали, установить мы их можем и сами.
Поэтому после запуска идем в папку %TEMP% (советую предварительно её очистить) и смотрим что там программа вывалит.
Там в числе прочего будет папка Russian_Russian_Federation. Вот её нам и нужно будет поместить в корень tftp-сервера.
Версия локали будет как раз 8.4.3.1000-1.

Файл кофигурации цискофона

Теперь перейдем непосредственно к файлу конфигурации. Цискофон загружает его исключительно с tftp-сервера. Сначала кажется неудобно, с другой стороны, нужно настроить всего один раз, а затем можно эти телефоны хоть штабелями закупать — настройка их будет аналогичной и займет минимум времени. Кроме того, этим Cisco обезопасил телефон от «шаловливых ручек» пользователей. Через меню сделать практически ничего нельзя.
Файл должен называться SEP .cnf.xml.
Мак-адрес записан на тыльной стороне устройства.
Определим некоторые значения:
$ASTERISK — ай-пи нашего астериска
$SERVICESURL — полный путь до скрипта, который генерирует адресную книгу (например, 192.168.0.22/asterisk/directory.php)
$ACCOUNT — пользователь/номер нашего аккаунта на астериске. Если у вас нет соответствия номер пользователь, то конфиг нужно будет соответствующим образом поменять.
$ACCOUNT_PASS — пароль от SIP-аккаунта

Теперь будем комментировать.

Все часовые пояса можно найти, например, здесь.

Следующие настройки нужны для настройки локали:

Конфигурация sip.conf астериска

Самое интересное здесь — call-limit=2. Суть в том, что можно будет получать 1 или 2 звонка (3 звонок уже на циску не пойдет — зачем её напрягать?), их можно обрабатывать на телефоне, переключаясь между ними. Больше чем 2 звонка в этом аппарате не поддерживается (возможно будет поддерживаться в новых прошивках), хотя обрабатывать 3 звонка уже достаточно накладно.

Настройка диалплана цискофона

Циско настолько умная, что может использовать свой собственный диалплан. Но тут есть обратная сторона медали. Если этот диалплан не указать, то исходящие звонки вообще ходить не будут. Точней будут, но только на номера от 0 до 9 =).

В этом конфиге мы по сути передаем всю ответственность на астериск — т.е. просто после 3-х секунд передаем номер. Более изящные номерные планы можно найти на voip-info.org.

Адресная книга абонентов

У нас есть LDAP (в связке с samba), в нем есть информация о телефонах пользователей. Так почему бы этим не воспользоваться?
Сервер LDAP, filter поиска нужно будет поменять на свои настройки.
directory.php:

Обновление. Заметьте, что на странице только 32 контакта. Почему так? Не знаю, чем это объяснить, но так реализовано в прошивке — больше чем 32 контакта не поддерживается. Впрочем, это не беда, т.к. можно реализовать при помощи софткеев механизм отображения пред. и след. страниц.

Делаем настройки для логотипа

Для начала по логам tftp смотрим куда cisco обращается за картинкой. Происходит это в момент выбора фонового изображения
через меню телефона (как разблокировать меню написано выше).
изображения из меню
/tftpboot/Desktops/320x196x4/List.xml:

Нам нужно создать одну картинку 320×196 и одну картинку в 4 раза меньше (80×49).
Logo-TN.png — эскиз.
Logo.png — полноценная картинка.
Изменять логотип нужно через меню телефона.

Что не вошло в статью

— Настройка сигналов вызовов. Да, это тоже можно делать. Другое дело — зачем? Если для вас оно имеет смысл — то дерзайте.
— Настройка directories. Есть возможность, например, читать RSS с телефона и вообще добавлять различные контент-каталоги.

Источник

Subnets.ru blog

Сети, настройка оборудования, сетевые сервисы.

Быстрый переход: Главная блога Главная сайта Форум
Если Вы чего то недопоняли или не нашли — задайте
вопрос на нашем форуме и мы попробуем Вам помочь.
Subnets.ru Регистрация IP и Автономных систем mega-net.ru

Перепрошивка и настройка VoIP телефона Cisco 7931G

Возникла необходимость настроить телефон Cisco Unified IP Phone 7931G для работы по протоколу SIP и подключению его к серверу с Asterisk.

Ранее я не имела опыта по настройке данных аппаратов и пришлось разбираться с нуля.

Итак у нас имеется аппарат, который штатно работает по протоколу SCCP (Skinny Client Control Protocol, проприетарный протокол Cisco).
Первостепенная задача — перепрошить телефон SIP прошивкой, взятой с официального сайта.

На сайте есть прошивка версии 9+ и я сначала поставила ее, но возникли проблемы с конфигом. Примеров конфигурационного файла для 9ой версии в Инете не нашлось и телефон отказывался работать (даже с сокращенным до минимума конфигом для прошивок версии 8) я решила откатиться до версии 8.5(3)SR1 как самой популярной по мануалам из разных источников.

Для настройки телефона нам понадобится:

В моем случае — все делалось на рабочей станции под OS FreeBSD.
IP-адрес машины для внутренней сети — 10.20.1.1/24
Если вдруг Ваш телефон не настроен на DHCP, то это можно изменить через меню телефона. Надо разблокировать возможность менять настройки комбинацией клавиш **#, и, покопавшись в не сильно просторном меню, выставить искомый параметр.

Для запуска tftp требуется расскоментировать (или добавить) строчку в /etc/inetd.conf
tftp dgram udp wait root /usr/libexec/tftpd tftpd -s /tftpboot

Создать директорию в корне (если она отсутствует):
#mkdir /tftpboot

Установить права доступа на эту директорию:
#chown -R nobody:nogroup /tftpboot

Далее запустить
#/etc/rc.d/inetd onestart

Для автозапуска, после перезагрузки системы, добавить в /etc/rc.conf:
inetd_enable=”YES”

Проверяем, запустился ли демон inetd:
#sockstat | grep :69
root inetd 1094 5 udp4 *:69 *:*

Настраиваем DHCP. Установила из портов сервер isc-dhcp42-server:
#cd /usr/ports/net/isc-dhcp42-server/
#make install clean

Далее правим конфиг DHCP и добавляем DHCP Option 66 и Option 150:
#ee /usr/local/etc/dhcpd.conf

Cisco Systems использует нестандартную опцию в DHCP – option 150 (проприетарная опция) для настройки своих аппаратов. Опция 66 — ее аналог.

Тоже самое можно сделать и на микротике, для этого в настройки DHCP сервера нужно добавить:
/ip dhcp-server option
add code=66 name=tftp66 value=»‘IP tftp‘»
add code=150 name=tftp150 value=»‘IP tftp’”

Где IP tftp это IP-адрес нашего TFTP сервера. Пишем его в одинарных кавычках, если добавлять через винбокс, а если через консоль, то в одинарных, а потом в двойных.

/ip dhcp-server network
add address=Network/mask dhcp-option=tftp66,tftp150 dns-server=DNS1,DNS2 gateway=IP-router netmask=24

В папку /tftpboot выкладываем файлы из скаченного архива с прошивкой.
Список файлов:

  • SIP31.8-5-3SR1S.loads
  • apps31.8-5-3ES4.sbn
  • cnu31.8-5-3ES4.sbn
  • cvm31sip.8-5-3ES4.sbn
  • dsp31.8-5-3ES4.sbn
  • jar31sip.8-5-3ES4.sbn
  • term31.default.loads

На этом приготовления окончены и мы приступаем к самому процессу.

Необходимо удалить с телефона старую прошивку. Для этого:

  • отключаем телефон от питания
  • включаем держа клавишу # до тех пор пока программируемые кнопки не начнут мигать по очереди оранжевым светом
  • отпускаем кнопку и вводим на телефоне код: 3491672850*#

Телефон должен начать мигать кнопками, красным цветом. Это значит процесс стирания старой прошивки пошел. Затем телефон выключается и визуально не видно, делает ли он что-либо. Следует спокойно подождать 3-5 минут.

А пока я смотрела в tcpdump трафика на интерфейсе в сторону телефона и логи tftp-сервера, чтобы убедиться что есть обращения от телефона к DHCP и получения файлов по TFTP.

Итак телефон прошился новой прошивкой и загружается. Для его дальнейшей работы в /tftpboot нам требуется создать конфигурационный файл телефона в формате XML, который должен иметь название вида: SEP000000000000.cnf.xml
Где 000000000000 – МАС-адрес телефона, который написан на нем на наклейке сзади.

Содержимое конфигурационного файла (наиболее интересные строки, на которые стоит обратить внимание, выделены синим):

Следует отметить, что если телефон не принимает конфигурационный файл, например из-за наличия ошибок в нем, то он будет отображать на экране состояние «Unprovisioned» и каждые 30 секунд обращаться к tftp-серверу, пытаясь вновь скачать конфигурационный файл (вдруг, на этот раз он не будет содержать ошибок). Эти попытки прекрасно видны по tcpdump`у и в логах TFTP.
Для проверки корректности XML синтаксиса конфигурационного файла мне дали хороший совет: просто открыть файл конфига браузером. Лично мне это помогло, помогло осознать почему конфиг не принимается, а так же браузер точно указал в каком именно месте ошибка синтаксиса.

Пробежимся по настройкам:
dateTemplate — формат День — Месяц — Год.
timeZone — Временные зоны, например, перечислены тут
loadInformation — Версия прошивки, которую брать. Должно совпадать с названием файла .loads
phoneLabel — в правом верхнем углу будет висеть этот лейбл. Не длинее 12 символов.
preferredCodec — голосовой кодек, который будет использовать телефон

webAccess — Включение WEB-сервера на телефона. Обратите внимание, что для включение веб-интерфейса необходимо установить значение параметра в ноль.
sshAccess — Тоже самое касается ssh доступа на устройство.

Причем основная часть инструкций считает достаточным ввести 2 строки с UserID и Password для работы сервиса ssh, некоторые источники указывают еще верхние 2, и поясняют их актуальность только для версий прошивки старше 8.5.1. У меня не получилось подключиться по ssh ни в одном из найденных мной версий написания этих параметров.

Настройки сети:
registerWithProxy — для регистрации SIP линий
natEnable — ставим «true» если телефон находится за NAT
Если natEnable в «true», то телефону необходимо знать внешний IP-адрес NAT`а. Для этого есть две опции:

  • natReceivedProcessing — внешний IP-адрес будет автоматически браться из поля VIA (received=XXX.XXX.XXX.XXX) SIP-пакета 200 ОК полученный от сервера в ответ на пакет REGISTER от телефона, вместо поля Contact
  • natAddress — явное указание внешнего IP адрес NAT`a

При работе за NAT`ом выбрала установку natReceivedProcessing, а natAddress оставила пустым:

Указание диапазона RTP портов:

voipControlPort — если значение пустое, то по умолчанию порт 5060. Обратите внимание, что в зависимости от значения параметра natEnabled поведение разное.
Если natEnabled «false», то этот порт используется в кач-ве SRC порта для отправки SIP пакетов. Если natEnabled «true», то телефон будет отправлять пакеты с непривилегированных портов, а на этом порту будет ожидать ОТВЕТЫ от SIP-сервера.
Таким образом, при установке телефона за NAT и без дополнительной настройки шлюза (проброс порта) он работать не будет.
Изыскания на эту тему написаны в топике «Cisco 7931g SIP» на forum.asterisk.ru:

После чего телефон утверждает udp port 49287 unreachable:

Снова попробовал через NAT и наконец разобрался.
Могу сказать, что в предыдущий раз, это я ОЛЕНЬ (правда не пойму как так получилось), но судя по дампу, и наличию «rport» в конце строки VIA на которую я не обратил внимания, в пире в этот момент точно стояло nat=yes, а не nat=no.

Установил nat=no на стороне Asterisk, в конфиге телефона:

И… и это не взлетело, но на этот раз причина ясна:

  • 1.1.68.16 — Asterisk
  • 1.1.68.72 — IPшник NAT`а
  • 10.10.1.153 — IPшник телефона

Прохождение пакета REGISTER от телефона: 10.10.1.153.49845 > 1.1.68.72.49845 > 1.1.68.16.5060 (поле Contact: )
Прохождение ответного пакета 401 Unauthorized: 1.1.68.16.5060 > 1.1.68.72.5061
Пакет доезжает до 1.1.68.72, но не проходит к 10.10.1.153 т.к. в таблице NAT трансляций отсутствует запись о 10.10.1.153:5061, т.к. изначальный пакет 10.10.1.153.49845, посему пакет просто отбрасывается.

Соответственно становится логично, что если сделать проброс порта 5061 с внешнего 1.1.68.72 на 10.10.1.153, то все конечно же заработает.
Делаем проброс 5061 и ч.т.д.

Дамп на стороне Asterisk`а:

7896/7896 1.1.68.72 D 5061 Unmonitored

Reg. Contact : sip:7896@1.1.68.72:5061;transport=udp

Дамп на стороне NAT`а (после процесса NAT):

SIP линии:
featureID — про этот параметр ниже
proxy- IP-адрес нашего сервера c Asterisk
port — SIP порт
name — Имя или номер SIP аккаунта
displayName — Отображаемое имя, соответственно указываем или имя или номер.
authName — имя вашего аккаунта для авторизации на сервере, обычно это ваш номер
authPassword — пароль вашего SIP аккаунта
contact — номер SIP аккаунта

Линия с Speed Dial
SD (Speed Dial — набор номера по нажатии кнопки) на программируемых кнопках (коих 24 штуки).
Хотелось настроить еще и BLF, но это оказалось все непросто с этим на этом телефоне. Идея была отодвинута (отлично гуглятся решения, вроде работы телефона с Cisco Call Manager), т.к. необходимо пропатчить Астериск, а именно chan_sip.
Кнопки линий пронумерованы от 24 до 1 сверху вниз, чередуясь слева вправо. Соответвенно, 1 линия находится в правом нижнем углу.

featureLabel- выводимое описание
speedDialNumber — номер для набора

featureID — код фичи, то что будет делаться по нажатию кнопки:

  • feature id 1 last number redial
  • feature id 2 speed dial
  • feature id 3 hold
  • feature id 5 fwd all
  • feature id 9 line — Для SIP регистрации
  • feature id 19 private
  • feature id 20 service uri
  • featureid 21 speed dial — Для набора сохраненного номера
  • feature id 22 paging
  • feature id 27 Malicious call ID

Источник

Скачать файл PDF «Cisco Systems 7931G Инструкция по эксплуатации» (4.83 Mb)

Популярность:

1447 просмотры

Подсчет страниц:

20 страницы

Тип файла:

PDF

Размер файла:

4.83 Mb

Возникла необходимость настроить телефон Cisco Unified IP Phone 7931G для работы по протоколу SIP и подключению его к серверу с Asterisk.

Ранее я не имела опыта по настройке данных аппаратов и пришлось разбираться с нуля.

Итак у нас имеется аппарат, который штатно работает по протоколу SCCP (Skinny Client Control Protocol, проприетарный протокол Cisco).
Первостепенная задача — перепрошить телефон SIP прошивкой, взятой с официального сайта.

На сайте есть прошивка версии 9+ и я сначала поставила ее, но возникли проблемы с конфигом. Примеров конфигурационного файла для 9ой версии в Инете не нашлось и телефон отказывался работать (даже с сокращенным до минимума конфигом для прошивок версии 8) я решила откатиться до версии 8.5(3)SR1 как самой популярной по мануалам из разных источников.

Для настройки телефона нам понадобится:

  • DHCP сервер
  • tftp сервер

В моем случае — все делалось на рабочей станции под OS FreeBSD.
IP-адрес машины для внутренней сети — 10.20.1.1/24
Если вдруг Ваш телефон не настроен на DHCP, то это можно изменить через меню телефона. Надо разблокировать возможность менять настройки комбинацией клавиш **#, и, покопавшись в не сильно просторном меню, выставить искомый параметр.

Для запуска tftp требуется расскоментировать (или добавить) строчку в /etc/inetd.conf
tftp dgram udp wait root /usr/libexec/tftpd tftpd -s /tftpboot

Создать директорию в корне (если она отсутствует):
#mkdir /tftpboot

Установить права доступа на эту директорию:
#chown -R nobody:nogroup /tftpboot

Далее запустить
#/etc/rc.d/inetd onestart

Для автозапуска, после перезагрузки системы, добавить в /etc/rc.conf:
inetd_enable=”YES”

Проверяем, запустился ли демон inetd:
#sockstat | grep :69
root inetd 1094 5 udp4 *:69 *:*

Настраиваем DHCP. Установила из портов сервер isc-dhcp42-server:
#cd /usr/ports/net/isc-dhcp42-server/
#make install clean

Далее правим конфиг DHCP и добавляем DHCP Option 66 и Option 150:
#ee /usr/local/etc/dhcpd.conf

option voip-tftp-server code 150 = { ip-address };
subnet 10.20.1.0 netmask 255.255.255.0 {
      ...skiped...
      option tftp-server-name "10.20.1.1";
      option voip-tftp-server "10.20.1.1";
      ...skiped...
}

Cisco Systems использует нестандартную опцию в DHCP – option 150 (проприетарная опция) для настройки своих аппаратов. Опция 66 — ее аналог.

Тоже самое можно сделать и на микротике, для этого в настройки DHCP сервера нужно добавить:
/ip dhcp-server option
add code=66 name=tftp66 value=»‘IP tftp‘»
add code=150 name=tftp150 value=»‘IP tftp’”

Где IP tftp это IP-адрес нашего TFTP сервера. Пишем его в одинарных кавычках, если добавлять через винбокс, а если через консоль, то в одинарных, а потом в двойных.

/ip dhcp-server network
add address=Network/mask dhcp-option=tftp66,tftp150 dns-server=DNS1,DNS2 gateway=IP-router netmask=24

В папку /tftpboot выкладываем файлы из скаченного архива с прошивкой.
Список файлов:

  • SIP31.8-5-3SR1S.loads
  • apps31.8-5-3ES4.sbn
  • cnu31.8-5-3ES4.sbn
  • cvm31sip.8-5-3ES4.sbn
  • dsp31.8-5-3ES4.sbn
  • jar31sip.8-5-3ES4.sbn
  • term31.default.loads

На этом приготовления окончены и мы приступаем к самому процессу.

Необходимо удалить с телефона старую прошивку. Для этого:

  • отключаем телефон от питания
  • включаем держа клавишу # до тех пор пока программируемые кнопки не начнут мигать по очереди оранжевым светом
  • отпускаем кнопку и вводим на телефоне код: 3491672850*#

Телефон должен начать мигать кнопками, красным цветом. Это значит процесс стирания старой прошивки пошел. Затем телефон выключается и визуально не видно, делает ли он что-либо. Следует спокойно подождать 3-5 минут.

А пока я смотрела в tcpdump трафика на интерфейсе в сторону телефона и логи tftp-сервера,  чтобы убедиться что есть обращения от телефона к DHCP и получения файлов по TFTP.

Итак телефон прошился новой прошивкой и загружается. Для его дальнейшей работы в /tftpboot нам требуется создать конфигурационный файл телефона в формате XML, который должен иметь название вида: SEP000000000000.cnf.xml
Где 000000000000 – МАС-адрес телефона, который написан на нем на наклейке сзади.

Содержимое конфигурационного файла (наиболее интересные строки, на которые стоит обратить внимание, выделены синим):

<device>
<fullConfig>true</fullConfig>
 <deviceProtocol>SIP</deviceProtocol>
 <sshAccess>0</sshAccess>
 <sshPort>22</sshPort>
 <sshUserId>cisco</sshUserId>
 <sshPassword>cisco</sshPassword>
 <devicePool>

<dateTimeSetting>
 <dateTemplate>D.M.Y</dateTemplate>
 <timeZone>Russian Standard/Daylight Time</timeZone>
 <ntps>
 <ntp>
 <name>IP-address-ntp</name>
 <ntpMode>Unicast</ntpMode>
 </ntp>
 </ntps>
</dateTimeSetting>

<callManagerGroup>
 <tftpDefault>true</tftpDefault>
 <members>
 <member priority="0">
 <callManager>
 <name></name>
 <description></description>
 <ports>
 <ethernetPhonePort>2000</ethernetPhonePort>
 <sipPort>5060</sipPort>
 <securedSipPort>5061</securedSipPort>
 </ports>
<processNodeName>DNS-name-or-IP-address-Asterisk-server</processNodeName>
 </callManager>
 </member>
 </members>
 </callManagerGroup>
 </devicePool>

<commonProfile>
 <phonePassword></phonePassword>
 <backgroundImageAccess>true</backgroundImageAccess>
 <callLogBlfEnabled>0</callLogBlfEnabled>
 </commonProfile>
 <loadInformation>SIP31.8-5-3SR1S</loadInformation>
  <loadInformation434 model="Cisco 7931">SIP31.8-5-3SR1S</loadInformation434>
 <vendorConfig>
 <disableSpeaker>false</disableSpeaker>
 <disableSpeakerAndHeadset>false</disableSpeakerAndHeadset>
 <pcPort>0</pcPort>
 <settingsAccess>1</settingsAccess>
 <garp>0</garp>
<voiceVlanAccess>0</voiceVlanAccess>
 <videoCapability>0</videoCapability>
 <autoSelectLineEnable>0</autoSelectLineEnable>
 <daysDisplayNotActive>1,7</daysDisplayNotActive>
 <displayOnTime>10:30</displayOnTime>
 <displayOnDuration>06:05</displayOnDuration>
 <displayIdleTimeout>00:05</displayIdleTimeout>
 <webAccess>0</webAccess>
 <spanToPCPort>1</spanToPCPort>
 <loggingDisplay>1</loggingDisplay>
 <loadServer></loadServer>
</vendorConfig>

<userLocale>
 <name>Russian_Federation</name>
 <uid></uid>
 <langCode>en_En</langCode>
 <version>SIP31.8-5-3SR1S</version>
  <winCharSet>utf-8</winCharSet>
 </userLocale>
 <networkLocale>Russian_Federation</networkLocale>
 <networkLocaleInfo>
 <name>Russian_Federation</name>
 <uid></uid>
 <version>SIP31.8-5-3SR41S</version>
 </networkLocaleInfo>

<deviceSecurityMode>1</deviceSecurityMode>
 <idleTimeout>0</idleTimeout>
 <directoryURL></directoryURL>
 <servicesURL></servicesURL>
 <idleURL></idleURL>
 <messagesURL></messagesURL>
 <proxyServerURL></proxyServerURL>
 <dscpForSCCPPhoneConfig>96</dscpForSCCPPhoneConfig>
 <dscpForSCCPPhoneServices>0</dscpForSCCPPhoneServices>
 <dscpForCm2Dvce>96</dscpForCm2Dvce>
 <transportLayerProtocol>2</transportLayerProtocol>
 <capfAuthMode>0</capfAuthMode>
 <capfList>
 <capf>
 <phonePort>3804</phonePort>
 </capf>
 </capfList>
 <certHash></certHash>
<encrConfig>false</encrConfig>
 <sipProfile>
 <sipProxies>
 <backupProxy></backupProxy>
 <backupProxyPort></backupProxyPort>
 <emergencyProxy></emergencyProxy>
 <emergencyProxyPort></emergencyProxyPort>
 <outboundProxy></outboundProxy>
  <outboundProxyPort></outboundProxyPort>
  <registerWithProxy>true</registerWithProxy>
 </sipProxies>
 <sipCallFeatures>
 <cnfJoinEnabled>true</cnfJoinEnabled>
 <callForwardURI>x--serviceuri-cfwdall</callForwardURI>
 <callPickupURI>x-cisco-serviceuri-pickup</callPickupURI>
 <callPickupListURI>x-cisco-serviceuri-opickup</callPickupListURI>
 <callPickupGroupURI>x-cisco-serviceuri-gpickup</callPickupGroupURI>
 <meetMeServiceURI>x-cisco-serviceuri-meetme</meetMeServiceURI>
 <abbreviatedDialURI>x-cisco-serviceuri-abbrdial</abbreviatedDialURI>
 <rfc2543Hold>false</rfc2543Hold>
<callHoldRingback>2</callHoldRingback>
 <localCfwdEnable>false</localCfwdEnable>
 <semiAttendedTransfer>false</semiAttendedTransfer>
 <anonymousCallBlock>2</anonymousCallBlock>
 <callerIdBlocking>2</callerIdBlocking>
 <dndControl>0</dndControl>
 <remoteCcEnable>true</remoteCcEnable>
 </sipCallFeatures>
 <sipStack>
 <sipInviteRetx>6</sipInviteRetx>
 <sipRetx>10</sipRetx>
 <timerInviteExpires>180</timerInviteExpires>
 <timerRegisterExpires>300</timerRegisterExpires>
 <timerRegisterDelta>5</timerRegisterDelta>
 <timerKeepAliveExpires>120</timerKeepAliveExpires>
 <timerSubscribeExpires>120</timerSubscribeExpires>
<timerSubscribeDelta>5</timerSubscribeDelta>
 <timerT1>500</timerT1>
 <timerT2>4000</timerT2>
 <maxRedirects>70</maxRedirects>
 <remotePartyID>false</remotePartyID>
 <userInfo>None</userInfo>
 </sipStack>

<autoAnswerTimer>1</autoAnswerTimer>
 <autoAnswerAltBehavior>false</autoAnswerAltBehavior>
 <autoAnswerOverride>true</autoAnswerOverride>
 <transferOnhookEnabled>false</transferOnhookEnabled>
 <enableVad>false</enableVad>
 <preferredCodec>g711alaw</preferredCodec>
 <dtmfAvtPayload>101</dtmfAvtPayload>
 <dtmfDbLevel>3</dtmfDbLevel>
 <dtmfOutofBand>avt</dtmfOutofBand>
 <alwaysUsePrimeLine>false</alwaysUsePrimeLine>
 <alwaysUsePrimeLineVoiceMail>false</alwaysUsePrimeLineVoiceMail>
 <kpml>3</kpml>
 <stutterMsgWaiting>1</stutterMsgWaiting>
<callStats>true</callStats>
 <silentPeriodBetweenCallWaitingBursts>10</silentPeriodBetweenCallWaitingBursts>
 <disableLocalSpeedDialConfig>true</disableLocalSpeedDialConfig>
 <startMediaPort>16100</startMediaPort>
 <stopMediaPort>19300</stopMediaPort>
 <voipControlPort>5061</voipControlPort>
 <dscpForAudio>184</dscpForAudio>
 <ringSettingBusyStationPolicy>0</ringSettingBusyStationPolicy>
 <dialTemplate></dialTemplate>
 <phoneLabel>301</phoneLabel>

<natReceivedProcessing>false</natReceivedProcessing>
<natEnabled>false</natEnabled>
<natAddress></natAddress>

<sipLines>
 <line button="1">
 <featureID>9</featureID>
<featureLabel>Number</featureLabel>
 <proxy>DNS-name-or-IP-address-Asterisk-server</proxy>
 <port>5060</port>
  <name>SIP-account-number</name>
  <displayName>SIP-account-number-or-Name</displayName>
 <autoAnswer>
 <autoAnswerEnabled>2</autoAnswerEnabled>
 </autoAnswer>
 <callWaiting>3</callWaiting>
 <authName>SIP-account-auth-name</authName>
  <authPassword>SIP-password</authPassword>
 <sharedLine>false</sharedLine>
 <messageWaitingLampPolicy>3</messageWaitingLampPolicy>
 <messagesNumber></messagesNumber>
 <ringSettingIdle>4</ringSettingIdle>
 <ringSettingActive>5</ringSettingActive>
 <contact>SIP-account-number</contact>
 <forwardCallInfoDisplay>
<callerName>true</callerName>
 <callerNumber>false</callerNumber>
 <redirectedNumber>false</redirectedNumber>
 <dialedNumber>true</dialedNumber>
 </forwardCallInfoDisplay>
 </line>
 <line button="2">
 <featureID>21</featureID>
 <featureLabel>Name</featureLabel>
 <speedDialNumber>Number</speedDialNumber>
 </line>
 </sipLines>
 </sipProfile>
 </device>

Следует отметить, что если телефон не принимает конфигурационный файл, например из-за наличия ошибок в нем, то он будет отображать на экране состояние «Unprovisioned» и каждые 30 секунд обращаться к tftp-серверу, пытаясь вновь скачать конфигурационный файл (вдруг, на этот раз он не будет содержать ошибок). Эти попытки прекрасно видны по tcpdump`у и в логах TFTP.
Для проверки корректности XML синтаксиса конфигурационного файла мне дали хороший совет: просто открыть файл конфига браузером. Лично мне это помогло, помогло осознать почему конфиг не принимается, а так же браузер точно указал в каком именно месте ошибка синтаксиса.

Пробежимся по настройкам:
dateTemplate — формат День — Месяц — Год.
timeZone — Временные зоны, например, перечислены тут
loadInformation — Версия прошивки, которую брать. Должно совпадать с названием файла .loads
phoneLabel — в правом верхнем углу будет висеть этот лейбл. Не длинее 12 символов.
preferredCodec — голосовой кодек, который будет использовать телефон

webAccess — Включение WEB-сервера на телефона. Обратите внимание, что для включение веб-интерфейса необходимо установить значение параметра в ноль.
sshAccess — Тоже самое касается ssh доступа на устройство.

Причем основная часть инструкций считает достаточным ввести 2 строки с UserID и Password для работы сервиса ssh, некоторые источники указывают еще верхние 2, и поясняют их актуальность только для версий прошивки старше 8.5.1. У меня не получилось подключиться по ssh ни в одном из найденных мной версий написания этих параметров.

Настройки сети:
registerWithProxy — для регистрации SIP линий
natEnable — ставим «true» если телефон находится за NAT
Если natEnable в «true», то телефону необходимо знать внешний IP-адрес NAT`а. Для этого есть две опции:

  • natReceivedProcessing — внешний IP-адрес будет автоматически браться из поля VIA (received=XXX.XXX.XXX.XXX) SIP-пакета 200 ОК полученный от сервера в ответ на пакет REGISTER от телефона, вместо поля Contact
  • natAddress — явное указание внешнего IP адрес NAT`a

При работе за NAT`ом выбрала установку natReceivedProcessing, а natAddress оставила пустым:

<natReceivedProcessing>true</natReceivedProcessing>
<natEnabled>true</natEnabled>
<natAddress></natAddress>

Указание диапазона RTP портов:

  • startMediaPort
  • stopMediaPort

voipControlPort — если значение пустое, то по умолчанию порт 5060. Обратите внимание, что в зависимости от значения параметра natEnabled поведение разное.
Если natEnabled «false», то этот порт используется в кач-ве SRC порта для отправки SIP пакетов. Если natEnabled «true», то телефон будет отправлять пакеты с непривилегированных портов, а на этом порту будет ожидать ОТВЕТЫ от SIP-сервера.
Таким образом, при установке телефона за NAT и без дополнительной настройки шлюза (проброс порта) он работать не будет.
Изыскания на эту тему написаны в топике «Cisco 7931g SIP» на forum.asterisk.ru:

1.1.1.16 — сервер
10.10.1.153 — Cisco 7931G

11:12:05.794376 IP (tos 0x60, ttl 64, id 249, offset 0, flags [none], proto UDP (17), length 609)
    10.10.1.153.49287 > 1.1.1.16.5060: SIP, length: 581
        REGISTER sip:1.1.1.16 SIP/2.0
        Via: SIP/2.0/UDP 10.10.1.153:5060;branch=z9hG4bKb92b2996
        From: <sip:7896@1.1.1.16>;tag=5cfc665d4f9a00100ee171b2-9eb423e6
        To: <sip:7896@1.1.1.16>
        Call-ID: 5cfc665d-4f9a0002-b7a3ced0-c1c67a5a@10.10.1.153
        Max-Forwards: 70
        Date: Tue, 01 Jun 2010 06:05:18 GMT
        CSeq: 110 REGISTER
        User-Agent: Cisco-CP7931G/8.5.3
        Contact: <sip:7896@10.10.1.153:5060;transport=udp>;+sip.instance="";+u.sip!model.ccm.cisco.com="348"
        Supported: (null),X-cisco-xsi-7.0.1
        Content-Length: 0
        Expires: 300

11:12:05.831242 IP (tos 0x0, ttl 60, id 57479, offset 0, flags [none], proto UDP (17), length 588, bad cksum 0 (->8afc)!)
    1.1.1.16.5060 > 10.10.1.153.49287: SIP, length: 560
        SIP/2.0 401 Unauthorized
        Via: SIP/2.0/UDP 10.10.1.153:5060;branch=z9hG4bKb92b2996;received=1.1.1.16;rport=49287
        From: <sip:7896@1.1.1.16>;tag=5cfc665d4f9a00100ee171b2-9eb423e6
        To: <sip:7896@1.1.1.16>;tag=as35525338
        Call-ID: 5cfc665d-4f9a0002-b7a3ced0-c1c67a5a@10.10.1.153
        CSeq: 110 REGISTER
        Server: sip8.domain.com
        Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, SUBSCRIBE, NOTIFY, INFO, PUBLISH, MESSAGE
        Supported: replaces, timer
        WWW-Authenticate: Digest algorithm=MD5, realm="asterisk", nonce="070714aa"
        Content-Length: 0

После чего телефон утверждает udp port 49287 unreachable:

11:12:05.832048 IP (tos 0x0, ttl 64, id 250, offset 0, flags [none], proto ICMP (1), length 56)
10.10.1.153 > 1.1.1.16: ICMP 10.10.1.153 udp port 49287 unreachable, length 36
IP (tos 0x0, ttl 60, id 57479, offset 0, flags [none], proto UDP (17), length 588)
1.1.1.16.5060 > 10.10.1.153.49287: SIP, length: 560
[|sip]

….SKIPED….

Снова попробовал через NAT и наконец разобрался.
Могу сказать, что в предыдущий раз, это я ОЛЕНЬ (правда не пойму как так получилось), но судя по дампу, и наличию «rport» в конце строки VIA на которую я не обратил внимания, в пире в этот момент точно стояло nat=yes, а не nat=no.

Установил nat=no на стороне Asterisk, в конфиге телефона:

<voipControlPort>5061</voipControlPort>
<natReceivedProcessing>true</natReceivedProcessing>
<natEnabled>true</natEnabled>
<natAddress></natAddress>

И… и это не взлетело, но на этот раз причина ясна:

  • 1.1.68.16 — Asterisk
  • 1.1.68.72 — IPшник NAT`а
  • 10.10.1.153 — IPшник телефона

Прохождение пакета REGISTER от телефона: 10.10.1.153.49845 > 1.1.68.72.49845 > 1.1.68.16.5060 (поле Contact: <sip:7896@1.1.68.72:5061;transport=udp>)
Прохождение ответного пакета 401 Unauthorized: 1.1.68.16.5060 > 1.1.68.72.5061
Пакет доезжает до 1.1.68.72, но не проходит к 10.10.1.153 т.к. в таблице NAT трансляций отсутствует запись о 10.10.1.153:5061, т.к. изначальный пакет 10.10.1.153.49845, посему пакет просто отбрасывается.

Соответственно становится логично, что если сделать проброс порта 5061 с внешнего 1.1.68.72 на 10.10.1.153, то все конечно же заработает.
Делаем проброс 5061 и ч.т.д.

Дамп на стороне Asterisk`а:

11:04:44.251049 IP (tos 0x0, ttl 60, id 767, offset 0, flags [none], proto UDP (17), length 768)
1.1.68.72.49845 > 1.1.68.16.5060: SIP, length: 740
REGISTER sip:1.1.68.16 SIP/2.0
Via: SIP/2.0/UDP 1.1.68.72:5061;branch=z9hG4bKff66d16c
From: <sip:7896@1.1.68.16>;tag=5cfc665d4f9a003e6c2253cc-3c681c9c
To: <sip:7896@1.1.68.16>
Call-ID: 5cfc665d-4f9a0002-30c35668-66fda434@10.10.1.153
Max-Forwards: 70
Date: Wed, 28 Oct 2015 08:04:43 GMT
CSeq: 165 REGISTER
User-Agent: Cisco-CP7931G/8.5.3
Contact: <sip:7896@1.1.68.72:5061;transport=udp>;+sip.instance="<urn:uuid:00000000-0000-0000-0000-5cfc665d4f9a>";+u.sip!model.ccm.cisco.com="348"
Authorization: Digest username="7896",realm="asterisk",uri="sip:1.1.68.16",response="6a2ea6fed25e34d552573634601fb9d1",nonce="19016509",algorithm=MD5
Supported: (null),X-cisco-xsi-7.0.1
Content-Length: 0
Expires: 300

11:04:44.251109 IP (tos 0x0, ttl 64, id 63304, offset 0, flags [none], proto UDP (17), length 590)
1.1.68.16.5060 > 1.1.68.72.5061: SIP, length: 562
SIP/2.0 401 Unauthorized
Via: SIP/2.0/UDP 1.1.68.72:5061;branch=z9hG4bKff66d16c;received=1.1.68.72
From: <sip:7896@1.1.68.16>;tag=5cfc665d4f9a003e6c2253cc-3c681c9c
To: <sip:7896@1.1.68.16>;tag=as2a67ddfa
Call-ID: 5cfc665d-4f9a0002-30c35668-66fda434@10.10.1.153
CSeq: 165 REGISTER
Server: sip8.domain.com
Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, SUBSCRIBE, NOTIFY, INFO, PUBLISH, MESSAGE
Supported: replaces, timer
WWW-Authenticate: Digest algorithm=MD5, realm="asterisk", nonce="4a6dbb1e", stale=true
Content-Length: 0

11:04:44.258586 IP (tos 0x0, ttl 60, id 768, offset 0, flags [none], proto UDP (17), length 768)
1.1.68.72.49846 > 1.1.68.16.5060: SIP, length: 740
REGISTER sip:1.1.68.16 SIP/2.0
Via: SIP/2.0/UDP 1.1.68.72:5061;branch=z9hG4bK398ff65c
From: <sip:7896@1.1.68.16>;tag=5cfc665d4f9a003e6c2253cc-3c681c9c
To: <sip:7896@1.1.68.16>
Call-ID: 5cfc665d-4f9a0002-30c35668-66fda434@10.10.1.153
Max-Forwards: 70
Date: Wed, 28 Oct 2015 08:04:43 GMT
CSeq: 166 REGISTER
User-Agent: Cisco-CP7931G/8.5.3
Contact: <sip:7896@1.1.68.72:5061;transport=udp>;+sip.instance="<urn:uuid:00000000-0000-0000-0000-5cfc665d4f9a>";+u.sip!model.ccm.cisco.com="348"
Authorization: Digest username="7896",realm="asterisk",uri="sip:1.1.68.16",response="4a56a3e3f5e1b272274fa7cc3ce48d19",nonce="4a6dbb1e",algorithm=MD5
Supported: (null),X-cisco-xsi-7.0.1
Content-Length: 0
Expires: 300


11:04:44.258686 IP (tos 0x0, ttl 64, id 63321, offset 0, flags [none], proto UDP (17), length 609)
1.1.68.16.5060 > 1.1.68.72.5061: SIP, length: 581
SIP/2.0 200 OK
Via: SIP/2.0/UDP 1.1.68.72:5061;branch=z9hG4bK398ff65c;received=1.1.68.72
From: <sip:7896@1.1.68.16>;tag=5cfc665d4f9a003e6c2253cc-3c681c9c
To: <sip:7896@1.1.68.16>;tag=as2a67ddfa
Call-ID: 5cfc665d-4f9a0002-30c35668-66fda434@10.10.1.153
CSeq: 166 REGISTER
Server: sip8.domain.com
Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, SUBSCRIBE, NOTIFY, INFO, PUBLISH, MESSAGE
Supported: replaces, timer
Expires: 300
Contact: <sip:7896@1.1.68.72:5061;transport=udp>;expires=300
Date: Wed, 28 Oct 2015 08:04:44 GMT
Content-Length: 0
Состояние регистрации на сервере:

7896/7896 1.1.68.72 D 5061 Unmonitored

Addr->IP : 1.1.68.72:5061

Useragent : Cisco-CP7931G/8.5.3

Reg. Contact : sip:7896@1.1.68.72:5061;transport=udp

Дамп на стороне NAT`а (после процесса NAT):

11:45:08.033612 IP (tos 0x60, ttl 64, id 25, offset 0, flags [none], proto UDP (17), length 762)
10.10.1.153.49182 > 1.1.68.16.5060: SIP, length: 734
REGISTER sip:1.1.68.16 SIP/2.0
Via: SIP/2.0/UDP 10.10.1.153:5061;branch=z9hG4bK79f75193
From: <sip:7896@1.1.68.16>;tag=5cfc665d4f9a0002a072f674-1c4da357
To: <sip:7896@1.1.68.16>
Call-ID: 5cfc665d-4f9a0002-f3129326-816fc831@10.10.1.153
Max-Forwards: 70
Date: Wed, 28 Oct 2015 08:45:05 GMT
CSeq: 103 REGISTER
User-Agent: Cisco-CP7931G/8.5.3
Contact: <sip:7896@10.10.1.153:5061;transport=udp>;+sip.instance="<urn:uuid:00000000-0000-0000-0000-5cfc665d4f9a>";+u.sip!model.ccm.cisco.com="348"
Authorization: Digest username="7896",realm="asterisk",uri="sip:1.1.68.16",response="7f6cf3decde843e30c6475cef15d7bc4",nonce="40839bef",algorithm=MD5
Supported: (null),X-cisco-xsi-7.0.1
Content-Length: 0
Expires: 0


11:45:08.035579 IP (tos 0x0, ttl 60, id 9145, offset 0, flags [none], proto UDP (17), length 588, bad cksum 0 (->47cb)!)
1.1.68.16.5060 > 10.10.1.153.5061: SIP, length: 560
SIP/2.0 401 Unauthorized
Via: SIP/2.0/UDP 10.10.1.153:5061;branch=z9hG4bK79f75193;received=1.1.68.72
From: <sip:7896@1.1.68.16>;tag=5cfc665d4f9a0002a072f674-1c4da357
To: <sip:7896@1.1.68.16>;tag=as31ab4c73
Call-ID: 5cfc665d-4f9a0002-f3129326-816fc831@10.10.1.153
CSeq: 103 REGISTER
Server: sip8.domain.com
Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, SUBSCRIBE, NOTIFY, INFO, PUBLISH, MESSAGE
Supported: replaces, timer
WWW-Authenticate: Digest algorithm=MD5, realm="asterisk", nonce="10809208", stale=true
Content-Length: 0

11:45:08.041848 IP (tos 0x60, ttl 64, id 26, offset 0, flags [none], proto UDP (17), length 762)
10.10.1.153.49183 > 1.1.68.16.5060: SIP, length: 734
REGISTER sip:1.1.68.16 SIP/2.0
Via: SIP/2.0/UDP 10.10.1.153:5061;branch=z9hG4bK32b5e3e0
From: <sip:7896@1.1.68.16>;tag=5cfc665d4f9a0002a072f674-1c4da357
To: <sip:7896@1.1.68.16>
Call-ID: 5cfc665d-4f9a0002-f3129326-816fc831@10.10.1.153
Max-Forwards: 70
Date: Wed, 28 Oct 2015 08:45:05 GMT
CSeq: 104 REGISTER
User-Agent: Cisco-CP7931G/8.5.3
Contact: <sip:7896@10.10.1.153:5061;transport=udp>;+sip.instance="<urn:uuid:00000000-0000-0000-0000-5cfc665d4f9a>";+u.sip!model.ccm.cisco.com="348"
Authorization: Digest username="7896",realm="asterisk",uri="sip:1.1.68.16",response="7951fc7add50cbbceb0608a3a8b4379a",nonce="10809208",algorithm=MD5
Supported: (null),X-cisco-xsi-7.0.1
Content-Length: 0
Expires: 0


11:45:08.043572 IP (tos 0x0, ttl 60, id 9161, offset 0, flags [none], proto UDP (17), length 539, bad cksum 0 (->47ec)!)
1.1.68.16.5060 > 10.10.1.153.5061: SIP, length: 511
SIP/2.0 200 OK
Via: SIP/2.0/UDP 10.10.1.153:5061;branch=z9hG4bK32b5e3e0;received=1.1.68.72
From: <sip:7896@1.1.68.16>;tag=5cfc665d4f9a0002a072f674-1c4da357
To: <sip:7896@1.1.68.16>;tag=as31ab4c73
Call-ID: 5cfc665d-4f9a0002-f3129326-816fc831@10.10.1.153
CSeq: 104 REGISTER
Server: sip8.domain.com
Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, SUBSCRIBE, NOTIFY, INFO, PUBLISH, MESSAGE
Supported: replaces, timer
Expires: 0
Date: Wed, 28 Oct 2015 08:45:08 GMT
Content-Length: 0

SIP линии:
featureID — про этот параметр ниже
proxy- IP-адрес нашего сервера c Asterisk
port — SIP порт
name — Имя или номер SIP аккаунта
displayName — Отображаемое имя, соответственно указываем или имя или номер.
authName — имя вашего аккаунта для авторизации на сервере, обычно это ваш номер
authPassword — пароль вашего SIP аккаунта
contact — номер SIP аккаунта

Линия с Speed Dial
SD (Speed Dial — набор номера по нажатии кнопки) на программируемых кнопках (коих 24 штуки).
Хотелось настроить еще и BLF, но это оказалось все непросто с этим на этом телефоне. Идея была отодвинута (отлично гуглятся решения, вроде работы телефона с Cisco Call Manager),  т.к. необходимо пропатчить Астериск, а именно chan_sip.
Кнопки линий пронумерованы от 24 до 1 сверху вниз, чередуясь слева вправо. Соответвенно, 1 линия находится в правом нижнем углу.

featureLabel- выводимое описание
speedDialNumber — номер для набора

featureID — код фичи, то что будет делаться по нажатию кнопки:

  • feature id 1 last number redial
  • feature id 2 speed dial
  • feature id 3 hold
  • feature id 5 fwd all
  • feature id 9 line — Для SIP регистрации
  • feature id 19 private
  • feature id 20 service uri
  • featureid 21 speed dial — Для набора сохраненного номера
  • feature id 22 paging
  • feature id 27 Malicious call ID

Полезные ссылки:

  • http://www.voip-info.org/wiki/index.php?page_id=3624
  • http://www.voip-info.org/wiki/view/Asterisk+phone+cisco+79×1+xml+configuration+files+for+SIP
  • http://docs.acsdata.co.nz/asterisk-cisco/document-overview.shtml
  • http://forum.asterisk.ru/viewtopic.php?f=6&t=4956

P.S. При копировании статьи ссылка на источник ОБЯЗАТЕЛЬНА ! Уважайте чужой труд.

Автор: Гриднева Мария

Похожие статьи:

Загрузка…

Эта статья размещена Viva 29.10.2015 в 11:59 в рубриках FreeBSD, VoIP, Железо VoIP.
Вы можете оставить отзыв или trackback с вашего собственного сайта. Отслеживайте все отзывы и комментарии к этой статье при помощи новостной ленты RSS.

Basic Phone Use:

Lift Handset, or press Line Button, or press

soft key, or press the speaker button,

or headset button and dial.

soft key or line button, or speaker button or headset button.

Hang up handset, or press

soft key, or headset key or speaker key, etc.

Phone Features:

1 Find the displaying PickUp softkey label & then press softkey button associated with it.

2

GPickUp

Answering a call that is ringing on another extension outside of your workgroup

Check with your

do one of the following:

IS Department to find

1

If the Group PickUP button or GPickUp softkey is available, press it.

out if you have the

2

If the Group PickUp button or GPickUp softkey is NOT available, go «off -hook» (obtain

capability to pick up

a dial tone) to display the GPickUP softkey, then press it.

calls from another

3 Enter the group pickup code.

group

Tip: If your phone supports auto-pickup, you are now connected to the call.

4

If the call rings, press Answer to connect the the call.

Mute a Call During the call press the Mute button Then press Mute again to resume speaking.

Quick Guide

Dial an extension to reach internal staff. Can you find your extension #_________?

Dial 9 plus 7 or 10 digits for local calls (local dialing rules apply).

Dial 9 plus 1 and the phone number for long distance call.

The call will be presented to your extension, press the Answer soft key to take the call.

Cisco Unified IP Phone: Model 7931

To pickup a call from a phone ringing in your workgroup do the following:

Note: You can only pickup calls that are ringing on an extension of your pickup workgroup, once the call

has moved on to a coverage path (gone to voice mail or someone else answers the call), you cannot

pickup the call.

Tip: If you receive a second call, you will hear a beep.

Then press the Answer soft key to answer it, and the first call will be put on hold.

©2007 INX, all rights reserved

1

Quick Guide 1/2008

Время на прочтение
13 мин

Количество просмотров 206K

В статье будут описаны нюансы настройки IP-телефона Cisco на примере цискофона 7942G.
Итак, если вы присматриваетесь к VoIP-устройствам Cisco серии 79XX, то добро пожаловать под кат.

Используется:

Cisco VoIP Phone 7942G
Asterisk 1.4.39
TFTP-server-0.49
Внимание! Инструкция подходит не для всех телефонов Cisco 79XX. См. здесь

Настройка

Комбинации клавиш в Cisco

**#** — перезагрузка телефона (через меню)
**# — разблокировка настроек (также через меню). Разблокировка нужна, например, для того чтобы поставить настройки DHCP-клиента

TFTP

Первое что нам понадобиться сделать — это настроить tftpserver. Я использовал стандартный линуксовый. Рекомендую сразу настроить, чтобы tftp-запросы записывались в лог-файл (по умолчанию /var/log/messages).
cat /etc/xinetd.d/tftp:
...
server_args = -s /tftpboot -v
...

Смена прошивки

Итак, сначала нужно разыскать нужную прошивку для работы по SIP, т.к. по умолчанию используется версия с SCCP. Для этого есть гугл или торренты.

Далее заходим на известный всем сайт voip-info.org. По ссылке выложена информация о прошивке. Т.к. у меня версия астериска 1.4 (которая не умеет работать по tcp), то советуют брать версию 8.5.4. По этой ссылке есть много и другой полезной информации.
Таким образом, нам нужен файл cmterm-7942_7962-sip.8-5-4.zip. Все файлы которые там есть нужно вывалить в корень тфтп-сервера.

Русская локаль

Еще бы нам не помешала русская локаль. Ну т.е. чтобы все надписи на экране были на русском языке.
Я её брал из файла po-locale-ru_RU-8.4.3.1000-1.exe (тоже можно найти в интернете). Тут есть одна хитрость — при запуске программы она вываливает ошибку и потом закрывается. Но нам ведь всего лишь нужны файлы локали, установить мы их можем и сами.
Поэтому после запуска идем в папку %TEMP% (советую предварительно её очистить) и смотрим что там программа вывалит.
Там в числе прочего будет папка Russian_Russian_Federation. Вот её нам и нужно будет поместить в корень tftp-сервера.
Версия локали будет как раз 8.4.3.1000-1.

Файл кофигурации цискофона

Теперь перейдем непосредственно к файлу конфигурации. Цискофон загружает его исключительно с tftp-сервера. Сначала кажется неудобно, с другой стороны, нужно настроить всего один раз, а затем можно эти телефоны хоть штабелями закупать — настройка их будет аналогичной и займет минимум времени. Кроме того, этим Cisco обезопасил телефон от «шаловливых ручек» пользователей. Через меню сделать практически ничего нельзя.
Файл должен называться SEP<MAC-адрес Cisco-телефона>.cnf.xml.
Мак-адрес записан на тыльной стороне устройства.
Определим некоторые значения:
$ASTERISK — ай-пи нашего астериска
$SERVICESURL — полный путь до скрипта, который генерирует адресную книгу (например, 192.168.0.22/asterisk/directory.php)
$ACCOUNT — пользователь/номер нашего аккаунта на астериске. Если у вас нет соответствия номер<=>пользователь, то конфиг нужно будет соответствующим образом поменять.
$ACCOUNT_PASS — пароль от SIP-аккаунта

<device>
    <fullConfig>true</fullConfig>
    <deviceProtocol>SIP</deviceProtocol>
    <devicePool>
        <dateTimeSetting>
            <dateTemplate>D.M.Y</dateTemplate>
            <timeZone>Ekaterinburg Standard Time</timeZone>
            <ntps>
                <ntp>
                    <name>$ASTERISK</name>
                    <ntpMode>Unicast</ntpMode>
                </ntp>
            </ntps>
        </dateTimeSetting>
        <callManagerGroup>
            <tftpDefault>true</tftpDefault>
                <members>
                <member priority="0">
                <callManager>
                <name>$ASTERISK</name>
                <description>CallManager 5.0</description>
                <ports>
                  <ethernetPhonePort>2000</ethernetPhonePort>
                  <sipPort>5060</sipPort>
                  <securedSipPort>5061</securedSipPort>
                </ports>
                <processNodeName>$ASTERISK</processNodeName>
                </callManager>
                </member>
                </members>
             </callManagerGroup>
    </devicePool>
    <commonProfile>
        <phonePassword></phonePassword>
        <backgroundImageAccess>true</backgroundImageAccess>
        <callLogBlfEnabled>0</callLogBlfEnabled>
    </commonProfile>
    <loadInformation>SIP42.8-5-4S</loadInformation>
    <loadInformation434  model="Cisco 7942">SIP42.8-5-4S</loadInformation434>
    <vendorConfig>
        <disableSpeaker>false</disableSpeaker>
        <disableSpeakerAndHeadset>false</disableSpeakerAndHeadset>
        <pcPort>0</pcPort>
        <settingsAccess>1</settingsAccess>
        <garp>0</garp>
        <voiceVlanAccess>0</voiceVlanAccess>
        <videoCapability>0</videoCapability>
        <autoSelectLineEnable>0</autoSelectLineEnable>
        <daysDisplayNotActive>1,7</daysDisplayNotActive>
        <displayOnTime>10:30</displayOnTime>
        <displayOnDuration>06:05</displayOnDuration>
        <displayIdleTimeout>00:05</displayIdleTimeout>
        <webAccess>1</webAccess>
        <spanToPCPort>1</spanToPCPort>
        <loggingDisplay>1</loggingDisplay>
        <loadServer></loadServer>
    </vendorConfig>

<userLocale> 
  <name>Russian_Russian_Federation</name> 
  <uid></uid> 
  <langCode>ru_RU</langCode> 
  <version>8.4.3.1000-1</version> 
  <winCharSet>utf-8</winCharSet> 
</userLocale>


<networkLocale>Russian_Federation</networkLocale> 
<networkLocaleInfo> 
  <name>Russian_Federation</name> 
  <uid></uid> 
  <version>8.4.3.1000-1</version> 
</networkLocaleInfo>
    
    <deviceSecurityMode>1</deviceSecurityMode>
    <idleTimeout>0</idleTimeout>
    <directoryURL></directoryURL> 
    <servicesURL>$SERVICESURL</servicesURL> 
    <idleURL></idleURL>
    <messagesURL></messagesURL>
    <proxyServerURL></proxyServerURL>
    <dscpForSCCPPhoneConfig>96</dscpForSCCPPhoneConfig>
    <dscpForSCCPPhoneServices>0</dscpForSCCPPhoneServices>
    <dscpForCm2Dvce>96</dscpForCm2Dvce>
    <transportLayerProtocol>2</transportLayerProtocol>
    <capfAuthMode>0</capfAuthMode>
    <capfList>
        <capf>
            <phonePort>3804</phonePort>
        </capf>
    </capfList>
    <certHash></certHash>
    <encrConfig>false</encrConfig>
    <sipProfile>
        <sipProxies>
            <backupProxy>$ASTERISK</backupProxy>
            <backupProxyPort>5060</backupProxyPort>
            <emergencyProxy>$ASTERISK</emergencyProxy>
            <emergencyProxyPort>5060</emergencyProxyPort>
            <outboundProxy>$ASTERISK</outboundProxy>
            <outboundProxyPort>5060</outboundProxyPort>
            <registerWithProxy>true</registerWithProxy>
        </sipProxies>
     <sipCallFeatures>
        <cnfJoinEnabled>true</cnfJoinEnabled>
        <callForwardURI>x--serviceuri-cfwdall</callForwardURI>
        <callPickupURI>x-cisco-serviceuri-pickup</callPickupURI>
        <callPickupListURI>x-cisco-serviceuri-opickup</callPickupListURI>
        <callPickupGroupURI>x-cisco-serviceuri-gpickup</callPickupGroupURI>
        <meetMeServiceURI>x-cisco-serviceuri-meetme</meetMeServiceURI>
        <abbreviatedDialURI>x-cisco-serviceuri-abbrdial</abbreviatedDialURI>
        <rfc2543Hold>false</rfc2543Hold>
        <callHoldRingback>2</callHoldRingback>
        <localCfwdEnable>true</localCfwdEnable>
        <semiAttendedTransfer>true</semiAttendedTransfer>
        <anonymousCallBlock>2</anonymousCallBlock>
        <callerIdBlocking>2</callerIdBlocking>
        <dndControl>0</dndControl>
        <remoteCcEnable>true</remoteCcEnable>
     </sipCallFeatures> 
     <sipStack>
        <sipInviteRetx>6</sipInviteRetx>
        <sipRetx>10</sipRetx>
        <timerInviteExpires>180</timerInviteExpires>
        <timerRegisterExpires>3600</timerRegisterExpires>
        <timerRegisterDelta>5</timerRegisterDelta>
        <timerKeepAliveExpires>120</timerKeepAliveExpires>
        <timerSubscribeExpires>120</timerSubscribeExpires>
        <timerSubscribeDelta>5</timerSubscribeDelta>
        <timerT1>500</timerT1>
        <timerT2>4000</timerT2>
        <maxRedirects>70</maxRedirects>
        <remotePartyID>false</remotePartyID>
        <userInfo>None</userInfo>
     </sipStack>
     <autoAnswerTimer>1</autoAnswerTimer>
     <autoAnswerAltBehavior>false</autoAnswerAltBehavior>
     <autoAnswerOverride>true</autoAnswerOverride>
     <transferOnhookEnabled>false</transferOnhookEnabled>
     <enableVad>false</enableVad> 
        <preferredCodec>g711alaw</preferredCodec>
       <dtmfAvtPayload>101</dtmfAvtPayload>
       <dtmfDbLevel>3</dtmfDbLevel>
       <dtmfOutofBand>avt</dtmfOutofBand>
        <alwaysUsePrimeLine>false</alwaysUsePrimeLine>
        <alwaysUsePrimeLineVoiceMail>false</alwaysUsePrimeLineVoiceMail>
        <kpml>3</kpml>
        <stutterMsgWaiting>1</stutterMsgWaiting>
        <callStats>true</callStats>
        <silentPeriodBetweenCallWaitingBursts>10</silentPeriodBetweenCallWaitingBursts>
        <disableLocalSpeedDialConfig>true</disableLocalSpeedDialConfig>
        <startMediaPort>10100</startMediaPort>
        <stopMediaPort>10300</stopMediaPort>
        <voipControlPort>5060</voipControlPort>
        <dscpForAudio>184</dscpForAudio>
        <ringSettingBusyStationPolicy>0</ringSettingBusyStationPolicy>
        <dialTemplate>dialplan.xml</dialTemplate> 
        <phoneLabel>Cisco</phoneLabel>
          <natReceivedProcessing>false</natReceivedProcessing>
          <natEnabled>false</natEnabled>
          <natAddress></natAddress>
        <sipLines>
          <line button="1">
            <featureID>9</featureID>
            <featureLabel>$ACCOUNT</featureLabel>
            <proxy>$ASTERISK</proxy>
            <port>5060</port>
            <name>$ACCOUNT</name>
            <displayName>$ACCOUNT</displayName>
            <autoAnswer>
              <autoAnswerEnabled>2</autoAnswerEnabled>
            </autoAnswer>
            <callWaiting>3</callWaiting>
            <authName>$ACCOUNT</authName>
            <authPassword>$ACCOUNT_PASS</authPassword>
            <sharedLine>false</sharedLine>
            <messageWaitingLampPolicy>3</messageWaitingLampPolicy>
            <messagesNumber></messagesNumber>
            <ringSettingIdle>4</ringSettingIdle>
            <ringSettingActive>5</ringSettingActive>
            <contact>$ACCOUNT</contact>
            <forwardCallInfoDisplay>
              <callerName>true</callerName>
              <callerNumber>false</callerNumber>
              <redirectedNumber>false</redirectedNumber>
              <dialedNumber>true</dialedNumber>
            </forwardCallInfoDisplay>
          </line>
          <line button="2">
          <featureID></featureID>
          <featureLabel></featureLabel>
          <speedDialNumber></speedDialNumber>
          </line>
        </sipLines>
    </sipProfile>
</device>

Теперь будем комментировать.

<timeZone>Ekaterinburg Standard Time</timeZone> - настройки часового пояса, которые будут использовать при получении информации от NTP-сервере (в конфиге это наш астериск). 

Все часовые пояса можно найти, например, здесь.

<loadInformation>SIP42.8-5-4S</loadInformation> - имя прошивки, которая будет загружена

Следующие настройки нужны для настройки локали:

<userLocale> 
  <name>Russian_Russian_Federation</name> 
  <uid></uid> 
  <langCode>ru_RU</langCode> 
  <version>8.4.3.1000-1</version> 
  <winCharSet>utf-8</winCharSet> 
</userLocale>
<networkLocale>Russian_Federation</networkLocale> 
<networkLocaleInfo> 
  <name>Russian_Federation</name> 
  <uid></uid> 
  <version>8.4.3.1000-1</version> 
</networkLocaleInfo>
<servicesURL>$SERVICESURL</servicesURL> - указываем откуда загружать XML для сервисов (в нашем случае там будет передаваться список абонентов).
<dialTemplate>dialplan.xml</dialTemplate>  - это очень важная строчка, о ней будет ниже.
<line button="2"> - у нас пустой, т.к. используем один SIP-аккаунт.
<preferredCodec>g711alaw</preferredCodec> - кодек G711 alaw у нас будет предпочтительным.
Конфигурация sip.conf астериска

...
[$ACCOUNT]
deny=0.0.0.0/0.0.0.0
permit=192.168.0.0/255.255.255.0
type=friend
host=dynamic
context=НАШ_КОНТЕКСТ
dtmfmode=rfc2833
disallow=all
allow=alaw
allow=ulaw
allow=gsm
username=$ACCOUNT
secret=$ACCOUNT_PASS
call-limit=2
...

Самое интересное здесь — call-limit=2. Суть в том, что можно будет получать 1 или 2 звонка (3 звонок уже на циску не пойдет — зачем её напрягать?), их можно обрабатывать на телефоне, переключаясь между ними. Больше чем 2 звонка в этом аппарате не поддерживается (возможно будет поддерживаться в новых прошивках), хотя обрабатывать 3 звонка уже достаточно накладно.

Настройка диалплана цискофона

Циско настолько умная, что может использовать свой собственный диалплан. Но тут есть обратная сторона медали. Если этот диалплан не указать, то исходящие звонки вообще ходить не будут. Точней будут, но только на номера от 0 до 9 =).

<DIALTEMPLATE>
  <TEMPLATE MATCH="*" Timeout="3"/> <!-- Anything else -->
</DIALTEMPLATE>

В этом конфиге мы по сути передаем всю ответственность на астериск — т.е. просто после 3-х секунд передаем номер. Более изящные номерные планы можно найти на voip-info.org.

Адресная книга абонентов

У нас есть LDAP (в связке с samba), в нем есть информация о телефонах пользователей. Так почему бы этим не воспользоваться?
Сервер LDAP, filter поиска нужно будет поменять на свои настройки.
directory.php:

<?
   header("Content-type: text/xml");
   header("Connection: close");
   header("Expires: -1");

  $page=1;
  if(isset($_GET['page']))
  {
    $page = $_GET['page'];
    if(settype($page,"integer") == false)
      die("<b>BAD REQUEST (invalid type)</b>");
  }

  echo '<?xml version="1.0" encoding="UTF-8"?>'."n";

  $ldapconfig['host'] = '192.168.0.8';
  $ldapconfig['port'] = NULL;
  $ldapconfig['basedn'] = 'ou=users,dc=MyCompany,dc=ru';
  $ldapconfig['filter'] = "(&(uid=*)(objectClass=sambaSamAccount)(objectClass=inetOrgPerson))";

   print("<CiscoIPPhoneDirectory>n");
   print("t<Title> </Title>n");
   print("t<Prompt> </Prompt>n");

  $DS = @ldap_connect($ldapconfig['host'], $ldapconfig['port']);

  if ( $DS === false )
    exit("ldap_connect problem: ".ldap_error($DS));

  $SRes = @ldap_search($DS, $ldapconfig['basedn'], $ldapconfig['filter']);

  if ( $SRes === false )
    exit("ldap_search problem: ".ldap_error($DS));

  $res = @ldap_get_entries($DS, $SRes);
  if ( $res === false )
    exit("ldap_get_entries problem: ".ldap_error($DS));


  $results = array();

  for ($i = 0; $i < $res["count"]; $i++)
  {

    if (!isset($res[$i]["telephonenumber"]))
      continue;
    if (!isset($res[$i]["displayname"]))
      continue;

    $r_ar = array();

    $r_ar['displayname']=$res[$i]["displayname"][0];
    $r_ar['telephonenumber']=$res[$i]["telephonenumber"][0];
    array_push($results, $r_ar);

  }

  for ($i = 0; $i < (count($results)-1); $i++)
    for ($k = $i+1; $k < count($results); $k++)
    {
      if (strcmp($results[$i]['displayname'],$results[$k]['displayname']) > 0)
      {
        $r_tmp = array();
        $r_tmp = $results[$i];
        $results[$i] = $results[$k];
        $results[$k] = $r_tmp;
      }

    }



  for ($i = (32*($page-1)); $i < (32*$page); $i++)
  {

    if ($i == count($results))
      break;

    print("t<DirectoryEntry>n");

    print("tt<Name>");
    print($results[$i]['displayname']);
    print("</Name>n");


    print("tt<Telephone>");
    print($results[$i]['telephonenumber']);
    print("</Telephone>n");

    print("t</DirectoryEntry>n");
  }

  print("<SoftKeyItem>");
  print("<Name>Dial</Name>");
  print("<URL>SoftKey:Dial</URL>");
  print("<Position>1</Position>");
  print("</SoftKeyItem>");

  if ($page > 1)
  {
    print("<SoftKeyItem>");
    print("<Name>Prev</Name>");
    print("<URL>http://".$_SERVER['SERVER_NAME']."/asterisk/directory.php?page=".($page-1)."</URL>");
    print("<Position>2</Position>");
    print("</SoftKeyItem>");
  }

  $count_pages = (int) (count($results) / 32);

  if ((count($results) % 32) !=0)
    $count_pages++;

  if ($page < $count_pages)
  {
    print("<SoftKeyItem>");
    print("<Name>Next</Name>");
    print("<URL>http://".$_SERVER['SERVER_NAME']."/asterisk/directory.php?page=".($page+1)."</URL>");
    print("<Position>3</Position>");
    print("</SoftKeyItem>");
  }

  print("<SoftKeyItem>");
  print("<Name>Exit</Name>");
  print("<URL>SoftKey:Exit</URL>");
  print("<Position>4</Position>");
  print("</SoftKeyItem>");

  print("</CiscoIPPhoneDirectory>n");

?>

Обновление. Заметьте, что на странице только 32 контакта. Почему так? Не знаю, чем это объяснить, но так реализовано в прошивке — больше чем 32 контакта не поддерживается. Впрочем, это не беда, т.к. можно реализовать при помощи софткеев механизм отображения пред. и след. страниц.

Делаем настройки для логотипа

Для начала по логам tftp смотрим куда cisco обращается за картинкой. Происходит это в момент выбора фонового изображения
через меню телефона (как разблокировать меню написано выше).
изображения из меню
/tftpboot/Desktops/320x196x4/List.xml:

<CiscoIPPhoneImageList>
  <ImageItem Image="TFTP:Desktops/320x196x4/Logo-TN.png" URL="TFTP:Desktops/320x196x4/Logo.png"/>
</CiscoIPPhoneImageList>

Нам нужно создать одну картинку 320×196 и одну картинку в 4 раза меньше (80×49).
Logo-TN.png — эскиз.
Logo.png — полноценная картинка.
Изменять логотип нужно через меню телефона.

Что не вошло в статью

— Настройка сигналов вызовов. Да, это тоже можно делать. Другое дело — зачем? Если для вас оно имеет смысл — то дерзайте.
— Настройка directories. Есть возможность, например, читать RSS с телефона и вообще добавлять различные контент-каталоги.

Проблемы, возникшие в процессе настройки

1. Нужна была прошивка для SIP (по умолч. SCCP)
2. Не регистрировался телефон (поставил прошивку 9.0.3, которая работает только по TCP)
3. Не шли исходящие звонки (см. dialplan.xml)
4. Отображаются только 32 контакта в адресной книге (ограничение прошивки)

Ссылки

www.voip-info.org/wiki/view/Asterisk+phone+cisco+79×1+xml+configuration+files+for+SIP
www.voip-info.org/wiki/view/Asterisk+phone+cisco+7970+SIP
www.asteriskguru.com/tutorials/cisco_7960_ip_phone_configuration.html
Опыт настройки:
3090607.ru/note/27-cisco-ip-phone-locale
forum.sysadmins.su/index.php?showtopic=20489
www.voipstore.com/configuring-cisco-7975-ip-phones-for-sip
asteriskpbx.ru/display/Asterisk/CISCO+7911
www.gho.no/2009/05/cisco-ip-phone-configuration-with-asterisk
Офиц. руководство:
www.cisco.com/en/US/docs/voice_ip_comm/cuipph/7960g_7940g/sip/2_0/english/administration/guide/admin2.pdf
www.cisco.com/en/US/docs/voice_ip_comm/cuipph/7962g_7942g/6_0/english/administration/guide/7962G-Admin-Book-Wrapper.html
XML objects:
www.cisco.com/univercd/cc/td/doc/product/voice/vpdd/cdd/5_0/5_0_1/ipphsv/ip503ch2.htm#wp1033491
www.ibm.com/developerworks/wireless/library/wi-voip
webmaxtor.blogspot.com/2009/04/cisco-ipphonedirectory-exit-softkey.html
www.cisco.com/univercd/cc/td/doc/product/voice/vpdd/cdd/5_0/5_0_1/ipphsv/ip503ch2.htm
docstore.mik.ua/univercd/cc/td/doc/product/voice/vpdd/cdd/5_0/ipphsv/ip502apa.htm#wp1007090
my.safaribooksonline.com/book/telephony/1587050609/using-cisco-ip-phone-xml-objects-and-tags/ch04#X2ludGVybmFsX0ZsYXNoUmVhZGVyP3htbGlkPTEtNTg3MDUtMDYwLTkvNjE=

Понравилась статья? Поделить с друзьями:
  • Компетенции руководства оценка
  • Английская соль инструкция по применению цена
  • Бутофан инструкция по применению в ветеринарии для коров
  • Диконим инструкция по применению таблетки взрослым
  • Videopad руководство на русском