amigniter / mod_audio_stream

FreeSWITCH module to stream audio to websocket and receive response
MIT License
73 stars 33 forks source link

Cant get any media data on WS handler #30

Closed SumyabazarBaatar closed 3 months ago

SumyabazarBaatar commented 4 months ago

Hello. I cant get any media data on my ws handler function. Im sent the command and receive "mod_audio_stream::connect" event with {"status":"connected"} this data from esl. ws handler logs when access but no event coming. Is there is a secret or not mentioned configuration that left?

SumyabazarBaatar commented 4 months ago

Log 2024-06-25 11:26:29.583667 99.83% [DEBUG] mod_audio_stream.c:144 mod_audio_stream cmd: 09e1cca0-a167483a-8ecd-a0a00f4de1f0 start ws://wshost:wsport/ws mono 8k 2024-06-25 11:26:29.583667 99.83% [DEBUG] mod_audio_stream.c:75 calling stream_session_init. 2024-06-25 11:26:29.583667 99.83% [DEBUG] audio_streamer_glue.cpp:364 (09e1cca0-a167-483a-8ecda0a00f4de1f0) resampling from 48000 to 8000 2024-06-25 11:26:29.583667 99.83% [DEBUG] audio_streamer_glue.cpp:375 (09e1cca0-a167-483a-8ecd-a0a00f4de1f0) stream_data_init 2024-06-25 11:26:29.583667 99.83% [DEBUG] mod_audio_stream.c:81 adding bug. 2024-06-25 11:26:29.583667 99.83% [DEBUG] switch_core_media_bug.c:976 Attaching BUG to sofia/internal/1000@192.168.67.2 2024-06-25 11:26:29.583667 99.83% [DEBUG] mod_audio_stream.c:85 setting bug private data. 2024-06-25 11:26:29.583667 99.83% [DEBUG] mod_audio_stream.c:88 exiting start_capture. 2024-06-25 11:26:29.603986 99.83% [DEBUG] audio_streamer_glue.cpp:131 sending initial metadata ? 2024-06-25 11:26:29.603986 99.83% [DEBUG] switch_ivr.c:632 sofia/internal/1000@192.168.67.2 Command Execute [depth=1] answer() EXECUTE [depth=1] sofia/internal/1000@192.168.67.2 answer() 2024-06-25 11:26:30.363857 99.80% [DEBUG] switch_rtp.c:7125 Correct audio RTCP ip/port confirmed. 2024-06-25 11:26:30.403801 99.80% [DEBUG] switch_rtp.c:7695 Correct audio ip/port confirmed. 2024-06-25 11:26:30.403801 99.80% [DEBUG] switch_core_io.c:448 Setting BUG Codec opus:116 2024-06-25 11:26:30.403801 99.80% [DEBUG] mod_opus.c:629 Opus encoder: set bitrate to local settings [72000bps] 2024-06-25 11:26:30.423756 99.80% [DEBUG] switch_rtp.c:1930 rtcp_stats_init: audio ssrc[393413891] base_seq[11094] only this log logged on fs_cli. after 30 seconds from this log, a call will ended

SumyabazarBaatar commented 3 months ago

and i cant detect is libfreeswitch-dev installed or not. can u guide me ?

amigniter commented 3 months ago

Hi @SumyabazarBaatar ,

Is there is a secret or not mentioned configuration that left?

No. It is all there how to properly call the API.

and i cant detect is libfreeswitch-dev installed or not. can u guide me ?

You probably successfully installed libfreeswitch-dev since the module is built and installed. You can check it using pkg-config: pkg-config --libs freeswitch and it will return the flags meaning freeswitch.pc is found.

I will try to help you solve the issue but I need to know what's happening, how is the call being made, api command you're executing, etc. I see OPUS codec is being used and it is resampled from 48k down to 8k by FS. Not sure if the issue is related to opus, we'll have to investigate this.

amigniter commented 3 months ago

I made a test call using OPUS codec and all went fine. The module is working perfectly fine and it is streaming audio as expected. The call is established at 48k (by OPUS) and resampled to 8k (from the api command - mono 8k). I'd suggest that you rebuild the module and try it out again. If you still have issue, let me know please, and post the entire call flow.

SumyabazarBaatar commented 3 months ago

Hi. Thank you for reply. Here is full call flow log from FS. ` 2024-06-26 13:28:08.118642 99.93% [NOTICE] switch_channel.c:1142 New Channel sofia/internal/1000@192.168.67.2 [a9badaf8-d37a-4cba-8ca3-5b1c9b13637e] 2024-06-26 13:28:08.118642 99.93% [DEBUG] switch_core_state_machine.c:581 (sofia/internal/1000@192.168.67.2) Running State Change CS_NEW (Cur 15 Tot 30) 2024-06-26 13:28:08.118642 99.93% [INFO] sofia.c:10459 sofia/internal/1000@192.168.67.2 receiving invite from 192.168.67.1:59898 version: 1.10.11-release 64bit call-id: yGGyM-KN2zR4EZKKJybKyP5Pm7UgepWv 2024-06-26 13:28:08.118642 99.93% [DEBUG] sofia.c:10553 verifying acl "domains" for ip/port 192.168.67.1:0. 2024-06-26 13:28:08.118642 99.93% [DEBUG] sofia.c:10582 IP 192.168.67.1 Approved by acl "domains[]". Access Granted. 2024-06-26 13:28:08.138623 99.93% [DEBUG] sofia.c:7493 Channel sofia/internal/1000@192.168.67.2 entering state [received][100] 2024-06-26 13:28:08.138623 99.93% [DEBUG] sofia.c:7503 Remote SDP: v=0 o=- 3928372154 3928372154 IN IP4 192.168.67.1 s=pjmedia b=AS:84 t=0 0 a=X-nat:0 m=audio 4010 RTP/AVP 8 0 101 c=IN IP4 192.168.67.1 b=TIAS:64000 a=rtpmap:8 PCMA/8000 a=rtpmap:0 PCMU/8000 a=rtpmap:101 telephone-event/8000 a=fmtp:101 0-16 a=rtcp:4011 IN IP4 192.168.67.1 a=ssrc:1118596295 cname:5cdd121235cd8b5f

2024-06-26 13:28:08.138623 99.93% [DEBUG] sofia.c:7906 (sofia/internal/1000@192.168.67.2) State Change CS_NEW -> CS_INIT 2024-06-26 13:28:08.138623 99.93% [DEBUG] switch_core_state_machine.c:600 (sofia/internal/1000@192.168.67.2) State NEW 2024-06-26 13:28:08.138623 99.93% [DEBUG] switch_core_state_machine.c:581 (sofia/internal/1000@192.168.67.2) Running State Change CS_INIT (Cur 15 Tot 30) 2024-06-26 13:28:08.138623 99.93% [DEBUG] switch_core_state_machine.c:624 (sofia/internal/1000@192.168.67.2) State INIT 2024-06-26 13:28:08.138623 99.93% [DEBUG] mod_sofia.c:97 sofia/internal/1000@192.168.67.2 SOFIA INIT 2024-06-26 13:28:08.138623 99.93% [DEBUG] switch_core_state_machine.c:40 sofia/internal/1000@192.168.67.2 Standard INIT 2024-06-26 13:28:08.138623 99.93% [DEBUG] switch_core_state_machine.c:48 (sofia/internal/1000@192.168.67.2) State Change CS_INIT -> CS_ROUTING 2024-06-26 13:28:08.138623 99.93% [DEBUG] switch_core_state_machine.c:624 (sofia/internal/1000@192.168.67.2) State INIT going to sleep 2024-06-26 13:28:08.138623 99.93% [DEBUG] switch_core_state_machine.c:581 (sofia/internal/1000@192.168.67.2) Running State Change CS_ROUTING (Cur 15 Tot 30) 2024-06-26 13:28:08.138623 99.93% [DEBUG] switch_channel.c:2399 (sofia/internal/1000@192.168.67.2) Callstate Change DOWN -> RINGING 2024-06-26 13:28:08.138623 99.93% [DEBUG] switch_core_state_machine.c:640 (sofia/internal/1000@192.168.67.2) State ROUTING 2024-06-26 13:28:08.138623 99.93% [DEBUG] mod_sofia.c:158 sofia/internal/1000@192.168.67.2 SOFIA ROUTING 2024-06-26 13:28:08.138623 99.93% [DEBUG] switch_core_state_machine.c:230 sofia/internal/1000@192.168.67.2 Standard ROUTING 2024-06-26 13:28:08.138623 99.93% [INFO] mod_dialplan_xml.c:639 Processing 1000 <1000>->1097 in context default Dialplan: sofia/internal/1000@192.168.67.2 parsing [default->unloop] continue=false Dialplan: sofia/internal/1000@192.168.67.2 Regex (PASS) [unloop] ${unroll_loops}(true) =~ /^true$/ break=on-false Dialplan: sofia/internal/1000@192.168.67.2 Regex (FAIL) [unloop] ${sip_looped_call}() =~ /^true$/ break=on-false Dialplan: sofia/internal/1000@192.168.67.2 parsing [default->tod_example] continue=true Dialplan: sofia/internal/1000@192.168.67.2 Date/Time Match (PASS) [tod_example] break=on-false Dialplan: sofia/internal/1000@192.168.67.2 Action set(open=true) Dialplan: sofia/internal/1000@192.168.67.2 parsing [default->holiday_example] continue=true Dialplan: sofia/internal/1000@192.168.67.2 Date/TimeMatch (FAIL) [holiday_example] break=on-false Dialplan: sofia/internal/1000@192.168.67.2 parsing [default->global-intercept] continue=false Dialplan: sofia/internal/1000@192.168.67.2 Regex (FAIL) [global-intercept] destination_number(1097) =~ /^886$/ break=on-false Dialplan: sofia/internal/1000@192.168.67.2 parsing [default->group-intercept] continue=false Dialplan: sofia/internal/1000@192.168.67.2 Regex (FAIL) [group-intercept] destination_number(1097) =~ /^*8$/ break=on-false Dialplan: sofia/internal/1000@192.168.67.2 parsing [default->intercept-ext] continue=false Dialplan: sofia/internal/1000@192.168.67.2 Regex (FAIL) [intercept-ext] destination_number(1097) =~ /^**(\d+)$/ break=on-false Dialplan: sofia/internal/1000@192.168.67.2 parsing [default->redial] continue=false Dialplan: sofia/internal/1000@192.168.67.2 Regex (FAIL) [redial] destination_number(1097) =~ /^(redial|870)$/ break=on-false Dialplan: sofia/internal/1000@192.168.67.2 parsing [default->global] continue=true Dialplan: sofia/internal/1000@192.168.67.2 Regex (FAIL) [global] ${call_debug}(false) =~ /^true$/ break=never Dialplan: sofia/internal/1000@192.168.67.2 Regex (FAIL) [global] ${default_password}(123456789) =~ /^1234$/ break=never Dialplan: sofia/internal/1000@192.168.67.2 Regex (FAIL) [global] ${rtp_has_crypto}() =~ /^(AEAD_AES_256_GCM_8|AEAD_AES_128_GCM_8|AES_CM_256_HMAC_SHA1_80|AES_CM_192_HMAC_SHA1_80|AES_CM_128_HMAC_SHA1_80|AES_CM_256_HMAC_SHA1_32|AES_CM_192_HMAC_SHA1_32|AES_CM_128_HMAC_SHA1_32|AES_CM_128_NULL_AUTH)$/ break=never Dialplan: sofia/internal/1000@192.168.67.2 Regex (PASS) [global] ${endpoint_disposition}(DELAYED NEGOTIATION) =~ /^(DELAYED NEGOTIATION)/ break=on-false Dialplan: sofia/internal/1000@192.168.67.2 Regex (FAIL) [global] ${switch_r_sdp}(v=0 o=- 3928372154 3928372154 IN IP4 192.168.67.1 s=pjmedia b=AS:84 t=0 0 a=X-nat:0 m=audio 4010 RTP/AVP 8 0 101 c=IN IP4 192.168.67.1 b=TIAS:64000 a=rtpmap:8 PCMA/8000 a=rtpmap:0 PCMU/8000 a=rtpmap:101 telephone-event/8000 a=fmtp:101 0-16 a=rtcp:4011 IN IP4 192.168.67.1 a=ssrc:1118596295 cname:5cdd121235cd8b5f ) =~ /(AES_CM_128_HMAC_SHA1_32|AES_CM_128_HMAC_SHA1_80)/ break=never Dialplan: sofia/internal/1000@192.168.67.2 Absolute Condition [global] Dialplan: sofia/internal/1000@192.168.67.2 Action hash(insert/${domain_name}-spymap/${caller_id_number}/${uuid}) Dialplan: sofia/internal/1000@192.168.67.2 Action hash(insert/${domain_name}-last_dial/${caller_id_number}/${destination_number}) Dialplan: sofia/internal/1000@192.168.67.2 Action hash(insert/${domain_name}-last_dial/global/${uuid}) Dialplan: sofia/internal/1000@192.168.67.2 Action export(RFC2822_DATE=${strftime(%a, %d %b %Y %T %z)}) Dialplan: sofia/internal/1000@192.168.67.2 parsing [default->snom-demo-2] continue=false Dialplan: sofia/internal/1000@192.168.67.2 Regex (FAIL) [snom-demo-2] destination_number(1097) =~ /^9001$/ break=on-false Dialplan: sofia/internal/1000@192.168.67.2 parsing [default->snom-demo-1] continue=false Dialplan: sofia/internal/1000@192.168.67.2 Regex (FAIL) [snom-demo-1] destination_number(1097) =~ /^9000$/ break=on-false Dialplan: sofia/internal/1000@192.168.67.2 parsing [default->eavesdrop] continue=false Dialplan: sofia/internal/1000@192.168.67.2 Regex (FAIL) [eavesdrop] destination_number(1097) =~ /^88(\d{4})$|^*0(.)$/ break=on-false Dialplan: sofia/internal/1000@192.168.67.2 parsing [default->eavesdrop] continue=false Dialplan: sofia/internal/1000@192.168.67.2 Regex (FAIL) [eavesdrop] destination_number(1097) =~ /^779$/ break=on-false Dialplan: sofia/internal/1000@192.168.67.2 parsing [default->call_return] continue=false Dialplan: sofia/internal/1000@192.168.67.2 Regex (FAIL) [call_return] destination_number(1097) =~ /^*69$|^869$|^lcr$/ break=on-false Dialplan: sofia/internal/1000@192.168.67.2 parsing [default->del-group] continue=false Dialplan: sofia/internal/1000@192.168.67.2 Regex (FAIL) [del-group] destination_number(1097) =~ /^80(\d{2})$/ break=on-false Dialplan: sofia/internal/1000@192.168.67.2 parsing [default->add-group] continue=false Dialplan: sofia/internal/1000@192.168.67.2 Regex (FAIL) [add-group] destination_number(1097) =~ /^81(\d{2})$/ break=on-false Dialplan: sofia/internal/1000@192.168.67.2 parsing [default->call-group-simo] continue=false Dialplan: sofia/internal/1000@192.168.67.2 Regex (FAIL) [call-group-simo] destination_number(1097) =~ /^82(\d{2})$/ break=on-false Dialplan: sofia/internal/1000@192.168.67.2 parsing [default->call-group-order] continue=false Dialplan: sofia/internal/1000@192.168.67.2 Regex (FAIL) [call-group-order] destination_number(1097) =~ /^83(\d{2})$/ break=on-false Dialplan: sofia/internal/1000@192.168.67.2 parsing [default->extension-intercom] continue=false Dialplan: sofia/internal/1000@192.168.67.2 Regex (FAIL) [extension-intercom] destination_number(1097) =~ /^8(10[01][0-9])$/ break=on-false Dialplan: sofia/internal/1000@192.168.67.2 parsing [default->Local_Extension] continue=false Dialplan: sofia/internal/1000@192.168.67.2 Regex (FAIL) [Local_Extension] destination_number(1097) =~ /^(10[01][0-9])$/ break=on-false Dialplan: sofia/internal/1000@192.168.67.2 parsing [default->Local_Extension_Skinny] continue=false Dialplan: sofia/internal/1000@192.168.67.2 Regex (FAIL) [Local_Extension_Skinny] destination_number(1097) =~ /^(11[01][0-9])$/ break=on-false Dialplan: sofia/internal/1000@192.168.67.2 parsing [default->group_dial_sales] continue=false Dialplan: sofia/internal/1000@192.168.67.2 Regex (FAIL) [group_dial_sales] destination_number(1097) =~ /^2000$/ break=on-false Dialplan: sofia/internal/1000@192.168.67.2 parsing [default->group_dial_support] continue=false Dialplan: sofia/internal/1000@192.168.67.2 Regex (FAIL) [group_dial_support] destination_number(1097) =~ /^2001$/ break=on-false Dialplan: sofia/internal/1000@192.168.67.2 parsing [default->group_dial_billing] continue=false Dialplan: sofia/internal/1000@192.168.67.2 Regex (FAIL) [group_dial_billing] destination_number(1097) =~ /^2002$/ break=on-false Dialplan: sofia/internal/1000@192.168.67.2 parsing [default->operator] continue=false Dialplan: sofia/internal/1000@192.168.67.2 Regex (FAIL) [operator] destination_number(1097) =~ /^(operator|0)$/ break=on-false Dialplan: sofia/internal/1000@192.168.67.2 parsing [default->vmain] continue=false Dialplan: sofia/internal/1000@192.168.67.2 Regex (FAIL) [vmain] destination_number(1097) =~ /^vmain$|^4000$|^*98$/ break=on-false Dialplan: sofia/internal/1000@192.168.67.2 parsing [default->sip_uri] continue=false Dialplan: sofia/internal/1000@192.168.67.2 Regex (FAIL) [sip_uri] destination_number(1097) =~ /^sip:(.)$/ break=on-false Dialplan: sofia/internal/1000@192.168.67.2 parsing [default->nb_conferences] continue=false Dialplan: sofia/internal/1000@192.168.67.2 Regex (FAIL) [nb_conferences] destination_number(1097) =~ /^(30\d{2})$/ break=on-false Dialplan: sofia/internal/1000@192.168.67.2 parsing [default->wb_conferences] continue=false Dialplan: sofia/internal/1000@192.168.67.2 Regex (FAIL) [wb_conferences] destination_number(1097) =~ /^(31\d{2})$/ break=on-false Dialplan: sofia/internal/1000@192.168.67.2 parsing [default->uwb_conferences] continue=false Dialplan: sofia/internal/1000@192.168.67.2 Regex (FAIL) [uwb_conferences] destination_number(1097) =~ /^(32\d{2})$/ break=on-false Dialplan: sofia/internal/1000@192.168.67.2 parsing [default->cdquality_conferences] continue=false Dialplan: sofia/internal/1000@192.168.67.2 Regex (FAIL) [cdquality_conferences] destination_number(1097) =~ /^(33\d{2})$/ break=on-false Dialplan: sofia/internal/1000@192.168.67.2 parsing [default->cdquality_stereo_conferences] continue=false Dialplan: sofia/internal/1000@192.168.67.2 Regex (FAIL) [cdquality_stereo_conferences] destination_number(1097) =~ /^(35\d{2}).*?-screen$/ break=on-false Dialplan: sofia/internal/1000@192.168.67.2 parsing [default->conference-canvases] continue=true Dialplan: sofia/internal/1000@192.168.67.2 Regex (FAIL) [conference-canvases] destination_number(1097) =~ /(35\d{2})-canvas-(\d+)/ break=on-false Dialplan: sofia/internal/1000@192.168.67.2 parsing [default->conf mod] continue=false Dialplan: sofia/internal/1000@192.168.67.2 Regex (FAIL) [conf mod] destination_number(1097) =~ /^6070-moderator$/ break=on-false Dialplan: sofia/internal/1000@192.168.67.2 parsing [default->cdquality_conferences] continue=false Dialplan: sofia/internal/1000@192.168.67.2 Regex (FAIL) [cdquality_conferences] destination_number(1097) =~ /^(35\d{2})$/ break=on-false Dialplan: sofia/internal/1000@192.168.67.2 parsing [default->cdquality_conferences_720] continue=false Dialplan: sofia/internal/1000@192.168.67.2 Regex (FAIL) [cdquality_conferences_720] destination_number(1097) =~ /^(36\d{2})$/ break=on-false Dialplan: sofia/internal/1000@192.168.67.2 parsing [default->cdquality_conferences_480] continue=false Dialplan: sofia/internal/1000@192.168.67.2 Regex (FAIL) [cdquality_conferences_480] destination_number(1097) =~ /^(37\d{2})$/ break=on-false Dialplan: sofia/internal/1000@192.168.67.2 parsing [default->cdquality_conferences_320] continue=false Dialplan: sofia/internal/1000@192.168.67.2 Regex (FAIL) [cdquality_conferences_320] destination_number(1097) =~ /^(38\d{2})$/ break=on-false Dialplan: sofia/internal/1000@192.168.67.2 parsing [default->freeswitch_public_conf_via_sip] continue=false Dialplan: sofia/internal/1000@192.168.67.2 Regex (FAIL) [freeswitch_public_conf_via_sip] destination_number(1097) =~ /^9(888|8888|1616|3232)$/ break=on-false Dialplan: sofia/internal/1000@192.168.67.2 parsing [default->mad_boss_intercom] continue=false Dialplan: sofia/internal/1000@192.168.67.2 Regex (FAIL) [mad_boss_intercom] destination_number(1097) =~ /^0911$/ break=on-false Dialplan: sofia/internal/1000@192.168.67.2 parsing [default->mad_boss_intercom] continue=false Dialplan: sofia/internal/1000@192.168.67.2 Regex (FAIL) [mad_boss_intercom] destination_number(1097) =~ /^0912$/ break=on-false Dialplan: sofia/internal/1000@192.168.67.2 parsing [default->mad_boss] continue=false Dialplan: sofia/internal/1000@192.168.67.2 Regex (FAIL) [mad_boss] destination_number(1097) =~ /^0913$/ break=on-false Dialplan: sofia/internal/1000@192.168.67.2 parsing [default->ivr_demo] continue=false Dialplan: sofia/internal/1000@192.168.67.2 Regex (FAIL) [ivr_demo] destination_number(1097) =~ /^5000$/ break=on-false Dialplan: sofia/internal/1000@192.168.67.2 parsing [default->dynamic_conference] continue=false Dialplan: sofia/internal/1000@192.168.67.2 Regex (FAIL) [dynamic_conference] destination_number(1097) =~ /^5001$/ break=on-false Dialplan: sofia/internal/1000@192.168.67.2 parsing [default->rtp_multicast_page] continue=false Dialplan: sofia/internal/1000@192.168.67.2 Regex (FAIL) [rtp_multicast_page] destination_number(1097) =~ /^pagegroup$|^7243$/ break=on-false Dialplan: sofia/internal/1000@192.168.67.2 parsing [default->park] continue=false Dialplan: sofia/internal/1000@192.168.67.2 Regex (FAIL) [park] destination_number(1097) =~ /^5900$/ break=on-false Dialplan: sofia/internal/1000@192.168.67.2 parsing [default->unpark] continue=false Dialplan: sofia/internal/1000@192.168.67.2 Regex (FAIL) [unpark] destination_number(1097) =~ /^5901$/ break=on-false Dialplan: sofia/internal/1000@192.168.67.2 parsing [default->valet_park] continue=false Dialplan: sofia/internal/1000@192.168.67.2 Regex (FAIL) [valet_park] destination_number(1097) =~ /^(6000)$/ break=on-false Dialplan: sofia/internal/1000@192.168.67.2 parsing [default->valet_park] continue=false Dialplan: sofia/internal/1000@192.168.67.2 Regex (FAIL) [valet_park] destination_number(1097) =~ /^((?!6000)60\d{2})$/ break=on-false Dialplan: sofia/internal/1000@192.168.67.2 parsing [default->park] continue=false Dialplan: sofia/internal/1000@192.168.67.2 Regex (PASS) [park] source(mod_sofia) =~ /mod_sofia/ break=on-false Dialplan: sofia/internal/1000@192.168.67.2 Regex (FAIL) [park] destination_number(1097) =~ /park+(\d+)/ break=on-false Dialplan: sofia/internal/1000@192.168.67.2 parsing [default->unpark] continue=false Dialplan: sofia/internal/1000@192.168.67.2 Regex (PASS) [unpark] source(mod_sofia) =~ /mod_sofia/ break=on-false Dialplan: sofia/internal/1000@192.168.67.2 Regex (FAIL) [unpark] destination_number(1097) =~ /^parking$/ break=on-false Dialplan: sofia/internal/1000@192.168.67.2 parsing [default->park] continue=false Dialplan: sofia/internal/1000@192.168.67.2 Regex (PASS) [park] source(mod_sofia) =~ /mod_sofia/ break=on-false Dialplan: sofia/internal/1000@192.168.67.2 Regex (FAIL) [park] destination_number(1097) =~ /callpark/ break=on-false Dialplan: sofia/internal/1000@192.168.67.2 parsing [default->unpark] continue=false Dialplan: sofia/internal/1000@192.168.67.2 Regex (PASS) [unpark] source(mod_sofia) =~ /mod_sofia/ break=on-false Dialplan: sofia/internal/1000@192.168.67.2 Regex (FAIL) [unpark] destination_number(1097) =~ /pickup/ break=on-false Dialplan: sofia/internal/1000@192.168.67.2 parsing [default->wait] continue=false Dialplan: sofia/internal/1000@192.168.67.2 Regex (FAIL) [wait] destination_number(1097) =~ /^wait$/ break=on-false Dialplan: sofia/internal/1000@192.168.67.2 parsing [default->fax_receive] continue=false Dialplan: sofia/internal/1000@192.168.67.2 Regex (FAIL) [fax_receive] destination_number(1097) =~ /^9178$/ break=on-false Dialplan: sofia/internal/1000@192.168.67.2 parsing [default->fax_transmit] continue=false Dialplan: sofia/internal/1000@192.168.67.2 Regex (FAIL) [fax_transmit] destination_number(1097) =~ /^9179$/ break=on-false Dialplan: sofia/internal/1000@192.168.67.2 parsing [default->ringback_180] continue=false Dialplan: sofia/internal/1000@192.168.67.2 Regex (FAIL) [ringback_180] destination_number(1097) =~ /^9180$/ break=on-false Dialplan: sofia/internal/1000@192.168.67.2 parsing [default->ringback_183_uk_ring] continue=false Dialplan: sofia/internal/1000@192.168.67.2 Regex (FAIL) [ringback_183_uk_ring] destination_number(1097) =~ /^9181$/ break=on-false Dialplan: sofia/internal/1000@192.168.67.2 parsing [default->ringback_183_music_ring] continue=false Dialplan: sofia/internal/1000@192.168.67.2 Regex (FAIL) [ringback_183_music_ring] destination_number(1097) =~ /^9182$/ break=on-false Dialplan: sofia/internal/1000@192.168.67.2 parsing [default->ringback_post_answer_uk_ring] continue=false Dialplan: sofia/internal/1000@192.168.67.2 Regex (FAIL) [ringback_post_answer_uk_ring] destination_number(1097) =~ /^9183$/ break=on-false Dialplan: sofia/internal/1000@192.168.67.2 parsing [default->ringback_post_answer_music] continue=false Dialplan: sofia/internal/1000@192.168.67.2 Regex (FAIL) [ringback_post_answer_music] destination_number(1097) =~ /^9184$/ break=on-false Dialplan: sofia/internal/1000@192.168.67.2 parsing [default->ClueCon] continue=false Dialplan: sofia/internal/1000@192.168.67.2 Regex (FAIL) [ClueCon] destination_number(1097) =~ /^9191$/ break=on-false Dialplan: sofia/internal/1000@192.168.67.2 parsing [default->show_info] continue=false Dialplan: sofia/internal/1000@192.168.67.2 Regex (FAIL) [show_info] destination_number(1097) =~ /^9192$/ break=on-false Dialplan: sofia/internal/1000@192.168.67.2 parsing [default->video_record] continue=false Dialplan: sofia/internal/1000@192.168.67.2 Regex (FAIL) [video_record] destination_number(1097) =~ /^9193$/ break=on-false Dialplan: sofia/internal/1000@192.168.67.2 parsing [default->video_playback] continue=false Dialplan: sofia/internal/1000@192.168.67.2 Regex (FAIL) [video_playback] destination_number(1097) =~ /^9194$/ break=on-false Dialplan: sofia/internal/1000@192.168.67.2 parsing [default->delay_echo] continue=false Dialplan: sofia/internal/1000@192.168.67.2 Regex (FAIL) [delay_echo] destination_number(1097) =~ /^9195$/ break=on-false Dialplan: sofia/internal/1000@192.168.67.2 parsing [default->echo] continue=false Dialplan: sofia/internal/1000@192.168.67.2 Regex (FAIL) [echo] destination_number(1097) =~ /^9196$/ break=on-false Dialplan: sofia/internal/1000@192.168.67.2 parsing [default->milliwatt] continue=false Dialplan: sofia/internal/1000@192.168.67.2 Regex (FAIL) [milliwatt] destination_number(1097) =~ /^9197$/ break=on-false Dialplan: sofia/internal/1000@192.168.67.2 parsing [default->tone_stream] continue=false Dialplan: sofia/internal/1000@192.168.67.2 Regex (FAIL) [tone_stream] destination_number(1097) =~ /^9198$/ break=on-false Dialplan: sofia/internal/1000@192.168.67.2 parsing [default->hold_music] continue=false Dialplan: sofia/internal/1000@192.168.67.2 Regex (FAIL) [hold_music] destination_number(1097) =~ /^9664$/ break=on-false Dialplan: sofia/internal/1000@192.168.67.2 parsing [default->laugh break] continue=false Dialplan: sofia/internal/1000@192.168.67.2 Regex (FAIL) [laugh break] destination_number(1097) =~ /^9386$/ break=on-false Dialplan: sofia/internal/1000@192.168.67.2 parsing [default->101] continue=false Dialplan: sofia/internal/1000@192.168.67.2 Regex (FAIL) [101] destination_number(1097) =~ /^101$/ break=on-false Dialplan: sofia/internal/1000@192.168.67.2 parsing [default->pizza_demo] continue=false Dialplan: sofia/internal/1000@192.168.67.2 Regex (FAIL) [pizza_demo] destination_number(1097) =~ /^(pizza|74992)$/ break=on-false Dialplan: sofia/internal/1000@192.168.67.2 parsing [default->Talking Clock Time] continue=false Dialplan: sofia/internal/1000@192.168.67.2 Regex (FAIL) [Talking Clock Time] destination_number(1097) =~ /^9170$/ break=on-false Dialplan: sofia/internal/1000@192.168.67.2 parsing [default->Talking Clock Date] continue=false Dialplan: sofia/internal/1000@192.168.67.2 Regex (FAIL) [Talking Clock Date] destination_number(1097) =~ /^9171$/ break=on-false Dialplan: sofia/internal/1000@192.168.67.2 parsing [default->Talking Clock Date and Time] continue=false Dialplan: sofia/internal/1000@192.168.67.2 Regex (FAIL) [Talking Clock Date and Time] destination_number(1097) =~ /^9172$/ break=on-false Dialplan: sofia/internal/1000@192.168.67.2 parsing [default->local.example.com] continue=false Dialplan: sofia/internal/1000@192.168.67.2 Regex (FAIL) [local.example.com] ${toll_allow}() =~ /local/ break=on-false Dialplan: sofia/internal/1000@192.168.67.2 parsing [default->domestic.example.com] continue=false Dialplan: sofia/internal/1000@192.168.67.2 Regex (FAIL) [domestic.example.com] ${toll_allow}() =~ /domestic/ break=on-false Dialplan: sofia/internal/1000@192.168.67.2 parsing [default->international.example.com] continue=false Dialplan: sofia/internal/1000@192.168.67.2 Regex (FAIL) [international.example.com] ${toll_allow}() =~ /international/ break=on-false Dialplan: sofia/internal/1000@192.168.67.2 parsing [default->ivr-application] continue=false Dialplan: sofia/internal/1000@192.168.67.2 Regex (PASS) [ivr-application] destination_number(1097) =~ /^1097$/ break=on-false Dialplan: sofia/internal/1000@192.168.67.2 Action log(INFO Starting ESL connection object example) Dialplan: sofia/internal/1000@192.168.67.2 Action answer() Dialplan: sofia/internal/1000@192.168.67.2 Action recordsession(/usr/local/freeswitch/recordings/${strftime(%Y-%m-%d-%H-%M-%S)}${destinationnumber}${caller_id_number}.wav) Dialplan: sofia/internal/1000@192.168.67.2 Action socket(192.168.67.1:8084 async full) 2024-06-26 13:28:08.138623 99.93% [DEBUG] switch_core_state_machine.c:281 (sofia/internal/1000@192.168.67.2) State Change CS_ROUTING -> CS_EXECUTE 2024-06-26 13:28:08.138623 99.93% [DEBUG] switch_core_state_machine.c:640 (sofia/internal/1000@192.168.67.2) State ROUTING going to sleep 2024-06-26 13:28:08.138623 99.93% [DEBUG] switch_core_state_machine.c:581 (sofia/internal/1000@192.168.67.2) Running State Change CS_EXECUTE (Cur 15 Tot 30) 2024-06-26 13:28:08.138623 99.93% [DEBUG] switch_core_state_machine.c:647 (sofia/internal/1000@192.168.67.2) State EXECUTE 2024-06-26 13:28:08.138623 99.93% [DEBUG] mod_sofia.c:213 sofia/internal/1000@192.168.67.2 SOFIA EXECUTE 2024-06-26 13:28:08.138623 99.93% [DEBUG] switch_core_state_machine.c:323 sofia/internal/1000@192.168.67.2 Standard EXECUTE EXECUTE [depth=0] sofia/internal/1000@192.168.67.2 set(open=true) 2024-06-26 13:28:08.138623 99.93% [DEBUG] mod_dptools.c:1671 SET sofia/internal/1000@192.168.67.2 [open]=[true] EXECUTE [depth=0] sofia/internal/1000@192.168.67.2 hash(insert/192.168.67.2-spymap/1000/a9badaf8-d37a-4cba-8ca3-5b1c9b13637e) EXECUTE [depth=0] sofia/internal/1000@192.168.67.2 hash(insert/192.168.67.2-last_dial/1000/1097) EXECUTE [depth=0] sofia/internal/1000@192.168.67.2 hash(insert/192.168.67.2-last_dial/global/a9badaf8-d37a-4cba-8ca3-5b1c9b13637e) EXECUTE [depth=0] sofia/internal/1000@192.168.67.2 export(RFC2822_DATE=Wed, 26 Jun 2024 13:28:08 +0800) 2024-06-26 13:28:08.138623 99.93% [DEBUG] switch_channel.c:1334 EXPORT (export_vars) [RFC2822_DATE]=[Wed, 26 Jun 2024 13:28:08 +0800] EXECUTE [depth=0] sofia/internal/1000@192.168.67.2 log(INFO Starting ESL connection object example) 2024-06-26 13:28:08.138623 99.93% [INFO] mod_dptools.c:1865 Starting ESL connection object example EXECUTE [depth=0] sofia/internal/1000@192.168.67.2 answer() 2024-06-26 13:28:08.138623 99.93% [DEBUG] switch_core_media.c:5526 Audio Codec Compare [PCMA:8:8000:20:64000:1]/[opus:116:48000:20:0:1] 2024-06-26 13:28:08.138623 99.93% [DEBUG] switch_core_media.c:5526 Audio Codec Compare [PCMA:8:8000:20:64000:1]/[G722:9:8000:20:64000:1] 2024-06-26 13:28:08.138623 99.93% [DEBUG] switch_core_media.c:5526 Audio Codec Compare [PCMA:8:8000:20:64000:1]/[PCMU:0:8000:20:64000:1] 2024-06-26 13:28:08.138623 99.93% [DEBUG] switch_core_media.c:5526 Audio Codec Compare [PCMA:8:8000:20:64000:1]/[PCMA:8:8000:20:64000:1] 2024-06-26 13:28:08.138623 99.93% [DEBUG] switch_core_media.c:5588 Audio Codec Compare [PCMA:8:8000:20:64000:1] ++++ is saved as a match 2024-06-26 13:28:08.138623 99.93% [DEBUG] switch_core_media.c:5526 Audio Codec Compare [PCMU:0:8000:20:64000:1]/[opus:116:48000:20:0:1] 2024-06-26 13:28:08.138623 99.93% [DEBUG] switch_core_media.c:5526 Audio Codec Compare [PCMU:0:8000:20:64000:1]/[G722:9:8000:20:64000:1] 2024-06-26 13:28:08.138623 99.93% [DEBUG] switch_core_media.c:5526 Audio Codec Compare [PCMU:0:8000:20:64000:1]/[PCMU:0:8000:20:64000:1] 2024-06-26 13:28:08.138623 99.93% [DEBUG] switch_core_media.c:5588 Audio Codec Compare [PCMU:0:8000:20:64000:1] ++++ is saved as a match 2024-06-26 13:28:08.138623 99.93% [DEBUG] switch_core_media.c:5526 Audio Codec Compare [PCMU:0:8000:20:64000:1]/[PCMA:8:8000:20:64000:1] 2024-06-26 13:28:08.138623 99.93% [DEBUG] switch_core_media.c:5438 Set telephone-event payload to 101@8000 2024-06-26 13:28:08.138623 99.93% [DEBUG] switch_core_media.c:3731 Set Codec sofia/internal/1000@192.168.67.2 PCMA/8000 20 ms 160 samples 64000 bits 1 channels 2024-06-26 13:28:08.138623 99.93% [DEBUG] switch_core_codec.c:111 sofia/internal/1000@192.168.67.2 Original read codec set to PCMA:8 2024-06-26 13:28:08.138623 99.93% [DEBUG] switch_core_media.c:5798 Set telephone-event payload to 101@8000 2024-06-26 13:28:08.138623 99.93% [DEBUG] switch_core_media.c:5856 sofia/internal/1000@192.168.67.2 Set 2833 dtmf send payload to 101 recv payload to 101 2024-06-26 13:28:08.138623 99.93% [DEBUG] switch_core_media.c:8660 AUDIO RTP [sofia/internal/1000@192.168.67.2] 192.168.67.2 port 20666 -> 192.168.67.1 port 4010 codec: 8 ms: 20 2024-06-26 13:28:08.138623 99.93% [DEBUG] switch_rtp.c:4563 Starting timer [soft] 160 bytes per 20ms 2024-06-26 13:28:08.138623 99.93% [DEBUG] switch_core_media.c:8881 Activating RTCP PORT 4011 2024-06-26 13:28:08.138623 99.93% [DEBUG] switch_rtp.c:4895 RTCP send rate is: 1000 and packet rate is: 20000 Remote Port: 4011 2024-06-26 13:28:08.138623 99.93% [DEBUG] switch_rtp.c:2689 Setting RTCP remote addr to 192.168.67.1:4011 2 2024-06-26 13:28:08.138623 99.93% [DEBUG] switch_core_media.c:8973 sofia/internal/1000@192.168.67.2 Set 2833 dtmf send payload to 101 2024-06-26 13:28:08.138623 99.93% [DEBUG] switch_core_media.c:8980 sofia/internal/1000@192.168.67.2 Set 2833 dtmf receive payload to 101 2024-06-26 13:28:08.138623 99.93% [DEBUG] switch_core_media.c:9003 sofia/internal/1000@192.168.67.2 Set rtp dtmf delay to 40 2024-06-26 13:28:08.138623 99.93% [NOTICE] sofia_media.c:90 Pre-Answer sofia/internal/1000@192.168.67.2! 2024-06-26 13:28:08.138623 99.93% [DEBUG] switch_channel.c:3585 (sofia/internal/1000@192.168.67.2) Callstate Change RINGING -> EARLY 2024-06-26 13:28:08.138623 99.93% [DEBUG] switch_core_media.c:8642 Audio params are unchanged for sofia/internal/1000@192.168.67.2. 2024-06-26 13:28:08.138623 99.93% [DEBUG] mod_sofia.c:914 Local SDP sofia/internal/1000@192.168.67.2: v=0 o=FreeSWITCH 1719359022 1719359023 IN IP4 192.168.67.2 s=FreeSWITCH c=IN IP4 192.168.67.2 t=0 0 m=audio 20666 RTP/AVP 8 101 a=rtpmap:8 PCMA/8000 a=rtpmap:101 telephone-event/8000 a=fmtp:101 0-15 a=ptime:20 a=sendrecv a=rtcp:20667 IN IP4 192.168.67.2

2024-06-26 13:28:08.138623 99.93% [NOTICE] mod_dptools.c:1406 Channel [sofia/internal/1000@192.168.67.2] has been answered 2024-06-26 13:28:08.138623 99.93% [DEBUG] switch_channel.c:3912 (sofia/internal/1000@192.168.67.2) Callstate Change EARLY -> ACTIVE 2024-06-26 13:28:08.138623 99.93% [DEBUG] sofia.c:7493 Channel sofia/internal/1000@192.168.67.2 entering state [completed][200] EXECUTE [depth=0] sofia/internal/1000@192.168.67.2 record_session(/usr/local/freeswitch/recordings/2024-06-26-13-28-08_1097_1000.wav) 2024-06-26 13:28:08.158679 99.93% [DEBUG] switch_ivr_async.c:1504 Record session sample rate: 8000 -> 8000 2024-06-26 13:28:08.158679 99.93% [DEBUG] switch_core_media_bug.c:976 Attaching BUG to sofia/internal/1000@192.168.67.2 EXECUTE [depth=0] sofia/internal/1000@192.168.67.2 socket(192.168.67.1:8084 async full) 2024-06-26 13:28:08.158679 99.93% [NOTICE] mod_event_socket.c:452 Trying host: 192.168.67.1:8084 2024-06-26 13:28:08.158679 99.93% [DEBUG] switch_rtp.c:7125 Correct audio RTCP ip/port confirmed. 2024-06-26 13:28:08.158679 99.93% [DEBUG] switch_ivr_async.c:1778 No silence detection configured; assuming start of speech 2024-06-26 13:28:08.158679 99.93% [DEBUG] mod_audio_stream.c:144 mod_audio_stream cmd: a9badaf8-d37a-4cba-8ca3-5b1c9b13637e start ws://192.168.88.253:8000/pub/audiostream mixed 8k 2024-06-26 13:28:08.158679 99.93% [DEBUG] mod_audio_stream.c:75 calling stream_session_init. 2024-06-26 13:28:08.158679 99.93% [DEBUG] audio_streamer_glue.cpp:344 a9badaf8-d37a-4cba-8ca3-5b1c9b13637e: initializing buffer(320) to adjusted 512 bytes 2024-06-26 13:28:08.158679 99.93% [DEBUG] audio_streamer_glue.cpp:372 (a9badaf8-d37a-4cba-8ca3-5b1c9b13637e) no resampling needed for this call 2024-06-26 13:28:08.158679 99.93% [DEBUG] audio_streamer_glue.cpp:375 (a9badaf8-d37a-4cba-8ca3-5b1c9b13637e) stream_data_init 2024-06-26 13:28:08.158679 99.93% [DEBUG] mod_audio_stream.c:81 adding bug. 2024-06-26 13:28:08.158679 99.93% [DEBUG] switch_core_media_bug.c:976 Attaching BUG to sofia/internal/1000@192.168.67.2 2024-06-26 13:28:08.158679 99.93% [DEBUG] mod_audio_stream.c:85 setting bug private data. 2024-06-26 13:28:08.158679 99.93% [DEBUG] mod_audio_stream.c:88 exiting start_capture. 2024-06-26 13:28:08.179157 99.93% [DEBUG] switch_ivr.c:632 sofia/internal/1000@192.168.67.2 Command Execute [depth=1] answer() EXECUTE [depth=1] sofia/internal/1000@192.168.67.2 answer() 2024-06-26 13:28:08.199151 99.93% [DEBUG] switch_rtp.c:7695 Correct audio ip/port confirmed. 2024-06-26 13:28:08.199151 99.93% [DEBUG] switch_core_io.c:448 Setting BUG Codec PCMA:8 2024-06-26 13:28:08.218644 99.93% [DEBUG] switch_rtp.c:1930 rtcp_stats_init: audio ssrc[1118596295] base_seq[29655] 2024-06-26 13:28:40.158665 93.83% [DEBUG] sofia.c:7493 Channel sofia/internal/1000@192.168.67.2 entering state [terminating][0] 2024-06-26 13:28:40.158665 93.83% [NOTICE] sofia.c:8735 Hangup sofia/internal/1000@192.168.67.2 [CS_EXECUTE] [NORMAL_UNSPECIFIED] 2024-06-26 13:28:40.158665 93.83% [DEBUG] switch_core_session.c:2979 sofia/internal/1000@192.168.67.2 skip receive message [APPLICATION_EXEC_COMPLETE] (channel is hungup already) 2024-06-26 13:28:40.158665 93.83% [DEBUG] switch_core_state_machine.c:647 (sofia/internal/1000@192.168.67.2) State EXECUTE going to sleep 2024-06-26 13:28:40.158665 93.83% [DEBUG] switch_core_state_machine.c:581 (sofia/internal/1000@192.168.67.2) Running State Change CS_HANGUP (Cur 15 Tot 30) 2024-06-26 13:28:40.158665 93.83% [DEBUG] switch_ivr_async.c:1597 Stop recording file /usr/local/freeswitch/recordings/2024-06-26-13-28-08_1097_1000.wav 2024-06-26 13:28:40.158665 93.83% [DEBUG] switch_ivr_async.c:1678 Channel is hung up 2024-06-26 13:28:40.158665 93.83% [DEBUG] switch_core_media_bug.c:1326 Removing BUG from sofia/internal/1000@192.168.67.2 2024-06-26 13:28:40.158665 93.83% [INFO] mod_audio_stream.c:32 Got SWITCH_ABC_TYPE_CLOSE. 2024-06-26 13:28:40.158665 93.83% [DEBUG] audio_streamer_glue.cpp:714 (a9badaf8-d37a-4cba-8ca3-5b1c9b13637e) stream_session_cleanup 2024-06-26 13:28:40.158665 93.83% [INFO] audio_streamer_glue.cpp:381 a9badaf8-d37a-4cba-8ca3-5b1c9b13637e destroy_tech_pvt 2024-06-26 13:28:40.158665 93.83% [INFO] audio_streamer_glue.cpp:730 (a9badaf8-d37a-4cba-8ca3-5b1c9b13637e) stream_session_cleanup: connection closed 2024-06-26 13:28:40.158665 93.83% [DEBUG] switch_core_media_bug.c:1326 Removing BUG from sofia/internal/1000@192.168.67.2 2024-06-26 13:28:40.158665 93.83% [DEBUG] audio_streamer_glue.cpp:234 disconnecting... 2024-06-26 13:28:40.158665 93.83% [DEBUG] switch_core_state_machine.c:844 (sofia/internal/1000@192.168.67.2) Callstate Change ACTIVE -> HANGUP 2024-06-26 13:28:40.158665 93.83% [DEBUG] switch_core_state_machine.c:846 (sofia/internal/1000@192.168.67.2) State HANGUP 2024-06-26 13:28:40.158665 93.83% [DEBUG] mod_sofia.c:469 Channel sofia/internal/1000@192.168.67.2 hanging up, cause: NORMAL_UNSPECIFIED 2024-06-26 13:28:40.158665 93.83% [DEBUG] switch_core_state_machine.c:59 sofia/internal/1000@192.168.67.2 Standard HANGUP, cause: NORMAL_UNSPECIFIED 2024-06-26 13:28:40.158665 93.83% [DEBUG] switch_core_state_machine.c:846 (sofia/internal/1000@192.168.67.2) State HANGUP going to sleep 2024-06-26 13:28:40.158665 93.83% [DEBUG] switch_core_state_machine.c:616 (sofia/internal/1000@192.168.67.2) State Change CS_HANGUP -> CS_REPORTING 2024-06-26 13:28:40.158665 93.83% [DEBUG] switch_core_state_machine.c:581 (sofia/internal/1000@192.168.67.2) Running State Change CS_REPORTING (Cur 15 Tot 30) 2024-06-26 13:28:40.158665 93.83% [DEBUG] switch_core_state_machine.c:932 (sofia/internal/1000@192.168.67.2) State REPORTING 2024-06-26 13:28:40.158665 93.83% [DEBUG] switch_core_state_machine.c:168 sofia/internal/1000@192.168.67.2 Standard REPORTING, cause: NORMAL_UNSPECIFIED 2024-06-26 13:28:40.158665 93.83% [DEBUG] switch_core_state_machine.c:932 (sofia/internal/1000@192.168.67.2) State REPORTING going to sleep 2024-06-26 13:28:40.158665 93.83% [DEBUG] switch_core_state_machine.c:607 (sofia/internal/1000@192.168.67.2) State Change CS_REPORTING -> CS_DESTROY 2024-06-26 13:28:40.158665 93.83% [DEBUG] switch_core_session.c:1744 Session 30 (sofia/internal/1000@192.168.67.2) Locked, Waiting on external entities 2024-06-26 13:28:40.158665 93.83% [NOTICE] switch_core_session.c:1762 Session 30 (sofia/internal/1000@192.168.67.2) Ended 2024-06-26 13:28:40.158665 93.83% [NOTICE] switch_core_session.c:1766 Close Channel sofia/internal/1000@192.168.67.2 [CS_DESTROY] `

Here is my dialplan : `

`

Call flow :

I want a mixed 8k audio stream of call with callee and caller voice included.

amigniter commented 3 months ago

@SumyabazarBaatar

Thanks for your message.

If i add playback application on dialplan, then i received just a audio stream of that playback audio.

Correct. And you have the module streaming the playback audio, working correctly. You need to have media exchanged on the channel, playback or a caller so FS detects present media and media bug can be attached to stream the audio. Without the media, nothing is going to be streamed as media bug can't be attached.

I want a mixed 8k audio stream of call with callee and caller voice included.

Here is the issue, you don't have a callee (B-leg) to be able to create mixed mode. You need to use bridge to connect to another extension or external number. This will create a B-leg and you will be able to use mixed or stereo mode. You can test it with a bridge and you will see what I mean just immediately. Using mixed mode on a single channel (caller only) won't send anything cause b-leg is missing and that's why you're getting nothing at the websocket end.

SumyabazarBaatar commented 3 months ago

Ohhh i see. Now i got it. Thanks for your response i really appreciate :)

amigniter commented 3 months ago

Of course, mate. You're welcome. You got it immediately, that's it. All the best!