| import cn.hutool.core.util.StrUtil; |
| import cn.hutool.crypto.SecureUtil; |
| import cn.hutool.http.Header; |
| import cn.hutool.http.HttpRequest; |
| import cn.hutool.http.HttpResponse; |
| import cn.hutool.json.JSONUtil; |
| import java.time.LocalDateTime; |
| import java.time.ZoneId; |
| |
| void recordSipQuery() { |
| final String baseUrl = "https://api.itniotech.com/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); |
| |
| |
| 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); |
| } |
| } |
| $apiKey = "your api key"; |
| $apiSecret = "your api secret"; |
| |
| $url = "https://api.itniotech.com/voice/recordSipQuery"; |
| |
| $timeStamp = time(); |
| $sign = md5($apiKey.$apiSecret.$timeStamp); |
| |
| $dataArr['current'] = 1; |
| $dataArr['size'] = 10; |
| $dataArr['params'] = array("strTime"=>"2022-04-01T00:00:00+08:00", |
| "endTime"=>"2022-04-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-02-18T14:42:40+08:00", |
| "callTime": "2022-02-18T14:45:42+08:00", |
| "ringingTime": "2022-02-18T14:42:47+08:00", |
| "answerTime": "2022-02-18T14:42:50+08:00", |
| "hangupTime": "2022-02-18T14:42:55+08:00", |
| "callDuration": 5, |
| "chargedDuration": 5, |
| "terminationCode": "200", |
| "terminationReason": "success", |
| "cost": "2", |
| "billPeriod": "20+20", |
| "rate": "1.2", |
| "recordingFileId": "12022022570cc2484c59d4f8b9745d34226285b1e.mp3", |
| "settleRate": "1.2793", |
| "quoteExchange": "0.938", |
| "currency":"EUR", |
| "settlePay":"1.2793" |
| } |
| ] |
| } |
| } |