TrCallRecord.cs 5.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219
  1. using DataTransmission.Enum;
  2. using System;
  3. using System.Collections.Generic;
  4. using System.Linq;
  5. using System.Text;
  6. using System.Threading.Tasks;
  7. namespace DataTransmission.Entity
  8. {
  9. public class TrCallRecord : CreationEntity
  10. {
  11. /// <summary>
  12. /// IPPBX用户名
  13. /// </summary>
  14. public string? User { get; set; }
  15. /// <summary>
  16. /// 可直接访问的通话录音地址
  17. /// </summary>
  18. public string? RecordingFileUrl { get; set; }
  19. public string? RecordingBaseAddress { get; set; }
  20. public string? RecordingAbsolutePath { get; set; }
  21. /// <summary>
  22. /// 呼叫方向
  23. /// </summary>
  24. public ECallDirection CallDirection { get; set; }
  25. /// <summary>
  26. /// 挂断方
  27. /// </summary>
  28. public EEndBy? EndBy { get; set; }
  29. /// <summary>
  30. /// 转接分机号
  31. /// </summary>
  32. public string? AgentTransferNumber { get; set; }
  33. /// <summary>
  34. /// 坐席侧通话流水,无坐席参与则为手机侧通话流水
  35. /// </summary>
  36. public string? CallAccept { get; set; }
  37. /// <summary>
  38. /// 主叫
  39. /// </summary>
  40. public string CPN { get; set; }
  41. /// <summary>
  42. /// 主叫名称
  43. /// </summary>
  44. public string? CPNName { get; set; }
  45. /// <summary>
  46. /// 被叫
  47. /// </summary>
  48. public string CDPN { get; set; }
  49. /// <summary>
  50. /// 分机号
  51. /// </summary>
  52. public string? TelNo { get; set; }
  53. public string? UserId { get; set; }
  54. public string? UserName { get; set; }
  55. public string? StaffNo { get; set; }
  56. /// <summary>
  57. /// 通话录音绝对路径
  58. /// </summary>
  59. public string? RecordingFileName { get; set; }
  60. /// <summary>
  61. /// 通话创建时间
  62. /// </summary>
  63. public DateTime CreatedTime { get; set; }
  64. /// <summary>
  65. /// 接通时间
  66. /// </summary>
  67. public DateTime? AnsweredTime { get; set; }
  68. /// <summary>
  69. /// 挂机时间
  70. /// </summary>
  71. public DateTime OverTime { get; set; }
  72. /// <summary>
  73. /// 线路号
  74. /// </summary>
  75. public string? Gateway { get; set; }
  76. /// <summary>
  77. /// 呼出时自定义的内容
  78. /// </summary>
  79. public string? OtherStr { get; set; }
  80. /// <summary>
  81. /// 手机侧通话流水,无坐席参与则为空
  82. /// </summary>
  83. public string? OtherAccept { get; set; }
  84. /// <summary>
  85. /// 状态码,语音信箱:999/其他:16
  86. /// </summary>
  87. public string? Status { get; set; }
  88. /// <summary>
  89. /// IVR开始时间
  90. /// </summary>
  91. public DateTime? BeginIvrTime { get; set; }
  92. /// <summary>
  93. /// IVR结束时间
  94. /// </summary>
  95. public DateTime? EndIvrTime { get; set; }
  96. /// <summary>
  97. /// 开始等待时间
  98. /// </summary>
  99. public DateTime? BeginQueueTime { get; set; }
  100. /// <summary>
  101. /// 结束等待时间
  102. /// </summary>
  103. public DateTime? EndQueueTime { get; set; }
  104. /// <summary>
  105. /// 开始振铃时间
  106. /// </summary>
  107. public DateTime? BeginRingTime { get; set; }
  108. /// <summary>
  109. /// 结束振铃时间
  110. /// </summary>
  111. public DateTime? EndRingTimg { get; set; }
  112. /// <summary>
  113. /// 队列ID
  114. /// </summary>
  115. public string? OlaQueue { get; set; }
  116. /// <summary>
  117. /// 批量外呼流水
  118. /// </summary>
  119. public string? BatchAccept { get; set; }
  120. /// <summary>
  121. /// IVR按键信息
  122. /// </summary>
  123. public string? IvrDtmf { get; set; }
  124. /// <summary>
  125. /// IVR按键对应动作,需解码
  126. /// </summary>
  127. public string? DtmfType { get; set; }
  128. /// <summary>
  129. /// 通话状态
  130. /// </summary>
  131. public EOnState OnState { get; set; }
  132. #region 自定义字段
  133. /// <summary>
  134. /// 通话时长(挂机时间-接通时间)
  135. /// </summary>
  136. //[SugarColumn(DefaultValue = "0")]
  137. public int Duration { get; set; }
  138. /// <summary>
  139. /// 振铃时长(振铃结束时间-振铃开始时间)
  140. /// </summary>
  141. //[SugarColumn(DefaultValue = "0")]
  142. public int RingTimes { get; set; }
  143. /// <summary>
  144. /// 排队时长(排队结束时间-排队开始时间)
  145. /// </summary>
  146. //[SugarColumn(DefaultValue = "0")]
  147. public int QueueTims { get; set; }
  148. public ECallOrderType? CallOrderType { get; set; }
  149. /// <summary>
  150. /// 外部ID
  151. /// </summary>
  152. public string? ExternalId { get; set; }
  153. /// <summary>
  154. /// 工单
  155. /// </summary>
  156. //[Navigate(NavigateType.OneToOne, nameof(ExternalId))]
  157. //public Order? Order { get; set; }
  158. /// <summary>
  159. /// 呼入号码类型
  160. /// </summary>
  161. public EPhoneTypes? PhoneTypes { get; set; }
  162. /// <summary>
  163. /// 归属地
  164. /// </summary>
  165. public string? MobileAreaName { get; set; }
  166. /// <summary>
  167. /// 运营商
  168. /// </summary>
  169. public string? OFlag { get; set; }
  170. /// <summary>
  171. /// 卡类型
  172. /// </summary>
  173. public string? OperatorName { get; set; }
  174. /// <summary>
  175. /// 转写内容
  176. /// </summary>
  177. //[SugarColumn(ColumnDataType = "varchar(8000)")]
  178. public string? TransliterationContent { get; set; }
  179. /// <summary>
  180. /// 转写状态
  181. /// </summary>
  182. //[SugarColumn(DefaultValue = "0")]
  183. public ECallTransliterationState TransliterationState { get; set; }
  184. /// <summary>
  185. /// 转写id 涉及转写失败后再次推送 id需要更换
  186. /// </summary>
  187. public string? TransliterationId { get; set; }
  188. //public void InitTransliterationId() => TransliterationId = SequentialStringGenerator.Create();
  189. /// <summary>
  190. /// 敏感标签
  191. /// </summary>
  192. //[SugarColumn(ColumnDataType = "json", IsJson = true, IsNullable = true, ColumnDescription = "敏感标签")]
  193. public List<string>? Sensitive { get; set; }
  194. #endregion
  195. }
  196. }