CAT | VoIP
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
11
Operadora VoIP First Class, vamos montar uma?
8 Comments · Posted by antonioams in VoIP, opensource
VoIP já uma tecnologia madura há um bom tempo, e atualmente já contamos no Brasil com várias operadoras de telefonia IP que fornecem serviços VoIP, mas infelizmente a maioria das operadoras do mercado são imaturas, e não contam com a infra-estrutura que uma operadora de telefonia necessita para prestar um serviço First Class, como nós clientes exigentes esperamos.
O serviço de telefonia fixa sempre foi um dos serviços mais confiáveis, até quando não tem energia elétrica o telefone funciona, pane na rede de telefonia fixa não um evento comum mesmo aqui no Brasil, portanto o grau de exigência das pessoas quanto a um serviço de telefonia é muito alto, e justamente por este paradigma de qualidade estabelecido, e pela falta de profissionalismo de várias operadoras VoIP, muitas pessoas acham que a tecnologia não funciona, mas ela pode funcionar muito bem, até melhor que a telefonia convencional (inclusive no quesito qualidade de audio), mas para isto acontecer existem uma série de fatores que necessitam serem levados em conta para montar um operadora VoIP First Class.
Vou começar a escrever uma série de posts com o objetivo de apresentar todos os aspectos necessários para montar uma operadora VoIP com foco em qualidade de serviço, com uma infra-estrutura 100% redundante e escalável de forma horizontal (bastando adicionar servidores), e como não basta-se tendo uma boa equação custo beneficio, pois esta infra é totalmente em servidores padrão de mercado e utilizando projetos Open Source.
Os seguintes tópicos serão abordados em vário posts subsequentes:
Infraestrutura da operadora:
- Infra-estrutura IP
- Topologia
- Planejamento Fisico e Lógico
- Implementação do Firewall em Cluster
- Link de internet
- Endereçamento IP próprio ou subcontratado
- Roteamento
- Largura de banda
- SIP Server
- Opensips
- Banco de dados
- Cluster
- Softphones e Hardphones
- Review dos principais Softphones e Hardphones do mercado
- Billing
- Sistema de mediação, rating, geração de fatura
- Terminações
- Interconexão com outras operadoras
- Serviços de valor adicionado
- PABX Virtual
- URA
- Discador Preditivo
- Mensagem Unificadas
- etc.
- Aspectos legais
- Licenças e suas variações
Infraestrutura necessária no cliente:
- Infra-estrutura IP
- Topologia
- Planejamento Fisico e Lógico
- Link de internet
A idéia é ter no mínimo um post por semana, e gostaria de fazer está série de forma interativa, ou seja aguardo os comentários de vocês para guiar a ordem dos posts, e os assuntos a serem abordados, se acharem que está faltando algum ponto a abordar deixa um comentário que será adicionado.
Qualquer dúvida sobre o assunto sintam-se a vontade para me perguntar via formspring ou email terei prazer em responder.
“A corrida para a excelência não tem linha de chegada.” David Rye
ip · opensource · operadora · telefonia · VoIP

