unispeech / asterisk-unimrcp Goto Github PK
View Code? Open in Web Editor NEWUniMRCP modules for Asterisk
Home Page: http://www.unimrcp.org/asterisk
License: GNU General Public License v2.0
UniMRCP modules for Asterisk
Home Page: http://www.unimrcp.org/asterisk
License: GNU General Public License v2.0
All the help files for Asterisk for the SynthAndRecog "${RECOG_COMPLETION_CAUSE}" has only 3 values: 000=success, 001=No Match, 002=No Input.
What is the meaning of 003? And, are there any others?
same => n,gotoif(
same => n,gotoif(
Im having crahes easy to reproduce when the Speech engine crashes or stops.
Ubuntu 16.04, Asterisk 13.16, Verbio Engine
usage example:
exten=> _123,1,Answer()
exten=> _123,2,SpeechCreate(unimrcp)
exten=> _123,3,SpeechLoadGrammar(grammar,/usr/local/unimrcp/data/grammar.xml)
exten=> _123,4,SpeechActivateGrammar(grammar)
exten=> _123,5,SpeechBackground(MYSOUND},2)
exten=> _123,6,SpeechDeactivateGrammar(grammar)
exten=> _123,7,SpeechDestroy()
When I stop the Verbio Server I get a crash of unimrcp
Attached btfull of the core dump, this is easy to reproduce having
multi prompt not supported with barge=1, MRCPRecog()
when
od=^&f=${PROMRTF_1}^${SPACEWAV}^${PROMRTF_2}&b=0
is ok, the three files can all played.
when
od=^&f=${PROMRTF_1}^${SPACEWAV}^${PROMRTF_2}&b=1
can only play PROMRTF_1, the other can not be played.
please help me, thank you
The scenario we are encountering, the Recognition fails and we do not receive a RECOG_RESULT. In this situation, UniMRCP is seeing the 005 completion cause. However, it never passes it through to us via AMI. Since we see it in other calls (RECOG_RESULT set), I suspect the logic may not be setting RECOG_COMPLETION_CAUSE in this flow. Would it be possible to modify it to give us this completion cause? That way we can pass along the failure (completion-cause) to the user without having to diagnose the Asterisk logs.
Below is the debug information from Asterisk for the failure. It shows the Recognition failed with a status of 407 and completion cause of 005. This completion cause is not being passed through to the RECOG_COMPLETION_CAUSE variable.
[11/08 10:47:27.515] DEBUG[1365] src/apt_task.c: Process Message [MRCP Client] [0x7f1c580008c0;2;3]
[11/08 10:47:27.516] DEBUG[1365] app_mrcprecog.c: (ASR-0) RECOGNIZE failed: status = 407, completion-cause = 005
[11/08 10:47:27.516] DEBUG[1365] speech_channel.c: (ASR-0) READY ==> ERROR
[11/08 10:47:27.516] DEBUG[1365] src/apt_consumer_task.c: Wait for Messages [MRCP Client]
[11/08 10:47:27.516] DEBUG[1674][C-00000000] speech_channel.c: Destroy speech channel: Name=ASR-0, Type=RECOGNIZER, Codec=PCMU, Rate=8000
[11/08 10:47:27.516] DEBUG[1674][C-00000000] src/apt_task.c: Signal Message to [MRCP Client] [0x7f1c78006640;4;0]
[11/08 10:47:27.516] DEBUG[1674][C-00000000] speech_channel.c: (ASR-0) Waiting for MRCP session to terminate
[11/08 10:47:27.516] DEBUG[1322] manager.c: Examining AMI event:
Event: VarSet^M
Privilege: dialplan,all^M
Channel: PJSIP/1002-00000000^M
ChannelState: 6^M
ChannelStateDesc: Up^M
CallerIDNum: 1002^M
CallerIDName: XYZ^M
ConnectedLineNum: ^M
ConnectedLineName: ^M
Language: en^M
AccountCode: 6^M
Context: IS^M
Exten: 2093^M
Priority: 6^M
Uniqueid: 1510159646.0^M
Linkedid: 1510159646.0^M
Variable: RECOG_SID^M
Value: 1^M
^M
[11/08 10:47:27.516] DEBUG[1365] src/apt_task.c: Process Message [MRCP Client] [0x7f1c78006640;4;0]
[11/08 10:47:27.516] DEBUG[1365] src/mrcp_client_session.c: Dispatch App Request ASR-0 <1> [1]
[11/08 10:47:27.516] DEBUG[1365] src/mrcp_client_session.c: Remove Control Channel ASR-0 <1>
[11/08 10:47:27.516] DEBUG[1365] src/apt_task.c: Signal Message to [MRCPv2ConnectionAgent] [0x1a42e30;1;0]
[11/08 10:47:27.516] DEBUG[1365] src/mrcp_client_session.c: Subtract Media Termination ASR-0 1@media-tm
[11/08 10:47:27.516] DEBUG[1365] src/mrcp_client_session.c: Subtract Media Termination ASR-0 1@rtp-tm
[11/08 10:47:27.516] DEBUG[1365] src/apt_task.c: Signal Message to [MediaEngine] [0x2f6e830;1;0]
[11/08 10:47:27.516] DEBUG[1365] src/apt_consumer_task.c: Wait for Messages [MRCP Client]
[11/08 10:47:27.516] DEBUG[1366] src/apt_poller_task.c: Process Poller Wakeup [MRCPv2ConnectionAgent]
[11/08 10:47:27.516] DEBUG[1366] src/apt_task.c: Process Message [MRCPv2ConnectionAgent] [0x1a42e30;1;0]
[11/08 10:47:27.516] DEBUG[1366] src/apt_task.c: Signal Message to [MRCP Client] [0x7f1c580008c0;2;2]
[11/08 10:47:27.516] DEBUG[1366] src/apt_poller_task.c: Wait for Messages [MRCPv2ConnectionAgent]
[11/08 10:47:27.516] DEBUG[1365] src/apt_task.c: Process Message [MRCP Client] [0x7f1c580008c0;2;2]
[11/08 10:47:27.516] DEBUG[1365] src/mrcp_client_session.c: Control Channel Removed ASR-0 1@speechrecog
[11/08 10:47:27.516] DEBUG[1365] src/apt_consumer_task.c: Wait for Messages [MRCP Client]
[11/08 10:47:27.522] DEBUG[1367] src/apt_task.c: Process Message [MediaEngine] [0x2f6e830;1;0]
[11/08 10:47:27.522] DEBUG[1367] src/mpf_bridge.c: Destroy Audio Bridge ASR-0
[11/08 10:47:27.522] DEBUG[1367] src/mpf_context.c: Remove Media Context ASR-0
[11/08 10:47:27.522] DEBUG[1367] src/apt_task.c: Signal Message to [MRCP Client] [0x1e1a270;3;0]
[11/08 10:47:27.522] DEBUG[1365] src/apt_task.c: Process Message [MRCP Client] [0x1e1a270;3;0]
[11/08 10:47:27.522] DEBUG[1365] src/mrcp_client_session.c: Media Termination Subtracted ASR-0 1@media-tm
[11/08 10:47:27.522] DEBUG[1365] src/mrcp_client_session.c: Media Termination Subtracted ASR-0 1@rtp-tm
[11/08 10:47:27.522] DEBUG[1365] src/apt_consumer_task.c: Wait for Messages [MRCP Client]
[11/08 10:47:27.618] DEBUG[1368] src/apt_task.c: Signal Message to [MRCP Client] [0x7f1c64001430;1;1]
[11/08 10:47:27.618] DEBUG[1365] src/apt_task.c: Process Message [MRCP Client] [0x7f1c64001430;1;1]
[11/08 10:47:27.618] DEBUG[1365] app_mrcprecog.c: (ASR-0) speech_on_session_terminate
[11/08 10:47:27.618] DEBUG[1365] app_mrcprecog.c: (ASR-0) DTMF generator destroyed
[11/08 10:47:27.618] DEBUG[1365] app_mrcprecog.c: (ASR-0) Destroying MRCP session
[11/08 10:47:27.618] DEBUG[1365] speech_channel.c: (ASR-0) ERROR ==> CLOSED
[11/08 10:47:27.618] DEBUG[1365] src/apt_consumer_task.c: Wait for Messages [MRCP Client]
[11/08 10:47:27.618] DEBUG[1674][C-00000000] audio_queue.c: (ASR-0) Audio queue destroyed
[11/08 10:47:27.619] DEBUG[1322] manager.c: Examining AMI event:
Event: VarSet^M
Privilege: dialplan,all^M
Channel: PJSIP/1002-00000000^M
ChannelState: 6^M
ChannelStateDesc: Up^M
CallerIDNum: 1002^M
CallerIDName: XYZ^M
ConnectedLineNum: ^M
ConnectedLineName: ^M
Language: en^M
AccountCode: 6^M
Context: IS^M
Exten: 2093^M
Priority: 6^M
Uniqueid: 1510159646.0^M
Linkedid: 1510159646.0^M
Variable: RECOGSTATUS^M
Value: ERROR^M
^M
[11/08 10:47:27.619] DEBUG[1322] manager.c: Examining AMI event:
Event: AGIExecEnd^M
Privilege: agi,all^M
Channel: PJSIP/1002-00000000^M
ChannelState: 6^M
ChannelStateDesc: Up^M
CallerIDNum: 1002^M
CallerIDName: XYZ^M
ConnectedLineNum: ^M
ConnectedLineName: ^M
Language: en^M
AccountCode: 6^M
Context: IS^M
Exten: 2093^M
Priority: 6^M
Uniqueid: 1510159646.0^M
Linkedid: 1510159646.0^M
Result: Unknown Result^M
CommandId: 1844242488^M
Command: EXEC MRCPRecog ____^M
ResultCode: 200^M
[11/08 10:47:27.619] DEBUG[1322] manager.c: Examining AMI event:
Event: AsyncAGIExec^M
Privilege: agi,all^M
Channel: PJSIP/1002-00000000^M
ChannelState: 6^M
ChannelStateDesc: Up^M
CallerIDNum: 1002^M
CallerIDName: XYZ^M
ConnectedLineNum: ^M
ConnectedLineName: ^M
Language: en^M
AccountCode: 6^M
Context: IS^M
Exten: 2093^M
Priority: 6^M
Uniqueid: 1510159646.0^M
Linkedid: 1510159646.0^M
CommandId: C20^M
Result: 200%20result%3D-1%0A^M
^M
Have a great day!
Dan
Hi,
There is no app_MRCPRecord
for using the recorder MRCP resource.
Is this deliberate or is it something that is in pipeline or it can be achieved using the already available apps or someone has to implement their own app_MRCPRecord
to use this functionality.
Thank you
I propose to implement the mechanism of preliminary purification of asterisk variables in order to prevent, in an asterisk variable, the values obtained from the penultimate query, in the case when the last query was unsuccessful.
variables value:
RECOGSTATUS
RECOG_STATUS
RECOG_COMPLETION_CAUSE
RECOG_RESULT
SYNTHSTATUS
variables used in functions:
RECOG_CONFIDENCE()
RECOG_GRAMMAR()
RECOG_INPUT()
RECOG_INSTANCE()
Hi Arsen,
edit: sorry I just realised I posted this in the wrong repo (I think), so feel free to move the issue using the new github feature if possible
Any plans to support asterisk 16 anytime soon? I tried installing the asterisk module (1.5.1) with asterisk 16 and got the following error stack:
****************************** REPORT ******************************
Asterisk version.............. : 16.0.0
UniMRCP version............... : 1.5.0
UniMRCP modules version....... : 1.5.1
Compiler...................... : gcc
Compiler flags................ : -g -O2
Preprocessor definitions...... :
Linker flags.................. :
Modules install path...........: /usr/lib/asterisk/modules
Configuration install path.....: /etc/asterisk
XML doc install path...........: /var/lib/asterisk/documentation/thirdparty
Speech resource module.........: yes
Application module.............: yes
********************************************************************
Making all in res-speech-unimrcp
make[1]: Entering directory '/tmp/asterisk-unimrcp-1.5.1/res-speech-unimrcp'
CC res_speech_unimrcp.lo
In file included from /usr/include/asterisk.h:23:0,
from ../include/ast_compat_defs.h:30,
from res_speech_unimrcp.c:28:
res_speech_unimrcp.c: In function 'uni_recog_speech_result_build':
res_speech_unimrcp.c:778:27: error: 'Do_not_use_strdup__use_ast_strdup' undeclared (first use in this function)
speech_result->text = strdup(text);
^
res_speech_unimrcp.c:778:27: note: each undeclared identifier is reported only once for each function it appears in
Makefile:434: recipe for target 'res_speech_unimrcp.lo' failed
make[1]: Leaving directory '/tmp/asterisk-unimrcp-1.5.1/res-speech-unimrcp'
make[1]: *** [res_speech_unimrcp.lo] Error 1
Makefile:409: recipe for target 'all-recursive' failed
make: *** [all-recursive] Error 1
note: I tried the same thing on asterisk 15.6.1 and everything is working correctly
thank you,
Daan
I tried running the command sudo apt-get install unimrcp-client-dev
first. But it's giving below error ->
Reading package lists... Done
Building dependency tree
Reading state information... Done
E: Unable to locate package unimrcp-client-dev
Same goes for sudo apt-get install asterisk-app-unimrcp
. Error ->
Reading package lists... Done
Building dependency tree
Reading state information... Done
E: Unable to locate package asterisk-app-unimrcp
And for sudo apt-get install asterisk-res-speech-unimrcp
. Error ->
Reading package lists... Done
Building dependency tree
Reading state information... Done
E: Unable to locate package asterisk-res-speech-unimrcp
Need your help. Thanks in advance
Dear community,
I'm using Asterisk 15.2 on a Wazo distribution. While this Asterisk uniMRCP is compiling correctly, I'm unable to load it from Asterisk.
xivo*CLI> module load res_speech_unimrcp.so
Unable to load module res_speech_unimrcp.so
Command 'module load res_speech_unimrcp.so' failed.
[Feb 23 09:54:26] WARNING[7365]: loader.c:580 load_dlopen: Error loading module 'res_speech_unimrcp.so': /usr/lib/asterisk/modules/res_speech_unimrcp.so: undefined symbol: ast_speech_change_state
[Feb 23 09:54:26] WARNING[7365]: loader.c:1184 load_resource: Module 'res_speech_unimrcp.so' could not be loaded.
The other module app_unimrcp.so is loading correctly.
I'm not developper and able to provide a fix. Does anybody is able to propose a patch for this issue?
Thanks
Obitwo
Hi,
I am trying to install UniMRCP packages with Asterisk 16 but system is not able to do, please find errors logs below:
In file included from ../include/ast_compat_defs.h:45:0,
from res_speech_unimrcp.c:28:
/usr/include/asterisk.h:20:1: error: unknown type name 'define'
define AST_MODULE_SELF_SYM
^~~~~~
In file included from /usr/lib/gcc/x86_64-amazon-linux/7/include/stdint.h:9:0,
from /usr/include/inttypes.h:27,
from /usr/include/asterisk/compat.h:31,
from /usr/include/asterisk.h:28,
from ../include/ast_compat_defs.h:45,
from res_speech_unimrcp.c:28:
/usr/include/stdint.h:36:1: error: expected '=', ',', ';', 'asm' or 'attribute' before 'typedef'
typedef signed char int8_t;
^~~~~~~
In file included from ../include/ast_compat_defs.h:45:0,
from res_speech_unimrcp.c:28:
/usr/include/asterisk.h:302:2: error: #error "Externally compiled modules must declare AST_MODULE_SELF_SYM."
#error "Externally compiled modules must declare AST_MODULE_SELF_SYM."
^~~~~
In file included from res_speech_unimrcp.c:28:0:
../include/ast_compat_defs.h:118:23: error: conflicting types for 'ast_channel_set_readformat'
static APR_INLINE int ast_channel_set_readformat(struct ast_channel *chan, ast_format_compat *format)
^~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from ../include/ast_compat_defs.h:47:0,
from res_speech_unimrcp.c:28:
/usr/include/asterisk/channel.h:4144:6: note: previous declaration of 'ast_channel_set_readformat' was here
void ast_channel_set_readformat(struct ast_channel *chan, struct ast_format *format);
^~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from res_speech_unimrcp.c:28:0:
../include/ast_compat_defs.h:122:23: error: conflicting types for 'ast_channel_set_writeformat'
static APR_INLINE int ast_channel_set_writeformat(struct ast_channel *chan, ast_format_compat *format)
^~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from ../include/ast_compat_defs.h:47:0,
from res_speech_unimrcp.c:28:
/usr/include/asterisk/channel.h:4145:6: note: previous declaration of 'ast_channel_set_writeformat' was here
void ast_channel_set_writeformat(struct ast_channel *chan, struct ast_format *format);
^~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from res_speech_unimrcp.c:28:0:
../include/ast_compat_defs.h: In function 'ast_channel_get_rawreadformat':
../include/ast_compat_defs.h:140:2: warning: implicit declaration of function 'ast_format_copy'; did you mean 'ast_format_cmp'? [-Wimplicit-function-declaration]
ast_format_copy(format, ast_channel_rawreadformat(chan));
^~~~~~~~~~~~~~~
ast_format_cmp
res_speech_unimrcp.c: At top level:
res_speech_unimrcp.c:31:23: error: expected declaration specifiers or '...' before string constant
ASTERISK_FILE_VERSION(FILE, "$Revision: $")
^~~~~~~~
res_speech_unimrcp.c:31:33: error: expected declaration specifiers or '...' before string constant
ASTERISK_FILE_VERSION(FILE, "$Revision: $")
^~~~~~~~~~~~~~
res_speech_unimrcp.c:1205:2: warning: initialization from incompatible pointer type [-Wincompatible-pointer-types]
uni_recog_change_results_type,
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
res_speech_unimrcp.c:1205:2: note: (near initialization for 'ast_engine.get_setting')
res_speech_unimrcp.c:1206:2: warning: initialization from incompatible pointer type [-Wincompatible-pointer-types]
uni_recog_get
^~~~~~~~~~~~~
res_speech_unimrcp.c:1206:2: note: (near initialization for 'ast_engine.change_results_type')
res_speech_unimrcp.c: In function 'load_module':
res_speech_unimrcp.c:1420:23: warning: implicit declaration of function 'ast_format_cap_alloc_nolock'; did you mean 'ast_format_cap_alloc'? [-Wimplicit-function-declaration]
ast_engine.formats = ast_format_cap_alloc_nolock();
^~~~~~~~~~~~~~~~~~~~~~~~~~~
ast_format_cap_alloc
res_speech_unimrcp.c:1420:21: warning: assignment makes pointer from integer without a cast [-Wint-conversion]
ast_engine.formats = ast_format_cap_alloc_nolock();
^
res_speech_unimrcp.c:1426:20: error: storage size of 'format' isn't known
struct ast_format format;
^~~~~~
res_speech_unimrcp.c:1427:2: warning: implicit declaration of function 'ast_format_set'; did you mean 'ast_format_cmp'? [-Wimplicit-function-declaration]
ast_format_set(&format, AST_FORMAT_SLINEAR, 0);
^~~~~~~~~~~~~~
ast_format_cmp
res_speech_unimrcp.c:1427:26: error: 'AST_FORMAT_SLINEAR' undeclared (first use in this function); did you mean 'AST_FORMAT_CMP_EQUAL'?
ast_format_set(&format, AST_FORMAT_SLINEAR, 0);
^~~~~~~~~~~~~~~~~~
AST_FORMAT_CMP_EQUAL
res_speech_unimrcp.c:1427:26: note: each undeclared identifier is reported only once for each function it appears in
res_speech_unimrcp.c:1428:2: warning: implicit declaration of function 'ast_format_cap_add'; did you mean 'ast_format_cap_alloc'? [-Wimplicit-function-declaration]
ast_format_cap_add(ast_engine.formats, &format);
^~~~~~~~~~~~~~~~~~
ast_format_cap_alloc
make[1]: *** [res_speech_unimrcp.lo] Error 1
make[1]: Leaving directory /usr/src/uni-ast-package-1.1.0/modules/res-speech-unimrcp' make: *** [all-recursive] Error 1 Making install in res-speech-unimrcp make[1]: Entering directory
/usr/src/uni-ast-package-1.1.0/modules/res-speech-unimrcp'
if /bin/sh ../libtool --tag=CC --mode=compile gcc -DPACKAGE_NAME="asterisk-unimrcp" -DPACKAGE_TARNAME="asterisk-unimrcp" -DPACKAGE_VERSION="1.1.0" -DPACKAGE_STRING="asterisk-unimrcp\ 1.1.0" -DPACKAGE_BUGREPORT="" -DPACKAGE="asterisk-unimrcp" -DVERSION="1.1.0" -DSTDC_HEADERS=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_UNISTD_H=1 -DHAVE_DLFCN_H=1 -DUNIMRCP_DIR_LOCATION="/usr/local/unimrcp" -DASTERISK_MAJOR_VERSION=14 -DASTERISK_MINOR_VERSION=6 -DASTERISK_PATCH_VERSION=0 -I. -I. -I../include -D_REENTRANT -D_GNU_SOURCE -g -O2 -pthread -I/usr/local/unimrcp/include -I/usr/local/unimrcp/include/apr-1 -I/usr/include -g -O2 -MT res_speech_unimrcp.lo -MD -MP -MF ".deps/res_speech_unimrcp.Tpo" -c -o res_speech_unimrcp.lo res_speech_unimrcp.c; \
then mv -f ".deps/res_speech_unimrcp.Tpo" ".deps/res_speech_unimrcp.Plo"; else rm -f ".deps/res_speech_unimrcp.Tpo"; exit 1; fi
gcc -DPACKAGE_NAME="asterisk-unimrcp" -DPACKAGE_TARNAME="asterisk-unimrcp" -DPACKAGE_VERSION="1.1.0" "-DPACKAGE_STRING="asterisk-unimrcp 1.1.0"" -DPACKAGE_BUGREPORT="" -DPACKAGE="asterisk-unimrcp" -DVERSION="1.1.0" -DSTDC_HEADERS=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_UNISTD_H=1 -DHAVE_DLFCN_H=1 -DUNIMRCP_DIR_LOCATION="/usr/local/unimrcp" -DASTERISK_MAJOR_VERSION=14 -DASTERISK_MINOR_VERSION=6 -DASTERISK_PATCH_VERSION=0 -I. -I. -I../include -D_REENTRANT -D_GNU_SOURCE -g -O2 -pthread -I/usr/local/unimrcp/include -I/usr/local/unimrcp/include/apr-1 -I/usr/include -g -O2 -MT res_speech_unimrcp.lo -MD -MP -MF .deps/res_speech_unimrcp.Tpo -c res_speech_unimrcp.c -fPIC -DPIC -o .libs/res_speech_unimrcp.o
In file included from ../include/ast_compat_defs.h:45:0,
from res_speech_unimrcp.c:28:
/usr/include/asterisk.h:20:1: error: unknown type name 'define'
define AST_MODULE_SELF_SYM
^~~~~~
In file included from /usr/lib/gcc/x86_64-amazon-linux/7/include/stdint.h:9:0,
from /usr/include/inttypes.h:27,
from /usr/include/asterisk/compat.h:31,
from /usr/include/asterisk.h:28,
from ../include/ast_compat_defs.h:45,
from res_speech_unimrcp.c:28:
/usr/include/stdint.h:36:1: error: expected '=', ',', ';', 'asm' or 'attribute' before 'typedef'
typedef signed char int8_t;
^~~~~~~
In file included from ../include/ast_compat_defs.h:45:0,
from res_speech_unimrcp.c:28:
/usr/include/asterisk.h:302:2: error: #error "Externally compiled modules must declare AST_MODULE_SELF_SYM."
#error "Externally compiled modules must declare AST_MODULE_SELF_SYM."
^~~~~
In file included from res_speech_unimrcp.c:28:0:
../include/ast_compat_defs.h:118:23: error: conflicting types for 'ast_channel_set_readformat'
static APR_INLINE int ast_channel_set_readformat(struct ast_channel *chan, ast_format_compat *format)
^~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from ../include/ast_compat_defs.h:47:0,
from res_speech_unimrcp.c:28:
/usr/include/asterisk/channel.h:4144:6: note: previous declaration of 'ast_channel_set_readformat' was here
void ast_channel_set_readformat(struct ast_channel *chan, struct ast_format *format);
^~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from res_speech_unimrcp.c:28:0:
../include/ast_compat_defs.h:122:23: error: conflicting types for 'ast_channel_set_writeformat'
static APR_INLINE int ast_channel_set_writeformat(struct ast_channel *chan, ast_format_compat *format)
^~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from ../include/ast_compat_defs.h:47:0,
from res_speech_unimrcp.c:28:
/usr/include/asterisk/channel.h:4145:6: note: previous declaration of 'ast_channel_set_writeformat' was here
void ast_channel_set_writeformat(struct ast_channel *chan, struct ast_format *format);
^~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from res_speech_unimrcp.c:28:0:
../include/ast_compat_defs.h: In function 'ast_channel_get_rawreadformat':
../include/ast_compat_defs.h:140:2: warning: implicit declaration of function 'ast_format_copy'; did you mean 'ast_format_cmp'? [-Wimplicit-function-declaration]
ast_format_copy(format, ast_channel_rawreadformat(chan));
^~~~~~~~~~~~~~~
ast_format_cmp
res_speech_unimrcp.c: At top level:
res_speech_unimrcp.c:31:23: error: expected declaration specifiers or '...' before string constant
ASTERISK_FILE_VERSION(FILE, "$Revision: $")
^~~~~~~~
res_speech_unimrcp.c:31:33: error: expected declaration specifiers or '...' before string constant
ASTERISK_FILE_VERSION(FILE, "$Revision: $")
^~~~~~~~~~~~~~
res_speech_unimrcp.c:1205:2: warning: initialization from incompatible pointer type [-Wincompatible-pointer-types]
uni_recog_change_results_type,
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
res_speech_unimrcp.c:1205:2: note: (near initialization for 'ast_engine.get_setting')
res_speech_unimrcp.c:1206:2: warning: initialization from incompatible pointer type [-Wincompatible-pointer-types]
uni_recog_get
^~~~~~~~~~~~~
res_speech_unimrcp.c:1206:2: note: (near initialization for 'ast_engine.change_results_type')
res_speech_unimrcp.c: In function 'load_module':
res_speech_unimrcp.c:1420:23: warning: implicit declaration of function 'ast_format_cap_alloc_nolock'; did you mean 'ast_format_cap_alloc'? [-Wimplicit-function-declaration]
ast_engine.formats = ast_format_cap_alloc_nolock();
^~~~~~~~~~~~~~~~~~~~~~~~~~~
ast_format_cap_alloc
res_speech_unimrcp.c:1420:21: warning: assignment makes pointer from integer without a cast [-Wint-conversion]
ast_engine.formats = ast_format_cap_alloc_nolock();
^
res_speech_unimrcp.c:1426:20: error: storage size of 'format' isn't known
struct ast_format format;
^~~~~~
res_speech_unimrcp.c:1427:2: warning: implicit declaration of function 'ast_format_set'; did you mean 'ast_format_cmp'? [-Wimplicit-function-declaration]
ast_format_set(&format, AST_FORMAT_SLINEAR, 0);
^~~~~~~~~~~~~~
ast_format_cmp
res_speech_unimrcp.c:1427:26: error: 'AST_FORMAT_SLINEAR' undeclared (first use in this function); did you mean 'AST_FORMAT_CMP_EQUAL'?
ast_format_set(&format, AST_FORMAT_SLINEAR, 0);
^~~~~~~~~~~~~~~~~~
AST_FORMAT_CMP_EQUAL
res_speech_unimrcp.c:1427:26: note: each undeclared identifier is reported only once for each function it appears in
res_speech_unimrcp.c:1428:2: warning: implicit declaration of function 'ast_format_cap_add'; did you mean 'ast_format_cap_alloc'? [-Wimplicit-function-declaration]
ast_format_cap_add(ast_engine.formats, &format);
^~~~~~~~~~~~~~~~~~
ast_format_cap_alloc
make[1]: *** [res_speech_unimrcp.lo] Error 1
make[1]: Leaving directory `/usr/src/uni-ast-package-1.1.0/modules/res-speech-unimrcp'
make: *** [install-recursive] Error 1
Greetings,
I am a user of Alpine Linux
I compiled asterisk, unimrcp and asterisk-unimrcp from source. Unimrcp has support for dir layout configuration. I edited config.layout/dirlayout.xml
and add LSB layout configuration, then configure with --prefix=/usr --enable-layout=lsb
. Everything work flawlessly. But asterisk-unimrcp module pays no attention to these settings, and cannot load config unimrcpclient.xml
. After some digging, I realized that the module uses apt_default_dir_layout_create
function and without patching code no chance to get what I want.
My current layout is:
var | value |
---|---|
confdir | /etc/unimrcp |
plugindir | /usr/lib/unimrcp |
logdir | /var/log |
datadir | /usr/share/unimrcp |
vardir | /var/run/unimrcp |
P.S. Unfortunately Alpine Linux build system prevents to isntall packages in other places than /{,usr}
, e.g. /opt/unimrcp
or /usr/local/unimrcp
. I guess this is due to the fact that the Alpine is very simple and built on musl.
Hi,
I'm new to MRCP. I have the same problem as Amitaj. https://groups.google.com/forum/#!topic/unimrcp/xQDV4biw3S4
When I try to install the asterisk-unimrcp bridge, I run into compilation error.
.....
.....
****************************** REPORT ******************************
Asterisk version.............. : 14.3.0
UniMRCP version............... : 1.4.0
UniMRCP modules version....... : 1.4.0
Compiler...................... : gcc
Compiler flags................ : -g -O2
Preprocessor definitions...... :
Linker flags.................. :
Modules install path...........: /usr/lib/asterisk/modules
Configuration install path.....: /etc/asterisk
XML doc install path...........: /var/lib/asterisk/documentation/thirdparty
Speech resource module.........: yes
Application module.............: yes
Making all in res-speech-unimrcp
make[1]: Entering directory /usr/src/asterisk-unimrcp-1.4.0/res-speech-unimrcp' CC res_speech_unimrcp.lo In file included from ../include/ast_compat_defs.h:30:0, from res_speech_unimrcp.c:28: /usr/include/asterisk.h:300:2: error: #error "Externally compiled modules must d eclare AST_MODULE_SELF_SYM." #error "Externally compiled modules must declare AST_MODULE_SELF_SYM." ^ res_speech_unimrcp.c:31:1: error: expected declaration specifiers or ‘...’ befor e string constant ASTERISK_FILE_VERSION(__FILE__, "$Revision: $") ^ res_speech_unimrcp.c:31:33: error: expected declaration specifiers or ‘...’ befo re string constant ASTERISK_FILE_VERSION(__FILE__, "$Revision: $") ^ make[1]: *** [res_speech_unimrcp.lo] Error 1 make[1]: Leaving directory
/usr/src/asterisk-unimrcp-1.4.0/res-speech-unimrcp'
make: *** [all-recursive] Error 1
Do you have any updates on this problem?
If the audio file to reproduce has RIFF headers
Example:
WAVE properties:
Non-canonical header: yes
Extra RIFF chunks: yes (2692 bytes)
the length of the sound is not correctly recognized so will stop at the first sound and wont pass to the next one, removing this header using sox fix the issue but I think it should get the Extra RIFF chunks and add it in
app_mrcprecog.c . line 1348
if (read_filelength + read_filestep > max_filelength) {....
so it knows the file is over
what do you think?
Hello,
I have installed
root@iCall-UniMRCP:~/asterisk-unimrcp# asterisk -V
Asterisk 13.1.0~dfsg-1.1ubuntu4.1
Here the configure output
https://gist.github.com/voatsap/db875f5d6fa8f4d45b96992d5444b1fb
Here the compilation error:
https://gist.github.com/voatsap/30e5e39ade6419260fd68ff9f6245b4b
please suggest
Feature request.
Add the function "RECOG_RAW()" returning a raw NLSML document (XML)
For self-parsing NLSML.
Similar functions:
RECOG_CONFIDENCE(), RECOG_GRAMMAR(), RECOG_INPUT(), and RECOG_INSTANCE().
****************************** REPORT ******************************
Asterisk version.............. : 11.7.0~dfsg-1ubuntu1
UniMRCP version............... : 1.3.0
UniMRCP modules version....... : 1.3.1
Compiler...................... : gcc
Compiler flags................ : -g -O2
Preprocessor definitions...... :
Linker flags.................. :
Modules install path...........: /usr/lib/asterisk/modules
Configuration install path.....: /etc/asterisk
XML doc install path...........: /var/lib/asterisk/documentation/thirdparty
Speech resource module.........: yes
Application module.............: yes
********************************************************************
Making all in res-speech-unimrcp
make[1]: Entering directory `/root/unimrcp/asterisk-unimrcp-1.3.1/res-speech-unimrcp'
CC res_speech_unimrcp.lo
<command-line>:0:25: error: missing binary operator before token "~"
../include/ast_compat_defs.h:43:20: note: in expansion of macro ‘ASTERISK_PATCH_VERSION’
&& (patch) <= ASTERISK_PATCH_VERSION))
^
../include/ast_compat_defs.h:56:5: note: in expansion of macro ‘AST_VERSION_AT_LEAST’
#if AST_VERSION_AT_LEAST(1,8,0)
^
<command-line>:0:25: error: missing binary operator before token "~"
../include/ast_compat_defs.h:43:20: note: in expansion of macro ‘ASTERISK_PATCH_VERSION’
&& (patch) <= ASTERISK_PATCH_VERSION))
^
../include/ast_compat_defs.h:65:6: note: in expansion of macro ‘AST_VERSION_AT_LEAST’
#if !AST_VERSION_AT_LEAST(11,0,0)
^
<command-line>:0:25: error: missing binary operator before token "~"
../include/ast_compat_defs.h:43:20: note: in expansion of macro ‘ASTERISK_PATCH_VERSION’
&& (patch) <= ASTERISK_PATCH_VERSION))
^
../include/ast_compat_defs.h:84:5: note: in expansion of macro ‘AST_VERSION_AT_LEAST’
#if AST_VERSION_AT_LEAST(10,0,0)
^
<command-line>:0:25: error: missing binary operator before token "~"
../include/ast_compat_defs.h:43:20: note: in expansion of macro ‘ASTERISK_PATCH_VERSION’
&& (patch) <= ASTERISK_PATCH_VERSION))
^
../include/ast_compat_defs.h:92:5: note: in expansion of macro ‘AST_VERSION_AT_LEAST’
#if AST_VERSION_AT_LEAST(1,8,0)
^
In file included from res_speech_unimrcp.c:28:0:
../include/ast_compat_defs.h:100:24: error: conflicting types for ‘ast_format_clear’
static APR_INLINE void ast_format_clear(ast_format_compat *format)
^
In file included from /usr/include/asterisk/abstract_jb.h:35:0,
from /usr/include/asterisk/channel.h:126,
from ../include/ast_compat_defs.h:32,
from res_speech_unimrcp.c:28:
/usr/include/asterisk/format.h:312:6: note: previous declaration of ‘ast_format_clear’ was here
void ast_format_clear(struct ast_format *format);
^
<command-line>:0:25: error: missing binary operator before token "~"
../include/ast_compat_defs.h:43:20: note: in expansion of macro ‘ASTERISK_PATCH_VERSION’
&& (patch) <= ASTERISK_PATCH_VERSION))
^
../include/ast_compat_defs.h:106:5: note: in expansion of macro ‘AST_VERSION_AT_LEAST’
#if AST_VERSION_AT_LEAST(13,0,0)
^
<command-line>:0:25: error: missing binary operator before token "~"
../include/ast_compat_defs.h:43:20: note: in expansion of macro ‘ASTERISK_PATCH_VERSION’
&& (patch) <= ASTERISK_PATCH_VERSION))
^
../include/ast_compat_defs.h:176:5: note: in expansion of macro ‘AST_VERSION_AT_LEAST’
#if AST_VERSION_AT_LEAST(13,0,0)
^
<command-line>:0:25: error: missing binary operator before token "~"
../include/ast_compat_defs.h:43:20: note: in expansion of macro ‘ASTERISK_PATCH_VERSION’
&& (patch) <= ASTERISK_PATCH_VERSION))
^
../include/ast_compat_defs.h:177:7: note: in expansion of macro ‘AST_VERSION_AT_LEAST’
#elif AST_VERSION_AT_LEAST(10,0,0)
^
In file included from res_speech_unimrcp.c:28:0:
../include/ast_compat_defs.h: In function ‘ast_channel_set_readformat’:
../include/ast_compat_defs.h:189:2: warning: passing argument 2 of ‘ast_set_read_format’ makes pointer from integer without a cast [enabled by default]
ast_set_read_format(chan, format->id);
^
In file included from ../include/ast_compat_defs.h:32:0,
from res_speech_unimrcp.c:28:
/usr/include/asterisk/channel.h:1802:5: note: expected ‘struct ast_format *’ but argument is of type ‘int’
int ast_set_read_format(struct ast_channel *chan, struct ast_format *format);
^
In file included from res_speech_unimrcp.c:28:0:
../include/ast_compat_defs.h: In function ‘ast_channel_set_writeformat’:
../include/ast_compat_defs.h:193:2: warning: passing argument 2 of ‘ast_set_write_format’ makes pointer from integer without a cast [enabled by default]
ast_set_write_format(chan, format->id);
^
In file included from ../include/ast_compat_defs.h:32:0,
from res_speech_unimrcp.c:28:
/usr/include/asterisk/channel.h:1827:5: note: expected ‘struct ast_format *’ but argument is of type ‘int’
int ast_set_write_format(struct ast_channel *chan, struct ast_format *format);
^
../include/ast_compat_defs.h: At top level:
<command-line>:0:25: error: missing binary operator before token "~"
../include/ast_compat_defs.h:43:20: note: in expansion of macro ‘ASTERISK_PATCH_VERSION’
&& (patch) <= ASTERISK_PATCH_VERSION))
^
../include/ast_compat_defs.h:197:5: note: in expansion of macro ‘AST_VERSION_AT_LEAST’
#if AST_VERSION_AT_LEAST(11,0,0)
^
<command-line>:0:25: error: missing binary operator before token "~"
../include/ast_compat_defs.h:43:20: note: in expansion of macro ‘ASTERISK_PATCH_VERSION’
&& (patch) <= ASTERISK_PATCH_VERSION))
^
../include/ast_compat_defs.h:216:7: note: in expansion of macro ‘AST_VERSION_AT_LEAST’
#elif AST_VERSION_AT_LEAST(10,0,0)
^
In file included from res_speech_unimrcp.c:28:0:
../include/ast_compat_defs.h: In function ‘ast_channel_get_speechreadformat’:
../include/ast_compat_defs.h:238:22: error: dereferencing pointer to incomplete type
raw_format.id = chan->rawreadformat;
^
../include/ast_compat_defs.h: In function ‘ast_channel_get_speechwriteformat’:
../include/ast_compat_defs.h:245:22: error: dereferencing pointer to incomplete type
raw_format.id = chan->rawwriteformat;
^
../include/ast_compat_defs.h: In function ‘ast_channel_get_readformat’:
../include/ast_compat_defs.h:252:19: error: dereferencing pointer to incomplete type
format->id = chan->readformat;
^
../include/ast_compat_defs.h: In function ‘ast_channel_get_writeformat’:
../include/ast_compat_defs.h:259:19: error: dereferencing pointer to incomplete type
format->id = chan->writeformat;
^
../include/ast_compat_defs.h: In function ‘ast_frame_get_dtmfkey’:
<command-line>:0:25: error: missing binary operator before token "~"
../include/ast_compat_defs.h:43:20: note: in expansion of macro ‘ASTERISK_PATCH_VERSION’
&& (patch) <= ASTERISK_PATCH_VERSION))
^
../include/ast_compat_defs.h:270:5: note: in expansion of macro ‘AST_VERSION_AT_LEAST’
#if AST_VERSION_AT_LEAST(1,8,0)
^
In file included from res_speech_unimrcp.c:28:0:
../include/ast_compat_defs.h:273:2: error: incompatible types when returning type ‘union ast_frame_subclass’ but ‘int’ was expected
return f->subclass;
^
../include/ast_compat_defs.h: In function ‘ast_frame_get_data’:
<command-line>:0:25: error: missing binary operator before token "~"
../include/ast_compat_defs.h:43:20: note: in expansion of macro ‘ASTERISK_PATCH_VERSION’
&& (patch) <= ASTERISK_PATCH_VERSION))
^
../include/ast_compat_defs.h:279:5: note: in expansion of macro ‘AST_VERSION_AT_LEAST’
#if AST_VERSION_AT_LEAST(1,6,1)
^
In file included from res_speech_unimrcp.c:28:0:
../include/ast_compat_defs.h:282:2: error: cannot convert to a pointer type
return (void *)(f->data);
^
../include/ast_compat_defs.h: In function ‘ast_frame_set_data’:
<command-line>:0:25: error: missing binary operator before token "~"
../include/ast_compat_defs.h:43:20: note: in expansion of macro ‘ASTERISK_PATCH_VERSION’
&& (patch) <= ASTERISK_PATCH_VERSION))
^
../include/ast_compat_defs.h:288:5: note: in expansion of macro ‘AST_VERSION_AT_LEAST’
#if AST_VERSION_AT_LEAST(1,6,1)
^
In file included from res_speech_unimrcp.c:28:0:
../include/ast_compat_defs.h:291:10: error: incompatible types when assigning to type ‘union <anonymous>’ from type ‘void *’
f->data = data;
^
../include/ast_compat_defs.h: In function ‘ast_frame_set_format’:
<command-line>:0:25: error: missing binary operator before token "~"
../include/ast_compat_defs.h:43:20: note: in expansion of macro ‘ASTERISK_PATCH_VERSION’
&& (patch) <= ASTERISK_PATCH_VERSION))
^
../include/ast_compat_defs.h:297:5: note: in expansion of macro ‘AST_VERSION_AT_LEAST’
#if AST_VERSION_AT_LEAST(13,0,0)
^
<command-line>:0:25: error: missing binary operator before token "~"
../include/ast_compat_defs.h:43:20: note: in expansion of macro ‘ASTERISK_PATCH_VERSION’
&& (patch) <= ASTERISK_PATCH_VERSION))
^
../include/ast_compat_defs.h:299:7: note: in expansion of macro ‘AST_VERSION_AT_LEAST’
#elif AST_VERSION_AT_LEAST(10,0,0)
^
<command-line>:0:25: error: missing binary operator before token "~"
../include/ast_compat_defs.h:43:20: note: in expansion of macro ‘ASTERISK_PATCH_VERSION’
&& (patch) <= ASTERISK_PATCH_VERSION))
^
../include/ast_compat_defs.h:301:7: note: in expansion of macro ‘AST_VERSION_AT_LEAST’
#elif AST_VERSION_AT_LEAST(1,8,0)
^
In file included from res_speech_unimrcp.c:28:0:
../include/ast_compat_defs.h:304:14: error: incompatible types when assigning to type ‘union ast_frame_subclass’ from type ‘int’
f->subclass = format->id;
^
../include/ast_compat_defs.h: In function ‘ast_uri_encode_http’:
<command-line>:0:25: error: missing binary operator before token "~"
../include/ast_compat_defs.h:43:20: note: in expansion of macro ‘ASTERISK_PATCH_VERSION’
&& (patch) <= ASTERISK_PATCH_VERSION))
^
../include/ast_compat_defs.h:313:5: note: in expansion of macro ‘AST_VERSION_AT_LEAST’
#if AST_VERSION_AT_LEAST(10,0,0)
^
In file included from res_speech_unimrcp.c:28:0:
../include/ast_compat_defs.h:316:2: error: incompatible type for argument 4 of ‘ast_uri_encode’
return ast_uri_encode(string, outbuf, buflen, 1);
^
In file included from /usr/include/asterisk/config.h:30:0,
from /usr/include/asterisk/channel.h:143,
from ../include/ast_compat_defs.h:32,
from res_speech_unimrcp.c:28:
/usr/include/asterisk/utils.h:280:7: note: expected ‘struct ast_flags’ but argument is of type ‘int’
char *ast_uri_encode(const char *string, char *outbuf, int buflen, struct ast_flags spec);
^
res_speech_unimrcp.c: At top level:
<command-line>:0:25: error: missing binary operator before token "~"
../include/ast_compat_defs.h:43:20: note: in expansion of macro ‘ASTERISK_PATCH_VERSION’
&& (patch) <= ASTERISK_PATCH_VERSION))
^
res_speech_unimrcp.c:145:5: note: in expansion of macro ‘AST_VERSION_AT_LEAST’
#if AST_VERSION_AT_LEAST(1,8,0)
^
<command-line>:0:25: error: missing binary operator before token "~"
../include/ast_compat_defs.h:43:20: note: in expansion of macro ‘ASTERISK_PATCH_VERSION’
&& (patch) <= ASTERISK_PATCH_VERSION))
^
res_speech_unimrcp.c:172:5: note: in expansion of macro ‘AST_VERSION_AT_LEAST’
#if AST_VERSION_AT_LEAST(10,0,0)
^
<command-line>:0:25: error: missing binary operator before token "~"
../include/ast_compat_defs.h:43:20: note: in expansion of macro ‘ASTERISK_PATCH_VERSION’
&& (patch) <= ASTERISK_PATCH_VERSION))
^
res_speech_unimrcp.c:177:7: note: in expansion of macro ‘AST_VERSION_AT_LEAST’
#elif AST_VERSION_AT_LEAST(1,6,0)
^
<command-line>:0:25: error: missing binary operator before token "~"
../include/ast_compat_defs.h:43:20: note: in expansion of macro ‘ASTERISK_PATCH_VERSION’
&& (patch) <= ASTERISK_PATCH_VERSION))
^
res_speech_unimrcp.c:669:5: note: in expansion of macro ‘AST_VERSION_AT_LEAST’
#if AST_VERSION_AT_LEAST(12,0,0)
^
res_speech_unimrcp.c: In function ‘uni_recog_speech_result_build’:
<command-line>:0:25: error: missing binary operator before token "~"
../include/ast_compat_defs.h:43:20: note: in expansion of macro ‘ASTERISK_PATCH_VERSION’
&& (patch) <= ASTERISK_PATCH_VERSION))
^
res_speech_unimrcp.c:719:5: note: in expansion of macro ‘AST_VERSION_AT_LEAST’
#if AST_VERSION_AT_LEAST(1,6,0)
^
<command-line>:0:25: error: missing binary operator before token "~"
../include/ast_compat_defs.h:43:20: note: in expansion of macro ‘ASTERISK_PATCH_VERSION’
&& (patch) <= ASTERISK_PATCH_VERSION))
^
res_speech_unimrcp.c:766:5: note: in expansion of macro ‘AST_VERSION_AT_LEAST’
#if AST_VERSION_AT_LEAST(1,6,0)
^
res_speech_unimrcp.c:769:17: error: ‘struct ast_speech_result’ has no member named ‘next’
speech_result->next = last_speech_result;
^
res_speech_unimrcp.c: At top level:
res_speech_unimrcp.c:1208:2: warning: initialization from incompatible pointer type [enabled by default]
uni_recog_create,
^
res_speech_unimrcp.c:1208:2: warning: (near initialization for ‘ast_engine.create’) [enabled by default]
res_speech_unimrcp.c:1210:2: warning: initialization from incompatible pointer type [enabled by default]
uni_recog_load_grammar,
^
res_speech_unimrcp.c:1210:2: warning: (near initialization for ‘ast_engine.load’) [enabled by default]
res_speech_unimrcp.c:1211:2: warning: initialization from incompatible pointer type [enabled by default]
uni_recog_unload_grammar,
^
res_speech_unimrcp.c:1211:2: warning: (near initialization for ‘ast_engine.unload’) [enabled by default]
res_speech_unimrcp.c:1212:2: warning: initialization from incompatible pointer type [enabled by default]
uni_recog_activate_grammar,
^
res_speech_unimrcp.c:1212:2: warning: (near initialization for ‘ast_engine.activate’) [enabled by default]
res_speech_unimrcp.c:1213:2: warning: initialization from incompatible pointer type [enabled by default]
uni_recog_deactivate_grammar,
^
res_speech_unimrcp.c:1213:2: warning: (near initialization for ‘ast_engine.deactivate’) [enabled by default]
res_speech_unimrcp.c:1217:2: warning: initialization from incompatible pointer type [enabled by default]
uni_recog_change,
^
res_speech_unimrcp.c:1217:2: warning: (near initialization for ‘ast_engine.change’) [enabled by default]
<command-line>:0:25: error: missing binary operator before token "~"
../include/ast_compat_defs.h:43:20: note: in expansion of macro ‘ASTERISK_PATCH_VERSION’
&& (patch) <= ASTERISK_PATCH_VERSION))
^
res_speech_unimrcp.c:1218:5: note: in expansion of macro ‘AST_VERSION_AT_LEAST’
#if AST_VERSION_AT_LEAST(12,0,0)
^
res_speech_unimrcp.c: In function ‘uni_engine_config_load’:
<command-line>:0:25: error: missing binary operator before token "~"
../include/ast_compat_defs.h:43:20: note: in expansion of macro ‘ASTERISK_PATCH_VERSION’
&& (patch) <= ASTERISK_PATCH_VERSION))
^
res_speech_unimrcp.c:1284:5: note: in expansion of macro ‘AST_VERSION_AT_LEAST’
#if AST_VERSION_AT_LEAST(1,6,0)
^
res_speech_unimrcp.c:1288:60: error: macro "ast_config_load" requires 2 arguments, but only 1 given
struct ast_config *cfg = ast_config_load(UNI_ENGINE_CONFIG);
^
res_speech_unimrcp.c:1288:27: error: ‘ast_config_load’ undeclared (first use in this function)
struct ast_config *cfg = ast_config_load(UNI_ENGINE_CONFIG);
^
res_speech_unimrcp.c:1288:27: note: each undeclared identifier is reported only once for each function it appears in
<command-line>:0:25: error: missing binary operator before token "~"
../include/ast_compat_defs.h:43:20: note: in expansion of macro ‘ASTERISK_PATCH_VERSION’
&& (patch) <= ASTERISK_PATCH_VERSION))
^
res_speech_unimrcp.c:1294:5: note: in expansion of macro ‘AST_VERSION_AT_LEAST’
#if AST_VERSION_AT_LEAST(1,6,2)
^
res_speech_unimrcp.c: In function ‘load_module’:
<command-line>:0:25: error: missing binary operator before token "~"
../include/ast_compat_defs.h:43:20: note: in expansion of macro ‘ASTERISK_PATCH_VERSION’
&& (patch) <= ASTERISK_PATCH_VERSION))
^
res_speech_unimrcp.c:1448:5: note: in expansion of macro ‘AST_VERSION_AT_LEAST’
#if AST_VERSION_AT_LEAST(10,0,0)
^
res_speech_unimrcp.c:1471:21: warning: assignment makes pointer from integer without a cast [enabled by default]
ast_engine.formats = AST_FORMAT_SLINEAR;
^
make[1]: *** [res_speech_unimrcp.lo] Error 1
make[1]: Leaving directory `/root/unimrcp/asterisk-unimrcp-1.3.1/res-speech-unimrcp'
make: *** [all-recursive] Error 1
when I execute the make install
os will throw an error for me, and the installation failed.
for detail:
root@asterisk_server:/usr/local/src/asterisk-unimrcp-asterisk-unimrcp-1.5.1# ./bootstrap
root@asterisk_server:/usr/local/src/asterisk-unimrcp-asterisk-unimrcp-1.5.1# ./configure --with-unimrcp=/opt/unimrcp/
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for a thread-safe mkdir -p... /bin/mkdir -p
checking for gawk... gawk
checking whether make sets $(MAKE)... yes
checking whether make supports nested variables... yes
checking whether make supports nested variables... (cached) yes
checking for gcc... gcc
checking whether the C compiler works... yes
checking for C compiler default output file name... a.out
checking for suffix of executables...
checking whether we are cross compiling... no
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether gcc accepts -g... yes
checking for gcc option to accept ISO C89... none needed
checking whether gcc understands -c and -o together... yes
checking for style of include used by make... GNU
checking dependency style of gcc... gcc3
checking for g++... g++
checking whether we are using the GNU C++ compiler... yes
checking whether g++ accepts -g... yes
checking dependency style of g++... gcc3
checking build system type... x86_64-pc-linux-gnu
checking host system type... x86_64-pc-linux-gnu
checking how to print strings... printf
checking for a sed that does not truncate output... /bin/sed
checking for grep that handles long lines and -e... /bin/grep
checking for egrep... /bin/grep -E
checking for fgrep... /bin/grep -F
checking for ld used by gcc... /usr/bin/ld
checking if the linker (/usr/bin/ld) is GNU ld... yes
checking for BSD- or MS-compatible name lister (nm)... /usr/bin/nm -B
checking the name lister (/usr/bin/nm -B) interface... BSD nm
checking whether ln -s works... yes
checking the maximum length of command line arguments... 1572864
checking how to convert x86_64-pc-linux-gnu file names to x86_64-pc-linux-gnu format... func_convert_file_noop
checking how to convert x86_64-pc-linux-gnu file names to toolchain format... func_convert_file_noop
checking for /usr/bin/ld option to reload object files... -r
checking for objdump... objdump
checking how to recognize dependent libraries... pass_all
checking for dlltool... no
checking how to associate runtime and link libraries... printf %s\n
checking for ar... ar
checking for archiver @file support... @
checking for strip... strip
checking for ranlib... ranlib
checking command to parse /usr/bin/nm -B output from gcc object... ok
checking for sysroot... no
checking for a working dd... /bin/dd
checking how to truncate binary pipes... /bin/dd bs=4096 count=1
checking for mt... mt
checking if mt is a manifest tool... no
checking how to run the C preprocessor... gcc -E
checking for ANSI C header files... yes
checking for sys/types.h... yes
checking for sys/stat.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for memory.h... yes
checking for strings.h... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for unistd.h... yes
checking for dlfcn.h... yes
checking for objdir... .libs
checking if gcc supports -fno-rtti -fno-exceptions... no
checking for gcc option to produce PIC... -fPIC -DPIC
checking if gcc PIC flag -fPIC -DPIC works... yes
checking if gcc static flag -static works... yes
checking if gcc supports -c -o file.o... yes
checking if gcc supports -c -o file.o... (cached) yes
checking whether the gcc linker (/usr/bin/ld -m elf_x86_64) supports shared libraries... yes
checking whether -lc should be explicitly linked in... no
checking dynamic linker characteristics... GNU/Linux ld.so
checking how to hardcode library paths into programs... immediate
checking whether stripping libraries is possible... yes
checking if libtool supports shared libraries... yes
checking whether to build shared libraries... yes
checking whether to build static libraries... no
checking how to run the C++ preprocessor... g++ -E
checking for ld used by g++... /usr/bin/ld -m elf_x86_64
checking if the linker (/usr/bin/ld -m elf_x86_64) is GNU ld... yes
checking whether the g++ linker (/usr/bin/ld -m elf_x86_64) supports shared libraries... yes
checking for g++ option to produce PIC... -fPIC -DPIC
checking if g++ PIC flag -fPIC -DPIC works... yes
checking if g++ static flag -static works... yes
checking if g++ supports -c -o file.o... yes
checking if g++ supports -c -o file.o... (cached) yes
checking whether the g++ linker (/usr/bin/ld -m elf_x86_64) supports shared libraries... yes
checking dynamic linker characteristics... (cached) GNU/Linux ld.so
checking how to hardcode library paths into programs... immediate
checking for C compiler vendor... gnu
checking for pkg-config... /usr/bin/pkg-config
configure: UniMRCP configuration
1.5.0
configure: Asterisk configuration
15.6.1
configure: enable maintainer mode: no
checking that generated files are newer than configure... done
configure: creating ./config.status
config.status: creating Makefile
config.status: creating res-speech-unimrcp/Makefile
config.status: creating app-unimrcp/Makefile
config.status: executing depfiles commands
config.status: executing libtool commands
****************************** REPORT ******************************
Asterisk version.............. : 15.6.1
UniMRCP version............... : 1.5.0
UniMRCP modules version....... : 1.5.1
Compiler...................... : gcc
Compiler flags................ : -g -O2
Preprocessor definitions...... :
Linker flags.................. :
Modules install path...........: /usr/lib/asterisk/modules
Configuration install path.....: /etc/asterisk
XML doc install path...........: /var/lib/asterisk/documentation/thirdparty
Speech resource module.........: yes
Application module.............: yes
root@asterisk_server:/usr/local/src/asterisk-unimrcp-asterisk-unimrcp-1.5.1# make
Making all in res-speech-unimrcp
make[1]: Entering directory '/usr/local/src/asterisk-unimrcp-asterisk-unimrcp-1.5.1/res-speech-unimrcp'
make[1]: Nothing to be done for 'all'.
make[1]: Leaving directory '/usr/local/src/asterisk-unimrcp-asterisk-unimrcp-1.5.1/res-speech-unimrcp'
Making all in app-unimrcp
make[1]: Entering directory '/usr/local/src/asterisk-unimrcp-asterisk-unimrcp-1.5.1/app-unimrcp'
make[1]: Nothing to be done for 'all'.
make[1]: Leaving directory '/usr/local/src/asterisk-unimrcp-asterisk-unimrcp-1.5.1/app-unimrcp'
make[1]: Entering directory '/usr/local/src/asterisk-unimrcp-asterisk-unimrcp-1.5.1'
make[1]: Nothing to be done for 'all-am'.
make[1]: Leaving directory '/usr/local/src/asterisk-unimrcp-asterisk-unimrcp-1.5.1'
root@asterisk_server:/usr/local/src/asterisk-unimrcp-asterisk-unimrcp-1.5.1# make install
Making install in res-speech-unimrcp
make[1]: Entering directory '/usr/local/src/asterisk-unimrcp-asterisk-unimrcp-1.5.1/res-speech-unimrcp'
make[2]: Entering directory '/usr/local/src/asterisk-unimrcp-asterisk-unimrcp-1.5.1/res-speech-unimrcp'
make[2]: Nothing to be done for 'install-exec-am'.
test -d /etc/asterisk || /bin/bash /usr/local/src/asterisk-unimrcp-asterisk-unimrcp-1.5.1/build/install-sh -d /etc/asterisk
test -f /etc/asterisk/res-speech-unimrcp.conf || /usr/bin/install -c -m 644 ../conf/res-speech-unimrcp.conf /etc/asterisk
/bin/mkdir -p '/usr/lib/asterisk/modules'
/bin/bash ../libtool --mode=install /usr/bin/install -c res_speech_unimrcp.la '/usr/lib/asterisk/modules'
libtool: install: /usr/bin/install -c .libs/res_speech_unimrcp.so /usr/lib/asterisk/modules/res_speech_unimrcp.so
libtool: install: /usr/bin/install -c .libs/res_speech_unimrcp.lai /usr/lib/asterisk/modules/res_speech_unimrcp.la
/usr/bin/install: cannot stat '.libs/res_speech_unimrcp.lai': No such file or directory
Makefile:385: recipe for target 'install-modLTLIBRARIES' failed
make[2]: *** [install-modLTLIBRARIES] Error 1
make[2]: Leaving directory '/usr/local/src/asterisk-unimrcp-asterisk-unimrcp-1.5.1/res-speech-unimrcp'
Makefile:552: recipe for target 'install-am' failed
make[1]: *** [install-am] Error 2
make[1]: Leaving directory '/usr/local/src/asterisk-unimrcp-asterisk-unimrcp-1.5.1/res-speech-unimrcp'
Makefile:422: recipe for target 'install-recursive' failed
make: *** [install-recursive] Error 1
Can you provide any solution for me to solve the issues
I use SynthAndRecog with long text in Synth does not have time to work out Recog. How can this be corrected?
I setup a endpoint with codec opus to establish sip connection with user side(I named A side), in dialplan i call MRCPRecog to establish mrcp connection with MRCP server(I named B side), in mrcp.conf,i set the codec to PCMA,PCMU,but i failed to audio recognize, the log is(sorry i hide the real IP information):
Executing [s@internal:2] MRCPRecog("PJSIP/1003-00000000", "builtin:grammar/default, p=default&t=50000&b=0&ct=0.7&spl=zh-CN&sw=false&rm=normal&nit=5000&sct=300") in new stack
[Dec 27 15:47:03] NOTICE[22374][C-00000001]: app_mrcprecog.c:1079 app_recog_exec: MRCPRecog() grammar: builtin:grammar/default
[Dec 27 15:47:03] NOTICE[22374][C-00000001]: app_mrcprecog.c:1100 app_recog_exec: MRCPRecog() options: p=default&t=50000&b=0&ct=0.7&spl=zh-CN&sw=false&rm=normal&nit=5000&sct=300
> 0x7f96cc010e70 -- Strict RTP learning after remote address set to: xxx.xxx.xxx.xxx:33138
> 0x7f96cc010e70 -- Strict RTP switching source address to xxx.xxx.xxx.xxx:33138
[Dec 27 15:47:04] NOTICE[22374][C-00000001]: src/mrcp_application.c:117 : Create MRCP Handle 0x7f96c4014058 [speech-nuance5-mrcp2]
[Dec 27 15:47:04] NOTICE[22374][C-00000001]: src/mrcp_client_session.c:131 : Create Channel ASR-0
[Dec 27 15:47:04] NOTICE[22356]: src/mrcp_client_session.c:385 : Receive App Request ASR-0 [2]
[Dec 27 15:47:04] NOTICE[22356]: src/mrcp_client.c:696 : Add MRCP Handle ASR-0
[Dec 27 15:47:04] NOTICE[22356]: src/mrcp_client_session.c:717 : Add Control Channel ASR-0 new@speechrecog
[Dec 27 15:47:04] WARNING[22358]: src/mpf_rtp_stream.c:229 : Failed to Match Codec List xxx.xxx.xxx.xxx:20001
[Dec 27 15:47:04] NOTICE[22356]: src/mrcp_client_session.c:409 : Send Offer ASR-0 [c:1 a:1 v:0] to xxx.xxx.xxx.xxx:8010
[Dec 27 15:47:04] NOTICE[22356]: src/mrcp_sofiasip_client_agent.c:301 : Local SDP ASR-0
v=0
o=Asterisk 0 0 IN IP4 xxx.xxx.xxx.xxx
s=-
c=IN IP4 xxx.xxx.xxx.xxx
t=0 0
m=application 9 TCP/MRCPv2 1
a=setup:active
a=connection:new
a=resource:speechrecog
a=cmid:1
m=audio 0 RTP/AVP 19
a=mid:1
[Dec 27 15:47:04] NOTICE[22359]: src/mrcp_sofiasip_client_agent.c:556 : Receive SIP Event [nua_i_state] Status 0 INVITE sent [speech-nuance5-mrcp2]
[Dec 27 15:47:04] NOTICE[22359]: src/mrcp_sofiasip_client_agent.c:494 : SIP Call State ASR-0 [calling]
[Dec 27 15:47:04] NOTICE[22359]: src/mrcp_sofiasip_client_agent.c:556 : Receive SIP Event [nua_r_invite] Status 200 OK [speech-nuance5-mrcp2]
[Dec 27 15:47:04] NOTICE[22359]: src/mrcp_sofiasip_client_agent.c:556 : Receive SIP Event [nua_i_state] Status 200 OK [speech-nuance5-mrcp2]
[Dec 27 15:47:04] NOTICE[22359]: src/mrcp_sofiasip_client_agent.c:494 : SIP Call State ASR-0 [ready]
[Dec 27 15:47:04] NOTICE[22359]: src/mrcp_sofiasip_client_agent.c:380 : Remote SDP ASR-0
v=0
o=UniMRCPServer 8852379940481215765 6244095247722662515 IN IP4 xxx.xxx.xxx.xxx
s=-
c=IN IP4 xxx.xxx.xxx.xxx
t=0 0
m=application 2544 TCP/MRCPv2 1
a=setup:passive
a=connection:new
a=channel:99cef90c163f407f@speechrecog
a=cmid:1
m=audio 0 RTP/AVP 19
[Dec 27 15:47:04] NOTICE[22359]: src/mrcp_sofiasip_client_agent.c:556 : Receive SIP Event [nua_i_active] Status 200 Call active [speech-nuance5-mrcp2]
[Dec 27 15:47:04] NOTICE[22356]: src/mrcp_client_session.c:149 : Receive Answer ASR-0 [c:1 a:1 v:0] Status 200
[Dec 27 15:47:04] NOTICE[22357]: src/mrcp_client_connection.c:336 : Established TCP/MRCPv2 Connection xxx.xxx.xxx.xxx:44750 <-> xxx.xxx.xxx.xxx:2544
[Dec 27 15:47:04] NOTICE[22357]: src/mrcp_client_connection.c:433 : Add Control Channel 99cef90c163f407f@speechrecog xxx.xxx.xxx.xxx:44750 <-> xxx.xxx.xxx.xxx:2544 [1]
[Dec 27 15:47:04] NOTICE[22356]: src/mrcp_client_session.c:453 : Raise App Response ASR-0 <99cef90c163f407f> [2] SUCCESS [0]
[Dec 27 15:47:04] ERROR[22356]: app_mrcprecog.c:258 speech_on_channel_add: (ASR-0) Unable to determine codec descriptor
[Dec 27 15:47:04] NOTICE[22356]: src/mrcp_client_session.c:385 : Receive App Request ASR-0 <99cef90c163f407f> [1]
[Dec 27 15:47:04] NOTICE[22356]: src/mrcp_client_session.c:828 : Terminate Session ASR-0 <99cef90c163f407f>
[Dec 27 15:47:04] NOTICE[22357]: src/mrcp_client_connection.c:457 : Remove Control Channel 99cef90c163f407f@speechrecog [0]
[Dec 27 15:47:04] NOTICE[22357]: src/mrcp_client_connection.c:384 : Close TCP/MRCPv2 Connection xxx.xxx.xxx.xxx:44750 <-> xxx.xxx.xxx.xxx:2544
[Dec 27 15:47:04] NOTICE[22359]: src/mrcp_sofiasip_client_agent.c:556 : Receive SIP Event [nua_r_bye] Status 200 OK [speech-nuance5-mrcp2]
[Dec 27 15:47:04] NOTICE[22359]: src/mrcp_sofiasip_client_agent.c:556 : Receive SIP Event [nua_i_state] Status 200 to BYE [speech-nuance5-mrcp2]
[Dec 27 15:47:04] NOTICE[22359]: src/mrcp_sofiasip_client_agent.c:494 : SIP Call State ASR-0 [terminated]
[Dec 27 15:47:04] NOTICE[22356]: src/mrcp_client_session.c:207 : Session Terminated ASR-0 <99cef90c163f407f>
[Dec 27 15:47:04] NOTICE[22356]: src/mrcp_client_connection.c:233 : Destroy TCP/MRCPv2 Connection xxx.xxx.xxx.xxx:44750 <-> xxx.xxx.xxx.xxx:2544
[Dec 27 15:47:04] NOTICE[22356]: src/mrcp_client.c:706 : Remove MRCP Handle ASR-0 <99cef90c163f407f>
[Dec 27 15:47:04] NOTICE[22356]: src/mrcp_client_session.c:453 : Raise App Response ASR-0 <99cef90c163f407f> [1] SUCCESS [0]
[Dec 27 15:47:04] NOTICE[22356]: src/mrcp_application.c:203 : Destroy MRCP Handle ASR-0
[Dec 27 15:47:04] NOTICE[22374][C-00000001]: app_mrcprecog.c:1040 mrcprecog_exit: MRCPRecog() exiting status: ERROR on PJSIP/1003-00000000
== Spawn extension (internal, s, 2) exited non-zero on 'PJSIP/1003-00000000'
if i change the codec of A side from "opus" to "ulaw,alaw", the audio recognize functionity works fine.
Does unimrcp support transcoding?And how should i do?
The process of loading a large grammar takes place with the error "Unable to load grammar"
For 16mb grammar, 30 seconds of the timeout for downloading specified in SPEECH_CHANNEL_TIMEOUT_USEC is not sufficient.
Please add the feature, using the config, set the value for SPEECH_CHANNEL_TIMEOUT_USEC
Hi I have successfully installed unimrcp client,server and unimrcp asterisk on my new centOS 7 server with Asterisk but when I try to use speech recognition I can not perform because it says that grammar load failure. Here is my dialplan given below:
exten => 1235,1,Answer
exten => 1235,n,MRCPRecog(builtin:grammar/number,p=default&t=5000&b=1&ct=0.7&spl=en-US&f=hello-world)
same=>n,Verbose(1, ${RECOGSTATUS}, ${RECOG_COMPLETION_CAUSE},${RECOG_RESULT})
exten => 1235,Hangup
and the error what I receive is :
builtin:grammar/number
[Jun 10 08:34:07] NOTICE[2440]: src/mrcp_client_connection.c:633 : Receive MRCPv2 Data 10.0.0.117:48704 <-> 10.0.0.117:1544 [125 bytes]
MRCP/2.0 125 1 406 COMPLETE
Channel-Identifier: 6b2df9bddc39466b@speechrecog
Completion-Cause: 004 grammar-load-failure
[Jun 10 08:34:07] NOTICE[2439]: src/mrcp_client_session.c:498 : Raise App MRCP Response ASR-10 <6b2df9bddc39466b>
[Jun 10 08:34:07] ERROR[2755][C-00000010]: app_mrcprecog.c:1304 app_recog_exec: (ASR-10) Unable to start recognition
Any currently available version of asterisk-unimrcp capable of being installed with Asterisk 13 produces RTP that violates the G.711 standard of 20ms packetization when TTS is sent on an outbound stream.
Asterisk/asterisk-unimrcp takes valid 20ms audio packets received from the TTS server and transcodes them into 10ms packets before sending them out.
Asterisk | asterisk-unimrcp | SIP Channel Driver | Symptoms |
---|---|---|---|
asterisk-1.8.13.0 | asterisk-unimrcp-1.3.1 | chan_sip | Not affected |
asterisk-13.19.1 | asterisk-unimrcp-1.3.1 | chan_sip | Affected |
asterisk-13.19.1 | asterisk-unimrcp-1.5.2 | chan_sip | Affected |
asterisk-13.19.1 | asterisk-unimrcp-1.5.2 | chan_pjsip | Not affected |
Above: TTS Server -> Asterisk/asterisk-unimrcp Audio Stream with proper 20ms packets and negligible sub-millisecond jitter.
Above: Asterisk/asterisk-unimrcp -> Outbound Audio Stream transitioning to improper 10ms packets and high jitter when TTS is sent out.
[general]
default-tts-profile = tts-mrcp1
log-level = DEBUG
max-connection-count = 100
offer-new-connection = 1
; rx-buffer-size = 1024
; tx-buffer-size = 1024
request-timeout = 1000
[tts-mrcp1]
version = 1
server-port = 554
server-ip = tts.myserver.com
rtp-ip = 192.168.1.2;
rtp-port-min = 40000
rtp-port-max = 65535
speechsynth = synthesizer
Note: I've also tried with the following settings appended to the [tts-mrcp1] section, with no change in behavior
; === Jitter buffer settings ===
playout-delay = 0
max-playout-delay = 0
; === RTP settings ===
ptime = 20
codecs = PCMU telephone-event/101/8000
Inbound calls are configured to route to [corrupted-audio-reproducible-case]
[corrupted-audio-reproducible-case]
exten => _X.,1,Answer
same => n,Wait(1)
; The following TTS media to the Caller is received and proxied in proper packets of ptime 20ms samples (size 160).
same => n,MRCPSynth(Hello Caller. Please wait while we attempt to connect you to the Recipient.,p=default)
same => n,Set(outbound_proxy_ip=192.168.1.3) ; customize this
same => n,Set(recipient_number=15551231234) ; customize this
same => n,Set(dial_timeout=120)
same => n,Set(call_time_limit=28800000)
same => n,Set(recipient_welcome_macro=recipient-whisper)
same => n,Dial(SIP/${outbound_proxy_ip}/${recipient_number},${dial_timeout},L(${call_time_limit})M(${recipient_welcome_macro}))
[macro-recipient-whisper]
exten => s,1,NoOp(Note: Playing welcome whisper message to the recipient)
same => n,Wait(1)
; The following TTS media to the Recipient is received from the TTS server in ptime 20ms samples (size 160),
; but is unexpectedly transcoded into ptime 10ms samples (size 80) upon retransmission.
same => n,MRCPSynth(Hello Recipient. We are connecting you to the Caller now. Enjoy your conversation.,p=default)
same => n,NoOp(Note: Finished playing welcome whisper message to the recipient)
With verbose RTP debugging in Asterisk enabled (sudo asterisk -rx 'rtp set debug on'
), it is clear to see that Asterisk transitions from ptime 20ms packets (size 160) to ptime 10ms packets (size 80) while proxying/transcoding TTS:
[...]
[2019-10-09 13:06:44.888] VERBOSE[25240][C-00000007] res_rtp_asterisk.c: Sent RTP packet to 192.168.1.3:39348 (type 00, seq 022490, ts 059520, len
000160
)
[2019-10-09 13:06:44.908] VERBOSE[25240][C-00000007] res_rtp_asterisk.c: Sent RTP packet to 192.168.1.3:39348 (type 00, seq 022491, ts 059680, len000160
)
[2019-10-09 13:06:44.928] VERBOSE[25240][C-00000007] res_rtp_asterisk.c: Sent RTP packet to 192.168.1.3:39348 (type 00, seq 022492, ts 059840, len000160
)
[2019-10-09 13:06:44.948] VERBOSE[25240][C-00000007] res_rtp_asterisk.c: Sent RTP packet to 192.168.1.3:39348 (type 00, seq 022493, ts 060000, len000160
)
[2019-10-09 13:06:44.968] VERBOSE[25240][C-00000007] res_rtp_asterisk.c: Sent RTP packet to 192.168.1.3:39348 (type 00, seq 022494, ts 060160, len000160
)
[2019-10-09 13:06:45.411] VERBOSE[25240][C-00000007] app_dial.c: SIP/192.168.1.3-0000000c answered SIP/foobox-0000000b
[2019-10-09 13:06:45.411] VERBOSE[25240][C-00000007] pbx.c: Executing [s@macro-recipient-whisper:1] NoOp("SIP/192.168.1.3-0000000c", "Note: Playing welcome whisper message to the recipient"
) in new stack
[2019-10-09 13:06:45.411] VERBOSE[25240][C-00000007] pbx.c: Executing [s@macro-recipient-whisper:2] Wait("SIP/192.168.1.3-0000000c", "1") in new stack
[2019-10-09 13:06:46.411] VERBOSE[25240][C-00000007] pbx.c: Executing [s@macro-recipient-whisper:3] MRCPSynth("SIP/192.168.1.3-0000000c", "Hello Recipient. We are connecting you to the Caller now. Enjoy your conversation.,p=default") in new stack[...]
[2019-10-09 13:06:46.433] NOTICE[22592] src/rtsp_client.c: Receive RTSP Data 192.168.1.2:44926 <-> 192.168.1.6:554 [131 bytes]
RTSP/1.0 200 OK
CSeq: 2
Session: 3264602811
Content-Type: application/mrcp
Content-Length: 30MRCP/1.0 1 200 IN-PROGRESS
[2019-10-09 13:06:46.433] NOTICE[22592] src/rtsp_client.c: Pop In-Progress RTSP Request 0x7fe4e400d6c8 CSeq:2
[2019-10-09 13:06:46.433] DEBUG[22592] src/apt_task.c: Signal Message to [MRCP Client] [0x7fe4d4003c60;1;2]
[2019-10-09 13:06:46.433] DEBUG[22592] src/apt_poller_task.c: Wait for Messages [tts-mrcp1]
[2019-10-09 13:06:46.433] DEBUG[22589] src/apt_task.c: Process Message [MRCP Client] [0x7fe4d4003c60;1;2]
[2019-10-09 13:06:46.433] NOTICE[22589] src/mrcp_client_session.c: Raise App MRCP Response TTS-12 <3264602811>
[2019-10-09 13:06:46.433] DEBUG[22589] app_mrcpsynth.c: (TTS-12) REQUEST IN PROGRESS
[2019-10-09 13:06:46.433] DEBUG[22589] speech_channel.c: (TTS-12) READY ==> PROCESSING
[2019-10-09 13:06:46.433] DEBUG[22589] src/apt_consumer_task.c: Wait for Messages [MRCP Client]
[2019-10-09 13:06:46.468] VERBOSE[22591] res_rtp_asterisk.c: Sent RTP packet to 192.168.1.3:39348 (type 00, seq 022495, ts184216
, len000080
)
[2019-10-09 13:06:46.478] VERBOSE[22591] res_rtp_asterisk.c: Sent RTP packet to 192.168.1.3:39348 (type 00, seq 022496, ts 184296, len000080
)
[2019-10-09 13:06:46.488] VERBOSE[22591] res_rtp_asterisk.c: Sent RTP packet to 192.168.1.3:39348 (type 00, seq 022497, ts 184376, len000080
)
[2019-10-09 13:06:46.498] VERBOSE[22591] res_rtp_asterisk.c: Sent RTP packet to 192.168.1.3:39348 (type 00, seq 022498, ts 184456, len000080
)
[2019-10-09 13:06:46.508] VERBOSE[22591] res_rtp_asterisk.c: Sent RTP packet to 192.168.1.3:39348 (type 00, seq 022499, ts 184536, len000080
)[...]
Hi guys, how are you?
I have a doubt, I'm using MRCPRecog within the Asterisk Dialplan and I wanted to somehow be able to pass the server-ip of my MRCP server as a parameter, today I leave it fixed inside the mrcp.conf file, I need to somehow leave this IP dynamic, because I'm implementing some speech recognition services, I wanted to be able to switch between these servers using the same asterisk/dialplan.
Have any of you been through this and can you help me on how to proceed?
Thanks.
I want to do continuous speech recognition.
My dialplan:
[general]
autofallthrough = no
[from-internal]
exten = 200,1,Answer()
same = n,Wait(1)
same = n,SpeechCreate()
same = n,SpeechBackground(hello)
same = n,Verbose(0, Result is: ${SPEECH_TEXT(0)})
same = n(record),SpeechBackground()
same = n,Wait(1)
same = n,Verbose(0, Result is: ${SPEECH_TEXT(0)})
same = n,Goto(record)
It works fine but if you don't give input, after a while it continuously gives warning below and do not make any recognition:
It supposed to recognize again when I am talked.
I have tested ASR and TTS functionity today,and my asterisk and mrcp server were all installed behind NAT, asterisk communicated with mrcp server remotely through the internet.I have setup the local IP and external IP of asterisk-unimrcp and mrcp server(all for sip and rtp), and mrcp server also setup the static NAT to pass through the NAT.ASR functionity worked fine but TTS functionity failed,i can hear nothing at user side.
I found that mrcp server had sent out the RTP packets but asterisk-unimrcp can't receive these RTP packets,but sip and mrcp signals worked fine at TTS case.The RTP downstream of TTS was blocked by NAT.
I think this was caused by the unidirectionality of TTS RTP stream.I think this can be solved by setup a static NAT at asterisk side, or put the asterisk server into the DMZ of router,or a ICE solution,but unfortunately these solutions are not allowed by my requirements.
Any other solution(s) to solve this issue?
How to send CALLER ID from asterisk to unimrcp server?
I'm calling with Zoiper and my username is 6001. How can I send the username(6001) to unimrcp server?
Thanks,
Süheyla.
For CentOS 7/x86_64, the correct path for 64-bit libraries is /usr/lib64, not /usr/lib:
# ./configure --libdir=/usr/lib64
...
************ REPORT ************
Modules install path...........: /usr/lib/asterisk/modules
...
# make && make install
...
Libraries have been installed in:
/usr/lib/asterisk/modules
Thus, after installation, one has to manually move the libs out of /usr/lib/asterisk/modules/ into /usr/lib64/asterisk/modules/ in order for Asterisk to load Unimrcp.
Hello.
There is a dump with a problem in the attachment. The problem appears to be due to a long DTMF signal from the upstream station. Unimrcp takes one button for two.
1.zip
When I try to setup asterisk 17 with unimrcp I get the following error:
cd asterisk-unimrcp-1.5.2/
./configure
make
make install
....
configure: UniMRCP configuration
1.6.0
configure: Asterisk configuration
17.0.1
configure: error: Could not find asterisk.h, make sure Asterisk development package is installed
Im experiencing a deadlock with the latest release 1.5
Channel Context Extension Prio State Application Data CallerID Duration Accountcode PeerAccount BridgeID
SIP/QUALITY1-0000005 functions FUNC_DIGITE_O_DI 5 Up MRCPRecog "/usr/local/unimrcp/data/ 912732278 07:26:42 QUALITY1
attached traces I will compile it with better debug options and add them
core-asterisk-running-2017-09-07T16-59-48+0200-brief.txt
core-asterisk-running-2017-09-07T16-59-48+0200-full.txt
core-asterisk-running-2017-09-07T16-59-48+0200-locks.txt
core-asterisk-running-2017-09-07T16-59-48+0200-thread1.txt
Our dialplan in asterisk:
[test]
exten => 1000,1,NoOp(Test)
same => n,SynthAndRecog("This is a test. Press 1 for option A, Press 2 for option 2", "http://localhost/grm/hotword_void.bnf,http://localhost/grm/dtmf.abnf",sit=1&nit=30000&t=30000&spl=es&ct=1.0)
same => n,NoOp("FINAL OQ MRCP STATUS: "${RECOG_RESULT} - ${RECOG_INSTANCE()})
same = n,MRCPSynth("You press ${RECOG_INSTANCE()}",v=aurora)
same => n(fin),Hangup()
exten => h,1,Hangup
We have experienced problems with the calls when it hangup, leaving "channels" in the asterisk despite hanging up the call, until we have put this last line (exten => h,1,Hangup).
[2021-07-13 10:36:17] WARNING[8426][C-00000004] channel.c: Exceptionally long voice queue length queuing to Local/662211917@from-internal-00000002;1
Is this normal in unimrcp? Why our installation of unimrcd dont manage properly the calls with hangup result?
The problem seems to be related to the re-creation of Handle ASR-99752. No regularities were found in the appearance of this problem. the problem appears on different versions of asterisk and unimrcp-asterisk. in the dump attachment.
Desktop.zip
[Aug 5 10:39:50] NOTICE[3774][C-00004330] src/mrcp_client_session.c: Create Channel ASR-99752
[Aug 5 10:39:50] NOTICE[17137] src/mrcp_sofiasip_client_agent.c: Local SDP ASR-99752
[Aug 5 10:39:50] NOTICE[17141] src/mrcp_sofiasip_client_agent.c: Remote SDP ASR-99752
[Aug 5 10:39:55] NOTICE[17137] src/mrcp_application.c: Destroy MRCP Handle ASR-99752
[Aug 5 10:39:56] NOTICE[3774][C-00004330] src/mrcp_client_session.c: Create Channel ASR-99752
[Aug 5 10:39:56] NOTICE[17137] src/mrcp_sofiasip_client_agent.c: Local SDP ASR-99752
[Aug 5 10:39:56] NOTICE[17141] src/mrcp_sofiasip_client_agent.c: Remote SDP ASR-99752
[Aug 5 10:40:05] NOTICE[17137] src/mrcp_application.c: Destroy MRCP Handle ASR-99752
[Aug 5 10:40:27] NOTICE[3774][C-00004330] src/mrcp_client_session.c: Create Channel ASR-99752
[Aug 5 10:40:27] NOTICE[17137] src/mrcp_sofiasip_client_agent.c: Local SDP ASR-99752
[Aug 5 10:40:27] NOTICE[17141] src/mrcp_sofiasip_client_agent.c: Remote SDP ASR-99752
[Aug 5 10:45:22] NOTICE[17141] src/mrcp_sofiasip_client_agent.c: Remote SDP ASR-99752 <10a6e136d398425c>
[Aug 5 10:50:19] NOTICE[17141] src/mrcp_sofiasip_client_agent.c: Remote SDP ASR-99752 <10a6e136d398425c>
[Aug 5 10:55:18] NOTICE[17141] src/mrcp_sofiasip_client_agent.c: Remote SDP ASR-99752 <10a6e136d398425c>
[Aug 5 11:00:19] NOTICE[17141] src/mrcp_sofiasip_client_agent.c: Remote SDP ASR-99752 <10a6e136d398425c>
[Aug 5 11:05:15] NOTICE[17141] src/mrcp_sofiasip_client_agent.c: Remote SDP ASR-99752 <10a6e136d398425c>
Im getting this warning time to time, what is the reason of a queue overflow?
WARNING[57182][C-00004386] audio_queue.c: (ASR-15473) Audio queue overflow!
We are using the MRCPRecog function for speech recognition. We have a use case where on the same call we are taking speech 2 times.
It produces the correct result for one statement for the first time.
In the same call, if the user does not speak anything then also it will give a result of the previous statement. Here, no input result is expected when the user does not speak anything.
Also, we are getting the "OK" status in the RECOGSTATUS variable for the second time.
Attached the Logs for your reference.
speech_text.txt
the output of ./configure --with-asterisk-version=11.7.0 is good:
****************************** REPORT ******************************
Asterisk version.............. : 11.7.0
UniMRCP version............... : 1.4.0
UniMRCP modules version....... : 1.4.0
Compiler...................... : gcc
Compiler flags................ : -g -O2
Preprocessor definitions...... :
Linker flags.................. :
Modules install path...........: /usr/lib/asterisk/modules
Configuration install path.....: /etc/asterisk
XML doc install path...........: /var/lib/asterisk/documentation/thirdparty
Speech resource module.........: yes
Application module.............: yes
********************************************************************
but make give the folowing error:
Making all in res-speech-unimrcp
make[1]: Entering directory `/root/asterisk-unimrcp/res-speech-unimrcp'
CC res_speech_unimrcp.lo
In file included from res_speech_unimrcp.c:28:0:
../include/ast_compat_defs.h:85:29: fatal error: asterisk/format.h: No such file or directory
#include "asterisk/format.h"
^
compilation terminated.
make[1]: *** [res_speech_unimrcp.lo] Error 1
make[1]: Leaving directory `/root/asterisk-unimrcp/res-speech-unimrcp'
make: *** [all-recursive] Error 1
Hello,
I was testing the resilience of our system against different errors, and in a scenario where for some reason our MRCP server would not respond to an INVITE when establishing the MRCPv2 session, I noticed that whatever value I assign to the parameter request-timeout
in mrcp.conf, the request timeout always occurs after about 30 seconds.
Note that In the log trace below I have set request-timeout
to 5 but I have tried with other values (10, 10000) and the effect is always the same.
Can someone confirm that the request-timeout
setting is being applied as expected on their installation?
In advance, thank you.
Asterisk version: 17.4.0
Asterisk Unimrcp version: 1.7.0
[2020-08-24 16:17:21] DEBUG[1]: ast_unimrcp_framework.c:827 load_mrcp_config: general.request-timeout=5
....
[2020-08-24 16:39:14] NOTICE[3676][C-00000001]: app_synthandrecog.c:1335 app_synthandrecog_exec: SynthAndRecog() prompt: <?xml version='1.0' encoding='UTF-8'?><speak version='1.0' xmlns='http://www.w3.org/2001/10/synthesis' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.w3.org/2001/10/synthesis http://www.w3.org/TR/speech-synthesis/synthesis.xsd' xml:lang='de-DE'><p>Hallo ich bin ein Test</p></speak>
[2020-08-24 16:39:14] NOTICE[3676][C-00000001]: app_synthandrecog.c:1343 app_synthandrecog_exec: SynthAndRecog() grammar: http://some.server/nuance_package.json?nlptype=config
[2020-08-24 16:39:14] DEBUG[3676][C-00000001]: app_datastore.c:157 app_datastore_get: Create app datastore on PJSIP/+4911111111111-00000000
[2020-08-24 16:39:14] NOTICE[3676][C-00000001]: app_synthandrecog.c:1359 app_synthandrecog_exec: SynthAndRecog() options: p=default&spl=de-DE&sit=1&b=0&t=30000&nit=1000&sct=1000
[2020-08-24 16:39:14] DEBUG[3676][C-00000001]: app_synthandrecog.c:1159 synthandrecog_options_parse: Apply option p: default
[2020-08-24 16:39:14] DEBUG[3676][C-00000001]: app_synthandrecog.c:1159 synthandrecog_options_parse: Apply option spl: de-DE
[2020-08-24 16:39:14] DEBUG[3676][C-00000001]: app_synthandrecog.c:1159 synthandrecog_options_parse: Apply option sit: 1
[2020-08-24 16:39:14] DEBUG[3676][C-00000001]: app_synthandrecog.c:1159 synthandrecog_options_parse: Apply option b: 0
[2020-08-24 16:39:14] DEBUG[3676][C-00000001]: app_synthandrecog.c:1159 synthandrecog_options_parse: Apply option t: 30000
[2020-08-24 16:39:14] DEBUG[3676][C-00000001]: app_synthandrecog.c:1159 synthandrecog_options_parse: Apply option nit: 1000
[2020-08-24 16:39:14] DEBUG[3676][C-00000001]: app_synthandrecog.c:1159 synthandrecog_options_parse: Apply option sct: 1000
[2020-08-24 16:39:14] DEBUG[3676][C-00000001]: app_datastore.c:210 app_datastore_session_add: Add entry _default to datastore on PJSIP/+4911111111111-00000000
[2020-08-24 16:39:14] DEBUG[3676][C-00000001]: audio_queue.c:253 audio_queue_create: (ASR-0) Audio queue created
[2020-08-24 16:39:14] DEBUG[3676][C-00000001]: speech_channel.c:252 speech_channel_create: Created speech channel: Name=ASR-0, Type=RECOGNIZER, Codec=PCMU, Rate=8000 on PJSIP/+4911111111111-00000000
[2020-08-24 16:39:14] NOTICE[3676][C-00000001]: src/mrcp_application.c:117 Create MRCP Handle 0x7fd63c01feb8 [unimrcp-mrcp2]
[2020-08-24 16:39:14] NOTICE[3676][C-00000001]: src/mrcp_client_session.c:131 Create Channel ASR-0 <new>
[2020-08-24 16:39:14] DEBUG[3676][C-00000001]: src/apt_task.c:263 Signal Message to [MRCP Client] [0x7fd63c001400;4;0]
[2020-08-24 16:39:14] DEBUG[3661]: src/apt_task.c:335 Process Message [MRCP Client] [0x7fd63c001400;4;0]
[2020-08-24 16:39:14] NOTICE[3661]: src/mrcp_client_session.c:385 Receive App Request ASR-0 <new> [2]
[2020-08-24 16:39:14] NOTICE[3661]: src/mrcp_client.c:697 Add MRCP Handle ASR-0 <new>
[2020-08-24 16:39:14] DEBUG[3661]: src/mrcp_client_session.c:1277 Dispatch App Request ASR-0 <new> [2]
[2020-08-24 16:39:14] DEBUG[3661]: src/apt_task.c:263 Signal Message to [MRCPv2ConnectionAgent] [0x7fd65c001a40;1;0]
[2020-08-24 16:39:14] NOTICE[3661]: src/mrcp_client_session.c:717 Add Control Channel ASR-0 <new@speechrecog>
[2020-08-24 16:39:14] DEBUG[3661]: src/mrcp_client_session.c:743 Add Media Termination ASR-0 <new@media-tm>
[2020-08-24 16:39:14] DEBUG[3661]: src/mrcp_client_session.c:772 Add Media Termination ASR-0 <new@rtp-tm>
[2020-08-24 16:39:14] DEBUG[3661]: src/apt_task.c:263 Signal Message to [MediaEngine] [0x7fd648006610;1;0]
[2020-08-24 16:39:14] DEBUG[3661]: src/apt_consumer_task.c:135 Wait for Messages [MRCP Client]
[2020-08-24 16:39:14] DEBUG[3662]: src/apt_poller_task.c:259 Process Poller Wakeup [MRCPv2ConnectionAgent]
[2020-08-24 16:39:14] DEBUG[3662]: src/apt_task.c:335 Process Message [MRCPv2ConnectionAgent] [0x7fd65c001a40;1;0]
[2020-08-24 16:39:14] DEBUG[3662]: src/apt_task.c:263 Signal Message to [MRCP Client] [0x7fd65c001ca0;2;0]
[2020-08-24 16:39:14] DEBUG[3662]: src/apt_poller_task.c:249 Wait for Messages [MRCPv2ConnectionAgent]
[2020-08-24 16:39:14] DEBUG[3661]: src/apt_task.c:335 Process Message [MRCP Client] [0x7fd65c001ca0;2;0]
[2020-08-24 16:39:14] DEBUG[3661]: src/mrcp_client_session.c:292 Control Channel Added ASR-0 <new@speechrecog>
[2020-08-24 16:39:14] DEBUG[3661]: src/apt_consumer_task.c:135 Wait for Messages [MRCP Client]
[2020-08-24 16:39:14] DEBUG[3663]: src/apt_task.c:335 Process Message [MediaEngine] [0x7fd648006610;1;0]
[2020-08-24 16:39:14] DEBUG[3663]: src/mpf_context.c:180 Add Media Context ASR-0
[2020-08-24 16:39:14] DEBUG[3663]: src/apt_task.c:263 Signal Message to [MRCP Client] [0x7fd64c0018d0;3;0]
[2020-08-24 16:39:14] DEBUG[3661]: src/apt_task.c:335 Process Message [MRCP Client] [0x7fd64c0018d0;3;0]
[2020-08-24 16:39:14] DEBUG[3661]: src/mrcp_client_session.c:939 Media Termination Added ASR-0 <new@media-tm>
[2020-08-24 16:39:14] DEBUG[3661]: src/mrcp_client_session.c:939 Media Termination Added ASR-0 <new@rtp-tm>
[2020-08-24 16:39:14] NOTICE[3661]: src/mrcp_client_session.c:409 Send Offer ASR-0 <new> [c:1 a:1 v:0] to 127.0.0.1:8060
[2020-08-24 16:39:14] NOTICE[3661]: src/mrcp_sofiasip_client_agent.c:357 Local SDP ASR-0 <new>
v=0
o=Asterisk 0 0 IN IP4 xxx.xxx.xxx.xxx
s=-
c=IN IP4 xxx.xxx.xxx.xxx
t=0 0
m=application 9 TCP/MRCPv2 1
a=setup:active
a=connection:new
a=resource:speechrecog
a=cmid:1
m=audio 10000 RTP/AVP 0 8 96 101
a=rtpmap:0 PCMU/8000
a=rtpmap:8 PCMA/8000
a=rtpmap:96 L16/8000
a=rtpmap:101 telephone-event/8000
a=fmtp:101 0-15
a=sendonly
a=ptime:20
a=mid:1
[2020-08-24 16:39:14] DEBUG[3661]: src/apt_consumer_task.c:135 Wait for Messages [MRCP Client]
[2020-08-24 16:39:14] NOTICE[3664]: src/mrcp_sofiasip_client_agent.c:617 Receive SIP Event [nua_i_state] Status 0 INVITE sent [unimrcp-mrcp2]
[2020-08-24 16:39:14] NOTICE[3664]: src/mrcp_sofiasip_client_agent.c:555 SIP Call State ASR-0 [calling]
[2020-08-24 16:39:14] NOTICE[3664]: src/mrcp_sofiasip_client_agent.c:617 Receive SIP Event [nua_r_invite] Status 200 [unimrcp-mrcp2]
[2020-08-24 16:39:14] NOTICE[3664]: src/mrcp_sofiasip_client_agent.c:617 Receive SIP Event [nua_i_state] Status 200 [unimrcp-mrcp2]
[2020-08-24 16:39:14] NOTICE[3664]: src/mrcp_sofiasip_client_agent.c:555 SIP Call State ASR-0 [ready]
[2020-08-24 16:39:14] NOTICE[3664]: src/mrcp_sofiasip_client_agent.c:441 Remote SDP ASR-0 <new>
v=0
o=I4H_Server 1598287154879 1598287154879 IN IP4 127.0.0.1
s=-
c=IN IP4 127.0.0.1
t=0 0
m=application 8060 TCP/MRCPv2 1
a=setup:passive
a=connection:new
a=channel:9ab35de3-8722-4efa-b2dd-5011006ccde5@speechrecog
a=cmid:1
m=audio 40650 RTP/AVP 0
a=rtpmap:0 PCMU/8000
a=recvonly
a=ptime:20
a=mid:1
[2020-08-24 16:39:14] DEBUG[3664]: src/apt_task.c:263 Signal Message to [MRCP Client] [0x7fd654006990;1;0]
[2020-08-24 16:39:14] NOTICE[3664]: src/mrcp_sofiasip_client_agent.c:617 Receive SIP Event [nua_i_active] Status 200 Call active [unimrcp-mrcp2]
[2020-08-24 16:39:14] DEBUG[3661]: src/apt_task.c:335 Process Message [MRCP Client] [0x7fd654006990;1;0]
[2020-08-24 16:39:14] NOTICE[3661]: src/mrcp_client_session.c:149 Receive Answer ASR-0 <new> [c:1 a:1 v:0] Status 200
[2020-08-24 16:39:14] DEBUG[3661]: src/mrcp_client_session.c:1136 Modify Control Channel ASR-0 <9ab35de3-8722-4efa-b2dd-5011006ccde5>
[2020-08-24 16:39:14] DEBUG[3661]: src/apt_task.c:263 Signal Message to [MRCPv2ConnectionAgent] [0x7fd6480090b0;1;0]
[2020-08-24 16:39:14] DEBUG[3661]: src/mrcp_client_session.c:1174 Modify Media Termination ASR-0 <9ab35de3-8722-4efa-b2dd-5011006ccde5@rtp-tm>
[2020-08-24 16:39:14] DEBUG[3661]: src/apt_task.c:263 Signal Message to [MediaEngine] [0x7fd64c0018d0;1;0]
[2020-08-24 16:39:14] DEBUG[3661]: src/apt_consumer_task.c:135 Wait for Messages [MRCP Client]
[2020-08-24 16:39:14] DEBUG[3662]: src/apt_poller_task.c:259 Process Poller Wakeup [MRCPv2ConnectionAgent]
[2020-08-24 16:39:14] DEBUG[3662]: src/apt_task.c:335 Process Message [MRCPv2ConnectionAgent] [0x7fd6480090b0;1;0]
[2020-08-24 16:39:14] NOTICE[3662]: src/mrcp_client_connection.c:346 Established TCP/MRCPv2 Connection 127.0.0.1:37222 <-> 127.0.0.1:8060
[2020-08-24 16:39:14] NOTICE[3662]: src/mrcp_client_connection.c:456 Add Control Channel <9ab35de3-8722-4efa-b2dd-5011006ccde5@speechrecog> 127.0.0.1:37222 <-> 127.0.0.1:8060 [1]
[2020-08-24 16:39:14] DEBUG[3662]: src/apt_task.c:263 Signal Message to [MRCP Client] [0x7fd65c000900;2;1]
[2020-08-24 16:39:14] DEBUG[3662]: src/apt_poller_task.c:249 Wait for Messages [MRCPv2ConnectionAgent]
[2020-08-24 16:39:14] DEBUG[3661]: src/apt_task.c:335 Process Message [MRCP Client] [0x7fd65c000900;2;1]
[2020-08-24 16:39:14] DEBUG[3661]: src/mrcp_client_session.c:309 Control Channel Modified ASR-0 <9ab35de3-8722-4efa-b2dd-5011006ccde5@speechrecog>
[2020-08-24 16:39:14] DEBUG[3661]: src/apt_consumer_task.c:135 Wait for Messages [MRCP Client]
[2020-08-24 16:39:14] DEBUG[3663]: src/apt_task.c:335 Process Message [MediaEngine] [0x7fd64c0018d0;1;0]
[2020-08-24 16:39:14] NOTICE[3663]: src/mpf_rtp_stream.c:331 Enable RTP Session xxx.xxx.xxx.xxx:10000
[2020-08-24 16:39:14] DEBUG[3663]: src/mpf_bridge.c:153 Create Null Audio Bridge ASR-0
[2020-08-24 16:39:14] NOTICE[3663]: src/mpf_rtp_stream.c:921 Open RTP Transmitter xxx.xxx.xxx.xxx:10000 -> 127.0.0.1:40650
[2020-08-24 16:39:14] NOTICE[3663]: src/mpf_bridge.c:91 Media Path ASR-0 Source->[PCMU/8000/1]->Bridge->[PCMU/8000/1]->Sink
[2020-08-24 16:39:14] DEBUG[3663]: src/apt_task.c:263 Signal Message to [MRCP Client] [0x7fd648006610;3;0]
[2020-08-24 16:39:14] DEBUG[3661]: src/apt_task.c:335 Process Message [MRCP Client] [0x7fd648006610;3;0]
[2020-08-24 16:39:14] DEBUG[3661]: src/mrcp_client_session.c:980 Media Termination Modified ASR-0 <9ab35de3-8722-4efa-b2dd-5011006ccde5@rtp-tm>
[2020-08-24 16:39:14] NOTICE[3661]: src/mrcp_client_session.c:453 Raise App Response ASR-0 <9ab35de3-8722-4efa-b2dd-5011006ccde5> [2] SUCCESS [0]
[2020-08-24 16:39:14] DEBUG[3661]: app_synthandrecog.c:232 speech_on_channel_add: (ASR-0) speech_on_channel_add
[2020-08-24 16:39:14] DEBUG[3661]: app_synthandrecog.c:252 speech_on_channel_add: (ASR-0) DTMF generator created
[2020-08-24 16:39:14] NOTICE[3661]: app_synthandrecog.c:271 speech_on_channel_add: (ASR-0) Channel ready codec=PCMU, sample rate=8000
[2020-08-24 16:39:14] DEBUG[3661]: speech_channel.c:109 speech_channel_set_state_unlocked: (ASR-0) CLOSED ==> READY
[2020-08-24 16:39:14] DEBUG[3661]: src/apt_consumer_task.c:135 Wait for Messages [MRCP Client]
[2020-08-24 16:39:14] DEBUG[3676][C-00000001]: speech_channel.c:501 speech_channel_open: (ASR-0) channel is ready
[2020-08-24 16:39:14] DEBUG[3676][C-00000001]: app_synthandrecog.c:1504 app_synthandrecog_exec: (ASR-0) Determine grammar type: http://some.server/nuance_package.json?nlptype=config
[2020-08-24 16:39:14] DEBUG[3676][C-00000001]: app_synthandrecog.c:823 recog_channel_load_grammar: (ASR-0) Loading grammar name=grammar-0, type=text/uri-list, data=http://some.server/nuance_package.json?nlptype=config
[2020-08-24 16:39:14] DEBUG[3676][C-00000001]: app_synthandrecog.c:1541 app_synthandrecog_exec: (ASR-0) Add prompt: <?xml version='1.0' encoding='UTF-8'?><speak version='1.0' xmlns='http://www.w3.org/2001/10/synthesis' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.w3.org/2001/10/synthesis http://www.w3.org/TR/speech-synthesis/synthesis.xsd' xml:lang='de-DE'><p>Hallo ich bin ein Test</p></speak>
[2020-08-24 16:39:14] DEBUG[3676][C-00000001]: audio_queue.c:253 audio_queue_create: (TTS-0) Audio queue created
[2020-08-24 16:39:14] DEBUG[3676][C-00000001]: speech_channel.c:252 speech_channel_create: Created speech channel: Name=TTS-0, Type=SYNTHESIZER, Codec=PCMU, Rate=8000 on PJSIP/+4911111111111-00000000
[2020-08-24 16:39:14] NOTICE[3676][C-00000001]: src/mrcp_application.c:117 Create MRCP Handle 0x7fd63c02ed68 [unimrcp-mrcp2]
[2020-08-24 16:39:14] NOTICE[3676][C-00000001]: src/mrcp_client_session.c:131 Create Channel TTS-0 <new>
[2020-08-24 16:39:14] DEBUG[3676][C-00000001]: src/apt_task.c:263 Signal Message to [MRCP Client] [0x7fd63c002d20;4;0]
[2020-08-24 16:39:14] DEBUG[3661]: src/apt_task.c:335 Process Message [MRCP Client] [0x7fd63c002d20;4;0]
[2020-08-24 16:39:14] NOTICE[3661]: src/mrcp_client_session.c:385 Receive App Request TTS-0 <new> [2]
[2020-08-24 16:39:14] NOTICE[3661]: src/mrcp_client.c:697 Add MRCP Handle TTS-0 <new>
[2020-08-24 16:39:14] DEBUG[3661]: src/mrcp_client_session.c:1277 Dispatch App Request TTS-0 <new> [2]
[2020-08-24 16:39:14] DEBUG[3661]: src/apt_task.c:263 Signal Message to [MRCPv2ConnectionAgent] [0x7fd64800af60;1;0]
[2020-08-24 16:39:14] NOTICE[3661]: src/mrcp_client_session.c:717 Add Control Channel TTS-0 <new@speechsynth>
[2020-08-24 16:39:14] DEBUG[3661]: src/mrcp_client_session.c:743 Add Media Termination TTS-0 <new@media-tm>
[2020-08-24 16:39:14] DEBUG[3661]: src/mrcp_client_session.c:772 Add Media Termination TTS-0 <new@rtp-tm>
[2020-08-24 16:39:14] DEBUG[3661]: src/apt_task.c:263 Signal Message to [MediaEngine] [0x7fd648006610;1;0]
[2020-08-24 16:39:14] DEBUG[3661]: src/apt_consumer_task.c:135 Wait for Messages [MRCP Client]
[2020-08-24 16:39:14] DEBUG[3662]: src/apt_poller_task.c:259 Process Poller Wakeup [MRCPv2ConnectionAgent]
[2020-08-24 16:39:14] DEBUG[3662]: src/apt_task.c:335 Process Message [MRCPv2ConnectionAgent] [0x7fd64800af60;1;0]
[2020-08-24 16:39:14] DEBUG[3662]: src/apt_task.c:263 Signal Message to [MRCP Client] [0x7fd65c001d80;2;0]
[2020-08-24 16:39:14] DEBUG[3662]: src/apt_poller_task.c:249 Wait for Messages [MRCPv2ConnectionAgent]
[2020-08-24 16:39:14] DEBUG[3661]: src/apt_task.c:335 Process Message [MRCP Client] [0x7fd65c001d80;2;0]
[2020-08-24 16:39:14] DEBUG[3661]: src/mrcp_client_session.c:292 Control Channel Added TTS-0 <new@speechsynth>
[2020-08-24 16:39:14] DEBUG[3661]: src/apt_consumer_task.c:135 Wait for Messages [MRCP Client]
[2020-08-24 16:39:14] DEBUG[3663]: src/apt_task.c:335 Process Message [MediaEngine] [0x7fd648006610;1;0]
[2020-08-24 16:39:14] DEBUG[3663]: src/mpf_context.c:180 Add Media Context TTS-0
[2020-08-24 16:39:14] DEBUG[3663]: src/apt_task.c:263 Signal Message to [MRCP Client] [0x7fd64c0018d0;3;0]
[2020-08-24 16:39:14] DEBUG[3661]: src/apt_task.c:335 Process Message [MRCP Client] [0x7fd64c0018d0;3;0]
[2020-08-24 16:39:14] DEBUG[3661]: src/mrcp_client_session.c:939 Media Termination Added TTS-0 <new@media-tm>
[2020-08-24 16:39:14] DEBUG[3661]: src/mrcp_client_session.c:939 Media Termination Added TTS-0 <new@rtp-tm>
[2020-08-24 16:39:14] NOTICE[3661]: src/mrcp_client_session.c:409 Send Offer TTS-0 <new> [c:1 a:1 v:0] to 127.0.0.1:8060
[2020-08-24 16:39:14] NOTICE[3661]: src/mrcp_sofiasip_client_agent.c:357 Local SDP TTS-0 <new>
v=0
o=Asterisk 0 0 IN IP4 xxx.xxx.xxx.xxx
s=-
c=IN IP4 xxx.xxx.xxx.xxx
t=0 0
m=application 9 TCP/MRCPv2 1
a=setup:active
a=connection:new
a=resource:speechsynth
a=cmid:1
m=audio 10002 RTP/AVP 0 8 96 101
a=rtpmap:0 PCMU/8000
a=rtpmap:8 PCMA/8000
a=rtpmap:96 L16/8000
a=rtpmap:101 telephone-event/8000
a=fmtp:101 0-15
a=recvonly
a=ptime:20
a=mid:1
[2020-08-24 16:39:14] DEBUG[3661]: src/apt_consumer_task.c:135 Wait for Messages [MRCP Client]
[2020-08-24 16:39:14] NOTICE[3664]: src/mrcp_sofiasip_client_agent.c:617 Receive SIP Event [nua_i_state] Status 0 INVITE sent [unimrcp-mrcp2]
[2020-08-24 16:39:14] NOTICE[3664]: src/mrcp_sofiasip_client_agent.c:555 SIP Call State TTS-0 [calling]
localhost*CLI>
localhost*CLI>
localhost*CLI>
localhost*CLI>
localhost*CLI>
localhost*CLI>
localhost*CLI>
localhost*CLI>
[2020-08-24 16:39:46] NOTICE[3664]: src/mrcp_sofiasip_client_agent.c:617 Receive SIP Event [nua_r_invite] Status 408 Request Timeout [unimrcp-mrcp2]
[2020-08-24 16:39:46] NOTICE[3664]: src/mrcp_sofiasip_client_agent.c:617 Receive SIP Event [nua_i_state] Status 408 Request Timeout [unimrcp-mrcp2]
I've configured asterisk, unimrcp and zoiper.
My mrcp.conf file -->
[general]
; Default ASR and TTS profiles.
default-asr-profile = speech-nuance5-mrcp2
default-tts-profile = speech-nuance5-mrcp2
; UniMRCP logging level to appear in Asterisk logs. Options are:
; EMERGENCY|ALERT|CRITICAL|ERROR|WARNING|NOTICE|INFO|DEBUG -->
log-level = DEBUG
max-connection-count = 100
offer-new-connection = 1
; rx-buffer-size = 1024
; tx-buffer-size = 1024
; request-timeout = 5000
; speech-channel-timeout = 30000
;
; Profile for Nuance Speech Server MRCPv1
;
[unimrcpv1]
; MRCP settings
version = 1
;
; RTSP settings
server-ip = 192.168.1.9
server-port = 1554
resource-location = media
speechsynth = speechsynthesizer
; RTP factory
rtp-ip = 192.168.1.9
rtp-port-min = 28000
rtp-port-max = 29000
;
; Jitter buffer settings
playout-delay = 50
max-playout-delay = 200
; RTP settings
ptime = 20
codecs = PCMU PCMA L16/96/8000 telephone-event/101/8000
; RTCP settings
rtcp = 0
;
; Profile for Nuance Speech Server MRCPv2
;
[unimrcpv2]
; MRCP settings
version = 2
;
; SIP settings
server-ip = 192.168.1.9
server-port = 8004
; SIP user agent
client-ip = 192.168.1.9
client-port = 60820
;client-port = 25097
sip-transport = udp
;
; RTP factory
rtp-ip = 192.168.1.9
rtp-port-min = 28000
rtp-port-max = 29000
; Jitter buffer settings
playout-delay = 50
max-playout-delay = 200
; RTP settings
ptime = 20
codecs = PCMU PCMA L16/96/8000 telephone-event/101/8000
; RTCP settings
rtcp = 0
My extensions.conf file -->
[from-internal]
exten => 6113,1,Answer()
exten => 6113,n,MRCPRecog(builtin:grammar/number,p=default&t=5000&b=1&ct=0.7&spl=en-US&f=hello-world)
exten => 6113,n,Verbose(1, ${RECOGSTATUS}, ${RECOG_COMPLETION_CAUSE}, ${RECOG_RESULT})
exten => 6113,n,Hangup
Then when I'm making the call using zoiper getting below error -->
== Setting global variable 'SIPDOMAIN' to '192.168.1.9'
-- Executing [6113@from-internal:1] Answer("PJSIP/6001-00000007", "") in new stack
> 0x7f2fb8033c30 -- Strict RTP learning after remote address set to: 192.168.1.9:8000
> 0x7f2fb8033c30 -- Strict RTP switching to RTP target address 192.168.1.9:8000 as source
-- Executing [6113@from-internal:2] MRCPRecog("PJSIP/6001-00000007", "builtin:grammar/number,p=default&t=5000&b=1&ct=0.7&spl=en-US&f=hello-world") in new stack
[Sep 8 21:05:59] NOTICE[28712][C-00000008]: app_mrcprecog.c:1086 app_recog_exec: MRCPRecog() grammar: builtin:grammar/number
[Sep 8 21:05:59] NOTICE[28712][C-00000008]: app_mrcprecog.c:1107 app_recog_exec: MRCPRecog() options: p=default&t=5000&b=1&ct=0.7&spl=en-US&f=hello-world
> [Sep 8 21:05:59] ERROR[28712][C-00000008]: app_mrcprecog.c:1166 app_recog_exec: (ASR-6) Can't find profile, default
[Sep 8 21:05:59] NOTICE[28712][C-00000008]: app_mrcprecog.c:1047 mrcprecog_exit: MRCPRecog() exiting status: ERROR on PJSIP/6001-00000007
== Spawn extension (from-internal, 6113, 2) exited non-zero on 'PJSIP/6001-00000007'
Please help me with this one. Thank you in advance
"vsp" option contain value for MRCP header Vendor-Specific-Parameter
Hi, I somehow bumped into the following problem:
When you use the MRCPrecog function to play a .wav prompt containing a fact chunk header it shows a debug line in the asterisk console:
[Jul 2 16:59:04] DEBUG[640][C-00000029]: format_wav.c:192 check_header: Skipping unknown block 'fact'
However this also causes a small "popping" sound at the start of the prompt, which is really annoying for the end user.
Playing the same prompt in the Asterisk PLAYBACK function causes no issues.
wondering if anyone can help me with this...
Hello,
I am getting the following errors with compiling on Asterisk 13.8-cert4: https://gist.github.com/lpradovera/9bf1be1889e94d02fb67aef8f97edcc4
I installed UniMRCP and the deps from a Git checkout, and the Asterisk module is from Github too.
I would be happy to help debug and resolve this but I have no idea of where to start from.
Thanks!
I have a lot of problems compiling on Ubuntu and debian distro
You have a pay deb version cause if i try to use it have to be a subscription.
I only need try if this solution with watson service work fine.
Need to know if is a possible compile this or the way is pay for a deb or rpm version.
thx
I have compiled and installed asterisk-unimrcp with asterisk 15.1.2 successfully after apply the patch a966452,asterisk can start successfully, i have setup unimrcp client and asterisk-unimrcp correctly,i can connect to MRCP server with umc,and run synth and recog in umc can work.But if i call MRCPRecog in dialplan, i get a error:
Executing [59658008@internal:5] MRCPRecog("PJSIP/chatbot-00000000", "builtin:grammar/default, p=default&t=5000&b=1&ct=0.7&spl=zh-CN&sw=true&rm=normal&nit=8000&sct=300") in new stack
[Nov 22 15:43:38] NOTICE[2783][C-00000001]: app_mrcprecog.c:1086 app_recog_exec: MRCPRecog() grammar: builtin:grammar/default
[Nov 22 15:43:38] NOTICE[2783][C-00000001]: app_mrcprecog.c:1107 app_recog_exec: MRCPRecog() options: p=default&t=5000&b=1&ct=0.7&spl=zh-CN&sw=true&rm=normal&nit=8000&sct=300
[Nov 22 15:43:38] NOTICE[2783][C-00000001]: src/mrcp_application.c:117 : Create MRCP Handle 0x7f0000012cc8 [speech-nuance5-mrcp2]
[Nov 22 15:43:38] NOTICE[2783][C-00000001]: src/mrcp_client_session.c:131 : Create Channel ASR-0
[Nov 22 15:43:38] NOTICE[2760]: src/mrcp_client_session.c:385 : Receive App Request ASR-0 [2]
[Nov 22 15:43:38] WARNING[2760]: src/mrcp_client_session.c:1263 : Failed to Create Session ASR-0 [2]
[Nov 22 15:43:38] NOTICE[2760]: src/mrcp_client_session.c:531 : Raise App Response ASR-0 [2] FAILURE [1]
[Nov 22 15:43:38] ERROR[2760]: app_mrcprecog.c:294 speech_on_channel_add: (ASR-0) Channel error status=1, response code=0!
[Nov 22 15:43:38] NOTICE[2760]: src/mrcp_client_session.c:385 : Receive App Request ASR-0 [1]
[Nov 22 15:43:38] NOTICE[2760]: src/mrcp_client_session.c:453 : Raise App Response ASR-0 [1] SUCCESS [0]
[Nov 22 15:43:38] NOTICE[2760]: src/mrcp_application.c:203 : Destroy MRCP Handle ASR-0
[Nov 22 15:43:38] NOTICE[2783][C-00000001]: app_mrcprecog.c:1047 mrcprecog_exit: MRCPRecog() exiting status: ERROR on PJSIP/chatbot-00000000
i cannot connect to MRCP server in dialplan.What's wrong with this?
ISSUE:
When I install the packet asterisk-app-unimrcp my FreePBX (an Asterisk's based box) will be unstable: after a restart the asterisk process crasches continuosly
I annex the printscreen of my last attempt to install UniMCRP software.
I annex also the log file /var/log/asterisk/full
Please help me, thank
Regard
B. Cerri
Using MRCPSynth causes lots of messages like this:
Thread LWP 12815 is blocking 'SIP/trunk_i6_allegro-0000000f', already blocked by thread LWP 25892 in procedure ast_waitfor_nandfds
In addition to filling the log file because it logs around 25 lines per second, I wonder if it cannot be a problem.
full_LogDebug.log
The rigth formt to set the bits for the flags masks is (from the Voximal fork):
MRCPSYNTH_PROFILE = (1 << 0),
MRCPSYNTH_INTERRUPT = (1 << 1),
MRCPSYNTH_FILENAME = (1 << 2),
MRCPSYNTH_KEEPSESSION = (1 << 3),
MRCPSYNTH_ASTERISKVOLUME = (1 << 4),
MRCPSYNTH_SENDDTMF = (1 << 5)
and not
MRCPSYNTH_PROFILE = (1 << 0),
MRCPSYNTH_INTERRUPT = (2 << 0),
MRCPSYNTH_FILENAME = (3 << 0)
I've installed unimrcp-master branch successfully. Asterisk 16, is already installed.
But while I'm trying to Test the setup using below command :-
./unimrcpserver
Getting below error :-
./unimrcpserver: error while loading shared libraries: libsofia-sip-ua.so.0: cannot open shared object file: No such file or directory
Hi all!
I have one server with Asterisk with ASR service Verbio, in this environment I have a high flow of calls and at peak times I receive the log below and the recognition does not start.
[Jul 30 13:40:50] WARNING[17116][C-00029668] audio_queue.c: (ASR-759827) Audio queue overflow!
[Jul 30 13:40:50] ERROR[17116][C-00029668] app_mrcprecog.c: (ASR-759827) Recognition terminated prematurely
[Jul 30 13:40:50] WARNING[17116][C-00029668] app_mrcprecog.c: (ASR-759827) Unable to retrieve result
[Jul 30 13:40:51] NOTICE[17116][C-00029668] app_mrcprecog.c: MRCPRecog() exiting status: ERROR on PJSIP/sbc_endpoint-00029668
Any idea what it might be?
Best Regards!
Hi,
as I am looking into the resilience of the UniMRCP Asterisk module against network errors, I found out that one can completely freeze a PJSIP channel if the MRCP server does not answer after responding 100 TRYING
when establishing the SIP session.
MRCP Client MRCP Server
| |
| |
|---------INVITE --------->|
| |
|<--------TRYING-----------|
| |
| |
After waiting over a minute for the timeout, nothing happened so I hanged up the call.
Note that this is a different case than #46 (where the server does not even reply with 100 TRYING
).
[2020-08-26 07:27:46] NOTICE[62]: src/mrcp_sofiasip_client_agent.c:357 Local SDP TTS-0 <new>
v=0
o=Asterisk 0 0 IN IP4 xxx.xxx.xxx.xxx
s=-
c=IN IP4 xxx.xxx.xxx.xxx
t=0 0
m=application 9 TCP/MRCPv2 1
a=setup:active
a=connection:new
a=resource:speechsynth
a=cmid:1
m=audio 10002 RTP/AVP 0 8 96 101
a=rtpmap:0 PCMU/8000
a=rtpmap:8 PCMA/8000
a=rtpmap:96 L16/8000
a=rtpmap:101 telephone-event/8000
a=fmtp:101 0-15
a=recvonly
a=ptime:20
a=mid:1
[2020-08-26 07:27:46] DEBUG[62]: src/apt_consumer_task.c:135 Wait for Messages [MRCP Client]
[2020-08-26 07:27:46] NOTICE[65]: src/mrcp_sofiasip_client_agent.c:617 Receive SIP Event [nua_i_state] Status 0 INVITE sent [unimrcp-mrcp2]
[2020-08-26 07:27:46] NOTICE[65]: src/mrcp_sofiasip_client_agent.c:555 SIP Call State TTS-0 [calling]
[2020-08-26 07:28:05] DEBUG[94]: threadpool.c:1169 worker_idle: Worker thread idle timeout reached. Dying.
[2020-08-26 07:28:05] DEBUG[7]: threadpool.c:1028 worker_thread_destroy: Destroying worker thread 22
[2020-08-26 07:28:14] DEBUG[47]: res_pjsip_registrar.c:1279 check_expiration_thread: Woke up at 1598426894 Interval: 30
[2020-08-26 07:28:14] DEBUG[47]: res_pjsip_registrar.c:1286 check_expiration_thread: Expiring 0 contacts
[2020-08-26 07:28:35] DEBUG[96][C-00000001]: audiohook.c:275 audiohook_read_frame_both: Read factory 0x555e099a6878 and write factory 0x555e099a72b8 both fail to provide 160 samples
[2020-08-26 07:28:40] DEBUG[90]: threadpool.c:1169 worker_idle: Worker thread idle timeout reached. Dying.
[2020-08-26 07:28:40] DEBUG[91]: threadpool.c:1169 worker_idle: Worker thread idle timeout reached. Dying.
[2020-08-26 07:28:40] DEBUG[93]: threadpool.c:1169 worker_idle: Worker thread idle timeout reached. Dying.
[2020-08-26 07:28:40] DEBUG[92]: threadpool.c:1169 worker_idle: Worker thread idle timeout reached. Dying.
[2020-08-26 07:28:40] DEBUG[33]: threadpool.c:1028 worker_thread_destroy: Destroying worker thread 18
[2020-08-26 07:28:40] DEBUG[33]: threadpool.c:1028 worker_thread_destroy: Destroying worker thread 19
[2020-08-26 07:28:40] DEBUG[33]: threadpool.c:1028 worker_thread_destroy: Destroying worker thread 21
[2020-08-26 07:28:40] DEBUG[33]: threadpool.c:1028 worker_thread_destroy: Destroying worker thread 20
[2020-08-26 07:28:44] DEBUG[47]: res_pjsip_registrar.c:1279 check_expiration_thread: Woke up at 1598426924 Interval: 30
[2020-08-26 07:28:44] DEBUG[47]: res_pjsip_registrar.c:1286 check_expiration_thread: Expiring 0 contacts
[2020-08-26 07:28:45] DEBUG[89]: threadpool.c:1169 worker_idle: Worker thread idle timeout reached. Dying.
[2020-08-26 07:28:45] DEBUG[33]: threadpool.c:1028 worker_thread_destroy: Destroying worker thread 17
[2020-08-26 07:29:14] DEBUG[47]: res_pjsip_registrar.c:1279 check_expiration_thread: Woke up at 1598426954 Interval: 30
[2020-08-26 07:29:14] DEBUG[47]: res_pjsip_registrar.c:1286 check_expiration_thread: Expiring 0 contacts
<--- Received SIP request (443 bytes) from UDP:xxx.xxx.xxx.xxx:63833 --->
BYE sip:[email protected]:5061 SIP/2.0
Via: SIP/2.0/UDP xxx.xxx.xxx.xxx:63833;rport;branch=z9hG4bKPjqVqCLfoWnEp53M070eSnnT6LCGmb29em
Max-Forwards: 70
From: <sip:[email protected];ob>;tag=A3OhTO3MsfQ7ejWA0OEmz.EjQ7AcwZvU
To: "Anonymous" <sip:[email protected]>;tag=71027622-f20e-45aa-8cfe-c5f7aa9ba1cb
Call-ID: f56c23ee-2cac-4a7f-bbaa-eac9992bf9b8
CSeq: 29426 BYE
User-Agent: Telephone 1.5
Content-Length: 0
[2020-08-26 07:29:19] DEBUG[35]: res_pjsip/pjsip_distributor.c:503 distributor: Searching for serializer associated with dialog dlg0x7f1a34009378 for Request msg BYE/cseq=29426 (rdata0x7f1a38002eb8)
[2020-08-26 07:29:19] DEBUG[35]: res_pjsip/pjsip_distributor.c:511 distributor: Found serializer pjsip/outsess/+4911111111111-00000058 associated with dialog dlg0x7f1a34009378
[2020-08-26 07:29:19] DEBUG[33]: threadpool.c:536 grow: Increasing threadpool pjsip/pool's size by 5
[2020-08-26 07:29:19] DEBUG[97]: netsock2.c:170 ast_sockaddr_split_hostport: Splitting 'xxx.xxx.xxx.xxx' into...
[2020-08-26 07:29:19] DEBUG[97]: netsock2.c:224 ast_sockaddr_split_hostport: ...host 'xxx.xxx.xxx.xxx' and port ''.
<--- Transmitting SIP response (427 bytes) to UDP:xxx.xxx.xxx.xxx:63833 --->
SIP/2.0 200 OK
Via: SIP/2.0/UDP xxx.xxx.xxx.xxx:63833;rport=63833;received=94.223.85.136;branch=z9hG4bKPjqVqCLfoWnEp53M070eSnnT6LCGmb29em
Call-ID: f56c23ee-2cac-4a7f-bbaa-eac9992bf9b8
From: <sip:[email protected];ob>;tag=A3OhTO3MsfQ7ejWA0OEmz.EjQ7AcwZvU
To: "Anonymous" <sip:[email protected]>;tag=71027622-f20e-45aa-8cfe-c5f7aa9ba1cb
CSeq: 29426 BYE
Server: Asterisk PBX 17.4.0
Content-Length: 0
[2020-08-26 07:29:19] DEBUG[97]: res_pjsip_session.c:3507 __print_debug_details: Function session_inv_on_tsx_state_changed called on event TSX_STATE
[2020-08-26 07:29:19] DEBUG[97]: res_pjsip_session.c:3521 __print_debug_details: The state change pertains to the endpoint '+4911111111111(PJSIP/+4911111111111-00000000)'
[2020-08-26 07:29:19] DEBUG[97]: res_pjsip_session.c:3529 __print_debug_details: The inv session does NOT have an invite_tsx
[2020-08-26 07:29:19] DEBUG[97]: res_pjsip_session.c:3532 __print_debug_details: The UAS BYE transaction involved in this state change is 0x7f1a5c037cc8
[2020-08-26 07:29:19] DEBUG[97]: res_pjsip_session.c:3536 __print_debug_details: The current transaction state is Completed
[2020-08-26 07:29:19] DEBUG[97]: res_pjsip_session.c:3538 __print_debug_details: The transaction state change event is TX_MSG
[2020-08-26 07:29:19] DEBUG[97]: res_pjsip_session.c:3543 __print_debug_details: The current inv state is CONFIRMED
[2020-08-26 07:29:19] DEBUG[97]: res_pjsip_session.c:3507 __print_debug_details: Function session_inv_on_state_changed called on event TSX_STATE
[2020-08-26 07:29:19] DEBUG[97]: res_pjsip_session.c:3521 __print_debug_details: The state change pertains to the endpoint '+4911111111111(PJSIP/+4911111111111-00000000)'
[2020-08-26 07:29:19] DEBUG[97]: res_pjsip_session.c:3529 __print_debug_details: The inv session does NOT have an invite_tsx
[2020-08-26 07:29:19] DEBUG[97]: res_pjsip_session.c:3541 __print_debug_details: There is no transaction involved in this state change
[2020-08-26 07:29:19] DEBUG[97]: res_pjsip_session.c:3543 __print_debug_details: The current inv state is DISCONNCTD
[2020-08-26 07:29:19] DEBUG[97]: res_pjsip_session.c:3787 session_inv_on_state_changed: Source of transaction state change is RX_MSG
[2020-08-26 07:29:19] DEBUG[97]: res_pjsip_session.c:3620 handle_incoming: Received request
[2020-08-26 07:29:19] DEBUG[97]: res_pjsip_session.c:3553 handle_incoming_request: Method is BYE
[2020-08-26 07:29:19] DEBUG[97]: res_pjsip_session.c:3507 __print_debug_details: Function session_inv_on_tsx_state_changed called on event TSX_STATE
[2020-08-26 07:29:19] DEBUG[97]: res_pjsip_session.c:3521 __print_debug_details: The state change pertains to the endpoint '+4911111111111(PJSIP/+4911111111111-00000000)'
[2020-08-26 07:29:19] DEBUG[97]: res_pjsip_session.c:3529 __print_debug_details: The inv session does NOT have an invite_tsx
[2020-08-26 07:29:19] DEBUG[97]: res_pjsip_session.c:3532 __print_debug_details: The UAS BYE transaction involved in this state change is 0x7f1a5c037cc8
[2020-08-26 07:29:19] DEBUG[97]: res_pjsip_session.c:3536 __print_debug_details: The current transaction state is Completed
[2020-08-26 07:29:19] DEBUG[97]: res_pjsip_session.c:3538 __print_debug_details: The transaction state change event is RX_MSG
[2020-08-26 07:29:19] DEBUG[97]: res_pjsip_session.c:3543 __print_debug_details: The current inv state is DISCONNCTD
[2020-08-26 07:29:19] DEBUG[31]: manager.c:6123 match_filter: Examining AMI event:
Event: HangupRequest
Privilege: call,all
Channel: PJSIP/+4911111111111-00000000
ChannelState: 6
ChannelStateDesc: Up
CallerIDNum: <unknown>
CallerIDName: ??????????
ConnectedLineNum: <unknown>
ConnectedLineName: <unknown>
Language: en
AccountCode:
Context: from-internal
Exten: 1
Priority: 5
Uniqueid: 1598426860.0
Linkedid: 1598426860.0
Cause: 16
[2020-08-26 07:29:19] DEBUG[88]: manager.c:6123 match_filter: Examining AMI event:
Event: HangupRequest
Privilege: call,all
Channel: PJSIP/+4911111111111-00000000
ChannelState: 6
ChannelStateDesc: Up
CallerIDNum: <unknown>
CallerIDName: ??????????
ConnectedLineNum: <unknown>
ConnectedLineName: <unknown>
Language: en
AccountCode:
Context: from-internal
Exten: 1
Priority: 5
Uniqueid: 1598426860.0
Linkedid: 1598426860.0
Cause: 16
[2020-08-26 07:29:25] DEBUG[96][C-00000001]: audiohook.c:275 audiohook_read_frame_both: Read factory 0x555e099a6878 and write factory 0x555e099a72b8 both fail to provide 160 samples
After hanging up the call, the PJSIP channel is left active waiting on the SynthAndRecog application to finish. As far as I know, the only way to close it is to restart Asterisk, channel request hangup
does not work.
localhost*CLI> channel request hangup PJSIP/+4911111111111-00000000
localhost*CLI> pjsip show channels
Channel: <ChannelId........................................> <State.....> <Time.....>
Exten: <DialedExten.............> CLCID: <ConnectedLineCID.......>
==========================================================================================
Channel: PJSIP/+4911111111111-00000000/SynthAndRecog Up 00:01:52
Exten: 1 CLCID: "" <>
Objects found: 1
Dear community,
I'm using Asterisk 1.4 ,While this Asterisk UNIMRCP 1.1.0 is compiling correctly, I'm unable to load it from Asterisk, and got load Error message as below:
[Mar 22 11:53:01] WARNING[25676] loader.c: Error loading module 'app_unimrcp.so': /usr/lib/asterisk/modules/app_unimrcp.so: undefined symbol: ast_datastore_alloc
[Mar 22 11:53:01] WARNING[25676] loader.c: Module 'app_unimrcp.so' could not be loaded.
how can i fix this?
Greetings,
I use 'f' option of MRCPSynth to store synthesized audio in file but resulting file is empty. Audio generates correctly and I can hear it.
I am not sure but I think the reason is not writing data in app_mrcpsynth.c. fd is opened at line 567 and then closed at 472 without using.
Example:
same => n, MRCPSynth("Testing",f=synthtestrecord)
Everything works in asterisk-unimrcp-1.3.0
Versions:
Asterisk 11.22.0
unimrcp-1.3.0
asterisk-unimrcp-1.3.1
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.