[AsteriskBrasil] Transferência em ocupado, nao atende, com call-limit=1

Hudson Cardoso hudsoncardoso em hotmail.com
Sábado Setembro 19 03:06:59 BRT 2015


   Caros colegas.
   Tive um desafio com o meu sistema hoje, precisava fazer transferências, mesmo ocupado, ou não atendidas.
e não podia perder o BLF, de jeito nenhum, e as filas nao podiam parar por esse mesmo motivo, pois se um ramal
transferisse sua chamada para outro, automaticamente seu canal ficava ocupado, até que a outra ponta atendesse.
e caso nao atendesse, deveria voltar para a origem e fazer o mesmo percurso, ate que alguém atenda,
   Depois de perder algumas noites de sono cheguei a esse contexto abaixo, que venho compartilhar com os colegas.
é simples, mas muito eficaz, experimentem.

              _[1-9]XX=>      {//verifica se é ligacao externa, se for nao atende
                           if(${ISNULL(${lig_entrada})}=1)
                                  {//verifica se faz parte dos ramais
                                   if(${callerid(num)}<=999&${CALLERID(num)}>=100) answer;}
                           dial(sip/${EXTEN},90,gtTS(3600));
                           //se atendeu, depois desligue
                           if(${DIALSTATUS}=ANSWER) Hangup;
                           // se nao atender devolve para origem
                           if(${DIALSTATUS}=NOANSWER)
                                {//verifica de novo se é interno, e se nao está tranferindo para o proprio ramal
                                 if(${id}<=999&${id}>=100&${CALLERID(num)}!=${EXTEN}) {noop(devolvendo para origem);
                                                                            goto ramais,${CALLERID(num)},1;}}
                           // se estiver ocupado tenta durante algum tempo
                           if(${DIALSTATUS}=BUSY)
                                   {for(loop1=1; ${loop1}<9; loop1=${loop1}+1)
                                          {for(loop2=1; ${loop2}<9; loop2=${loop2}+1)
                                                   {dial(sip/${EXTEN},90,gtTS(3600));
                                                    mande falar um tom de 425HZ X 4 segundos de pausa
                                                    playback(tom);
                                                    if(${DIALSTATUS}=ANSWER) Hangup;
                                                    }
                                        }
                                     if(${id}<=999&${id}>=100&${CALLERID(num)}!=${EXTEN}){goto ramais,${CALLERID(num)},1;}
                                     dial(sip/${CALLERID(num)},90,gtTS(3600));
                                     }
                          }


Hudson 
(048) 8413-7000
Para quem nao cre, nenhuma prova converte,Para aquele que cre, nenhuma prova precisa.  		 	   		  
-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: <http://asteriskbrasil.org/pipermail/asteriskbrasil/attachments/20150919/335ec761/attachment.html>


Mais detalhes sobre a lista de discussão AsteriskBrasil