Техническая база знаний
Cisco SPA IP Phone
Конфигурационные файлы
Телефонные аппараты могут получать свои настройки, читая конфигурационные файлы.
Для того, чтобы телефоны получали конфигурационные файлы автоматически при загрузке:
- DHCP сервер должен выдавать опцию 66 с указанием IP адреса TFTP сервера (DHCP опция 66 указывает на TFTP сервер в сети).
- В настройках телефонов нужно указать протокол поиска конфигурационных файлов TFTP. Для этого нужно зайти в настройки телефонного аппарата Admin → Advanced → Provisioning и изменить параметр Transport protocol на tftp.
- В настройках телефонов Admin → Advanced → Provisioning изменить параметр Provision Enable на Yes
После перезагрузки, при получении IP адреса, телефон сделает запрос конфигурационного файла на TFTP сервере.
Переменные
При указании параметров в самом телефонном аппарате могут использоваться переменные, значения которых будут подставлены самими телефонном при чтении указанного параметра.
- $PSN - номер модели телефонного аппарата: 303, 502G, 504G, 525G2, 922, 942, 962
- $MA - мак адрес устройства, без разделителя в виде двоеточия
- $MAC - мак адрес устройства с разделителем в виде двоеточия
- $SWVER - номер версии программной прошивки
- $USER - имя пользователя линии
- $PROXY - адрес SIP proxy сервера
Общий конфигурационный файл
Общим конфигурационным файлом для модели телефонов SPAXXX является файл с именем spa$PSN.cfg Где $PSN - это обозначение модели телефонного аппарата.
- SPA 303 - spa303.cfg
- SPA 502 - spa502G.cfg
- SPA 504 - spa504G.cfg
- SPA 525 - spa525G2.cfg
- SPA 922 - spa922.cfg
- SPA 942 - spa942.cfg
- SPA 962 - spa962.cfg
В общий конфигурационный файл рекомендуется выносить настройки, общие для всех телефонных аппаратов одной модели. Пример общего конфигурационного файла ниже:
<flat-profile> <Resync_On_Reset>Yes</Resync_On_Reset> <Resync_Periodic></Resync_Periodic> <Profile_Rule>/spa$PSN.cfg</Profile_Rule> <Profile_Rule_B>/spa$MA.xml</Profile_Rule_B> <Dictionary_Server_Script>serv=tftp://192.168.1.1/spa/; d0=English; x0=spa50x_30x_en_v747.xml; d1=Russian; x1=spa50x_30x_ru_v746.xml;</Dictionary_Server_Script> <Default_Character_Encoding>UTF-8</Default_Character_Encoding> <Upgrade_Enable>Yes</Upgrade_Enable> <Upgrade_Error_Retry_Delay>3600</Upgrade_Error_Retry_Delay> <Downgrade_Rev_Limit></Downgrade_Rev_Limit> <Upgrade_Rule>/spa50x-30x-7-4-8a.bin</Upgrade_Rule> <Time_Format>24hr</Time_Format> <Date_Format>day/month</Date_Format> <Time_Zone>GMT+04:00</Time_Zone> </flat-profile>
Общий конфигурационный файл для модели из примера содержит "ссылки" на индивидуальный конфигурационные файлы для конкретного аппарата. Так, в опциях <Profile_Rule> и <Profile_Rule_B>
указываются имена конфигурационных файлов (а точнее пути к файлам на TFTP сервере), которые должен загружать телефон.
Индивидуальный конфигурационный файл
Индивидуальный конфигурационный файл может содержать настройки для конкретного аппарата (определяется по MAC адресу), в частности реквизиты учетной записи при подключении к серверу телефонии.
<flat-profile> <!-- Proxy and Registration --> <Proxy_1_ ua="na">сервер_регистрации</Proxy_1_> <Outbound_Proxy_1_ ua="na"></Outbound_Proxy_1_> <Use_Outbound_Proxy_1_ ua="na">No</Use_Outbound_Proxy_1_> <Use_OB_Proxy_In_Dialog_1_ ua="na">Yes</Use_OB_Proxy_In_Dialog_1_> <Register_1_ ua="na">Yes</Register_1_> <Make_Call_Without_Reg_1_ ua="na">No</Make_Call_Without_Reg_1_> <Register_Expires_1_ ua="na">900</Register_Expires_1_> <Ans_Call_Without_Reg_1_ ua="na">No</Ans_Call_Without_Reg_1_> <Use_DNS_SRV_1_ ua="na">No</Use_DNS_SRV_1_> <DNS_SRV_Auto_Prefix_1_ ua="na">No</DNS_SRV_Auto_Prefix_1_> <Proxy_Fallback_Intvl_1_ ua="na">3600</Proxy_Fallback_Intvl_1_> <Proxy_Redundancy_Method_1_ ua="na">Normal</Proxy_Redundancy_Method_1_> <!-- Subscriber Information --> <Display_Name_1_ ua="na">номер_абонента</Display_Name_1_> <User_ID_1_ ua="na">номер_абонента</User_ID_1_> <Password_1_ ua="na">пароль_абонента</Password_1_> <Use_Auth_ID_1_ ua="na">No</Use_Auth_ID_1_> <Auth_ID_1_ ua="na">номер_абонента</Auth_ID_1_> <DTMF_Tx_Method_1_ group="Ext_1/Audio_Configuration">INFO</DTMF_Tx_Method_1_> </flat-profile>
Параметры конфигурационных файлов
Не обязательно описывать все параметры в конфигурационных файлах. Достаточно указать те, которые требуется установить (поменять).
Параметр | Назначение |
---|---|
Admin_Password | Пароль для доступа к административному режиму работы с конфигурацией телефона. (Только для аппарата SPA525G2). |
Profile_Rule | Имя (путь) конфигурационного файла, который должен быть загружен телефонов при следующей загрузке. |
Dictionary_Server_Script | |
Upgrade_Rule | |
Proxy_1 | |
Register_1 | |
Use_DNS_SRV_ | Определяет, по какому типу DNS записи будет определяться IP-адрес сервера, на которому необходимо зарегистрироваться. Если установоено в Yes то будут посылаться DNS SRV запросы. Если No то посылаются запросы DNS A-записи. |
Display_Name_1 | |
User_ID_1 | |
Password_1 | |
Auth_ID_1 | |
Use_Auth_ID | |
DTMF_Tx_Method_1 | |
Extension_2_ | Учетная запись для линии 2 (кнопки 2). Может принимать значения 1-4 (для телефонных аппаратов с 4-мя учетными записями) или Disabled. Установленная опция Disabled отключает линию. |
Удалённое управление
Телефонным аппаратом можно управлять удалённо посредством HTTP запросов (через CURL или обычным браузером). Вот некоторые запросы, которые можно использовать:
Команда | Запрос |
---|---|
Перезагрузка телефона | http://<Phone_IP_Address>/admin/reboot |
Обновление прошивки | http://<Phone_IP_Address>/admin/upgrade?http://<Server_IP_Address>/<path/to/firmware.bin> |
Обновление конфигурации | http://<Phone_IP_Address>/admin/resync?tftp://<Server_IP_Address>/<имя конфигурационного файла> |
Просмотр активной конфигурации | http://<Phone_IP_Address>/admin/spacfg.xml |
Обновление прошивки с версии 7-4-х на 7-5-х
Если производится обновление прошивки телефона с версии младше 7-5-2b на версию старше 7-5-2b, сначала необходимо произвести обновление на 7-5-2b. Иначе телефон будет перезагружаться каждый час, пытаясь установить прошивку заново. Т.е. если производится апдейт прошивки с версии, например, 7-4-9с на 7-5-5, нужно сначала обновиться с версии 7-4-9с до версии 7-5-2b, а затем с 7-5-2b на 7-5-5.
В конфигурационном файле можно использовать следующее правило для обновления прошивки:
<Upgrade_Rule ua="na">( $SWVER lt 7.5.2b )? tftp://192.168.1.1/spa50x-30x-7-5-2b.bin | tftp://192.168.1.1/spa50x-30x-7-5-5.bin </Upgrade_Rule>
В данном апгрейд-правиле условие проверки версии, телефон сам проверяет, если версия меньше 7.5.2B — скачивать 7.5.2b. Если не меньше — то 7.5.5
Установка изображения на SPA502G, SPA504G
Требования к изображению:
- BMP
- монохромная
- 128х48
Стоит иметь в виду, что нижние 5 пикселей занимают кнопки типа redial, dir, dnd и прочие. Поэтому снизу до самого изображения нужно оставлять БОЛЬШЕ 5 пикселей. Вверх вплотную также не следует помещать изображение, чтобы оно не сливалось со строкой, где написаны дата и время.
Изображение нужного формата закачать на HTTP сервер, например, в директорию /var/www/localhost/htdocs/static/images/, где /var/www/localhost/htdocs - DocumentRoot
В конфигурационный файл телефонного аппарата добавить строки:
<flat-profile> .. <BMP_Picture_Download_URL>http://ip_адрес_сервера/static/images/имя_файла.bmp</BMP_Picture_Download_URL> <Select_Background_Picture>BMP Picture</Select_Background_Picture> .. </flat-profile>
После этого перезагрузить телефон.
Телефонная книга
Возможно создание единой телефонной книги для всех аппаратов CISCO. Для этого на HTTP сервере нужно расположить XML файл следующего содержания:
<CiscoIPPhoneDirectory> <Title>Заголовок телефонной книги</Title> <Prompt>Выберите контакт</Prompt> <DirectoryEntry> <Name>Антон</Name> <Telephone>104</Telephone> </DirectoryEntry> <DirectoryEntry> <Name>Файбекс</Name> <Telephone>84957485588</Telephone> </DirectoryEntry> </CiscoIPPhoneDirectory>
Для подключения единой телефонной книги на аппаратах CISCO, в настройках телефонного аппарата через административный WEB интерфейс, в меню Phone, секции XML Service, указать:
XML Directory Service URL: http://192.168.1.1/phonebook.xml XML Directory Service Name: Corp phonebook
Сisco SPA50X способен обработать телефонную книгу в 86 записей (кто-то писал, что загружаемый файл с телефонной книгой не должен превышать 10240 байт или 32 записи, у меня же получилось подгрузить 86). Но в CISCO возможно создание поддиректорий, например, по подразделениям, площадкам. Таким образом единый файл разбивается на несколько файлов по площадкам и можно получить список абонентов.
Для создания меню с вложенными подменю нужно создать XML файл и расположить его на HTTP сервере.
Error rendering macro 'code': Invalid value specified for parameter 'firstline'<CiscoIPPhoneMenu> <Title>Phonebook menu</Title> <Prompt>Select sub-menu</Prompt> <MenuItem> <Name>Menu option 1</Name> <URL>http://192.168.1.1/phonebook_1.xml</URL> </MenuItem> <MenuItem> <Name>Menu option 2</Name> <URL>http://192.168.1.1/phonebook_2.xml</URL> </MenuItem> </CiscoIPPhoneMenu>
Стоит учитывать, что пункты меню, заголовок и промт должны быть написаны латинскими буквами.
Аналогичные файлы телефонной книги подойдут и для CISCO CP79XX.
Более подробное описание находится здесь: http://www.voip-info.org/wiki/view/Asterisk+Cisco+79XX+XML+Services
Настройка панели расширения
Настройка клавиш на панели производится в веб интерфейсе конкретного телефонного аппарата, к которому подключена панель. При просмотре интерфейса в режиме admin / advanced, доступна вкладка Attended console, на которой и представлены параметры клавиш панелей расширения.
ВАЖНОЕ ЗАМЕЧАНИЕ: Панель работает тогда, когда зарегистрирована первая линия EXT1 на телефоне.
Для работы с Asterisk панели расширения, нужно указать параметры:
Subscribe Expires: 900 Server Type: Asterisk Attendant Console Call Pickup Code: *7
Код перехвата *7 соответствует комбинации pickupexten в конфигурационном файле features.conf
Каждая клавиша программируется строкой вида:
fnc=sd+blf+cp;sub=35890@192.168.1.11;nme=35890
- fnc - это функции клавиши:
- sd - быстрый набор
- blf - отображение занятости абонента
- cp - перехват вызова
- sub - запрос для обращения к номеру абонента на АТС при вызове функции
- nme - номер абонента
Здесь 35890 - номер абонента, который контролируется; 192.168.1.11 - IP адрес сервера телефонии.
Таким образом, для тогда чтобы клавиша работала только для быстрого вызова, нужно прописать:
fnc=sd;sub=084992621305@192.168.2.1;nme=084992621305
Также необходимо произвести редактирование конфигурационных файлов. В номерном плане, в extensions.conf должен быть контекст
[hints] exten => _1XX,hint,SIP/${EXTEN}
Где _1XX - маска номеров внутренних абонентов. Похожий контекст в AEL работать НЕ будет! В конфигурационном файле sip.conf, секции [globals] должны быть раскомментированы и указаны следующие параметры:
allowsubscribe=yes subscribecontext=hints notifyringing=yes notifyhold=yes callcounter=yes limitonpeer=yes
Отключение режима SPCP
Для новых телефонов, которые ранее не были подключены к сети
- Включите телефонный аппарат
- Нажмите клавишу меню
- Перейдите в раздел «Call Control Settings»
- Для параметра «SPCP Auto Detect» установите значение «No» и нажмите клавишу «Save»
- Телефон перезагрузится
- Подключите телефон к ЛВС, он получит IP адрес и конфигурационный файл с настройками
Для телефонов, которые уже подключены к сети и находятся в режиме SPCP
- Отключите сетевой кабель и перезагрузите телефон.
- Нажмите клавишу меню
- Выберите пункт «factory reset»
- Телефон перезагрузится
- Нажмите клавишу меню
- Перейдите в раздел «Call Control Settings»
- Для параметра «SPCP Auto Detect» установите значение «No» и нажмите клавишу «Save»
- Телефон перезагрузится
- Подключите телефон к ЛВС, он получит IP адрес и конфигурационный файл с настройками
Отладка
Если телефон перезагружается каждую минуту, значит в общем конфигурационном файле для моделей и личном конфигурационном файле для аппарата (па мак адресу) есть одинаковые параметры. Параметры не должны повторяться в файлах.
Можно включить логгирование на syslog сервер. Для этого, если syslog установлен на Gentoo (используется syslog-ng) необходимо в конфигурационном файле /etc/syslog-ng/syslog-ng.conf внести следующие изменения:
options { ... create_dirs(yes); #will recursively create log files/directories if necessary }; # The port where the logs will be sent to by the clients source remote_log {udp(ip("SERVERIPADDRESS") port(514));}; # where to log the files on the server. $HOST is a macro and will be replaced by the hostname sending the log destination remote {file("/var/log/remote.d/$HOST.log");}; # link the source to the destination log {source(remote_log); destination(remote);};
Создать директорию /var/log/remote.d Дать её права 777. После этого применить конфигурацию для logger сервера.
Можно использовать любой другой syslog сервер (например GrayLog)
В самом телефонном аппарате нужно выполнить следующее:
1. Configure your phone by directing your browser to:
http://<IP_address_of_Phone>/admin/advanced [WIP310: http://<IP_address_of_WIP310>/admin/ ]
Example: http://192.168.0.100/admin/advanced if the phone's IP address is 192.168.0.100
2. Enable Debug Messages by editing the following fields:
- Phone's web-ui > System tab > Optional Network Configuration > Debug Server: <IP address of syslog server> Example: 192.168.0.200
[if you are capturing with Wireshark, you do not need to use a valid syslog server's IP address, any "fake" address can be used, example 10.0.0.1] - iPhone's web-ui > System tab > Optional Network Configuration > Debug Level: 3
- Phone's web-ui > Ext N > SIP Settings > SIP Debug Option: full
3. Enable Syslog Messages by editing the following: [step 3b is not needed if you have enabled Debug]
Phone's web-ui > System tab > Optional Network Configuration > Syslog Server: <IP address of syslog server> Example: 192.168.0.200
4. Scroll down and click Submit All Changes
The Phone will reboot and send all debug / syslog messages to the specified IP address of the syslog server.
[Don't forget to make sure that your syslog server is running and that its IP address is what you configured on the phone.]
Tips
Ожидание вызова (CallWaiting)
Call waiting alerts you when you are on a call by ringing your phone and displaying a status message that another call is ringing. If you turn call waiting off, incoming calls do not ring your phone if you are on another call, and the caller hears a busy signal or message.
Второй входящий звонок может мешать оператору, отвлекать от работы. Для включения или отключения функции call waiting на телефонном аппарате:
- Зайдите на WEB интерфейс телефона
- Во вкладке Voice, выберите вкладку User.
- В разделе «Supplementary Services» найдите опцию «CW Setting».
- Выберите «yes» или «no» для включения или отключения функции.
- Внизу страницы нажмите «Submit All Changes»
Отключить гудок в ухо при поступлении второго звонка на вторую линию
В настройках телефона Admin → Advanced → Regional изменить параметр Call Waiting Tone в секции Call Progress Tones на значение
0@-10;30(.3/9.7/1)
Этот же параметр может быть задан в индивидуальном конфигурационном файле
<Call_Waiting_Tone>0@-10;30(.3/9.7/1)</Call_Waiting_Tone>
Групповое уведомление Paging
Функция Paging осуществляется уведомление всех абонентов, у кого телефоны SPA5XX, в локальной сети. Функция позволяется одному абоненту произвести голосовое уведомление всех остальных абонентов по громкой связи, при этом происходит автоматическое поднятие трубки на всех телефонных аппаратах.
В настройках телефонного аппарата, в вкладке Voice → Phone, в разделе Multiple Paging Group Parameters имеется параметр Group Paging Script, который определяет настройки группового уведомления:
pggrp=224.168.168.168:34560;name=All;num=800;listen=yes;
- 224.168.168.168:34560 - это multicast адрес и порт, куда шлёт телефон пакеты для уведомления. Рекомендации о мультикаст можно почитать тут: http://clusterlabs.org/doc/en-US/Pacemaker/1.1-crmsh/html/Clusters_from_Scratch/_notes_on_multicast_address_assignment.html
- num=800 - это номер, который нужно набрать на телефонном аппарате, для вызова группового уведомления.
- listen=yes - параметр, который указывает телефону, нужно ли отвечать на групповое уведомление или нет. Т.е. можно установить значение no, тогда с телефона можно будет производить групповое уведомление, но сам телефон слушать групповые уведомления не будет.
Этот параметр так же можно прописать в конфигурационном файле:
<Group_Paging_Script>pggrp=224.168.168.168:34560;name=All;num=800;listen=yes;</Group_Paging_Script>
Установка времени на телефонном аппарате
http://ip/admin
Regional -> Miscellaneous -> Time Zone
Перезагрузка телефонов каждый час
Телефонные аппараты могут перезагружаться каждый час самостоятельно в случае, если телефоны были настроены вручную и для них отсутствует индивидуальный конфигурационный файл.
Данной ситуации также соответствую значения следующих параметров:
- Resync Fails On FNF: yes - file-not-found response
- Resync Error Retry Delay: 3600
Телефоны перезагружаются в попытке получить конфигурационный файл, которого нет.
Сброс на Factory Defaults
- For Cisco SPA phone mode SPA301 lift the handset and enter ****, enter 7373 and press #, press 1 to confirm, hang up to exit and begin the restore process, phone will be reset to the factory default settings.
- For Cisco SPA phone models SPA502G, SPA504G, SPA508G, SPA509G press the Setup button, scroll to Factory Reset and press select, phone will be reset to the factory default settings.
- For Cisco SPA phone model SPA501G press the Setup button, enter 73738, then press #, enter 1 to confirm, hang up to exit and begin the restore process, phone will be reset to the factory default settings.
- For Cisco SPA phone model SPA525G press the Setup button, select Device Administration, scroll to Factory Reset, press Select, phone will be reset to
the factory default settings.