Inquire Phone Records By Batch

POST

https://api.laaffic.com/v3/voice/recordSipQuery

Inquire phone records by batch on a page basis (for recent two months. The maximum interval between the starting time and the ending time is 31 days).
 
Request Parameters
Parameters Description Required Type
current Current page number: 1-N Yes Int
size Number displayed on each page: 1-100 Yes Int
params Parameters on each page Yes JSONObject
strTime Starting time of inquiry: ISO8601 standard time format 2022-01-01T00:00:00+08:00 Yes String
endTime Ending time of inquiry: ISO8601 standard time format 2022-01-31T00:00:00+08:00 Yes String
sipGroupName Name of phone group, exact match No String
phoneName Phone name, exact match No String
 
Request Sample
Request URL:
    https://api.laaffic.com/v3/voice/recordSipQuery
Request Method:
    POST
Request Headers:
    Content-Type: application/json;charset=UTF-8
    Sign: 05d7a50893e22a5c4bb3216ae3396c7c
    Timestamp: 1630468800
    Api-Key: bDqJFiq9
Request Body:
{
    "current":1,
    "size":20,
    "params":{
        "strTime":"2022-02-18T00:00:00+08:00",
        "endTime":"2022-02-19T00:00:00+08:00",
        "sipGroupName":"",
        "phoneName":""
    }
}
 
Response Parameters
Parameters Description Type
status "0"means successful, others than 0 means failure, seeing Status Code description. String
reason Failure reason description String
data Data on each page JSONObject
total Total record number Int
size Number displayed on each page Int
current Current page number Int
pages Total pages Int
searchCount Inquiry status Boolean
records Data set JSONArray
voiceId Exclusive recording ID String
sipGroupName Name of phone group String
phoneName Phone name String
callee Called number String
displayNum Display number String
code Operator's area String
submitTime Submitting time String
callTime Calling time String
ringingTime Ringing time String
answerTime Answering time String
hangupTime Hanging-up time String
callDuration Call duration (second) Int
chargedDuration Charged duration (second) Int
terminationCode Sip code, 200 means the call is successfully established String
terminationReason Status code description String
cost Consumption amount (USD) String
billPeriod Billing period: 20+20, 60+60 String
rate Rate (USD) String
recordingFileId Exclusive ID of recording file String
currency Quotation Currency String
 
Response Status Code
status Description
0 success
-1 Authentication error
-2 Restricted IP access
-16 Timestamp expires
-18 Port program unusual
-22 Parameter exception
-25 Out of time range
 

language

Java

PHP

REQUEST

import cn.hutool.core.codec.Base64;
import cn.hutool.crypto.SecureUtil;
import cn.hutool.http.Header;
import cn.hutool.http.HttpRequest;
import cn.hutool.http.HttpResponse;
import cn.hutool.json.JSONObject;
import cn.hutool.json.JSONUtil;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.time.LocalDateTime;
import java.time.ZoneId;

public void recordSipQuery() {
    final String baseUrl = "https://api.laaffic.com/v3/voice";
    final String apiKey = "your api key";
    final String apiPwd = "your api secret";

    final Integer current = 1;
    final Integer size = 20;

    final String strTime = "2022-01-01T00:00:00+08:00";
    final String endTime = "2022-01-31T00:00:00+08:00";
    final String sipGroupName = "";
    final String phoneName = "";

    final JSONObject params = JSONUtil.createObj()
            .set("strTime", strTime)
            .set("endTime", endTime)
            .set("sipGroupName", sipGroupName)
            .set("phoneName", phoneName);

    final String url = baseUrl.concat("/recordSipQuery");
    HttpRequest request = HttpRequest.post(url);

    // generate md5 key
    final String datetime = String.valueOf(LocalDateTime.now().atZone(ZoneId.systemDefault()).toInstant().getEpochSecond());
    final String sign = SecureUtil.md5(apiKey.concat(apiPwd).concat(datetime));

    request.header(Header.CONTENT_TYPE, "application/json;charset=UTF-8")
            .header("Sign", sign)
            .header("Timestamp", datetime)
            .header("Api-Key", apiKey);

    final String body = JSONUtil.createObj()
            .set("current", current)
            .set("size", size)
            .set("params", params)
            .toString();

    HttpResponse response = request.body(body).execute();
    if (response.isOk()) {
        String result = response.body();
        System.out.println(result);
    }
}
        
                

REQUEST

header('content-type:text/html;charset=utf8');

$apiKey = "your api key";
$apiSecret = "your api secret";

$url = "https://api.laaffic.com/v3/voice/recordSipQuery";

$timeStamp = time();
$sign = md5($apiKey.$apiSecret.$timeStamp);

$dataArr['current'] = 1;
$dataArr['size'] = 20;
$dataArr['params'] = array(
    "strTime"=>"2022-01-01T00:00:00+08:00",
    "endTime"=>"2022-01-31T00:00:00+08:00",
    "sipGroupName"=> "",
    "phoneName"=> ""
);

$data = json_encode($dataArr);
$headers = array('Content-Type:application/json;charset=UTF-8',"Sign:$sign","Timestamp:$timeStamp","Api-Key:$apiKey");

$ch = curl_init();

curl_setopt($ch, CURLOPT_URL,$url);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 600);
curl_setopt($ch, CURLOPT_HTTPHEADER,$headers);
curl_setopt($ch, CURLOPT_POSTFIELDS , $data);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);

$output = curl_exec($ch);
$error = curl_error($ch);
curl_close($ch);

var_dump($output);
        
                
 

RESPONSEEXAMPLE

{
    "status": "0",
    "reason": "success",
    "data": {
        "total": 5,
        "size": 20,
        "current": 1,
        "pages": 1,
        "searchCount": true,
        "records": [
            {
                "voiceId": "2203031113381000002",
                "sipGroupName": "group1",
                "phoneName": "sipName8555",
                "callee": "91856321412",
                "displayNum": "1008122211",
                "code": "Afghanistan(Kandahar)",
                "submitTime": "2022-01-18T14:42:40+08:00",
                "callTime": "2022-01-18T14:45:42+08:00",
                "ringingTime": "2022-01-18T14:42:47+08:00",
                "answerTime": "2022-01-18T14:42:50+08:00",
                "hangupTime": "2022-01-18T14:42:55+08:00",
                "callDuration": 5,
                "chargedDuration": 5,
                "terminationCode": "200",
                "terminationReason": "success",
                "cost": "2",
                "billPeriod": "20+20",
                "rate": "1.2",
                "recordingFileId": "12022022570cc2484c59d4f8b9745d34226285b1e.mp3",
                "currency":"EUR"
            }
        ]
    }
}
                    
                

Telegram
WhatsApp
Chat with us!

Need help?

Click here and start chatting with us!