GithubHelp home page GithubHelp logo

unimrcp's Issues

Better apr-iconv support in VC build

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

Original issue reported on code.google.com by [email protected] on 28 Sep 2009 at 9:29

Stale MRCP sessions upon MRCP link disconnection

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.

Original issue reported on code.google.com by [email protected] on 15 Jul 2009 at 4:40

RTP port management potential issues

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.

Original issue reported on code.google.com by [email protected] on 22 Jun 2009 at 6:23

Problem installing

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

Original issue reported on code.google.com by [email protected] on 21 Jul 2009 at 9:24

Closing SIP TCP Socket

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.

Original issue reported on code.google.com by [email protected] on 30 Apr 2009 at 5:48

Implement MRCPv1 module

Implement MRCPv1 module by implementing basic RTSP stack first and then
integrating it as a module.

Original issue reported on code.google.com by [email protected] on 12 Apr 2008 at 3:44

Engine/channel capabilities

Currently it's not possible to provide resource engine capabilities such as
- max number of simultaneous channels
- supported sampling rates
- etc

Original issue reported on code.google.com by [email protected] on 13 Jan 2009 at 6:40

inline grammar for RECOGNIZE request

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.

Original issue reported on code.google.com by [email protected] on 18 Sep 2009 at 2:18

pollset field of mrcp_connection_agent_t might be accessed before it is initialized

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.

Original issue reported on code.google.com by [email protected] on 20 Oct 2009 at 6:48

Application freeze upon call to mrcp_client_shutdown

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

Original issue reported on code.google.com by [email protected] on 1 Jun 2009 at 2:27

Failed to Find Channel errors

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.

Original issue reported on code.google.com by [email protected] on 29 May 2009 at 4:13

Attachments:

Cannot build the Apache libraries

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.

Original issue reported on code.google.com by [email protected] on 31 Dec 2008 at 4:00

The compilation step missing from all .vcproj files when using VS2005-SP1

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.

Original issue reported on code.google.com by [email protected] on 4 Jan 2009 at 3:19

Attachments:

Genesys Voice Platform interoperability

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

Original issue reported on code.google.com by [email protected] on 17 Aug 2009 at 2:50

Shraing RTSP session among resources

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

Original issue reported on code.google.com by [email protected] on 8 Oct 2009 at 12:24

Attachments:

Modification on MRCP headers

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

Original issue reported on code.google.com by [email protected] on 2 Mar 2009 at 2:23

Attachments:

recieve -> receive

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

Original issue reported on code.google.com by [email protected] on 14 Jan 2009 at 10:29

SIP OPTIONS and capabilities of MRCP server

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.

Original issue reported on code.google.com by [email protected] on 11 Mar 2009 at 12:16

UniMRCP client omission of RTCP goodbye packet required by Nuance Media server for ASR

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.

Original issue reported on code.google.com by [email protected] on 20 Oct 2009 at 8:42

RTSP_METHOD_DESCRIBE

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?

Original issue reported on code.google.com by [email protected] on 1 Apr 2009 at 9:28

Test whether an engine opened successfully

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

Original issue reported on code.google.com by [email protected] on 14 Sep 2009 at 2:27

Implement MRCP core library

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.

Original issue reported on code.google.com by [email protected] on 12 Apr 2008 at 3:39

output wave corrupted data

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.

Original issue reported on code.google.com by [email protected] on 8 Jun 2009 at 8:55

Attachments:

Incorrect error processing

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

Original issue reported on code.google.com by [email protected] on 13 Jan 2009 at 7:16

MRCP Speak Message with long body

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.

Original issue reported on code.google.com by [email protected] on 1 Apr 2009 at 7:24

Attachments:

Aculab Client code unimrcp inter operability problem MRCP v1

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"



Original issue reported on code.google.com by [email protected] on 12 Dec 2008 at 11:53

Attachments:

C++ plugin dll C binding problem

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"


Original issue reported on code.google.com by [email protected] on 14 Jan 2009 at 12:56

Attachments:

Request-id too short

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

Original issue reported on code.google.com by [email protected] on 16 Oct 2009 at 10:36

ASR does not work with Nuance MRCP V2 Server

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.

Original issue reported on code.google.com by [email protected] on 10 Jun 2009 at 12:20

Attachments:

undefined reference to `apr_pool_mutex_set'

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-con
fig
 --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?


Original issue reported on code.google.com by [email protected] on 14 Aug 2009 at 10:44

Memory problem

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.

Original issue reported on code.google.com by [email protected] on 25 Mar 2009 at 9:30

Attachments:

Possible access violation in APT logger

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);

Original issue reported on code.google.com by [email protected] on 18 Aug 2009 at 8:26

C++ compile error in codec_descriptor.h

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

Original issue reported on code.google.com by [email protected] on 28 Sep 2009 at 5:38

Not possible to run two unimrcpclients on same PC

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 


Original issue reported on code.google.com by [email protected] on 16 Jan 2009 at 8:30

Implement apr-toolkit library

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

Original issue reported on code.google.com by [email protected] on 12 Apr 2008 at 3:26

Memory corruption in mpf code

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.

Original issue reported on code.google.com by [email protected] on 1 Jun 2009 at 3:46

Attachments:

Problem with RSTP TEARDOWN

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.

Original issue reported on code.google.com by [email protected] on 31 Mar 2009 at 3:46

The terminate Remaining RTSP Sessions does not free all sessions

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

Original issue reported on code.google.com by [email protected] on 18 May 2009 at 9:56

NAT support

Provide NAT support.

See the discussion below for more info
http://groups.google.com/group/unimrcp/browse_thread/thread/f5945b87e4288684

Original issue reported on code.google.com by [email protected] on 13 Jan 2009 at 7:08

prosody-volume and prosody-rate as numbers&relative changes as well as labels

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

Original issue reported on code.google.com by [email protected] on 6 Mar 2009 at 10:23

ANNOUNCE response RTSP message missing Cseq

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.


Original issue reported on code.google.com by [email protected] on 25 Mar 2009 at 9:51

Decimal values in a mrcp_recog_header_t strangely rounded to the nearest tenth in the SET-PARAMS messages

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.

Original issue reported on code.google.com by [email protected] on 27 Jun 2009 at 3:08

Attachments:

crashes and garbage logging when running unimrcpclient tts demo

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.




Original issue reported on code.google.com by [email protected] on 13 Jun 2009 at 9:09

Attachments:

The RECOGNIZE message must only inherit the no redefined SET-PARAMS headers


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.

Original issue reported on code.google.com by [email protected] on 15 Oct 2009 at 12:45

Some MRCP servers "lie" about "existing connections."

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) {

Original issue reported on code.google.com by [email protected] on 9 Sep 2009 at 3:44

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.