High performance VoIP SDK for .Net developers

VoIP SIP SDK

Caller identification of outgoing calls based on Dialed number

Explanation

Prerequisities

Download: 40_CustomerIdentification.zip

This article is a brief introduction about caller identification in call centers in relation with Ozeki VoIP SIP SDK. After reading through this page you will be fully familiar with all the essential terms concerning caller identification and what you will need for creating your own solution using Ozeki VoIP SIP SDK.

Introduction

Call center servers need to implement a lot of support for handling incoming calls and caller identification. For this purpose the basic information should be stored in databases where the call center server can look for information.


Figure 1 - Call center database integration

The most essential purpose of the database connection in a call center server is the customer identification. This basically means that the call center can get all the known information about a customer in the exact moment the customer calls the system or a call center agent dials a customer's number.

Customer identification can be the base of the call routing, for example. Let's assume that your company has three different provided services, and you have three groups of support agents, each group is a set of professionals on the service assigned to their group. When a customer calls the call center server checks the customer information from the database and identifies them as somebody who purchased for the second service. In this case it is essential that the call will be directed to an agent who is assigned to the second service.

The example program you can download from this page covers more features this article describes; therefore it is suggested to read the following articles too on this topic:

When an outgoing call is made, the following method code runs shown in Code 1. This code initializes a customer data form that is a window displaying all the customer data and the notes about the previous calls with that customer.

if (textBox1.Text != String.Empty)
{
        connection.Open(); // Does nothing if already open.
        CustomerDatasheet datasheet = connection.getCustomerDatasheet(textBox1.Text);
        if (datasheet != null && new CustomerDataForm(datasheet).ShowDialog() == System.Windows.Forms.DialogResult.OK)
            connection.saveCustomerDatasheet(datasheet);
}

Code 1 - Creating a data form from the database information according to the dialed number

The customer data form is created using a customer data sheet that is a container class for all the customer data that can be retrieved from the local database the program is connected to. Code 2 shows how the application performs the database commands for retrieving the proper data from the database.

public CustomerDatasheet getCustomerDatasheet(string PhoneNumber)
{
    DbDataReader reader;
    Int64 id;
    string fullName;
    List<string> phoneNumbers = new List<string>();
    SortedDictionary<DateTime, string> notes = new SortedDictionary<DateTime, string>();
    string sql = string.Format("SELECT c.customer_id, c.fullname, n.phone FROM customer c INNER JOIN number n ON c.customer_id = n.customer_id WHERE n.phone = '{0}'", PhoneNumber);
    reader = this.CreateDbCommand(sql).ExecuteReader();
    if (!reader.Read())
    {
        return null;
    }
    id = (Int64)reader["customer_id"];
    fullName = (string)reader["fullname"];
    while (reader.Read())
    {
        phoneNumbers.Add((string)reader["phone"]);
    }
    reader.Close();

    reader = this.CreateDbCommand(string.Format("SELECT n.created, n.note FROM note n WHERE n.customer_id = {0} ORDER BY n.created ASC", id)).ExecuteReader();
    while (reader.Read())
    {
        notes.Add((DateTime)reader["created"], (string)reader["note"]);
    }
    reader.Close();

    return new CustomerDatasheet(id, fullName, phoneNumbers, notes);
}

Code 2 - Retrieving customer information from the local database

You can use the customer data form for recording more information about the customer and/or the calls you make with them. If you want more information on this topic, please check the Logging customer data to a database article too.

This article introduced you the basic knowledge about caller identification in call center solutions and showed how Ozeki VoIP SIP SDK can help you to fulfill your wishes about this topic. If you have read through this page carefully, you already have all the knowledge you need to start on your own solution.

As you are now familiar with all the terms concerning this topic, now it is time to take a step further and explore what other extraordinary solution Ozeki VoIP SIP SDK can provide to you.

If you have any questions or need assistance, please contact us at info@voip-sip-sdk.com

You can select a suitable Ozeki VoIP SIP SDK license for your project on licensing page

Related Pages

Operating system: Windows 8, Windows 7, Vista, 200x, XP
System memory: 512 MB+
Free disk space: 100 MB+
Development environment: Visual Studio 2010 (Recommended), Visual Studio 2008, Visual Studio 2005
Programming language: C#.NET
Supported .NET framework: .NET Framework 4.5, .NET Framework 4.0, .NET Framework 3.5 SP1
Software development kit: OZEKI VoIP SIP SDK(Download)
VoIP connection: 1 SIP account