unispeech / unimrcp

Open source cross-platform implementation of MRCP protocol
http://www.unimrcp.org
Apache License 2.0
364 stars 161 forks source link

Asterisk restart after MRCPRecog with lumenvox server #172

Closed achaloyan closed 9 years ago

achaloyan commented 9 years ago

Originally reported on Google Code with ID 173

What steps will reproduce the problem?
1.Install latest uni-ast-package with all components, and lumenvox server with sppech
recognition license
2.Configure basic lumenvox conection (http://www.lumenvox.com/knowledgebase/index.php?/article/AA-01129/0)
3. Test asterisk with a simple dialplan (http://www.lumenvox.com/knowledgebase/index.php?/article/AA-01130/0)
4. Asterisk restart and it seems to send a TEARDOWN RTSP message at the beginning:
-- Executing [s@lumenvox-asr:3] MRCPRecog("SIP/401-00000000", "builtin:grammar/boolean")
in new stack
[Jul 28 16:01:40] NOTICE[21538][C-00000000]: app_mrcprecog.c:1152 app_recog_exec: DTMF
enable: 0
[Jul 28 16:01:40] DEBUG[21538][C-00000000]: audio_queue.c:253 audio_queue_create: (ASR-0)
audio queue created
[Jul 28 16:01:40] DEBUG[21538][C-00000000]: speech_channel.c:239 speech_channel_create:
Created speech channel: Name=ASR-0, Type=RECOGNIZER, Codec=PCMU, Rate=8000
[Jul 28 16:01:40] NOTICE[21538][C-00000000]: app_unimrcp.c:121 unimrcp_log: Create
MRCP Handle 0x7f0f30011348 [speech-lumenvox-mrcp1]
[Jul 28 16:01:40] DEBUG[21538][C-00000000]: app_unimrcp.c:125 unimrcp_log: Create Channel
ASR-0 <new>
[Jul 28 16:01:40] DEBUG[21538][C-00000000]: app_unimrcp.c:125 unimrcp_log: Signal Message
to [MRCP Client] [0x7f0f300019f0;4;0]
[Jul 28 16:01:40] DEBUG[21521]: app_unimrcp.c:125 unimrcp_log: Process Message [MRCP
Client] [0x7f0f300019f0;4;0]
[Jul 28 16:01:40] DEBUG[21521]: app_unimrcp.c:125 unimrcp_log: Receive App Request
ASR-0 <new> [2]
[Jul 28 16:01:40] NOTICE[21521]: app_unimrcp.c:121 unimrcp_log: Create RTSP Handle
0x30d9808
[Jul 28 16:01:40] DEBUG[21521]: app_unimrcp.c:125 unimrcp_log: Add MRCP Handle ASR-0
<new>
[Jul 28 16:01:40] DEBUG[21521]: app_unimrcp.c:125 unimrcp_log: Dispatch App Request
ASR-0 <new> [2]
[Jul 28 16:01:40] DEBUG[21521]: app_unimrcp.c:125 unimrcp_log: Signal Message to [MRCPv2ConnectionAgent]
[0x30eddd0;1;0]
[Jul 28 16:01:40] NOTICE[21521]: app_unimrcp.c:121 unimrcp_log: Add Control Channel
ASR-0 <new@speechrecog>
[Jul 28 16:01:40] DEBUG[21521]: app_unimrcp.c:125 unimrcp_log: Add Media Termination
ASR-0 <new@media-tm>
[Jul 28 16:01:40] DEBUG[21521]: app_unimrcp.c:125 unimrcp_log: Add Media Termination
ASR-0 <new@rtp-tm>
[Jul 28 16:01:40] DEBUG[21521]: app_unimrcp.c:125 unimrcp_log: Signal Message to [MediaEngine]
[0x30dce60;1;0]
[Jul 28 16:01:40] DEBUG[21521]: app_unimrcp.c:125 unimrcp_log: Wait for Messages [MRCP
Client]
[Jul 28 16:01:40] DEBUG[21522]: app_unimrcp.c:125 unimrcp_log: Process Poller Wakeup
[MRCPv2ConnectionAgent]
[Jul 28 16:01:40] DEBUG[21522]: app_unimrcp.c:125 unimrcp_log: Process Message [MRCPv2ConnectionAgent]
[0x30eddd0;1;0]
[Jul 28 16:01:40] DEBUG[21522]: app_unimrcp.c:125 unimrcp_log: Signal Message to [MRCP
Client] [0x7f0eec035c10;2;0]
[Jul 28 16:01:40] DEBUG[21522]: app_unimrcp.c:125 unimrcp_log: Wait for Messages [MRCPv2ConnectionAgent]
[Jul 28 16:01:40] DEBUG[21521]: app_unimrcp.c:125 unimrcp_log: Process Message [MRCP
Client] [0x7f0eec035c10;2;0]
[Jul 28 16:01:40] DEBUG[21521]: app_unimrcp.c:125 unimrcp_log: Control Channel Added
ASR-0 <new@speechrecog>
[Jul 28 16:01:40] DEBUG[21521]: app_unimrcp.c:125 unimrcp_log: Wait for Messages [MRCP
Client]
[Jul 28 16:01:40] DEBUG[21523]: app_unimrcp.c:125 unimrcp_log: Process Message [MediaEngine]
[0x30dce60;1;0]
[Jul 28 16:01:40] DEBUG[21523]: app_unimrcp.c:125 unimrcp_log: Add Media Context ASR-0
[Jul 28 16:01:40] DEBUG[21523]: app_unimrcp.c:125 unimrcp_log: Signal Message to [MRCP
Client] [0x7f0f3c000e60;3;0]
[Jul 28 16:01:40] DEBUG[21521]: app_unimrcp.c:125 unimrcp_log: Process Message [MRCP
Client] [0x7f0f3c000e60;3;0]
[Jul 28 16:01:40] DEBUG[21521]: app_unimrcp.c:125 unimrcp_log: Media Termination Added
ASR-0 <new@media-tm>
[Jul 28 16:01:40] DEBUG[21521]: app_unimrcp.c:125 unimrcp_log: Media Termination Added
ASR-0 <new@rtp-tm>
[Jul 28 16:01:40] DEBUG[21521]: app_unimrcp.c:125 unimrcp_log: Send Offer ASR-0 <new>
[c:1 a:1 v:0] to 10.10.7.15:554
[Jul 28 16:01:40] DEBUG[21521]: app_unimrcp.c:125 unimrcp_log: Signal Message to [speech-lumenvox-mrcp1]
[0x30dee80;1;0]
[Jul 28 16:01:40] DEBUG[21521]: app_unimrcp.c:125 unimrcp_log: Wait for Messages [MRCP
Client]
[Jul 28 16:01:40] DEBUG[21524]: app_unimrcp.c:125 unimrcp_log: Process Poller Wakeup
[speech-lumenvox-mrcp1]
[Jul 28 16:01:40] DEBUG[21524]: app_unimrcp.c:125 unimrcp_log: Process Message [speech-lumenvox-mrcp1]
[0x30dee80;1;0]
[Jul 28 16:01:40] NOTICE[21524]: app_unimrcp.c:121 unimrcp_log: Established RTSP Connection
10.10.9.14:41775 <-> 10.10.7.15:554
[Jul 28 16:01:40] DEBUG[21524]: app_unimrcp.c:125 unimrcp_log: Add RTSP Handle 0x30d9808
[Jul 28 16:01:40] DEBUG[21524]: app_unimrcp.c:125 unimrcp_log: Send RTSP Stream 10.10.9.14:41775
<-> 10.10.7.15:554 [65 bytes]
TEARDOWN rtsp://10.10.7.15:554/media/(null) RTSP/1.0
CSeq: 1

[Jul 28 16:01:40] DEBUG[21524]: app_unimrcp.c:125 unimrcp_log: Push RTSP Request to
In-Progress Queue 0x30d9808 <new> CSeq:1
[Jul 28 16:01:40] DEBUG[21524]: app_unimrcp.c:125 unimrcp_log: Wait for Messages [speech-lumenvox-mrcp1]
[Jul 28 16:01:40] DEBUG[21524]: app_unimrcp.c:125 unimrcp_log: Process Signalled Descriptor
[speech-lumenvox-mrcp1]

Here asterisk restarts.

What version of the product are you using? On what operating system?
I'm using uni-ast-packege-1.2.0, and the latest lumenvox.

Please provide any additional information below.
I tested the lumenvox ASR and media server using unimrcpclient program and it works
fine, but with asterisk it doesn't work. I also tried with uni-ast v1.0.0 and v1.1.0
and the result is the same. Attach asterisk verbose and debug, and lumenvox debug.

Reported by laar78910 on 2014-07-28 21:07:26


achaloyan commented 9 years ago
version 1.1.0 works. 

Reported by flujan on 2014-08-04 14:59:05

achaloyan commented 9 years ago
As far as I can see, although an MRCPv1 profile was used with MRCPRecog(), the MRCPv2
agent was still somehow involved in session initialization, which is definitely not
the expected behavior.

[Aug  1 10:20:08] DEBUG[1795] src/apt_task.c: Signal Message to [MRCPv2ConnectionAgent]
[0x7fa5bc005fa0;1;0]

I'm not even sure whether this can be a configuration or build issue or anything else.
As the next step, can you provide additional information such as configuration and
build related details (Linux, gcc version,...).

Reported by achaloyan on 2014-08-12 01:16:04

achaloyan commented 9 years ago
I'm using Centos 6.5, kernel 2.6.32-431.20.3.el6.x86_64, I use gcc-4.4.7-4.el6.x86_64
to build uni-ast-package-1.2.0. I send you all the configs. Thank's for the response....please
tell me if you need more info

Reported by laar78910 on 2014-08-12 22:05:40


achaloyan commented 9 years ago
It looks like app_unimrcp loads MRCP version 1 profiles incorrectly (MRCP version 2
profiles are not affected).

I had made a few related changes in the client stack recently which were included in
UniMRCP-1.2.0 release. The client stack itself is not affected, both v1 and v2 profiles
work as intended. However, app_unimrcp needs to be patched.

Temporary workarounds:

1) Use MRCPv2 instead of MRCPv1
or
2) Use unimrcp-1.1.0 with the latest Asterisk modules 1.2.0
or
3) Downgrade to uni-ast-package-1.1.0 completely

Reported by achaloyan on 2014-08-14 17:32:02

achaloyan commented 9 years ago
Fixed in r2161. Thanks for bringing this up.

Reported by achaloyan on 2014-08-18 19:15:50