Простая схема реализации виртуальной мини-АТС в офисе

Задача: в офисе имеется сервер CentOS с установленным Asterisk и TFTP и некоторое количество телефонов Cisco 7911. Необходимо организовать виртуальную офисную мини-АТС. Все телефоны будут находиться в одной локальной сети и использовать номера сегмента 2xx и 3xx. Питание на телефоны подается через PoE.

Настройка sip.conf

Для простого варианта офисной АТС, Asterisk не требует тщательных настроек. Необходимо отключить "гостевые" звонки:

allowguest=no 

Задать локальный сегмент сети:

localnet=172.16.0.0/12           ; Another RFC1918 with CIDR notation

Прописать необходимые шаблоны:

[cisco-phones](!)
type=friend
qualify=no
port=5060
nat=no ;ОБЯЗАТЕЛЬНО ИМЕННО ТАК
host=dynamic
dtmfmode=rfc2833
context=from-office
canreinvite=no
call-limit=2
directmedia=no ;понадобится в будущем для записи разговоров

[my-codecs](!) 
disallow=all
allow=ilbc
allow=g729
allow=gsm
allow=g723
allow=ulaw

Прописать номера, которые будут использоваться во внутренней сети:

[201](cisco-phones,my-codecs)
        secret=kL4h4aJz
[202](cisco-phones,my-codecs)
        secret=EbdunSQf
[203](cisco-phones,my-codecs)
        secret=xLLrfH96
....

Первоначальная настройка сервера

Распаковываем и заливаем прошивку в папку TFTP /var/lib/tftpboot (самый простой вариант - закачать ее на свой FTP или Web-сервер и загрузить оттуда с помощью wget). Для каждого экземпляра телефона Cisco 7911 требуется создать на TFTP файл вида SEP--MAC--.cnf.xml, где --MAC-- - это mac-адрес телефона без пробелов и дефисов. В архиве уже есть пример файла, в который нужно вписать IP-адрес asterisk-сервера (====IP_АДРЕС_АТС====, прописывается в нескольких местах файла), внутренний номер телефона (====EXTENSION_NUMBER====) и пароль (====ПАРОЛЬ====).

Пример SEP--MAC--.cnf.xml

Для большего удобства, можно создать симлинки на XML-файл настроек, назвав его номером телефона:

MC с открытой папкой tftpboot

Создание TFTPD-записи DNS-сервера

При включении в режиме прошивки, Cisco 7911 пытается определить где находится TFTP-сервер при помощи специальной записи DHCP с кодом 66. В нашем случае, в качестве DNS-сервера выступает Mikrotik. В его настройках необходимо создать опцию в разделе DHCP Server - Options, а затем подключить эту опцию для нашей сети. Обратите внимание, что адрес TFTD-сервера (в нашем случае 172.16.1.4) в последних версиях прошивок Mikrotik надо указывать в виде s'172.16.1.4' (см. картинку).

Настройка DHCP-записи Mikrotik

Прошивка телефонов Cisco 7911

После того, как мы создали необходимое количество XML-файлов настроек, можно приступать к прошивке телефонов. Необходимо сразу при включении зажать кнопку "#", после того как замигает светодиод на трубке, набрать 123456789*0#

Телефон, с помощью DHCP-записи с кодом 66, определит IP-адрес сервера TFTPD и загрузит оттуда свежую прошивку. Обычно, это занимает 5-10 минут.

Настройка времени телефона

В архиве в примере настроек телефона установлено стандартное московское время. В случае, если требуется другое время, необходимо прописать нужный часовой пояс. Список можно посмотреть здесь.

В нашем случае, подходит часовой пояс города Иерусалим (киевское время):

Настройки часового пояса

Настройка лейбла и имени абонента

Чтобы имя абонента отображалось при звонках другим абонентам АТС, его необходимо указать в файле настроек в тэге <displayname>:

displayname тэг

Лейбл, который отображается на экране необходимо прописать в тэге <phoneLabel> (не более 10 символов, иначе файл настроек не прочитается):

phonelabel тэг

Оба эти тэга пристутсвуют в примере файла настроек, необходимо только заполнить их.

Настройка dialplan.xml

Для того, чтобы телефон звонил после набора 3-х цифр номера не ожидая дальнейших нажатий, необходимо на TFTP-сервере сделать соответствующую запись в файл dialplan.xml (в нашем случае используется сегмент номеров 2хх и 3хх):

<DIALTEMPLATE>
        <TEMPLATE MATCH="2.." TIMEOUT="0" User="Phone"/>
        <TEMPLATE MATCH="3.." TIMEOUT="0" User="Phone"/>
</DIALTEMPLATE>

Телефонная книга абонентов

Установка Apache

Для организации телефонной книги необходим web-сервер. В нашем случае, подойдет Apache. Настройка виртуальных хостов не требуется.

yum -y install httpd
systemctl enable httpd
systemctl start httpd
firewall-cmd --permanent --add-port=80/tcp

Если Apache у нас больше ни для чего не планируется использовать, лучше ограничить доступ к нему локальной сетью. Для этого в файле /etc/httpd/conf/httpd.conf :

#В блоке
<Directory "/var/www/html">
#находим строку
#Require all granted и комментируем ее. Добавляем строку
Require ip 172.16.1

Кроме этого, необходимо полностью закомментировать содержимое файла /etc/httpd/conf.d/welcome.conf

Создаем телефонную книгу

По причине малого количества абонентов и нечастого их изменения, сформируем телефонную книгу вручную. Создадим 2 XML-файла в корне Web-сервера /var/www/html/:

  1. directory.xml - список отделов (в нашем случае отдел будет 1), который содержит ссылки на соотв. телефонные книги в формате XML
  2. phonebook.xml - телефонная книга в формате XML
<!-- directory.xml -->
<CiscoIPPhoneMenu>
<MenuItem>
  <Name>Тел. книга</Name>
    <URL>http://172.16.1.4/phonebook.xml</URL>
</MenuItem>
</CiscoIPPhoneMenu>
<!-- phonebook.xml -->
<CiscoIPPhoneDirectory>
  <Title>Телефонная книга</Title>
    <Prompt>Выберите и нажмите "Набор"</Prompt>
      <DirectoryEntry>
          <Name>Иванов Иван Иванович</Name>
          <Telephone>201</Telephone>
    </DirectoryEntry>
    <DirectoryEntry>
      <Name>Петров Олег Алексеевич</Name>
      <Telephone>202</Telephone>
    </DirectoryEntry>
</CiscoIPPhoneDirectory>

Пропишем тэг directoryURL

Для того, чтобы телефоны знали по какому адресу находится адресная книга, необходимо указать адрес к ней в файле настроек в тэге <directoryURL> :

7.png

Саму телефонную книгу можно открыть на телефоне с помощью кнопок Меню - 2 - 5

Замена логотипа Cisco

Телефоны Cisco 7911 поддерживают замену стандартного логотипа на свой. Эта модель читает картинки формата PNG с разрешением 95х34 пиксела. Также, для превью нам понадобятся картинки разрешением 23х8. Подробнее про эту и другие модели Из-за монохромного дисплея в Cisco 7911, логотип преобразуется фактически в двухцветный.

В корне TFTP (/var/lib/tftpboot/) создаем папки Desktops/95x34x1/

Логотип на Cisco 7911

В этом каталоге необходимо создать файл List.xml, в который пропишем имена файлов логотипов и их превью:

<CiscoIPPhoneImageList>
  <ImageItem Image="TFTP:Desktops/95x34x1/company-small.png" URL="TFTP:Desktops/95x34x1/company.png"/>
  <ImageItem Image="TFTP:Desktops/95x34x1/smile-small.png" URL="TFTP:Desktops/95x34x1/smile.png"/
</CiscoIPPhoneImageList>

Для установки логотипа необходимо:

  1. зайти в меню телефона
  2. разблокировать настройки с помощью комбинации клавиш **#
  3. в пользовательских настройках фонового изображения установить нужный логотип

Логотип на экране Cisco 7911

Материалы, используемые при изучении вопроса:

  1. https://habr.com/ru/post/121140/
  2. TFTP Verbose - полезно для отладки, чтобы узнать по какому адресу стучится Cisco. TFTP пишет в syslog (для просмотра используйте команду journalctl)
  3. Создание телефонного справочника для ip-телефонов Cisco
  4. Asterisk phone cisco 79×1 xml configuration files for SIP
  5. Complete Guide for configuring various Cisco 79XX IP Phones with Asterisk
  6. How to add custom background images to your desk phone (the hard way)
  7. Cisco за NAT'ом
  8. Настройка DHСP сервера на Mikrotik как часть auto provisioning`а для телефонов

Похожие материалы

Комментарии