Monitoring and Measurement of Voice Quality in VoIP Environment

CESNET technical report number 18/2006
also available in PDF, PostScript, and XML formats.

Miroslav Vozňák, Michal Neuman
8. 12. 2006

1   Abstract

This technical report deals with techniques of measuring and assessment of the voice transmitted in IP networks and describes design of quality measurement, which can be used for Cisco Gateways. Cisco gateways send Calculated Planning Impairment Factor in every CDR (Call Detail Record). Our design is based on collection of CDR's, their storing into SQL database and their visualization through web page. This design was implemented and successfully tested in CESNET network.

Keywords: QoS, R-factor, E-model

2   Introduction

Generally we can divide the measurement of the voice quality into two basic techniques:

In the subjective measuring techniques we use the assessment on the basis of the human perception and assessment of several listeners. In the objective techniques we use the latest piece of knowledge from the discipline the measurement of the quality. The aim of these techniques is to reach the qualitative estimation with results which are being on-coming the best to MOS value, which we would get from subjective techniques.

ITU-T suggested the objective, automatic and reproducible experimental techniques, which include the influence of the personal character and human perception. We can divide these techniques into three categories:

In the next text we are going to deal only with the objective techniques, because we can come out of the parameters of the transmitted network and the total acquaintance with the behavior of the voice gateways.

3   E-model

The idea of "E-model" comes from Nils-Olof Johannesson, who was the Swedish expert working for ITU-T and later for ETSI. E-model was chosen by ITU-T, to become a new international recommendation , which is diffent from another objective measuring techniques, in that point, because it deals with a tool of planning, which can help to ensure the satisfaction of users with the quality of connection ( end to end ).

The first developed E-model, was simple and inaccurate, but the following expansion and improvement changed it to a model, suitable for planning such comprehensive systems, as VoIP. The first standardized version of E- model was released by ITU-T at the end of year 1998 under trademark G.107. It was revised in 2000 to include the effect of the noise in the room of the transmitting side and the influence of the signal distortion, which was caused by quantization. Consecutively, in 2002, it was enhanced to cover the influence of the irregular loos of the packets during transmission for various types of codecs. Nowadays the most actual version G.107 from March 2005 and another modification is prepared [G.107].

The result of E-model is R-faktor, which takes on values from 0 to 100 and quantifies the influence of noise, signal level, distortion of quantization, type od coding, echo, delay and a number of other effects.

Table presents assigning values of R-factor to the qualitative categories, where it is not recommended to run connections with value lower than 50.

R-factor range MOS range Voice quality Users' satisfaction
90 R < 100 >4,3 Best very satisfied
80 R < 90 4,0-4,3 High Satisfied
70 R < 80 3,6-4,0 Medium Some are satisfied
60 R < 70 3,1-3,6 Low Many are not satisfied
50 R < 60 2,6-3,1 Poor All are not satisfied

Table 1: Assigning R-factor on the base of the quality.

R-factor is set for the whole transmission path between the network users. It takes into account the telephone channel and the termination equipment. The transmission path evaluated by R-factor, with the most important parameters for the quality of transmission of speech signal is shown in Figure.

[Figure]

Figure 1: Transmission path

The parameters SLR, RLR and NC refer to the point 0 dBr. Other parameters refer to the whole connection, such as OLR (sum of SLR a RLR), the factor of impairment IE and the factor of advantage A. STMR and TELR, are presented only on the receiving side. The delay TA represents the total one way delay, between transmitting and receiving sides. Too long delay TA negatively affects speech quality.

The delay of the echo T represents the delay between the receiving side and the point of connection where it contributes to the formation of the echo.

The result of the E-model calculation is R-factor, which combines all transmitting parameters important for specific connection. The R-factor can be represented by the equation (symbols are explained in Appendix)

R= R0 - IS - ID - IE-EFF + A          (1)

The description how to count individual quantities of the relationship can be find in literature [G.107] or directly in the related recommendation. The influence of codec and delay TA on the R-factor is shown in Table. The symbols and parameters in the table have the following meaning:

TA
Codecs IE ~0 50 100 150 200 250 300 350 400 450
G.711 0 94 93 92 90 87 80 74 68 63 59
GSM/EFR 5 N/A N/A 87 85 75 69 63 58 54 54
G.726(32), G.728(16) 7 87 86 85 83 80 73 67 61 56 52
G.729 10 N/A 83 82 80 77 70 64 58 53 49
G.723.1(6,3) 15 N/A N/A 77 75 72 65 59 53 48 44
G.729A+VAD 2% 19 N/A 74 73 71 68 61 55 49 44 40
G.723.1(6,3)+VAD 1%,
G.723.1(5,3) 19 N/A N/A 73 71 68 61 55 49 44 40
GSM-FR, IS-54 20 N/A N/A 72 70 67 60 54 48 43 39
G.728A + VAD 4% 26 N/A 67 66 64 61 54 48 42 37 33

Table 2: Codec influence and the delay on the R-factor

The values of MOS, R-factor and MIPS for the chosen codecs are presented in the Table. The detailed information and description of MOS and R-factor is possible to find in references [G.107], [Har03] and [VZ05].

Codec Algorithm bit rate [kbps] MIPS MOS R-factor
G.711 PCM 64 0,34 4,1 82,6
G.726 ADPCM 32 14 3,85 75,3
G.728 LD-CELP 16 30 3,61 69,4
GSM 06.10 RPE-LTP 13 10 3,5 67
G.729A CS-ACELP 8 10,5 3,7 71,5
G.729 CS-ACELP 8 20 3,92 77,2
G.723.1 MP-MLQ 6,3 16 3,9 76,6
G.723.1 ACELP 5,3 16 3,65 70,3

Table 3: Overview of the codec´s quality

4   The factor of the planning impairment ICPIF

ICPIFis Calculated Planning Impairment Factor. It is used by Cisco for the assesment of the quality ICPIF, according to the recomendation G.113 [G.113]. ICPIF is defined by the following equation (symbols are explained in Appendix):

ICPIF = ITOT - A,          (2)

where ITOT represents the total factor of the impairment, defined as

ITOT = I0 + Iq + IDTE + IDD + IE          (3)

After substitution of the relationships we get

ICPIF = I0 + Iq + IDTE + IDD + IE - A.          (4)

We used mathematical application in the description and the calculation of the individual quantities. ICPIFcan take values in the range from 5 to 55, where the lower number represents the better quality, as we can see in Table.

The top limit ICPIF Speech quality
5 very good
10 good
20 adequate
30 bad (only for limited usage)
45 very bad (only for very limited usage)
55 very bad (unuseable)

Table 4: Scale ICPIF from the point of view of the speech quality

For Cisco IOS, ICPIF is mostly based on two main factors, which have the negative influence on the voice quality. The delay and the packet loos considering the fact that it is possible to measure these two parameters with the help of SAA (Service Assurance Agent) , we can introduce the following simplification that

I0 = +Iq = IDTE = 0          (5)

and after that the relationship would be

ICPIF = IDD + IE - A.          (6)

So the ICPIF value is determined by the factor of impairment with the influence of the delay IDD , by low-bandwith codecs IE and by the advantage factor A. This formula is the same for Cisco voice gateway (VoGW), for the calculation ICPIF of VoIP. The relationship between scales MOS and ICPIF is shown the table 5 Table [Har03].

ICPIF MOS Quality Category
0-3 5 Excellent
4-13 4 Good
14-23 3 Fair
24-33 2 Poor
34-43 1 Bad

Table 5: Relationship between MOS and ICPIF

5   The collection from the voice gateways

To collect data from individual voice gateways we can use the syslog file or RADIUS records, generated by individual gateways. In the case that we want to use this data, we have to ensure that detailed CDR records. The generation of the detailed records are being sent by the requested the following command:

radius-server vsa send accounting.

The realized tests proved that it is possible to use only data at termination of the call (no at start). The termination records contain all necessary data to produce statistics. The example of the record is shown in Appendix. In this example is interpreted the quality ICPIF with value 15.

6   Realization of the testing application

We created our own application for the evaluation of voice quality in CESNET2 VoIP network, which evaluates individual phone calls. The application provides the assesment of the calls, which are terminated to PSTN (Public Switched Telephone Network). The application is based on the collection of data from voice gateways, which send information about individual calls through RADIUS protocol. This data is stored in text files in server, which is running the Linux operation system. The data is processed with help of the created script. This data is then imported into SQL database, which serves as the data resource for our own evaluating web interface.

[Figure]

Figure 2: CDR transmitted from VoGW to database

The individual calls are stored in the database created by processing of the individual records. These calls can be further evaluated. The database stores all calls, as well as unrealized connections. The records include also the reasons why the individual calls were disconnected.

The subsequent items can be obtained from the database:

h323connecttime;acctsessiontime;callingstationid;calledstationid;h323remoteaddress; nasipaddress;h323voicequality;h323disconnectcause;acctinputoctets;acctoutputoctets

The own verification of the results, which we got from CDR reports we compared with the measurement in the common operation of the CESNET2 network. The data traffic was duplicated with the help of a SPAN port. This traffic was coming to the output gateway of the public networks and we used the application Surveryor to find R-factor of the individual calls, see [VZ05]. In most cases we got the ICPIF = 0 quality of the call. We reached higher values only when we called into mobile networks and from the networks of local providers. In the CESNET2 or PASNET networks ICPIF was 0 or 1.

[Figure]

Figure 3: The list of calls with disconnect causes (large image)

[Figure]

Figure 4: The calls sorted by quality (the worst is listed first) (large image)

7   Conclusion and the usage of the achieved results in CESNET2

The developed application is used for the resolving of problems, which originate in the common operation of voice services in the CESNET network. Thanks to the universality of this application, which does not have the aim to ensure any other functions, it is possible to import any data obtained from the defined CDR records. This application makes it easier to solve problems and allows to get the statistics about connected and also unrealized calls. For the own statistics of the individual transmission paths, we will use in the future, the function in IOS of the particular gateways SLA, which has been implemented since the version 12.4. Finally we can note, that the application fulfilled our expectations and simplifies and accelerates the management of the voice gateways, which are used in the CESNET network.

8   Appendix A

A - Expectation Factor

ICPIF - Factor of the planning impairment

ID - impairments caused by delay

IDD - impairments caused by too long delay

IDTE - impairments caused by talker echo

IE - impairments caused by low bit rate codecs

IE - EFF - factor IE with packet los

Iq - impairment factor - quantizing distortion

IS - all impairments which occur simultaneously with the speech

I0 - impairments factor - noise and loudness rating

R - R - Factor

R0 - sources generating noise independently on the speech

9   Appendix B

Fri Nov  3 21:57:58 2006
 Acct-Session-Id = "00003B79"
 Calling-Station-Id = "731928xxx" 
 Called-Station-Id = "950073074" 
 Cisco-AVPair = "call-id=C7296BC6-6AB411DB-9419ADB1-C07B1984@195.113.222.10"
 h323-setup-time = "21:57:40.560 MET Fri Nov 3 2006"
 h323-gw-id = "R102.cesnet.cz"
 h323-conf-id = "C7283376 6AB411DB 8643000C 30E39800"
 h323-call-origin = "originate"
 h323-call-type = "VoIP"
 Cisco-AVPair = "h323-incoming-conf-id=C7283376 6AB411DB 8643000C 30E39800"  
 Cisco-AVPair = "subscriber=RegularLine"  
 Cisco-AVPair = "session-protocol=sipv2"  
 Cisco-AVPair = "gw-rxd-cdn=ton:2,npi:1,#:950073074"  
 h323-connect-time = "21:57:42.723 MET Fri Nov 3 2006"  
 Acct-Input-Octets = 128640  
 Acct-Output-Octets = 129280  
 Acct-Input-Packets = 804  
 Acct-Output-Packets = 808  
 Acct-Session-Time = 16  
 h323-disconnect-time = "21:57:58.903 MET Fri Nov 3 2006"  
 h323-disconnect-cause = "10"  
 h323-remote-address = "195.113.144.245"  
 Cisco-AVPair = "release-source=4"  
 h323-voice-quality = "15"  
 Cisco-AVPair = "alert-timepoint=21:57:42.073 MET Fri Nov 3 2006"  
 Cisco-AVPair = "remote-media-address=194.212.192.202"  
 Cisco-AVPair = "gw-rxd-cgn=ton:0,npi:0,pi:0,si:3,#:731928xxx"  
 Cisco-AVPair = "gw-final-xlated-cdn=ton:2,npi:1,#:950073074"  
 Cisco-AVPair = "gw-final-xlated-cgn=ton:0,npi:0,pi:0,si:3,#:731928xxx"  
 User-Name = "731928xxx"  
 Acct-Status-Type = Stop  
 Service-Type = Login-User
 NAS-IP-Address = 195.113.144.4
 Acct-Delay-Time = 0
 call-id = "C7296BC6-6AB411DB-9419ADB1-C07B1984@195.113.222.10"
 h323-incoming-conf-id = "C7283376 6AB411DB 8643000C 30E39800"
 subscriber = "RegularLine"
 session-protocol = "sipv2"
 gw-rxd-cdn = "ton:2,npi:1,#:950073074"
 release-source = "4"
 remote-media-address = "194.212.192.202"
 gw-rxd-cgn = "ton:0,npi:0,pi:0,si:3,#:731928xxx"  
 gw-final-xlated-cdn = "ton:2,npi:1,#:950073074"  
 gw-final-xlated-cgn = "ton:0,npi:0,pi:0,si:3,#:731928xxx"  
 Client-IP-Address = 195.113.144.4  
 Acct-Unique-Session-Id = "704a0272350ca40e"  
 Timestamp = 1162587478  

10   Appendix 3

CREATE TABLE StopVoIP (
 RadAcctId BIGSERIAL PRIMARY KEY,
 UserName VARCHAR(32) DEFAULT '' NOT NULL,
 NASIPAddress INET NOT NULL,
 AcctSessionTime BIGINT,
 AcctInputOctets BIGINT,
 AcctOutputOctets BIGINT,
 CalledStationId VARCHAR(50) DEFAULT '' NOT NULL,
 CallingStationId VARCHAR(50) DEFAULT '' NOT NULL,
 AcctDelayTime SMALLINT,
 CiscoNASPort BOOLEAN DEFAULT false,
 h323CallOrigin varchar(10) DEFAULT '' NOT NULL,
 h323SetupTime timestamp with time zone NOT NULL,
 h323ConnectTime timestamp with time zone NOT NULL,
 h323DisconnectTime timestamp with time zone NOT NULL,
 h323DisconnectCause varchar(2) DEFAULT '' NOT NULL,
 H323RemoteAddress INET NOT NULL,
 H323VoiceQuality NUMERIC(2),
 h323ConfID VARCHAR(35) DEFAULT '' NOT NULL
);
CREATE TABLE StopTelephony (
 RadAcctId BIGSERIAL PRIMARY KEY,
 UserName VARCHAR(32) DEFAULT '' NOT NULL,
 NASIPAddress INET NOT NULL,
 AcctSessionTime BIGINT,
 AcctInputOctets BIGINT,
 AcctOutputOctets BIGINT,
 CalledStationId VARCHAR(50) DEFAULT '' NOT NULL,
 CallingStationId VARCHAR(50) DEFAULT '' NOT NULL,
 AcctDelayTime SMALLINT,
 CiscoNASPort varchar(16) DEFAULT '' NOT NULL,
 h323CallOrigin varchar(10) DEFAULT '' NOT NULL,
 h323SetupTime timestamp with time zone NOT NULL,
 h323ConnectTime timestamp with time zone NOT NULL,
 h323DisconnectTime timestamp with time zone NOT NULL,
 h323DisconnectCause varchar(2) DEFAULT '' NOT NULL,
 H323RemoteAddress BOOLEAN DEFAULT false,
 H323VoiceQuality NUMERIC(2),
 h323ConfID VARCHAR(35) DEFAULT '' NOT NULL
);

References

[G.107] ITU-T: Recommendation G.107 - The E-model, a computational model for use in transmission planning. International Telecommunication Union, 2005.
[FKG02] Fong P., Knip E., Gray D.: Configuring Cisco Voice Over IP. Syngress, 2002. ISBN 1-931836-64-7.
[G.113] ITU-T: Recommendation G.113 - Transmission impairments due to speech processing. International Telecommunication Union, 1996.
[Har03] Hardy W.: VoIP Service Quality. New York: McGraw-Hill, 2003. ISBN 0-07-142915-8.
[VZ05] Vozňák, M., Zukal, D.: Analýza VoIP aplikací Surveyor 7.0. Technical report 13/2005, CESNET, 2005.
další weby:fond rozvojemetacentrumCzechLightpřenosyvideoservereduroameduID.cz