Class CallService

java.lang.Object
com.bytedesk.freeswitch.service.CallService

@Service public class CallService extends Object
呼叫服务
  • Field Details

    • eslClient

      private final org.freeswitch.esl.client.inbound.Client eslClient
    • messagingTemplate

      private final org.springframework.messaging.simp.SimpMessagingTemplate messagingTemplate
    • activeCallMap

      private final Map<String,CallInfo> activeCallMap
    • userCallMap

      private final Map<String,String> userCallMap
  • Constructor Details

    • CallService

      public CallService()
  • Method Details

    • makeCall

      public String makeCall(String fromUser, String toUser)
      发起呼叫
      Parameters:
      fromUser - 主叫用户ID
      toUser - 被叫用户ID
      Returns:
      呼叫ID
    • answerCall

      public boolean answerCall(String callId)
      应答呼叫
      Parameters:
      callId - 呼叫ID
      Returns:
      是否成功
    • rejectCall

      public boolean rejectCall(String callId)
      拒绝呼叫
      Parameters:
      callId - 呼叫ID
      Returns:
      是否成功
    • endCall

      public boolean endCall(String callId)
      结束呼叫
      Parameters:
      callId - 呼叫ID
      Returns:
      是否成功
    • sendDtmf

      public boolean sendDtmf(String callId, String digit)
      发送DTMF按键
      Parameters:
      callId - 呼叫ID
      digit - 按键值
      Returns:
      是否成功
    • toggleMute

      public boolean toggleMute(String callId, boolean mute)
      静音/取消静音
      Parameters:
      callId - 呼叫ID
      mute - 是否静音
      Returns:
      是否成功
    • handleCallStart

      public void handleCallStart(String callerId, String destination, String uuid)
      处理呼叫开始
      Parameters:
      callerId - 主叫号码
      destination - 被叫号码
      uuid - 呼叫UUID
    • handleCallAnswered

      public void handleCallAnswered(String uuid)
      处理呼叫应答
      Parameters:
      uuid - 呼叫UUID
    • handleCallEnd

      public void handleCallEnd(String uuid, String hangupCause)
      处理呼叫结束
      Parameters:
      uuid - 呼叫UUID
      hangupCause - 挂断原因
    • handleDtmf

      public void handleDtmf(String uuid, String digit)
      处理DTMF按键
      Parameters:
      uuid - 呼叫UUID
      digit - 按键值
    • notifyCallEvent

      private void notifyCallEvent(String userId, String eventType, Object data)
      通知用户呼叫事件
    • cleanupCall

      private void cleanupCall(String callId)
      清理呼叫信息