Mostrando postagens com marcador jiaxclient iax softphone. Mostrar todas as postagens
Mostrando postagens com marcador jiaxclient iax softphone. Mostrar todas as postagens

quinta-feira, março 01, 2007

Exemplo JIAXCLIENT

Esta é uma pequena exposição desta biblioteca, com o intuito de incentivar sua utilização e seu amadurecimento através da pluralização deste conhecimento. Como tive dificuldades para encontrar algum material sobre o assunto e depois de sofrer um pouquinho quero compartilhar parte disto.

Esta biblioteca pode possibilitar a utilização de recursos VoIP na sua aplicação, por exemplo: um softphone, uma mensagem de voz padrão e a utilização de recursos de alguns um PABX (se estes assim estiverem configurados), como por exemplo o voicemail.
Foi criada para tabalhar com o protocolo IAX (ver http:// www.asterisk.org ) que é um protocolo inicialmente criado para revolver alguns problemas encontrados no seu "irmão" mais sofisticado, o SIP.
Quem já utilizou o protocolo SIP em suas aplicações sabe as dificuldades de sua utilização na internet devido a muitas redes, principalmente domiciliares ou pequenas empresas, utilizarem NAT, mais informações sobre o assunto podem ser facilmente encontradas (www.google.com heheh) . Trabalhar com SIP é complexo, tentando combater essa complexidade vem o IAX, que não apresenta problemas com NAT, é um protocolo mais enxuto, entre varias outras coisas.
Bem mas deixando de bla bla bla.

Um exemplo de conexão do jiaxclient com um asterisk:

//obtenha uma instancia do jiaxclient
JIAXClient jIAXClient = JIAXClient.getInstance();
//inicialize ela com o tipo de audio e o numero de ligações
jIAXClient.initialize(AUDIO_INTERNAL_PA,1);
//configure o CODEC a ser utilizado para receber e transmitir a voz/som
jIAXClient.setFormats(FORMAT_GSM,FORMAT_GSM);
//nao esqueça de iniciar o processameto das threads
int x = jIAXClient.startProcessingThread();
//registre o seu jiaxclient no asterisk a ser utilizado
Registration registration = jIAXClient.register("seu_numero","sua_senha","ip_asterisk:4569");
/*
voce pode precisar de uma linha de execução para iniciar o seu jiaxclient, pois o mesmo vai utiliza sua linha principal se nao o fizer (em alguns casos pode ser interesante! cada caso um caso)
*/
Thread inializadorJIAXClient = new Thread(){
public void run(){
jIAXClient.run();
}
};
inializadorJIAXClient.start();
//Para processar os eventos por ele recebidos, por exemplo: recebendo chamada e etc, vc vai precisar de um listener (que futuramente postarei um exemplo tambem)
jIAXClient.addIAXListener(new ListenerLigacaoInterna());



Espero que seja de utilidade a alguém.
Abraços a todos e até a proxima.

Links relacionados
http://www.voip-info.org/
http://www.asterisk.org/
http://www.hem.za.org/jiaxclient/