3º Desembucha Aí! Lean

maio 8, 2010 by

No dia 30 de abril ocorreu a terceira apresentação do Desembucha Aí! Desculpe por só hoje ter colocado o slide.

Nesta apresentação eu falei sobre Lean e como eliminar desperdícios. Diversas pessoas compareceram.

Abaixo, compartilho a apresentação utilizada:

Valeu pessoal!

E o próximo “Desembucha Aí!”  deve ocorrer esta semana, mas ainda não sabemos o tema.

Até a próxima!

JBoss In Bossa – Apresentação Mobicents

maio 8, 2010 by

Pessoal,

Hoje eu e o Antonio fomos ao JBoss In Bossa 2010 palestrar sobre Mobicents.Estávamos meio ansiosos em relação a palestra porque telefonia não é um assunto que seja do conhecimento e do cotidiano da maioria dos desenvolvedores.

Estavam presentes cerca de 20 pessoas e como a maioria não conhecia de telefonia, que é o esperado neste tipo de evento, fizemos uma apresentação que apresentou mais conceitos nos 45 minutos iniciais e na cerca de 1 hora e 15 minutos restantes mostramos o código necessário para esta implementação.

Espero que as pessoas presentes  gostaram da palestra e fiquem à vontade para entrar em contato. Quem quiser acesso ao código é só ir no Git Hub do Antonio: http://github.com/antonioams .

Segue a apresentação que foi utilizada no evento. Maiores informações podem ser obtidas na página com detalhes da Palestra.

Mobicents: Arquitetura de uma plataforma de comunicações

maio 6, 2010 by

Como já foi dito no post inicial da série o Mobicents é um servidor de aplicação focado em aplicações de convergentes, entende-se por aplicações de convergentes aquelas que demandam de todos os recursos que um servidor de aplicações padrão (Web Container, Message Driven Beans, Enterprise JavaBeans, ORM, etc.) fornecem, e além disto, demandam de suporte a diversos protocolos de comunicação Real Time (SIP, XMPP/Jabber, MGCP, etc.), possibilitando a implementação de aplicações que integram recursos web com recursos de telecomunicações.

O Mobicents é a primeira implementação Opensource da JSR-240 JAIN SLEE (Service Logic Execution Environment) esta JSR define uma padrão para o desenvolvimento de um container para aplicações de telecomunicações que exigem um ambiente de execução de aplicações de alta capacidade de Throughput, com baixa latência, e alta escalabilidade, mais detalhes sobre o JAIN SLEE pode ser visto em: http://www.jainslee.org

Neste post iremos fornecer uma visão geral sobre a arquitetura do Mobicents, e também sobre os recursos fornecidos pelo mesmo.

O Mobicents foi desenvolvido em cima do JBoss, portanto ele desfruta de todos os recursos que o mais famoso servidor de aplicações open source fornece, tais como: console de gerenciamento Web, interface de gerenciamento JMX, SNMP, Container Web, JMS, EJB, ORM, etc.

A novidade que o Mobicents traz, fica por conta dos Resource Adapters ou simplesmente RA, pois todos os protocolos de comunicações suportados por ele são implementados como um RA, na figura abaixo temos as principais camadas da arquitetura do Mobicents:

Arquitetura Mobicents

JSLEE + J2EE Application Server

Container de aplicações, nesta camada temos o JBoss como um servidor de aplicações JavaEE, e além disto temos a implementação do JAIN SLEE, esta camada é responsável pela hospedagem das aplicações e gerenciamentos dos seus diversos recursos.

Management Interfaces

Nesta camada temos todas as interfaces de gerenciamento fornecidas pelo JBoss, Web Management Console, JMX Console, SNMP, etc. desta forma todos os recursos e aplicações disponíveis no Mobicents podem ser gerenciadas por todas as interfaces fornecidas pelo mesmo.

External Resources

Esta é a camada responsável por trazer todos os protocolos de comunicações, e/ou recursos necessários para o desenvolvimento de aplicações de telecomunicações para dentro do Application Server possibilitando as aplicações se utilizarem deste recursos externos que são chamados de RA ou Resource Adapters.

Cada Resource Adapter é responsável pela implementação de um protocolo de comunicação, ou de controle de um recurso externo, desta forma, temos RA’s para implementar protocolos como: SIP, Jabber, XMPP, MGCP, Diameter, dentre outros, e temos RA’s para controlar o Asterisk, e o próprio Mobicents MediaServer para agregar a capacidade de processamento de media (gravação, reprodução de aúdio e vídeo, reconhecimento de dígitos, transcodificação, etc.) dentro das aplicações.

Abaixo temos um exemplo, de qual componente roda em qual camada, além de exemplificar como as mesma se comunicam:

Funcionalidades fornecidas pelo Mobicents:

Protocolos de comunicações suportados

  • SIP
  • Jabber
  • XMPP/Jingle
  • Parlay
  • Diameter
  • MGCP
  • SMPP
  • SS7
  • Camel
  • XCAP
  • TCAP

Recursos de Media

  • RTP formats: G711, G729, GSM, SPEEX, PCM 16bit 8-44kHz (Mono/Stereo)
  • Audio Codecs: G711,G729,GSM, SPEEX
  • Geração e Detecção de sinais DTMF, BUSY, etc. for inband and outofband (RFC-2833) mode
  • Media files *.wav (G711, GSM, PCM), *.spx(SPEEX), *.gsm

Recursos JavaEE

  • JSP Container
  • JMS
  • MDB
  • EJB
  • LDAP
  • HTTP/HTTPS
  • JMX
  • SNMP
  • Etc.

Alta disponibilidade

  • Load Balancer
  • Multi node cluster
  • Session replication

Performance

  • Capacidade de processar até 750 Caps em um único servidor.
  • Possbilidade de montar um cluster com multiplos servidores em Load Balance

Aplicações que podem ser implementadas sob o Mobicents

  • Aplicações IVR
  • Voicemail
  • Unified Messaging
  • Plataforma de Pré pago
  • Plataforma de 0800
  • Softswitch
  • Location Based Services
  • Instant Messaging
  • Presence Server
  • Etc.

Como vocês podem ver quando se trata de aplicações para a Telecom o céu é o limite do Mobicents, pois com todos os recursos que ele já tem embutido mais as possibilidade que o próprio JBoss tem, é uma questão de criatividade, e tempo para implementar uma aplicação.

Abraços,

Antonio Anderson Souza

Colocando o Mobicents com SeamTelcoFramework para rodar

maio 6, 2010 by

Este post é um tutorial que visa guiar a instalação completa do ambiente de desenvolvimento de aplicações de telecomunicações com foco no protocolo SIP e tratamento de recursos de Media, utilizando o Mobicents e o SeamTelcoFramework o exemplo mais clássico deste tipo de aplicações são as tão famosas URA’s.

Estou utilizando um CentOS 5.4 como base para este tutorial, para quem estiver utilizando este tutorial em outro S.O. só tome cuidado com os caminhos de diretórios, pois podem ser diferentes.

Instalando o Eclipse

Efetue o Download do Eclipse Galileo Eclipse IDE for Java EE Developers para instalar o mesmo basta descompactar na pasta desejada.

Apenas para referencia o meu foi instalado em:

/home/usuario/apps/eclipse

Instalando o Mobicents

Efetue o Download do Mobicents 1.0 com Jboss 4.2.3 (estamos utilizando esta versão pois o SeamTelcoFramework ainda não é compatível com o Mobicents 2 e JBoss 5), para instalar o mesmo basta descompactar na pasta desejada.

Apenas para referencia o meu foi instalado em:

/home/usuario/apps/mss-1.0-jboss-4.2.3.GA

Instalando plugins necessários para o eclipse

  1. Adicione o Jboss tools update site através do menu “Window” > “Preference” > “Install/Update” > “Available Software”
  2. Vá no menu “Help” > “Intall Software”
  3. Selecione o site “Jboss Tools” (site que foi adicionado no passo 1)
  4. Selecione os pulgins listados abaixo que estão dentro de “All JBoss Tools” e prossiga com a instalação dos mesmos:
  • JBoss Tools RichFaces
  • JBossAS Tools
  • JBoss Seam

Instalar o Seam Runtime

Efetue o Download do JBoss Seam 2.1.1GA, para instalar o mesmo basta descompactar na pasta desejada.

Apenas para referencia o meu foi instalado em:

/home/usuario/apps/jboss-seam-2.1.1.GA

Configurando o JBoss Runtime Environment no Eclipse

Vá em “Window”> “Preferences” > “Server” > “Runtime environments” e adicione o Mobicents como um JBoss Community 4.2

Vá em “Window” > “Show view” > “Servers” Adicione um novo servidor baseado no JBoss 4.2 Runtime environment.

Configurando o Seam Runtime no Eclipse

Vá em “Window”> “Preferences” > “JBoss Tools” > “Web” > “Seam” e adicione o JBoss Seam 2.1.1

Pronto neste momento o seu ambiente de desenvolvimento está totalmente instalado, agora é começar a brincar com um projeto.

Criando o primeiro projeto

Crie um novo projeto do tipo “Seam web project”, clique em next até o formulário “Configure Seam Facts Settings”, neste formulário faca as seguintes configurações:

  • Crie um datasource
  • Renomeia os pacotes padrão para um nome apropriado
  • Desative a checkbox “create test project” (Não abordarei sobre os testes neste tutorial).
  • Feito isto clique em “Finish”

Ativar o SeamTelcoFramework em nosso projeto

Adicione os seguintes arquivos a pasta “WEB-INF/lib” do projeto:

Adicione o arquivo sip.xml ao diretório “WEB-INF” do projeto.

Pronto neste momento já temos tudo pronto para começarmos a implementar a lógica da aplicação.

Criando uma Classe para tratar as chamadas SIP

Adicione a classe FirstTelcoClass.java dentro do pacote “<seu pacote>.session”, esta classe implementa uma simples lógica de observar as requisições SIP (INVITE, BYE), quando receber um INVITE atender a chamada e anexar uma sessão de media do Mobicents a mesma, reproduzir um arquivo wav para que você possa ouvir a aplicação funcionando, e depois fazer um eco dos dígitos recebidos (a cada DTMF que você discar a aplicação reproduzirá o mesmo audio).

Inicie a o Servidor, aguarde até 0 Seam iniciar, pois as vezes ele demora algums segundos para subir, para ter certeza que o Seam iniciou verifique a seguinte mensagem no console “13:39:41,641 INFO  [SipApplicationDispatcherImpl] SipApplicationName : FirstTelcoProject/ServletName : SeamEntryPointServlet

Configurando o Mobicents para rotear as request INVITE para nossa aplicação

Após o servidor ter iniciado abra um browser com o seguinte endereço: http://127.0.0.1:8080/sip-servlets-management na coluna que tem o header INVITE adicione a nossa aplicação, apos adicionar clique em save.

Agora nossa aplicação esta pronta para atender chamadas e falar conosco.

Configurando o Ekiga para fazer chamadas

Adicione uma nova conta no Ekiga “Edit” > “Accounts”  > “New” e configure a mesma igual a imagem ao lado (senha pode colocar qualquer coisa).

Não esqueća de ativar a conta criada, deixando ativo a checkbox da mesma.

Hora de testar se tudo isto que fizemos esta funcionando

Utilizando o Ekiga digite qualquer string na caixa de texto na tela principal do mesmo, e clique no icone localizado a direita desta caixa de texto, neste momento o Ekiga enivará uma request INVITE para a nossa aplicaćão, que da forma que esta programada atendera a chamada e reproduzira um audio.

Bom pessoal é isto, agora já temos uma aplicaćão de telefonia baseada no SeamTelcoFramework rodando dentro do Mobicents, agora é hora de botar a sua cachola para funcionar e modificar esta aplicaćão adicionando novas funcionalidades, se quiser depurar a mesma é só colocar um breakpoint no eclipse e fazer a chamada no Ekiga.

Espero que este conetúdo seja util para vocês, qualquer duvida, sugestão, whatever deixa o seu comentário aqui, pois teremos prazer em responder.

Referencias:

http://groups.google.com/group/mobicents-public/web/seam-telco-framework-for-sip-servlets

http://groups.google.com/group/mobicents-public/web/user-guide

Abraços,

Antonio Anderson Souza

Como ser produtivo? Contando tomates

abril 22, 2010 by

Hoje ocorreu a segunda edição do “Desembucha Aí!”, que teve como tema “Como Ser Produtivo? Contados Tomates”.

Abaixo, compartilho a apresentação utilizada:

Muito obrigado a todos que estiveram no evento! 🙂

E o próximo “Desembucha Aí!” será apresentado pelo André Pantalião, e o tema será Lean.

Até a próxima!

2º Desembucha Aí!

abril 20, 2010 by

Pessoal,

Na quinta-feira (22/04) às 15:01 na sala de treinamento da Voice, ocorrerá o segundo “Desembucha Aí”. Eu estarei apresentando a palestra “Como ser produtivo? Contando tomates”.

Na apresentação estarei falando sobre uma técnica que vem sendo bem falada ultimamente para gerenciamento do tempo, o Pomodoro.

Impressões do 1º Desembucha – 16/04

abril 17, 2010 by

Hoje, na sala de treinamento da Voice Technology, tivemos o primeiro Desembucha.

O Fabrício já explicou o que é o Desembucha, mas vale lembrar:

A  idéia do “Desembucha Aí” é realizar palestras rápidas, de no máximo 25 minutos sobre determinado tema. Para isso, o palestrante tem que focar bem a sua palestra sobre um tema, objetivando instigar a reflexão sobre o mesmo pelas pessoas.

De cara, o que mais surpreendeu as pessoas que estavam organizando foi a quantidade de pessoas, estávamos com casa cheia hehe… E o legal que tínhamos pessoas das mais variadas áreas: comercial, suporte, desenvolvimento, testes, projetos, documentação… Que bom ! Sejam todos bem-vindos.

O Rodrigo falou sobre “os seis chapéus do pensamento”, técnica muito útil  para realizarmos reuniões mais efetivas e focadas.  Se você está cansado de reuniões onde só se discute opiniões e não fatos, em que tem uma pessoa que monopoliza as atenções e opiniões e se você está cansado de entrar uma sala e falar, falar e não resolver nada: dê uma olhada nesta técnica e tente aplicar.

Não vou ficar me alongando muito aqui, temos muitos recursos disponíveis na Internet:

Qualquer dúvida ou problema é só falar e o próximo já tem tema: Pomodoro! É só falar.

P.S. : Na segunda-feira o Lucas colocará as fotos no blog da Voice!

Desembucha Aí!

abril 15, 2010 by

Pessoal,

Amanhã às 15:01 na sala de treinamento da Voice, iniciará a primeira palestra do “Desembucha Aí”. O Rodrigo Ribeiro irá palestrar sobre os “Os seis chapéus do pensamento”.

O que é o “Desembucha Aí”?

A  idéia do “Desembucha Aí” é realizar palestras rápidas, de no máximo 25 minutos sobre determinado tema. Para isso, o palestrante tem que focar bem a sua palestra sobre um tema, objetivando instigar a reflexão sobre o mesmo pelas pessoas.

P.S.: Por enquanto, essas palestras são internas.

í” idéia

Saiba um pouco mais sobre Libras e o Surdo

abril 3, 2010 by

Como já é sabido por muitos, estamos trabalhando em projetos de acessibilidade voltado para os surdos.

Neivaldo Zovico, da Feneis, nos pediu para colocar legendas em dois vídeos produzidos pelo Repórter Brasil.

O primeiro deles é uma explicação básica sobre Libras (Linguagem Brasileira de Sinais). Veja Abaixo:

O outro fala um pouco sobre a importância das escolas exclusivas para surdo e as dificuldades que o governo vêm impondo aos deficientes auditivos:

O melhor do Ensinar – 27/03 à 02/04

abril 3, 2010 by

Pessoal,

Abaixo, a compilação dos melhores assuntos da semana, divulgados na nossa lista de discussão. Eis os últimos assuntos divulgados na semana, desde o dia 27/03 até o dia 01/04:

E a palhaçada da semana foi:

  • Trauma – Silveira (Eu Podia Tá Matando).

Abraços! E até a próxima!