В данной небольшой статье мы рассмотрим базовую конфигурацию Call Manager Express и работу его с двумя телефонами. Эта конфигурация будет использоваться как базовая для последующих экспериментов (подключение SIP-телефонов, взаимодействие с CUCM и Unity. планов много).
В качестве СМЕ будем использовать роутер Cisco 3745 (вернее, его эмулятор на базе dynamips в GNS3. Дай бог здоровья людям, которые создали этот чудесный софт, из-за которого мы можем экономить кучу денег на железках).
Для начала давайте произведем первоначальную настройку, необходимую, чтоб можно было ходить через ssh. Живем мы не в каменном веке, так что удаленный доступ это наше все. Материалов на эту тему много, но, все же, позволю себе повториться. Итак, список команд, необходимых для удаленного доступа:
Router(config)#вот они, заветные слова про то, что ssh включен.
Router(config)#int fa0/0
Router(config-if)#ip address 192.168.10.20 255.255.255.0
Router(config-if)#no sh
Router(config-if)#
*Mar 1 00:10:50.235: %LINK-3-UPDOWN: Interface FastEthernet0/0, changed state to up
*Mar 1 00:10:51.235: %LINEPROTO-5-UPDOWN: Line protocol on Interface FastEthernet0/0, changed state to up
Router(config-if)#
Router(config-if)#exit
Router(config)#hostname CME
CME(config)#ip domain-?
domain-list domain-lookup domain-name
CME(config)#ip domain-name unix.nt
CME(config)#line vty 0 ?
<1-1340> Last Line number
<cr>
CME(config)#line vty 0 1340
CME(config-line)#password 0 123
CME(config-line)#login
CME(config-line)#transport input ssh
CME(config-line)#exit
CME(config)#enable password 0 mysuperpass
CME(config)#aaa new-model
CME(config)#username andrey password 0 qwerty
CME(config)#crypto key generate ?
rsa Generate RSA keys
<cr>
CME(config)#crypto key generate
The name for the keys will be: CME.unix.nt
Choose the size of the key modulus in the range of 360 to 2048 for your
General Purpose Keys. Choosing a key modulus greater than 512 may take
a few minutes.
How many bits in the modulus [512]: 1024
% Generating 1024 bit RSA keys, keys will be non-exportable...[OK]
CME(config)#
*Mar 1 00:14:00.047: %SSH-5-ENABLED: SSH 1.99 has been enabled
Поехали!
...и тут мой ssh-клиент
andrey@darkstar:~$ ssh 192.168.10.20как видно, это оттого, что на этот хост он уже заходил и там был другой ключ. Приятно, что обо мне беспокоятся, но не сегодня.
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!
Someone could be eavesdropping on you right now (man-in-the-middle attack)!
It is also possible that a host key has just been changed.
The fingerprint for the RSA key sent by the remote host is
ca:a6:5a:d2:22:66:0c:1d:be:19:98:14:4e:4f:16:7c.
Please contact your system administrator.
Add correct host key in /home/andrey/.ssh/known_hosts to get rid of this message.
Offending RSA key in /home/andrey/.ssh/known_hosts:6
RSA host key for 192.168.10.20 has changed and you have requested strict checking.
Host key verification failed.
andrey@darkstar:~$
rm .ssh/known_hostsи все работает
andrey@darkstar:~$ ssh 192.168.10.20Теперь нам надо бы настроить DHCP сервер. В данном конкретном случае можно обойтись без него, так как у нас только софт-фоны и настройка сетевого адаптера ПК может быть произведена вручную, но по-хорошему настроить его надо. Тем более, что в следующей статье планируется применить настольный телефон. DHCP-сервер используется всеми телефонами при загрузке. Так же при настройке необходимо указать адрес TFTP-сервера, телефоны будут загружать оттуда прошивку и конфиг (предварительно их на сервер надо будет залить, конечно). Следующие команды интуитивно понятны, поэтому не будем на них задерживаться, нас еще ждут великие дела.
The authenticity of host ‘192.168.10.20 (192.168.10.20)’ can’t be established.
RSA key fingerprint is ca:a6:5a:d2:22:66:0c:1d:be:19:98:14:4e:4f:16:7c.
Are you sure you want to continue connecting (yes/no)?
CME(config)#ip dhcp excluded-address ?option 150 - это как раз таки адрес TFTP сервера, который будет выдаваться по DHCP. Как видно, это адрес самого маршрутизатора. Пока мы не будем ничего размещать на TFTP-сервере.
A.B.C.D Low IP address
CME(config)#ip dhcp excluded-address 192.168.10.0 ?
A.B.C.D High IP address
<cr>
CME(config)#ip dhcp excluded-address 192.168.10.0 192.168.10.50
CME(config)#ip dhcp pool voice
CME(dhcp-config)#network 192.168.10.0 255.255.255.0
CME(dhcp-config)#default-router 192.168.10.20
CME(dhcp-config)#dns-server 192.168.10.1 ?
Hostname or A.B.C.D Server’s name or IP address
<cr>
CME(dhcp-config)#dns-server 192.168.10.1 8.8.8.8
CME(dhcp-config)#option 150 ?
ascii Data is an NVT ASCII string
hex Data is a hexadecimal string
instance Specify the option instance
ip Data is one or more IP addresses
CME(dhcp-config)#option 150 ip 192.168.10.20
CME(dhcp-config)#
Продолжим. Следующие настройки касаются исключительно телефонов, подключаемых по протоколу SCCP. В будущем подключим еще парочку телефонов по SIP.
Итак, включаем телефонию, вносим основные настройки:
CME(config)#telephony-service
CME(config-telephony)#max-ephones 5
CME(config-telephony)#max-dn 12
CME(config-telephony)#ip source-address 192.168.10.20
%Error deleting flash:SEPDEFAULT.cnf (No such file or directory)
%Error deleting flash:XMLDefault.cnf.xml (No such file or directory)
CME(config-telephony)#exitВидно, что роутер выдает нам ошибки, но, тем не менее, настройку принимает.
Немного пояснений:
max-ephone – максимальное допустимое количество подключаемых телефонов.
max-dn – максимальное количество номеров. DN (directory number) – что-то на подобии линии, номера телефона (понятие линии тут применять несколько некорректно, dn – это скорее номер, но для общего понимания некоторую аналогию провести можно). Соответственно, к одному телефону можно привязать несколько номеров. Из этого следует, что значение max-dn не имеет смысла делать меньше, чем max-ephone, так как у нас просто не хватит номеров на все телефоны.
Не стоит ставить значения больше, чем нам нужно. Под это количество заранее выделяется память и другие ресурсы, а их стоит беречь.
ip source-address – определяет адрес АТС, где телефон должен регистрироваться. В большинстве случаев (и в нашем тоже) это адрес интерфейса самого роутера. Полный возможный листинг команды несколько интереснее
ip source-address {ipv4_address | ipv6_address} [port port] [secondary {ipv4 address | ipv6 address} [rehome seconds]] [any-match | strict-match]часто указывается еще порт 2000. В нашем случае все настройки по умолчанию, никаких велосипедов выдумывать не надо, указываем только IP.
Теперь создаем линию, телефон и связываем их между собой.
CME(config)#ephone-dn 10 dual-line
CME(config-ephone-dn)#number 201
CME(config-ephone-dn)#exit
CME(config)#ephone 10
CME(config)#ephone ?
<1-5> Ethernet phone tag
CME(config)#ephone 1
CME(config-ephone)#username Jack_Daniels
CME(config-ephone)#type CIPC
CME(config-ephone)#mac-address 080027A678BA
^% Invalid input detected at ‘^’ marker.
CME(config-ephone)#mac-address ?
H.H.H Mac address
<cr>
CME(config-ephone)#mac-address 0800.27A6.78BA
CME(config-ephone)#button 1:10
Теперь с начала:
При создании ephone-dn (смотреть первую строку предыдущего листинга) можно указать несколько параметров: номер, который, особо ни на что не влияет (не путайте его с номером телефона) и тип линии. Рассмотрим возможные значения типа линии:
single-line – телефон в один момент времени может поддерживать только одну линию. Один разговор, один звонок. Если кто-то позвонит нам в момент разговора, то услышит сигнал «занято».
dual-line – телефон способен поддерживать двойную линию на этом номере. При разговоре возможен перевод звонка, прием другого звонка, ожидание вызова, конференц-связь и другие радости жизни.
octo-line – поддерживается много линий. Может понадобиться разве что на телефоне секретаря, потребляет достаточно много ресурсов маршрутизатора.
number – тут мы указываем номер, который будет присвоен телефону. Команду можно расширить добавив secondary XXX, соответственно еще один номер может быть присвоен.
button 1:10 - привязывание ранее созданного ephone-dn к телефону. Точнее, к кнопке 1 телефона или к первой линии. Современные телефоны могут поддерживать больше одной линии. К каждой из них можно привязать отдельный ephone-dn и, соответственно, отдельные номера. Еще один интересный момент: назначение кнопки происходит через разделитель : (двоеточие), На самом деле разделителей есть несколько разных, и от них зависит режим работы данной линии. Но это тема уже новой небольшой статьи.
type CIPC - тип телефона. Можно указать 7960, 7905 и другие. В нашем случае это Cisco IP Communicator (CIPC). Указывать параметр на данном этапе не обязательно.
mac-address - мак-адрес телефона. Обратите внимание, какой формат его указания. Мак-адрес можно взять из настроек софт-фона. В разделе Device name символы после SEP и будут мак-адресом. В настройки можно войти через кнопку меню, которая находится возле кнопок развернуть-свернуть-закрыть.
Важный момент: там же, в настройках, необходимо указать TFTP сервер вручную, иначе софт-фон не зарегистрируется. (второй адрес сервера я указал на будущее, поле можно заполнить нулями)
После всего вышеперечисленного наша телефонная система должна чудесным образом заработать. Смотрим... телефон зарегистрировался.
а в это время на роутере:
CME#show ephoneТак и есть, телефон зарегистрировался и готов осуществлять звонки.
ephone-1 Mac:0800.27A6.78BA TCP socket:[1] activeLine:0 REGISTERED in SCCP ver 15 and Server in ver 5mediaActive:0 offhook:0 ringing:0 reset:0 reset_sent:0 paging 0 debug:0IP:192.168.10.51 1104 CIPC keepalive 4 max_line 8button 1: dn 11 number 201 CH1 IDLE CH2 IDLE Username: Jack_Daniels
CME#
Обратите внимание, что к номеру 201 привязано два канала CH1 и CH2. Мы даже можем позвонить сами себе. Если бы в настройках ephone-dn было указано single-line, или ничего не указано, то канал был бы один CH1.
По аналогии добавим еще один телефон.
Смотрим , что на роутере после добавления еще одного телефона. Отключим первый сконфигурированный софт-фон для большей наглядности
CME#show ephoneКак видно, первый телефон в состоянии UNREGISTERED так как он сейчас выключен. Второй вполне себе включен и очень хорошо себя чувствует.
ephone-1 Mac:0800.27A6.78BA TCP socket:[-1] activeLine:0 UNREGISTEREDmediaActive:0 offhook:0 ringing:0 reset:0 reset_sent:0 paging 0 debug:0IP:192.168.10.52 1042 CIPC keepalive 5 max_line 8button 1: dn 10 number 201 CH1 DOWN CH2 DOWN Username: Jack_Daniels
ephone-2 Mac:0011.5BC3.DB03 TCP socket:[1] activeLine:0 REGISTERED in SCCP ver 20 and Server in ver 5mediaActive:0 offhook:0 ringing:0 reset:0 reset_sent:0 paging 0 debug:0IP:192.168.10.2 1517 CIPC keepalive 32 max_line 8button 1: dn 11 number 202 CH1 IDLE CH2 IDLE Username: Johny_Walker
CME#
Включаем второй и можем звонить с одного на другой. Приятных переговоров.
Если уже был установлен Cisco IP Communicator и подключен на другой хост то чтоб переподключить его к новой циске НЕОБХОДИМО сгенерить заново конфигурационные файлы:
ReplyDeleteconf t
telephony-service
create cnf-files
end
Ну и если какие то проблемы наблюдаются с регистрацией телефонов то можно смотреть образаются ли они к циске вообще
ReplyDeletedebug tftp events