Разработчик и интегратор VoIP решений
Работаем по всей России и СНГ
Заказать звонок

Техническая база знаний

Cisco SPA IP Phone

Конфигурационные файлы

Телефонные аппараты могут получать свои настройки, читая конфигурационные файлы. Для того, чтобы телефоны получали конфигурационные файлы автоматически при загрузке, DHCP сервер должен выдавать опцию 66 с указанием IP адреса TFTP сервера (DHCP опция 66 указывает на TFTP сервер в сети). Помимо этого, в настройках телефонов нужно указать протокол поиска конфигурационных файлов TFTP. Для этого нужно зайти в настройки телефонного аппарата Admin → Advanced → Provisioning и изменить параметр Transport protocol на tftp.
После перезагрузки, при получении 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 

В общий конфигурационный файл рекомендуется выносить настройки, общие для всех телефонных аппаратов одной модели. Пример общего конфигурационного файла ниже:

spa$PSN.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 адресу), в частности реквизиты учетной записи при подключении к серверу телефонии.

spa$MA.xml
<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
Display_Name_1
User_ID_1
Password_1
Auth_ID_1
Use_Auth_ID
DTMF_Tx_Method_1


Телефонным аппаратом можно управлять удалённо посредством 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-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 файл следующего содержания:

phonebook.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 должен быть контекст

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

Для новых телефонов, которые ранее не были подключены к сети 

  1. Включите телефонный аппарат 
  2. Нажмите клавишу меню 
  3. Перейдите в раздел «Call Control Settings» (пункт 22) 
  4. Для параметра «SPCP Auto Detect» (пункт 2) установите значение «No» и нажмите клавишу «Save» 
  5. Телефон перезагрузится 
  6. Подключите телефон к ЛВС, он получит IP адрес и конфигурационный файл с настройками 

Для телефонов, которые уже подключены к сети и находятся в режиме SPCP 

  1. Отключите сетевой кабель и перезагрузите телефон. 
  2. Нажмите клавишу меню 
  3. Выберите пункт «factory reset» (пункт 7) 
  4. Телефон перезагрузится 
  5. Нажмите клавишу меню 
  6. Перейдите в раздел «Call Control Settings» (пункт 22) 
  7. Для параметра «SPCP Auto Detect» (пункт 2) установите значение «No» и нажмите клавишу «Save» 
  8. Телефон перезагрузится 
  9. Подключите телефон к ЛВС, он получит IP адрес и конфигурационный файл с настройками


XMLDefault.cnf.xml
<Default>
  <device>
    <deviceProtocol>SIP</deviceProtocol>
    <callManagerGroup>
      <members>
        <member  priority="0">
        <callManager>
          <ports>
            <ethernetPhonePort>2000</ethernetPhonePort>
          </ports>
          <processNodeName>10.147.163.139</processNodeName>
        </callManager>
        </member>
      </members>
    </callManagerGroup>
  <device>
</Default>



Если телефон перезагружается каждую минуту, значит в общем конфигурационном файле для моделей и личном конфигурационном файле для аппарата (па мак адресу) есть одинаковые параметры. Параметры не должны повторяться в файлах. 

Можно включить логгирование на 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 на телефонном аппарате: 

  1. Зайдите на WEB интерфейс телефона 
  2. Во вкладке Voice, выберите вкладку User. 
  3. В разделе «Supplementary Services» найдите опцию «CW Setting». 
  4. Выберите «yes» или «no» для включения или отключения функции. 
  5. Внизу страницы нажмите «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 осуществляется уведомление всех абонентов, у кого телефоны SPA5XX, в локальной сети. Функция позволяется одному абоненту произвести голосовое уведомление всех остальных абонентов по громкой связи, при этом происходит автоматическое поднятие трубки на всех телефонных аппаратах. 

В настройках телефонного аппарата, в вкладке VoicePhone, в разделе 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

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.