Servidor CPqD MRCP com DTMF¶
O MRCP versão 2.4.2 ou superior suporta reconhecimento DTMF. O reconhecimento do DTMF é feito pelo plugin MRCP do ASR, não tem ligação com o ASR Server em si. O reconhecedor DTMF do MRCP foi inserido com a proposta de fazer reconhecimentos híbrido: FALA ou DTMF na mesma requisição.
Asterisk¶
Para plataforma Asterisk, é opcional usar o reconhecedor nativo de DTMF do Asterisk ou usar o do CPqD MRCP.
Como utilizar o DTMF do CPqD MRCP¶
Para usar o reconhecedor DTMF do MRCP, é necessário inserir no campo de gramática (corpo da mensagem RECOGNIZE), a URI
builtin:dtmf/digits
O exemplo abaixo demonstra como usar a aplicação SynthAndRecog() com uma síntese de voz em texto plano e duas gramáticas builtin (code e DTMF):
exten => s,1,Answer exten => s,n,SynthAndRecog("Digite ou fale o seu CPF.", "builtin:grammar/code,builtin:dtmf/digits", t=5000) exten => s,n,Verbose(1, ${RECOG_STATUS}, ${RECOG_COMPLETION_CAUSE}, ${RECOG_RESULT}) exten => s,n,Hangup
Nota
A gramática «dtmf/digits» é nativa do plugin MRCP ASR e não é necessário criá-la no Servidor ASR.
São permitidos dois parâmetros no reconhecedor DTMF:
- dit: DTMF interdigit timeout (msec)
- dttc: DTMF terminate characters
Para especificar o numero máximo de digitos, utiliza-se a sintaxe: ?length=N.
Mais exemplos¶
Barge-in desabilitado
exten => s,n,SynthAndRecog("Digite ou fale o seu CPF.", "builtin:grammar/code,builtin:dtmf/digits?length=11", t=5000&b=0&sit=1&nit=3000&dit=3500&dttc=#)
Barge-in habilitado
exten => s,n,SynthAndRecog("Digite ou fale o seu CPF.", "builtin:grammar/code,builtin:dtmf/digits?length=11", t=5000&b=1&sit=2&nit=3000&dit=3500&dttc=#)
Gamática de exemplo do servidor ASR e Barge-in habilitado
exten => s,n,SynthAndRecog("Digite ou fale sua idade.", "/number,builtin:dtmf/digits?length=2', t=5000&b=1&sit=2&nit=3000&dit=3500&dttc=#)
Para mais detalhes, veja o manual: <https://www.unimrcp.org/manuals/html/AsteriskUsageManual.html>