TEMPORARY Voip Lab Instructions
TEMPORARY Voip Lab Instructions
TEMPORARY Voip Lab Instructions
VoIP Lab:
Cisco CallManager Express, Temporary Work Instructions
Contents
Temporary Solution 2
Objectives 2
Theoretical Background 2
Prerequisite 2
Temporary Solution
The reason for this temporary lab router setup and work instruction is the unfortunate
unexpected problem in the interoperability of used lab router IOS and POTS FXS module.
Objectives
Students will be guided to make configurations in Cisco CallManager Express (CCME) router
and learn the basic IP telephone network and call processing settings and operations. Students
will also become familiar with some important details of VoIP call behavior and
characteristics in modern IP networks.
Theoretical Background
Brief descriptions of the used equipment and protocols are given in a separate document VoIP
Lab: Cisco CallManager Express, Theoretical Background. That document should be studied
in advance for more fluent lab working.
Prerequisite
Students need to have a basic knowledge of Cisco routers and switches. Although all the
necessary IOS commands are given and most of them are separately and clearly explained,
students need experience in using Cisco router IOS for fluent lab working. Understanding the
referred protocols is also essential.
You may choose any desired IP address fields for your LAN subnets, but take care of address
consistency issues in the network throughout the whole exercise. The IP addresses in this
work instruction are given for guidelines. Before starting the equipment configurations, erase
first the existing configurations of the both routers and a switch and cold boot the equipment.
Then connect the equipment according to the diagram in Figure 1. It is advised not to make
additional configurations in the routers during the lab exercises, because of possible
unexpected influence in the phenomenon under study.
TEMPORARY LAB WORK INSTRUCTIONS 3
POTS GATEWAY MODULE INSTALLED IN THE CCME ROUTER
CCME REMOTE
2600XM 2600XM
10.0.4.0/24
.1 .2
1/0/0 WAN
FXS s0/0 s0/0
POTS 707 DCE
1/0/1
fa0/0 fa0/0
.1 .1
POTS 808 10.0.3.0/24 10.0.5.0/24
DHCP DHCP
Catalyst 2950 Catalyst 2950
DE C
CO
?
PORT
AL
RE
NG E T
NG
PI EN
RTP
F H
IPER ET GIL PI
A
IP IP
IP 301 IP 302
Make the following basic configurations. The clock rate setting is for the serial line DCE
interface only.
Router(config)#interface FastEthernet0/0
Router(config-if)#ip address 10.0.3.1 255.255.255.0
Router(config-if)#no shutdown
Router(config)#interface Serial0/0
Router(config-if)#ip address 10.0.4.1 255.255.255.0
Router(config-if)#clock rate 128000 (In case CCME s0/0 is DCE.)
Router(config-if)#no shutdown
For your convenience you may make the following settings as well.
Router(config)#line con 0
Router(config-line)#exec-timeout 60
Router(config-line)#logging synchronous
Router(config)#hostname CCME
TEMPORARY LAB WORK INSTRUCTIONS 4
POTS GATEWAY MODULE INSTALLED IN THE CCME ROUTER
Save settings to NVRAM and start telephony-service and DHCP service setups, remembering
consistency with CCME router fastEthernet0/0 interface IP address and subnetwork. CCME
router DHCP service will provide IP addresses for the IP phones. This service can be used to
provide also the PCs connected to the switch with their IP addresses. You may choose any IP
phone line extension numbers you like (first extension number in the configuration
that follows).
CCME(config)#telephony-service setup
Do you want to setup DHCP service for your IP Phones? [yes/no]: yes
Enter the Skinny Port for Cisco IOS Telephony Services : [2000]:
Press enter to confirm.
What Language do you want on IP phones [0]: Press enter to choose English.
Which Call Progress tone set do you want on IP phones [0]: Press enter
to choose US.
After the router has finished the telephone-service setup process, wait for a while for the
router to finish the IP phone registration process, which will take a couple of minutes (see the
console logging messages and the IP phone LCD display). Then check how the IP phone is
registered, by a command show telephony ephone, if the IP phone was connected to the
switch already. Otherwise connect it now and wait for it to be registered. It should be
registered as ephone 1, but can be some other ephone # as well. One ephone # represents
a registered IP phone equipment, by default in ascending order in CCME configuration.
Then change extension line button informational label settings for IP phone display,
ephone-dn # representing CCME extension phone line, label ***** representing
corresponding informational label for the line on Cisco 7905G IP phone display. Line
extension number can be changed by a command CCME(config-ephone-dn)# number #.
CCME(config)#ephone-dn 1
CCME(config-ephone-dn)#label 301 CCME
If you changed the label settings as described above, you have to reset or restart the IP phone
equipment in order to upload the new configuration. Restart is faster than reset, the latter
causing a complete cold boot, which is necessary for e.g. new IP address and TFTP server IP
address settings for an IP phone.
CCME(config)#ephone 1
CCME(config-ephone)#restart
Dial-Peer Configuration
Then configure two analog POTS telephone lines. Dial-peer voice # pots starts the
analog voice call extension number configuration. The dial-peer number # is for identification
reference only and can be any locally distinguished number within a unique router dial-peers
configuration. Configure both POTS ports with a desired extension number, but different than
used for the IP phones. For clarity and to avoid some later problems, use clearly separate
extension line numbering schemes for the IP and POTS phones. The first following pots-dial-
peer configuration ties a call extension line number 707 (destination-pattern 707)
with a router analog physical port 1/0/0. The corresponding RJ-11 connector is located on the
right hand side of the FXS module front panel.
Now make test calls between the IP phone, extension 301 and the analog phones, extensions
707 and 808. Troubleshoot and repeat the setup process if necessary, but do not proceed until
the calls can be placed flawlessly.
TEMPORARY LAB WORK INSTRUCTIONS 6
POTS GATEWAY MODULE INSTALLED IN THE CCME ROUTER
Troubleshooting tips. In addition to show run, the following show and debug commands are
useful. Practice to exploit them already when your system is working well. The details of
these commands depend on the IOS release as well.
Router(config)#interface FastEthernet0/0
Router(config-if)#ip address 10.0.5.1 255.255.255.0
Router(config-if)#no shutdown
Router(config)#interface Serial0/0
Router(config-if)#ip address 10.0.4.2 255.255.255.0
Router(config-if)#no shutdown
For your convenience you may make the following settings as well.
Router(config)#no ip domain-lookup
Router(config)#line con 0
Router(config-line)#exec-timeout 60
Router(config-line)#logging synchronous
Router(config)#hostname REMOTE
CCME router DHCP service configuration was set in the telephone-service setup
process to provide the local IP phone (and PC's) with an IP address. The IP phone (and PC)
connected to the REMOTE router is located in a different IP subnet region and that is why
another DHCP server configuration is needed in the REMOTE router to provide an IP address
for that remote IP phone. The DHCP service "network" must be within the same subnet as the
FastEthernet interface (fa0/1) for the remote IP phone, the "option 150" IP address must be
the same as the TFTP Server IP address (Option 150) set up in CCME router telephone-
service setup, and the DHCP service default router IP address is the fa0/1 interface IP address.
Save the configuration in the NVRAM and the remote router configuration is then ready.
Check the connectivity by pinging between CCME and REMOTE Routers.
TEMPORARY LAB WORK INSTRUCTIONS 7
POTS GATEWAY MODULE INSTALLED IN THE CCME ROUTER
Connect the remote IP phone to the remote switch, wait for the phone to be registered to the
CCME. The registration will be done automatically and will take a few minutes to be
completed. Observe the IP phone display. After a successful registration you may repeat the
following steps, this time for this remote IP phone configuration.
CCME(config)#ephone-dn 2
CCME(config-ephone-dn)#label 302 REMOTE
CCME(config)#ephone 2
CCME(config-ephone)#restart
Make test calls from the remote IP phone to each of the other three phones and vice versa.
You must be able to make these calls, or otherwise you will not be able to finish properly the
next following tests in this lab exercise.
It is worth trying different settings in order to study these basic VoIP network parameters.
You may follow first the samples listed in this work instruction, but your teacher will
appreciate your efforts in building your own network configuration. Wait a few seconds
before attempting to dial again to the same extension, in case you did not answer a call you
dialed, because of a fairly long call release timeout period after an unanswered call.
Reporting, Task 1: Explain your experiences configuring the routers and testing your call
connectivity, at least by a few sentences. Describe any possible problems and how you solved
them. Save your CCME and REMOTE router configurations and attach them to your lab
report.
Digit manipulation means a conversion or replacement of dialed digit strings by some other
digits or complete digit strings, which process is usual in production PBX systems. The
CCME includes several features for this dialed number processing and the following
examples are for simple demonstration only. Make these configurations only after your call
routing so far is successful.
Hint: Save the configurations of both routers to NVRAM before configuring any bit
manipulation. Then you will be able to revert easily back to the original configuration just by
reloading the router start-up configuration.
Make some test calls for example from 301 to 707 by dialing 977317 and from 302 to 808 by
dialing 988318.
Example 2. Our second digit manipulation example is a simple one. A dialed string can be
replaced by a preset string using a command: num-exp dialed_string
replaced_by_string. This simulates a call processing feature, where e.g. an external PSTN
subscriber number (for example a company employee's home phone line) is seen as an
ordinary local enterprise PBX extension line. In our example below, a user may dial 327 in
order to actually call to extension 707, or dial 328 to reach 808. 327 and 328 represent
company internal phone line numbers (in 3xx extension numbering space), whereas 707 and
808 could represent e.g. public PSTN numbers, (but are very short in our simple lab
configuration for simplicity).
Now you may study some characteristics of the analog phone lines, typical settings in real-life
PBX systems. Voice quality over an IP link will be examined later on, also by comparing the
two voice channels together, so it is advised to have identical level settings between both
voice-ports.
The following sample configuration changes the output voice level 9 dB lower, default setting
is 0 dB, range 0 to 14 dB. Change the output level, make a call and observe the difference.
CCME(config)#voice-port 1/0/#
CCME(config-voiceport)#output attenuation 9
TEMPORARY LAB WORK INSTRUCTIONS 9
POTS GATEWAY MODULE INSTALLED IN THE CCME ROUTER
Input gain or input reference level (thus effecting on output level from Cisco 7912 at remote
end) can be set also, e.g. to value -6 dB. Default is 0 dB, range -6 to -14 dB. Try to find a nice
balance between the loudness of voices in both directions, but avoiding singing. The input
reference level should always be set higher as the output reference level in a two-wire
interface, but this is not very relevant in our small and simple lab system.
CCME(config-voiceport)#input gain -6
CP-tones are the informational signals for the user, for example dial tone, busy tone and so
on, each country having its own standards. By default, Cisco routers use US (the United
States), but this setting can be changed, use a command cptone ? to list the options.
CCME(config-voiceport)#cptone country
You may hear a slight echo in an IP phone receiver during an active call: a trace of your own
voice, but delayed. This echo comes from POTS telephone interface 4-wire/2-wire balance
hybrid (in FXS module), which impedance can be adjusted. Cisco router POTS voice port
includes a versatile adjustable echo-cancel feature, enabled by default, so turn it off for echo
testing. Unfortunately our lab environment does not provide good chances for testing this
properly, but if you are able to listen carefully, you may notice some differences in variable
impedance mismatch (variable echo strength) and perhaps also notice how the VAD cuts
down also the echo, when cutting down the RTP transmission.
A hot line means an immediate automatic dial to a specified number, when the handset is
lifted up. Cisco calls this feature Private Line Automatic Ring-Down (PLAR). In order to play
with the router and to try this, make the following configuration for a hot-line configuration to
originate automatic calls to CCME extension 302.
CCME(config)#voice-port 1/0/1
CCME(config-voiceport)#connection plar 302
Several other settings are possible as well, most of them typical to an analog phone line, e.g.
call and dial time-outs, ring frequency sent to a phone, DTMF or impulse dial, line impedance
etc. See the options: CCME(config-voiceport)#?. Return the default configurations of the
voice-ports after your testing.
Reporting Task 2: Explain your experiences configuring and testing your digit manipulation
and voice port configuration, at least by a few sentences. Describe any possible problems and
how you solved them. Explain why IP phones do not generate any such echo, like POTS
phone line interfaces do. Save your CCME router and Gateway router configurations and
attach them to your lab report. Submit the first report including Tasks 1 and 2.
TEMPORARY LAB WORK INSTRUCTIONS 10
POTS GATEWAY MODULE INSTALLED IN THE CCME ROUTER
Start-up Ethereal Network Analyzer and test the monitoring functionality by inspecting some
of your CCME LAN traffic, ping to IP phone or any such test you like. Remember that the
switch monitor session destination interface cannot be used for any ordinary traffic.
Start capturing the VoIP call packets and make a call between the IP phones. Unfortunately
the Cisco IP phones used in this testing do not send the RTCP segments. Use display filters to
bring the desired packets only on the screen for inspections. Depending on your switch
monitoring session configuration, test call bandwidth consumption may seem to be double,
but when? Then repeat your test using Agilent Advisor.
Reporting, Task 3: Inspect the captured VoIP call bandwidth consumption. What is the voice
codec used by the IP phones? Compare in details your observations with the theoretical
values. Explain in writing what the calculated bandwidth should be and how the observed
results comply with the theoretical values.
You can notice the audible delay better, when you are talking and listening over the same
direction of the VoIP connection. Use Ethereal RTP statistics facility to see the captured delay
in RTP flow.
Reporting, Task 4: Describe briefly your observations of VoIP call network delays in this lab
exercise so far. Calculate the estimated theoretical total network delay for a VoIP call in this
lab network configuration. Include 20 ms codec delay in VoIP encoding in transmission, 30
ms de-jitter buffer play-back delay in VoIP reception, and just for an example some negligible
1 ms processing delay in router and switch equipment (sometimes called a network delay).
Use 0 ms for propagation delay, but mention it in your calculations too. Present the
calculations comparing them with the audible observed delay.
TEMPORARY LAB WORK INSTRUCTIONS 11
POTS GATEWAY MODULE INSTALLED IN THE CCME ROUTER
Modify the routers' serial interface configuration as shown below. Bandwidth parameter is
necessary for the later QoS queuing configuration, but you may configure it now. Then
disable WFQ to activate FIFO (no fair-queue), which is needed for QoS testing purposes.
CCME(config)#interface Serial0/0
CCME(config-if)#bandwidth 128
CCME(config-if)#no fair-queue
REMOTE(config)#interface Serial0/0
REMOTE(config-if)#bandwidth 128
REMOTE(config-if)#no fair-queue
Start pinging the from a PC to anoter PC over the serial line. Use a DOS command prompt
option C:\>ping /? to see the ping configuration options. E.g. C:\>ping 10.0.5.x -t -l 7000 -w
1000 sends continuous 7000 byte ping packets with 1000 ms time-out period. The pinging
should be successful (and response times approximately 900 ms).
While still pinging, make a simultaneous VoIP call over the same serial line and observe the
voice call audible quality and ping response success. Also observe how the VoIP packets need
a longer time to travel over the heavily loaded serial link (i.e. more delay). You should also
notice a bit longer delay in call establishment and ping response times.
Use Agilent Network Analyzer for monitoring the LAN traffic bandwidth capturing the RTP
and the ping traffic flow received over the WAN, first only ping traffic flow and then with the
simultaneous call as well, observing the difference in bandwidth consumption. Make sure to
choose the correct switch monitor session interface setting.
Monitor the received RTP stream quality using Agilent Network Analyzer RTP statistics
facility too. Use following parameters for RTP statistics alarm threshold configuration: jitter
30 000 s and packet loss 1 %. Make sure you capture the right RTP stream, which must be
the one received over the overloaded serial line.
Class-map RTP will be used for classifying the RTP packets to a class called RTP. Policy-
map VOIP will then be used to give RTP packets (class RTP) absolute priority up to 90 kbit/s.
Policy-map VOIP is finally attached to the output direction of Interface Serial0/0 of CCME
router. The names of class-maps and policy-maps have only local informational meaning, but
must of cause match locally together (class-map RTP with class RTP, policy-map VOIP with
service-policy VOIP). The names of the class-maps and the policy-maps are case sensitive.
IOS will create automatically a default class named class-default for all the unclassified
traffic. There is no option for this system-defined default class name and it cannot be seen in
show run listing, unless modified.
CCME/REMOTE(config)#class-map RTP
CCME/REMOTE(config-cmap)#match protocol rtp
CCME/REMOTE(config)#policy-map VOIP
CCME/REMOTE(config-pmap)#class RTP
CCME/REMOTE(config-pmap-c)#priority 90
CCME/REMOTE(config)#interface Serial0/0
CCME/REMOTE(config-if)#service-policy output VOIP
Cisco Express Forwarding (IP CEF) must be enabled for the LLQ to function correctly. Make
sure this in enabled in both routers. In CCME it is enabled by default (check still), but in
Gateway router it might be disabled, depending on the IOS version. Enable it by an IOS
global configuration command ip cef.
CCME/REMOTE(config)#ip cef
An alternative class-map RTP: Depending on the IOS version in the Gateway router,
unfortunately you may not be able to use class-map configuration match protocol rtp. In
this case you need to classify the traffic according to the IP address, which is the remote Cisco
7905G IP phone's IP address. Use an extended IP access-list to select the packets to be
classified.
Start pinging from PC to PC, exactly the same manner as in the Task 5. While still pinging,
make a similar simultaneous VoIP call over the serial line as in the Task 5. Observe again the
voice call quality and ping response success. Pay special attention to a slightly audible change
in the background noise in the VoIP call at the moment when a ping packet is sent. Use
Agilent Network Analyzer too for monitoring the call quality and ping success. Pay special
attention to ping throughput as well.
TEMPORARY LAB WORK INSTRUCTIONS 13
POTS GATEWAY MODULE INSTALLED IN THE CCME ROUTER
You can verify your LLQ configuration by the following commands. Show policy-map
displays also the default committed information rate (cir) and burst size, which we do not alter
in this lab. The last one displays the statistics of matched packets as well, which is an ideal
command to see whether the configuration is working at all.
CCME/REMOTE(config)#show run
CCME/REMOTE(config)#show class-map
CCME/REMOTE(config)#show policy-map
CCME/REMOTE(config)#show policy-map interface [int_number]
Reporting, Task 6A: Describe the simultaneous VoIP call quality and ping response results
and compare with the results in Task 5. Explain the reason for differences. How much
bandwidth is left over for ICMP, while the G.711 VoIP call is on? Also explain where that
audible "pinging noise" comes from.
Now repeat the test, but use IPERF software for traffic generation instead of ping. Pay special
attention to test signal throughput. Note that IPERF generated IP packets have no fragment
flag set, so the largest feasible payload packet size is about 1470 bytes. Sample IPERF
commands follow below, but see the separate instruction obtainable from the teacher.
Reporting, Task 6B: Describe your findings testing with IPERF traffic generator, concerning
the quality of the VoIP call and test signal throughput.
This time, first modify the IOS policy-map VOIP default class class-default of the both
routers, (created by default by IOS). Limit the bandwidth by policing it strictly to 20 000 bit/s
(police 20000), leaving the rest of the bandwidth for other traffic. This is called class-based
policing. The two last configuration lines are default configuration, but are shown here for
additional information. Do not make any other alterations in router configurations.
CCME/REMOTE(config)#policy-map VOIP
CCME/REMOTE(config-pmap)#class class-default
CCME/REMOTE(config-pmap-c)#police 20000
CCME/REMOTE(config-pmap-c-police)#confirm-action transmit
CCME/REMOTE(config-pmap-c-police)#exceed-action drop
Start pinging again exactly like in the previous two Tasks 5. and 6. Thereafter make a new
simultaneous test call like earlier. The idea is to see the effect of the new added policing
configuration on the system. Compare the traffic behavior with the previous configuration.
Repeat the test using IPERF instead of ping, try with different IPERF parameter settings.
Reporting, Task 7: Describe the VoIP call quality and ping response results and compare
with the results in Tasks 6A and 6B. Pay special attention to ping bandwidth through the
serial line.
TEMPORARY LAB WORK INSTRUCTIONS 14
POTS GATEWAY MODULE INSTALLED IN THE CCME ROUTER
CCME(config)#interface Multilink1
CCME(config-if)#ip address 10.0.6.1 255.255.255.0
CCME(config-if)#ppp multilink
CCME(config-if)#ppp multilink fragment delay 20
CCME(config-if)#ppp multilink interleave
CCME(config-if)#ppp multilink group 1
CCME(config)#interface Serial0/0
CCME(config-if)#no ip address
CCME(config-if)#clock rate 512
CCME(config-if)#bandwidth 512000
CCME(config-if)#encapsulation ppp
CCME(config-if)#ppp multilink group 1
REMOTE(config)#interface Multilink1
REMOTE(config-if)#ip address 10.0.6.2 255.255.255.0
REMOTE(config-if)#ppp multilink
REMOTE(config-if)#ppp multilink fragment delay 20
REMOTE(config-if)#ppp multilink interleave
REMOTE(config-if)#ppp multilink group 1
REMOTE(config)#interface Serial0/0
REMOTE(config-if)#no ip address
REMOTE(config-if)#bandwidth 512000
REMOTE(config-if)#encpsulation ppp
REMOTE(config-if)#ppp multilink group 1
Now test your connectivity. Make a VoIP call and IPERF and/or ping traffic tests.
CCME/REMOTE(config)#class-map LAST
CCME/REMOTE(config-cmap)#match protocol rtp
CCME/REMOTE(config)#policy-map FINAL
CCME/REMOTE(config-pmap)#class LAST
CCME/REMOTE(config-pmap-c)#priority 80
CCME/REMOTE(config)#interface Multilink1
CCME/REMOTE(config-if)#service-policy output FINAL
TEMPORARY LAB WORK INSTRUCTIONS 15
POTS GATEWAY MODULE INSTALLED IN THE CCME ROUTER
Now make some test calls, together with some test signal, either ping or with IPERF as
before. Observe especially the call quality and try to compare it with the results in the earlier
tests during this lab exercise.
Reporting, Task 8: Explain why this final configuration should theoretically be the best
choice for a VoIP QoS configuration. What is the best configuration for a VoIP QoS of this
whole lab exercise according to your own experiences? Attach your CCME and Gateway
router configuration files in your report. Submit the third report including Tasks 6 to 8.
Launch Internet Explorer and point your browser page to ccme.html file at CCME
FastEthernet interface IP address http://10.0.3.1/ccme.html and enter your admin name and
password. Java-script must be enabled in the web browser.