[AsteriskBrasil] RES: RES: RES: Funcionamento Asterisk com PHP
Danilo Almeida
danilo.almeida em g1telecom.com.br
Terça Junho 19 12:19:13 BRT 2012
Mais uma duvida aqui agora
Eu preciso necessariamente colocar o script no diretorio
/var/lib/asterisk/agi-bin/ ou posso colocar em outro diretorio por exemplo
/usr/local/minhapasta/ e depois instanciar a classe em meu arquivo
tarifador.php?
Coloco o phpagi.php e o tarifador.php nesse mesmo diretório.
Isso também funciona?
Att
Danilo Almeida
-----Mensagem original-----
De: asteriskbrasil-bounces em listas.asteriskbrasil.org
[mailto:asteriskbrasil-bounces em listas.asteriskbrasil.org] Em nome de Danilo
Almeida
Enviada em: Tuesday, June 19, 2012 11:16 AM
Para: asteriskbrasil em listas.asteriskbrasil.org
Assunto: [AsteriskBrasil] RES: RES: RES: RES: Funcionamento Asterisk com PHP
Entendi
Pessoal da Lista
Será que alguém já utilizou desta forma, ou existe alguma outra forma de
fazer isto? Já que o DeadAgi talvez possa não funcionar
Att
Danilo Almeida
-----Mensagem original-----
De: asteriskbrasil-bounces em listas.asteriskbrasil.org
[mailto:asteriskbrasil-bounces em listas.asteriskbrasil.org] Em nome de Mike
Tesliuk
Enviada em: Tuesday, June 19, 2012 11:08 AM
Para: asteriskbrasil em listas.asteriskbrasil.org
Assunto: Re: [AsteriskBrasil] RES: RES: RES: Funcionamento Asterisk com PHP
Se você colocar depois do dial tem que ser no contexto de desligamento
(h) , pois normalmente depois de falar a sua ponta vai desligar e não
vai executar nada, e também não testei executar o AGI depois de desligar
Em 19-06-2012 11:01, Danilo Almeida escreveu:
> Mike,
>
> O campo userfield eu uso para gravar o diretório da gravação, aqui o certo
> seria mesmo eu mandar para o AGI e fazer o tratamento no código e depois
> gravar em uma outra tabela do banco os valores com o RECID da ligação.
>
> Abaixo eu acrescentei a linha no contexto que mandaria para o AGI, seria
> dessa maneira mesmo? Nesse caso estou enviando para meu arquivo PHP.
>
> Nesse arquivo faria todos os calculo e no final geraria o log e também
> gravaria no banco de dados
>
> ; PARA fixo MOVEL VOIP EX: 99216200
>> exten => _[1-5]XXXXXXX,1,NoOp(---> NOVA LIGACAO EXTERNA VOIP<--)
>> exten => _[1-5]XXXXXXX,n,NoOp(---> DE ${CALLERID(num)} PARA
${EXTEN}<--)
>> exten => _[1-5]XXXXXXX,n,Set(DESTINO=${EXTEN})
>> exten => _[1-5]XXXXXXX,n,Macro(gravacao,voip)
>> exten => _[1-5]XXXXXXX,n,Macro(saidapstn,)
>> exten => _[1-5]XXXXXXX,n,Macro(checasaida,)
>> exten => _[1-5]XXXXXXX,n,Macro(checasenha,)
>> exten => _[1-5]XXXXXXX,n,GotoIf($["${SAIDALIBERADA}" = "NAO"]?desligar)
>> exten => _[1-5]XXXXXXX,n,GotoIf($["${SAIDAPSTN}" = "SIM"]?pstn)
>> exten => _[1-5]XXXXXXX,n,GotoIf($["${SAIDAFIXOLOCAL}" = "PSTN"]?pstn)
>> exten => _[1-5]XXXXXXX,n,GotoIf($["${SAIDAFIXOLOCAL}" = "VOIP"]?voip)
>> exten => _[1-5]XXXXXXX,n,GotoIf($["${SAIDAFIXOLOCAL}" = "A2B"]?a2b)
>> exten => _[1-5]XXXXXXX,n,Macro(hangupcall,)
>> exten => _[1-5]XXXXXXX,n(pstn),Set(CDR(accountcode)=TO-PSTN)
>> exten => _[1-5]XXXXXXX,n,Dial(${PORTAPSTN}/${EXTEN},40,Tg)
>> exten => _[1-5]XXXXXXX,n,Macro(sinalizacao,${DIALSTATUS})
>> exten => _[1-5]XXXXXXX,n,Macro(hangupcall,)
>> exten => _[1-5]XXXXXXX,n(voip),Set(CDR(accountcode)=TO-VOIP)
>> exten =>
>
_[1-5]XXXXXXX,n,Dial(SIP/${TECHPREFIX}${CODINCIOVOIP}${DDDLOCAL}${EXTEN}@${O
> PERADORA-VOIP},40,Tg)
>> exten => _[1-5]XXXXXXX,n(desligar),Macro(sinalizacao,${DIALSTATUS})
>> exten => _[1-5]XXXXXXX,n,Agi(tarifador.php) ;acrescentei aqqui a linha
que
> manda para AGI
>
>> exten => _[1-5]XXXXXXX,n,Macro(hangupcall,)
>
> Att
> Danilo Almeida
>
> -----Mensagem original-----
> De: asteriskbrasil-bounces em listas.asteriskbrasil.org
> [mailto:asteriskbrasil-bounces em listas.asteriskbrasil.org] Em nome de Mike
> Tesliuk
> Enviada em: Tuesday, June 19, 2012 9:20 AM
> Para: asteriskbrasil em listas.asteriskbrasil.org
> Assunto: Re: [AsteriskBrasil] RES: RES: RES: RES: RES: RES: Funcionamento
> Asterisk com PHP
>
> eu pessoalmente deixaria o controle todo no banco de dados e faria o
> dial pelo agi mesmo, porem voce pode continuar da maneira que esta,
> fazer todo o tratamento da chamada, mandar para o agi para ele pegar o
> valor das tarifas e tudo mais , ao sair do agi, voce poderia definir uma
> variavel para userfield do cdr com a tarifa para esta chamada, poderia
> tabem setar um ID ou algo assim para facilitar sua identificacao ex:
> Set(CDR(userfield)="55432:0,12"
>
>
> ali voce acrescentou um identificador para a chamada e o tempo, ao
> terminar a chamada voce pode fazer um update ou algo assim em outra
> tabela baseado nas variaveis definidas
>
> se voce colocar no seu contexto um h,1,NoOp(ANSWEREDTIME:
> ${ANSWEREDTIME}) voce vai ver que ele mostra o tempo da chamada que é o
> valor final que voce precisa (isso ocorrerá após desligar),
> provavelmente voce pode usar a propria funcao de mysql do asterisk para
> também no h fazer o update no banco
>
> lembre-se que no seu where voce vai usear 'WHERE userfield like '55432:%'
>
> a ideia seria fazer o proprio asterisk executar a conta matematica, e
> mandar o update para o cdr ou outra tabela .
>
> Em 19/06/12 09:01, Danilo Almeida escreveu:
>> Mike
>>
>> Com esse script eu já estou conseguindo entender o negócio. Só tem uma
>> coisa, no extensions vc não faz o Dial e sim no script da tarifação né?
>>
>> #executando a discagem
>> $AGI->exec("Dial", "SIP/tronco/197");
>>
>> No meu caso, tenho uma documentação nessa parte de configuração do
> asterisk
>> onde outras pessoas também usa, a gente só vai adaptando ela conforme a
>> necessidade, to querendo implementar mais essa função do tarifador nesse
>> esquema.... abaixo esta a forma que utilizo, por exemplo, para discar pra
>> fixo local:
>>
>> ; PARA fixo MOVEL VOIP EX: 99216200
>> exten => _[1-5]XXXXXXX,1,NoOp(---> NOVA LIGACAO EXTERNA VOIP<--)
>> exten => _[1-5]XXXXXXX,n,NoOp(---> DE ${CALLERID(num)} PARA
${EXTEN}<--)
>> exten => _[1-5]XXXXXXX,n,Set(DESTINO=${EXTEN})
>> exten => _[1-5]XXXXXXX,n,Macro(gravacao,voip)
>> exten => _[1-5]XXXXXXX,n,Macro(saidapstn,)
>> exten => _[1-5]XXXXXXX,n,Macro(checasaida,)
>> exten => _[1-5]XXXXXXX,n,Macro(checasenha,)
>> exten => _[1-5]XXXXXXX,n,GotoIf($["${SAIDALIBERADA}" = "NAO"]?desligar)
>> exten => _[1-5]XXXXXXX,n,GotoIf($["${SAIDAPSTN}" = "SIM"]?pstn)
>> exten => _[1-5]XXXXXXX,n,GotoIf($["${SAIDAFIXOLOCAL}" = "PSTN"]?pstn)
>> exten => _[1-5]XXXXXXX,n,GotoIf($["${SAIDAFIXOLOCAL}" = "VOIP"]?voip)
>> exten => _[1-5]XXXXXXX,n,GotoIf($["${SAIDAFIXOLOCAL}" = "A2B"]?a2b)
>> exten => _[1-5]XXXXXXX,n,Macro(hangupcall,)
>> exten => _[1-5]XXXXXXX,n(pstn),Set(CDR(accountcode)=TO-PSTN)
>> exten => _[1-5]XXXXXXX,n,Dial(${PORTAPSTN}/${EXTEN},40,Tg)
>> exten => _[1-5]XXXXXXX,n,Macro(sinalizacao,${DIALSTATUS})
>> exten => _[1-5]XXXXXXX,n,Macro(hangupcall,)
>> exten => _[1-5]XXXXXXX,n(voip),Set(CDR(accountcode)=TO-VOIP)
>> exten =>
>>
>
_[1-5]XXXXXXX,n,Dial(SIP/${TECHPREFIX}${CODINCIOVOIP}${DDDLOCAL}${EXTEN}@${O
>> PERADORA-VOIP},40,Tg)
>> exten => _[1-5]XXXXXXX,n(desligar),Macro(sinalizacao,${DIALSTATUS})
>> exten => _[1-5]XXXXXXX,n,Macro(hangupcall,)
>>
>> esse context não foi eu quem fez, e sim outro funcionario que nao faz
mais
>> parte da empresa. No começo do extensions eu adiciono as variáveis e
> depois
>> o contexto faz tudo sozinho (se sai pelo voip ou pstn, DDD local, etc)
>>
>> a questão é, de que maneira eu posso usar o AGI nesse contexto sem sair
do
>> padrão para realizar a tarifação da chamada?
>> Sei que para ficar de forma mais simplificada como esta este, precisarei
> dar
>> uma mexida nesse contexto, mais por enquanto só quero adaptar ai para
>> conseguir fazer a tarifação.
>>
>> E valeu pelo script que foi excelente para mim que estou começando a
>> aprender trabalhar com AGI
>>
>> Att
>> Danilo Almeida
>>
>> -----Mensagem original-----
>> De: asteriskbrasil-bounces em listas.asteriskbrasil.org
>> [mailto:asteriskbrasil-bounces em listas.asteriskbrasil.org] Em nome de Mike
>> Tesliuk
>> Enviada em: Monday, June 18, 2012 7:12 PM
>> Para: asteriskbrasil em listas.asteriskbrasil.org
>> Assunto: Re: [AsteriskBrasil] RES: RES: RES: RES: RES: Funcionamento
>> Asterisk com PHP
>>
>> vamos pensar:
>>
>> Eu estou usando asterisk 1.8
>>
>> fiz um extension que manda para o agi, e desliga,
>>
>> exten => 1101,1,Agi(teste-tarifacao.agi)
>> exten => 1101,n,Hangup()
>>
>>
>> neste agi tem o seguinte.
>>
>> ------------------
>>
>> #!/usr/bin/perl
>>
>>
>> use Asterisk::AGI;
>>
>> $AGI = new Asterisk::AGI;
>> %input = $AGI->ReadParse();
>>
>> # Pegando datas e coisas do genero
>> my ($sec,$min,$hour,$mday,$mon,$year,
>> $wday,$yday,$isdst) = localtime time;
>>
>> if($mday< 10){
>> $mday = "0" . $mday;
>> }
>>
>> $year = $year + 1900;
>>
>> $mon = $mon + 1;
>>
>> if($mon< 10){
>> $mon = "0" . $mon;
>> }
>>
>> $starttime = "$year-$mon-$mday $hour:$min:$sec";
>>
>> #definindo o custo da tarifa
>> $tarifa="0.481";
>>
>> $callerid = $AGI->get_variable("CALLERID(num)");
>> $destino = $AGI->get_variable("EXTEN");
>>
>>
>> #executando a discagem
>> $AGI->exec("Dial", "SIP/tronco/197");
>>
>>
>> # pegando a variavel com o tempo de atendidod do canal
>> $tempo = $AGI->get_variable("ANSWEREDTIME");
>>
>> # cobrando minimo de 30 segundos
>> if($tempo< 30){
>> $tempo = 30;
>> }
>>
>>
>>
>> $segundos = ($tempo / 60);
>>
>> $custo = ($segundos * $tarifa);
>>
>>
>>
>>
>>
>> # Gerando nosso log num arquivo de texto, voce poderia usar um mysql
>> para isso
>>
>> system("echo '$starttime,$callerid,$destino,$tempo,$custo,$tarifa'>>
>> /tmp/billing.csv");
>>
>>
>>
>>
>>
>>
>>
>> -------------------
>>
>>
>> No caso, ele vai gerar um arquivo de billing
>>
>> o conteudo dele é o seguinte (duas ligações, uma de poucos segundos e
>> outra de mais de um minuto)
>>
>>
>> O formato do arquivo é:
>>
>> data,quem,pra_onde,tempo_da_chamada_atendida,valor,tarifa
>>
>> Abaixo o conteudo:
>>
>> 2012-06-18 18:42:1,114,11001,30,0.2405,0.481
>> 2012-06-18 18:45:8,114,11001,69,0.55315,0.481
>>
>>
>> no meu caso aqui ele em alguns momentos nao gerou a escrita no arquivo,
>> não olhei o porque, talvez algum erro meu, mas enfim, a base é esta.
>>
>>
>> eu escrevi a saida em um arquivo de texto, poderia ser um banco de dados
>> por exemplo e por ai vai.
>>
>>
>>
>>
>> Em 18-06-2012 18:11, Danilo Almeida escreveu:
>>> Ribeiro
>>>
>>> Não entendo como conseguirei fazer isso, pois após o término da ligação,
>>> como farei para calcular o custo dela?
>>>
>>> Att
>>>
>>> Danilo ALmeida
>>>
>>> -----Mensagem original-----
>>> De: asteriskbrasil-bounces em listas.asteriskbrasil.org
>>> [mailto:asteriskbrasil-bounces em listas.asteriskbrasil.org] Em nome de
>> Ribeiro
>>> Enviada em: Monday, June 18, 2012 4:53 PM
>>> Para: asteriskbrasil em listas.asteriskbrasil.org
>>> Assunto: [AsteriskBrasil] RES: RES: RES: RES: Funcionamento Asterisk com
>> PHP
>>> Danilo
>>>
>>> Não pelo DeadAGI para a sobrecarga. Pelo evento do AMI/AJAM. Estes podem
>>> causar.
>>> Entendi sua necessidade, mas não seria melhor pegar pelo banco de dados,
>>> adicionar uma coluna sua ou copiar os dados para outra tabela? Isso
>> geraria
>>> menos carga e seria mais fácil de você conseguir implementar.
>>>
>>> Um abraço
>>> Ribeiro
>>>
>>> -----Mensagem original-----
>>> De: asteriskbrasil-bounces em listas.asteriskbrasil.org
>>> [mailto:asteriskbrasil-bounces em listas.asteriskbrasil.org] Em nome de
>> Danilo
>>> Almeida
>>> Enviada em: segunda-feira, 18 de junho de 2012 09:07
>>> Para: asteriskbrasil em listas.asteriskbrasil.org
>>> Assunto: [AsteriskBrasil] RES: RES: RES: Funcionamento Asterisk com PHP
>>>
>>> Sei que já existem diversos tarifadores, é que trabalho em uma empresa
de
>>> telefonia voIP e quero desenvolver um específico da empresa.
>>> Já tenho o script pronto, só que no script e só imprime o valor direto
na
>>> tela do cliente. Quando o cliente faz uma busca de ligação, ele pega o
>>> tempo, faz o calculo e imprime na tela.
>>> No asterisk, já esta configurado para gravar as infos no BD, quero
> somente
>>> conseguir gravar o valor em um novo campo da Tabela.
>>>
>>> Exemplo:
>>>
>>> Quando a ligação encerrar, pegar a informação dessa ligação, fazer o
>> calculo
>>> e dar um update na tabela jogando o valor no campo custo desta mesma
>>> ligação.
>>> Pelo que vi, isso seria feito pelo DeadAGI, mais como vc disse não sei
se
>> é
>>> a melhor opção pelo fato de poder dar uma sobrecarga.
>>>
>>> Teria alguma outra forma de fazer isto?
>>>
>>> obrigado
>>> Danilo Alameida
>>> -----Mensagem original-----
>>> De: asteriskbrasil-bounces em listas.asteriskbrasil.org
>>> [mailto:asteriskbrasil-bounces em listas.asteriskbrasil.org] Em nome de
>> Ribeiro
>>> Enviada em: Monday, June 18, 2012 2:50 AM
>>> Para: asteriskbrasil em listas.asteriskbrasil.org
>>> Assunto: [AsteriskBrasil] RES: RES: Funcionamento Asterisk com PHP
>>>
>>> Danilo
>>>
>>> Já existem tarifadores diversos e até demais no mercado e muitos Free.
>>> Alguns até do pessoal aqui.
>>> Veja o A2Billing. Ele faz exatamente o que você deseja, já está pronto e
>> não
>>> tem custo.
>>> Acesso ao banco de dados, utilização de um tarifador ou pegar os dados
do
>>> sistema é o que eu faria, pois você só precisa pegar os dados da ligação
>> que
>>> já acabou e o Asterisk guarda isso por padrão.
>>> Por exemplo: Eu uso o Elastix. Nele tem a aba Report. Em CDR Report eu
>> tenho
>>> todas as ligações realizadas e eu consigo exportar para CSV. Ele lhe
> daria
>>> TODOS os dados que você deseja de forma fácil, direta, clara e fácil.
Tem
>> o
>>> canal, duração, origem e destino e se foi atendida ou não.
>>> Você também consegue se integrar com o A2Billing.
>>> Na verdade é matar uma mosca com uma bomba nuclear o A2Billing para
você,
>>> mas pode ser feito.
>>>
>>> Independente da sua solução, como já foi dito, tem o cálculo de custo,
> que
>>> não é tão simples quanto parece.
>>>
>>> Sobre o AGI: Em seu caso, você não precisa monitorar as ligações no
>> momento
>>> em que elas estão acontecendo e entendo que o AGI não atenda você para
>> isso.
>>> Você poderia usar o DeadAGI para pegar os dados depois do hangup ou um
>>> AMI/AJAM com eventos. Neste caso ele dispara o evento toda vez que
alguma
>>> coisa acontece. Existem vários eventos e eu seguiria pelo evento Crd,
> onde
>>> toda vez que ocorre um hangup, ele lhe informa o canal que sofreu hangup
> e
>>> seus dados.
>>> Mais dados sobre eventos:
>>> http://www.voip-info.org/wiki/view/asterisk+manager+events . Só que tem
> um
>>> problema. O Astrisk fica pesado, pois ele armazena todos os hungups que
>>> ocorreram e em sistemas de tráfego intenso isso pode gerar sobrecarga.
Só
>>> fique esperto que cada ligação gera 2 canais pelo menos (Pode gerar
mais)
>> e
>>> você tem que entender o que cada canal faz para saber qual deles tem a
>>> informação que você deseja ou quais deles contém.
>>>
>>> Um abraço
>>> Ribeiro
>>>
>>> -----Mensagem original-----
>>> De: asteriskbrasil-bounces em listas.asteriskbrasil.org
>>> [mailto:asteriskbrasil-bounces em listas.asteriskbrasil.org] Em nome de
>>> danilo.almeida em g1telecom.com.br Enviada em: domingo, 17 de junho de 2012
>>> 22:07
>>> Para: asteriskbrasil em listas.asteriskbrasil.org
>>> Assunto: [AsteriskBrasil] RES: Funcionamento Asterisk com PHP
>>>
>>> Ribeiro
>>>
>>> Isso já é um ótimo começo pra mim, mais com essas 3 opções, eu consigo
>>> enviar um bloco de comando e salvar em um arquivo de conf por exemplo
que
>>> possa ser meus ramais sip e depois da um include no sip.conf?
>>> Andei lendo também sobre AGI, mais o material que achei na internet a
>>> maioria ou explica coisas avançadas ou coisas básicas que não se encaixa
>> no
>>> meu projeto.
>>>
>>> A princípio quero pegar o tempo da ligação e o uniqueid em uma pagina
PHP
>>> fazer o cálculo do custo da ligação e armazenar no banco.
>>>
>>> Seria feito pela AGI?
>>>
>>> Obrigado
>>>
>>> Danilo Almeida
>>>
>>> _______________________________________________
>>> KHOMP Inovação: External Board Series
>>> Módulos de 1/2 rack e 1U para todas as interfaces e soluções Asterisk e
>>> FreeSWITCH.
>>> Tenha a External Series Experience na sua aplicação. Visite
www.khomp.com
>>> _______________________________________________
>>> DIGIVOICE Fabricante de Placas de Voz e Channel Bank
>>> 20 anos de experiência com E1(R2/ISDN), FXS, FXO e GSM Centro
Treinamento
>> -
>>> Curso de PABX IP - Asterisk - Site www.digivoice.com.br ________
>>> YEALINK: Telefones IP e VídeoPhones IP com o melhor custo/benefício do
>>> mercado.
>>> email: yealink em commlogik.com.br | www.commlogik.com.br | (11) 5503-1011
>>> ______________________________________________
>>> Para remover seu email desta lista, basta enviar um email em branco para
>>> asteriskbrasil-unsubscribe em listas.asteriskbrasil.org
>>>
>>>
>>> _______________________________________________
>>> KHOMP Inovação: External Board Series
>>> Módulos de 1/2 rack e 1U para todas as interfaces e soluções Asterisk e
>>> FreeSWITCH.
>>> Tenha a External Series Experience na sua aplicação. Visite
www.khomp.com
>>> _______________________________________________
>>> DIGIVOICE Fabricante de Placas de Voz e Channel Bank
>>> 20 anos de experiência com E1(R2/ISDN), FXS, FXO e GSM Centro
Treinamento
>> -
>>> Curso de PABX IP - Asterisk - Site www.digivoice.com.br ________
>>> YEALINK: Telefones IP e VídeoPhones IP com o melhor custo/benefício do
>>> mercado.
>>> email: yealink em commlogik.com.br | www.commlogik.com.br | (11) 5503-1011
>>> ______________________________________________
>>> Para remover seu email desta lista, basta enviar um email em branco para
>>> asteriskbrasil-unsubscribe em listas.asteriskbrasil.org
>>>
>>> _______________________________________________
>>> KHOMP Inovação: External Board Series
>>> Módulos de 1/2 rack e 1U para todas as interfaces e soluções Asterisk e
>>> FreeSWITCH.
>>> Tenha a External Series Experience na sua aplicação. Visite
www.khomp.com
>>> _______________________________________________
>>> DIGIVOICE Fabricante de Placas de Voz e Channel Bank
>>> 20 anos de experiência com E1(R2/ISDN), FXS, FXO e GSM Centro
Treinamento
>> -
>>> Curso de PABX IP - Asterisk - Site www.digivoice.com.br ________
>>> YEALINK: Telefones IP e VídeoPhones IP com o melhor custo/benefício do
>>> mercado.
>>> email: yealink em commlogik.com.br | www.commlogik.com.br | (11) 5503-1011
>>> ______________________________________________
>>> Para remover seu email desta lista, basta enviar um email em branco para
>>> asteriskbrasil-unsubscribe em listas.asteriskbrasil.org
>>>
>>>
>>> _______________________________________________
>>> KHOMP Inovação: External Board Series
>>> Módulos de 1/2 rack e 1U para todas as interfaces e soluções Asterisk e
>>> FreeSWITCH.
>>> Tenha a External Series Experience na sua aplicação. Visite
www.khomp.com
>>> _______________________________________________
>>> DIGIVOICE Fabricante de Placas de Voz e Channel Bank
>>> 20 anos de experiência com E1(R2/ISDN), FXS, FXO e GSM
>>> Centro Treinamento - Curso de PABX IP - Asterisk - Site
>>> www.digivoice.com.br
>>> ________
>>> YEALINK: Telefones IP e VídeoPhones IP com o melhor custo/benefício do
>>> mercado.
>>> email: yealink em commlogik.com.br | www.commlogik.com.br | (11) 5503-1011
>>> ______________________________________________
>>> Para remover seu email desta lista, basta enviar um email em branco para
>>> asteriskbrasil-unsubscribe em listas.asteriskbrasil.org
>>>
>>> _______________________________________________
>>> KHOMP Inovação: External Board Series
>>> Módulos de 1/2 rack e 1U para todas as interfaces e soluções Asterisk e
>> FreeSWITCH.
>>> Tenha a External Series Experience na sua aplicação. Visite
www.khomp.com
>>> _______________________________________________
>>> DIGIVOICE Fabricante de Placas de Voz e Channel Bank
>>> 20 anos de experiência com E1(R2/ISDN), FXS, FXO e GSM
>>> Centro Treinamento - Curso de PABX IP - Asterisk - Site
>> www.digivoice.com.br
>>> ________
>>> YEALINK: Telefones IP e VídeoPhones IP com o melhor custo/benefício do
>> mercado.
>>> email: yealink em commlogik.com.br | www.commlogik.com.br | (11) 5503-1011
>>> ______________________________________________
>>> Para remover seu email desta lista, basta enviar um email em branco para
>> asteriskbrasil-unsubscribe em listas.asteriskbrasil.org
>>
>> _______________________________________________
>> KHOMP Inovação: External Board Series
>> Módulos de 1/2 rack e 1U para todas as interfaces e soluções Asterisk e
>> FreeSWITCH.
>> Tenha a External Series Experience na sua aplicação. Visite www.khomp.com
>> _______________________________________________
>> DIGIVOICE Fabricante de Placas de Voz e Channel Bank
>> 20 anos de experiência com E1(R2/ISDN), FXS, FXO e GSM
>> Centro Treinamento - Curso de PABX IP - Asterisk - Site
>> www.digivoice.com.br
>> ________
>> YEALINK: Telefones IP e VídeoPhones IP com o melhor custo/benefício do
>> mercado.
>> email: yealink em commlogik.com.br | www.commlogik.com.br | (11) 5503-1011
>> ______________________________________________
>> Para remover seu email desta lista, basta enviar um email em branco para
>> asteriskbrasil-unsubscribe em listas.asteriskbrasil.org
>>
>> _______________________________________________
>> KHOMP Inovação: External Board Series
>> Módulos de 1/2 rack e 1U para todas as interfaces e soluções Asterisk e
> FreeSWITCH.
>> Tenha a External Series Experience na sua aplicação. Visite www.khomp.com
>> _______________________________________________
>> DIGIVOICE Fabricante de Placas de Voz e Channel Bank
>> 20 anos de experiência com E1(R2/ISDN), FXS, FXO e GSM
>> Centro Treinamento - Curso de PABX IP - Asterisk - Site
> www.digivoice.com.br
>> ________
>> YEALINK: Telefones IP e VídeoPhones IP com o melhor custo/benefício do
> mercado.
>> email: yealink em commlogik.com.br | www.commlogik.com.br | (11) 5503-1011
>> ______________________________________________
>> Para remover seu email desta lista, basta enviar um email em branco para
> asteriskbrasil-unsubscribe em listas.asteriskbrasil.org
>
>
> _______________________________________________
> KHOMP Inovação: External Board Series
> Módulos de 1/2 rack e 1U para todas as interfaces e soluções Asterisk e
> FreeSWITCH.
> Tenha a External Series Experience na sua aplicação. Visite www.khomp.com
> _______________________________________________
> DIGIVOICE Fabricante de Placas de Voz e Channel Bank
> 20 anos de experiência com E1(R2/ISDN), FXS, FXO e GSM
> Centro Treinamento - Curso de PABX IP - Asterisk - Site
> www.digivoice.com.br
> ________
> YEALINK: Telefones IP e VídeoPhones IP com o melhor custo/benefício do
> mercado.
> email: yealink em commlogik.com.br | www.commlogik.com.br | (11) 5503-1011
> ______________________________________________
> Para remover seu email desta lista, basta enviar um email em branco para
> asteriskbrasil-unsubscribe em listas.asteriskbrasil.org
>
> _______________________________________________
> KHOMP Inovação: External Board Series
> Módulos de 1/2 rack e 1U para todas as interfaces e soluções Asterisk e
FreeSWITCH.
> Tenha a External Series Experience na sua aplicação. Visite www.khomp.com
> _______________________________________________
> DIGIVOICE Fabricante de Placas de Voz e Channel Bank
> 20 anos de experiência com E1(R2/ISDN), FXS, FXO e GSM
> Centro Treinamento - Curso de PABX IP - Asterisk - Site
www.digivoice.com.br
> ________
> YEALINK: Telefones IP e VídeoPhones IP com o melhor custo/benefício do
mercado.
> email: yealink em commlogik.com.br | www.commlogik.com.br | (11) 5503-1011
> ______________________________________________
> Para remover seu email desta lista, basta enviar um email em branco para
asteriskbrasil-unsubscribe em listas.asteriskbrasil.org
_______________________________________________
KHOMP Inovação: External Board Series
Módulos de 1/2 rack e 1U para todas as interfaces e soluções Asterisk e
FreeSWITCH.
Tenha a External Series Experience na sua aplicação. Visite www.khomp.com
_______________________________________________
DIGIVOICE Fabricante de Placas de Voz e Channel Bank
20 anos de experiência com E1(R2/ISDN), FXS, FXO e GSM
Centro Treinamento - Curso de PABX IP - Asterisk - Site
www.digivoice.com.br
________
YEALINK: Telefones IP e VídeoPhones IP com o melhor custo/benefício do
mercado.
email: yealink em commlogik.com.br | www.commlogik.com.br | (11) 5503-1011
______________________________________________
Para remover seu email desta lista, basta enviar um email em branco para
asteriskbrasil-unsubscribe em listas.asteriskbrasil.org
_______________________________________________
KHOMP Inovação: External Board Series
Módulos de 1/2 rack e 1U para todas as interfaces e soluções Asterisk e
FreeSWITCH.
Tenha a External Series Experience na sua aplicação. Visite www.khomp.com
_______________________________________________
DIGIVOICE Fabricante de Placas de Voz e Channel Bank
20 anos de experiência com E1(R2/ISDN), FXS, FXO e GSM
Centro Treinamento - Curso de PABX IP - Asterisk - Site
www.digivoice.com.br
________
YEALINK: Telefones IP e VídeoPhones IP com o melhor custo/benefício do
mercado.
email: yealink em commlogik.com.br | www.commlogik.com.br | (11) 5503-1011
______________________________________________
Para remover seu email desta lista, basta enviar um email em branco para
asteriskbrasil-unsubscribe em listas.asteriskbrasil.org
Mais detalhes sobre a lista de discussão AsteriskBrasil