Hello Arsen,
I am back to my VAD application development. :-)
Before I used two separate sessions for each active call with one single
channel: TTS and ASR. That worked fine except it was slower to
setup/tear down than having one single session per call for both TTS and
ASR channels.
I decided to change this having TTS and ASR channels in one active
session per call and started with UniMRCP from the current HEAD as I
wanted to "transparently set header fields as generic name-value pairs"
feature. :-)
It works when creating and adding (first) TTS and (second) ASR channels.
But when sending a request to ASR channel it appears that the channel's
name is not valid and I get 405 error. TTS channel works fine.
I checked the UniMRCP logs and found that ASR channel's name gets
changed (2 times) during setup (when created and added) but the old name
is still used when a request is sent to ASR channel.
The first part is an unambiguous string identifying the MRCPv2 session
A separate MRCPv2 session is needed to control each of the media processing resources
associated with the SIP dialog between the client and server
I attached my session logs (from my application with custom logging
handler (all UniMRCP related logs are prefixed with 'mrcp_unimrcp:'
mark), SIP and MRCP logs from Wireshark) that reproduce this case.
Arsen, thanks a lot for UniMRCP (the best one available) and all your
effort.
--
--wbr.
--
You received this message because you are subscribed to the Google Groups "UniMRCP" group.
To post to this group, send email to uni...@googlegroups.com.
To unsubscribe from this group, send email to unimrcp+u...@googlegroups.com.
For more options, visit this group at http://groups.google.com/group/unimrcp?hl=en.
The unambiguous string (first part) MUST BE unique among the resource
instances managed by the server and is common to all resource
channels with that server established through a single SIP dialog.
In my use-case it seems either Nuance MRCP server doesn't follow MRCPv2 draft
or it somehow thinks there are two MRCPv2 sessions within one SIP dialog. I
may be wrong. I could contact Nuance support on this issue (if there is one).
The last definition confuses me. Now we can't have more than one resource
>> Now the question is what the MRCPv2 session is. The only more or less
>> clear definition one can found is
>>
>> A separate MRCPv2 session is needed to control each of the media processing
>> resources associated with the SIP dialog between the client and server
within the same MRCPv2 session. :-)
By the way, how to distinguish multiple MRCPv2 sessions from only one session
>> Another question is whether there can be multiple MRCPv2 sessions in a SIP
>> dialog or not.
withing one SIP dialog in this case? Using m-lines (as mentioned in the
discussion)?
I guess in most use-cases one MRCPv2 session per SIP dialog would be
>> According to Nuance, yes it's possible. Why not? Actually, it was not
>> possible in MRCP v1, but v2 conceptually allows it. Anyway, UniMRCP doesn't
>> support this method at the moment. I don't exclude that it'll be supported
>> in the future, though.
sufficient but it would be nice if it was supported in the future.
--wbr.
--
You received this message because you are subscribed to the Google Groups "UniMRCP" group.
To post to this group, send email to uni...@googlegroups.com.
To unsubscribe from this group, send email to unimrcp+u...@googlegroups.com.
For more options, visit this group at http://groups.google.com/group/unimrcp?hl=en.
Anyway I am gonna ask them as we have a paid support.
> http://tools.ietf.org/html/draft-ietf-speechsc-mrcpv2-20#section-6.2.1
>
> The unambiguous string (first part) MUST BE unique among the resource
>
> instances managed by the server and is common to all resource
> channels with that server established through a single SIP dialog.
>
>
>
> In my use-case it seems either Nuance MRCP server doesn't follow MRCPv2
> draft
> or it somehow thinks there are two MRCPv2 sessions within one SIP dialog. I
> may be wrong. I could contact Nuance support on this issue (if there is
> one).
>
> I'm pretty sure they are aware of this behavior. Moreover, I wouldn't be
> surprised if this was an intentional behavior for them. If I'm not mistaken,
> someone from Nuance submitted such a suggestion to the issue tracker of the
> speechcs group. Unfortunately, that issue tracker doesn't appear to be publicly
> available now.
Well, I started using OpenMRCP and the first implemntation of UniMRCP without
> Nonetheless, the suggestion they made seems quite reasonable to me. However, it
> definitely doesn't comply with either the current or any former drafts. And
> still this doesn't surprise me, remember that RTCP BYE message they require.
RTCP BYE message and it worked fine. But I did experienced some small delays when
recognizing but didn't take a closer look to that issue though. I will try it
as soon as I get my sessions working.
It wonders me too. That discussion was almost ten revisions of MRCPv2 draft
> >> Now the question is what the MRCPv2 session is. The only more or less
> >> clear definition one can found is
> >>
> >> A separate MRCPv2 session is needed to control each of the media
> processing
> >> resources associated with the SIP dialog between the client and server
>
> The last definition confuses me. Now we can't have more than one resource
> within the same MRCPv2 session. :-)
>
> >> Another question is whether there can be multiple MRCPv2 sessions in a
> SIP
> >> dialog or not.
>
> By the way, how to distinguish multiple MRCPv2 sessions from only one
> session
> withing one SIP dialog in this case? Using m-lines (as mentioned in the
> discussion)?
>
> This question is to the RFC editors. I wonder why they haven't explicitly
> defined what the MRCPv2 session is.
ago. I guess as MRCPv2 is still in the draft state it doesn't get much
attention and fixes from many different other implementations. I may be wrong.
UniMRCP works as expected in most use cases and it makes it the best in Open
> >> According to Nuance, yes it's possible. Why not? Actually, it was not
> >> possible in MRCP v1, but v2 conceptually allows it. Anyway, UniMRCP
> doesn't
> >> support this method at the moment. I don't exclude that it'll be
> supported
> >> in the future, though.
>
> I guess in most use-cases one MRCPv2 session per SIP dialog would be
> sufficient but it would be nice if it was supported in the future.
>
> It's not in my immediate plans, but I don't exclude such a possibility in the
> future. We'll see...
Source world. I am not aware of any other OSS implementations though. ;-)
--wbr.
--
You received this message because you are subscribed to the Google Groups "UniMRCP" group.
To post to this group, send email to uni...@googlegroups.com.
To unsubscribe from this group, send email to unimrcp+u...@googlegroups.com.
For more options, visit this group at http://groups.google.com/group/unimrcp?hl=en.
I am still waiting for response from Nuance support on the reported problem.
In the meantime I made a quick fix that fixes the problem for now. Now I can
successfully utilize ASR and TTS resources in one MRCPv2 session.
The fix:
diff --git a/libs/mrcp-client/src/mrcp_client_session.c b/libs/mrcp-client/src/mrcp_client_session.c
index 6b6a4e7..89e15ff 100644
--- a/libs/mrcp-client/src/mrcp_client_session.c
+++ b/libs/mrcp-client/src/mrcp_client_session.c
@@ -624,6 +624,8 @@ static mrcp_channel_t* mrcp_client_channel_find_by_name(mrcp_client_session_t *s
static apt_bool_t mrcp_client_message_send(mrcp_client_session_t *session, mrcp_channel_t *channel, mrcp_message_t *message)
{
+ apt_str_t session_id, resource_name;
+
if(!session->base.id.length) {
mrcp_message_t *response = mrcp_response_create(message,message->pool);
response->start_line.status_code = MRCP_STATUS_CODE_METHOD_FAILED;
@@ -632,7 +634,8 @@ static apt_bool_t mrcp_client_message_send(mrcp_client_session_t *session, mrcp_
return TRUE;
}
- message->channel_id.session_id = session->base.id;
+ apt_id_resource_parse(&channel->control_channel->identifier,'@',&session_id,&resource_name,message->pool);
+ message->channel_id.session_id = session_id; /* session->base.id; */
message->start_line.request_id = ++session->base.last_request_id;
apt_log(APT_LOG_MARK,APT_PRIO_INFO,"Send MRCP Request "APT_NAMESIDRES_FMT" [%"MRCP_REQUEST_ID_FMT"]",
MRCP_SESSION_NAMESID(session),
--
--wbr.
Hi Arsen,
I am still waiting for response from Nuance support on the reported problem.
In the meantime I made a quick fix that fixes the problem for now. Now I can
successfully utilize ASR and TTS resources in one MRCPv2 session.
The fix:
diff --git a/libs/mrcp-client/src/mrcp_client_session.c b/libs/mrcp-client/src/mrcp_client_session.c
index 6b6a4e7..89e15ff 100644
--- a/libs/mrcp-client/src/mrcp_client_session.c
+++ b/libs/mrcp-client/src/mrcp_client_session.c
@@ -624,6 +624,8 @@ static mrcp_channel_t* mrcp_client_channel_find_by_name(mrcp_client_session_t *s
static apt_bool_t mrcp_client_message_send(mrcp_client_session_t *session, mrcp_channel_t *channel, mrcp_message_t *message)
{
+ apt_str_t session_id, resource_name;
+
if(!session->base.id.length) {
mrcp_message_t *response = mrcp_response_create(message,message->pool);
response->start_line.status_code = MRCP_STATUS_CODE_METHOD_FAILED;
@@ -632,7 +634,8 @@ static apt_bool_t mrcp_client_message_send(mrcp_client_session_t *session, mrcp_
return TRUE;
}
- message->channel_id.session_id = session->base.id;
+ apt_id_resource_parse(&channel->control_channel->identifier,'@',&session_id,&resource_name,message->pool);
+ message->channel_id.session_id = session_id; /* session->base.id; */
message->start_line.request_id = ++session->base.last_request_id;
apt_log(APT_LOG_MARK,APT_PRIO_INFO,"Send MRCP Request "APT_NAMESIDRES_FMT" [%"MRCP_REQUEST_ID_FMT"]",
MRCP_SESSION_NAMESID(session),
--
--wbr.
--
You received this message because you are subscribed to the Google Groups "UniMRCP" group.
To post to this group, send email to uni...@googlegroups.com.
To unsubscribe from this group, send email to unimrcp+u...@googlegroups.com.
For more options, visit this group at http://groups.google.com/group/unimrcp?hl=en.
> In the meantime I made a quick fix that fixes the problem for now. Now I
> can successfully utilize ASR and TTS resources in one MRCPv2 session.
>
> Thanks for the patch. I haven't tried it yet, but I believe it does the
> trick. Nevertheless, it's clearly just a workaround. The problem is more
> conceptual here.
>
> Of course, I could commit this patch probably #ifdef-ed and disabled by
> default, if you and others find this reasonable.
No problem (I keep my branch anyway), if anyone finds it useful but I hope
Nuance will resolve this issue and fix it.
--
--wbr.