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
  1. 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

  1. 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=#)
    
  2. 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=#)
    
  3. 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>