话单获取

xunzhong.callCdr

该功能是接收客户http请求,返回语音类通话详单的json串:两种方式:1、增量方式话单 2、某小时话单,均可以拿到语音验证码、双向呼叫、电话会议的话单json串。

优先必读

1: 用户账户Id(accountSID)和用户账户授权令牌(authToken)在哪获取?
提示: 用户登录平台,在导航菜单管理-控制台-开发者主账号下面,
或用户登录平台,在导航菜单管理-体验-功能体验-账号信息下面。(两种获取到账户信息是一样的)
2: 应用ID在哪获取?
提示: 1.如果使用沙箱环境http://sandbox.ytx.net,用户登录平台,在导航菜单管理-体验-功能体验-测试应用下面。
2.如果使用正式环境http://api.ytx.net,用户登录平台,在导航菜单管理-应用管理-应用列表下,若没有应用,需要创建应用。(注:应用上线后,应用ID才有效)
3: 状态回推的相关设置?
提示: (注:沙箱环境http://sandbox.ytx.net,没有相关设置)
在使用正式环境http://api.ytx.net下,用户登录平台,在导航菜单管理-应用管理-创建应用-设置相应的回调地址。
4: IP鉴权地址的相关配置?
提示: (注:沙箱环境http://sandbox.ytx.net,没有相关设置)
在使用正式环境http://api.ytx.net下,用户登录平台,在导航菜单管理-应用管理-创建应用-设置相应的IP白名单。
(注:如测试使用ip白名单,切记将测试主机ip加入到白名单中)
有需要对用户接口发送的服务器进行ip限制,就可以使用ip鉴权进行配置。多个ip使用英文,号分隔。配置空表示不鉴权。
5: 签名sign的加密格式是什么?
提示: MD5加密(账户Id + 账户授权令牌 +时间戳),例如:Sign=AAABBBCCCDDDEEEFFFGGG *时间戳需与Authorization中时间戳相同(时间戳格式:yyyyMMddHHmmss) 注:MD5加密32位,无论大小写
6: 应用验证失败原因(-205)与解决办法?
提示: 1.应用ID与环境不匹配:
①体验里应用ID与沙箱环境http://sandbox.ytx.net使用  ②自己创建的应用的应用ID与正式环境http://api.ytx.net使用
2.设置ip白名单:
①去掉白名单在测试  ②将测试主机ip加入到白名单中

3.应用未开通相应的功能或应用没有上线。

公共参数

请求地址:

环境 HTTP请求地址
正式环境 http://api.ytx.net
沙箱环境 http://sandbox.ytx.net

公共请求参数:

名称 类型 是否必须 描述
accountSID string 云通信平台用户账户Id:对应管理控制台中的 ACCOUNT SID
authToken string 云通信平台用户账户授权令牌:对应管理控制台中的 AUTH TOKEN
version string 云通信API接口版本 目前可选版本:201512
func string 功能所属分类call【语音类】/sms【消息类】/traffic【流量类】/account【账户类】 当前功能属:call
funcURL string 业务功能的各类具体操作分支 当前功能属:CallCdr.wx
Authorization string 云通信平台API接口,包头验证信息:base64加密(账户Id + "|" + 时间戳)  说明:时间戳有效时间为24小时 格式"yyyyMMddHHmmss",如:20140416142030
Sign string 云通信平台API接口,API 验证参数 :MD5加密(账户Id + 账户授权令牌 +时间戳)   *URL后必须带有Sign参数,例如:Sign=AAABBBCCCDDDEEEFFFGGG   *时间戳需与Authorization中时间戳相同  注:MD5加密32位,无论大小写

请求参数

名称 类型 是否必须 描述
action string API接口名称(区分大小写):增量方式话单——getCdrByResId 某小时话单——getCdrByTime
appid string 用户登录云通信平台后,所创建的应用编号appid,若想调用当前话单获取接口,则此应用必须包含有语音验证码、双向呼叫、电话会议等功能,否则调用失败。
fid string 语音类接口功能编号:语音验证码(fid="2") 双向呼叫(fid="4") 电话会议(fid="5")
lastresid string 采用增量方式话单获取话单所必需的参数,为当前已获取话单的的最大requestid(例:2016010000000213),每条话单有自增长的requestid,可从此最大requestid开始拉取话单。若是第一次获取话单则lastresid="0",此时limit不能为0。
limit int 采用增量方式话单获取话单所必需的参数,如果limit=0,表示获取requestid= lastresid的一条话单;如果limit>0,表示获取requestid >= lastresid的limit个话单;如果limit<0,表示获取requestid >= lastresid的所有话单
pdate string 采用某小时话单获取话单所必需的参数,为索要获取话单所在的日期(年月日)。
ptime string 采用某小时话单获取话单所必需的参数,为索要获取话单所在的时(24时刻制,例如2016年2月25日下午七点的所有话单:pdate="2016-02-25",ptime="19")。

响应参数

功能 参数名称 描述 功能 参数名称 描述 功能 参数名称 描述
语音验证码 requestid 当前话单编号,唯一标识 双向呼叫 requestid 当前话单编号,唯一标识 电话会议 requestid 当前话单编号,唯一标识
appid 所属应用的id appid 所属应用的id appid 所属应用的id
fid 功能id,语音验证码fid为2 fid 功能id,双向呼叫fid为4 fid 功能id,电话会议fid为5
tel 接收验证码的电话号码 caller 主叫号码 tel 参与会议的电话号码
called 被叫号码
stime 开始接听时间 callerstime 主叫接听时间 stime 开始接听时间
etime 结束接听时间 calleretime 主叫挂机时间 etime 结束接听时间
calledstime 被叫接听时间
calledetime 被叫挂机时间
tapesurl 录音文件下载地址(http://...111.mp3) (非正常通话或没开通录音返NoTapes) confid 当前会议编号
duration 通话时长(单位:秒) duration 通话时长(单位:秒) duration 通话时长(单位:秒)
oriamount 费用(单位:元) oriamount 费用(单位:元) singleoriamount 费用(单位:元)
customParm 用户自定义参数(可以为用户传给平台的订单编号) customParm 用户自定义参数(可以为用户传给平台的订单编号)

请求包头

1 URL
2 /{version}/sid/{accountSID}/{func}/{funcURL}?Sign={Sign}
3 HTTP标准包头字段
4 Accept:application/json;
5 Content-Type:application/json;charset=utf-8;
6 Authorization:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

报文示例

JSON示例

1 POST /201512/sid/abcdefghijklmnopqrstuvwxyz012345/call/CallCdr.wx?Sign=C1F20E7A9733CE94F680
C70A1DBABCDE HTTP/1.1
2 Host:127.0.0.1:46376
3 content-length: 139
4 Accept:application/json;
5 Content-Type:application/json;charset=utf-8;
6 Authorization:ZmY4MDgwODEzYzM3ZGE1MzAxM2M4MDRmODA3MjAwN2M6MjAxMzAyMDExNTABCDE=
增量 {"action":"getCdrByResId","fid":"2","appid":"ff8080813fc70a7b013fc72312324213",
"lastresid":"2016010000000213","limit":"10"}
某小时 {"action":"getCdrByTime","fid":"4","appid":"ff8080813fc70a7b013fc72312324213",
"pdate":"2016-01-21","ptime":"16"}

请求示例

.Net

1 string jsonData= {\"action\":\"getCdrByResId\",\"fid\":\"2\",
2 \"appid\":\"3215ad6a7d0247ae8b39728b854fa59c\","lastresid":"2016010000000213","limit":"10"} ";
3 string url = "/call/CodeCallOut.wx";
4 string result = CommenHelper.SendRequest(url, jsonData);
5 备注: SendRequest方法在CommenHelper.cs文件里做了封装。详细介绍请点击这里;完整demo示例,下载

响应示例

JSON示例

1 HTTP/1.1 200 OK
2 Content-Length: 85
3 {"cdr":[{"requestid":"2016010000000213","appid":"cbc6ceb21fd34664b6e452ca2aa40b3f","fid":4,
4 "caller":"13810603954","called":"18810207016","callerstime":"2016-01-21 16:17:50",
5 "calleretime":"2016-01-21 16:17:55","calledstime":"","calledetime":"","tapesurl":"NoTapes","duration":0,"oriamount":0.1200},
6 "{"requestid":"2016010000000217 ","appid":"cbc6ceb21fd34664b6e452ca2aa40b3f","fid":4,
7 "caller":"13810603954","called":"01088380197","callerstime":"2016-01-21 16:29:25","calleretime":
8 "2016-01-21 16:29:44","calledstime":"","calledetime":"","tapesurl":"http://.....","duration":3,"oriamount":0.1200,"customParm":"123456"}....]}

异常示例

JSON示例

1 HTTP/1.1 200 OK
2 Content-Length: 61
3 {"statusCode":"-2","statusMsg":"缺少必要参数","requestId":""}

错误码示例

错误码 错误描述 解决方案
0 提交成功
-1 号码无效
-2 缺少必要参数 调用接口时,请传入足够的参数
-3 无效action 传入正确的action
-4 无效的JSON 请遵守正确json语法
-100 异常错误 异常错误
-101 参数不合法 传入符合要求的参数
-102 电话号码不合法 传入正确的电话号码
-200 无此用户 登录官网开通服务账号
-201 用户状态失效 登录官网重新激活服务账号
-202 包头验证信息错误 包头验证信息超时,默认有效时间十分钟,请在有效时间内完成请求
-203 AuthToken验证失败 登录官网获取正确的AuthToken
-204 账户余额不足 登录官网充值
-205 应用验证失败 详情请看[优先必读]
未知错误 联系客服,反应相关问题,促进更好的使用体验。