1147 lines
26 KiB
Plaintext
1147 lines
26 KiB
Plaintext
|
JSON Ligações de entrada
|
||
|
|
||
|
--------------------------------------------------------------------------------------------------------------------------------
|
||
|
CMDs
|
||
|
--------------------------------------------------------------------------------------------------------------------------------
|
||
|
|
||
|
start
|
||
|
|
||
|
Determina o inicio do fluxograma, passando o numero do DID no atributo value.
|
||
|
|
||
|
{
|
||
|
"id": "1",
|
||
|
"idmaster": "1",
|
||
|
"cmd": "start",
|
||
|
"value": "551138118400"
|
||
|
},
|
||
|
|
||
|
--------------------------------------------------------------------------------------------------------------------------------
|
||
|
|
||
|
blacklist.check
|
||
|
|
||
|
Verifica se o callerid esta na blacklist.
|
||
|
Caso esteja na lista, a ligação é encaminhado para o CMD blacklist.true
|
||
|
Caso não esteja na lista, a ligação é encaminhado para o CMD blacklist.false
|
||
|
|
||
|
[
|
||
|
{
|
||
|
"id": "1",
|
||
|
"idmaster": "1",
|
||
|
"cmd": "start",
|
||
|
"value": "2000"
|
||
|
},
|
||
|
{
|
||
|
"id": "2",
|
||
|
"idmaster": "1",
|
||
|
"cmd": "blacklist.check",
|
||
|
"value": ""
|
||
|
},
|
||
|
{
|
||
|
"id": "3",
|
||
|
"idmaster": "2",
|
||
|
"cmd": "blacklist.true",
|
||
|
"value": ""
|
||
|
},
|
||
|
{
|
||
|
"id": "4",
|
||
|
"idmaster": "3",
|
||
|
"cmd": "playaudio",
|
||
|
"value": "vm-goodbye.wav",
|
||
|
"value2": "2",
|
||
|
"value3": "1",
|
||
|
"value4": "false"
|
||
|
},
|
||
|
{
|
||
|
"id": "5",
|
||
|
"idmaster": "2",
|
||
|
"cmd": "blacklist.false",
|
||
|
"value": ""
|
||
|
},
|
||
|
{
|
||
|
"id": "6",
|
||
|
"idmaster": "5",
|
||
|
"cmd": "playaudio",
|
||
|
"value": "demo-echotest.wav",
|
||
|
"value2": "2",
|
||
|
"value3": "1",
|
||
|
"value4": "false"
|
||
|
}
|
||
|
]
|
||
|
|
||
|
--------------------------------------------------------------------------------------------------------------------------------
|
||
|
|
||
|
callerid.change
|
||
|
|
||
|
Altera o callerid passado pelo atributo value
|
||
|
O parametro pode ser passado em value2 num, all, name, etc... Se não passar ele usa num
|
||
|
|
||
|
[
|
||
|
{
|
||
|
"id": "1",
|
||
|
"idmaster": "1",
|
||
|
"cmd": "start",
|
||
|
"value": "2000"
|
||
|
},
|
||
|
{
|
||
|
"id": "2",
|
||
|
"idmaster": "1",
|
||
|
"cmd": "callerid.change",
|
||
|
"value": "5555555",
|
||
|
"value2": "num"
|
||
|
},
|
||
|
{
|
||
|
"id": "3",
|
||
|
"idmaster": "2",
|
||
|
"cmd": "playaudio",
|
||
|
"value": "vm-goodbye.wav",
|
||
|
"value2": "2",
|
||
|
"value3": "1",
|
||
|
"value4": "false"
|
||
|
}
|
||
|
]
|
||
|
|
||
|
--------------------------------------------------------------------------------------------------------------------------------
|
||
|
|
||
|
digit
|
||
|
|
||
|
Confere o valor digitado se igual ao passado no atributo value.
|
||
|
Caso ocorra um digito. Encaminha a ligação para o CMD seguintem referente ao valor do digito.
|
||
|
Caso não ocorra um digito em 10 segundos. Encaminha para o CMD "timeout" em paralelo ao CMD "digit".
|
||
|
|
||
|
{
|
||
|
"id": "1",
|
||
|
"idmaster": "1",
|
||
|
"cmd": "start",
|
||
|
"value": "551138118400"
|
||
|
},
|
||
|
{
|
||
|
"id": "2",
|
||
|
"idmaster": "1",
|
||
|
"cmd": "playaudio",
|
||
|
"value": "demo-echotest.wav"
|
||
|
},
|
||
|
{
|
||
|
"id": "3",
|
||
|
"idmaster": "2",
|
||
|
"cmd": "digit",
|
||
|
"value": "1"
|
||
|
},
|
||
|
{
|
||
|
"id": "4",
|
||
|
"idmaster": "3",
|
||
|
"cmd": "dialgroupextension",
|
||
|
"value": "7"
|
||
|
},
|
||
|
{
|
||
|
"id": "5",
|
||
|
"idmaster": "2",
|
||
|
"cmd": "timeout",
|
||
|
"value": ""
|
||
|
}
|
||
|
|
||
|
--------------------------------------------------------------------------------------------------------------------------------
|
||
|
|
||
|
dialdigit
|
||
|
|
||
|
Toca o ramal digitado.
|
||
|
|
||
|
{
|
||
|
"id": "1",
|
||
|
"idmaster": "1",
|
||
|
"cmd": "start",
|
||
|
"value": "551138118400"
|
||
|
},
|
||
|
{
|
||
|
"id": "2",
|
||
|
"idmaster": "1",
|
||
|
"cmd": "playaudio",
|
||
|
"value": "demo-echotest.wav"
|
||
|
},
|
||
|
{
|
||
|
"id": "3",
|
||
|
"idmaster": "2",
|
||
|
"cmd": "dialdigit",
|
||
|
"value": ""
|
||
|
}
|
||
|
|
||
|
--------------------------------------------------------------------------------------------------------------------------------
|
||
|
|
||
|
dialgroupextension
|
||
|
|
||
|
Toca todos os ramais que pertencem ao id de grupo passado no atributo value:
|
||
|
|
||
|
{
|
||
|
"id": "1",
|
||
|
"idmaster": "1",
|
||
|
"cmd": "start",
|
||
|
"value": "551138118400"
|
||
|
},
|
||
|
{
|
||
|
"id": "2",
|
||
|
"idmaster": "1",
|
||
|
"cmd": "dialgroupextension",
|
||
|
"value": "7"
|
||
|
}
|
||
|
|
||
|
--------------------------------------------------------------------------------------------------------------------------------
|
||
|
|
||
|
dialplan.checkvar
|
||
|
|
||
|
Coleta variável da memória do asterisk, verificando se "deu match". Para seguir um rota específica do IVR após o "match".
|
||
|
|
||
|
{
|
||
|
"id": "1",
|
||
|
"idmaster": "1",
|
||
|
"cmd": "start",
|
||
|
"value": "551138118400"
|
||
|
},
|
||
|
{
|
||
|
"id": "2",
|
||
|
"idmaster": "1",
|
||
|
"cmd": "playaudio",
|
||
|
"value": "bemvindo-digitecpf.wav"
|
||
|
},
|
||
|
{
|
||
|
"id": "3",
|
||
|
"idmaster": "2",
|
||
|
"cmd": "custom",
|
||
|
"variation": "1",
|
||
|
"defaultvalues": {
|
||
|
"cmd": "dialplan.setvar",
|
||
|
"varname": "CPF"
|
||
|
}
|
||
|
},
|
||
|
{
|
||
|
"id": "4",
|
||
|
"idmaster": "3",
|
||
|
"cmd": "custom",
|
||
|
"variation": "2",
|
||
|
"defaultvalues": {
|
||
|
"cmd": "dialplan.checkvar",
|
||
|
"varname": "CPF",
|
||
|
"varvalue": "123456"
|
||
|
}
|
||
|
},
|
||
|
{
|
||
|
"id": "5",
|
||
|
"idmaster": "4",
|
||
|
"cmd": "playaudio",
|
||
|
"value": "cpfvalidado.wav"
|
||
|
}
|
||
|
|
||
|
--------------------------------------------------------------------------------------------------------------------------------
|
||
|
|
||
|
dialplan.gosub
|
||
|
|
||
|
Direciona a ligação para um trecho do dialplan do asterisk (A ligação volta ao IVR, caso não execute hangup no dialplan).
|
||
|
Atributo ctxname é o nome do contexto no dialplan.
|
||
|
Atributo ctxexten é o ${EXTEN} passado para o contexto do diaplan (Se não informado vai passar o valor 1001).
|
||
|
|
||
|
{
|
||
|
"id": "1",
|
||
|
"idmaster": "1",
|
||
|
"cmd": "start",
|
||
|
"value": "551138118400"
|
||
|
},
|
||
|
{
|
||
|
"id": "2",
|
||
|
"idmaster": "1",
|
||
|
"cmd": "playaudio",
|
||
|
"value": "bemvindo-digitecpf.wav"
|
||
|
},
|
||
|
{
|
||
|
"id": "3",
|
||
|
"idmaster": "2",
|
||
|
"cmd": "custom",
|
||
|
"variation": "1",
|
||
|
"defaultvalues": {
|
||
|
"cmd": "dialplan.gosub",
|
||
|
"ctxname": "unimed",
|
||
|
"ctxexten": "1001"
|
||
|
}
|
||
|
}
|
||
|
|
||
|
--------------------------------------------------------------------------------------------------------------------------------
|
||
|
|
||
|
dialplan.setvar
|
||
|
|
||
|
Armazena na memória do asterisk, variável de nome passado no atributo "varname", o último valor digitado no IVR.
|
||
|
|
||
|
{
|
||
|
"id": "1",
|
||
|
"idmaster": "1",
|
||
|
"cmd": "start",
|
||
|
"value": "551138118400"
|
||
|
},
|
||
|
{
|
||
|
"id": "2",
|
||
|
"idmaster": "1",
|
||
|
"cmd": "playaudio",
|
||
|
"value": "bemvindo-digitecpf.wav"
|
||
|
},
|
||
|
{
|
||
|
"id": "3",
|
||
|
"idmaster": "2",
|
||
|
"cmd": "custom",
|
||
|
"variation": "1",
|
||
|
"defaultvalues": {
|
||
|
"cmd": "dialplan.setvar",
|
||
|
"varname": "CPF"
|
||
|
}
|
||
|
}
|
||
|
|
||
|
--------------------------------------------------------------------------------------------------------------------------------
|
||
|
|
||
|
digitinvalid
|
||
|
|
||
|
Encaminha a ligação para o CMD seguinte, caso tenha sido digitado uma opção "inválida" de digito na URA.
|
||
|
|
||
|
{
|
||
|
"id": "1",
|
||
|
"idmaster": "1",
|
||
|
"cmd": "start",
|
||
|
"value": "551138118400"
|
||
|
},
|
||
|
{
|
||
|
"id": "2",
|
||
|
"idmaster": "1",
|
||
|
"cmd": "playaudio",
|
||
|
"value": "demo-echotest.wav"
|
||
|
},
|
||
|
{
|
||
|
"id": "3",
|
||
|
"idmaster": "2",
|
||
|
"cmd": "digit",
|
||
|
"value": "1"
|
||
|
},
|
||
|
{
|
||
|
"id": "4",
|
||
|
"idmaster": "3",
|
||
|
"cmd": "dialgroupextension",
|
||
|
"value": "7"
|
||
|
},
|
||
|
{
|
||
|
"id": "5",
|
||
|
"idmaster": "2",
|
||
|
"cmd": "digitinvalid",
|
||
|
"value": ""
|
||
|
},
|
||
|
{
|
||
|
"id": "6",
|
||
|
"idmaster": "5",
|
||
|
"cmd": "playaudio",
|
||
|
"value": "ddigito-invalido.wav"
|
||
|
}
|
||
|
|
||
|
--------------------------------------------------------------------------------------------------------------------------------
|
||
|
|
||
|
dialextension
|
||
|
|
||
|
Toca o ramal informado no atributo value.
|
||
|
|
||
|
{
|
||
|
"id": "1",
|
||
|
"idmaster": "1",
|
||
|
"cmd": "start",
|
||
|
"value": "551138118400"
|
||
|
},
|
||
|
{
|
||
|
"id": "2",
|
||
|
"idmaster": "1",
|
||
|
"cmd": "dialextension",
|
||
|
"value": "2601"
|
||
|
}
|
||
|
|
||
|
--------------------------------------------------------------------------------------------------------------------------------
|
||
|
|
||
|
cnpj.check
|
||
|
|
||
|
Verifica se o CNPJ digitado é válido.
|
||
|
No atributo value é passao o número máximo de tentativas (zero ou vazio para infinitas)
|
||
|
Caso seja válido. A ligação é encaminhado para o CMD cnpj.true
|
||
|
Caso não seja válido. A ligação é encaminhado para o CMD cnpj.false
|
||
|
Caso atinja o limite. A ligação é encaminhado para o CMD cnpj.limit
|
||
|
|
||
|
{
|
||
|
"id": "1",
|
||
|
"idmaster": "1",
|
||
|
"cmd": "start",
|
||
|
"value": "551138118400"
|
||
|
},
|
||
|
{
|
||
|
"id": "2",
|
||
|
"idmaster": "1",
|
||
|
"cmd": "playaudio",
|
||
|
"value": "demo-echotest.wav",
|
||
|
"value2": "3",
|
||
|
"value3": "11",
|
||
|
"value4": "true"
|
||
|
},
|
||
|
{
|
||
|
"id": "3",
|
||
|
"idmaster": "2",
|
||
|
"cmd": "cnpj.check",
|
||
|
"value": ""
|
||
|
},
|
||
|
{
|
||
|
"id": "4",
|
||
|
"idmaster": "3",
|
||
|
"cmd": "cnpj.true",
|
||
|
"value": ""
|
||
|
},
|
||
|
{
|
||
|
"id": "5",
|
||
|
"idmaster": "3",
|
||
|
"cmd": "cnpj.false",
|
||
|
"value": ""
|
||
|
}
|
||
|
|
||
|
--------------------------------------------------------------------------------------------------------------------------------
|
||
|
|
||
|
condtempo.check
|
||
|
|
||
|
Verifica se esta em alguma condição de tempo.
|
||
|
Caso positivo. A ligação é encaminhado para o CMD condtempo.true
|
||
|
Caso negativo. A ligação é encaminhado para o CMD condtempo.false
|
||
|
O campo value é o id da tab_periodo
|
||
|
|
||
|
{
|
||
|
"id": "1",
|
||
|
"idmaster": "1",
|
||
|
"cmd": "start",
|
||
|
"value": "551138118400"
|
||
|
},
|
||
|
{
|
||
|
"id": "2",
|
||
|
"idmaster": "1",
|
||
|
"cmd": "condtempo.check",
|
||
|
"value": "12"
|
||
|
},
|
||
|
{
|
||
|
"id": "3",
|
||
|
"idmaster": "2",
|
||
|
"cmd": "condtempo.true",
|
||
|
"value": ""
|
||
|
},
|
||
|
{
|
||
|
"id": "4",
|
||
|
"idmaster": "2",
|
||
|
"cmd": "condtempo.false",
|
||
|
"value": ""
|
||
|
}
|
||
|
|
||
|
--------------------------------------------------------------------------------------------------------------------------------
|
||
|
|
||
|
cpf.check
|
||
|
|
||
|
Verifica se o CPF digitado é válido.
|
||
|
No atributo value é passao o número máximo de tentativas (zero ou vazio para infinitas)
|
||
|
Caso seja válido. A ligação é encaminhado para o CMD cpf.true
|
||
|
Caso não seja válido. A ligação é encaminhado para o CMD cpf.false
|
||
|
Caso atinja o limite. A ligação é encaminhado para o CMD cnpj.limit
|
||
|
|
||
|
[
|
||
|
{
|
||
|
"id": "1",
|
||
|
"idmaster": "1",
|
||
|
"cmd": "start",
|
||
|
"value": "2000"
|
||
|
},
|
||
|
{
|
||
|
"id": "2",
|
||
|
"idmaster": "1",
|
||
|
"cmd": "playaudio",
|
||
|
"value": "demo-echotest.wav",
|
||
|
"value2": "3",
|
||
|
"value3": "11",
|
||
|
"value4": "false"
|
||
|
},
|
||
|
{
|
||
|
"id": "3",
|
||
|
"idmaster": "2",
|
||
|
"cmd": "cpf.check",
|
||
|
"value": "2"
|
||
|
},
|
||
|
{
|
||
|
"id": "4",
|
||
|
"idmaster": "3",
|
||
|
"cmd": "cpf.true",
|
||
|
"value": ""
|
||
|
},
|
||
|
{
|
||
|
"id": "5",
|
||
|
"idmaster": "3",
|
||
|
"idnext": "2",
|
||
|
"cmd": "cpf.false",
|
||
|
"value": ""
|
||
|
},
|
||
|
{
|
||
|
"id": "6",
|
||
|
"idmaster": "3",
|
||
|
"cmd": "cpf.limit",
|
||
|
"value": ""
|
||
|
},
|
||
|
{
|
||
|
"id": "7",
|
||
|
"idmaster": "6",
|
||
|
"cmd": "playaudio",
|
||
|
"value": "vm-goodbye.wav",
|
||
|
"value2": "2",
|
||
|
"value3": "1",
|
||
|
"value4": "false"
|
||
|
},
|
||
|
{
|
||
|
"id": "8",
|
||
|
"idmaster": "4",
|
||
|
"cmd": "playaudio",
|
||
|
"value": "vm-intro.wav",
|
||
|
"value2": "2",
|
||
|
"value3": "1",
|
||
|
"value4": "false"
|
||
|
}
|
||
|
]
|
||
|
|
||
|
--------------------------------------------------------------------------------------------------------------------------------
|
||
|
|
||
|
expediente.check
|
||
|
|
||
|
Verifica se esta em horário de expediente. Não precisa passar nenhuma informação nos atributos value.
|
||
|
Caso estaja em horário de expediente. A ligação é encaminhado para o CMD expediente.true
|
||
|
Caso não estaja em horário de expediente. A ligação é encaminhado para o CMD expediente.false
|
||
|
|
||
|
{
|
||
|
"id": "1",
|
||
|
"idmaster": "1",
|
||
|
"cmd": "start",
|
||
|
"value": "551138118400"
|
||
|
},
|
||
|
{
|
||
|
"id": "2",
|
||
|
"idmaster": "1",
|
||
|
"cmd": "expediente.check",
|
||
|
"value": ""
|
||
|
},
|
||
|
{
|
||
|
"id": "3",
|
||
|
"idmaster": "2",
|
||
|
"cmd": "expediente.true",
|
||
|
"value": ""
|
||
|
},
|
||
|
{
|
||
|
"id": "4",
|
||
|
"idmaster": "2",
|
||
|
"cmd": "expediente.false",
|
||
|
"value": ""
|
||
|
}
|
||
|
|
||
|
--------------------------------------------------------------------------------------------------------------------------------
|
||
|
|
||
|
feriado.check
|
||
|
|
||
|
Verifica se é feriado cadastrado.
|
||
|
Não precisa passar nenhuma informação nos atributos value.
|
||
|
Caso seja feriado cadastrado. A ligação é encaminhado para o CMD feriado.true
|
||
|
Caso não seja feriado cadastrado. A ligação é encaminhado para o CMD feriado.false
|
||
|
|
||
|
{
|
||
|
"id": "1",
|
||
|
"idmaster": "1",
|
||
|
"cmd": "start",
|
||
|
"value": "551138118400"
|
||
|
},
|
||
|
{
|
||
|
"id": "2",
|
||
|
"idmaster": "1",
|
||
|
"cmd": "feriado.check",
|
||
|
"value": ""
|
||
|
},
|
||
|
{
|
||
|
"id": "3",
|
||
|
"idmaster": "2",
|
||
|
"cmd": "feriado.true",
|
||
|
"value": ""
|
||
|
},
|
||
|
{
|
||
|
"id": "4",
|
||
|
"idmaster": "2",
|
||
|
"cmd": "expediente.false",
|
||
|
"value": ""
|
||
|
}
|
||
|
|
||
|
--------------------------------------------------------------------------------------------------------------------------------
|
||
|
|
||
|
ivr.redirect
|
||
|
|
||
|
Encaminha a ligação para outro IVR (passado no atributo value).
|
||
|
|
||
|
{
|
||
|
"id": "1",
|
||
|
"idmaster": "1",
|
||
|
"cmd": "start",
|
||
|
"value": "551138118400"
|
||
|
},
|
||
|
{
|
||
|
"id": "2",
|
||
|
"idmaster": "1",
|
||
|
"cmd": "ivr.redirect",
|
||
|
"value": "080012344321"
|
||
|
}
|
||
|
|
||
|
--------------------------------------------------------------------------------------------------------------------------------
|
||
|
|
||
|
pesqsat
|
||
|
|
||
|
Executa o audio da pesquisa de satisfação e salva a nota digitada no id da pesquisa de satisfação passada no atributo value
|
||
|
|
||
|
{
|
||
|
"id": "1",
|
||
|
"idmaster": "1",
|
||
|
"cmd": "start",
|
||
|
"value": "551138118400"
|
||
|
},
|
||
|
{
|
||
|
"id": "2",
|
||
|
"idmaster": "1",
|
||
|
"cmd": "playaudio",
|
||
|
"value": "pesquisa.wav"
|
||
|
},
|
||
|
{
|
||
|
"id": "3",
|
||
|
"idmaster": "2",
|
||
|
"cmd": "pesqsat",
|
||
|
"value": "1"
|
||
|
},
|
||
|
|
||
|
--------------------------------------------------------------------------------------------------------------------------------
|
||
|
|
||
|
playaudio
|
||
|
|
||
|
Toca um arquivo de audio informando o arquivo no atributo value.
|
||
|
Atributo value2 => Timeout em segundos
|
||
|
Atributo value3 => Máximo de digitos esperado
|
||
|
Atributo value4 => Pronuncia os numeros digitados se passado o valor: true
|
||
|
|
||
|
{
|
||
|
"id": "1",
|
||
|
"idmaster": "1",
|
||
|
"cmd": "start",
|
||
|
"value": "551138118400"
|
||
|
},
|
||
|
{
|
||
|
"id": "2",
|
||
|
"idmaster": "1",
|
||
|
"cmd": "playaudio",
|
||
|
"value": "demo-echotest.wav",
|
||
|
"value2": "3",
|
||
|
"value3": "11",
|
||
|
"value4": "true"
|
||
|
}
|
||
|
|
||
|
--------------------------------------------------------------------------------------------------------------------------------
|
||
|
|
||
|
playaudiotext
|
||
|
|
||
|
Toca um audio a partir do texto passado no atributo value.
|
||
|
Atributo value2 => Timeout em segundos
|
||
|
Atributo value3 => Máximo de digitos esperado
|
||
|
Atributo value4 => Pronuncia os numeros digitados se passado o valor: true
|
||
|
|
||
|
{
|
||
|
"id": "1",
|
||
|
"idmaster": "1",
|
||
|
"cmd": "start",
|
||
|
"value": "551138118400"
|
||
|
},
|
||
|
{
|
||
|
"id": "2",
|
||
|
"idmaster": "1",
|
||
|
"cmd": "playaudiotext",
|
||
|
"value": "Testando 123"
|
||
|
"value2": "3",
|
||
|
"value3": "11",
|
||
|
"value4": "true"
|
||
|
}
|
||
|
|
||
|
--------------------------------------------------------------------------------------------------------------------------------
|
||
|
|
||
|
queue
|
||
|
|
||
|
Executa uma fila de antendimento. O id da fila é passado no atributo value.
|
||
|
|
||
|
{
|
||
|
"id": "1",
|
||
|
"idmaster": "1",
|
||
|
"cmd": "start",
|
||
|
"value": "551138118400"
|
||
|
},
|
||
|
{
|
||
|
"id": "2",
|
||
|
"idmaster": "1",
|
||
|
"cmd": "queue",
|
||
|
"value": "4"
|
||
|
}
|
||
|
|
||
|
--------------------------------------------------------------------------------------------------------------------------------
|
||
|
|
||
|
queue.logadd
|
||
|
|
||
|
Adiciona registro no queuelog.
|
||
|
value é o id da fila de atendimento
|
||
|
value2 pode ser IVRSTART ou IVRAPPEND
|
||
|
value3 é o texto digitado no IVR
|
||
|
|
||
|
{
|
||
|
"id": "1",
|
||
|
"idmaster": "1",
|
||
|
"cmd": "start",
|
||
|
"value": "551138118400"
|
||
|
},
|
||
|
{
|
||
|
"id": "2",
|
||
|
"idmaster": "1",
|
||
|
"cmd": "queue.logadd",
|
||
|
"value": "3",
|
||
|
"value2": "IVRSTART",
|
||
|
"value3": "AGUARDOU"
|
||
|
}
|
||
|
|
||
|
--------------------------------------------------------------------------------------------------------------------------------
|
||
|
|
||
|
record
|
||
|
|
||
|
Inicia a gravação da ligação. Não precisa passar nenhuma informação nos atributos value.
|
||
|
|
||
|
{
|
||
|
"id": "1",
|
||
|
"idmaster": "1",
|
||
|
"cmd": "start",
|
||
|
"value": "551138118400"
|
||
|
},
|
||
|
{
|
||
|
"id": "2",
|
||
|
"idmaster": "1",
|
||
|
"cmd": "record",
|
||
|
"value": ""
|
||
|
}
|
||
|
|
||
|
--------------------------------------------------------------------------------------------------------------------------------
|
||
|
|
||
|
timeout
|
||
|
|
||
|
Executa a partir de um evento "timeout" do CMD anterior ou em paralelo (ex.: CMD "digit"). Encaminhando a ligação para o CMD seguinte.
|
||
|
|
||
|
{
|
||
|
"id": "1",
|
||
|
"idmaster": "1",
|
||
|
"cmd": "start",
|
||
|
"value": "551138118400"
|
||
|
},
|
||
|
{
|
||
|
"id": "2",
|
||
|
"idmaster": "1",
|
||
|
"cmd": "playaudio",
|
||
|
"value": "demo-echotest.wav"
|
||
|
},
|
||
|
{
|
||
|
"id": "3",
|
||
|
"idmaster": "2",
|
||
|
"cmd": "digit",
|
||
|
"value": "1"
|
||
|
},
|
||
|
{
|
||
|
"id": "4",
|
||
|
"idmaster": "3",
|
||
|
"cmd": "dialgroupextension",
|
||
|
"value": "7"
|
||
|
},
|
||
|
{
|
||
|
"id": "5",
|
||
|
"idmaster": "2",
|
||
|
"cmd": "timeout",
|
||
|
"value": ""
|
||
|
},
|
||
|
{
|
||
|
"id": "6",
|
||
|
"idmaster": "5",
|
||
|
"cmd": "dialextension",
|
||
|
"value": "2601"
|
||
|
}
|
||
|
|
||
|
--------------------------------------------------------------------------------------------------------------------------------
|
||
|
|
||
|
whitelist.check
|
||
|
|
||
|
Verifica se o callerid esta na whitelist.
|
||
|
Caso esteja na lista, a ligação é encaminhado para o CMD whitelist.true
|
||
|
Caso não esteja na lista, a ligação é encaminhado para o CMD whitelist.false
|
||
|
|
||
|
[
|
||
|
{
|
||
|
"id": "1",
|
||
|
"idmaster": "1",
|
||
|
"cmd": "start",
|
||
|
"value": "2000"
|
||
|
},
|
||
|
{
|
||
|
"id": "2",
|
||
|
"idmaster": "1",
|
||
|
"cmd": "whitelist.check",
|
||
|
"value": ""
|
||
|
},
|
||
|
{
|
||
|
"id": "3",
|
||
|
"idmaster": "2",
|
||
|
"cmd": "whitelist.true",
|
||
|
"value": ""
|
||
|
},
|
||
|
{
|
||
|
"id": "4",
|
||
|
"idmaster": "3",
|
||
|
"cmd": "playaudio",
|
||
|
"value": "demo-echotest.wav",
|
||
|
"value2": "2",
|
||
|
"value3": "1",
|
||
|
"value4": "false"
|
||
|
},
|
||
|
{
|
||
|
"id": "5",
|
||
|
"idmaster": "2",
|
||
|
"cmd": "whitelist.false",
|
||
|
"value": ""
|
||
|
},
|
||
|
{
|
||
|
"id": "6",
|
||
|
"idmaster": "5",
|
||
|
"cmd": "playaudio",
|
||
|
"value": "vm-goodbye.wav",
|
||
|
"value2": "2",
|
||
|
"value3": "1",
|
||
|
"value4": "false"
|
||
|
}
|
||
|
]
|
||
|
|
||
|
--------------------------------------------------------------------------------------------------------------------------------
|
||
|
CMD que conecta com outro CMD
|
||
|
--------------------------------------------------------------------------------------------------------------------------------
|
||
|
|
||
|
Informe o "idnext" para após executar o comando, o fluxo seguir para o próximo item que esta no "idnext"
|
||
|
Abaixo, exemplo de loop infinito tocando o audio.
|
||
|
|
||
|
{
|
||
|
"id": "1",
|
||
|
"idmaster": "1",
|
||
|
"cmd": "start",
|
||
|
"value": "551138118400"
|
||
|
},
|
||
|
{
|
||
|
"id": "2",
|
||
|
"idmaster": "1",
|
||
|
"cmd": "playaudio",
|
||
|
"value": "demo-echotest.wav"
|
||
|
},
|
||
|
{
|
||
|
"id": "3",
|
||
|
"idmaster": "2",
|
||
|
"idnext": "2",
|
||
|
"cmd": "timeout",
|
||
|
"value": ""
|
||
|
}
|
||
|
|
||
|
--------------------------------------------------------------------------------------------------------------------------------
|
||
|
Regras de negócio
|
||
|
--------------------------------------------------------------------------------------------------------------------------------
|
||
|
|
||
|
Conexões CMD "master" => "child" permitidas
|
||
|
|
||
|
start => callerid.change
|
||
|
start => dialgroupextension
|
||
|
start => dialextention
|
||
|
start => cnpj.check
|
||
|
start => cpf.check
|
||
|
start => expediente.check
|
||
|
start => feriado.check
|
||
|
start => playaudio
|
||
|
start => playaudiotext
|
||
|
start => queue
|
||
|
start => record
|
||
|
|
||
|
callerid.change => dialgroupextension
|
||
|
callerid.change => dialextention
|
||
|
callerid.change => cnpj.check
|
||
|
callerid.change => cpf.check
|
||
|
callerid.change => expediente.check
|
||
|
callerid.change => feriado.check
|
||
|
callerid.change => playaudio
|
||
|
callerid.change => playaudiotext
|
||
|
callerid.change => queue
|
||
|
callerid.change => record
|
||
|
|
||
|
dialgroupextension => timeout
|
||
|
|
||
|
dialextension => timeout
|
||
|
|
||
|
digit => callerid.change
|
||
|
digit => dialgroupextension
|
||
|
digit => dialextention
|
||
|
digit => cnpj.check
|
||
|
digit => cpf.check
|
||
|
digit => expediente.check
|
||
|
digit => feriado.check
|
||
|
digit => playaudio
|
||
|
digit => playaudiotext
|
||
|
digit => queue
|
||
|
digit => record
|
||
|
|
||
|
digitinvalid => callerid.change
|
||
|
digitinvalid => dialgroupextension
|
||
|
digitinvalid => dialextention
|
||
|
digitinvalid => cnpj.check
|
||
|
digitinvalid => cpf.check
|
||
|
digitinvalid => expediente.check
|
||
|
digitinvalid => feriado.check
|
||
|
digitinvalid => playaudio
|
||
|
digitinvalid => playaudiotext
|
||
|
digitinvalid => queue
|
||
|
digitinvalid => record
|
||
|
|
||
|
blacklist.check => blacklist.false
|
||
|
blacklist.check => blacklist.true
|
||
|
|
||
|
blacklist.false => callerid.change
|
||
|
blacklist.false => dialgroupextension
|
||
|
blacklist.false => dialextension
|
||
|
blacklist.false => expediente.check
|
||
|
blacklist.false => feriado.check
|
||
|
blacklist.false => playaudio
|
||
|
blacklist.false => playaudiotext
|
||
|
blacklist.false => queue
|
||
|
blacklist.false => record
|
||
|
|
||
|
blacklist.true => callerid.change
|
||
|
blacklist.true => dialgroupextension
|
||
|
blacklist.true => dialextension
|
||
|
blacklist.true => feriado.check
|
||
|
blacklist.true => expediente.check
|
||
|
blacklist.true => playaudio
|
||
|
blacklist.true => playaudiotext
|
||
|
blacklist.true => queue
|
||
|
blacklist.true => record
|
||
|
|
||
|
cnpj.check => cnpj.false
|
||
|
cnpj.check => cnpj.true
|
||
|
cnpj.check => cnpj.limit
|
||
|
|
||
|
cnpj.false => callerid.change
|
||
|
cnpj.false => dialgroupextension
|
||
|
cnpj.false => dialextension
|
||
|
cnpj.false => expediente.check
|
||
|
cnpj.false => feriado.check
|
||
|
cnpj.false => playaudio
|
||
|
cnpj.false => playaudiotext
|
||
|
cnpj.false => queue
|
||
|
cnpj.false => record
|
||
|
|
||
|
cnpj.true => callerid.change
|
||
|
cnpj.true => dialgroupextension
|
||
|
cnpj.true => dialextension
|
||
|
cnpj.true => feriado.check
|
||
|
cnpj.true => expediente.check
|
||
|
cnpj.true => playaudio
|
||
|
cnpj.true => playaudiotext
|
||
|
cnpj.true => queue
|
||
|
cnpj.true => record
|
||
|
|
||
|
cnpj.limit => callerid.change
|
||
|
cnpj.limit => dialgroupextension
|
||
|
cnpj.limit => dialextension
|
||
|
cnpj.limit => feriado.check
|
||
|
cnpj.limit => expediente.check
|
||
|
cnpj.limit => playaudio
|
||
|
cnpj.limit => playaudiotext
|
||
|
cnpj.limit => queue
|
||
|
cnpj.limit => record
|
||
|
|
||
|
cpf.check => cpf.false
|
||
|
cpf.check => cpf.true
|
||
|
cpf.check => cpf.limit
|
||
|
|
||
|
cpf.false => callerid.change
|
||
|
cpf.false => dialgroupextension
|
||
|
cpf.false => dialextension
|
||
|
cpf.false => expediente.check
|
||
|
cpf.false => feriado.check
|
||
|
cpf.false => playaudio
|
||
|
cpf.false => playaudiotext
|
||
|
cpf.false => queue
|
||
|
cpf.false => record
|
||
|
|
||
|
cpf.true => callerid.change
|
||
|
cpf.true => dialgroupextension
|
||
|
cpf.true => dialextension
|
||
|
cpf.true => feriado.check
|
||
|
cpf.true => expediente.check
|
||
|
cpf.true => playaudio
|
||
|
cpf.true => playaudiotext
|
||
|
cpf.true => queue
|
||
|
cpf.true => record
|
||
|
|
||
|
cpf.limit => callerid.change
|
||
|
cpf.limit => dialgroupextension
|
||
|
cpf.limit => dialextension
|
||
|
cpf.limit => feriado.check
|
||
|
cpf.limit => expediente.check
|
||
|
cpf.limit => playaudio
|
||
|
cpf.limit => playaudiotext
|
||
|
cpf.limit => queue
|
||
|
cpf.limit => record
|
||
|
|
||
|
expediente.check => expediente.false
|
||
|
expediente.check => expediente.true
|
||
|
|
||
|
expediente.false => callerid.change
|
||
|
expediente.false => dialgroupextension
|
||
|
expediente.false => dialextention
|
||
|
expediente.false => feriado.check
|
||
|
expediente.false => playaudio
|
||
|
expediente.false => playaudiotext
|
||
|
expediente.false => queue
|
||
|
expediente.false => record
|
||
|
|
||
|
expediente.true => callerid.change
|
||
|
expediente.true => dialgroupextension
|
||
|
expediente.true => dialextention
|
||
|
expediente.true => feriado.check
|
||
|
expediente.true => playaudio
|
||
|
expediente.true => playaudiotext
|
||
|
expediente.true => queue
|
||
|
expediente.true => record
|
||
|
|
||
|
feriado.check => feriado.false
|
||
|
feriado.check => feriado.true
|
||
|
|
||
|
feriado.false => callerid.change
|
||
|
feriado.false => dialgroupextension
|
||
|
feriado.false => dialextention
|
||
|
feriado.false => expediente.check
|
||
|
feriado.false => playaudio
|
||
|
feriado.false => playaudiotext
|
||
|
feriado.false => queue
|
||
|
feriado.false => record
|
||
|
|
||
|
feriado.true => callerid.change
|
||
|
feriado.true => dialgroupextension
|
||
|
feriado.true => dialextention
|
||
|
feriado.true => expediente.check
|
||
|
feriado.true => playaudio
|
||
|
feriado.true => playaudiotext
|
||
|
feriado.true => queue
|
||
|
feriado.true => record
|
||
|
|
||
|
playaudio => callerid.change
|
||
|
playaudio => dialgroupextension
|
||
|
playaudio => dialextention
|
||
|
playaudio => digit
|
||
|
playaudio => digitinvalid
|
||
|
playaudio => cnpj.check
|
||
|
playaudio => cpf.check
|
||
|
playaudio => expediente.check
|
||
|
playaudio => feriado.check
|
||
|
playaudio => playaudio
|
||
|
playaudio => playaudiotext
|
||
|
playaudio => queue
|
||
|
playaudio => record
|
||
|
|
||
|
playaudiotext => callerid.change
|
||
|
playaudiotext => dialgroupextension
|
||
|
playaudiotext => dialextention
|
||
|
playaudiotext => digit
|
||
|
playaudiotext => digitinvalid
|
||
|
playaudiotext => cnpj.check
|
||
|
playaudiotext => cpf.check
|
||
|
playaudiotext => expediente.check
|
||
|
playaudiotext => feriado.check
|
||
|
playaudiotext => playaudio
|
||
|
playaudiotext => playaudiotext
|
||
|
playaudiotext => queue
|
||
|
playaudiotext => record
|
||
|
|
||
|
record => callerid.change
|
||
|
record => dialgroupextension
|
||
|
record => dialextention
|
||
|
record => expediente.check
|
||
|
record => feriado.check
|
||
|
record => playaudio
|
||
|
record => playaudiotext
|
||
|
record => queue
|
||
|
|
||
|
timeout => callerid.change
|
||
|
timeout => dialgroupextension
|
||
|
timeout => dialextention
|
||
|
timeout => expediente.check
|
||
|
timeout => feriado.check
|
||
|
timeout => playaudio
|
||
|
timeout => playaudiotext
|
||
|
timeout => queue
|
||
|
timeout => record
|
||
|
|
||
|
whitelist.check => whitelist.false
|
||
|
whitelist.check => whitelist.true
|
||
|
|
||
|
whitelist.false => callerid.change
|
||
|
whitelist.false => dialgroupextension
|
||
|
whitelist.false => dialextension
|
||
|
whitelist.false => expediente.check
|
||
|
whitelist.false => feriado.check
|
||
|
whitelist.false => playaudio
|
||
|
whitelist.false => playaudiotext
|
||
|
whitelist.false => queue
|
||
|
whitelist.false => record
|
||
|
|
||
|
whitelist.true => callerid.change
|
||
|
whitelist.true => dialgroupextension
|
||
|
whitelist.true => dialextension
|
||
|
whitelist.true => feriado.check
|
||
|
whitelist.true => expediente.check
|
||
|
whitelist.true => playaudio
|
||
|
whitelist.true => playaudiotext
|
||
|
whitelist.true => queue
|
||
|
whitelist.true => record
|
||
|
|
||
|
--------------------------------------------------------------------------------------------------------------------------------
|
||
|
|
||
|
Conexões CMD permitidas em paralelo
|
||
|
|
||
|
blacklist.true => blacklist.false
|
||
|
blacklist.false => blacklist.true
|
||
|
|
||
|
cnpj.true => cnpj.false
|
||
|
cnpj.true => cnpj.limit
|
||
|
cnpj.false => cnpj.limit
|
||
|
cnpj.false => cnpj.true
|
||
|
cnpj.limit => cnpj.false
|
||
|
cnpj.limit => cnpj.true
|
||
|
|
||
|
cpf.true => cpf.false
|
||
|
cpf.true => cpf.limit
|
||
|
cpf.false => cpf.limit
|
||
|
cpf.false => cpf.true
|
||
|
cpf.limit => cpf.false
|
||
|
cpf.limit => cpf.true
|
||
|
|
||
|
digit <=> digit
|
||
|
digit <=> digitinvalid
|
||
|
digit <=> timeout
|
||
|
|
||
|
expediente.true <=> expediente.false
|
||
|
expediente.false <=> expediente.true
|
||
|
|
||
|
feriado.true <=> feriado.false
|
||
|
feriado.false <=> feriado.true
|
||
|
|
||
|
timeout <=> digit
|
||
|
timeout <=> digitinvalid
|
||
|
|
||
|
whitelist.true <=> whitelist.false
|
||
|
whitelist.false <=> whitelist.true
|
||
|
|
||
|
--------------------------------------------------------------------------------------------------------------------------------
|