1.0.10 • Published 5 years ago

pht-webrtc v1.0.10

Weekly downloads
-
License
ISC
Repository
bitbucket
Last release
5 years ago

PhoneTrack WebRTC + SIP

Wrapper SIP + WebRTC

Instalação

$ npm install pht-webrtc

Você pode importar o módulo:

// ES6 modules
import { PhTWebRTC } from "pht-webrtc";

// commonjs
var PhTWebRTC = require("pht-webrtc");

Ou incluir o script diretamente na sua página:

Exemplo de utilização

var phtWebRTC = new PHTWebRTC();

// Informe as credenciais SIP:
phtWebRTC.setSipCredentials({
    uri: 'bob@example.onsip.com',
    wsServers: ['wss://sip-ws.example.com'],
    authorizationUser: '',
    password: ''
});

// Selecione o player
phtWebRTC.setRemotePlayer(document.getElementById("remote-player"));

// Faz a solicitação de conexão no servidor SIP
phtWebRTC.initialize();

phtWebRTC.on('onUserAgentRegistered', function() {
    // Realiza uma chamada telefônica
    phtWebRTC.call('554133333333');
});

Documentação da API

Métodos

setSipCredentials

call

Inicia uma chamada para um determinado destino.

Parâmetros

NomeTipoDescrição
targetStringDestino na ligação. Ex. 554199999999

Retorno Instância PhTWebRTC

Emite onSentInvite

end

Encerra a chamada ativa.

Parâmetros Nenhum.

Emite onHangup

Retorno Instância PhTWebRTC

toggleMute

Alterna o estado mute da chamada.

Parâmetros Nenhum.

Retorno Instância PhTWebRTC

Emite onSessionMuted

setSipCredentials

Define as credenciais de autenticação SIP.

Parâmetros

NomeTipoDescrição
credentialsObjectObjeto com as credenciais para conexão
credentials.urlStringSIP URI associado ao usuário. ex: bob@example.onsip.com
credentials.wsServersArrayArray com os servidores websocket. ex: "wss://sip-ws.example.com"
credentials.authorizationUserStringUsuário SIP
credentials.passwordStringSenha de usuário SIP

Retorno Instância PhTWebRTC

setRemotePlayer

Define o player onde será executado o outro lado da chamada. Definindo o player é possível ajustar o volume de saída de áudio e acompanhar a duração da chamada.

Parâmetros

NomeTipoDescrição
elementDOM Element ObjectElemento DOM ou

Retorno Instância PhTWebRTC

setRecordBaseUrl

Define a url base das gravações

Parâmetros

NomeTipoDescrição
urlStringURL base das gravações. ex: http://sip3.phonetrack.com.br/records

Retorno Instância PhTWebRTC

setRTCConstraints

Define as contraints de WebRTC para navigator.getUserMedia()

Parâmetros

NomeTipoDescrição
constraintsObjectObjeto de definição das constraints
constraints.audioBooleanIndica se será usado o recurso de entrada de áudio (microfone)
constraints.videoBoolean/ObjectIndica se será usado o recurso de entrada de vídeo (câmera), ou Objecto com as configurações de vídeo
constraints.video.widthObjectObjeto com as cnfigurações largura do vídeo
constraints.video.width.minNumberValor mínimo para largura de vídeo
constraints.video.width.maxNumberValor máximo para largura de vídeo
constraints.video.heightObjectObjeto com as cnfigurações altura do vídeo
constraints.video.height.minNumberValor mínimo para altura de vídeo
constraints.video.height.maxNumberValor máximo para altura de vídeo

Retorno Instância PhTWebRTC

Saiba mais sobre WebRTC Constraints & statistics

setMediaStream

Caso já tenha um MediaStream criado, pode ser usado nas chamadas.

Parâmetros

NomeTipoDescrição
mediaStreamMediaStreamObjeto do tipo MediaStream criado pelo navigator.getUserMedia()

Retorno Instância PhTWebRTC

Saiba mais sobre MediaStream

Eventos

Exemplo de utilização de evento:

phtWebRTC.on("onSentInvite", function(event) {
    alert("Ligação iniciada! Id da ligação: " + event.data.call.callId);
});

onSentInvite

Disparado quando um SIP invite é enviado.

Parâmetros

NomeTipoDescrição
dataObjectObjeto com dados do evento
data.callPHTCallDetalhes da chamada

onHangup

Disparado quando a ligação é encerrada.

Parâmetros

NomeTipoDescrição
dataObjectObjeto com dados do evento
data.callPHTCallDetalhes da chamada

onSessionProgress

Disparado cada vez que uma resposta provisória SIP (100-199) é recebida.

Parâmetros

NomeTipoDescrição
dataObjectObjeto com dados do evento
data.responseSIP.IncomingResponseResposta do servidor SIP

onSessionAccepted

Disparado cada vez que uma chamada é aceita pelo destino e uma resposta (200-299) é recebida.

Parâmetros

NomeTipoDescrição
responseSIP.IncomingResponseResposta do servidor SIP
statusStringStatus de atendimento

onSessionBye

Disparado quando um SIP BYE é enviado ou recebido.

Parâmetros

NomeTipoDescrição
dataObjectObjeto com dados do evento
data.responseSIP.IncomingResponseResposta do servidor SIP

onSessionTerminated

Disparado quando uma sessão é destruída, seja antes ou depois de ter sido aceita.

Parâmetros

NomeTipoDescrição
dataObjectObjeto com dados do evento
data.responseSIP.IncomingResponseResposta do servidor SIP
data.causeStringCausa do termino da chamada

Emite onHangup

onSessionRejected

Disparado a cada vez que uma mal-sucedida resposta é recebida (300-699).

Parâmetros

NomeTipoDescrição
dataObjectObjeto com dados do evento
data.responseSIP.IncomingResponseResposta do servidor SIP
data.causeStringCausa do termino da chamada

Emite onSessionTerminated, onSessionFailed

onSessionFailed

Disparado quando uma requisição falha. Esse evento só será emitido por sessões que ainda não foram aceitas.

Parâmetros

NomeTipoDescrição
dataObjectObjeto com dados do evento
data.responseSIP.IncomingResponseResposta do servidor SIP
data.causeStringCausa do termino da chamada

Emite onSessionTerminated

onSessionCancel

Disparada quando uma ligação é cancelada pelo cliente.

Parâmetros Nenhum

Emite onSessionTerminated

onSessionRefer

Disparado quando uma referência é recebida, e que o usuário gostaria de lidar com a transferência no nível da aplicação.

Parâmetros

NomeTipoDescrição
dataObjectObjeto com dados do evento
data.requestSIP.IncomingRequestRequisição SIP REFER

onSessionReplaced

Disparado quando um INVITE com substituição causou essa sessão para terminar e ser substituído por uma nova sessão.

Parâmetros

NomeTipoDescrição
dataObjectObjeto com dados do evento
data.newSessionSIP.SessionNova sessão

onSessionDtmf

Disparado quando é enviado ou receibo um DTMF.

Parâmetros

NomeTipoDescrição
dataObjectObjeto com dados do evento
data.requestSIP.IncomingRequestRequisição SIP
data.dtmfSIP.Session.DTMFInstância DTMF

onSessionMuted

Disparado quando é acionado o estado mute do mediaHandler.

Parâmetros

NomeTipoDescrição
dataObjectObjeto com dados do evento
data.audioBooleanIndica se o stream de áudio está no estudo de mute
data.videoBooleanIndica se o stream de vídeo está no estudo de mute

onSessionUnmuted

Disparado quando é desligado o estado mute do mediaHandler.

Parâmetros

NomeTipoDescrição
dataObjectObjeto com dados do evento
data.audioBooleanIndica se o stream de áudio está no estudo de mute
data.videoBooleanIndica se o stream de vídeo está no estudo de mute

onUserAgentConnected

Disparado quando a conexão WebSocket é estabelecida.

Parâmetros Nenhum

onUserAgentDisconnected

Disparado quando a conexão WebSocket é desligada.

Parâmetros Nenhum

onUserAgentRegistered

Disparado quando o SIP.register é bem sucedido.

Parâmetros Nenhum

onUserAgentRegistrationFailed

Disparado quando o SIP.register falha

Parâmetros

NomeTipoDescrição
dataObjectObjeto com dados do evento
data.causeStringCausa da falha
data.responseSIP.IncomingResponseResposta do servidor SIP

Objetos

PhTCall

Objeto que representa uma ligação

Propriedades

NomeTipoValor padrãoDescrição
callIdStringnullId da chamada
toStringnullDestino da chamada
fromStringnullOrigem da chamada
recordUrlStringnullURL da gravação da chamada
statusStringnullStatus de termino da chamada
startTimeUnix TimestampnullTimestamp de início da chamada
endTimeUnix TimestampnullTimestamp de fim da chamada
totalTimeUnix TimestampnullTimestamp do diferencial do fim e início da chamada

SIP.IncomingResponse

Veja a especificação do objeto aqui.

SIP.IncomingRequest

Veja a especificação do objeto aqui.

SIP.Session

Veja a especificação do objeto aqui.

SIP.Session.DTMF

Veja a especificação do objeto aqui.

1.0.10

5 years ago

1.0.9

5 years ago

1.0.8

8 years ago

1.0.7

8 years ago

1.0.6

8 years ago

1.0.5

8 years ago

1.0.4

8 years ago

1.0.3

8 years ago

1.0.2

8 years ago

1.0.1

8 years ago

1.0.0

8 years ago