Api

Composables

Referência dos composables Vue do frontend stCall.

Composables

Composables são funções reativas reutilizáveis. No stCall, são auto-importados pelo Nuxt.

WebRTC

useWebRTCPhone

Arquivo: composables/webrtc/useWebRTCPhone.ts

Cliente SIP.js para chamadas WebRTC via Asterisk PJSIP.

const phone = useWebRTCPhone()

Estado reativo:

PropriedadeTipoDescrição
isRegisteredRef<boolean>Registrado no Asterisk
callStateRef<CallSession | null>Estado da chamada
localStreamRef<MediaStream | null>Stream do microfone
remoteStreamRef<MediaStream | null>Stream remoto

Métodos:

MétodoParâmetrosDescrição
registerconfig: WebRTCPhoneConfigRegistrar no Asterisk
unregister-Desregistrar
callnumber: stringFazer chamada
answer-Atender chamada entrante
reject-Rejeitar chamada entrante
hangup-Desligar chamada
holdenable: booleanEspera
muteenable: booleanSilenciar
sendDTMFdigit: stringEnviar tom DTMF

Config de registro:

interface WebRTCPhoneConfig {
  wsServer: string    // 'wss://dominio:8089/ws'
  domain: string      // 'dominio.com'
  username: string    // 'agent-1001'
  password: string
  displayName?: string
}

useWebRTCIntegration

Arquivo: composables/webrtc/useWebRTCIntegration.ts

Ponte entre WebRTC e eventos ARI.

const { phone, isIntegrated } = useWebRTCIntegration()
  • Sincroniza estado WebRTC com callStore
  • Detecta hangup remoto via ARI e encerra WebRTC
  • isIntegrated = WebRTC registrado + WebSocket conectado

Chamadas

useCallDuration

Arquivo: composables/calls/useCallDuration.ts

Timer automático de duração da chamada.

const { callDuration, startTimer, stopTimer } = useCallDuration(() => activeCall.value)
RetornoTipoDescrição
callDurationRef<number>Duração em segundos
startTimer() => voidIniciar manualmente
stopTimer() => voidParar manualmente
  • Inicia automaticamente quando a chamada fica ativa
  • Para quando a chamada termina
  • Limpa intervals no onUnmounted

useCallFormatters

Arquivo: composables/calls/useCallFormatters.ts

Formatadores de dados de chamada.

const { formatDuration, formatPhoneNumber } = useCallFormatters()

formatDuration(125)   // "02:05"
formatDuration(3665)  // "01:01:05"
MétodoEntradaSaída
formatDurationseconds: number"MM:SS" ou "HH:MM:SS"
formatPhoneNumbernumber: stringFormato brasileiro

useCallControls

Arquivo: composables/calls/useCallControls.ts

Ações de controle de chamada (mudo, espera, transferência, desligar).

useCallLifecycle

Arquivo: composables/calls/useCallLifecycle.ts

Ciclo de vida completo da chamada (iniciar, atender, encerrar).

useCallHandler

Arquivo: composables/calls/useCallHandler.ts

Handler de eventos de chamada.

useCallEvents

Arquivo: composables/calls/useCallEvents.ts

Processamento de eventos ARI relacionados a chamadas.

useCallStatus

Arquivo: composables/calls/useCallStatus.ts

Gerenciamento de status da chamada.

useCallHistoryFilters

Arquivo: composables/calls/useCallHistoryFilters.ts

Filtros para o histórico de chamadas.

useRecordingPlayer

Arquivo: composables/calls/useRecordingPlayer.ts

Reprodutor de gravações de chamadas.

WebSocket

useWebSocketConnection

Arquivo: composables/ws/useWebSocketConnection.ts

Gerencia conexão WebSocket com stcall-ws.

useWebSocketCommands

Arquivo: composables/ws/useWebSocketCommands.ts

Envio de comandos ao stcall-ws.

useWebSocketHeartbeat

Arquivo: composables/ws/useWebSocketHeartbeat.ts

Ping/pong para manter conexão viva.

useWebSocketReconnection

Arquivo: composables/ws/useWebSocketReconnection.ts

Lógica de reconexão com backoff exponencial.

useWebSocketMessageRouter

Arquivo: composables/ws/useWebSocketMessageRouter.ts

Roteamento de mensagens recebidas do WS.

useAsteriskEventHandler

Arquivo: composables/ws/useAsteriskEventHandler.ts

Processamento de eventos Asterisk recebidos via WS.

Utilitários

useCommandExecutor

Arquivo: composables/utils/useCommandExecutor.ts

Executor de operações com toast e logging integrados.

const { execute } = useCommandExecutor()

const result = await execute({
  action: async () => { /* operação */ },
  successMessage: { title: 'OK', detail: 'Feito' },
  errorMessage: 'Falhou',
  showSuccessToast: true,
  showErrorToast: true,
  logPrefix: 'MyModule',
})

useAuthAPI

Arquivo: composables/useAuthAPI.ts

API de autenticação (login, logout, verificação de token).

useTokenStorage

Arquivo: composables/useTokenStorage.ts

Persistência de token JWT e dados de autenticação no localStorage.

useSingleInstance

Arquivo: composables/useSingleInstance.ts

Garante que apenas uma aba do stCall esteja ativa por agente. Exibe overlay em abas duplicadas.

useDialer

Arquivo: composables/useDialer.ts

Lógica do discador (input, validação, teclado numérico).

useGlobalToast

Arquivo: composables/useGlobalToast.ts

Toast global acessível em qualquer composable.

Agente

useAgentConnection

Arquivo: composables/agent/useAgentConnection.ts

Gerenciamento de conexão do agente (conectar/desconectar).

useAgentStatus

Arquivo: composables/agent/useAgentStatus.ts

Gerenciamento de status do agente (disponível, em chamada, etc.).

Áudio

useAudioLevel

Arquivo: composables/audio/useAudioLevel.ts

Monitoramento de nível de áudio do microfone.

useMicTest

Arquivo: composables/audio/useMicTest.ts

Teste de microfone com feedback visual.

Copyright © 2026