npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

pht-webrtc

v1.0.10

Published

PhoneTrack WebRTC + SIP.js wrapper

Downloads

25

Readme

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: '[email protected]',
    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

Nome | Tipo | Descrição ---- | ---- | --------- target | String | Destino 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

Nome | Tipo | Descrição ---- | ---- | --------- credentials | Object | Objeto com as credenciais para conexão credentials.url | String | SIP URI associado ao usuário. ex: [email protected] credentials.wsServers | Array | Array com os servidores websocket. ex: ["wss://sip-ws.example.com"] credentials.authorizationUser | String | Usuário SIP credentials.password | String | Senha 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

Nome | Tipo | Descrição ---- | ---- | --------- element | DOM Element Object | Elemento DOM ou

Retorno Instância PhTWebRTC

setRecordBaseUrl

Define a url base das gravações

Parâmetros

Nome | Tipo | Descrição ---- | ---- | --------- url | String | URL 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

Nome | Tipo | Descrição ---- | ---- | --------- constraints | Object | Objeto de definição das constraints constraints.audio | Boolean | Indica se será usado o recurso de entrada de áudio (microfone) constraints.video | Boolean/Object | Indica se será usado o recurso de entrada de vídeo (câmera), ou Objecto com as configurações de vídeo constraints.video.width | Object | Objeto com as cnfigurações largura do vídeo constraints.video.width.min | Number | Valor mínimo para largura de vídeo constraints.video.width.max | Number | Valor máximo para largura de vídeo constraints.video.height | Object | Objeto com as cnfigurações altura do vídeo constraints.video.height.min | Number | Valor mínimo para altura de vídeo constraints.video.height.max | Number | Valor 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

Nome | Tipo | Descrição ---- | ---- | --------- mediaStream | MediaStream | Objeto 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

Nome | Tipo | Descrição ---- | ---- | --------- data | Object | Objeto com dados do evento data.call | PHTCall | Detalhes da chamada

onHangup

Disparado quando a ligação é encerrada.

Parâmetros

Nome | Tipo | Descrição ---- | ---- | --------- data | Object | Objeto com dados do evento data.call | PHTCall | Detalhes da chamada

onSessionProgress

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

Parâmetros

Nome | Tipo | Descrição ---- | ---- | --------- data | Object | Objeto com dados do evento data.response | SIP.IncomingResponse | Resposta do servidor SIP

onSessionAccepted

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

Parâmetros

Nome | Tipo | Descrição ---- | ---- | --------- response | SIP.IncomingResponse | Resposta do servidor SIP status | String | Status de atendimento

onSessionBye

Disparado quando um SIP BYE é enviado ou recebido.

Parâmetros

Nome | Tipo | Descrição ---- | ---- | --------- data | Object | Objeto com dados do evento data.response | SIP.IncomingResponse | Resposta do servidor SIP

onSessionTerminated

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

Parâmetros

Nome | Tipo | Descrição ---- | ---- | --------- data | Object | Objeto com dados do evento data.response | SIP.IncomingResponse | Resposta do servidor SIP data.cause | String | Causa do termino da chamada

Emite onHangup

onSessionRejected

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

Parâmetros

Nome | Tipo | Descrição ---- | ---- | --------- data | Object | Objeto com dados do evento data.response | SIP.IncomingResponse | Resposta do servidor SIP data.cause | String | Causa 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

Nome | Tipo | Descrição ---- | ---- | --------- data | Object | Objeto com dados do evento data.response | SIP.IncomingResponse | Resposta do servidor SIP data.cause | String | Causa 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

Nome | Tipo | Descrição ---- | ---- | --------- data | Object | Objeto com dados do evento data.request | SIP.IncomingRequest | Requisiçã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

Nome | Tipo | Descrição ---- | ---- | --------- data | Object | Objeto com dados do evento data.newSession | SIP.Session | Nova sessão

onSessionDtmf

Disparado quando é enviado ou receibo um DTMF.

Parâmetros

Nome | Tipo | Descrição ---- | ---- | --------- data | Object | Objeto com dados do evento data.request | SIP.IncomingRequest | Requisição SIP data.dtmf | SIP.Session.DTMF | Instância DTMF

onSessionMuted

Disparado quando é acionado o estado mute do mediaHandler.

Parâmetros

Nome | Tipo | Descrição ---- | ---- | --------- data | Object | Objeto com dados do evento data.audio | Boolean | Indica se o stream de áudio está no estudo de mute data.video | Boolean | Indica se o stream de vídeo está no estudo de mute

onSessionUnmuted

Disparado quando é desligado o estado mute do mediaHandler.

Parâmetros

Nome | Tipo | Descrição ---- | ---- | --------- data | Object | Objeto com dados do evento data.audio | Boolean | Indica se o stream de áudio está no estudo de mute data.video | Boolean | Indica 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

Nome | Tipo | Descrição ---- | ---- | --------- data | Object | Objeto com dados do evento data.cause | String | Causa da falha data.response | SIP.IncomingResponse | Resposta do servidor SIP

Objetos

PhTCall

Objeto que representa uma ligação

Propriedades

Nome | Tipo | Valor padrão | Descrição ---- | ---- | ------------ | --------- callId | String | null | Id da chamada to | String | null | Destino da chamada from | String | null | Origem da chamada recordUrl | String | null | URL da gravação da chamada status | String | null | Status de termino da chamada startTime | Unix Timestamp | null | Timestamp de início da chamada endTime | Unix Timestamp | null | Timestamp de fim da chamada totalTime | Unix Timestamp | null | Timestamp 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.