# -*- coding: utf8 -*-
# Copyright (c) 2017-2021 THL A29 Limited, a Tencent company. All Rights Reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
import warnings
from tencentcloud.common.abstract_model import AbstractModel
class CallBackCdr(AbstractModel):
"""话单详情
"""
def __init__(self):
r"""
:param _CallId: 呼叫通话 ID
:type CallId: str
:param _Src: 主叫号码
:type Src: str
:param _Dst: 被叫号码
:type Dst: str
:param _StartSrcCallTime: 主叫呼叫开始时间
:type StartSrcCallTime: str
:param _StartSrcRingTime: 主叫响铃开始时间
:type StartSrcRingTime: str
:param _SrcAcceptTime: 主叫接听时间
:type SrcAcceptTime: str
:param _StartDstCallTime: 被叫呼叫开始时间
:type StartDstCallTime: str
:param _StartDstRingTime: 被叫响铃开始时间
:type StartDstRingTime: str
:param _DstAcceptTime: 被叫接听时间
:type DstAcceptTime: str
:param _EndCallTime: 用户挂机通话结束时间
:type EndCallTime: str
:param _CallEndStatus: 通话最后状态:0:未知状态 1:正常通话 2:主叫未接 3:主叫接听,被叫未接 4:主叫未接通 5:被叫未接通
:type CallEndStatus: str
:param _Duration: 通话计费时间
:type Duration: str
:param _RecordUrl: 录音 URL,如果不录音或录音失败,该值为空
:type RecordUrl: str
:param _CallType: 通话类型(1: VOIP 2:IP TO PSTN 3: PSTN TO PSTN),如果话单中没有该字段,默认值为回拨 3 (PSTN TO PSTN)
注意:此字段可能返回 null,表示取不到有效值。
:type CallType: str
:param _BizId: 同回拨请求中的 bizId,如果回拨请求中带 bizId 会有该字段返回
注意:此字段可能返回 null,表示取不到有效值。
:type BizId: str
:param _OrderId: 订单 ID,最大长度不超过 64 个字节,对于一些有订单状态 App 相关应用(如达人帮接入 App 应用),该字段只在帐单中带上,其它回调不附带该字段
注意:此字段可能返回 null,表示取不到有效值。
:type OrderId: str
"""
self._CallId = None
self._Src = None
self._Dst = None
self._StartSrcCallTime = None
self._StartSrcRingTime = None
self._SrcAcceptTime = None
self._StartDstCallTime = None
self._StartDstRingTime = None
self._DstAcceptTime = None
self._EndCallTime = None
self._CallEndStatus = None
self._Duration = None
self._RecordUrl = None
self._CallType = None
self._BizId = None
self._OrderId = None
@property
def CallId(self):
"""呼叫通话 ID
:rtype: str
"""
return self._CallId
@CallId.setter
def CallId(self, CallId):
self._CallId = CallId
@property
def Src(self):
"""主叫号码
:rtype: str
"""
return self._Src
@Src.setter
def Src(self, Src):
self._Src = Src
@property
def Dst(self):
"""被叫号码
:rtype: str
"""
return self._Dst
@Dst.setter
def Dst(self, Dst):
self._Dst = Dst
@property
def StartSrcCallTime(self):
"""主叫呼叫开始时间
:rtype: str
"""
return self._StartSrcCallTime
@StartSrcCallTime.setter
def StartSrcCallTime(self, StartSrcCallTime):
self._StartSrcCallTime = StartSrcCallTime
@property
def StartSrcRingTime(self):
"""主叫响铃开始时间
:rtype: str
"""
return self._StartSrcRingTime
@StartSrcRingTime.setter
def StartSrcRingTime(self, StartSrcRingTime):
self._StartSrcRingTime = StartSrcRingTime
@property
def SrcAcceptTime(self):
"""主叫接听时间
:rtype: str
"""
return self._SrcAcceptTime
@SrcAcceptTime.setter
def SrcAcceptTime(self, SrcAcceptTime):
self._SrcAcceptTime = SrcAcceptTime
@property
def StartDstCallTime(self):
"""被叫呼叫开始时间
:rtype: str
"""
return self._StartDstCallTime
@StartDstCallTime.setter
def StartDstCallTime(self, StartDstCallTime):
self._StartDstCallTime = StartDstCallTime
@property
def StartDstRingTime(self):
"""被叫响铃开始时间
:rtype: str
"""
return self._StartDstRingTime
@StartDstRingTime.setter
def StartDstRingTime(self, StartDstRingTime):
self._StartDstRingTime = StartDstRingTime
@property
def DstAcceptTime(self):
"""被叫接听时间
:rtype: str
"""
return self._DstAcceptTime
@DstAcceptTime.setter
def DstAcceptTime(self, DstAcceptTime):
self._DstAcceptTime = DstAcceptTime
@property
def EndCallTime(self):
"""用户挂机通话结束时间
:rtype: str
"""
return self._EndCallTime
@EndCallTime.setter
def EndCallTime(self, EndCallTime):
self._EndCallTime = EndCallTime
@property
def CallEndStatus(self):
"""通话最后状态:0:未知状态 1:正常通话 2:主叫未接 3:主叫接听,被叫未接 4:主叫未接通 5:被叫未接通
:rtype: str
"""
return self._CallEndStatus
@CallEndStatus.setter
def CallEndStatus(self, CallEndStatus):
self._CallEndStatus = CallEndStatus
@property
def Duration(self):
"""通话计费时间
:rtype: str
"""
return self._Duration
@Duration.setter
def Duration(self, Duration):
self._Duration = Duration
@property
def RecordUrl(self):
"""录音 URL,如果不录音或录音失败,该值为空
:rtype: str
"""
return self._RecordUrl
@RecordUrl.setter
def RecordUrl(self, RecordUrl):
self._RecordUrl = RecordUrl
@property
def CallType(self):
"""通话类型(1: VOIP 2:IP TO PSTN 3: PSTN TO PSTN),如果话单中没有该字段,默认值为回拨 3 (PSTN TO PSTN)
注意:此字段可能返回 null,表示取不到有效值。
:rtype: str
"""
return self._CallType
@CallType.setter
def CallType(self, CallType):
self._CallType = CallType
@property
def BizId(self):
"""同回拨请求中的 bizId,如果回拨请求中带 bizId 会有该字段返回
注意:此字段可能返回 null,表示取不到有效值。
:rtype: str
"""
return self._BizId
@BizId.setter
def BizId(self, BizId):
self._BizId = BizId
@property
def OrderId(self):
"""订单 ID,最大长度不超过 64 个字节,对于一些有订单状态 App 相关应用(如达人帮接入 App 应用),该字段只在帐单中带上,其它回调不附带该字段
注意:此字段可能返回 null,表示取不到有效值。
:rtype: str
"""
return self._OrderId
@OrderId.setter
def OrderId(self, OrderId):
self._OrderId = OrderId
def _deserialize(self, params):
self._CallId = params.get("CallId")
self._Src = params.get("Src")
self._Dst = params.get("Dst")
self._StartSrcCallTime = params.get("StartSrcCallTime")
self._StartSrcRingTime = params.get("StartSrcRingTime")
self._SrcAcceptTime = params.get("SrcAcceptTime")
self._StartDstCallTime = params.get("StartDstCallTime")
self._StartDstRingTime = params.get("StartDstRingTime")
self._DstAcceptTime = params.get("DstAcceptTime")
self._EndCallTime = params.get("EndCallTime")
self._CallEndStatus = params.get("CallEndStatus")
self._Duration = params.get("Duration")
self._RecordUrl = params.get("RecordUrl")
self._CallType = params.get("CallType")
self._BizId = params.get("BizId")
self._OrderId = params.get("OrderId")
memeber_set = set(params.keys())
for name, value in vars(self).items():
property_name = name[1:]
if property_name in memeber_set:
memeber_set.remove(property_name)
if len(memeber_set) > 0:
warnings.warn("%s fileds are useless." % ",".join(memeber_set))
class CallBackPhoneCode(AbstractModel):
"""回拨号码字段
"""
def __init__(self):
r"""
:param _Nation: 国家码,统一以 00 开头
:type Nation: str
:param _Phone: 号码(固话区号前加 0,如075586013388)
:type Phone: str
"""
self._Nation = None
self._Phone = None
@property
def Nation(self):
"""国家码,统一以 00 开头
:rtype: str
"""
return self._Nation
@Nation.setter
def Nation(self, Nation):
self._Nation = Nation
@property
def Phone(self):
"""号码(固话区号前加 0,如075586013388)
:rtype: str
"""
return self._Phone
@Phone.setter
def Phone(self, Phone):
self._Phone = Phone
def _deserialize(self, params):
self._Nation = params.get("Nation")
self._Phone = params.get("Phone")
memeber_set = set(params.keys())
for name, value in vars(self).items():
property_name = name[1:]
if property_name in memeber_set:
memeber_set.remove(property_name)
if len(memeber_set) > 0:
warnings.warn("%s fileds are useless." % ",".join(memeber_set))
class CreateCallBackRequest(AbstractModel):
"""CreateCallBack请求参数结构体
"""
def __init__(self):
r"""
:param _BizAppId: 业务appid
:type BizAppId: str
:param _Src: 主叫号码(必须为 11 位手机号,号码前加 0086,如 008613631686024)
:type Src: str
:param _Dst: 被叫号码(必须为 11 位手机或固话号码,号码前加 0086,如008613631686024,固话如:0086075586013388)
:type Dst: str
:param _SrcDisplayNum: 主叫显示系统分配的固话号码,如不填显示随机分配号码
:type SrcDisplayNum: str
:param _DstDisplayNum: 被叫显示系统分配的固话号码,如不填显示随机分配号码
:type DstDisplayNum: str
:param _Record: 是否录音,0 表示不录音,1 表示录音。默认为不录音
:type Record: str
:param _MaxAllowTime: 允许最大通话时间,不填默认为 30 分钟(单位:分钟)
:type MaxAllowTime: str
:param _StatusFlag: 主叫发起呼叫状态:1 被叫发起呼叫状态:256 主叫响铃状态:2 被叫响铃状态:512 主叫接听状态:4 被叫接听状态:1024 主叫拒绝接听状态:8 被叫拒绝接听状态:2048 主叫正常挂机状态:16 被叫正常挂机状态:4096 主叫呼叫异常:32 被叫呼叫异常:8192
例如:当值为 0:表示所有状态不需要推送;当值为 4:表示只要推送主叫接听状态;当值为 16191:表示所有状态都需要推送(上面所有值和)
:type StatusFlag: str
:param _StatusUrl: 状态回调通知地址,正式环境可以配置默认推送地址
:type StatusUrl: str
:param _HangupUrl: 话单回调通知地址,正式环境可以配置默认推送地址
:type HangupUrl: str
:param _RecordUrl: 录单 URL 回调通知地址,正式环境可以配置默认推送地址
:type RecordUrl: str
:param _BizId: 业务应用 key,业务用该 key 可以区分内部业务或客户产品等,该 key 需保证在该 appId 下全局唯一,最大长度不超过 64 个字节,bizId 只能包含数字、字母。
:type BizId: str
:param _LastCallId: 最后一次呼叫 callId,带上该字段以后,平台会参考该 callId 分配线路,优先不分配该 callId 通话线路(注:谨慎使用,这个会影响线路调度)
:type LastCallId: str
:param _PreCallerHandle: 结构体,主叫呼叫预处理操作,根据不同操作确认是否呼通被叫。如需使用,本结构体需要与 keyList 结构体配合使用,此时这两个参数都为必填项
:type PreCallerHandle: :class:`tencentcloud.npp.v20190823.models.RreCallerHandle`
:param _OrderId: 订单 ID,最大长度不超过64个字节,对于一些有订单状态 App 相关应用使用(如达人帮接入 App 应用),该字段只在帐单中带上,其它回调不附带该字段
:type OrderId: str
"""
self._BizAppId = None
self._Src = None
self._Dst = None
self._SrcDisplayNum = None
self._DstDisplayNum = None
self._Record = None
self._MaxAllowTime = None
self._StatusFlag = None
self._StatusUrl = None
self._HangupUrl = None
self._RecordUrl = None
self._BizId = None
self._LastCallId = None
self._PreCallerHandle = None
self._OrderId = None
@property
def BizAppId(self):
"""业务appid
:rtype: str
"""
return self._BizAppId
@BizAppId.setter
def BizAppId(self, BizAppId):
self._BizAppId = BizAppId
@property
def Src(self):
"""主叫号码(必须为 11 位手机号,号码前加 0086,如 008613631686024)
:rtype: str
"""
return self._Src
@Src.setter
def Src(self, Src):
self._Src = Src
@property
def Dst(self):
"""被叫号码(必须为 11 位手机或固话号码,号码前加 0086,如008613631686024,固话如:0086075586013388)
:rtype: str
"""
return self._Dst
@Dst.setter
def Dst(self, Dst):
self._Dst = Dst
@property
def SrcDisplayNum(self):
"""主叫显示系统分配的固话号码,如不填显示随机分配号码
:rtype: str
"""
return self._SrcDisplayNum
@SrcDisplayNum.setter
def SrcDisplayNum(self, SrcDisplayNum):
self._SrcDisplayNum = SrcDisplayNum
@property
def DstDisplayNum(self):
"""被叫显示系统分配的固话号码,如不填显示随机分配号码
:rtype: str
"""
return self._DstDisplayNum
@DstDisplayNum.setter
def DstDisplayNum(self, DstDisplayNum):
self._DstDisplayNum = DstDisplayNum
@property
def Record(self):
"""是否录音,0 表示不录音,1 表示录音。默认为不录音
:rtype: str
"""
return self._Record
@Record.setter
def Record(self, Record):
self._Record = Record
@property
def MaxAllowTime(self):
"""允许最大通话时间,不填默认为 30 分钟(单位:分钟)
:rtype: str
"""
return self._MaxAllowTime
@MaxAllowTime.setter
def MaxAllowTime(self, MaxAllowTime):
self._MaxAllowTime = MaxAllowTime
@property
def StatusFlag(self):
"""主叫发起呼叫状态:1 被叫发起呼叫状态:256 主叫响铃状态:2 被叫响铃状态:512 主叫接听状态:4 被叫接听状态:1024 主叫拒绝接听状态:8 被叫拒绝接听状态:2048 主叫正常挂机状态:16 被叫正常挂机状态:4096 主叫呼叫异常:32 被叫呼叫异常:8192
例如:当值为 0:表示所有状态不需要推送;当值为 4:表示只要推送主叫接听状态;当值为 16191:表示所有状态都需要推送(上面所有值和)
:rtype: str
"""
return self._StatusFlag
@StatusFlag.setter
def StatusFlag(self, StatusFlag):
self._StatusFlag = StatusFlag
@property
def StatusUrl(self):
"""状态回调通知地址,正式环境可以配置默认推送地址
:rtype: str
"""
return self._StatusUrl
@StatusUrl.setter
def StatusUrl(self, StatusUrl):
self._StatusUrl = StatusUrl
@property
def HangupUrl(self):
"""话单回调通知地址,正式环境可以配置默认推送地址
:rtype: str
"""
return self._HangupUrl
@HangupUrl.setter
def HangupUrl(self, HangupUrl):
self._HangupUrl = HangupUrl
@property
def RecordUrl(self):
"""录单 URL 回调通知地址,正式环境可以配置默认推送地址
:rtype: str
"""
return self._RecordUrl
@RecordUrl.setter
def RecordUrl(self, RecordUrl):
self._RecordUrl = RecordUrl
@property
def BizId(self):
"""业务应用 key,业务用该 key 可以区分内部业务或客户产品等,该 key 需保证在该 appId 下全局唯一,最大长度不超过 64 个字节,bizId 只能包含数字、字母。
:rtype: str
"""
return self._BizId
@BizId.setter
def BizId(self, BizId):
self._BizId = BizId
@property
def LastCallId(self):
"""最后一次呼叫 callId,带上该字段以后,平台会参考该 callId 分配线路,优先不分配该 callId 通话线路(注:谨慎使用,这个会影响线路调度)
:rtype: str
"""
return self._LastCallId
@LastCallId.setter
def LastCallId(self, LastCallId):
self._LastCallId = LastCallId
@property
def PreCallerHandle(self):
"""结构体,主叫呼叫预处理操作,根据不同操作确认是否呼通被叫。如需使用,本结构体需要与 keyList 结构体配合使用,此时这两个参数都为必填项
:rtype: :class:`tencentcloud.npp.v20190823.models.RreCallerHandle`
"""
return self._PreCallerHandle
@PreCallerHandle.setter
def PreCallerHandle(self, PreCallerHandle):
self._PreCallerHandle = PreCallerHandle
@property
def OrderId(self):
"""订单 ID,最大长度不超过64个字节,对于一些有订单状态 App 相关应用使用(如达人帮接入 App 应用),该字段只在帐单中带上,其它回调不附带该字段
:rtype: str
"""
return self._OrderId
@OrderId.setter
def OrderId(self, OrderId):
self._OrderId = OrderId
def _deserialize(self, params):
self._BizAppId = params.get("BizAppId")
self._Src = params.get("Src")
self._Dst = params.get("Dst")
self._SrcDisplayNum = params.get("SrcDisplayNum")
self._DstDisplayNum = params.get("DstDisplayNum")
self._Record = params.get("Record")
self._MaxAllowTime = params.get("MaxAllowTime")
self._StatusFlag = params.get("StatusFlag")
self._StatusUrl = params.get("StatusUrl")
self._HangupUrl = params.get("HangupUrl")
self._RecordUrl = params.get("RecordUrl")
self._BizId = params.get("BizId")
self._LastCallId = params.get("LastCallId")
if params.get("PreCallerHandle") is not None:
self._PreCallerHandle = RreCallerHandle()
self._PreCallerHandle._deserialize(params.get("PreCallerHandle"))
self._OrderId = params.get("OrderId")
memeber_set = set(params.keys())
for name, value in vars(self).items():
property_name = name[1:]
if property_name in memeber_set:
memeber_set.remove(property_name)
if len(memeber_set) > 0:
warnings.warn("%s fileds are useless." % ",".join(memeber_set))
class CreateCallBackResponse(AbstractModel):
"""CreateCallBack返回参数结构体
"""
def __init__(self):
r"""
:param _CallId: 话单id
注意:此字段可能返回 null,表示取不到有效值。
:type CallId: str
:param _SrcDisplayNum: 主叫显示系统分配的固话号码
注意:此字段可能返回 null,表示取不到有效值。
:type SrcDisplayNum: str
:param _DstDisplayNum: 被叫显示系统分配的固话号码
注意:此字段可能返回 null,表示取不到有效值。
:type DstDisplayNum: str
:param _ErrorCode: 错误码
:type ErrorCode: str
:param _Msg: 错误原因
注意:此字段可能返回 null,表示取不到有效值。
:type Msg: str
:param _RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
:type RequestId: str
"""
self._CallId = None
self._SrcDisplayNum = None
self._DstDisplayNum = None
self._ErrorCode = None
self._Msg = None
self._RequestId = None
@property
def CallId(self):
"""话单id
注意:此字段可能返回 null,表示取不到有效值。
:rtype: str
"""
return self._CallId
@CallId.setter
def CallId(self, CallId):
self._CallId = CallId
@property
def SrcDisplayNum(self):
"""主叫显示系统分配的固话号码
注意:此字段可能返回 null,表示取不到有效值。
:rtype: str
"""
return self._SrcDisplayNum
@SrcDisplayNum.setter
def SrcDisplayNum(self, SrcDisplayNum):
self._SrcDisplayNum = SrcDisplayNum
@property
def DstDisplayNum(self):
"""被叫显示系统分配的固话号码
注意:此字段可能返回 null,表示取不到有效值。
:rtype: str
"""
return self._DstDisplayNum
@DstDisplayNum.setter
def DstDisplayNum(self, DstDisplayNum):
self._DstDisplayNum = DstDisplayNum
@property
def ErrorCode(self):
"""错误码
:rtype: str
"""
return self._ErrorCode
@ErrorCode.setter
def ErrorCode(self, ErrorCode):
self._ErrorCode = ErrorCode
@property
def Msg(self):
"""错误原因
注意:此字段可能返回 null,表示取不到有效值。
:rtype: str
"""
return self._Msg
@Msg.setter
def Msg(self, Msg):
self._Msg = Msg
@property
def RequestId(self):
"""唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
:rtype: str
"""
return self._RequestId
@RequestId.setter
def RequestId(self, RequestId):
self._RequestId = RequestId
def _deserialize(self, params):
self._CallId = params.get("CallId")
self._SrcDisplayNum = params.get("SrcDisplayNum")
self._DstDisplayNum = params.get("DstDisplayNum")
self._ErrorCode = params.get("ErrorCode")
self._Msg = params.get("Msg")
self._RequestId = params.get("RequestId")
class DelVirtualNumRequest(AbstractModel):
"""DelVirtualNum请求参数结构体
"""
def __init__(self):
r"""
:param _BizAppId: 业务appid
:type BizAppId: str
:param _BindId: 双方号码 + 中间号绑定 ID,该 ID 全局唯一
:type BindId: str
:param _BizId: 应用二级业务 ID,bizId 需保证在该 appId 下全局唯一,最大长度不超过 16 个字节。
:type BizId: str
"""
self._BizAppId = None
self._BindId = None
self._BizId = None
@property
def BizAppId(self):
"""业务appid
:rtype: str
"""
return self._BizAppId
@BizAppId.setter
def BizAppId(self, BizAppId):
self._BizAppId = BizAppId
@property
def BindId(self):
"""双方号码 + 中间号绑定 ID,该 ID 全局唯一
:rtype: str
"""
return self._BindId
@BindId.setter
def BindId(self, BindId):
self._BindId = BindId
@property
def BizId(self):
"""应用二级业务 ID,bizId 需保证在该 appId 下全局唯一,最大长度不超过 16 个字节。
:rtype: str
"""
return self._BizId
@BizId.setter
def BizId(self, BizId):
self._BizId = BizId
def _deserialize(self, params):
self._BizAppId = params.get("BizAppId")
self._BindId = params.get("BindId")
self._BizId = params.get("BizId")
memeber_set = set(params.keys())
for name, value in vars(self).items():
property_name = name[1:]
if property_name in memeber_set:
memeber_set.remove(property_name)
if len(memeber_set) > 0:
warnings.warn("%s fileds are useless." % ",".join(memeber_set))
class DelVirtualNumResponse(AbstractModel):
"""DelVirtualNum返回参数结构体
"""
def __init__(self):
r"""
:param _ErrorCode: 错误码
:type ErrorCode: str
:param _Msg: 错误信息
注意:此字段可能返回 null,表示取不到有效值。
:type Msg: str
:param _BindId: 绑定 ID,该 ID 全局唯一
注意:此字段可能返回 null,表示取不到有效值。
:type BindId: str
:param _RefLeftNum: 中间号还剩引用计数,如果计数为 0 会解绑
注意:此字段可能返回 null,表示取不到有效值。
:type RefLeftNum: str
:param _RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
:type RequestId: str
"""
self._ErrorCode = None
self._Msg = None
self._BindId = None
self._RefLeftNum = None
self._RequestId = None
@property
def ErrorCode(self):
"""错误码
:rtype: str
"""
return self._ErrorCode
@ErrorCode.setter
def ErrorCode(self, ErrorCode):
self._ErrorCode = ErrorCode
@property
def Msg(self):
"""错误信息
注意:此字段可能返回 null,表示取不到有效值。
:rtype: str
"""
return self._Msg
@Msg.setter
def Msg(self, Msg):
self._Msg = Msg
@property
def BindId(self):
"""绑定 ID,该 ID 全局唯一
注意:此字段可能返回 null,表示取不到有效值。
:rtype: str
"""
return self._BindId
@BindId.setter
def BindId(self, BindId):
self._BindId = BindId
@property
def RefLeftNum(self):
"""中间号还剩引用计数,如果计数为 0 会解绑
注意:此字段可能返回 null,表示取不到有效值。
:rtype: str
"""
return self._RefLeftNum
@RefLeftNum.setter
def RefLeftNum(self, RefLeftNum):
self._RefLeftNum = RefLeftNum
@property
def RequestId(self):
"""唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
:rtype: str
"""
return self._RequestId
@RequestId.setter
def RequestId(self, RequestId):
self._RequestId = RequestId
def _deserialize(self, params):
self._ErrorCode = params.get("ErrorCode")
self._Msg = params.get("Msg")
self._BindId = params.get("BindId")
self._RefLeftNum = params.get("RefLeftNum")
self._RequestId = params.get("RequestId")
class DeleteCallBackRequest(AbstractModel):
"""DeleteCallBack请求参数结构体
"""
def __init__(self):
r"""
:param _BizAppId: 业务appid
:type BizAppId: str
:param _CallId: 回拨请求响应中返回的 callId
:type CallId: str
:param _CancelFlag: 0:不管通话状态直接拆线(默认) 1:主叫响铃以后状态不拆线 2:主叫接听以后状态不拆线 3:被叫响铃以后状态不拆线 4:被叫接听以后状态不拆线
:type CancelFlag: str
"""
self._BizAppId = None
self._CallId = None
self._CancelFlag = None
@property
def BizAppId(self):
"""业务appid
:rtype: str
"""
return self._BizAppId
@BizAppId.setter
def BizAppId(self, BizAppId):
self._BizAppId = BizAppId
@property
def CallId(self):
"""回拨请求响应中返回的 callId
:rtype: str
"""
return self._CallId
@CallId.setter
def CallId(self, CallId):
self._CallId = CallId
@property
def CancelFlag(self):
"""0:不管通话状态直接拆线(默认) 1:主叫响铃以后状态不拆线 2:主叫接听以后状态不拆线 3:被叫响铃以后状态不拆线 4:被叫接听以后状态不拆线
:rtype: str
"""
return self._CancelFlag
@CancelFlag.setter
def CancelFlag(self, CancelFlag):
self._CancelFlag = CancelFlag
def _deserialize(self, params):
self._BizAppId = params.get("BizAppId")
self._CallId = params.get("CallId")
self._CancelFlag = params.get("CancelFlag")
memeber_set = set(params.keys())
for name, value in vars(self).items():
property_name = name[1:]
if property_name in memeber_set:
memeber_set.remove(property_name)
if len(memeber_set) > 0:
warnings.warn("%s fileds are useless." % ",".join(memeber_set))
class DeleteCallBackResponse(AbstractModel):
"""DeleteCallBack返回参数结构体
"""
def __init__(self):
r"""
:param _ErrorCode: 错误码
:type ErrorCode: str
:param _Msg: 错误原因
注意:此字段可能返回 null,表示取不到有效值。
:type Msg: str
:param _CallId: 话单id
注意:此字段可能返回 null,表示取不到有效值。
:type CallId: str
:param _RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
:type RequestId: str
"""
self._ErrorCode = None
self._Msg = None
self._CallId = None
self._RequestId = None
@property
def ErrorCode(self):
"""错误码
:rtype: str
"""
return self._ErrorCode
@ErrorCode.setter
def ErrorCode(self, ErrorCode):
self._ErrorCode = ErrorCode
@property
def Msg(self):
"""错误原因
注意:此字段可能返回 null,表示取不到有效值。
:rtype: str
"""
return self._Msg
@Msg.setter
def Msg(self, Msg):
self._Msg = Msg
@property
def CallId(self):
"""话单id
注意:此字段可能返回 null,表示取不到有效值。
:rtype: str
"""
return self._CallId
@CallId.setter
def CallId(self, CallId):
self._CallId = CallId
@property
def RequestId(self):
"""唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
:rtype: str
"""
return self._RequestId
@RequestId.setter
def RequestId(self, RequestId):
self._RequestId = RequestId
def _deserialize(self, params):
self._ErrorCode = params.get("ErrorCode")
self._Msg = params.get("Msg")
self._CallId = params.get("CallId")
self._RequestId = params.get("RequestId")
class DescribeCallBackCdrRequest(AbstractModel):
"""DescribeCallBackCdr请求参数结构体
"""
def __init__(self):
r"""
:param _BizAppId: 业务appid
:type BizAppId: str
:param _CallId: 回拨请求响应中返回的 callId,按 callId 查询该话单详细信息
:type CallId: str
:param _Src: 查询主叫用户产生的呼叫话单,如填空表示拉取这个时间段所有话单
:type Src: str
:param _StartTimeStamp: 话单开始时间戳
:type StartTimeStamp: str
:param _EndTimeStamp: 话单结束时间戳
:type EndTimeStamp: str
"""
self._BizAppId = None
self._CallId = None
self._Src = None
self._StartTimeStamp = None
self._EndTimeStamp = None
@property
def BizAppId(self):
"""业务appid
:rtype: str
"""
return self._BizAppId
@BizAppId.setter
def BizAppId(self, BizAppId):
self._BizAppId = BizAppId
@property
def CallId(self):
"""回拨请求响应中返回的 callId,按 callId 查询该话单详细信息
:rtype: str
"""
return self._CallId
@CallId.setter
def CallId(self, CallId):
self._CallId = CallId
@property
def Src(self):
"""查询主叫用户产生的呼叫话单,如填空表示拉取这个时间段所有话单
:rtype: str
"""
return self._Src
@Src.setter
def Src(self, Src):
self._Src = Src
@property
def StartTimeStamp(self):
"""话单开始时间戳
:rtype: str
"""
return self._StartTimeStamp
@StartTimeStamp.setter
def StartTimeStamp(self, StartTimeStamp):
self._StartTimeStamp = StartTimeStamp
@property
def EndTimeStamp(self):
"""话单结束时间戳
:rtype: str
"""
return self._EndTimeStamp
@EndTimeStamp.setter
def EndTimeStamp(self, EndTimeStamp):
self._EndTimeStamp = EndTimeStamp
def _deserialize(self, params):
self._BizAppId = params.get("BizAppId")
self._CallId = params.get("CallId")
self._Src = params.get("Src")
self._StartTimeStamp = params.get("StartTimeStamp")
self._EndTimeStamp = params.get("EndTimeStamp")
memeber_set = set(params.keys())
for name, value in vars(self).items():
property_name = name[1:]
if property_name in memeber_set:
memeber_set.remove(property_name)
if len(memeber_set) > 0:
warnings.warn("%s fileds are useless." % ",".join(memeber_set))
class DescribeCallBackCdrResponse(AbstractModel):
"""DescribeCallBackCdr返回参数结构体
"""
def __init__(self):
r"""
:param _Cdr: 话单列表
注意:此字段可能返回 null,表示取不到有效值。
:type Cdr: list of CallBackCdr
:param _Offset: 偏移
注意:此字段可能返回 null,表示取不到有效值。
:type Offset: str
:param _ErrorCode: 错误码
注意:此字段可能返回 null,表示取不到有效值。
:type ErrorCode: str
:param _Msg: 错误原因
注意:此字段可能返回 null,表示取不到有效值。
:type Msg: str
:param _RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
:type RequestId: str
"""
self._Cdr = None
self._Offset = None
self._ErrorCode = None
self._Msg = None
self._RequestId = None
@property
def Cdr(self):
"""话单列表
注意:此字段可能返回 null,表示取不到有效值。
:rtype: list of CallBackCdr
"""
return self._Cdr
@Cdr.setter
def Cdr(self, Cdr):
self._Cdr = Cdr
@property
def Offset(self):
"""偏移
注意:此字段可能返回 null,表示取不到有效值。
:rtype: str
"""
return self._Offset
@Offset.setter
def Offset(self, Offset):
self._Offset = Offset
@property
def ErrorCode(self):
"""错误码
注意:此字段可能返回 null,表示取不到有效值。
:rtype: str
"""
return self._ErrorCode
@ErrorCode.setter
def ErrorCode(self, ErrorCode):
self._ErrorCode = ErrorCode
@property
def Msg(self):
"""错误原因
注意:此字段可能返回 null,表示取不到有效值。
:rtype: str
"""
return self._Msg
@Msg.setter
def Msg(self, Msg):
self._Msg = Msg
@property
def RequestId(self):
"""唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
:rtype: str
"""
return self._RequestId
@RequestId.setter
def RequestId(self, RequestId):
self._RequestId = RequestId
def _deserialize(self, params):
if params.get("Cdr") is not None:
self._Cdr = []
for item in params.get("Cdr"):
obj = CallBackCdr()
obj._deserialize(item)
self._Cdr.append(obj)
self._Offset = params.get("Offset")
self._ErrorCode = params.get("ErrorCode")
self._Msg = params.get("Msg")
self._RequestId = params.get("RequestId")
class DescribeCallBackStatusRequest(AbstractModel):
"""DescribeCallBackStatus请求参数结构体
"""
def __init__(self):
r"""
:param _BizAppId: 业务appid
:type BizAppId: str
:param _CallId: 回拨请求响应中返回的 callId
:type CallId: str
:param _Src: 主叫号码
:type Src: str
:param _Dst: 被叫号码
:type Dst: str
:param _CallStatus: 通话最后状态:0:未知状态 1:主叫响铃中 2:主叫接听 3:被叫响铃中 4:正常通话中 5:通话结束
:type CallStatus: str
"""
self._BizAppId = None
self._CallId = None
self._Src = None
self._Dst = None
self._CallStatus = None
@property
def BizAppId(self):
"""业务appid
:rtype: str
"""
return self._BizAppId
@BizAppId.setter
def BizAppId(self, BizAppId):
self._BizAppId = BizAppId
@property
def CallId(self):
"""回拨请求响应中返回的 callId
:rtype: str
"""
return self._CallId
@CallId.setter
def CallId(self, CallId):
self._CallId = CallId
@property
def Src(self):
"""主叫号码
:rtype: str
"""
return self._Src
@Src.setter
def Src(self, Src):
self._Src = Src
@property
def Dst(self):
"""被叫号码
:rtype: str
"""
return self._Dst
@Dst.setter
def Dst(self, Dst):
self._Dst = Dst
@property
def CallStatus(self):
"""通话最后状态:0:未知状态 1:主叫响铃中 2:主叫接听 3:被叫响铃中 4:正常通话中 5:通话结束
:rtype: str
"""
return self._CallStatus
@CallStatus.setter
def CallStatus(self, CallStatus):
self._CallStatus = CallStatus
def _deserialize(self, params):
self._BizAppId = params.get("BizAppId")
self._CallId = params.get("CallId")
self._Src = params.get("Src")
self._Dst = params.get("Dst")
self._CallStatus = params.get("CallStatus")
memeber_set = set(params.keys())
for name, value in vars(self).items():
property_name = name[1:]
if property_name in memeber_set:
memeber_set.remove(property_name)
if len(memeber_set) > 0:
warnings.warn("%s fileds are useless." % ",".join(memeber_set))
class DescribeCallBackStatusResponse(AbstractModel):
"""DescribeCallBackStatus返回参数结构体
"""
def __init__(self):
r"""
:param _ErrorCode: 错误码
:type ErrorCode: str
:param _Msg: 错误信息
:type Msg: str
:param _AppId: 业务appid
:type AppId: str
:param _CallId: 回拨请求响应中返回的 callId
:type CallId: str
:param _Src: 主叫号码
:type Src: str
:param _Dst: 被叫号码
:type Dst: str
:param _CallStatus: 通话最后状态:0:未知状态 1:主叫响铃中 2:主叫接听 3:被叫响铃中 4:正常通话中 5:通话结束
:type CallStatus: str
:param _RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
:type RequestId: str
"""
self._ErrorCode = None
self._Msg = None
self._AppId = None
self._CallId = None
self._Src = None
self._Dst = None
self._CallStatus = None
self._RequestId = None
@property
def ErrorCode(self):
"""错误码
:rtype: str
"""
return self._ErrorCode
@ErrorCode.setter
def ErrorCode(self, ErrorCode):
self._ErrorCode = ErrorCode
@property
def Msg(self):
"""错误信息
:rtype: str
"""
return self._Msg
@Msg.setter
def Msg(self, Msg):
self._Msg = Msg
@property
def AppId(self):
"""业务appid
:rtype: str
"""
return self._AppId
@AppId.setter
def AppId(self, AppId):
self._AppId = AppId
@property
def CallId(self):
"""回拨请求响应中返回的 callId
:rtype: str
"""
return self._CallId
@CallId.setter
def CallId(self, CallId):
self._CallId = CallId
@property
def Src(self):
"""主叫号码
:rtype: str
"""
return self._Src
@Src.setter
def Src(self, Src):
self._Src = Src
@property
def Dst(self):
"""被叫号码
:rtype: str
"""
return self._Dst
@Dst.setter
def Dst(self, Dst):
self._Dst = Dst
@property
def CallStatus(self):
"""通话最后状态:0:未知状态 1:主叫响铃中 2:主叫接听 3:被叫响铃中 4:正常通话中 5:通话结束
:rtype: str
"""
return self._CallStatus
@CallStatus.setter
def CallStatus(self, CallStatus):
self._CallStatus = CallStatus
@property
def RequestId(self):
"""唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
:rtype: str
"""
return self._RequestId
@RequestId.setter
def RequestId(self, RequestId):
self._RequestId = RequestId
def _deserialize(self, params):
self._ErrorCode = params.get("ErrorCode")
self._Msg = params.get("Msg")
self._AppId = params.get("AppId")
self._CallId = params.get("CallId")
self._Src = params.get("Src")
self._Dst = params.get("Dst")
self._CallStatus = params.get("CallStatus")
self._RequestId = params.get("RequestId")
class DescribeCallerDisplayListRequest(AbstractModel):
"""DescribeCallerDisplayList请求参数结构体
"""
def __init__(self):
r"""
:param _BizAppId: 业务appid
:type BizAppId: str
"""
self._BizAppId = None
@property
def BizAppId(self):
"""业务appid
:rtype: str
"""
return self._BizAppId
@BizAppId.setter
def BizAppId(self, BizAppId):
self._BizAppId = BizAppId
def _deserialize(self, params):
self._BizAppId = params.get("BizAppId")
memeber_set = set(params.keys())
for name, value in vars(self).items():
property_name = name[1:]
if property_name in memeber_set:
memeber_set.remove(property_name)
if len(memeber_set) > 0:
warnings.warn("%s fileds are useless." % ",".join(memeber_set))
class DescribeCallerDisplayListResponse(AbstractModel):
"""DescribeCallerDisplayList返回参数结构体
"""
def __init__(self):
r"""
:param _AppId: appid
注意:此字段可能返回 null,表示取不到有效值。
:type AppId: str
:param _CodeList: 主叫显号号码集合,codeList[0...*] 结构体数组,如果业务是主被叫互显,该字段为空
注意:此字段可能返回 null,表示取不到有效值。
:type CodeList: list of CallBackPhoneCode
:param _ErrorCode: 错误码
:type ErrorCode: str
:param _Msg: 错误原因
注意:此字段可能返回 null,表示取不到有效值。
:type Msg: str
:param _RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
:type RequestId: str
"""
self._AppId = None
self._CodeList = None
self._ErrorCode = None
self._Msg = None
self._RequestId = None
@property
def AppId(self):
"""appid
注意:此字段可能返回 null,表示取不到有效值。
:rtype: str
"""
return self._AppId
@AppId.setter
def AppId(self, AppId):
self._AppId = AppId
@property
def CodeList(self):
"""主叫显号号码集合,codeList[0...*] 结构体数组,如果业务是主被叫互显,该字段为空
注意:此字段可能返回 null,表示取不到有效值。
:rtype: list of CallBackPhoneCode
"""
return self._CodeList
@CodeList.setter
def CodeList(self, CodeList):
self._CodeList = CodeList
@property
def ErrorCode(self):
"""错误码
:rtype: str
"""
return self._ErrorCode
@ErrorCode.setter
def ErrorCode(self, ErrorCode):
self._ErrorCode = ErrorCode
@property
def Msg(self):
"""错误原因
注意:此字段可能返回 null,表示取不到有效值。
:rtype: str
"""
return self._Msg
@Msg.setter
def Msg(self, Msg):
self._Msg = Msg
@property
def RequestId(self):
"""唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
:rtype: str
"""
return self._RequestId
@RequestId.setter
def RequestId(self, RequestId):
self._RequestId = RequestId
def _deserialize(self, params):
self._AppId = params.get("AppId")
if params.get("CodeList") is not None:
self._CodeList = []
for item in params.get("CodeList"):
obj = CallBackPhoneCode()
obj._deserialize(item)
self._CodeList.append(obj)
self._ErrorCode = params.get("ErrorCode")
self._Msg = params.get("Msg")
self._RequestId = params.get("RequestId")
class Get400CdrRequest(AbstractModel):
"""Get400Cdr请求参数结构体
"""
def __init__(self):
r"""
:param _BizAppId: 业务appid
:type BizAppId: str
:param _CallId: 通话唯一标识 callId,即直拨呼叫响应中返回的 callId
:type CallId: str
:param _Src: 查询主叫用户产生的呼叫话单(0086开头),设置为空表示拉取该时间段的所有话单
:type Src: str
:param _StartTimeStamp: 话单开始时间戳
:type StartTimeStamp: str
:param _EndTimeStamp: 话单结束时间戳
:type EndTimeStamp: str
"""
self._BizAppId = None
self._CallId = None
self._Src = None
self._StartTimeStamp = None
self._EndTimeStamp = None
@property
def BizAppId(self):
"""业务appid
:rtype: str
"""
return self._BizAppId
@BizAppId.setter
def BizAppId(self, BizAppId):
self._BizAppId = BizAppId
@property
def CallId(self):
"""通话唯一标识 callId,即直拨呼叫响应中返回的 callId
:rtype: str
"""
return self._CallId
@CallId.setter
def CallId(self, CallId):
self._CallId = CallId
@property
def Src(self):
"""查询主叫用户产生的呼叫话单(0086开头),设置为空表示拉取该时间段的所有话单
:rtype: str
"""
return self._Src
@Src.setter
def Src(self, Src):
self._Src = Src
@property
def StartTimeStamp(self):
"""话单开始时间戳
:rtype: str
"""
return self._StartTimeStamp
@StartTimeStamp.setter
def StartTimeStamp(self, StartTimeStamp):
self._StartTimeStamp = StartTimeStamp
@property
def EndTimeStamp(self):
"""话单结束时间戳
:rtype: str
"""
return self._EndTimeStamp
@EndTimeStamp.setter
def EndTimeStamp(self, EndTimeStamp):
self._EndTimeStamp = EndTimeStamp
def _deserialize(self, params):
self._BizAppId = params.get("BizAppId")
self._CallId = params.get("CallId")
self._Src = params.get("Src")
self._StartTimeStamp = params.get("StartTimeStamp")
self._EndTimeStamp = params.get("EndTimeStamp")
memeber_set = set(params.keys())
for name, value in vars(self).items():
property_name = name[1:]
if property_name in memeber_set:
memeber_set.remove(property_name)
if len(memeber_set) > 0:
warnings.warn("%s fileds are useless." % ",".join(memeber_set))
class Get400CdrResponse(AbstractModel):
"""Get400Cdr返回参数结构体
"""
def __init__(self):
r"""
:param _ErrorCode: 错误码
:type ErrorCode: str
:param _Msg: 错误原因
注意:此字段可能返回 null,表示取不到有效值。
:type Msg: str
:param _Offset: 偏移
注意:此字段可能返回 null,表示取不到有效值。
:type Offset: str
:param _Cdr: 话单列表
注意:此字段可能返回 null,表示取不到有效值。
:type Cdr: list of VirturalNumCdr
:param _RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
:type RequestId: str
"""
self._ErrorCode = None
self._Msg = None
self._Offset = None
self._Cdr = None
self._RequestId = None
@property
def ErrorCode(self):
"""错误码
:rtype: str
"""
return self._ErrorCode
@ErrorCode.setter
def ErrorCode(self, ErrorCode):
self._ErrorCode = ErrorCode
@property
def Msg(self):
"""错误原因
注意:此字段可能返回 null,表示取不到有效值。
:rtype: str
"""
return self._Msg
@Msg.setter
def Msg(self, Msg):
self._Msg = Msg
@property
def Offset(self):
"""偏移
注意:此字段可能返回 null,表示取不到有效值。
:rtype: str
"""
return self._Offset
@Offset.setter
def Offset(self, Offset):
self._Offset = Offset
@property
def Cdr(self):
"""话单列表
注意:此字段可能返回 null,表示取不到有效值。
:rtype: list of VirturalNumCdr
"""
return self._Cdr
@Cdr.setter
def Cdr(self, Cdr):
self._Cdr = Cdr
@property
def RequestId(self):
"""唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
:rtype: str
"""
return self._RequestId
@RequestId.setter
def RequestId(self, RequestId):
self._RequestId = RequestId
def _deserialize(self, params):
self._ErrorCode = params.get("ErrorCode")
self._Msg = params.get("Msg")
self._Offset = params.get("Offset")
if params.get("Cdr") is not None:
self._Cdr = []
for item in params.get("Cdr"):
obj = VirturalNumCdr()
obj._deserialize(item)
self._Cdr.append(obj)
self._RequestId = params.get("RequestId")
class GetVirtualNumRequest(AbstractModel):
"""GetVirtualNum请求参数结构体
"""
def __init__(self):
r"""
:param _BizAppId: 业务appid
:type BizAppId: str
:param _Dst: 被叫号码(号码前加 0086,如 008613631686024)
:type Dst: str
:param _Src: 主叫号码(号码前加 0086,如 008613631686024),xb 模式下是不用填写,axb 模式下是必选
:type Src: str
:param _AccreditList: {“accreditList”:[“008613631686024”,”008612345678910”]},主要用于 N-1 场景,号码绑定非共享是独占型,指定了 dst 独占中间号绑定,accreditList 表示这个列表成员可以拨打 dst 绑 定的中间号,默认值为空,表示所有号码都可以拨打独占型中间号绑定,最大集合不允许超过 30 个,仅适用于xb模式
:type AccreditList: list of str
:param _AssignVirtualNum: 指定中间号(格式:008617013541251),如果该中间号已被使用则返回绑定失败。如果不带该字段则由腾讯侧从号码池里自动分配
:type AssignVirtualNum: str
:param _Record: 是否录音,0表示不录音,1表示录音。默认为不录音,注意如果需要录音回调,通话完成后需要等待一段时间,收到录音回调之后,再解绑中间号。
:type Record: str
:param _CityId: 主被叫显号号码归属地,指定该参数说明显号归属该城市,如果没有该城市号码会随机选取一个城市或者后台配置返回107,返回码详见 《腾讯-中间号-城市id.xlsx》
:type CityId: str
:param _BizId: 应用二级业务 ID,bizId 需保证在该 appId 下全局唯一,最大长度不超过 16 个字节。
:type BizId: str
:param _MaxAssignTime: 号码最大绑定时间,不填默认为 24 小时,最长绑定时间是168小时,单位秒
:type MaxAssignTime: str
:param _StatusFlag: 主叫发起呼叫状态:1
被叫发起呼叫状态:256
主叫响铃状态:2
被叫响铃状态:512
主叫接听状态:4
被叫接听状态:1024
主叫拒绝接听状态:8
被叫拒绝接听状态:2048
主叫正常挂机状态:16
被叫正常挂机状态:4096
主叫呼叫异常:32
被叫呼叫异常:8192
例如:
值为 0:表示所有状态不需要推送
值为 4:表示只要推送主叫接听状态
值为 16191:表示所有状态都需要推送(上面所有值和)
:type StatusFlag: str
:param _StatusUrl: 请填写statusFlag并设置值,状态回调通知地址,正式环境可以配置默认推送地址
:type StatusUrl: str
:param _HangupUrl: 话单回调通知地址,正式环境可以配置默认推送地址
:type HangupUrl: str
:param _RecordUrl: 录单 URL 回调通知地址,正式环境可以配置默认推送地址
:type RecordUrl: str
"""
self._BizAppId = None
self._Dst = None
self._Src = None
self._AccreditList = None
self._AssignVirtualNum = None
self._Record = None
self._CityId = None
self._BizId = None
self._MaxAssignTime = None
self._StatusFlag = None
self._StatusUrl = None
self._HangupUrl = None
self._RecordUrl = None
@property
def BizAppId(self):
"""业务appid
:rtype: str
"""
return self._BizAppId
@BizAppId.setter
def BizAppId(self, BizAppId):
self._BizAppId = BizAppId
@property
def Dst(self):
"""被叫号码(号码前加 0086,如 008613631686024)
:rtype: str
"""
return self._Dst
@Dst.setter
def Dst(self, Dst):
self._Dst = Dst
@property
def Src(self):
"""主叫号码(号码前加 0086,如 008613631686024),xb 模式下是不用填写,axb 模式下是必选
:rtype: str
"""
return self._Src
@Src.setter
def Src(self, Src):
self._Src = Src
@property
def AccreditList(self):
"""{“accreditList”:[“008613631686024”,”008612345678910”]},主要用于 N-1 场景,号码绑定非共享是独占型,指定了 dst 独占中间号绑定,accreditList 表示这个列表成员可以拨打 dst 绑 定的中间号,默认值为空,表示所有号码都可以拨打独占型中间号绑定,最大集合不允许超过 30 个,仅适用于xb模式
:rtype: list of str
"""
return self._AccreditList
@AccreditList.setter
def AccreditList(self, AccreditList):
self._AccreditList = AccreditList
@property
def AssignVirtualNum(self):
"""指定中间号(格式:008617013541251),如果该中间号已被使用则返回绑定失败。如果不带该字段则由腾讯侧从号码池里自动分配
:rtype: str
"""
return self._AssignVirtualNum
@AssignVirtualNum.setter
def AssignVirtualNum(self, AssignVirtualNum):
self._AssignVirtualNum = AssignVirtualNum
@property
def Record(self):
"""是否录音,0表示不录音,1表示录音。默认为不录音,注意如果需要录音回调,通话完成后需要等待一段时间,收到录音回调之后,再解绑中间号。
:rtype: str
"""
return self._Record
@Record.setter
def Record(self, Record):
self._Record = Record
@property
def CityId(self):
"""主被叫显号号码归属地,指定该参数说明显号归属该城市,如果没有该城市号码会随机选取一个城市或者后台配置返回107,返回码详见 《腾讯-中间号-城市id.xlsx》
:rtype: str
"""
return self._CityId
@CityId.setter
def CityId(self, CityId):
self._CityId = CityId
@property
def BizId(self):
"""应用二级业务 ID,bizId 需保证在该 appId 下全局唯一,最大长度不超过 16 个字节。
:rtype: str
"""
return self._BizId
@BizId.setter
def BizId(self, BizId):
self._BizId = BizId
@property
def MaxAssignTime(self):
"""号码最大绑定时间,不填默认为 24 小时,最长绑定时间是168小时,单位秒
:rtype: str
"""
return self._MaxAssignTime
@MaxAssignTime.setter
def MaxAssignTime(self, MaxAssignTime):
self._MaxAssignTime = MaxAssignTime
@property
def StatusFlag(self):
"""主叫发起呼叫状态:1
被叫发起呼叫状态:256
主叫响铃状态:2
被叫响铃状态:512
主叫接听状态:4
被叫接听状态:1024
主叫拒绝接听状态:8
被叫拒绝接听状态:2048
主叫正常挂机状态:16
被叫正常挂机状态:4096
主叫呼叫异常:32
被叫呼叫异常:8192
例如:
值为 0:表示所有状态不需要推送
值为 4:表示只要推送主叫接听状态
值为 16191:表示所有状态都需要推送(上面所有值和)
:rtype: str
"""
return self._StatusFlag
@StatusFlag.setter
def StatusFlag(self, StatusFlag):
self._StatusFlag = StatusFlag
@property
def StatusUrl(self):
"""请填写statusFlag并设置值,状态回调通知地址,正式环境可以配置默认推送地址
:rtype: str
"""
return self._StatusUrl
@StatusUrl.setter
def StatusUrl(self, StatusUrl):
self._StatusUrl = StatusUrl
@property
def HangupUrl(self):
"""话单回调通知地址,正式环境可以配置默认推送地址
:rtype: str
"""
return self._HangupUrl
@HangupUrl.setter
def HangupUrl(self, HangupUrl):
self._HangupUrl = HangupUrl
@property
def RecordUrl(self):
"""录单 URL 回调通知地址,正式环境可以配置默认推送地址
:rtype: str
"""
return self._RecordUrl
@RecordUrl.setter
def RecordUrl(self, RecordUrl):
self._RecordUrl = RecordUrl
def _deserialize(self, params):
self._BizAppId = params.get("BizAppId")
self._Dst = params.get("Dst")
self._Src = params.get("Src")
self._AccreditList = params.get("AccreditList")
self._AssignVirtualNum = params.get("AssignVirtualNum")
self._Record = params.get("Record")
self._CityId = params.get("CityId")
self._BizId = params.get("BizId")
self._MaxAssignTime = params.get("MaxAssignTime")
self._StatusFlag = params.get("StatusFlag")
self._StatusUrl = params.get("StatusUrl")
self._HangupUrl = params.get("HangupUrl")
self._RecordUrl = params.get("RecordUrl")
memeber_set = set(params.keys())
for name, value in vars(self).items():
property_name = name[1:]
if property_name in memeber_set:
memeber_set.remove(property_name)
if len(memeber_set) > 0:
warnings.warn("%s fileds are useless." % ",".join(memeber_set))
class GetVirtualNumResponse(AbstractModel):
"""GetVirtualNum返回参数结构体
"""
def __init__(self):
r"""
:param _ErrorCode: 错误码
:type ErrorCode: str
:param _BindId: 绑定 ID,该 ID 全局唯一
注意:此字段可能返回 null,表示取不到有效值。
:type BindId: str
:param _RefNum: 中间号还剩引用计数,如果计数为 0 会解绑
注意:此字段可能返回 null,表示取不到有效值。
:type RefNum: str
:param _VirtualNum: 中间号
注意:此字段可能返回 null,表示取不到有效值。
:type VirtualNum: str
:param _Msg: 错误原因
注意:此字段可能返回 null,表示取不到有效值。
:type Msg: str
:param _RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
:type RequestId: str
"""
self._ErrorCode = None
self._BindId = None
self._RefNum = None
self._VirtualNum = None
self._Msg = None
self._RequestId = None
@property
def ErrorCode(self):
"""错误码
:rtype: str
"""
return self._ErrorCode
@ErrorCode.setter
def ErrorCode(self, ErrorCode):
self._ErrorCode = ErrorCode
@property
def BindId(self):
"""绑定 ID,该 ID 全局唯一
注意:此字段可能返回 null,表示取不到有效值。
:rtype: str
"""
return self._BindId
@BindId.setter
def BindId(self, BindId):
self._BindId = BindId
@property
def RefNum(self):
"""中间号还剩引用计数,如果计数为 0 会解绑
注意:此字段可能返回 null,表示取不到有效值。
:rtype: str
"""
return self._RefNum
@RefNum.setter
def RefNum(self, RefNum):
self._RefNum = RefNum
@property
def VirtualNum(self):
"""中间号
注意:此字段可能返回 null,表示取不到有效值。
:rtype: str
"""
return self._VirtualNum
@VirtualNum.setter
def VirtualNum(self, VirtualNum):
self._VirtualNum = VirtualNum
@property
def Msg(self):
"""错误原因
注意:此字段可能返回 null,表示取不到有效值。
:rtype: str
"""
return self._Msg
@Msg.setter
def Msg(self, Msg):
self._Msg = Msg
@property
def RequestId(self):
"""唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
:rtype: str
"""
return self._RequestId
@RequestId.setter
def RequestId(self, RequestId):
self._RequestId = RequestId
def _deserialize(self, params):
self._ErrorCode = params.get("ErrorCode")
self._BindId = params.get("BindId")
self._RefNum = params.get("RefNum")
self._VirtualNum = params.get("VirtualNum")
self._Msg = params.get("Msg")
self._RequestId = params.get("RequestId")
class KeyList(AbstractModel):
"""对应按键操作,如果没有结构体里定义按键操作用户按键以后都从 interruptPrompt 重新播放
"""
def __init__(self):
r"""
:param _Key: 用户按键(0-9、*、#、A-D)
:type Key: str
:param _Operate: 1: 呼通被叫 2:interruptPrompt 重播提示 3:拆线
:type Operate: str
"""
self._Key = None
self._Operate = None
@property
def Key(self):
"""用户按键(0-9、*、#、A-D)
:rtype: str
"""
return self._Key
@Key.setter
def Key(self, Key):
self._Key = Key
@property
def Operate(self):
"""1: 呼通被叫 2:interruptPrompt 重播提示 3:拆线
:rtype: str
"""
return self._Operate
@Operate.setter
def Operate(self, Operate):
self._Operate = Operate
def _deserialize(self, params):
self._Key = params.get("Key")
self._Operate = params.get("Operate")
memeber_set = set(params.keys())
for name, value in vars(self).items():
property_name = name[1:]
if property_name in memeber_set:
memeber_set.remove(property_name)
if len(memeber_set) > 0:
warnings.warn("%s fileds are useless." % ",".join(memeber_set))
class RreCallerHandle(AbstractModel):
"""结构体,主叫呼叫预处理操作,根据不同操作确认是否呼通被叫。如需使用,本结构体需要与 keyList 结构体配合使用,此时这两个参数都为必填项
"""
def __init__(self):
r"""
:param _ReadPrompt: 呼叫主叫以后,给主叫用户的语音提示,播放该提示时用户所有按键无效
:type ReadPrompt: str
:param _InterruptPrompt: 可中断提示,播放该提示时,用户可以按键
:type InterruptPrompt: str
:param _KeyList: 对应按键操作,如果没有结构体里定义按键操作用户按键以后都从 interruptPrompt 重新播放
:type KeyList: list of KeyList
:param _RepeatTimes: 最多重复播放次数,超过该次数拆线
:type RepeatTimes: str
:param _KeyPressUrl: 用户按键回调通知地址,如果为空不回调
:type KeyPressUrl: str
:param _PromptGender: 提示音男声女声:1女声,2男声。默认女声
:type PromptGender: str
"""
self._ReadPrompt = None
self._InterruptPrompt = None
self._KeyList = None
self._RepeatTimes = None
self._KeyPressUrl = None
self._PromptGender = None
@property
def ReadPrompt(self):
"""呼叫主叫以后,给主叫用户的语音提示,播放该提示时用户所有按键无效
:rtype: str
"""
return self._ReadPrompt
@ReadPrompt.setter
def ReadPrompt(self, ReadPrompt):
self._ReadPrompt = ReadPrompt
@property
def InterruptPrompt(self):
"""可中断提示,播放该提示时,用户可以按键
:rtype: str
"""
return self._InterruptPrompt
@InterruptPrompt.setter
def InterruptPrompt(self, InterruptPrompt):
self._InterruptPrompt = InterruptPrompt
@property
def KeyList(self):
"""对应按键操作,如果没有结构体里定义按键操作用户按键以后都从 interruptPrompt 重新播放
:rtype: list of KeyList
"""
return self._KeyList
@KeyList.setter
def KeyList(self, KeyList):
self._KeyList = KeyList
@property
def RepeatTimes(self):
"""最多重复播放次数,超过该次数拆线
:rtype: str
"""
return self._RepeatTimes
@RepeatTimes.setter
def RepeatTimes(self, RepeatTimes):
self._RepeatTimes = RepeatTimes
@property
def KeyPressUrl(self):
"""用户按键回调通知地址,如果为空不回调
:rtype: str
"""
return self._KeyPressUrl
@KeyPressUrl.setter
def KeyPressUrl(self, KeyPressUrl):
self._KeyPressUrl = KeyPressUrl
@property
def PromptGender(self):
"""提示音男声女声:1女声,2男声。默认女声
:rtype: str
"""
return self._PromptGender
@PromptGender.setter
def PromptGender(self, PromptGender):
self._PromptGender = PromptGender
def _deserialize(self, params):
self._ReadPrompt = params.get("ReadPrompt")
self._InterruptPrompt = params.get("InterruptPrompt")
if params.get("KeyList") is not None:
self._KeyList = []
for item in params.get("KeyList"):
obj = KeyList()
obj._deserialize(item)
self._KeyList.append(obj)
self._RepeatTimes = params.get("RepeatTimes")
self._KeyPressUrl = params.get("KeyPressUrl")
self._PromptGender = params.get("PromptGender")
memeber_set = set(params.keys())
for name, value in vars(self).items():
property_name = name[1:]
if property_name in memeber_set:
memeber_set.remove(property_name)
if len(memeber_set) > 0:
warnings.warn("%s fileds are useless." % ",".join(memeber_set))
class VirturalNumCdr(AbstractModel):
"""直拨话单详情
"""
def __init__(self):
r"""
:param _CallId: 呼叫通话 ID
:type CallId: str
:param _BindId: 双方号码 + 中间号绑定 ID,该 ID 全局唯一
:type BindId: str
:param _Src: 主叫号码
:type Src: str
:param _Dst: 被叫号码
:type Dst: str
:param _DstVirtualNum: 主叫通讯录直拨虚拟保护号码
:type DstVirtualNum: str
:param _CallCenterAcceptTime: 虚拟保护号码平台收到呼叫时间
:type CallCenterAcceptTime: str
:param _StartDstCallTime: 被叫呼叫开始时间
:type StartDstCallTime: str
:param _StartDstRingTime: 被叫响铃开始时间
:type StartDstRingTime: str
:param _DstAcceptTime: 被叫接听时间
:type DstAcceptTime: str
:param _EndCallTime: 用户挂机通话结束时间
:type EndCallTime: str
:param _CallEndStatus: 通话最后状态:0:未知状态 1:正常通话 2:查询呼叫转移被叫号异常 3:未接通 4:未接听 5:拒接挂断 6:关机 7:空号 8:通话中 9:欠费 10:运营商线路或平台异常
:type CallEndStatus: str
:param _SrcDuration: 主叫接通虚拟保护号码到通话结束通话时间
:type SrcDuration: str
:param _DstDuration: 呼叫转接被叫接通到通话结束通话时间
:type DstDuration: str
:param _RecordUrl: 录音 URL,如果不录音或录音失败,该值为空
:type RecordUrl: str
"""
self._CallId = None
self._BindId = None
self._Src = None
self._Dst = None
self._DstVirtualNum = None
self._CallCenterAcceptTime = None
self._StartDstCallTime = None
self._StartDstRingTime = None
self._DstAcceptTime = None
self._EndCallTime = None
self._CallEndStatus = None
self._SrcDuration = None
self._DstDuration = None
self._RecordUrl = None
@property
def CallId(self):
"""呼叫通话 ID
:rtype: str
"""
return self._CallId
@CallId.setter
def CallId(self, CallId):
self._CallId = CallId
@property
def BindId(self):
"""双方号码 + 中间号绑定 ID,该 ID 全局唯一
:rtype: str
"""
return self._BindId
@BindId.setter
def BindId(self, BindId):
self._BindId = BindId
@property
def Src(self):
"""主叫号码
:rtype: str
"""
return self._Src
@Src.setter
def Src(self, Src):
self._Src = Src
@property
def Dst(self):
"""被叫号码
:rtype: str
"""
return self._Dst
@Dst.setter
def Dst(self, Dst):
self._Dst = Dst
@property
def DstVirtualNum(self):
"""主叫通讯录直拨虚拟保护号码
:rtype: str
"""
return self._DstVirtualNum
@DstVirtualNum.setter
def DstVirtualNum(self, DstVirtualNum):
self._DstVirtualNum = DstVirtualNum
@property
def CallCenterAcceptTime(self):
"""虚拟保护号码平台收到呼叫时间
:rtype: str
"""
return self._CallCenterAcceptTime
@CallCenterAcceptTime.setter
def CallCenterAcceptTime(self, CallCenterAcceptTime):
self._CallCenterAcceptTime = CallCenterAcceptTime
@property
def StartDstCallTime(self):
"""被叫呼叫开始时间
:rtype: str
"""
return self._StartDstCallTime
@StartDstCallTime.setter
def StartDstCallTime(self, StartDstCallTime):
self._StartDstCallTime = StartDstCallTime
@property
def StartDstRingTime(self):
"""被叫响铃开始时间
:rtype: str
"""
return self._StartDstRingTime
@StartDstRingTime.setter
def StartDstRingTime(self, StartDstRingTime):
self._StartDstRingTime = StartDstRingTime
@property
def DstAcceptTime(self):
"""被叫接听时间
:rtype: str
"""
return self._DstAcceptTime
@DstAcceptTime.setter
def DstAcceptTime(self, DstAcceptTime):
self._DstAcceptTime = DstAcceptTime
@property
def EndCallTime(self):
"""用户挂机通话结束时间
:rtype: str
"""
return self._EndCallTime
@EndCallTime.setter
def EndCallTime(self, EndCallTime):
self._EndCallTime = EndCallTime
@property
def CallEndStatus(self):
"""通话最后状态:0:未知状态 1:正常通话 2:查询呼叫转移被叫号异常 3:未接通 4:未接听 5:拒接挂断 6:关机 7:空号 8:通话中 9:欠费 10:运营商线路或平台异常
:rtype: str
"""
return self._CallEndStatus
@CallEndStatus.setter
def CallEndStatus(self, CallEndStatus):
self._CallEndStatus = CallEndStatus
@property
def SrcDuration(self):
"""主叫接通虚拟保护号码到通话结束通话时间
:rtype: str
"""
return self._SrcDuration
@SrcDuration.setter
def SrcDuration(self, SrcDuration):
self._SrcDuration = SrcDuration
@property
def DstDuration(self):
"""呼叫转接被叫接通到通话结束通话时间
:rtype: str
"""
return self._DstDuration
@DstDuration.setter
def DstDuration(self, DstDuration):
self._DstDuration = DstDuration
@property
def RecordUrl(self):
"""录音 URL,如果不录音或录音失败,该值为空
:rtype: str
"""
return self._RecordUrl
@RecordUrl.setter
def RecordUrl(self, RecordUrl):
self._RecordUrl = RecordUrl
def _deserialize(self, params):
self._CallId = params.get("CallId")
self._BindId = params.get("BindId")
self._Src = params.get("Src")
self._Dst = params.get("Dst")
self._DstVirtualNum = params.get("DstVirtualNum")
self._CallCenterAcceptTime = params.get("CallCenterAcceptTime")
self._StartDstCallTime = params.get("StartDstCallTime")
self._StartDstRingTime = params.get("StartDstRingTime")
self._DstAcceptTime = params.get("DstAcceptTime")
self._EndCallTime = params.get("EndCallTime")
self._CallEndStatus = params.get("CallEndStatus")
self._SrcDuration = params.get("SrcDuration")
self._DstDuration = params.get("DstDuration")
self._RecordUrl = params.get("RecordUrl")
memeber_set = set(params.keys())
for name, value in vars(self).items():
property_name = name[1:]
if property_name in memeber_set:
memeber_set.remove(property_name)
if len(memeber_set) > 0:
warnings.warn("%s fileds are useless." % ",".join(memeber_set))