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).