Atualizado em 03/01/2015 às 08:35hs (UTC-2)

O AstDemo foi criado com o intuito de aumentar a integração entre XMPP e VoIP, permitindo agregar mais funcionalidades em ambientes em que tais tecnologias coexistam. A ideia é transformar a solução Asterisk+Openfire numa solução integrada, permitindo a realização de operações do VoIP diretamente no cliente XMPP.

Pré requisitos

  • Openfire
  • Asterisk 11 ou superior com suporte XMPP
  • PostgreSQL
  • Plugin ServerInfo (http://www.mundoopensource.com.br/serverinfo-plugin-openfire/)
  • pyst (http://sourceforge.net/projects/pyst/)
  • psycopg2 (http://initd.org/psycopg/)
  • xmpppy (http://xmpppy.sourceforge.net/)

Instalação

Para instalar o AstDemo baixe a última versão do mesmo aqui e abra então o .tar.gz no diretório agi-bin de seu servidor Asterisk (o subdiretório astdemo será automaticamente criado).

Crie o banco de dados do AstDemo (schema disponível em db/pgsql/astdemo.sql).

Após, copie o arquivo config.ini.sample para config.ini e ajuste-o com as informações de seu cenário.

Configure o resource xmpp ou jabber do Asterisk (exemplo disponível em asterisk_config/xmpp.conf)

Por fim, edite o arquivo extensions.conf e adicione o contexto [from_xmpp_demo] bem como as variáveis indicadas no contexto [globals]. Se quiser suporte aos recursos dnd e callerid altere seu contexto onde estão seus ramais. Você pode usar os exemplos contidos no arquivo asterisk_config/extensions.conf, mas não esqueça de adaptar os códigos a seu cenário.

Usando o AstDemo

Para usar o AstDemo, basta adicionar o JID astdemo@jabber.seudominiojabber.com em sua conta e começar a enviar mensagens para ele. Os comandos válidos são:

  • callmsg <número>: disca para <número> e toca o arquivo tt-monkeys quando a chamada for atendida.
  • callerid <ramal> <jid>: ativa ou desativa o suporte a mensagem xmpp de identificação de chamada direcionada para o ramal.
  • info <voip|xmpp>: exibe informações sobre o servidor Asterisk ou Openfire.
  • help: exibe o help.
  • iaxpeers: exibe os peers iax.
  • monitor iax <peer>: inicia o monitoramento do iax <peer>.
  • monitor sip <peer>: inicia o monitoramento do sip <peer>.
  • monitor queue <fila>: inicia o monitoramento da fila <fila>
  • monitoring: exibe todos os itens sendo monitorados e seu último status.
  • sippeer <ramal>: exibe informações sip do <ramal>
  • sippeers: exibe os peers sip
  • unmonitor iax <peer>: para de monitorar o iax <peer>.
  • unmonitor sip <peer>: para de monitorar o sip <peer>.
  • unmonitor queue <fila>: para de monitorar a fila <fila>
  • version: exibe a versão do AstDemo

Se você tiver ativado o suporte a Asterisk Realtime (saiba mais abaixo), também terá acesso aos seguintes comandos:

  • call <ramal sip>: liga para <ramal sip> e transfere a chamada para seu ramal quando for atendida.
  • dnd <on|off|status>: ativa, desativa ou exibe o status do Não Perturbe (Do Not Disturbe).
  • queue <fila>: exibe estatísticas e os membros da <fila>
  • queuemsg <fila> <mensagem>: envia a <mensagem> para todos os membros da <fila>.
  • enter <fila>: entra na <fila>
  • leave <fila>: sai da <fila>
  • whoami: exibe informações sobre si próprio

Asterisk Realtime

A primeira questão é: seu Asterisk já está com o suporte Realtime ativado? Leia mais sobre o Asterisk Realtime Architecture aqui. Assim que seu Asterisk estiver com o suporte a Realtime ativado você pode continuar.

Para ativar o suporte a Asterisk Realtime no AstDemo, primeiro você precisa garantir que sua tabela SIP tenha um campo para armazenar a JID e que os ramais estão com suas respectivas JIDs cadastradas. Se você não tem o campo jid, basta criá-lo (jid, character varying, tamanho 150). Não esqueça também de ativar o suporte a realtime no arquivo config.ini.

Assim que o suporte estiver ativado, você passará a ver os novos comandos no help.

Monitoramento

Para ativar o monitoramento basta copiar o cronjob e deixá-lo rodando. Ele, por padrão, chama o script astdemo_monitor.py há cada 5 minutos.

É importante só esclarecer que para que se monitore SIP e IAX é preciso que o qualify esteja ativado na config do mesmo (qualify=yes).

Roadmap

  •  Sem roadmap atual.

Download

Você pode baixar o  AstDemo versão 0.1.6.1 diretamente do site do Mundo Open Source.

Changelog

Disponível aqui.

Código fonte

O código fonte foi colocado no GitHub e está disponível nesta URL (licenciado sobre a GPL v2.0).

github

Plugin for Social Media by Acurax Wordpress Design Studio
Visit Us On FacebookVisit Us On TwitterCheck Our FeedVisit Us On Linkedin