Class CallCdrService

java.lang.Object
com.bytedesk.call.cdr.CallCdrService

@Service @ConditionalOnProperty(prefix="bytedesk.call.freeswitch", name="enabled", havingValue="true", matchIfMissing=false) public class CallCdrService extends Object
Call CDR服务类
  • Field Details

  • Constructor Details

    • CallCdrService

      public CallCdrService()
  • Method Details

    • createCdr

      @Transactional public CallCdrEntity createCdr(CallCdrEntity cdr)
      创建CDR记录
    • updateCdr

      @Transactional public CallCdrEntity updateCdr(CallCdrEntity cdr)
      更新CDR记录
    • deleteCdr

      @Transactional public void deleteCdr(Long id)
      删除CDR记录
    • findById

      public Optional<CallCdrEntity> findById(Long id)
      根据ID查找CDR记录
    • findByUid

      public Optional<CallCdrEntity> findByUid(String uuid)
      根据UUID查找CDR记录
    • findByCallerNumber

      public List<CallCdrEntity> findByCallerNumber(String callerNumber)
      根据主叫号码查找CDR记录
    • findByDestinationNumber

      public List<CallCdrEntity> findByDestinationNumber(String destinationNumber)
      根据被叫号码查找CDR记录
    • getCallHistory

      public org.springframework.data.domain.Page<CallCdrEntity> getCallHistory(String number, org.springframework.data.domain.Pageable pageable)
      获取指定号码的通话历史
    • getRecentCalls

      public org.springframework.data.domain.Page<CallCdrEntity> getRecentCalls(org.springframework.data.domain.Pageable pageable)
      获取最近的通话记录
    • findByTimeRange

      public List<CallCdrEntity> findByTimeRange(ZonedDateTime startTime, ZonedDateTime endTime)
      根据时间范围查找CDR记录
    • getAnsweredCalls

      public List<CallCdrEntity> getAnsweredCalls()
      获取成功接通的通话记录
    • getRecordedCalls

      public List<CallCdrEntity> getRecordedCalls()
      获取有录音的通话记录
    • findCdrs

      public org.springframework.data.domain.Page<CallCdrEntity> findCdrs(org.springframework.data.domain.Pageable pageable)
      分页查询CDR记录
    • getCallStatistics

      public CallCdrService.CallStatistics getCallStatistics(ZonedDateTime startTime, ZonedDateTime endTime)
      获取通话统计信息
    • cleanupOldCdrs

      @Transactional public void cleanupOldCdrs(int daysToKeep)
      清理过期的CDR记录
    • processCdrEvent

      @Transactional public void processCdrEvent(String uuid, String callerNumber, String destinationNumber, String context, ZonedDateTime startStamp, ZonedDateTime answerStamp, ZonedDateTime endStamp, Integer duration, Integer billsec, String hangupCause, String direction)
      处理Call CDR事件
    • updateCdrAnswerTime

      @Transactional public void updateCdrAnswerTime(String uuid, ZonedDateTime answerTime)
      更新CDR应答时间
    • updateCdrEndTime

      @Transactional public void updateCdrEndTime(String uuid, ZonedDateTime endTime, String hangupCause)
      更新CDR结束时间和挂断原因