/* ############################################################ # Configuracao do PABX: ENSA Tecnologia. # # Desenvolvido por: Thiago Anselmo # # Desvolvido na data: 09/07/2013 # ############################################################# */ globals { QUANTIDADE=3; ROTACAO=0; MODULO01=modulo01; MODULO02=modulo02; MODULO03=modulo03; MODULO04=modulo04; MODULO05=modulo05; MODULO06=modulo06; MODULO07=modulo07; MODULO08=modulo08; MODULO09=modulo09; MODULO10=modulo10; MODULO11=modulo11; MODULO12=modulo12; MODULO13=modulo13; MODULO14=modulo14; MODULO15=modulo15; MODULO16=modulo16; AUSENTE=1; LIVRE=2; EMUSO=3; DIR_SCRIPT=/etc/asterisk/scripts; } context giovanni { _#*10 =>{ Answer(); Ringing(1); Set(DB(MODEM/ROTACAO)=1); Set(DB(MODEM/TOTAL)=3); } _#*20. =>{ Set(DB(LIMITE/MODEM01)=${EXTEN:4}); NooP(NUMERO MAXIMO DE MINUTOS NO MODEM01 EH: ${DB(LIMITE/MODEM01)}); } _X. =>{ // ---------- INICIO DO ROUD ROBIN DE MODULO ----------- // if (${DB(MODEM/ROTACAO)} > ${DB(MODEM/TOTAL)}){ NooP(ROTACAO SUPERIOR A QUANTIDADE DE MODEM); Set(DB(MODEM/ROTACAO)=1); goto inicio; } inicio: goto modem${DB(MODEM/ROTACAO)}; // ---------- INICIO DE MODULO -----------// modem1: Set(DB(MODEM/ROTACAO)=$[${DB(MODEM/ROTACAO)}+1]) ; Set(DB(TEMPO/MODEM01)=${SHELL(cat /var/log/asterisk/dongle/modulo01.txt)}); if ( ${DB(TEMPO/MODEM01)} < ${DB(LIMITE/MODEM01)}){ DongleStatus(${MODULO01},ESTADO01); NooP( O MODULO ESTA NO ESTADO ${ESTADO01}); if (${ESTADO01} = ${LIVRE}) { NooP(O MODEM ${MODULO01} ESTA ${ESTADO01} E VAI DISCAR); Dial(dongle/${MODULO01}/${EXTEN},60,Tt); HangUP(); } else{ System(${DIR_SCRIPT}/modulo01.sh); DongleStatus(${MODULO01},ESTADO01); NooP( O MODULO ESTA NO ESTADO ${ESTADO01}); if (${ESTADO01} = ${LIVRE}) { NooP(O MODEM ${MODULO01} ESTA ${ESTADO01} E VAI DISCAR); Dial(dongle/${MODULO01}/${EXTEN},60,Tt); HanUP(); } else{ goto modem2; } } } else{ NooP(MODEM CHEGOU AO LIMITE E ESTA BLOQUEADO); } modem2: Set(DB(MODEM/ROTACAO)=$[${DB(MODEM/ROTACAO)}+1]) ; DongleStatus(${MODULO02},ESTADO02); NooP( O MODULO ESTA NO ESTADO ${ESTADO02}); if (${ESTADO02} = ${LIVRE}) { NooP(O MODEM ${MODULO02} ESTA ${ESTADO02} E VAI DISCAR); Dial(dongle/${MODULO02}/${EXTEN},60,Tt); HangUP(); } else{ System(${DIR_SCRIPT}/modulo02.sh); DongleStatus(${MODULO02},ESTADO02); NooP( O MODULO ESTA NO ESTADO ${ESTADO02}); if (${ESTADO02} = ${LIVRE}) { NooP(O MODEM ${MODULO02} ESTA ${ESTADO02} E VAI DISCAR); Dial(dongle/${MODULO02}/${EXTEN},60,Tt); HanUP(); } else{ goto modem3; } } modem3: Set(DB(MODEM/ROTACAO)=$[${DB(MODEM/ROTACAO)}+1]) ; DongleStatus(${MODULO03},ESTADO03); NooP( O MODULO ESTA NO ESTADO ${ESTADO03}); if (${ESTADO03} = ${LIVRE}) { NooP(O MODEM ${MODULO03} ESTA ${ESTADO03} E VAI DISCAR); Dial(dongle/${MODULO03}/${EXTEN},60,Tt); HangUP(); } else{ System(${DIR_SCRIPT}/modulo03.sh); DongleStatus(${MODULO03},ESTADO03); NooP( O MODULO ESTA NO ESTADO ${ESTADO03}); if (${ESTADO03} = ${LIVRE}) { NooP(O MODEM ${MODULO03} ESTA ${ESTADO03} E VAI DISCAR); Dial(dongle/${MODULO03}/${EXTEN},60,Tt); HanUP(); } else{ NooP (NADA); } } } // FECHA EXTENSAO } // FECHA CONTEXTO