Overview

Normally, to retrieve call audio recordings from TIM Enterprise, an authenticated web user must log in to the web interface, navigate to the desired call using the Call View screen or by running a report, click on the call, then play it using the built-in web-based call player.

It is also possible to programmatically retrieve call recordings using a two-step authenticated request process. This works in the following way:

Below is an example code showing how to retrieve a voice recording from TIM Enterprise.

C# Example Source

This is a very simple example of some code to request a call's voice recording from TIM Enterprise. A more complex example would describe passing parameters in the class's constructor, for instance, but this should demonstrate the logic behind the procedure.

Use the following code to request a security token from TIM Enterprise, plugging in the appropriate values for _datasource, _voicefilename, and _voicelocation for the call you want to retrieve. These values are obtained directly from the calls database table.

A security token in this context is a URL which is used to obtain the actual voice recording from the RTA Service.

using System;
using System.Net;
using System.Text;
 
private class GetAudioFile
{
    String _datasource = "\\3\\";
    String _voicefilename = "NCS00000000EA39883596CC41E799B4630006CF2D56";
    String _voicelocation = "4";
 
    using (WebClient client = new WebClient())
    {
        client.Headers["User-Agent"] = "3rd-Party-Agent";
        client.Credentials = new NetworkCredential("username", "password");
 
        byte[] responseBody = client.DownloadData("http://enterprise.example.com/voice.wav?cmd=getvmsg&datasource=" + System.Uri.EscapeDataString(_datasource) + 
                              "recordingid=" + System.Uri.EscapeDataString(_voicefilename) +
                              "voicelocation=" + System.Uri.EscapeDataString(_voicelocation) + 
                              "salt=" + System.DateTime.Now.Ticks);
 
        String RTAURL = Encoding.UTF8.GetString(responseBody);
    }
}

Assuming the request was successful (and the response status was a 200 OK), the variable RTAURL will now contain a full URL which you must request in a similar way, using a WebClient object.

The security token URL is valid for one minute (60 seconds).

Again using a System.Net.WebClient object, request the voice file directly from the RTA Service.