10
Colocando o Mobicents com SeamTelcoFramework para rodar
No comments · Posted by antonioams in Mobicents, Tutorial, VoIP
Post publicado originalmente no ensinar em 06/05/2010.
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
- Adicione o Jboss tools update site através do menu “Window” > “Preference” > “Install/Update” > “Available Software”
- Vá no menu “Help” > “Intall Software”
- Selecione o site “Jboss Tools” (site que foi adicionado no passo 1)
- 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.
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:
- mobicents-media-server-msc-api-1.0.0.GA.jar
- mobicents-media-server-msc-api-local-impl-1.0.0.GA.jar
- sip-servlets-seam-entrypoint-2.3.jar
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
eclipse · how to · java · jboss · Mobicents · telecom · Tutorial · VoIP

