Skip to content

VoIP / SIP

A API de voz da Api4Com usa o protocolo SIP (Session Initiation Protocol) para estabelecer e gerenciar chamadas telefônicas. O SIP é um protocolo de comunicação de voz sobre IP (VoIP) que permite a comunicação de voz em tempo real pela Internet. O SIP é um protocolo de camada de aplicação que define como as chamadas telefônicas são estabelecidas, gerenciadas e encerradas.

Como funciona o SIP

O SIP funciona de maneira semelhante ao HTTP (Hypertext Transfer Protocol), que é o protocolo usado para acessar páginas da web. Quando você faz uma chamada para a API de voz da Api4Com, a API envia uma solicitação SIP para o servidor SIP da Api4Com. O servidor SIP da Api4Com então encaminha a solicitação para o ramal do usuário e conecta a chamada com o número do cliente. Lembrando que é necessário garantir que o ramal do usuário esteja disponível e que o número do cliente esteja correto para que a chamada seja estabelecida com sucesso.

O servidor SIP da Api4Com é responsável por estabelecer a chamada, gerenciar a comunicação entre os participantes da chamada e encerrar a chamada quando ela é finalizada. O servidor SIP da Api4Com também fornece recursos adicionais, como gravação de chamadas, transferência de chamadas, escuta de chamadas e muito mais.

WebRTC e SIP

O WebRTC (Web Real-Time Communication) é uma tecnologia que permite a comunicação de voz e vídeo em tempo real pela Internet. O WebRTC é baseado em padrões abertos, como HTML5, JavaScript e SIP, e é suportado por todos os principais navegadores da web.

O WebRTC usa o SIP para estabelecer e gerenciar chamadas telefônicas, mas também pode ser usado sem o SIP em ambientes ponto a ponto. O WebRTC é uma tecnologia poderosa que permite a comunicação de voz e vídeo em tempo real pela Internet, sem a necessidade de plugins ou software adicional.

Webphone SIP

Um Webphone SIP é um aplicativo de softphone baseado na web que permite que os usuários façam chamadas telefônicas usando o protocolo SIP. O Webphone SIP é executado em um navegador da web e se conecta a um servidor SIP para fazer chamadas. O Webphone SIP é uma alternativa leve e fácil de usar aos telefones IP tradicionais e é ideal para usuários que desejam fazer chamadas telefônicas diretamente do navegador da web.

Na Api4com adotamos como Webphone SIP o Kazoo Webphone library v2.0 que é uma biblioteca JavaScript de código aberto que permite que os desenvolvedores integrem facilmente chamadas telefônicas em seus aplicativos da web. O Kazoo Webphone library v2.0 suporta chamadas de voz e vídeo, transferência de chamadas, gravação de chamadas e muito mais.

Como realizar um login no SIP

Para fazer login no SIP, você precisa de um ramal, senha e domínio SIP. O ramal é criado automaticamente quando o usuário da API é criado e a senha é gerada automaticamente. O domínio SIP é o domínio escolhido no momento da criação da conta da API de voz da Api4Com. Para fazer login no SIP, você precisa de um cliente SIP, como um softphone ou um Webphone SIP, e as credenciais de login do usuário.

Aqui está um exemplo de como fazer login no SIP usando um Webphone SIP:

Faça o download do arquivo libwebphone.js

HTML
<!DOCTYPE html>
<html>
<head>
    <title>Webphone SIP</title>
    <script src="./libwebphone.js"></script>
</head>
<body>
  <h1>Controle do registro SIP do Ramal</h1>
  <div id="user_agent"></div>
  
  <br />
  
  <h1>Status do registro SIP <span id="user_agent_custom"></span></h1>

  <h1>Discagem e controle da Chamada</h1>
  <div id="dialpad"></div>

  <h1>Controle do Áudio da Chamada</h1>
  <div id="audio_context"></div>

  <h1>Configuração dos Dispositivos de Áudio</h1>
  <div id="media_device"></div>

  <script type="text/javascript">
    var DOMAIN = 'domain.api4com.com'
    var EXTENSION = '1000'
    var PASSWORD = '1234asdf'
    var webphone = new libwebphone({          
      dialpad: {
        renderTargets: ["dialpad"],
      },
      audioContext: {
        renderTargets: ["audio_context"]
      },
      mediaDevices: {
        videoinput: {
          enabled: false,
        },
        renderTargets: ["media_device"],
      },
      userAgent: {
        renderTargets: ['user_agent'],
        transport: {
          sockets: ['wss://' + DOMAIN + ':6443'],
          recovery_max_interval: 30,
          recovery_min_interval: 2,
        },
        authentication: {
          username: EXTENSION,
          password: PASSWORD,
          realm: DOMAIN,
        },
        user_agent: {
          instance_id: 'd73b96ea-5473-44e3-a50d-d0361311b570',
          no_answer_timeout: 30,
          register: true,
          register_expires: 600, // 10min
          user_agent: 'yourcompany-libwebphone',
        },
      },
    })
    webphone.on('call.created', (lwp, currentCall) => {
      if (!currentCall.isPrimary()) {
        currentCall.reject()
      } else {
        if (currentCall.isInProgress()) {
          const customHeaders = currentCall.getCustomHeaders()
          if (customHeaders && customHeaders['X-Api4comintegratedcall'] === 'true') {
            // chamada da api
            return currentCall.answer()
          }
        }
      }
    })
    //webphone.onAny((event, ...data) => console.log(event, data));

    var template = `
      <div>
        {{#data.isConnected}}
        {{#data.isRegistered}}
        &#128512
        {{/data.isRegistered}}
        {{/data.isConnected}}

        {{#data.isConnected}}
        {{^data.isRegistered}}
        &#128542
        {{/data.isRegistered}}
        {{/data.isConnected}}

        {{^data.isConnected}}
        {{^data.isRegistered}}
        &#128561
        {{/data.isRegistered}}
        {{/data.isConnected}}
      </div>`;
    var customTemplateConfig = {
      template: template,
      root: {
        elementId: "user_agent_custom",
      },
    };

    if (webphone.getUserAgent()) {
      webphone.getUserAgent().renderAddTarget(customTemplateConfig);
    }
  </script>
</body>
</html>

Conclusão

A API de voz da Api4Com usa o protocolo SIP para estabelecer e gerenciar chamadas telefônicas. O SIP é um protocolo de comunicação de voz sobre IP (VoIP) que permite a comunicação de voz em tempo real pela Internet. O SIP é um protocolo de camada de aplicação que define como as chamadas telefônicas são estabelecidas, gerenciadas e encerradas. O SIP é amplamente utilizado na indústria de VoIP e é suportado por todos os principais fornecedores de equipamentos de telecomunicações e provedores de serviços de VoIP.

Released under the MIT License.