O documento discute sobre métodos ágeis, OpenSips, JBoss, Java e voz sobre IP. Aborda conceitos como SIP, registradores, chamadas de voz e demonstra como construir aplicações de telefonia usando frameworks como J2SLEE e Seam no Mobicents.
26. Demanda uma arquitetura orientada a eventos Alto volume, baixa latência Atrasos são facilmente percebidos.
27. J2SLEE Java Service Logic Execution Environment é o padrão Java para o SLEE da telecomunicação, ou seja, baixa latência (< 100ms) e alto throughput. Otimizado para processamento assíncrono.
42. Código fonte do projeto: http://github.com/antonioams/social-network-by-phone Tutorial Sobre Seam Telco Framework http://ensinar.wordpress.com/2010/05/06/colocando-o-mobicents-com-seamtelcoframework-para-rodar/ Mais sobre Mobicents http://pt-br.wordpress.com/tag/mobicents/
Editor's Notes
Antonio... adicionar tags que você ache pertinente
+ de 10 anos de Voice Technology trabalhando juntos
Antes de continuarmos, iremos fazer algumas perguntas para saber o que cada um sabe sobre assuntos abordados na palestra.
JBOSS - a maioria aqui deve manjar mais do que a gente de JBOSS hehe
Telefonia? Alguém já fez projetos aqui que envolveram telefonia de alguma forma? Telefonia IP? Próprio ou de terceiros?
Protocolo SIP Alguém manja?
Mobicents alguém já viu? Já mexeu?
Mobicents alguém já viu? Já mexeu?
Antes de falarmos sobre o Mobicents, é interessante que a gente fale um pouco sobre o protocolo SIP, que é essencial para nossa aplicação telef6onica.
O SIP é um protocolo de sessão utilizado para sinalização de telefonia através de uma rede. O SIP se tornou muito popular com a maior adoção do VOIP pelas empresas. Tanto servidores como telefones falam SIP. Agora iremos falar de algumas mensagens importantes do protocolo SIP.
O REGISTER é um registro mesmo. Nada de novo. O cliente se identifica ao servidor informando usuário, senha e domínio... O servidor (PABX) armazena que usuário X está online e se alguma chamada chegar ele enviará os dados desta chamada para ele. O servidor vai ficar com uma lista de diretório sabendo quem está disponível e em qual endereço.
Como o nome diz é um convite. Convite para uma nova chamada. Usuário envia este pacote para o servidor que redireciona para o destino.
Antes da chamada ser atendida, alguns pacotes são trocados entre cliente e servidor. Informando que o PABX está tentando achar o usuário, que o telefone já começou a tocar e que a chamada foi atendida... Status da chamada... Só para ilustrar, o ringing é um bom exemplo de como o mundo SIP é diferente do convencional. O áudio não trafega pela rede... só é gerado para conforto do usuário.
BYE... Alguém envia porque a ligação acabou... morreu.
Todo comando SIP recebe uma resposta... elas são agrupadas... Somente as mensagens que começam com 1 não são finais, só de status.
Falamos de pacotes. Pacotes de dados. E o áudio para onde vai. O áudio é bem mais pesado que esta sinalização. E ele é que vai determinar a qualidade da chamada. Tem que ser otimizado sempre que possível.
O áudio e os dados seguem caminhos diferentes. A não ser que o servidor precise saber se o áudio será gravado. ele não precisa deste áudio... Então... se possível... se um cliente enxergar o outro... eles irão seguir caminhos diferentes... Eles não trafegam pela mesma porta.
tá... mas o assunto desta palestra é mobicents... Vamos lá!
O Mobicents é uma plataforma de desenvolvimento JAVA voltada para programadores. É voltada para quem sabe programar, para quem usa JBOSS ou usa JAVA. Muito poderosa, robusta e bem construída.
E no que é diferente programar um sistema simples Web e para telefonia, por exemplo
Ela traz ao J2EE e Ao JBoss a possibilidade de fazer aplicações de voz, vídeos e dados relacionados com telefonia.
o mesmo que HTTP servlet só que para SIP... Ele inclusive compartilha a mesma sessão. A sessão é útil para guardar informações da ligação.
o Resource Adaptor pode fazer com que a chamada de entrada seja SIP, XMPP, Asterisk ou alguma outra implementação.
Toca Arquivo, Grava, faz conferências... Para uma ura vamos precisar do media server... numa simples conversa não precisaríamos.
E com isso você une dois mundos não muito próximos alguns anos atrás... TI e telefonia. Ultimamente eles estão cada vez mais próximos... mas com o Mobicents... ele se aproveita de todos os recursos e ferramentas de monitoração e gerenciamento do JBOSS... Você já vai ter alguém na sua rede que sabe administrar um JBOSS.
Mas o JBOSS é indicado se você deseja desenvolver a solução, se você quer aproveitar a lógica de negócio que você já tem... Quer menos trabalho? Não quer fazer algo do zero? Quer uma aplicação pequena? Asterisk é uma boa... tem o Free Switch... você consegue implementar um atendimento eletrônico, pabx praticamente sem código. Ou então contrate um especialista... ele se integrará ao seu sistema e deverá fornecer as ferramentas para gerenciamento... Se quiser, fique à vontade para contratar a Voice! (Momento Jabá).... existem diversas empresas neste mercado.
Ele deixa mais fácil o desenvolvimento de aplicações de telefonia. Deixando muito mais simples diversas atividades chatas que deveriam ser codificadas. Mas ainda assim... você tem que conhecer bem o protocolo SIP, o que ele faz.
Vamos agora para a nossa demonstração. Mostrar uma aplicação funcionando. O exemplo completo é bem comprido, então iremos focar inicialmente na parte de telefonia... para garantir que todos entendam.
Telefonia é toda implementada pelo Mobicents. Aqui iremos ver porque temos que conhecer as mensagens SIP, porque o áudio vem em um stream diferente. Porém, ele fornece diversas ferramentas para deixar este trabalho mais fácil.
A nossa aplicação irá acessar as mensagens que um determinado usuário tem no Twitter e vocalizá-la.
e as mensagens serão vocalizadas através de TTS. Text To Speech está muito evoluído e apresenta um áudio de muita qualidade. Temos, por exemplo, utilizado o TTS para vocalizar toda a jurisprudência de um tribunal em Brasília.
Bom... falamos bastante... espero ter dado uma base... mas as pessoas aqui vieram em um workshop porque queriam ver mais que bla-bla-bla
Bom... falamos bastante... espero ter dado uma base... mas as pessoas aqui vieram em um workshop porque queriam ver mais que bla-bla-bla