Open GoogleCodeExporter opened 8 years ago
Hi Vali,
Agree with the resolution, but to say the truth, don't know how to approach
this and other known issues related to the case, where the server is supposed
to close the session because of inactivity, misuse, etc. Technically speaking,
it's clear what needs to be done. The general problem, however, unfortunately
doesn't lie in the technical field.
Although the same or related problems have been raised up several times by 3-rd
party vendors using the UniMRCP server in production, none of them seems be
interested enough to follow up and support the development efforts.
For the time being, you may need to work around this issue. And I'd be glad to
assist you when I can.
Cheers.
Original comment by achalo...@gmail.com
on 8 Apr 2014 at 3:15
Hi Arsen,
I also noticed similar issue is addressed in other tickets, e.g. Issue-163.
Well, I do have a kind of workaround, but it does not solve the problem, it
just postpones it:
All checking is done in an engine plugin -- time from last MRCP request, last
audio data, completion event (e.g. RECOGNITION-COMPLETE), whatever. When such a
condition occurs, mrcp_session_terminate_request(session) is invoked. The
session object is found in server's session hash table and the server object is
engine_channel->engine->event_obj. Not only this workaround is ugly and not
straightforward, it does not free all the resources associated with the
session. It destroys the engine channel and the MRCP session, but (here I am
not sure) not the RTP (MPF) session, Sofia/RTSP session and maybe something
else. So sooner or later, the server runs out of RTP ports.
This was what I was able to do in a short time from what I understand about
UniMRCP server design. As I see it, there would have to be some counters in
other/signalling sessions (RTSP, Sofia, MRCPv2, MPF) so that when the number of
MRCP sessions associated with them decreased to zero, the other sessions would
terminate as well. I do not think I can do this myself, because I do not know
the server design that well.
Last, I would vote, if there is a redesign of the server, for more information
available in engine plugins, for example:
- client IP address (for better logging/billing),
- client identity -- IP, SSL certificate etc. (authentication),
- full server configuration (e.g. IP for generating saved waveform URI),
- the more info the better.
Thanks for support and cheers,
- Vali
Original comment by tomas.valenta@speechtech.cz
on 8 Apr 2014 at 9:06
Original issue reported on code.google.com by
tomas.valenta@speechtech.cz
on 6 Apr 2014 at 3:25