unispeech / unimrcp Goto Github PK
View Code? Open in Web Editor NEWOpen source cross-platform implementation of MRCP protocol
Home Page: http://www.unimrcp.org
License: Apache License 2.0
Open source cross-platform implementation of MRCP protocol
Home Page: http://www.unimrcp.org
License: Apache License 2.0
INTRODUCTION ============ UniMRCP is an open source project compliant with the IETF RFC6787 (MRCPv2) and RFC4463 (MRCPv1) specifications. INSTALLATION ============ See the file "INSTALL" for installation tips. DOCUMENTATION ============= Use the directory "docs/dox" for a documentation generated by Doxygen. Use the directory "docs/ea" for UML based design concepts, HTML pages generated by Enterprise Architect. REFERENCES ========== Website: http://www.unimrcp.org Downloads: http://www.unimrcp.org/downloads Documentation: http://www.unimrcp.org/documentation GitHub: https://github.com/unispeech/unimrcp Issue Tracker: https://github.com/unispeech/unimrcp/issues Discussion Group: https://groups.google.com/group/unimrcp Source Changes: https://github.com/unispeech/unimrcp/commits/master https://groups.google.com/group/unimrcp-commits LICENSING ========= UniMRCP is licensed under the terms of the Apache License 2.0. See the file "LICENSE" for more information. Copyright 2008 - 2022 Arsen Chaloyan
Originally reported on Google Code with ID 38
I have troubling compiling the last tag 0.7.0 in a RHEL4.7 environment. I'm
using apr 1.2.12, apr-util 1.2.12 and sofia sip 1.2.19
When I try to compile I got an error message about can't find a
apr_pool_mutex_set function. I try to find that in the apr source without
success
Step by Step all procedure..
I run configure as following:
./configure --prefix=/home/fabrizio/instaladores/sources/unimrcp/local
--with-apr=/home/fabrizio/instaladores/sources/apr/local/bin/apr-1-config
--with-apr-util=/home/fabrizio/instaladores/sources/apr-util/local/bin/apu-1-config
--with-sofia-sip=/home/fabrizio/instaladores/sources/sofia-sip/local
--disable-cepstral-plugin
The final report show me:
configure: Report:
configure: UniMRCP: 0.7.0
configure: APR: 1.2.12
configure: APR-Util: 1.2.12
configure: Sofia-SIP: 1.12.9
configure: Plugins:
configure: Demo Synthesizer: yes
configure: Demo Recognizer: yes
configure: Cepstral: no
configure: PocketSphinx: no
configure: Flite: no
Then, when I run "make" I get the following error:
make[2]: Entering directory
`/home/fabrizio/instaladores/sources/unimrcp/tags/0.7.0/platforms/unimrcp-server'
/bin/sh ../../libtool --mode=link --tag=CC gcc -g -O2 -g -O2 -pthread
-o unimrcpserver main.o uni_cmdline.o uni_daemon.o
../../platforms/libunimrcp-server/libunimrcpserver.la
libtool: link: warning: library `/usr/lib/libsofia-sip-ua.la' was moved.
gcc -g -O2 -g -O2 -o .libs/unimrcpserver main.o uni_cmdline.o uni_daemon.o
-pthread ../../platforms/libunimrcp-server/.libs/libunimrcpserver.so
/home/fabrizio/instaladores/sources/apr-util/local/lib/libaprutil-1.so
/home/fabrizio/instaladores/sources/apr/local/lib/libapr-1.so -luuid
-lcrypt /usr/lib/libexpat.so
-L/home/fabrizio/instaladores/sources/sofia-sip/local/lib
/usr/lib/libsofia-sip-ua.so -L/usr/kerberos/lib -lssl -lcrypto
-lgssapi_krb5 -lkrb5 -lcom_err -lk5crypto -lresolv -ldl -lz -lrt -lpthread
-Wl,--rpath -Wl,/home/fabrizio/instaladores/sources/unimrcp/local/lib
-Wl,--rpath -Wl,/home/fabrizio/instaladores/sources/apr-util/local/lib
-Wl,--rpath -Wl,/home/fabrizio/instaladores/sources/apr/local/lib
../../platforms/libunimrcp-server/.libs/libunimrcpserver.so: undefined
reference to `apr_pool_mutex_set'
collect2: ld returned 1 exit status
make[2]: *** [unimrcpserver] Error 1
make[2]: Leaving directory
`/home/fabrizio/instaladores/sources/unimrcp/tags/0.7.0/platforms/unimrcp-server'
make[1]: *** [install-recursive] Error 1
make[1]: Leaving directory
`/home/fabrizio/instaladores/sources/unimrcp/tags/0.7.0/platforms'
make: *** [install-recursive] Error 1
When I try to find the function, only appears in the file
unimrcp/tags/0.7.0/libs/apr-toolkit/src/apt_pool.c:34:
apr_pool_mutex_set(pool,mutex);
What I'm doing wrong here?
Reported by hazahel
on 2009-08-14 22:44:21
Originally reported on Google Code with ID 39
GVP client fails to parse RTSP response to DESCRIBE request to
speechrecognizer resource. GVP needs to discover resources first, otherwise
it refuses to use (call) them. The problem is in Transport RTSP header in
response. If the header is omitted, everything goes ok, but may other
clients need it? Maybe the problem can be solved in other way, but I did
not find it. The response should also announce telephone-event support,
generally the response should be generated according to the server
configuration (Issue-19).
Workaround or patch:
Comment out lines 540--543 in mrcp_unirtsp_sdp.c (r1086).
See also http://code.google.com/p/unimrcp/wiki/InteroperabilityGuide
Reported by [email protected]
on 2009-08-17 14:50:24
Originally reported on Google Code with ID 41
What version of the product is patch made on?
unimrcp-0.7.0
Please use labels and text to provide additional information.
Certain MRCP servers indicate that they want to re-use an existing
connection, but offer up a different port number for the "existing"
connection. This creates a situation where the code doesn't examine the
port number and tries to use the original port number instead of the new
one. This patch will ignore the "existing" tag if the new port number is
not the same as the current one. Should the patch also check to make sure
the offered port number is not 0 as well in case it is not specified?
Diff of: mrcp_client_connection.c
< = New
> = Existing
371c371
< if(!connection || connection->r_sockaddr->port !=
descriptor->port) {
---
> if(!connection) {
Reported by asackheim
on 2009-09-09 15:44:05
Originally reported on Google Code with ID 37
What steps will reproduce the problem?
1. At run ./configure.sh as:
./configure --enable-pocketsphinx-plugin
--with-pocketsphinx=/usr/local/share/pocketsphinx/
--with-sphinxbase=/usr/local/include/sphinxbase
The script tell me that options are unrecognized, and when I want to
configure with pocketsphinx I haven't got pocketsphinx.xml file.
Thanks
Reported by abel.zafra
on 2009-07-21 09:24:01
Originally reported on Google Code with ID 36
What steps will reproduce the problem?
1. Create a session
2. Request a recognizer resource
3. Do some load grammars
4. Restart the Loquendo MRCPv2 Server
(***session stalls (no more events) from the point of view of the
application***)
5. Do more load grammars
6. Issue recognize request
What version of the product are you using? On what operating system?
Trunk Release 1042. Windows 2003 Server 32 bit.
Please provide any additional information below.
When MRCP connection is lost he event is logged on the trace on
mrcp_client_connection.c/mrcp_client_agent_messsage_receive and no event is
sent to the application, in fact there is a commented out line that looks
like this:
...
if(status == APR_EOF || length == 0) {
apt_log(APT_LOG_MARK,APT_PRIO_INFO,"TCP/MRCPv2 Peer Disconnected
%s",connection->id);
apt_pollset_remove(agent->pollset,&connection->sock_pfd);
apr_socket_close(connection->sock);
connection->sock = NULL;
// agent->vtable->on_disconnect(agent,connection);
return TRUE;
}
...
I suspect this line would deliver this error event back to the
application but somehow it is not yet implemented.
Currently there is no workaround for this as the other operations on the
session don't give credible return codes so the only way is to rely on
timeout mechanisms which is rather painful to implement and in practise
disastrous as it may take a long time for the application to spot these
conditions (comparing to the situation where we can rely on a specific
event that can be more "instantaneous").
Thanks for your time. As always, please feel free to ask more details if
you need.
Regards.
Reported by cpsoares
on 2009-07-15 16:40:37
Originally reported on Google Code with ID 10
Hi Arsen,
From the onset, let's clarify that this is most likely a Visual Studio
problem, and not related to UniMRCP per se. And it is a problem that we
approached in the past.
Apparently, VS2005-SP1 does not recognize the .c extension for the C
source files, and therefore is incapable to associate the C compiler tool
with this extension. This is visible to me by opening the "Property Pages"
of any project and noticing that there is no C/C++ property under
the "Configuration Properties" (see Figure 1 in the attached Word document
containing various screenshots). Therefore, an attempt to "build solution"
goes through all projects without doing anything. As an example, Figure 1
mentioned above shows what happens when trying to build the
project “aprtoolkit”.
To remedy this behavior, a pretty tedious action needs to be carried out:
1. Select all the .c files in the solution and only the .c files, right
click on the selection to bring up the “Property Pages”, select “All
Configurations” in the “Configuration” drop-down list and do the following
two steps.
2. Delete “Performing Custom Build Step” from “Configuration Properties”-
“Custom Build Step”-“General”-“Description”.
3. Replace the “Custom Build Tool” by the “C/C++ Compiler Tool” in
the “Configuration Properties”-“General”-“Tool” sub-property (see Figure
3).
I verified that this is a Visual Studio issue by creating an empty project
and then adding a few arbitrary .c files to that project. The project is
not compiled and shows exactly the same deficiency which can be remedied
as described.
There is a significant difference between a .vcproj file created by VS2005-
base and one created by VS2005-SP1. In the former case, the “tools” are
specified at the beginning of the file followed by an enumeration of the
source files.
Example:
<Filter
Name="src"
Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
>
<File
RelativePath=".\src\apt_consumer_task.c"
>
</File>
etc...
In the latter case, the compilation tool is specified for every single
source file.
Example:
<Filter
Name="src"
Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
<File
RelativePath=".\src\apt_consumer_task.c"
>
<FileConfiguration
Name="Debug|Win32"
>
<Tool
Name="VCCLCompilerTool"
/>
</FileConfiguration>
<FileConfiguration
Name="Release|Win32"
>
<Tool
Name="VCCLCompilerTool"
/>
</FileConfiguration>
</File>
etc...
You certainly remember this issue from OpenMRCP. But interestingly, I
found three or four source files in the Sofia-SIP package which suffered
the same shortcoming (“Custom Build Tool” instead of “C/C++ Compiler
Tool”).
I see three options:
1. Either I call Microsoft support and ask for an explanation/solution for
this behavior.
2. Or you check-in and use the .vcproj files that I will have provided if
I am capable to upload the zip file of UniMRCP 0.3.0 containing the
changes described above. Note that in this zip file, “apr.vsprops”
and “sofiasip.vsprops” reflect my directory structure, so you may want to
change them. I am fairly sure that these project files are compatible with
VS2005-base.
Of course, even if you agree to use the modified .vcproj, this doesn’t
preclude calling Microsoft just for the sake of understanding what is
going on.
There is also the option that you upgrade to VS2005-SP1, although a year
ago or so, you tried and the program crashed, or did something similar, if
I remember correctly. But perhaps, in the meantime you modified your
computer or OS and this will no longer be an issue. I think that there are
benefits of upgrading to SP1, at least as far as the speed of IntelliSense
which seemed to take minutes, blocking the whole program when I was using
VS2005-base.
Thanks a lot and best regards.
Reported by Curatica
on 2009-01-04 03:19:50
Originally reported on Google Code with ID 49
This causes acces violation exception to be thrown at the line 211
(release 0.8,windows) of mrcp_client_connection.c:
if(apt_pollset_wakeup(agent->pollset) != TRUE) {
The following kind of logic will reproduce the problem:
1. create mrcp client (unimrcp_client_create)
2. create mrcp application (mrcp_application_create)
3. register mrcp application (mrcp_client_application_register)
4. start mrcp client (mrcp_client_start)
5. block thread until stack ready notification is received (on_ready)
6. when thread is unblocked create mrcp application session
7. create mrcp application channel
8. add channel to session
9. create "on_ready" handler which unblocks the thread waiting right after
mrcp_client_start (see 5)
This problem happens because "on_ready" notification is sent when all the
threads running child tasks of mrcp client are just created not when they
are actually started and ready.
So it is possible that when a channel is added to a session (which leads
to invokation of "mrcp_client_control_message_signal" of
"mrcp_client_connection.c") the thread which initializes "poolset" in
"mrcp_client_agent_task_run" may still be running code which is above
initialization i.e above this line:
agent->pollset = apt_pollset_create((apr_uint32_t)agent-
>max_connection_count,agent->pool);
As a temporary workaround I moved the pollset creation code from
"mrcp_client_agent_task_run" to "mrcp_client_connection_agent_create".
This helped and now there is no access violetion problems.
Reported by aabaziev
on 2009-10-20 06:48:10
Originally reported on Google Code with ID 29
What steps will reproduce the problem?
I'm using libunimrcpclient linked to my application. I use it as a
MRCPv2-only client connected to a Loquendo Speech Server 7.x. I'm doing
stress tests in my application. These stress tests simply consist in
issuing a bunch of TTS requests and a bunch of ASR requests. I have only
one application registered with unimrcp requesting ASR and TTS resources to
do the corresponding requests. Each TTS request is done in its own session.
Each ASR request is done in its own session. Each request is done in its
own MRCP connection.
Arsen, maybe the sample code you made that allowed you to reproduce the
error associated with Issue 27, can serve also to identify this one.
What version of the product are you using? On what operating system?
I use the latest (trunk) libunimrcpclient version compiled by me.
The OS is a Windows Server 2003 SP2 Enterprise Edition.
Please provide any additional information below.
NOTE: I detached this info from Issue 27, because this may be another issue
independent from the one reported at 27.
I attached the traces and also a visual studio 2005 screenshot to
illustrate the point of crash along with the stack contents for each call
from the mpf mm_timer thread context. If you need anything from my side to
help fixing this issue just ask. Thanks in advance.
Reported by cpsoares
on 2009-06-01 15:46:04
Originally reported on Google Code with ID 7
What steps will reproduce the problem?
1. Run unimrcp server with demo plugins
2. Run Aculab server compatibility test
What is the expected output? What do you see instead?
Demo synthesis output at the client.
What version of the product are you using? On what operating system?
r682 unimrcp
Please provide any additional information below.
Attached are logs from the server and the aculab clinet code. Relates to
discussion topic Aculab Client
In brief is connected with:
"Today, unimrcp can manage a buffer (received from TCP) which contains
several messages BUT it can not manage uncomplete message.
In the Matthew log, the RTSP which contains the "SPEAK" message is trunked
in two part"
Reported by matthewaylett
on 2008-12-12 11:53:15
Originally reported on Google Code with ID 5
Implement MRCPv1 module by implementing basic RTSP stack first and then
integrating it as a module.
Reported by achaloyan
on 2008-04-12 15:44:35
Originally reported on Google Code with ID 4
Implement MRCPv2 module by integrating Sofia-SIP library.
Reported by achaloyan
on 2008-04-12 15:42:13
Originally reported on Google Code with ID 28
What steps will reproduce the problem?
Create a client using unimrcp_client_create, create a log instance,
activate a log external handler, create an application using
mrcp_client_application_register, start the client using mrcp_client_start,
wait for it to start, create a bunch of sessions, then destroy all of them,
destroy the application using mrcp_application_destroy, destroy the log
instance using apt_log_instance_destroy, shutdown client using
mrcp_client_shutdown this call never returns. The last thing to do would be
the call to mrcp_client_destroy, unfortunately the code never reaches this
point.
What version of the product are you using? On what operating system?
I use the latest (trunk) libunimrcpclient version.
The OS is a Windows Server 2003 SP2 Enterprise Edition.
Please provide any additional information below.
Here is my application trace from the UniMRCP perspective. Please feel free
to ask any additional information you may need. Thanks in advance.
(01 13:29:33.890) 6100 - Create Application
(01 13:29:34.078) 6100 - Register Application [SAUniMRCP]
(---------------) 6100 - Start MRCP Client
(---------------) 3964 - Start SofiaSIP Agent
(---------------) 3964 - Start TCP/MRCPv2 Connection Agent
(---------------) 3964 - Start Media Processing Engine
(---------------) 3964 - MRCP Client Started
(---------------) 5076 - Receive SIP Event [nua_r_set_params] Status 200 OK
(01 13:29:34.140) 1116 - Create MRCP Handle 0x46a8fc0 [MRCPv2-Default]
(---------------) 1116 - Create MRCP Handle 0x46aafc8 [MRCPv2-Default]
(---------------) 1116 - Create MRCP Handle 0x46acfd0 [MRCPv2-Default]
(---------------) 1116 - Create MRCP Handle 0x46aefd8 [MRCPv2-Default]
(---------------) 1116 - Create MRCP Handle 0x46b0fe0 [MRCPv2-Default]
(---------------) 1116 - Create MRCP Handle 0x46b2fe8 [MRCPv2-Default]
(---------------) 1116 - Create MRCP Handle 0x46b4ff0 [MRCPv2-Default]
(---------------) 1116 - Create MRCP Handle 0x46b6ff8 [MRCPv2-Default]
(---------------) 1116 - Create MRCP Handle 0x46b9000 [MRCPv2-Default]
(---------------) 1116 - Create MRCP Handle 0x46bb008 [MRCPv2-Default]
(---------------) 1116 - Create MRCP Handle 0x46bd010 [MRCPv2-Default]
(---------------) 1116 - Create MRCP Handle 0x46bf018 [MRCPv2-Default]
(---------------) 1116 - Create MRCP Handle 0x46c1020 [MRCPv2-Default]
(---------------) 1116 - Create MRCP Handle 0x46c3028 [MRCPv2-Default]
(---------------) 1116 - Create MRCP Handle 0x46c5030 [MRCPv2-Default]
(---------------) 1116 - Create MRCP Handle 0x46c7038 [MRCPv2-Default]
(---------------) 1116 - Create MRCP Handle 0x46c9040 [MRCPv2-Default]
(---------------) 1116 - Create MRCP Handle 0x46cb048 [MRCPv2-Default]
(---------------) 1116 - Create MRCP Handle 0x46cd050 [MRCPv2-Default]
(---------------) 1116 - Create MRCP Handle 0x46cf058 [MRCPv2-Default]
(---------------) 1116 - Create MRCP Handle 0x46d1060 [MRCPv2-Default]
(---------------) 1116 - Create MRCP Handle 0x46d3068 [MRCPv2-Default]
(---------------) 1116 - Create MRCP Handle 0x46d5070 [MRCPv2-Default]
(---------------) 1116 - Create MRCP Handle 0x46d7078 [MRCPv2-Default]
(---------------) 1116 - Create MRCP Handle 0x46d9080 [MRCPv2-Default]
(---------------) 1116 - Create MRCP Handle 0x46db088 [MRCPv2-Default]
(---------------) 1116 - Create MRCP Handle 0x46dd090 [MRCPv2-Default]
(---------------) 1116 - Create MRCP Handle 0x46df098 [MRCPv2-Default]
(---------------) 1116 - Create MRCP Handle 0x46e10a0 [MRCPv2-Default]
(---------------) 1116 - Create MRCP Handle 0x46e30a8 [MRCPv2-Default]
(---------------) 1116 - Create MRCP Handle 0x46e50b0 [MRCPv2-Default]
(---------------) 1116 - Create MRCP Handle 0x46e70b8 [MRCPv2-Default]
(---------------) 1116 - Create MRCP Handle 0x46e90c0 [MRCPv2-Default]
(---------------) 1116 - Create MRCP Handle 0x46eb0c8 [MRCPv2-Default]
(---------------) 1116 - Create MRCP Handle 0x46ed0d0 [MRCPv2-Default]
(---------------) 1116 - Create MRCP Handle 0x46ef0d8 [MRCPv2-Default]
(---------------) 1116 - Create MRCP Handle 0x46f10e0 [MRCPv2-Default]
(---------------) 1116 - Create MRCP Handle 0x46f30e8 [MRCPv2-Default]
(---------------) 1116 - Create MRCP Handle 0x46f50f0 [MRCPv2-Default]
(---------------) 1116 - Create MRCP Handle 0x46f70f8 [MRCPv2-Default]
(---------------) 1116 - Create MRCP Handle 0x46f9100 [MRCPv2-Default]
(---------------) 1116 - Create MRCP Handle 0x46fb108 [MRCPv2-Default]
(---------------) 1116 - Create MRCP Handle 0x46fd110 [MRCPv2-Default]
(---------------) 1116 - Create MRCP Handle 0x46ff118 [MRCPv2-Default]
(---------------) 1116 - Create MRCP Handle 0x4701120 [MRCPv2-Default]
(---------------) 1116 - Create MRCP Handle 0x4703128 [MRCPv2-Default]
(---------------) 1116 - Create MRCP Handle 0x4705130 [MRCPv2-Default]
(---------------) 1116 - Create MRCP Handle 0x4707138 [MRCPv2-Default]
(---------------) 1116 - Create MRCP Handle 0x4709140 [MRCPv2-Default]
(---------------) 1116 - Create MRCP Handle 0x470b148 [MRCPv2-Default]
(---------------) 1116 - Create MRCP Handle 0x470d150 [MRCPv2-Default]
(---------------) 1116 - Create MRCP Handle 0x470f158 [MRCPv2-Default]
(---------------) 1116 - Create MRCP Handle 0x4711160 [MRCPv2-Default]
(---------------) 1116 - Create MRCP Handle 0x4713168 [MRCPv2-Default]
(---------------) 1116 - Create MRCP Handle 0x4715170 [MRCPv2-Default]
(---------------) 1116 - Create MRCP Handle 0x4717178 [MRCPv2-Default]
(---------------) 1116 - Create MRCP Handle 0x4719180 [MRCPv2-Default]
(---------------) 1116 - Create MRCP Handle 0x471b188 [MRCPv2-Default]
(---------------) 1116 - Create MRCP Handle 0x471d190 [MRCPv2-Default]
(---------------) 1116 - Create MRCP Handle 0x471f198 [MRCPv2-Default]
(01 13:33:59.812) 6100 - Destroy MRCP Handle 0x46e50b0 <new>
(---------------) 6100 - Destroy MRCP Handle 0x46e70b8 <new>
(---------------) 6100 - Destroy MRCP Handle 0x46e90c0 <new>
(---------------) 6100 - Destroy MRCP Handle 0x46eb0c8 <new>
(---------------) 6100 - Destroy MRCP Handle 0x46ed0d0 <new>
(---------------) 6100 - Destroy MRCP Handle 0x46ef0d8 <new>
(---------------) 6100 - Destroy MRCP Handle 0x46f10e0 <new>
(---------------) 6100 - Destroy MRCP Handle 0x46f30e8 <new>
(---------------) 6100 - Destroy MRCP Handle 0x46f50f0 <new>
(---------------) 6100 - Destroy MRCP Handle 0x46f70f8 <new>
(---------------) 6100 - Destroy MRCP Handle 0x46f9100 <new>
(---------------) 6100 - Destroy MRCP Handle 0x46fb108 <new>
(---------------) 6100 - Destroy MRCP Handle 0x46fd110 <new>
(---------------) 6100 - Destroy MRCP Handle 0x46ff118 <new>
(---------------) 6100 - Destroy MRCP Handle 0x4701120 <new>
(---------------) 6100 - Destroy MRCP Handle 0x4703128 <new>
(---------------) 6100 - Destroy MRCP Handle 0x4705130 <new>
(---------------) 6100 - Destroy MRCP Handle 0x4707138 <new>
(---------------) 6100 - Destroy MRCP Handle 0x4709140 <new>
(---------------) 6100 - Destroy MRCP Handle 0x470b148 <new>
(---------------) 6100 - Destroy MRCP Handle 0x470d150 <new>
(---------------) 6100 - Destroy MRCP Handle 0x470f158 <new>
(---------------) 6100 - Destroy MRCP Handle 0x4711160 <new>
(---------------) 6100 - Destroy MRCP Handle 0x4713168 <new>
(---------------) 6100 - Destroy MRCP Handle 0x4715170 <new>
(---------------) 6100 - Destroy MRCP Handle 0x4717178 <new>
(---------------) 6100 - Destroy MRCP Handle 0x4719180 <new>
(---------------) 6100 - Destroy MRCP Handle 0x471b188 <new>
(---------------) 6100 - Destroy MRCP Handle 0x471d190 <new>
(---------------) 6100 - Destroy MRCP Handle 0x471f198 <new>
(---------------) 6100 - Destroy MRCP Handle 0x46a8fc0 <new>
(---------------) 6100 - Destroy MRCP Handle 0x46aafc8 <new>
(---------------) 6100 - Destroy MRCP Handle 0x46acfd0 <new>
(---------------) 6100 - Destroy MRCP Handle 0x46aefd8 <new>
(---------------) 6100 - Destroy MRCP Handle 0x46b0fe0 <new>
(---------------) 6100 - Destroy MRCP Handle 0x46b2fe8 <new>
(---------------) 6100 - Destroy MRCP Handle 0x46b4ff0 <new>
(---------------) 6100 - Destroy MRCP Handle 0x46b6ff8 <new>
(---------------) 6100 - Destroy MRCP Handle 0x46b9000 <new>
(---------------) 6100 - Destroy MRCP Handle 0x46bb008 <new>
(---------------) 6100 - Destroy MRCP Handle 0x46bd010 <new>
(---------------) 6100 - Destroy MRCP Handle 0x46bf018 <new>
(---------------) 6100 - Destroy MRCP Handle 0x46c1020 <new>
(---------------) 6100 - Destroy MRCP Handle 0x46c3028 <new>
(---------------) 6100 - Destroy MRCP Handle 0x46c5030 <new>
(---------------) 6100 - Destroy MRCP Handle 0x46c7038 <new>
(---------------) 6100 - Destroy MRCP Handle 0x46c9040 <new>
(---------------) 6100 - Destroy MRCP Handle 0x46cb048 <new>
(---------------) 6100 - Destroy MRCP Handle 0x46cd050 <new>
(---------------) 6100 - Destroy MRCP Handle 0x46cf058 <new>
(---------------) 6100 - Destroy MRCP Handle 0x46d1060 <new>
(---------------) 6100 - Destroy MRCP Handle 0x46d3068 <new>
(---------------) 6100 - Destroy MRCP Handle 0x46d5070 <new>
(---------------) 6100 - Destroy MRCP Handle 0x46d7078 <new>
(---------------) 6100 - Destroy MRCP Handle 0x46d9080 <new>
(---------------) 6100 - Destroy MRCP Handle 0x46db088 <new>
(---------------) 6100 - Destroy MRCP Handle 0x46dd090 <new>
(---------------) 6100 - Destroy MRCP Handle 0x46df098 <new>
(---------------) 6100 - Destroy MRCP Handle 0x46e10a0 <new>
(---------------) 6100 - Destroy MRCP Handle 0x46e30a8 <new>
(---------------) 6100 - Destroy Application
(---------------) 6100 - Terminate MRCP Client
(---------------) 3964 - Terminate SofiaSIP Agent
(---------------) 3964 - Send Shutdown Signal to NUA
(---------------) 3964 - Terminate TCP/MRCPv2 Connection Agent
(---------------) 3964 - Terminate Media Processing Engine
(---------------) 752 - Process Control Message
(---------------) 5076 - Receive SIP Event [nua_r_shutdown] Status 200
Shutdown successful
Reported by cpsoares
on 2009-06-01 14:27:23
Originally reported on Google Code with ID 30
What steps will reproduce the problem?
1. create MRCP session lets give it name session0.
2. create MRCP channel lets give it name channel0.
3. attach channel0 to session0.
4. create MRCP session lets give it name session1.
5. create MRCP channel lets give it name channel1.
6. attach channel1 to session1.
7. now do any processing before sending speak request for example you may
call sleep function before sending speak.
8. do the previous step for the two channels.
9. now listen to the generated waves for both channels one will be good and
there are no lost frames and the second will be corrupted.
What version of the product are you using? On what operating system?
unimrcp 0.5.0
windows xp
Please provide any additional information below.
attached file is my modification to demo scenario it may help you to figure
out the problem.
Reported by firstmahmoud2002
on 2009-06-08 08:55:37
Originally reported on Google Code with ID 23
What steps will reproduce the problem?
1.Send Speak request from client to server and the message body must be
long for example 3 KB message body.
2.Send Stop request from client to server.
3.Send Speak request from client to server and the message body must
be long for example 3 KB message body.
What version of the product are you using? On what operating system?
Using UniMRCP version 0.5.0 on windows xp operating system.
Please provide any additional information below.
Attached Files:
******************
1. demo_util.c
2. demo_synth_application.c
3. unimrcpclient.log
4. unimrcpserver.log
5. speak.xml
Note:
******
I tested this case on your demo synthesizer client and demo server.
Help:
******
when i discovered this problem i thought that it might be my problem
and i tried to find where the problem occurs and i found that the
problem occurred at mrcp_stream.c file.
i tested this case in your demo client and server and i found that the
problem already exists, so i think its a problem in mrcp client
itself.
Reported by firstmahmoud2002
on 2009-04-01 07:24:39
Originally reported on Google Code with ID 43
In the plugin, unimrcp server loads grammar when processing a DEFINE-
GRAMMAR request, but some mrcp clients send the grammar when sending a
RECOGNIZE request without first sending a DEFINE-GRAMMAR request, the
plugin have to support inline grammar loading.
Reported by HuaJGuo
on 2009-09-18 14:18:37
Originally reported on Google Code with ID 44
Hi Arsen,
I have found a minor issue while compiling our plugin in C++. In inline
function mpf_codec_descriptor_create on line 129, there must be explicit
type-cast in C++. I know the project is written in C, but support for C++
might be useful not only for me.
Patch:
129- mpf_codec_descriptor_t *descriptor =
apr_palloc(pool,sizeof(mpf_codec_descriptor_t));
129+ mpf_codec_descriptor_t *descriptor = (mpf_codec_descriptor_t
*)apr_palloc(pool,sizeof(mpf_codec_descriptor_t));
Thanks.
- Vali
Reported by [email protected]
on 2009-09-28 17:38:17
Originally reported on Google Code with ID 11
Currently it's not possible to provide resource engine capabilities such as
- max number of simultaneous channels
- supported sampling rates
- etc
Reported by achaloyan
on 2009-01-13 18:40:57
Originally reported on Google Code with ID 26
What steps will reproduce the problem?
1. I launch unimrcpserver 0.6.0 under Windows XP SP3
2. I launch a MRCP client (not unimrcpclient) on an other host which just
opens and closes 200 sessions (in loop).
3. The MRCP client is stopped by the "C" exit function.
4. The unimrcpserver detects the TCP disconnection :
"Close TCP Connection 192.168.1.175:32837"
and launchs the remaining RTSP sessions termination :
"Terminate Remaining RTSP Sessions [117]"
but alls sessions are not free released : I can see that in an external
program which prints the thread numbers and UDP connections of the
unimrcpserver.
Remark : the unimrcpserver prints this error "MPF Request Queue is Full".
Reported by amasse.atwork
on 2009-05-18 09:56:12
Originally reported on Google Code with ID 17
Please find attached some files extracted form UniMRCP project, on which
some corrections have been applied and features added. I thought these
modifications necessary for both generic and recognizer MRCP headers
processing.
These modifications are resumed below :
- missing "Accept", "Fetch-timeout" "Set-cookie" generic headers
- in mrcp_header_accessor_t structure, the "empty_values" variable
should be replaced by a "apt_bool_t * pointer" variable which may
enable to indicate which header values are required into GET-PARAMS
request (e.g. Vendor-Specific-Parameters)
- missing some V2 recognizer headers (input-type, media-type,
interpret-text)
- adding into mrcp_recog_header.c, a fonction wich returns a pointer
on the completion_cause string table
- moving Fetch-timeout header as a generic one
- separating V1 and V2 completion-cause strings
All these files are stored into the libs/mrcp forlder.
Regards,
Patrick
Reported by pnunes29
on 2009-03-02 14:23:24
Originally reported on Google Code with ID 13
An appropriate error response must be send to MRCP client in case resource
engine creation fails in a plugin.
See the discussion below for more info.
http://groups.google.com/group/unimrcp/browse_thread/thread/40ed14f64fec8d06
Reported by achaloyan
on 2009-01-13 19:16:41
Originally reported on Google Code with ID 35
Hi Arsen,
I tried setting a few parameters, using mrcp_recog_header_t as you
explained. Everything works fine, but the decimal values in the SET-PARAMS
messages appear rounded to the next tenth, compared to the input values
passed to the mrcp_recog_header_t structure. For instance:
- the value 0.3725 for the sensitivity-level becomes 0.4 in the SET-PARAMS
message: "Sensitivity-Level: 0.4"
- the value 0.784 for the confidence-threshold becomes 0.8 in the message:
"Confidence-Threshold: 0.8".
I verified that the ASR server receives the rounded values, indeed. An
integer value is passed OK. The log file for our test application was attached.
I wonder if this is an APR issue...
Thank you very much, Arsen.
Reported by Curatica
on 2009-06-27 03:08:05
Originally reported on Google Code with ID 9
Gentlemen,
I downloaded apr-1.3.3, apr-util-1.3.4 and apr-iconv-1.2.1.
The third package is apparently required, at least for the build to
succeed, although Arsen does not mention it in the installation
instructions. But apr-util workspace, aprutil.dsw includes projects from
apr-iconv. In fact the Apache documentation,
http://apr.apache.org/compiling_win32.html, suggests that one should load
apr-util/aprutil.dsw which contains all the required VC projects (and it
certainly contains projects from apr-iconv).
Now, apr-iconv builds fine, but a number of projects in apr-util-1.3.4 do
not. Those projects seem to be database related:
- .\dbd\apr_dbd_freetds.dsp
- .\dbd\apr_dbd_mysql.dsp
- .\dbd\apr_dbd_odbc.dsp
- .\dbd\apr_dbd_oracle.dsp
- .\dbd\apr_dbd_pgsql.dsp
- .\dbd\apr_dbd_sqlite2.dsp
- .\dbd\apr_dbd_sqlite3.dsp
Typically, the compiler cannot find at least one header file required in
each project, repectively. Here is an example for apr_dbd_freetds:
------ Build started: Project: apr_dbd_freetds, Configuration: Release
Win32 ------
Compiling...
Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 14.00.50727.762 for
80x86
Copyright (C) Microsoft Corporation. All rights reserved.
cl /O2 /Ob1 /I "../include" /I "../../apr/include" /I "../include/private"
/D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D "APU_DBD_DSO_BUILD" /D "APU_HAVE_FR
EETDS=1" /D "_VC80_UPGRADE=0x0600" /D "_WINDLL" /GF /FD /EHsc /MD /Gy /Fp".
\Release/apr_dbd_freetds.pch" /Fo".\Release\\" /Fd".\Release\apr_dbd_freetd
s_src" /W3 /c /Zi /TC ".\apr_dbd_freetds.c"
apr_dbd_freetds.c
.\apr_dbd_freetds.c(39) : fatal error C1083: Cannot open include
file: 'sybdb.h': No such file or directory
apr_dbd_freetds - 1 error(s), 0 warning(s)
========== Build: 2 succeeded, 1 failed, 4 up-to-date, 0 skipped ==========
The inclusion of that header file is conditioned by the value of a
precompiler constant (APU_HAVE_FREETDS=1, in this case). If I set
APU_HAVE_FREETDS to 0, the compilation succeeds but the build fails
because it requires a non-existent library:
Copyright (C) Microsoft Corporation. All rights reserved.
"/OUT:Release\apr_dbd_freetds-
1.dll" /INCREMENTAL:NO /DLL /MANIFEST "/MANIFESTFILE:.\Release\apr_dbd_free
tds-1.dll.intermediate.manifest" /DEBUG "/PDB:Release\apr_dbd_freetds-
1.pdb" /SUBSYSTEM:WINDOWS /OPT:REF "/BASE:0x6EF00000" "/IMPLIB:Release\apr_
dbd_freetds-1.lib" /MACHINE:X86 ws2_32.lib mswsock.lib libTDS.lib
kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib
shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib
odbccp32.lib "..\release\libaprutil-1.lib" "..\..\apr\release\libapr-
1.lib"
".\release\apr_dbd_freetds.obj"
".\release\apr_dbd_freetds-1.res"
LINK : fatal error LNK1181: cannot open input file 'libTDS.lib'
apr_dbd_freetds - 1 error(s), 0 warning(s)
========== Build: 2 succeeded, 1 failed, 4 up-to-date, 0 skipped ==========
I suspect that these projects may require some other packages development
packages such as MySQL or ODBC or ORACLE.
I know this is a question for the Apache APR contributors but it seems
that nobody at UniMRCP had these problems or that everybody knew how to
work around them.
Thanks everyone.
Reported by Curatica
on 2008-12-31 04:00:27
Originally reported on Google Code with ID 50
Running the unimrcpclient, connecting to Nuance Recognizer 9.0.3 with
Nuance Media Server 5.1.0 as the MRCP server causes recognition to fail
with "015 no-match-maxtime".
According to Issue 32, the "solution" is to simply modify the
incompletimeout variable, allowing Nuance to look for shorter periods of
silence to assume "end-of-speech". Indeed setting the incompletetimeout to
e.g. 900 allows recognition to work. This is clearly not an elegant solution.
According to Nuance, the correct solution is that uniMRCP should send a
"RTCP Goodbye packet" to indicate end-of-speech, otherwise their MRCP
server won't process the data.
I'm using unimrcp 0.8.0, APR 1.3.8, APR-util 1.3.9, and Sofia-SIP 1.2.10,
basically the unimrcp-deps-0.8.0.tar.gz and unimrcp-0.8.0.tar.gz files from
the unimrcp site. I'm running on CentOS 5.3 and there are no firewalls in
place between the speech server (running Nuance Recognizer, and Media
Server) and the unimrcpclient. We're using MRCP v. 2.
Any help would be appreciated.
Reported by thirionjwf
on 2009-10-20 08:42:09
Originally reported on Google Code with ID 34
What steps will reproduce the problem?
1. Declare a port range roughly 2 times the number of ASR + TTS resouces
plus a safe margin ammount of lets say 20 ports.
2. Do stress test with ASR and TTS requests when the number of TTS requests
is for instance 5 times the number of ASR requests for a given time span.
3. The result is that when doing some TTS request the port allocated will
collide with some other request that may be still in progress (for instance
one ASR request).
What version of the product are you using? On what operating system?
Trunk version, but happens on all versions.
The OS is a Windows Server 2003 SP2 32 bit Enterprise Edition.
Please provide any additional information below.
This happens because in the code, the RTP port management is too simple,
allocating ports "blindly", ie, just increasing 2 ports per request without
knowing if those ports are "available" or not. This can fail is the port
range is too short. What I suggest is a feature request where the port
allocation/deallocation would be controlled, for instance, by a two lists,
one for available ports, the other for ports in use. When a new set of
ports is required this would be taken from the "available ports" list.
These ports would be placed on the "in use" list until the request
terminated. You could provide also a rotation of ports by inserting the
recently used ports on the tail of the "available" list and taking new
ports from this list's head. I can try to provide a patch for this, but I'm
a bit affraid that it can cause side-effects.
Thanks in advance.
Regards.
Reported by cpsoares
on 2009-06-22 18:23:57
Originally reported on Google Code with ID 6
Implement new synthesizer plugin using Cepstral Swift engine.
Reported by achaloyan
on 2008-08-27 17:16:58
Originally reported on Google Code with ID 12
Provide NAT support.
See the discussion below for more info
http://groups.google.com/group/unimrcp/browse_thread/thread/f5945b87e4288684
Reported by achaloyan
on 2009-01-13 19:08:53
Originally reported on Google Code with ID 20
What steps will reproduce the problem?
1. Run concurrent requests from unimrcp client.
2. Monitor the memory allocated to unimrcp server
What version of the product are you using? On what operating system?
MRCP Server: unimrcp 0.5.0
MRCP Client: unimrcp client 0.5.0
Plug-in: modified version of demosynth (see attached)
OS: Win XP SP2
Dev Environment: VS 2005 SP1
Please provide any additional information below.
Reported by sadeek.kheer
on 2009-03-25 21:30:12
Originally reported on Google Code with ID 25
What steps will reproduce the problem?
1. SIP/MRCPv2 client connects to UniMRCP server using TCP as SIP transport
2. Basic MRCP session flow
3. Client tears down SIP TCP connection
TCP socket remains in CLOSE_WAIT state.
Problem is in Sofia-SIP transport layer. Only windows version is affected.
Reported by achaloyan
on 2009-04-30 05:48:11
Originally reported on Google Code with ID 32
Hi Arsen,
I tried running the "unimrcpclient" sample application against a Nuance
MRCP v2 server (which uses the so called Nuance 9 for ASR), after changing
the Content-Type for the DEFINE-GRAMMAR request to "application/srgs+xml",
as I mentioned in an email.
Things seemed to unfold normally until after UniMRCP sent the RECOGNIZE
request and the server replied with a “200 IN-PROGRESS”.
The first weird thing followed after that. I see that UniMRCP
opened “one.pcm” only about 4 seconds later. Some RTP data was received by
the server because Nuance sent a “START-OF-INPUT 2 IN-PROGRESS”
after “one.pcm” was opened. I also saw a lot of RTP packets in the
WireShark output.
But 10 seconds later, the server sent a “RECOGNITION-COMPLETE 2 COMPLETE”
with a Completion-Cause: 015 (“no-match-maxtime”).
Don’t have any clue. The UniMRCP log file, Nuance MRCP server log file,
and the WireShark capture file will be uploaded in a zip archive
called “ASR_does_not_work_with_Nuance_MRCP_V2_Server.zip”. Nuance MRCP
server log file doesn’t mention anything about RTP though, but maybe that
kind of information was not enabled in the log. I will open a case with
Nuance support as well. I used the latest UniMRCP release, r930.
Thanks a lot and best regards.
Reported by Curatica
on 2009-06-10 00:20:29
Originally reported on Google Code with ID 33
What steps will reproduce the problem?
1. I modified unimrcp tts client to also test pause/resume/stop (see
attached zip file)
2. Do (almost) like a monkey:
in the client create multiple sessions fast:
type: run synth and create multiple sessions (3 or 4 in my case will
do) by hitting up arrow and enter (command line recall)
3. I experienced several crashes. I was running the client using the VS08
debugger.
What version of the product are you using? On what operating system?
Latest trunk release on win32 (r984)
Please provide any additional information below.
The attached unimrcp client log shows
(1) garbage when logging the phrase of a
"Receive SIP Event [nua_i_state] Status 200 "
(2) The log ends when I experienced a crash in libsofia_sip_ua.dll
----
The above test was meant to just test my tts plugin (which I updated to
the latest revisions) rather than testing the unimrcp client, but anyway,
it's pretty well reproducable (on my 5 year old and slow laptop) so I
thought I should report this. It might be related to issue with sofia sip
as described in issue 20 !?
Additionally, I experienced some crashes before the one documented here
above. These were probably not related to sofia-sip
I was able to identify some of them. I changed the code to prevent the
crashes in the future as these were all dereferences of pointers to 0. I
did not figure out what the exact scenario's were (it was monkey testing
as described above) and I did not save any loggings.
The (modified) sources are in the attached zip file.
Reported by garmt.noname
on 2009-06-13 21:09:25
Originally reported on Google Code with ID 2
Implement media processing library with following feature set
- RTP/RTCP stack
- codecs
- resampling
Reported by achaloyan
on 2008-04-12 15:31:19
Originally reported on Google Code with ID 45
Hi Arsen,
today I tried to build UniMRCP project in release version for the first
time -- like building from scratch. I use apr-iconv in synth plugin so I
noticed that the prepare project in Visual Studio
(build/tools/prepare.vcproj) does not copy entire apr-iconv if present.
apr-iconv consists of the dll which is copied and then of many iconv/*.so
objects containing encoding vectors. (apr-iconv cannot be build as a single
file afaik, it would be great though.)
It would be very convenient if the prepare project copied those files for
us as well. Adding the following two lines would be enough, consider it:
if exist "$(AprIconvDir)\$(ConfigurationName)\iconv" if not exist
"$(SolutionDir)$(ConfigurationName)\bin\iconv" mkdir
"$(SolutionDir)$(ConfigurationName)\bin\iconv"
if exist "$(AprIconvDir)\$(ConfigurationName)\iconv" xcopy
"$(AprIconvDir)\$(ConfigurationName)\iconv\*.so"
"$(SolutionDir)$(ConfigurationName)\bin\iconv\" /Y
Thanks.
- Vali
Reported by [email protected]
on 2009-09-28 21:29:17
Originally reported on Google Code with ID 14
You wanted an issue: well here is a typo.
As it shows up quite often and (and on the client while waiting for user
input) I suggest to change it...
in
mrcp_sofiasip_client_agent.c and
mrcp_sofiasip_server_agent.c
Reported by garmt.noname
on 2009-01-14 10:29:25
Originally reported on Google Code with ID 18
Please provide the detailed description of the feature being requested and
outline the use cases.
I am entering information only for prosody-volume but it applies also for
prosody-rate.
-------------------------------------------------------
MRCP v2 IETF draft spec. version 17 (
http://tools.ietf.org/html/draft-ietf-speechsc-mrcpv2-17 ) says that:
8.4.7. Prosody-Parameters
This set of headers defines the prosody of the speech.
prosody-parameter = "Prosody-" prosody-param-name ":"
prosody-param-value CRLF
prosody-param-name is any one of the attribute names under the
prosody element specified in W3C's Speech Synthesis Markup Language
And W3C's SSML says that ( http://www.w3.org/TR/speech-synthesis/#S3.2.4 )
volume: the volume for the contained text in the range 0.0 to 100.0 (higher
values are louder and specifying a value of zero is equivalent to
specifying "silent"). Legal values are: number, a relative change or
"silent", "x-soft", "soft", "medium", "loud", "x-loud", or "default". The
volume scale is linear amplitude. The default is 100.0. Labels "silent"
through "x-loud" represent a sequence of monotonically non-decreasing
volume levels.
UniMRCP currently supports those values to be given as labels but not
numbers or relative changes.
--------------------------------------------
What version of the product are you using? On what operating system?
UniMRCP 0.4.0 - Windows XP Professional SP3
Reported by bayramboyraz
on 2009-03-06 10:23:49
Originally reported on Google Code with ID 8
It's possible to configure and load more than one plugin of the same
resource, but there is no way to specify which one of them should be used.
Reported by achaloyan
on 2008-12-18 13:22:22
Originally reported on Google Code with ID 1
Implement apr-toolkit library on top of apr and apr-util libraries with the
following feature set
- task execution abstraction
- inter task communication
- simple logging interface
- base text processing routine required for message parsing
- more
Reported by achaloyan
on 2008-04-12 15:26:07
Originally reported on Google Code with ID 3
Implement MRCP core library to provide client and server stacks with an
abstract, protocol version independent signaling interface, as well as
plugin interface for 3-rd party ASR/TTS engines.
Reported by achaloyan
on 2008-04-12 15:39:21
Originally reported on Google Code with ID 27
What steps will reproduce the problem?
I'm using libunimrcpclient linked to my application. I use it as a
MRCPv2-only client connected to a Loquendo Speech Server 7.x. I'm doing
stress tests in my application. These stress tests simply consist in
issuing a bunch of TTS requests and a bunch of ASR requests. I have only
one application registered with unimrcp requesting ASR and TTS resources to
do the corresponding requests. Each TTS request is done in its own session.
Each ASR request is done in its own session. Each request is done in its
own MRCP connection (I detected another issue related to the MRCP
connection reuse, which I'll eventually report later on).
From time to time I see this in the traces: "Failed to Find Channel
<xxxxxxxxxxxxxxxx@speechrecog>", where xxxx is some ID corresponding to a
resource that exists.
This will eventually lead to some kind of memory corruption and my
application crashes later on always on some code run in the context of the
mpf mm_timer_proc thread.
What version of the product are you using? On what operating system?
I use the latest (trunk) libunimrcpclient version compiled by me but this
also happened on prior versions.
The OS is a Windows Server 2003 SP2 Enterprise Edition.
Please provide any additional information below.
I will attach the traces from my application from the UNIMRCP side. These
traces come along with the thread id responsible for the trace on each
line. I will attach all the MRCP traces I have. These traces correspond to
a "run" of the stress test till the application crashed.
Please let me know if you need additional information or something else I
can try to better pinpoint the problem.
Thanks in advance.
Reported by cpsoares
on 2009-05-29 16:13:06
Originally reported on Google Code with ID 24
Dear Sir, first thanks for your greate job.
I work on the unimrcp with ASR server integration recently,
there is a rtsp method in unimrcp: RTSP_METHOD_DESCRIBE,
I would like to send the DESCRIBE method request from mrcp client in
another thread that created by myself,
but I have no idea how to get start.. could you give me some guide please?
Reported by chaojenh
on 2009-04-01 09:28:52
Originally reported on Google Code with ID 22
Arsen, Hi!
I found a problem with MRCPv1 client.
Now it is assumed that MRCP server responses on teardown request like this:
2009-03-31 19:36:36:391056 [INFO] Send RTSP Stream [103 bytes]
TEARDOWN rtsp://127.0.0.2:1554/media/speechsynthesizer RTSP/1.0
CSeq: 3
Session: 2ff55f3803674c34
2009-03-31 19:36:36:429737 [INFO] Receive RTSP Stream [55 bytes]
RTSP/1.0 200 OK
CSeq: 3
Session: 2ff55f3803674c34
But, indeed, server does not return Session (rfc2326, 10.7).
Only CSeq is returned. Therefore rtsp_client_session_response_process
function cannot find session (function tries to find new/pending session)
and session is never removed/destroyed.
Maybe the solution could be to look for original request using CSeq?
Garik.
Reported by garik.simonyan
on 2009-03-31 15:46:50
Originally reported on Google Code with ID 46
Hi Arsen,
while testing UniMRCP server with IBM VoiceEnabler, we found a bug that
causes VE to crash. The scenario looks as follows:
SETUP rtsp://10.6.6.2/media/speechrecognizer RTSP/1.0
cseq: 0
user-agent: WebSphere-VoiceEnabler 5.1.3
transport: ...
...
RTSP/1.0 200 OK
CSeq: 0
Session: 32d66bf00c15ea4a
...
then some recognizer requests:
DEFINE-GRAMMAR
DEFINE-GRAMMAR
DEFINE-GRAMMAR
And now the key point (notice the session header):
SETUP rtsp://10.6.6.2/media/speechsynthesizer RTSP/1.0
cseq: 5
user-agent: WebSphere-VoiceEnabler 5.1.3
session: 32d66bf00c15ea4a
transport: ...
...
RTSP/1.0 200 OK
CSeq: 5
Session: 32d66bf00c15ea4a
...
then
ANNOUNCE recognizer with DEFINE-GRAMMAR
ANNOUNCE synthesizer with SPEAK (Cseq: 7)
and bug:
ANNOUNCE rtsp://10.6.6.2/media/speechrecognizer RTSP/1.0
CSeq: 7
Session: 32d66bf00c15ea4a
Content-Type: application/mrcp
Content-Length: 77
SPEAK-COMPLETE 2147483647 COMPLETE MRCP/1.0
Completion-Cause: 000 normal
Notice that speechrecognizer instead of speechsynthesizer is annouced.
I attached full log file. It is rather large. From the beginning there is
successful communication with GVP and at the end there is that with VE.
Cheers
- Vali
Reported by [email protected]
on 2009-10-08 12:24:19
Originally reported on Google Code with ID 16
Yet another issue!
unimrcpclient uses a fixed port number for the control socket.
Which prevents the unimrcpclient from working properly.
See also
http://code.google.com/p/unimrcp/issues/detail?id=8&can=1&colspec=ID Type
Status Priority Component Milestone Owner Reporter Summary#c7
Reported by garmt.noname
on 2009-01-16 08:30:58
Originally reported on Google Code with ID 19
Please provide the detailed description of the feature being requested and
outline the use cases.
SIP OPTIONS to learn the capabilities of MRCP server has not been
implemented in UniMRCP, yet. Thus, it is not possible to create sessions
between clients, which send SIP OPTIONS, and the server.
Reported by bayramboyraz
on 2009-03-11 12:16:39
Originally reported on Google Code with ID 48
Hi Arsen,
we came across another issue while testing UniMRCP server with VoiceEnabler
client. VE uses very long request-ids so UniMRCP fails to parse them --
there is probably an overflow. The problem shows when VE sends
SPEAK 1257698432100 MRCP/1.0
and UniMRCP answers with
MRCP/1.0 2147483647 200 IN-PROGRESS
Let us look to specs. MRCPv2
http://tools.ietf.org/html/draft-ietf-speechsc-mrcpv2-20#section-5.2
says request-id is a 32bit unsigned integer (max 10 digits), but MRCPv1
http://tools.ietf.org/html/rfc4463#section-5.1
does not limit it anyhow.
My notes: Currently request-id is defined as apr_size_t which is defined as
size_t which is not always necessarily 32bit unsigned int. Moreover it is
shorter than request-id sent by some MRCPv1 clients (VoiceEnabler).
Cheers
- Vali
Reported by [email protected]
on 2009-10-16 10:36:16
Originally reported on Google Code with ID 31
I am attaching the patched mpf_rtp_stream.c file which contains added code
to allow unimrcpclient to send DTMF events. Now the client has to Set bit
mask MEDIA_FRAME_TYPE_EVENT and fill event_frame member of the mpf_frame_t
structure.
Reported by chaitanya.chokkareddy
on 2009-06-09 12:46:33
Originally reported on Google Code with ID 21
What steps will reproduce the problem?
1. run the example mrcptestclient and mrcptestserver programs that come
with the unimrcp5 package.
2. run recog
What version of the product are you using? On what operating system?
Unimrcp 3 4 and 5
Please provide any additional information below.
There could be 3 RTSP/MRCP responses to a single RECOGNIZE request.
a. OK
b. START-OF-INPUT
c. RECOGNITION-COMPLETE
Cseq is only present in the 1st response RTSP message (i.e. OK) from server
to client. START-OF-INPUT and RECOGNITION-COMPLETE messages are missing
Cseq in the RTSP header.
According to RTSP specification CSeq must be present in all request and
response packets.
Missing CSeq causes failure to successfully integrate to Nortel MPS MRCP1
platform.
Reported by dbansal
on 2009-03-25 21:51:25
Originally reported on Google Code with ID 47
C->S :
SET-PARAMS 1 MRCP/1.0
N-Best-List-Length: 3
S->C :
MRCP/1.0 1 200 COMPLETE
C->S :
RECOGNIZE 2 MRCP/1.0
N-Best-List-Length: 6
Content-Id: grammar_0
Content-Type: text/uri-list
Content-Length: 13
grammar.grxml
=> In this case, the following code :
if(mrcp_resource_header_property_check(request,RECOGNIZER_HEADER_N_BEST_LIS
T_LENGTH) == TRUE) {
nbest = recog_header->n_best_list_length);
}
must return 6 BUT today it returs 3.
Reported by amasse.atwork
on 2009-10-15 12:45:50
Originally reported on Google Code with ID 40
If you try to log
apt_log(APT_LOG_MARK, APT_PRIO_WARNING, "We print string with %%s");
then the default logger function, apt_do_log at apt_log.c:260 tries to
print and format the log entry with
printf(log_entry);
which is in fact
printf("...some artifacts... We print string with %s");
You ought to use a non-formatting function:
fwrite(log_entry, offset, 1, stdout);
or alternatively
printf("%.*s", offset, log_entry);
Reported by [email protected]
on 2009-08-18 08:26:33
Originally reported on Google Code with ID 15
OK, here is another one.
As I mentioned in
http://groups.google.com/group/unimrcp/browse_thread/thread/ed49a3aa44befa8
1 under (4) there are problems if the plugin is compiled using C++ (VS05).
Running the server you will see a warning that the DLL (DSO) will not load
(with a cryptical error: no error!)
You can verify that by changing the demo_synth plugin (as attached) from
a .c extension to a .cpp extension (which will trigger VS05) to use C++
(at least in my setup). In the attached file I added the casts that C++
wants to see...
if you add EXTERN_C in mrcp_resource_plugin.h (see attached file) to the
the MRCP_PLUGIN_DECLARE definitio the problem will be solved
#define MRCP_PLUGIN_DECLARE(type) EXTERN_C __declspec(dllexport)
I don't know enough about the C/C++ compilers to tell you why not but to
me it appears that #define macro's do not get "APT_EXTERN_C-ed"
Reported by garmt.noname
on 2009-01-14 12:56:38
Originally reported on Google Code with ID 42
Hi Arsen,
I came across an issue related to engine-specific parameters you introduced
in r1079 -- many thanks. If a plugin needs some parameters from config, it
must be initialized in mrcp_engine_virtual_open(), not in
mrcp_plugin_create(). But the server does not care whether the
initialization was successful or not. You should check the return value in
mrcp_server.c:632.
Thanks.
- Vali
Reported by [email protected]
on 2009-09-14 14:27:30
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.