Statistics on interrupted calls

Switzernet, Christian Lathion

2008-12-23

 

 

This document presents a short study on call interruptions that we encounter with some customers.

 

Statistics on interrupted calls. 1

Duration of all calls passed through a vendor 1

Interruptions at 10min 32sec. 2

Distribution of customers meeting the interruptions. 2

Per device model 2

Per internet provider 3

Per SIP server 4

References. 6

 

Duration of all calls passed through a vendor

To identify the interruption sources, we start by taking from the database all calls of a given period having a total duration below 15 minutes. We do this for two different vendors, as the interruptions could be related to the vendor. This will output both interrupted and normally terminated calls.

 

select cdr.duration,count(cdr.duration) from CDR_Vendors cdr where cdr.duration>=0 and cdr.duration<=15*60 and cdr.i_vendor=55 and cdr.connect_time>="start_period" group by cdr.duration order by cdr.duration into outfile 'out.txt' fields terminated by ',' optionally enclosed by '"' lines terminated by '\n';

 

To highlight the possible problems, we plot the number of calls corresponding to each duration to see if there are irregularities in the call duration. We consider the calls between 500 and 800 seconds, and count the number of calls corresponding per duration (second by second). Without the problem of interruptions, we would expect to obtain a smooth descending curve with no irregularities. As expected, our graphs shows discontinuities:

 

(Click on the graph to enlarge.)

 

We can see 3 possibly different interruption problems:

·         A big individual peak in the number of interrupted calls at 632 seconds. The peak is present for both considered vendors, indicating it is related to our servers.

·         Several smaller individual peaks of interruptions present only for vendor vzb, separated by 32 seconds. This probably indicates a problem with the handling of periodical re-invites (which are sent by our servers to the customer and vendor every 32 seconds during a call).

·         Between 660 and 690 seconds, a wide irregularity in the number of interrupted calls.

 

The next section focuses on the 632 seconds interruptions.

Interruptions at 10min 32sec

Now we focus on the main peak, present for all vendors at 632 seconds. We output the list of concerned customers:

 

select a.id,cdr.connect_time,cdr.duration from Accounts a,CDR_Vendors cdr where a.i_account=cdr.i_account and cdr.connect_time>="start_period" and cdr.duration=632 and cdr.i_vendor in (55,62) into outfile 'out.txt' fields terminated by ',' optionally enclosed by '"' lines terminated by '\n';

Distribution of customers meeting the interruptions

For the following graphs, we use the registration information of the customers. This will give us the IP address of the customer (allowing to find his internet provider), the server on which he is registered and the sip phone he uses. The corresponding request is as follows:

 

select username,domain,user_agent,contact from location into outfile 'out.txt' fields terminated by ',' optionally enclosed by '"' lines terminated by '\n';

Per device model

We start by checking if a particular device model is more subject to call interruptions. The following graphs show the distribution of devices, once for the customers having interruptions and once for all customers:

 

Per internet provider

Next, we do the same with the customer’s Internet provider. To map the customer’s IP address to the corresponding provider, we used a daily snapshot of the ripe database, available through the following link ftp://ftp.ripe.net/ripe/dbase/ripe.db.gz.

 

 

We used the following script, where o1 to o4 are the four octets of the customer’s IP address:

 

(o1=[o1]; o2=[o2]; o3=[o3]; o4=[o4]; echo -ne "$o1.$o2.$o3.$o4"; (grep -A1 "^inetnum: \+$o1\.$o2\.$o3\." ripe.db || grep -A1 "^inetnum: \+$o1\.$o2\.0\." ripe.db || grep -A1 "^inetnum: \+$o1\.0\.0\." ripe.db) | perl -e 'while(<>){s/^[a-z]*: *//; s/[^ -~]//; $s.=";".$_} print $s;'; echo -ne "\r\n") | tee -a x.txt;

 

This simple command does not show fully detailed results. In the graph, what is labeled “Telefony” is also Bluewin, “Simplehosting” appears to be Cablecom). A rewrite of the command would be needed to consider that multiple providers can match an IP address range. We would have obtained similar results by doing an online “whois” request, but using the offline file was more convenient for batch treatment.

Per SIP server

Lastly, we check the distribution of interrupted calls per SIP server. Once again, we use the information from the registrations. The following graphs shows the distribution of SIP server used for customers having interruptions and the same for all customers.

 

 

References

Data files used to generate the graphs (restricted access)

Simulations on call interruptions

Statistiques sur les durées d’appel

Flash applet allowing to simulate call interruptions

Statistical study on the call interruptions (2009-01-31)