Em uma ou duas linha é dificil.
mas segue o meu, pra voce ter uma idéia de como deve ser feito.
macro tratastatus(discar) {
           //se a quantidade de chamadas for maior ou igual ao call-limit do 
peer, entao esta ocupado
           Set(DIALSTATUS=${IF($[ "${SIPPEER(${discar},curcalls)}" 
>="${SIPPEER(${discar},limit)}" ]?BUSY:${DIALSTATUS})});
           Set(DIALSTATUS=${IF($[ "${SIPPEER(${discar},curcalls)}" =0 
]?CHANUNAVAIL:${DIALSTATUS})});
           Read(semnocao,/etc/asterisk/mensagens/matende,1,n,1,1);
           noCDR();
           switch (${DIALSTATUS}) {
                       case BUSY:
                                 noCDR();
                                 
Read(semnocao,/etc/asterisk/mensagens/ocupado,1,n,1,1);
                                 if (${n}!=1)Hangup();
                                 break;
                        case CHANUNAVAIL:
                                 noCDR();
                                 
Read(semnocao,/etc/asterisk/mensagens/indisponivel,1,n,1,1);
                                 Hangup();
                                 break;
                        case NOANSWER:
                                 noCDR();
                                 
Read(semnocao,/etc/asterisk/sounds/naoatende,1,n,1,1);
                                 Hangup();
                                 break;
                        default:
                                 Hangup();
             }
           noCDR();
           return;
}


Hudson 
(048) 8413-7000
Para quem nao cre, nenhuma prova converte,Para aquele que cre, nenhuma prova 
precisa. 

Date: Mon, 17 Aug 2015 19:16:47 -0300
From: alcaponefeli...@bol.com.br
To: asteriskbrasil@listas.asteriskbrasil.org
Subject: [AsteriskBrasil] dica otimizar plano de discagem.

 
 
 
Pessoal, alguem consegue me ajudar nessa questão abaixo.
Preciso simplificar em uma linha esses três dialstatus: CONGESTION ou 
CHANUNAVAIL ou NOANSWER
 
Mais ou menos isso.
exten => 2388,1,Dial(sip/2388,1,t)

        same => n,Goto(${DIALSTATUS})
              same => n(CONGESTION ou CHANUNAVAIL ou NOANSWER),Playback(teste)
 
 
A questão básica eh como faço essa sintaxe.
 
Tentei: same => n(CONGESTION || CHANUNAVAIL || NOANSWER),Playback(teste)
           same => n(CONGESTION||CHANUNAVAIL||NOANSWER),Playback(teste)
          same => n(CONGESTION&&CHANUNAVAIL&&NOANSWER),Playback(teste)
           same => n(CONGESTION)||(CHANUNAVAIL)||(NOANSWER),Playback(teste)
 
Alguma dica?
 
Obg.
Felippe;

_______________________________________________
KHOMP: Primeira edi��o do WORKOFFEE CAMPO GRANDE acontecer�
dia 19/09 no Grand Park Hotel. Conhe�a todo portf�lio KHOMP
e o rec�m lan�ado NGP. Fa�a j� sua INSCRI��O GRATUITA em
www.workoffee.com.br. Sorteio de brindes no encerramento.
_______________________________________________
DIGIVOICE: Fabricante pioneiro em Banco de Canais e Placas E1, GSM, FXO e FXS 
para Asterisk e Elastix. Temos Cursos de Telefonia IP e Asterisk.
Construa solu��es de PABX IP com produtos DigiVoice - visite� 
www.digivoice.com.br
_______________________________________________
Para remover seu email desta lista, basta enviar um email em branco para 
asteriskbrasil-unsubscr...@listas.asteriskbrasil.org                            
         
_______________________________________________
KHOMP: Primeira edição do WORKOFFEE CAMPO GRANDE acontecerá
dia 19/09 no Grand Park Hotel. Conheça todo portfólio KHOMP
e o recém lançado NGP. Faça já sua INSCRIÇÃO GRATUITA em
www.workoffee.com.br. Sorteio de brindes no encerramento.
_______________________________________________
DIGIVOICE: Fabricante pioneiro em Banco de Canais e Placas E1, GSM, FXO e FXS 
para Asterisk e Elastix. Temos Cursos de Telefonia IP e Asterisk.
Construa soluções de PABX IP com produtos DigiVoice - visite  
www.digivoice.com.br
_______________________________________________
Para remover seu email desta lista, basta enviar um email em branco para 
asteriskbrasil-unsubscr...@listas.asteriskbrasil.org

Responder a