Ticket #506 (new melhoria)

Opened 9 years ago

Last modified 7 years ago

Implementar um Cliente Voip Web para Expresso

Reported by: marciostarke Owned by: alexandrecorreia
Priority: normal Milestone: Backlog do Produto
Component: ExpressoMessenger Version:
Severity: média Keywords: Voip, SIP, IAX
Cc: WorkGroup: Inovação

Description (last modified by niltonneto) (diff)

Objetivo:

Implementar um Cliente Voip Web consiste em inserir um Softphone na interface do Expresso. Para que esse cliente seja bem aproveitado é importante possuir as seguintes características:

– Deverá funcionar integrada ao Expresso Livre;

– Não deverá ser baseada em bibliotecas locais na estação;

– Deverá funcionar independente de plataforma e navegador;

– Deverá funcionar independente de permissões de usuários do sistema operacional;

– Toda a configuração (servidor, usuário, senha e codec) deverá ser integrada à solução;

– Deverá permitir o registro em um servidor asterisk;

– Deverá efetuar e receber chamadas de voz;

– As chamadas de voz poderão ser iniciadas a partir de um teclado numérico ou a partir do Click2Dial do Expresso;

– Emitir aviso de recebimento de chamadas por áudio (ring) e mensagem visual;

– Permitir configuração de áudio da estação (entrada e saída);

– Permitir ao usuário escolher status: conectado/desconectado;

– Suportar envio de dígitos DTMF conforme RFC2833;

– Permitir escolha de codecs (iLBC, GSM, G.711-A, G.711-u) a serem definidos.

– A ferramenta deverá permitir configurações que possibilitem a utilização da solução em diferentes ambientes (redes com NAT por exemplo);

Como o produto desse projeto deve ser executado dentro do browser, sem a necessidade de instalação de programa/biblioteca/driver adicional, ser independente de browser/plataforma/sistema operacional e independente de permissões de usuário foi verificado que a solução se restringe a utilização de flash ou java.

A implementação em Flash utiliza um servidor de streaming RTMP para enviar o audio para o cliente no browser. É no servidor que é realizada a transação SIP/RDP com o serviço de telefonia IP. Isso implica na transparência de configuração do cliente para atravessar redes com NAT e Firewalls. A implementação do uso dos dispositivos multimedia na estação do usuário é facilitada pela natureza das aplicações Flash, que em sua maioria se destina a isso. No entanto, a solução em Flash somente funciona no plugin proprietário da Adobe, sendo que os plugins livres, gnash ou swfdec, não podem ser utilizados por não possuirem suporte a captura de áudio.

Em Java há a possibilidade de implementação do cliente SIP totalmente na estação ou utilizando streaming RTP ou RTMP para se comunicar com um servidor. A implemtentação com cliente SIP totalmente na estação incorrerá nos problemas intrínsicos do SIP para atravessar NAT e Firewalls. A utilização de streaming contornaria esse problema, no entanto a utilização do protocolo RTP é recomentada por ter sua especificação aberta e padronizada pelo IETF. O protocolo RTMP é de propriedade da Adobe. A Adobe anunciou que irá publicar as especificações do RTMP até a medate desse ano.

Diante do estudo realizado por esta equipe e das conclusões apresentadas, tecnicamente a melhor alternativa é a utilização de flash, principalmente devido à qualidade do produto final. Não vemos problema na utilização de um plugin de código fechado nas estações clientes, uma vez que o mesmo é gratuito e tem uma abrangência maior que o run time java

A implementação inicial do Cliente Voip Web será feita pelo Serpro.

Change History

comment:1 Changed 9 years ago by marciostarke

  • Owner changed from alexandrecorreia to marciostarke

comment:2 in reply to: ↑ description ; follow-up: ↓ 6 Changed 9 years ago by rodsouza

Replying to marciostarke:

– Deverá funcionar integrada ao Expresso Serpro;

Que Expresso que é esse?

comment:3 Changed 9 years ago by niltonneto

  • Description modified (diff)
  • Summary changed from Implementar um Cliente Voip Web para Expresso que consiste na possibilidade de realizar ligações telefônicas a partir de um Softphone embutido dentro da interface Web do Expresso. to Implementar um Cliente Voip Web para Expresso

comment:4 follow-up: ↓ 7 Changed 9 years ago by niltonneto

Entendi o porquê de se usar Flash. Realmente o Java pra Multimidia é muito complicado. Mas a idéia é utilizar o JMessenger como módulo-base mesmo assim?
Como vocês pretendem integrar com o JMessenger?

comment:5 Changed 9 years ago by amuller

Já que dá pra integrar o im com javascript, deve dar pra integrar com flash também utilizando o js. Eita que coisa

Vai ser muito bom para o expresso

comment:6 in reply to: ↑ 2 Changed 9 years ago by marciostarke

Replying to rodsouza:

Replying to marciostarke:

– Deverá funcionar integrada ao Expresso Serpro;

Que Expresso que é esse?

Desculpe-me. Copiei o texto de nosso projeto interno e não verifiquei que estava dessa forma. Vi que já está arrumado.

comment:7 in reply to: ↑ 4 ; follow-up: ↓ 8 Changed 9 years ago by marciostarke

Replying to niltonneto:

Entendi o porquê de se usar Flash. Realmente o Java pra Multimidia é muito complicado. Mas a idéia é utilizar o JMessenger como módulo-base mesmo assim?
Como vocês pretendem integrar com o JMessenger?

A idéia é publicar um protocolo, por exemplo tel:, que quando clicado chamasse o softphone para realizar a ligação. Isso poderia estar mesmo dentro de uma e-mail. No JMessenger a idéia e interagir com o browser (provavelmente via js) e esse repassar para o Cliente Voip.

comment:8 in reply to: ↑ 7 Changed 8 years ago by niltonneto

Replying to marciostarke:

Replying to niltonneto:

Entendi o porquê de se usar Flash. Realmente o Java pra Multimidia é muito complicado. Mas a idéia é utilizar o JMessenger como módulo-base mesmo assim?
Como vocês pretendem integrar com o JMessenger?

A idéia é publicar um protocolo, por exemplo tel:, que quando clicado chamasse o softphone para realizar a ligação. Isso poderia estar mesmo dentro de uma e-mail. No JMessenger a idéia e interagir com o browser (provavelmente via js) e esse repassar para o Cliente Voip.

Existem vestígios de que o JETI, cliente Jabber em Java usado no módulo JMessenger do Expresso, possui algo implementado para VoIP. Não vi detalhes, mas quem sabe já é um começo.... Segue o link =>  http://jeti-im.org/phpBB2/viewtopic.php?t=357

comment:9 Changed 8 years ago by wmerlotto

  • Milestone set to Expresso 2.2

comment:10 Changed 7 years ago by niltonneto

Zapa, eu sei que o Serpro fez esta implementação internamente. Sabe me dizer se é possível disponibilizar dentro da versão 2.2 da comunidade?

comment:11 Changed 7 years ago by niltonneto

  • Keywords SIP, IAX added; SIP removed
  • Owner changed from marciostarke to alexandrecorreia
  • Severity set to média
  • Priority changed from média to normal

A solução desenvolvida pelo Serpro deverá ser componentizada para funcionar junto com a versão da comunidade. Além disso, a utilização do softphone WEB dentro do Expresso deverá ter uma maior abrangência, onde o ExpressoMessenger? irá utilizar esse componente, assim como os demais módulos.

comment:12 Changed 7 years ago by eduardoalex

  • Version changed from sandbox to trunk
  • WorkGroup set to Inovação
  • Milestone changed from Expresso 2.2 to Expresso 3.0

comment:13 Changed 7 years ago by niltonneto

  • Version trunk deleted
Note: See TracTickets for help on using tickets.