K
K
ONFIGURACJA
ONFIGURACJA
PRZYKŁADOWEGO
PRZYKŁADOWEGO
SYSTEMU
SYSTEMU
V
V
O
O
IP.
IP.
ĆWICZENIE NR 7
ĆWICZENIE NR 7
KATEDRA ELEKTRONIKI
KATEDRA ELEKTRONIKI
POLITECHNIKA LUBELSKA
POLITECHNIKA LUBELSKA
A. Z
A. Z
AKRES
AKRES
ĆWICZENIA
ĆWICZENIA
Ćwiczenie polega na opracowaniu topologii, skonfigurowaniu routera firmy Cisco
2811 oraz uruchomieniu programowej centralki VoIP – CallManager Express oraz
telefonów Cisco 7940 oraz programowych telefonów Cisco IP Communicator.
B. W
B. W
YKORZYSTYWANE
YKORZYSTYWANE
URZĄDZENIA
URZĄDZENIA
I
I
OPROGRAMOWANIE
OPROGRAMOWANIE
.
.
•
Router Cisco 2811
•
Switch Catalyst 3750
•
telefony przewodowe Cisco 7940
•
telefon software’owy IPCommunicator
Serwer telefonii – CallManager.
Cisco CallManager jest programowym komponentem telefonii IP firmy
Cisco, tak zwanym serwerem telefonii IP. Można go nazwać odpowiednikiem PBX
(Private Branch Exchange), czyli dawnych centralek znajdujących się w większych
firmach, które służyły do komunikacji wewnętrznej oraz do dzwonienia „na
świat”. Jest on częścią tak zwanego AVVID ( Architecture for Voice , Video and
Integrated Data). Rozwiązanie firmy Cisco – CallManager jest adresowane do
dużych oraz średnich firm które chcą obniżyć koszty rozmów pomiędzy
rozproszonymi oddziałami firmy oraz abonentami korzystającymi ze zwykłych
analogowych telefonów.
Rys. 1 Pozycja CallManagera w hierarchii AVVID firmy Cisco.
Do głównych funkcji CallManagera należą :
•
zestawianie połączenia
•
sygnalizacja i kontrola urządzeń
•
plan oraz administracja numerami
•
cechy administracyjne telefonów
•
operacje, administracja, zarządzanie i zaopatrywanie w środki
1.1. Zasada działania.
W telefonii IP używa się, podobnie jak w klasycznej sieci telefonicznej,
"tradycyjnych" numerów telefonów. CallManager zajmuje się tłumaczeniem tych
numerów na aktualne adresy IP telefonów. Obsługuje on całość zadań związanych
z tzw. sygnalizacją, a więc wysyłanie "sygnału dzwonienia" do konkretnego
telefonu, przesyłanie informacji o numerze dzwoniącego, generowanie informacji o
ewentualnej zajętości numeru, zestawianie połączeń konferencyjnych,
przekierowywanie połączeń i wszelkie inne funkcje, jakie można spotkać w
klasycznych centralach telefonicznych. Warto zaznaczyć, że same pakiety niosące
dane głosowe nie przechodzą przez serwer. Serwer zajmuje się tylko zestawieniem
połączenia, a po jego zestawieniu dane przesyłane są już bezpośrednio pomiędzy
telefonami.
Rys. 2 Przebieg zestawiania połączenia w systemie CallManager.
Do poszczególnych kroków podczas tworzenia połączenia telefon IP – telefon IP
należą :
1.Podniesienie słuchawki z widełek telefonu – zasygnalizowanie do serwera
CallManager’a
2.CallManager żąda od telefonu odegrania tonu wybierającego numer ( pliki .wav
są zapisane w telefonie ), podanie przez użytkownika numeru telefonu do którego
chce się dodzwonic.
3.Kiedy CallManager rozpoznał numer telefonu, wybiera numer docelowego
telefonu.
4.Gdy telefon z którym było ustanawiane połączenie poprzez CallManagera
odpowiada, telefon generuje sygnał odwieszający do CallManagera.
5.CallManager informuje obydwa telefony o ustanawiania strumienia między nimi.
Kiedy strumień audio jest ustanowiony pomiędzy telefonami ( za pomocą RTP –
RealTime Transport Protocol), CallManager jest już niepotrzebny, i następuje
normalna komunikacja miedzy dwoma urządzeniami w sieci.
6.Strumień audio RTP używa UDP jako protokołu transportowego poprzez porty
od 16384 do 32767.
2. Topologia sieci
Rys. 3 Topologia sieci.
C. P
C. P
RZEBIEG
RZEBIEG
ĆWICZENIA
ĆWICZENIA
.
.
Konfiguracja routera Cisco 2811.
1. Konfiguracja interfejsów routera.
Do łączenia się telefonów IP z CallManager Express wykorzystujemy interfejs
FastEthernet.
interface FastEthernet0/0
ip address 10.0.0.1 255.255.255.0
duplex auto
speed auto
Do łączenia z sobą dwóch systemów CallManager wykorzystujemy interfejsy
Serial.
interface Serial0/0/1
ip address 10.0.1.1 255.255.255.0
clockrate 128000
Konfiguracja CallManager’a.
Konfiguracja CallManagera może być przeprowadzona na parę sposobów.
Najłatwiejszym jest wydanie polecenia
telephonyservice setup
w trybie konfiguracji
globalnej. Zadawany jest nam szereg pytań odnośnie dhcp ilości telefonów ich
numerów itp. Jest to konfiguracja automatyczna, polegająca na rejestrowaniu
telefonów bez potrzeby podawania adresów MAC określania numerów DN itp. W
ćwiczeniu wykorzystana będzie konfiguracja manualna.
1. Konfiguracja DHCP.
ip dhcp pool ITS
network 10.0.0.0 255.255.255.0
option 150 ip 10.0.0.1 ! regułka ta mówi telefonom jaki jest
! adres IP serwera tftp z którego po
! bierają konfigi oraz plik z systemem
defaultrouter 10.0.0.1
2. Określenie pliku z systemem.
Tftpserver flash:P003030214.bin
Poszczególne cyfry oznaczają numer systemu przeznaczonego dla określonej
rodziny telefonów IP. Należy zwrócić uwagę aby podać poprawną wersje pliku z
systemem dla telefonów. Zależy ona od modelu oraz IOS routera.
3. Uruchamianie usługi CallManager.
W trybie konfiguracji wydajemy polecenie :
Telephonyservice
Definujemy ilość telefonów IP oraz ilość Direcory Numbers (linnie):
maxephones 10
maxdn 20
Określamy typ oraz plik *.bin z systemem dla konretnych telefonów:
Load 79607940 P003030202014
Określamy adres oraz port na którym pracuje CallManager:
Ip sourceaddress 10.0.0.1 port 2000
Wydajemy polecenie które tworzy konfigi dla telefonów:
Create cnffiles
Oraz określamy czas co jaki telefony dają o sobie znać:
Keepalive 45
4. Uruchamianie telefonów.
Na początek określamy sobie directory numbers dla poszczególnych telefonów,
są to odpowiedniki numerów w normalnej sieci PSTN.
ephonedn 1 dualline
number 101
name Telefon101
Następnie tworzymy interfejs dla telefonu i dodajemy numer DN.
ephone 1
macaddress 0014.A9CA.FBF0
type 7940
button 1:1 ! wpis 1:1 określa nam pierwszy przycisk telefo
!nu (1:) oraz przypisanie do niego pierwszego
!numeru DN (:1)
5. Konfiguracja korporacyjnej książki adresowej.
W trybie konfiguracji globalnej wydajemy polecenie
telephoneservices
I następnie dodajemy interesujące nas wpisy:
directory entry 1 100 name wuwik
directory entry 2 101 name boczek
directory entry 3 102 name krzysio
directory entry 4 103 name kaska
directory entry 5 104 name pawel
6. Konfiguracja szybkich przycisków wybierania.
W konfiguracji poszczególnego telefonu dodajemy wpis:
speeddial 1 102 label tel102
Gdzie 1 oznacza pierwszy wolny przycisck szybkiego wybierania, 102 numer DN
jakiegoś telefonu oraz tel102 napis dla poszczególnego numeru DN wyświetlana na
LCD.
7. Definiowanie dostępu do poszczególnych funkcji telefonu.
Tworzymy sobie najpierw szablon :
ephonetemplate 1
softkeys idle Newcall Redial
softkeys seized Endcall
softkeys connected Endcall Hold Trnsfer Confrn
regułka idle określa nam przyciski soft key wyświetlane podczas normalnej pracy
telefonu (nic nie dotykamy), seized – kiedy użytkownik jest w czasie
wykonywania połączenia, connected przyciscki wyswietlane w trakcie
połączenia.
Następnie dodajemy w ten sposób stworzyony szablon do konkretnego telefonu:
ephone 2
ephonetemplate 1
8. Konfiguracja GUI dla administratora, customer user’a oraz normalnego
użytkownika.
Na początek musimy się upewnić, czy jest w pamięci flash odpowiedni
plik z GUI dla systemu CallManager. Posiada on nazwę cmegui1238T.tar,
gdzie numer to odpowiednia wersja dla IOS. Jeśli go mamy to rozpakowujemy
go
Archive tar /xtract flash:gui1238T.tar flash:
i przystępujemy do konfiguracji
Włączamy serwer http:
Ip http server
Określamy ścieżkę z rozpakowanymi plikami:
Ip http path flash:
Włączamy autentykacje dla użytkowników lokalnych:
ip http authentication local
Przechodzimy do konfiguracji telephoneservice i wydajemy polecenia:
Web admin system name ADMIN password HASLO
Określamy możliwość zmian numerów DN dla admina:
Dnwebedit
Oraz określamy możliwość zmian czasu dla telefonów przez interfejs
przegladarki:
Timewebedit
Teraz zajmiemy się tworzeniem customer administratora który ma ograniczone
prawa.
Tworzymy plik określający dostęp do wybranych funkcji dla customer admina
(przedstawiona jest tutaj część zawartości tego pliku):
<Presentation>
<MainMenu>
<AddExtension> Hide </AddExtension>
<DeleteExtension> Hide </DeleteExtension>
<AddPhone> Hide </AddPhone>
<DeletePhone> Hide </DeletePhone>
</MainMenu>
<Extension>
<SequenceNumber> Hide </SequenceNumber>
<Type> Hide </Type>
<Huntstop> Hide </Huntstop>
<Preference> Hide </Preference>
<HoldAlert> Hide </HoldAlert>
<TranslationRule> Hide </TranslationRule>
<Paging> Show </Paging>
<Intercom> Hide </Intercom>
<MWI> Hide </MWI>
<MoH> Hide </MoH>
<LBDN> Hide </LBDN>
<DualLine> Hide </DualLine>
<Reg> Hide </Reg>........................................
Daną usługę uaktywniamy poleceniem show a hide ją ukrywamy.
Kopiujemy ten plik do flasha na routerze orazy wydajemy polecenia:
Telephoneservice
web admin customer name NAZWA password HASLO
web customize load customeradm.xml
Dodajemy usera dla konkretnego telefonu:
Ephone 2
Username NAZWA password HASLO
GUI uruchamiamy z przeglądarki
http://10.0.0.1/ccme.html
9. Zestawianie peeringu z drugim CallManagerem.
Przechodzimy do trybu konfiguracji :
dialpeer voice 1 voip
Określenie numerów DN
destinationpattern 20..
Oraz IP z którym się zestawia połączenie
sessiontarget ipv4:10.0.1.2
telephoneservice
transferpattern 20..
transfersystem fullblind
Testowanie użytych kodeków.
Kodeki testowaliśmy na łączu serial. Przepustowość tego łącza maksymalnie
wynosiła 128 kbita/s. W przypadku zestawienia 2 połączeń z drugim
CallManagerem i zastosowaniu kodeka G.711 można było zauważyć dobrą jakość
dźwięku, brak opóźnień. Było to spowodowane tym że kodek ten zajmował całą
dostępne łącze. Ciekawą rzeczą jest to że w przypadku zestawiania więcej niż 2
połączeń np. w przypadku 3prowadzenie rozmowy było dalej możliwe. Ma na to
wpływ szereg czynników, protokół transportowy w tym przypadku było to TCP
oraz sam bufor dla interfejsów w routerze. W przypadku zmiany na protokół
transportowy UDP zauważyliśmy w przypadku prowadzenia 35 rozmów
pogorszenie transmisji. Głos był urywany i czasem niewyraźny. Było to łatwe do
przewidzenia ze względu na typ transmisji reprezentowany przez ten protokół.
Oprócz kodeka G.711 testowaliśmy G.729, oraz GSM. Przepływność tych
kodeków w jedną stronę sięga nawet 8 kbitów/s. Można było zauważyć nieznaczny
spadek jakości dźwięku. W przypadku prowadzenia maksymalnej liczby rozmów
która była ograniczona ilością posiadanych telefonów nie stwierdziliśmy
pogorszenia się transmisji.
Zmiany używanego kodeka nie można dokonąc na połączeniach lokalnych jedynie
na połączeniach CallManager – CallManager.
Wtym celu używa się poleceń:
Dialpeer voice 1 voip
codec g729br8
lub
codec gsmefr
Zmiana protokołu transportowego:
session transport tcp
lub
session transport udp
Użycie Cisco IP Communicatora.
Konfiguracja IP Communcatora jest niemalże identyczna jak normalnych
telefonów. Musimy tylko określić odpowiedni plik *.bin który ładujemy z serwera
tftp umieszczonego na routerze. Zamiast adresu sprzętowego MAC telefonu
podajemy adres naszej karty sieciowej zainstalowanej w komputerze.
Testowanie oraz sprawdzanie zaimplementowanej
konfiguracji.
Często możemy zauważyć że coś nie działa według naszej myśli. Najłatwiej jest
się posłużyć poleceniem show runningconfig ale czasem to nie wystarcza. W tym
celu mamy dostęp do poleceń typu debug bądź też show ephone telephone itp.
Szczegółowy podgląd tego co się dzieje z telefonami:
Debug ephone detail
*Jan 3 14:44:10.331: ephone1[1][SEP0014A9BDC3D7]: DN outofservice for DN 1 chan 1
*Jan 3 14:44:10.331: SkinnyGetCallState for DN 1 chan 1 IDLE
*Jan 3 14:44:10.331: called DN 1 chan 1, calling DN 1 chan 1 phone 1 s2s:0
*Jan 3 14:44:10.331: ephone1[1][SEP0014A9BDC3D7]: DN outofservice for DN 1 chan 2
*Jan 3 14:44:10.331: SkinnyGetCallState for DN 1 chan 2 IDLE
*Jan 3 14:44:10.331: called DN 1 chan 1, calling DN 1 chan 1 phone 1 s2s:0
*Jan 3 14:44:10.331: Skinny DN 1 chan 1 state change to DOWN
*Jan 3 14:44:10.331: Skinny DN 1 chan 2 state change to DOWN
*Jan 3 14:44:10.331: ephone1[1]:Phone Unregistered on socket [1] SEP0014A9BDC3D7
*Jan 3 14:44:10.331: ephone1[1]:UnregisterAck sent on socket [1] (0/0/6)
*Jan 3 14:44:10.331: %IPPHONE6UNREGISTER_NORMAL: ephone1:SEP0014A9BDC3D7 IP:10.0.0.2
Socket:1 DeviceType:Phone has unregistered normally.
*Jan 3 14:44:10.331: skinny_server_process: Socket error. errno=0
*Jan 3 14:44:10.331: ephone1[1]:DisAssociate: Closed socket 1 for unregistered phone
*Jan 3 14:44:10.331: ephone1[1][SEP0014A9BDC3D7]: DN outofservice for DN 1 chan 1
*Jan 3 14:44:10.331: SkinnyGetCallState for DN 1 chan 1 IDLE
*Jan 3 14:44:10.335: called DN 1 chan 1, calling DN 1 chan 1 phone 1 s2s:0
*Jan 3 14:44:10.335: ephone1[1][SEP0014A9BDC3D7]: DN outofservice for DN 1 chan 2
*Jan 3 14:44:10.335: SkinnyGetCallState for DN 1 chan 2 IDLE
*Jan 3 14:44:10.335: called DN 1 chan 1, calling DN 1 chan 1 phone 1 s2s:0
*Jan 3 14:44:10.335: CLOSED Skinny socket 1 for deregistered phone
*Jan 3 14:44:11.335: Skinny Going Dormant
Przebieg rejestracji telefonu:
debug ephone register
*Jan 3 16:04:42.695: ephone(2)[2] Register StationIdentifier DeviceName SEP0014A9BDC3D7
*Jan 3 16:04:42.695: ephone(2)[2] StationIdentifier Instance 1 deviceType 8
*Jan 3 16:04:42.695: ephone2[1]:stationIpAddr 10.0.0.2
*Jan 3 16:04:42.695: ephone2[1]:maxStreams 0
*Jan 3 16:04:42.695: ephone2[1]:protocol Ver 0x84000006
*Jan 3 16:04:42.695: ephone2[1]:phonesize 3228 dnsize 488
*Jan 3 16:04:42.695: ephone(2) Allow any Skinny Server IP address 10.0.0.1
*Jan 3 16:04:42.695: ephone2[1]:Found entry 1 for 0014A9BDC3D7
*Jan 3 16:04:42.695: ephone2[1]:socket change 1 to 2
*Jan 3 16:04:42.695: ephone2[1]:FAILED: CLOSED old socket 1
*Jan 3 16:04:42.695: ephone2[2]:***Force device subtype to 0
*Jan 3 16:04:42.695: ephone2[2]:phone SEP0014A9BDC3D7 reassociate OK on socket [2]
*Jan 3 16:04:42.695: %IPPHONE6REGISTER: ephone2:SEP0014A9BDC3D7 IP:10.0.0.2 Socket:2
DeviceType:Phone has registered.
*Jan 3 16:04:42.695: Phone 1 socket 2
*Jan 3 16:04:42.695: Skinny Local IP address = 10.0.0.1 on port 2000
*Jan 3 16:04:42.695: Skinny Phone IP address = 10.0.0.2 50359
*Jan 3 16:04:42.695: ephone2[2]:Signal protocol ver 5 to phone with ver 6
*Jan 3 16:04:42.695: ephone2[2]:Date Format M/D/Y
*Jan 3 16:04:42.695: ephone2[2]:RegisterAck sent to ephone 2: keepalive period 30 use sccpversion 5
*Jan 3 16:04:42.699: ephone2[2]:CapabilitiesReq sent
*Jan 3 16:04:42.951: ephone2[2]:CapabilitiesRes received
*Jan 3 16:04:42.951: ephone2[2]:Caps list 7
WideBand_256K 120 ms
G711Ulaw64k 40 ms
G711Alaw64k 40 ms
G729AnnexB 60 ms
G729AnnexAwAnnexB 60 ms
G729 60 ms
G729AnnexA 60 ms
...............................
Wyświetlanie zarejestrowanego telefonu :
show ephone
ephone2 Mac:0014.A9BD.C3D7 TCP socket:[2] activeLine:0 REGISTERED in SCCP ver 6
mediaActive:0 offhook:0 ringing:0 reset:0 reset_sent:0 paging 0 debug:0
IP:10.0.0.2 50359 Telecaster 7940 keepalive 1 max_line 2
button 1: dn 2 number 101 CH1 IDLE CH2 IDLE
Wyświetlanie telefonów rozsyłających keepalive:
debug ephone keepalive
*Jan 3 16:07:54.547: Skinny Checking for stale sockets
*Jan 3 16:07:54.799: ephone1 If FastEthernet0/0 ETHERNET 10.0.0.3 via ARP
*Jan 3 16:07:54.799: ephone1[1]:Keepalive socket[1] SEP0014A9CAFA0C
*Jan 3 16:07:55.807: ephone2 If FastEthernet0/0 ETHERNET 10.0.0.2 via ARP
*Jan 3 16:07:55.807: ephone2[2]:Keepalive socket[2] SEP0014A9BDC3D7
.............................
Wyświetlenie konfiguracji dla telephoneservices:
show telephonyservice all
CONFIG (Version=3.3)
=====================
Version 3.3
Cisco CallManager Express
For online documentation please see:
www.cisco.com/univercd/cc/td/doc/product/access/ip_ph/ip_ks/index.htm
ip sourceaddress 10.0.0.1 port 2000
maxephones 6
maxdn 10
maxconferences 12 gain 6
dspfarm units 0
dspfarm transcode sessions 0
huntgroup report delay 1 hours
maxredirect 5
...............
Inne przydatne polecenia :
show telephony admin
show telephony all
show telephony dialpeer
show telephony ephone
show telephony tftpbindings
show ephone dn
show call history voice
show dialpeer voice summary
Polecenia z zakresu
debug
wyłączamy poprzez
no debug all
debug ephone detail
debug ephone error
debug ephone register
debug ephone keepalive
debug ephone state
debug ephone statistics
Poprzez kombinacje poleceń show debug oraz „?” możemy znaleźć i wyświetlić
interesujące nas dane.
Dodatkowe informacje.
Reset telefonu możemy wykonać poprzez polecenie
reset
z
menu ephone NR_TEL
bądź z menu
telephoneservices reset all
, mamy również do dyspozycji polecenie
restart które powodóje przekopiowani zmienionego konfiga do telefonu. Reset
możemy również wykonać z menu telefonu. Wciskamy najpierw klawisz Settings a
następnie kombinacje #**#**. Odblokowywanie dodatkowych opcji w menu
Settings odbywa się poprzez wydanie kombinacji **# w tymże menu.
1. Obrazek na wyświetlaczu w przypadku braku aktywności.
W tym celu musimy posiadać service development kit (SDK).
Mając plik z obrazkiem *.gif o rozmiarach nie większych niż 125 pikseli
szerokości oraz 60 pikseli wysokości oraz po przekonwertowaniu go do skali
odcieni szarości, używając programu gif2cip konwertujemy sobie ten pliczek do
postaci xml.
gif2cip logo.gif logo.xml
Możemy zedytować ten plik i wstawić wyświetlany tekst na dole:
<Prompt>Wpisz tutaj tekst</Prompt>
Następnie kopiujemy ten plik do pamięci flash oraz wydajemy polecenie:
telephonyservice
url idle http://10.0.0.1/flash:logo.xml idletimeout 10
D. M
D. M
ATERIAŁY
ATERIAŁY
POMOCNICZE
POMOCNICZE
.
.
http://www.cisco.com/
http://www.cisco.com/en/US/products/sw/voicesw/tsd_products_support_category_home.html
http://www.cisco.com/en/US/products/sw/voicesw/ps556/products_data_sheet0900aecd801979f0.html
http://www.cisco.com/en/US/tech/tk652/tk777/technologies_tech_note09186a0080159cf3.shtml
http://www.cisco.com/en/US/tech/tk652/tsd_technology_support_category_home.html
http://www.cisco.com/en/US/products/ps5820/index.html
http://www.cisco.com/en/US/products/hw/voiceapp/ps378/index.html
http://www.cisco.com/en/US/products/sw/voicesw/ps556/products_tech_note09186a00801c0764.shtml