Voximal: Unable to connect to UniMRCP compiled with custom ASR plugin

437 views Asked by At

I have written a custom UniMRCP ASR plugin and wanted it to work with Voximal on Asterisk.

I followed the doc here: https://wiki.voximal.com/doku.php?id=asrproviders:unimrcp. The VXML works fine but, when I try to record in VXML, I can't see any stream being sent to the UniMRCP server. My UniMRCP server and Asterisk are both on the same machine. I've tried the Voxibot installation installation on EC2 too but encountered the same issue

Below are some of the configurations in Asterisk:

mrcp.conf

[general]
; Default ASR and TTS profiles.
default-asr-profile = uni2
default-tts-profile = speech-nuance5-mrcp2

log-level = DEBUG,NOTICE,INFO
max-connection-count = 100
offer-new-connection = 1

; rx-buffer-size = 1024
; tx-buffer-size = 1024
; request-timeout = 5000
; speech-channel-timeout = 30000

[uni2]
version = 2

; SIP settings
server-ip = 172.17.0.2
server-port = 8060

; SIP user agent
;client-ip = 172.17.0.2
;client-port = 25097

sip-transport = udp

; RTP factory
rtp-ip = 172.17.0.2
rtp-port-min = 4000
rtp-port-max = 5000

; Jitter buffer settings
playout-delay = 50
max-playout-delay = 200

res-speech-unimrcp.conf

[general]
; UniMRCP named profile. Options are:
unimrcp-profile = uni2      ; UniMRCP MRCPv2 Server

log-level = DEBUG,INFO,NOTICE

; Preloaded grammars
[grammars]
;grammar-name = path-to-grammar-file

[mrcpv2-properties]
Recognition-Timeout = 20000
No-Input-Timeout = 15000

[mrcpv1-properties]
Recognition-Timeout = 20000
No-Input-Timeout = 15000

voximal.conf

[general]
autoanswer=yes
videosilence=
audiosilence=
; tried with speechprovider=unimrcp too
speechprovider=unimrcp:uni2
speechscore=50

[control]
forward=#
reverse=*
stop=123456789
pause=
restart=0
skipms=5000

;Optional local license
[license]
;max=1
;key=trial
tts=yes
speech=auto

[prompt]
uri=http://ttsf.voximal.net/tts/pico/tts.php
method=post
format=wav
maxage=-1


[recognize]
sendproperties=0

[account1]
number=8965
name=helloworld
url=file:///var/lib/voximal/record.vxml
speech=automatic

record.vxml

<!-- for testing recording -->
<?xml version="1.0" encoding="UTF-8"?>
<vxml version="2.0" xmlns="http://www.w3.org/2001/vxml" xml:lang="en-US">
    <form>
        <block>
            <prompt>
                <audio src="/var/lib/asterisk/sounds/speech_start.wav"/>
            </prompt>
        </block>
        <record  name="msg" beep="true" maxtime="10s" finalsilence="4000ms" dtmfterm="true" type="audio/x-wav">
            <prompt timeout="5s">
                <audio src="/var/lib/asterisk/sounds/speech_start.wav"/>
            </prompt>
        </record>
    </form>
</vxml>
1

There are 1 answers

0
Borja SIXTO On

I don't see the link between the ASR and the record feature (used to record the user's voice without . If you want to record the audio flow sent to the ASR, you can use the property "recordutterance" (true/false), you will have a shadow variable field_name$.recording, field_name$.recordingsize, field_name$.recordingduration.