[Из песочницы] Телефоны CISCO 7942G и 7940 в связке с Asterisk 11

Попали в мои руки данные аппараты. С Cisco я не очень дружу, потому полез в гугл и таки настроил эти аппараты. Очень помогла эта статья, но и в ней есть ошибки, которые не совместимы с некоторыми ревизиями 7942G.

Из коробки телефоны работают с цисовскими протоколами, потому надо сначала прошить на SIP.

Начнем с нуля.

Настроим DHCP


DHCP в моем случае выступает MikroTik. Добавляем в свойства DHCP сервера 150 опцию со значением ‘10.1.1.1’, где 10.1.1.1 – ваш будущий TFTP сервер. Прописываем именно с одинарными кавычками. В некоторых случаях говорят указывать как 66 опцию, но с ней у меня не работало.

Поднимаем TFTP


Я все делал на все том же CentOS 6.7. Тут все просто. tftp-server есть в стартовой поставке, потому ставить его не надо. Если что:

yum install tftp-server


Включаем его и пусть пишет логи.

nano /etc/xinetd.d/tftp


В этом файле нас интересуют строки server_args и disable. Первое приводим к виду:

-p -c -u root -s /tftpboot -v

Второе просто ставим no.

Создадим папку и дадим права:

mkdir /tftpboot && chmod 777 /tftpboot


Перезагружаем и радуемся:

service xinetd restart


Прошивка и настройка 7942G


Собрал файл – настройки, прошивка и русская локаль. Просто разархивируем в корень /tftpboot. Скачать можно тут.

Сразу настроим телефон. В файле SEPmymac.cnf.xml меняем SIP_NUM на номер пользователя на астериске, SIP_PASS соотвественно пароль. Вместо 10.1.1.99 указываем свой сервер телефонии. Сам файл переименовываем – mymac меняем на мак устройства заглавными буквами.

В строке:

<timeZone>GMT Standard/Daylight Time</timeZone>


Указываем часовой пояс. У цисок все свое, даже часовые пояса. Часовой пояс Калининграда искал полдня. В итоге вот:

Заголовок спойлера

1 Dateline Standard Time -720
2 Samoa Standard Time -660
3 Hawaiian Standard Time -600
4 Alaskan Standard/Daylight Time -540
5 Pacific Standard/Daylight Time -480
6 Mountain Standard/Daylight Time -420
7 US Mountain Standard Time -420
8 Central Standard/Daylight Time -360
9 Mexico Standard/Daylight Time -360
10 Canada Central Standard Time -360
11 SA Pacific Standard Time -300
12 Eastern Standard/Daylight Time -300
13 US Eastern Standard Time -300
14 Atlantic Standard/Daylight Time -240
15 SA Western Standard Time -240
16 Newfoundland Standard/Daylight Time -210
17 South America Standard/Daylight Time -180
18 SA Eastern Standard Time -180
19 Mid-Atlantic Standard/Daylight Time -120
20 Azores Standard/Daylight Time -60
21 GMT Standard/Daylight Time +0
22 Greenwich Standard Time +0
23 W. Europe Standard/Daylight Time +60
24 GTB Standard/Daylight Time +60
25 Egypt Standard/Daylight Time +60
26 E. Europe Standard/Daylight Time +60
27 Romance Standard/Daylight Time +120
28 Central Europe Standard/Daylight Time +120
29 South Africa Standard Time +120
30 Jerusalem Standard/Daylight Time +120
31 Saudi Arabia Standard Time +180
32 Russian Standard/Daylight Time +180
33 Iran Standard/Daylight Time +210
34 Caucasus Standard/Daylight Time +240
35 Arabian Standard Time +240
36 Afghanistan Standard Time +270
37 West Asia Standard Time +300
38 Ekaterinburg Standard Time +300
39 India Standard Time +330
40 Central Asia Standard Time +360
41 SE Asia Standard Time +420
42 China Standard/Daylight Time +480
43 Taipei Standard Time +480
44 Tokyo Standard Time +540
45 Cen. Australia Standard/Daylight Time +570
46 AUS Central Standard Time +570
47 E. Australia Standard Time +600
48 AUS Eastern Standard/Daylight Time +600
49 West Pacific Standard Time +600
50 Tasmania Standard/Daylight Time +600
51 Central Pacific Standard Time +660
52 Fiji Standard Time +720
53 New Zealand Standard/Daylight Time +720


Парой строчек ниже указывается NTP сервер. Я для этих целей поднял его на все том же CentOS, где крутится Asterisk.

NTP сервер


Для начала установим, если не стоит:

yum install ntp


Конфиг лежит в /etc/ntp.conf. Добавляем туда строчку, где указываем подсеть, у которой есть доступ к этому серверу.

restrict 10.0.0.0 mask 255.0.0.0 nomodify notrap

Стартуем сервер:

/etc/init.d/ntpd start


Непосредственно прошивка


При включении Cisco 7942 теперь будут пытаться подтянуть конфиг с TFTP сервера. В конфиге так же указана прошивка, её он тоже подтянет. Итого он должен загрузится с нужной прошивкой, настройками и локалью. Это займет время, но весь процесс будет отображаться на экране.

Для нормальной работы 7942G требуется еще файл dialplan.xml, который так же должен лежать в корне TFTP сервера. Вставляем в него следующее содержимое.

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


7940


Ко мне данный аппарат попал уже прошитый, но логика примерно такая же. Конфиг выглядит следующим образом:

# SIP Default Configuration File

# Image Version
# image_version: P0S3-8-12-00


# Proxy Server

proxy1_address: "10.1.1.99"
proxy2_address: "";
proxy3_address: "";
proxy4_address: "";
proxy5_address: "";
proxy6_address: "";


# Proxy Server Port (default - 5060)

proxy1_port: 5060
proxy2_port: 5060
proxy3_port: 5060
proxy4_port: 5060
proxy5_port: 5060
proxy6_port: 5060


# Proxy Registration (0-disable (default), 1-enable)

proxy_register: 1


# Phone Registration Expiration [1-3932100 sec] (Default - 3600)

timer_register_expires: 600


# Codec for media stream (g711ulaw (default), g711alaw, g729a)

preferred_codec: g711alaw


# NAT/Firewall Traversal

nat_enable: 0; 0-Disabled (default), 1-Enabled
nat_address: ""; WAN IP address of NAT box (dotted IP or DNS A record only)
voip_control_port: 5060; UDP port used for SIP messages (default - 5060)
start_media_port: 16384; Start RTP range for media (default - 16384)
end_media_port: 32766; End RTP range for media (default - 32766)
nat_received_processing: 0; 0-Disabled (default), 1-Enabled

# SIP Configuration File
        # 7940 w/2 lines
 
        # Line 1 Parameters
        line1_name: "SIP_NUM"
        line1_shortname: "SIP_NUM"
        line1_authname: "SIP_NUM"
        line1_contact: "SIP_NUM"
        line1_displayname: "FirstName LastName"
        line1_password: "SIP_PASS"
 
        # Line 2 Parameters
   line2_name: ""
   line2_authname: ""
   line2_displayname: ""
   line2_password: ""
 
        # Phone Label (Text desired to be displayed in upper right corner)
        # Has no effect on SIP messaging
        phone_label: ""
 
        # Remote Access Parameters for console or telnet login
        phone_prompt:   "SIP Phone"
        phone_password: "cisco"
        user_info: none


Раскомментурем строчку image и указываем версию прошивки. Сами прошивки брать на официальном сайте или на торрентах. Файл конфига называем SIPmymac.cnf – вместо mymac опять таки мак-адрес устройства.

Допиливаем звонки.

Как установить картинку можно посмотреть тут.

© Habrahabr.ru