Ja havia atualizado o Openfire para a ultima versao (3.8.2) ha um bom tempo, mas ate o momento nao havia sido preciso fazer qualquer verificacao nos logs do mesmo.Semana passada, no entanto, fui obrigado a analisar os logs para verificar uma situacao de erro de s2s e percebi que o software nao estava gerando os logs a partir da versao 3.8.1 (nao pude confirmar a existencia do bug na versao 3.8.0).Apos muita pesquisa me deparei com um link que relatava a mesma questao e trazia a solucao do problema. E muito simples:Localize o script que inicia o Openfire (se nao souber onde ele esta voce pode encontrar esta informacao no initscript que fica no /etc/init.d/).Edite este arquivo e procure pela linha que inicia com o comando nohup.Mova os parametros -DopenfireHome e -Dopenfire.lib.dir que ficam no final da linha para antes do parametro -classpath.Reinicie o Openfire Problema resolvido! Uma situacao bastante comum quando voce precisa interligar duas (ou mais) filiais via IAX para que os usuarios de ambos locais possam falar sem custo entre si, e a existencia de uma banda limitada para o uso de voz.Quando temos este cenario, normalmente surge um problema: como podemos garantir que nao teremos mais ligacoes simultaneas do que permite a "banda reservada" para este recurso.Com esta demanda nas maos, criei um plano de discagem que permite limitar o numero de ligacoes simultaneas quando for utilizado IAX2 (ou, com pequenas adaptacoes, qualquer outro tipo de canal, como, por exemplo, SIP).Para efeito de demonstracao, vamos supor que voce utilize um codec que consuma 64Kbps para cada ligacao (G.711 a-law). Vamos supor tambem que voce tenha 256Kbps disponivel para voz, podendo realizar entao ate quatro ligacoes simultaneas sem perda na qualidade (cortes, "voz robotica", etc...).A configuracao necessaria para tal controle e feita no extensions.conf, em tres contextos diferentes (nao esqueca de adaptar o exemplo a sua realidade):o contexto [globals] e padrao do Asterisk e nele voce pode declarar variaveis para uso no plano de discagem;o contexto [from-iax] e o contexto que controlara as chamadas recebidas via IAX;o contexto [saidaexterna] e o contexto de saida das chamadas (exceto chamadas entre ramais locais);Contexto globalsNo contexto [globals] voce ira declarar a variavel que controla o numero maximo de chamadas permitidas, da seguinte forma:; Controle de chamadas; 256Kbps = 4 chamadas a-law de 64Kbps cadaCALL_LIMIT_IAX=4 Contexto from-iaxNo contexto [from-iax] voce ira controlar as chamadas entrantes via IAX, da seguinte forma:exten => _XXXX.,1,NoOp(Chamada via IAX)same => n,NoOP(Chamada de origem ${CALLERID(num)} discando para ${EXTEN}); Adiciona chamada no grupo do IAX2same => n,NoOP(Adicionando chamada entrante ao grupo IAX2)same => n,Set(GROUP()="IAX2"); verifica o numero de chamadas simultaneas no gruposame => n,Set(SIMULTCALL=${GROUP_COUNT("IAX2")})same => n,NoOp(Ligacoes em curso IAX2: ${SIMULTCALL} de ${CALL_LIMIT_IAX}); verifica se a chamada pode ser realizadasame => n,GotoIf($[0${SIMULTCALL} <= 0${CALL_LIMIT_IAX}]?call:nocall); secao utilizada quando a chamada nao pode ser realizadasame => n(nocall),NoOp(Limite de chamadas IAX2 excedido - chamada entrante recusada)same => n,Playback(canais_iax_ocupados)same => n,Hangup(); secao utilizada para realizacao da chamada para ramais (sip)same => n(call),Goto(sip,${EXTEN},1)same => n,Hangup()Contexto saidaexternaNo contexto [saidaexterna] voce ira controlar as chamadas saintes via IAX e outras tecnologias como DAHDI, Khomp ou DGV, da seguinte