Dear All,
I am not able to change the SDP parameters or send a BYE instead of
INVITE, when my unimrcp client receives COMPLETE from MRCP server.
I am using loquendo7-mrcp2 for TTS & ASR.
Now when my unimrcp client try to remove channel or I hang up my phone
Freeswitch hang up or dies.
However I could recognise the problem, but unable to rectify as I am
very new to unimrcp and doesn’t know how to change any thing in the
code.
Please find the below scenario where freeswitch dies or hangs.
1) Unimrcp client send an offer (INVITE) to loquendo mrcp server.
v=0
o=FreeSWITCH 0 0 IN IP4 172.30.98.4
s=-
c=IN IP4 172.30.98.4
t=0 0
m=application 9 TCP/MRCPv2 1
a=setup:active
a=connection:new
a=resource:speechsynth
a=cmid:1
m=audio 4000 RTP/AVP 0 8 96
a=rtpmap:0 PCMU/8000
a=rtpmap:8 PCMA/8000
a=rtpmap:96 L16/8000
a=recvonly
a=mid:1
------------------------------------------------------------------------------------------------------------------
2) Mrcp client receives 200 OK.
v=0
o=MRCPv2Server
3468327130 3468327130 IN IP4 172.30.98.18
s=-
c=IN IP4 172.30.98.18
t=
3468327130 0
m=application 51000 TCP/MRCPv2 1
a=channel:0613AB904B0FFA5A@speechsynth
a=connection:new
a=setup:passive
a=cmid:1
m=audio 10020 RTP/AVP 0
a=rtpmap:0 PCMU/8000
a=sendonly
a=mid:1
------------------------------------------------------------------------------------------------------------------
3) Mrcp client sends SPEAK
MRCP/2.0 208 SPEAK 1
Channel-Identifier: 0613AB904B0FFA5A@speechsynth
Voice-Name: kate
Content-Type: text/plain
Content-Length: 70
^[\rate=100\Welcome to the funline. First of all, let's select a
sound.
------------------------------------------------------------------------------------------------------------------
4) Mrcp client receives IN-PROGRESS (in my phone i can hear the
speech)
5) Mrcp client receives COMPLETE
6) Mrcp client now send another offer (INVITE) to remove the channel
or close the session from mrcp server
v=0
o=FreeSWITCH 0 0 IN IP4 172.30.98.4
s=-
c=IN IP4 172.30.98.4
t=0 0
m=application 0 TCP/MRCPv2 1
a=resource:speechsynth
a=cmid:1
m=audio 0 RTP/AVP 0
a=mid:1
----------------------------------------------------------------------------------------------------------------------
7) Mrcp client receives Internal Server Error from MRCP server (as
mrcp server doesn’t handle 0 port)
8) Now freeswitch hangs here, as MRCP client gives error while
stopping the channel.
Now, here I want to change that MRCP client send BYE after MRCP client
receives COMPLETER from MRCP server instead of INVITE (at point 6) to
terminate the session or change the SDP in INVITE (instead of setting
the port to 0) like following
v=0
o=FreeSWITCH 0 0 IN IP4 172.30.98.4
s=-
c=IN IP4 172.30.98.4
t=0 0
m=application 0 TCP/MRCPv2 1
a=resource:speechsynth
a=cmid:1
m=audio 4000 RTP/AVP 0 8 96
c=IN IP4 0.0.0.0
a=rtpmap:0 PCMU/8000
a=rtpmap:8 PCMA/8000
a=rtpmap:96 L16/8000
------------------------------------------------------------------------------------------------------------------------
If I disconnect the call or MRCP server send COMPLETE, in
mrcp_client_session.c function mrcp_app_request_dispatch executed,
which receives MRCP_SIG_COMMAND_CHANNEL_REMOVE and it calls
mrcp_client_channel_modify function. Can you please guide me how I can
change here to send BYE instead of sending INVITE, or at least SDP
parameters in the INVITE which MRCP server expects.
With Best Regards,
Debasish Chandra