Exemplo de uma consulta na base antes do recebimento de uma chamada.

Exemplo de uma consulta na base antes do recebimento de uma chamada.
Aqui eu consulto se vem dos ddds 21,51,31 ou 11. Caso venha eu consulto na base se eh para eu aceitar ou não a chamada no 0800 dependendo da região.

[consulta]
exten => 667,1,NoOp(DDD do numero que estamos recebendo –> ${CALLERID(ANI):0:2})
same => n,noop(Numero que estamos recebendo –> ${CALLERID(ANI)})

same => n,GotoIf($[“${CALLERID(ANI):0:2}” = “11”]?verificabanco) ; SP
same => n,GotoIf($[“${CALLERID(ANI):0:2}” = “21”]?verificabanco) ; RJ
same => n,GotoIf($[“${CALLERID(ANI):0:2}” = “51”]?verificabanco) ; POA
same => n,GotoIf($[“${CALLERID(ANI):0:2}” = “31”]?verificabanco) ; BH
same => n,Noop( DDD ${CALLERID(ANI):0:2} aceito no 0800, nao consta na lista de excecoes)
same => n,Goto(call0800)

same => n(verificabanco),Noop(DDD possivelmente nao pode entrar no 0800, a verificar no banco de dados)
same => n,Noop(Consulta no banco de dados do prefixo –> ${CALLERID(ANI):0:6})
same => n,MYSQL(Connect connid localhost prefixo profit asterisk)
same => n,NoOp(connid = ${connid})
same => n,MYSQL(Query resultid ${connid} SELECT status FROM prefixos WHERE prefixo=”${CALLERID(ANI):0:6}”)
same => n,NoOp(resultid = ${resultid})
same => n,MYSQL(Fetch fetchid ${resultid} realizada)
same => n,NoOp(Variabili = ${fetchid},${realizada})
same => n,MYSQL(Clear ${resultid})
same => n,MYSQL(Disconnect ${connid})
same => n,noop(${realizada})
same => n,GotoIf($[“${realizada}” = “1”]?nocall:call0800)

same => n(nocall),Noop( Telefone ${CALLERID(ANI)} nao eh autorizado ligar no 0800 pois consta em uma das cidades atendidas pelo numero local da ihunter. Vamos verificar agora de qual localidade para tocar o audio em especifico.)
same => n,GotoIf($[“${CALLERID(ANI):0:2}” = “11”]?nocallSP)
same => n,GotoIf($[“${CALLERID(ANI):0:2}” = “21”]?nocallRJ)
same => n,GotoIf($[“${CALLERID(ANI):0:2}” = “51”]?nocallPOA)
same => n,GotoIf($[“${CALLERID(ANI):0:2}” = “31”]?nocallBH)
same => n,Goto(call0800)

same => n(nocallSP),Noop(playback dizendo o numero de Sao Paulo)
same => n,playback(numero_sao_paulo)
same => n,HangUP()
same => n(nocallRJ),Noop(playback dizendo o numero do Rio de Janeiro)
same => n,Playback(numero_rio_de_janeiro)
same => n,HangUP()
same => n(nocallPOA),Noop(playback dizendo o numero de Porto Alegre)
same => n,Playback(numero_porto_alegre)
same => n,HangUP()
same => n(nocallBH),Noop(playback dizendo o numero de Belo Horizonte)
same => n,playback(numero_belo_horizonte)
same => n,HangUP()

same => n(call0800),Noop(Verificando se o horario eh permitido)
same => n,GotoifTime(8:00-18:50|mon-fri|*|*?recebehelpdesk,s,1)
same => n,noop(Fora de horario de atendimento da ihunter!)
same => n,Playback(fora-horario)
same => n,Hangup()

Deixe uma resposta