SIP

Download CDR archive

get
GET v2/sip/cdr/:handle/download

Download zip file containing prepared CDR data in CSV format.

Header

Header Type Required Description
Header: X-Auth-Token Type: String Required: Yes Description:

Your API token.

Header: Content-Type Type: String Required: Yes Description:

Request content type.

Parameter

Parameter Type Required Description
Parameter: handle Type: String Required: Yes Description:

The request identifier received from 'v2/cdr/request' call.

Send a Sample Request

GET

Header

Parameter

Code Examples

curl https://api.aql.com/v2/sip/cdr/:handle/download \
-H "Content-type: application/json" \
-H "X-Auth-Token: {{YOUR_API_TOKEN}}" \
-o cdr.zip
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, "https://api.aql.com/v2/sip/cdr/:handle/download");
curl_setopt($curl, CURLOPT_HTTPHEADER, ["X-Auth-Token: {{YOUR_API_TOKEN}}", "Content-type: application/json"]);
$response = curl_exec($curl);
curl_close($curl);
import urllib2
token='{{YOUR_API_TOKEN}}'
url='https://api.aql.com/v2/sip/cdr/:handle/download'
req = urllib2.Request(url)
req.add_header("Content-type", "application/json")
req.add_header('X-Auth-Token', token)
res = urllib2.urlopen(req)
var client = new RestClient("https://api.aql.com/v2/sip/cdr/:handle/download");
var request = new RestRequest(Method.GET);
request.AddHeader("content-type", "application/json");
request.AddHeader("x-auth-token", "{{YOUR_API_TOKEN}}");
IRestResponse response = client.Execute(request);
use REST::Client;
use JSON;
use Data::Dumper;

my $client = REST::Client->new();
$client->addHeader('Content-Type' => 'application/json');
$client->addHeader('X-Auth-Token' => '{{YOUR_API_TOKEN}}');
$client->setHost('https://api.aql.com/');
$client->GET('/v2/sip/cdr/:handle/download');
my $response = from_json($client->responseContent());
print Dumper($response);

Request CDR download

post
POST v2/sip/cdr/request

Request Call Detail Records for specific time period as downloadable archive containing CSV files. This will create a request for the data to be prepared for download. Requests will expire after 2 hours from being submitted. If the data is not downloaded by that time, a new request will need to be submitted. Please note, all dates (submitted and returned) are in UTC.

Header

Header Type Required Description
Header: X-Auth-Token Type: String Required: Yes Description:

Your API token.

Header: Content-Type Type: String Required: Yes Description:

Request content type.

Parameter

Parameter Type Required Description
Parameter: from_date Type: String Required: Yes Description:

Start date for CDR lookup (required)

Parameter: to_date Type: String Required: Yes Description:

End date for CDR lookup (required)

Parameter: email Type: String Required: No Description:

Email address to which a confirmation will be sent when the requested data is ready.

Parameter: format Type: String Required: No Description:

Please note: the UKv3a format is now the current default CDR layout as of 30/09/2021 23:59. The UKv3 format is no longer supported.

Parameter: single_file Type: Boolean Required: No Description:

When set to true, all of the data will be put into single CSV file instead of being split by days.

Send a Sample Request

POST

Header

Parameter

Code Examples

curl https://api.aql.com/v2/sip/cdr/request \
-X POST \
-H "Content-type: application/json" \
-H "X-Auth-Token: {{YOUR_API_TOKEN}}" \
-d '{"from_date" : "2017-01-01 00:00:00", "to_date": "2017-01-31 23:59:59"}'
$curl = curl_init();
$data = ["from_date" => "2017-01-01 00:00:00", "to_date" => "2017-01-31 23:59:59"];
curl_setopt($curl, CURLOPT_POST, 1);
curl_setopt($curl, CURLOPT_URL, "https://api.aql.com/v2/sip/cdr/request");
curl_setopt($curl, CURLOPT_HTTPHEADER, ["X-Auth-Token: {{YOUR_API_TOKEN}}", "Content-type: application/json"]);
curl_setopt($curl, CURLOPT_POSTFIELDS, json_encode($data));
$response = curl_exec($curl);
curl_close($curl);
import requests

url = "https://api.aql.com/v2/cdr/request"

payload = "{\"from_date\" : \"2017-01-01 00:00:00\", \"to_date\": \"2017-01-31 23:59:59\"}"
headers = {
    'x-auth-token': "{{YOUR_API_TOKEN}}",
    'content-type': "application/json"
    }

response = requests.post(url, data=payload, headers=headers)

print(response.text)
var client = new RestClient("https://api.aql.com/v2/sip/cdr/request");
var request = new RestRequest(Method.POST);
request.AddHeader("content-type", "application/json");
request.AddHeader("x-auth-token", "{{YOUR_API_TOKEN}}");
request.AddParameter("application/json", "{\"from_date\" : \"2017-01-01 00:00:00\", \"to_date\": \"2017-01-31
    23:59:59\"}", ParameterType.RequestBody); IRestResponse response = client.Execute(request);
use REST::Client;
use JSON;
use Data::Dumper;

my $client = REST::Client->new();
my $data = "{\"from_date\" : \"2017-01-01 00:00:00\", \"to_date\": \"2017-01-31 23:59:59\"}";
$client->addHeader('Content-Type' => 'application/json');
$client->addHeader('X-Auth-Token' => '{{YOUR_API_TOKEN}}');
$client->setHost('https://api.aql.com/');
$client->POST('/v2/sip/cdr/request', $data);
my $response = from_json($client->responseContent());
print Dumper($response);

Success Response Example

HTTP/1.1 200 OK
{
    "data": {
        "handle": 21458b41485d1405
        "from_date": "2017-01-01 00:00:00",
        "to_date": "2017-01-31 23:59:59",
        "status": {
            "name": "pending",
            "description": "Request submitted"
        },
        "created_at": "2017-02-01 13:30:00",
        "updated_at": "2017-02-01 14:25:00",
        "parts_count": "31",
        "single_file": false
    }
    "meta": {
       "check_status": "[[DOMAIN]]v2/sip/cdr/21458b41485d1405"
    }
}

Cancel CDR request

delete
DELETE v2/sip/cdr/:handle

Cancel a download request.

Header

Header Type Required Description
Header: X-Auth-Token Type: String Required: Yes Description:

Your API token.

Header: Content-Type Type: String Required: Yes Description:

Request content type.

Parameter

Parameter Type Required Description
Parameter: handle Type: String Required: Yes Description:

The request identifier received from 'v2/cdr/request' call.

Send a Sample Request

DELETE

Header

Parameter

Code Examples

curl https://api.aql.com//v2/sip/cdr/:handle \
-X DELETE \
-H "Content-type: application/json" \
-H "X-Auth-Token: {{YOUR_API_TOKEN}}" \
$curl = curl_init();
curl_setopt($curl, CURLOPT_CUSTOMREQUEST, "DELETE");
curl_setopt($curl, CURLOPT_URL, "https://api.aql.com//v2/sip/cdr/:handle");
curl_setopt($curl, CURLOPT_HTTPHEADER, ["X-Auth-Token: {{YOUR_API_TOKEN}}", "Content-type: application/json"]);
$response = curl_exec($curl);
curl_close($curl);
import urllib2
token='{{YOUR_API_TOKEN}}'
url='https://api.aql.com//v2/sip/cdr/:handle'
req = urllib2.Request(url)
req.add_header("Content-type", "application/json")
req.add_header('X-Auth-Token', token)
res = urllib2.urlopen(req)
var client = new RestClient("https://api.aql.com//v2/sip/cdr/:handle");
var request = new RestRequest(Method.DELETE);
request.AddHeader("content-type", "application/json");
request.AddHeader("x-auth-token", "{{YOUR_API_TOKEN}}");
IRestResponse response = client.Execute(request);
use REST::Client;
use JSON;
use Data::Dumper;

my $client = REST::Client->new();
$client->addHeader('Content-Type' => 'application/json');
$client->addHeader('X-Auth-Token' => '{{YOUR_API_TOKEN}}');
$client->setHost('https://api.aql.com/');
$client->DELETE('/v2/sip/cdr/:handle');
my $response = from_json($client->responseContent());
print Dumper($response);

Success Response Example

HTTP/1.1 200 OK
{
    "data": {
        "handle": "21458b41485d1405",
        "from_date": "2017-01-01 00:00:00",
        "to_date": "2017-01-31 23:59:59",
        "status": {
            "name": "cancelled",
            "description": "Request cancelled"
        },
        "created_at": "2017-02-05 13:30:00",
        "updated_at": "2017-02-05 13:50:00",
        "parts_count": "31"
    }
}

Check CDR request

get
GET v2/sip/cdr/:handle

Check the status of previously submitted request. If it has been processed, the response meta element will contain a download link. This will create a request for the data to be prepared for download.

Header

Header Type Required Description
Header: X-Auth-Token Type: String Required: Yes Description:

Your API token.

Header: Content-Type Type: String Required: Yes Description:

Request content type.

Parameter

Parameter Type Required Description
Parameter: handle Type: String Required: Yes Description:

The request identifier received from 'v2/cdr/request' call.

Send a Sample Request

GET

Header

Parameter

Code Examples

curl https://api.aql.com/v2/sip/cdr/:handle \
-H "Content-type: application/json" \
-H "X-Auth-Token: {{YOUR_API_TOKEN}}" \
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, "https://api.aql.com/v2/sip/cdr/:handle");
curl_setopt($curl, CURLOPT_HTTPHEADER, ["X-Auth-Token: {{YOUR_API_TOKEN}}", "Content-type: application/json"]);
$response = curl_exec($curl);
curl_close($curl);
import urllib2
token='{{YOUR_API_TOKEN}}'
url='https://api.aql.com/v2/sip/cdr/:handle'
req = urllib2.Request(url)
req.add_header("Content-type", "application/json")
req.add_header('X-Auth-Token', token)
res = urllib2.urlopen(req)
var client = new RestClient("https://api.aql.com/v2/sip/cdr/:handle");
var request = new RestRequest(Method.GET);
request.AddHeader("content-type", "application/json");
request.AddHeader("x-auth-token", "{{YOUR_API_TOKEN}}");
IRestResponse response = client.Execute(request);
use REST::Client;
use JSON;
use Data::Dumper;

my $client = REST::Client->new();
$client->addHeader('Content-Type' => 'application/json');
$client->addHeader('X-Auth-Token' => '{{YOUR_API_TOKEN}}');
$client->setHost('https://api.aql.com/');
$client->GET('/v2/sip/cdr/:handle');
my $response = from_json($client->responseContent());
print Dumper($response);

Success Response Example

HTTP/1.1 200 OK
{
    "data": {
        "handle": "21458b41485d1405",
        "from_date": "2017-01-01 00:00:00",
        "to_date": "2017-01-31 23:59:59",
        "status": {
            "name": "processed",
            "description": "Request processed"
        },
        "created_at": "2017-02-05 13:30:00",
        "updated_at": "2017-02-05 13:30:00",
        "parts_count": "31",
        "single_file": false
    }
    "meta": {
       "download_link": "[[DOMAIN]]v2/sip/cdr/21458b41485d1405/download"
    }

}

Refresh CDR request to extend the expiry time.

put
PUT v2/sip/cdr/:handle

Refresh a request. The request expiry timer will be reset.

Header

Header Type Required Description
Header: X-Auth-Token Type: String Required: Yes Description:

Your API token.

Header: Content-Type Type: String Required: Yes Description:

Request content type.

Parameter

Parameter Type Required Description
Parameter: handle Type: String Required: Yes Description:

The request identifier received from 'v2/cdr/request' call.

Send a Sample Request

PUT

Header

Parameter

Code Examples

curl https://api.aql.com//v2/sip/cdr/:handle \
-X PUT \
-H "Content-type: application/json" \
-H "X-Auth-Token: {{YOUR_API_TOKEN}}" \
$curl = curl_init();
curl_setopt($curl, CURLOPT_CUSTOMREQUEST, "PUT");
curl_setopt($curl, CURLOPT_URL, "https://api.aql.com//v2/sip/cdr/:handle");
curl_setopt($curl, CURLOPT_HTTPHEADER, ["X-Auth-Token: {{YOUR_API_TOKEN}}", "Content-type: application/json"]);
$response = curl_exec($curl);
curl_close($curl);
import urllib2
token='{{YOUR_API_TOKEN}}'
url='https://api.aql.com//v2/sip/cdr/:handle'
req = urllib2.Request(url)
req.add_header("Content-type", "application/json")
req.add_header('X-Auth-Token', token)
res = urllib2.urlopen(req)
var client = new RestClient("https://api.aql.com//v2/sip/cdr/:handle");
var request = new RestRequest(Method.PUT);
request.AddHeader("content-type", "application/json");
request.AddHeader("x-auth-token", "{{YOUR_API_TOKEN}}");
IRestResponse response = client.Execute(request);
use REST::Client;
use JSON;
use Data::Dumper;

my $client = REST::Client->new();
$client->addHeader('Content-Type' => 'application/json');
$client->addHeader('X-Auth-Token' => '{{YOUR_API_TOKEN}}');
$client->setHost('https://api.aql.com/');
$client->PUT('/v2/sip/cdr/:handle');
my $response = from_json($client->responseContent());
print Dumper($response);

Success Response Example

HTTP/1.1 200 OK
{
    "data": {
        "handle": "21458b41485d1405",
        "from_date": "2017-01-01 00:00:00",
        "to_date": "2017-01-31 23:59:59",
        "status": {
            "name": "processed",
            "description": "Request processed"
        },
        "created_at": "2017-02-01 13:30:00",
        "updated_at": "2017-02-01 14:25:00",
        "parts_count": "31",
        "single_file": false,
    }
    "meta": {
       "download_link": "[[DOMAIN]]/v2/sip/cdr/21458b41485d1405/download"
    }

}

Get SIP trunk info

get
GET v2/sip/info

Get SIP trunk related information for current account

Header

Header Type Required Description
Header: X-Auth-Token Type: String Required: Yes Description:

Your API token.

Header: Content-Type Type: String Required: Yes Description:

Request content type.

Response Fields (Success 200)

Field Type Description
Field: balance Type: Integer Description:

Current account balance

Field: channels Type: Integer Description:

Maximum number of channels

Field: tariff_name Type: String Description:

The name of tariff currently being used

Send a Sample Request

GET

Header

Code Examples

curl https://api.aql.com/v2/sip/info \
-H "Content-type: application/json" \
-H "X-Auth-Token: {{YOUR_API_TOKEN}}"
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, "https://api.aql.com/v2/sip/info");
curl_setopt($curl, CURLOPT_HTTPHEADER, ["X-Auth-Token: {{YOUR_API_TOKEN}}", "Content-type: application/json"]);
$response = curl_exec($curl);
curl_close($curl);
import urllib2
token='{{YOUR_API_TOKEN}}'
url='https://api.aql.com/v2/sip/info'
req = urllib2.Request(url)
req.add_header("Content-type", "application/json")
req.add_header('X-Auth-Token', token)
res = urllib2.urlopen(req)
var client = new RestClient("https://api.aql.com/v2/sip/info");
var request = new RestRequest(Method.GET);
request.AddHeader("content-type", "application/json");
request.AddHeader("x-auth-token", "{{YOUR_API_TOKEN}}");
IRestResponse response = client.Execute(request);
use REST::Client;
use JSON;
use Data::Dumper;

my $client = REST::Client->new();
$client->addHeader('Content-Type' => 'application/json');
$client->addHeader('X-Auth-Token' => '{{YOUR_API_TOKEN}}');
$client->setHost('https://api.aql.com/');
$client->GET('/v2/sip/info');
my $response = from_json($client->responseContent());
print Dumper($response);

Success Response Example

HTTP/1.1 200 OK
{
  "data": [
    {
      "balance": 100,
      "channels": 10,
      "tariff_name": "Standard Wholesale"
    }
  ]
}

Get SIP trunk source IPs

get
GET v2/sip/trunk/source-ips

Get SIP trunk source IPs for current account

Header

Header Type Required Description
Header: X-Auth-Token Type: String Required: Yes Description:

Your API token.

Header: Content-Type Type: String Required: Yes Description:

Request content type.

Parameter

Parameter Type Required Description
Parameter: limit Type: Integer Required: No Description:

Maximum records to return (optional - default all)

Parameter: offset Type: Integer Required: No Description:

Skip this number of records from start (optional - default 0)

Response Fields (Success 200)

Field Type Description
Field: source_ips Type: Array Description:

All source IPs for current account

Send a Sample Request

GET

Header

Parameter

Code Examples

curl https://api.aql.com/v2/sip/trunk/source-ips \
-H "Content-type: application/json" \
-H "X-Auth-Token: {{YOUR_API_TOKEN}}"
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, "https://api.aql.com/v2/sip/trunk/source-ips");
curl_setopt($curl, CURLOPT_HTTPHEADER, ["X-Auth-Token: {{YOUR_API_TOKEN}}", "Content-type: application/json"]);
$response = curl_exec($curl);
curl_close($curl);
import urllib2
token='{{YOUR_API_TOKEN}}'
url='https://api.aql.com/v2/sip/trunk/source-ips'
req = urllib2.Request(url)
req.add_header("Content-type", "application/json")
req.add_header('X-Auth-Token', token)
res = urllib2.urlopen(req)
var client = new RestClient("https://api.aql.com/v2/sip/trunk/source-ips");
var request = new RestRequest(Method.GET);
request.AddHeader("content-type", "application/json");
request.AddHeader("x-auth-token", "{{YOUR_API_TOKEN}}");
IRestResponse response = client.Execute(request);
use REST::Client;
use JSON;
use Data::Dumper;

my $client = REST::Client->new();
$client->addHeader('Content-Type' => 'application/json');
$client->addHeader('X-Auth-Token' => '{{YOUR_API_TOKEN}}');
$client->setHost('https://api.aql.com/');
$client->GET('/v2/sip/trunk/source-ips');
my $response = from_json($client->responseContent());
print Dumper($response);

Success Response Example

HTTP/1.1 200 OK
{
  "data": [
    {
      "source_ips": [
         "0.0.0.0",
         "1.1.1.1"
      ]
    }
  ]
}
AutoJemma®

How can I help you today?

Can't find what you're looking for, ask a question below!

Additional Details

AutoJemma® can make mistakes, please verify any critical information.