Closed lizhenghn123 closed 3 years ago
As far as I know, when ivr send one speak message(SPEAK request), the unimrcp will be:
receive、parse、handler、push queue:
mrcp_server_poller_signal_process --> mrcp_server_message_handler --> mrcp_connection_message_receive --> mrcp_server_message_signal --> mrcp_server_connection_task_msg_signal --> apt_task_msg_signal --> apt_consumer_task_msg_signal
(receive data, parse it to mrcp message) (handler mrcp message) (trigger callback) (trigger callback) (package task msg, triger signal callback) (dispatch task msg) (push to message queue)
pop queue、callback plugin:
apt_consumer_task_run --> apt_task_msg_process --> mrcp_server_msg_process --> mrcp_server_on_channel_message --> mrcp_server_signaling_message_process --> mrcp_server_signaling_message_dispatch --> mrcp_state_machine_update --> synth_state_update --> synth_request_state_update
(pop msg from message queue) (trigger callback) (package signal message) (dispatch signal message) (dispatch synth machine)
Hi @achaloyan ,
I have a problem: sometimes the mrcp message(ag: speak) may be lost. I trace the logs, and find it can't be callback. see this:
Please igonre the line-number, i add some logs in these files. The SPEAK message is received, and parsed, but did't transfer to the synth-stata-machine. It seems lose.
These below logs is success(we can see the mrcp_synth_state_machine.c and "Process SPEAK Request" tags):
How to happened? Answer: When IVR do bench test(eg: 50 concurrency run one hour)。
What environment ? unimrcp: 1.5.0 plugin: demosynth
My Analysis: If i comment the function: apt_task_msg_signal(https://github.com/unispeech/unimrcp/blob/master/libs/apr-toolkit/src/apt_task.c#L261), i can reproduce it.
Can you give some suggests? Thanks a lot .