From darshanmody at avaya.com Mon Apr 6 06:48:21 2020 From: darshanmody at avaya.com (Mody, Darshan Arvindkumar (Darshan)) Date: Mon, 6 Apr 2020 06:48:21 +0000 Subject: [Freeswitch-dev] Recording speech maximum load Message-ID: Hi We are using Freeswitch to record voice of the caller in some scenarios. I wanted to enquire as to how much is the maximum load permitted when Freeswitch is recording voice. Thanks Darshan -------------- next part -------------- An HTML attachment was scrubbed... URL: From Alexander.Haugg at c4b.de Sat Apr 25 15:32:54 2020 From: Alexander.Haugg at c4b.de (Alexander Haugg) Date: Sat, 25 Apr 2020 15:32:54 +0000 Subject: [Freeswitch-dev] mod_callcenter - the configuration property "max-wait-time-with-no-agent" doesn't work Message-ID: Hi, The properties "max-wait-time" and "max-wait-time-with-no-agent" have no effect. If the delay is reached, I get the correct debug logs but without an effect. CLI output for the "max-wait-time-with-no-agent" time reached (every 500ms): 2020-04-25 16:29:40.907298 [DEBUG] mod_callcenter.c:2818 Member 170 <+4989840798170> in queue 'myQueue' reached max wait of 60 sec. with no agent plus join grace period of 5 sec. Is it possible, we need the following condition in the 'cc_member_thread_run' function in the mod_callcenter.cs if (switch_channel_test_flag(channel, CF_BREAK)) { switch_channel_clear_flag(channel, CF_BREAK); break; } At the moment, der CF_BREAK will set, but not tested. my config is: If I'm right, I'll open a Jira ticket and add a possible solution. Thanks a lot, Alex -------------- next part -------------- An HTML attachment was scrubbed... URL: From dave.taht at gmail.com Sat Apr 25 16:12:04 2020 From: dave.taht at gmail.com (Dave Taht) Date: Sat, 25 Apr 2020 09:12:04 -0700 Subject: [Freeswitch-dev] the core of the freeswitch devs? In-Reply-To: References: Message-ID: Is there a more active freeswitch list or forum or place where development is more often discussed. irc? slack? what? On Sat, Apr 25, 2020 at 9:09 AM Alexander Haugg wrote: > > Hi, > > > > The properties “max-wait-time“ and “max-wait-time-with-no-agent” have no effect. > > > > If the delay is reached, I get the correct debug logs but without an effect. > > CLI output for the “max-wait-time-with-no-agent” time reached (every 500ms): > > 2020-04-25 16:29:40.907298 [DEBUG] mod_callcenter.c:2818 Member 170 <+4989840798170> in queue 'myQueue' reached max wait of 60 sec. with no agent plus join grace period of 5 sec. > > > > Is it possible, we need the following condition in the ‘cc_member_thread_run’ function in the mod_callcenter.cs > > if (switch_channel_test_flag(channel, CF_BREAK)) { > > switch_channel_clear_flag(channel, CF_BREAK); > > break; > > } > > At the moment, der CF_BREAK will set, but not tested. > > > > my config is: > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > If I’m right, I’ll open a Jira ticket and add a possible solution. > > > > Thanks a lot, > > Alex > > _________________________________________________________________________ > > The FreeSWITCH project is sponsored by SignalWire https://signalwire.com > Enhance your FreeSWITCH install with disruptive priced SMS and PSTN services. > Build your next product on our scalable cloud platform. > > Join our online community to chat in real time https://signalwire.community > > Professional FreeSWITCH Services > sales at freeswitch.com > https://freeswitch.com > > Official FreeSWITCH Sites > https://freeswitch.com/oss > https://freeswitch.org/confluence > https://cluecon.com > > FreeSWITCH-dev mailing list > FreeSWITCH-dev at lists.freeswitch.org > http://lists.freeswitch.org/mailman/listinfo/freeswitch-dev > UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-dev > https://freeswitch.com -- Make Music, Not War Dave Täht CTO, TekLibre, LLC http://www.teklibre.com Tel: 1-831-435-0729 From Jazmin.Marino at on24.com Mon Apr 27 13:29:31 2020 From: Jazmin.Marino at on24.com (Jazmin Marina Florez Marino) Date: Mon, 27 Apr 2020 13:29:31 +0000 Subject: [Freeswitch-dev] ADD 2 ICE CANDIDATES mod_verto Message-ID: Hello all, I am working with mod_verto in a scenario where I need to send public and private IP addresses as ICE candidates. When I modify the ext-rtp-ip parameter, it only sends one option as typ host ice candidate. However, for my implementation I need to send both. What I need is the combination of those ice candidates, something like this: a=candidate:8228103366 1 udp 659136 190.84.118.88 31028 typ host generation 0 a=candidate:3496438569 1 udp 659136 192.168.1.170 24210 typ host generation 0 Is it possible to add both ice candidates in the same SDP from configuration files? Thanks Jazmin Florez Marino +57 304 564 0193 Jazmin.marino at on24.com SDP with local IP 2020-04-24 14:13:49.395900 [DEBUG] mod_verto.c:2502 Local SDP verto.rtc/5715976: v=0 o=FreeSWITCH 1587731419 1587731420 IN IP4 192.168.1.170 s=FreeSWITCH c=IN IP4 192.168.1.170 t=0 0 a=msid-semantic: WMS t9mERteVPrwT3aZbexPlp2U6Cspg78dq m=audio 24210 UDP/TLS/RTP/SAVPF 111 110 a=rtpmap:111 opus/48000/2 a=fmtp:111 useinbandfec=1; minptime=10; stereo=1; sprop-stereo=1 a=rtpmap:110 telephone-event/48000 a=silenceSupp:off - - - - a=ptime:20 a=sendrecv a=fingerprint:sha-256 FD:DF:48:02:C3:F8:D9:57:F8:C8:97:CD:3A:AB:6A:A6:97:4A:BA:A5:48:5A:3A:2D:0F:18:14:EC:D5:A9:21:86 a=setup:active a=rtcp-mux a=rtcp:24210 IN IP4 192.168.1.170 a=ice-ufrag:mScCKXydfOjcMntK a=ice-pwd:Depc4PrcDqdqfgirZlTz8iCe a=candidate:3496438569 1 udp 659136 192.168.1.170 24210 typ host generation 0 a=end-of-candidates a=ssrc:3132020181 cname:7pVPJ0AphX8bXYd1 a=ssrc:3132020181 msid:t9mERteVPrwT3aZbexPlp2U6Cspg78dq a0 a=ssrc:3132020181 mslabel:t9mERteVPrwT3aZbexPlp2U6Cspg78dq a=ssrc:3132020181 label:t9mERteVPrwT3aZbexPlp2U6Cspg78dqa0 m=video 0 UDP/TLS/RTP/SAVPF 19 2020-04-24 14:13:49.395900 [NOTICE] mod_dptools.c:1360 Channel [verto.rtc/5715976] has been answered SDP with Public IP 2020-04-24 14:17:23.715620 [DEBUG] mod_verto.c:2502 Local SDP verto.rtc/5715976: v=0 o=FreeSWITCH 1587724815 1587724816 IN IP4 190.84.118.88 s=FreeSWITCH c=IN IP4 190.84.118.88 t=0 0 a=msid-semantic: WMS 8gumHFWDC0sD12iPvVhSeEhUfLdXQBVO m=audio 31028 UDP/TLS/RTP/SAVPF 111 110 a=rtpmap:111 opus/48000/2 a=fmtp:111 useinbandfec=1; minptime=10; stereo=1; sprop-stereo=1 a=rtpmap:110 telephone-event/48000 a=silenceSupp:off - - - - a=ptime:20 a=sendrecv a=fingerprint:sha-256 FD:DF:48:02:C3:F8:D9:57:F8:C8:97:CD:3A:AB:6A:A6:97:4A:BA:A5:48:5A:3A:2D:0F:18:14:EC:D5:A9:21:86 a=setup:active a=rtcp-mux a=rtcp:31028 IN IP4 190.84.118.88 a=ice-ufrag:BiYFM6pSItFoUq2t a=ice-pwd:wTz7x9b00ImLonRPvGl8CBRb a=candidate:8228103366 1 udp 659136 190.84.118.88 31028 typ host generation 0 a=end-of-candidates a=ssrc:2930644107 cname:If1gLNJdD1HvUPbg a=ssrc:2930644107 msid:8gumHFWDC0sD12iPvVhSeEhUfLdXQBVO a0 a=ssrc:2930644107 mslabel:8gumHFWDC0sD12iPvVhSeEhUfLdXQBVO a=ssrc:2930644107 label:8gumHFWDC0sD12iPvVhSeEhUfLdXQBVOa0 m=video 0 UDP/TLS/RTP/SAVPF 19 -------------- next part -------------- An HTML attachment was scrubbed... URL: From dujinfang at gmail.com Tue Apr 28 08:17:41 2020 From: dujinfang at gmail.com (Seven Du) Date: Tue, 28 Apr 2020 16:17:41 +0800 Subject: [Freeswitch-dev] the core of the freeswitch devs? In-Reply-To: References: Message-ID: http://signalwire.community/ On Tue, Apr 28, 2020 at 4:22 AM Dave Taht wrote: > Is there a more active freeswitch list or forum or place where > development is more often discussed. irc? slack? what? > > On Sat, Apr 25, 2020 at 9:09 AM Alexander Haugg > wrote: > > > > Hi, > > > > > > > > The properties “max-wait-time“ and “max-wait-time-with-no-agent” have no > effect. > > > > > > > > If the delay is reached, I get the correct debug logs but without an > effect. > > > > CLI output for the “max-wait-time-with-no-agent” time reached (every > 500ms): > > > > 2020-04-25 16:29:40.907298 [DEBUG] mod_callcenter.c:2818 Member 170 > <+4989840798170> in queue 'myQueue' reached max wait of 60 sec. with no > agent plus join grace period of 5 sec. > > > > > > > > Is it possible, we need the following condition in the > ‘cc_member_thread_run’ function in the mod_callcenter.cs > > > > if (switch_channel_test_flag(channel, CF_BREAK)) { > > > > switch_channel_clear_flag(channel, CF_BREAK); > > > > break; > > > > } > > > > At the moment, der CF_BREAK will set, but not tested. > > > > > > > > my config is: > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > If I’m right, I’ll open a Jira ticket and add a possible solution. > > > > > > > > Thanks a lot, > > > > Alex > > > > _________________________________________________________________________ > > > > The FreeSWITCH project is sponsored by SignalWire https://signalwire.com > > Enhance your FreeSWITCH install with disruptive priced SMS and PSTN > services. > > Build your next product on our scalable cloud platform. > > > > Join our online community to chat in real time > https://signalwire.community > > > > Professional FreeSWITCH Services > > sales at freeswitch.com > > https://freeswitch.com > > > > Official FreeSWITCH Sites > > https://freeswitch.com/oss > > https://freeswitch.org/confluence > > https://cluecon.com > > > > FreeSWITCH-dev mailing list > > FreeSWITCH-dev at lists.freeswitch.org > > http://lists.freeswitch.org/mailman/listinfo/freeswitch-dev > > UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-dev > > https://freeswitch.com > > > > -- > Make Music, Not War > > Dave Täht > CTO, TekLibre, LLC > http://www.teklibre.com > Tel: 1-831-435-0729 > > _________________________________________________________________________ > > The FreeSWITCH project is sponsored by SignalWire https://signalwire.com > Enhance your FreeSWITCH install with disruptive priced SMS and PSTN > services. > Build your next product on our scalable cloud platform. > > Join our online community to chat in real time > https://signalwire.community > > Professional FreeSWITCH Services > sales at freeswitch.com > https://freeswitch.com > > Official FreeSWITCH Sites > https://freeswitch.com/oss > https://freeswitch.org/confluence > https://cluecon.com > > FreeSWITCH-dev mailing list > FreeSWITCH-dev at lists.freeswitch.org > http://lists.freeswitch.org/mailman/listinfo/freeswitch-dev > UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-dev > https://freeswitch.com -- About: http://about.me/dujinfang Blog: http://www.dujinfang.com Proj: http://www.freeswitch.org.cn -------------- next part -------------- An HTML attachment was scrubbed... URL: From Alexander.Haugg at c4b.de Tue Apr 28 10:31:07 2020 From: Alexander.Haugg at c4b.de (Alexander Haugg) Date: Tue, 28 Apr 2020 10:31:07 +0000 Subject: [Freeswitch-dev] mod_callcenter - the configuration property "max-wait-time-with-no-agent" doesn't work In-Reply-To: References: Message-ID: OK, sorry, with a new build, this bug is fixed! Nice regards Alex Von: FreeSWITCH-dev Im Auftrag von Alexander Haugg Gesendet: Samstag, 25. April 2020 17:33 An: freeswitch-dev at lists.freeswitch.org Betreff: [Freeswitch-dev] mod_callcenter - the configuration property "max-wait-time-with-no-agent" doesn't work Hi, The properties "max-wait-time" and "max-wait-time-with-no-agent" have no effect. If the delay is reached, I get the correct debug logs but without an effect. CLI output for the "max-wait-time-with-no-agent" time reached (every 500ms): 2020-04-25 16:29:40.907298 [DEBUG] mod_callcenter.c:2818 Member 170 <+4989840798170> in queue 'myQueue' reached max wait of 60 sec. with no agent plus join grace period of 5 sec. Is it possible, we need the following condition in the 'cc_member_thread_run' function in the mod_callcenter.cs if (switch_channel_test_flag(channel, CF_BREAK)) { switch_channel_clear_flag(channel, CF_BREAK); break; } At the moment, der CF_BREAK will set, but not tested. my config is: If I'm right, I'll open a Jira ticket and add a possible solution. Thanks a lot, Alex -------------- next part -------------- An HTML attachment was scrubbed... URL: From guy032 at gmail.com Thu Apr 30 12:37:10 2020 From: guy032 at gmail.com (Guy Mesika) Date: Thu, 30 Apr 2020 15:37:10 +0300 Subject: [Freeswitch-dev] Freeswitch support for generating an SRTP offer from an incoming 3PCC INVITE? Message-ID: I'm using Freeswitch ESL (Event Socket Library) in Node.js When I receive an invite to SIP.js from a classic sip endpoint the SDP content is regular RTP. I need to be able to connect RTP endpoint to SRTP endpoint using Freeswitch in the middle. In order to do so we need to be able create an endpoint on Freeswitch without SDP (3PCC INVITE) but we want this endpoint to return SRTP SDP and not RTP SDP. *Main question: Does Freeswitch supports generating SRTP offer from an incoming 3PCC INVITE?* I believe this is the part to handle 3PCC INVITE in Freeswitch 1.8.5: https://github.com/signalwire/freeswitch/blob/v1.8.5/src/mod/endpoints/mod_sofia/sofia.c if (sofia_test_pflag(profile, PFLAG_3PCC)) { if (switch_channel_test_flag(channel, CF_PROXY_MODE) || switch_channel_test_flag(channel, CF_PROXY_MEDIA)) { switch_log_printf(SWITCH_CHANNEL_SESSION_LOG(session), SWITCH_LOG_INFO, "No SDP in INVITE and 3pcc=yes cannot work with bypass or proxy media, hanging up.\n"); switch_channel_set_variable(channel, SWITCH_ENDPOINT_DISPOSITION_VARIABLE, "3PCC DISABLED"); switch_channel_hangup(channel, SWITCH_CAUSE_MANDATORY_IE_MISSING); } else { switch_channel_set_variable(channel, SWITCH_ENDPOINT_DISPOSITION_VARIABLE, "RECEIVED_NOSDP"); switch_core_media_choose_port(tech_pvt->session, SWITCH_MEDIA_TYPE_AUDIO, 0); switch_core_media_prepare_codecs(session, 1); switch_channel_set_state(channel, CS_HIBERNATE); switch_core_media_gen_local_sdp(session, SDP_TYPE_REQUEST, NULL, 0, NULL, 0); sofia_set_flag_locked(tech_pvt, TFLAG_3PCC); if (sofia_use_soa(tech_pvt)) { nua_respond(tech_pvt->nh, SIP_200_OK, SIPTAG_CONTACT_STR(tech_pvt->reply_contact), SOATAG_USER_SDP_STR(tech_pvt->mparams.local_sdp_str), SOATAG_REUSE_REJECTED(1), SOATAG_AUDIO_AUX("cn telephone-event"), TAG_IF(sofia_test_pflag(profile, PFLAG_DISABLE_100REL), NUTAG_INCLUDE_EXTRA_SDP(1)), TAG_END()); } else { nua_respond(tech_pvt->nh, SIP_200_OK, NUTAG_MEDIA_ENABLE(0), SIPTAG_CONTACT_STR(tech_pvt->reply_contact), SIPTAG_CONTENT_TYPE_STR("application/sdp"), SIPTAG_PAYLOAD_STR(tech_pvt->mparams.local_sdp_str), TAG_END()); } }} Maybe the same pattern they used for mod_verto can be used: https://github.com/signalwire/freeswitch/blob/v1.8.5/src/mod/endpoints/mod_verto/mod_verto.c This function *switch_core_media_gen_local_sdp* seems to be the one to create the RTP SDP: https://github.com/signalwire/freeswitch/blob/v1.8.5/src/switch_core_media.c How can we change this to SRTP SDP instead? static const char *get_media_profile_name(switch_core_session_t *session, int secure){ switch_assert(session); if (switch_channel_test_flag(session->channel, CF_AVPF)) { if (switch_channel_test_flag(session->channel, CF_DTLS) || secure) { if (switch_channel_test_flag(session->channel, CF_AVPF_MOZ)) { return "UDP/TLS/RTP/SAVPF"; } else { return "RTP/SAVPF"; } } else { if (switch_channel_test_flag(session->channel, CF_AVPF_MOZ)) { return "UDP/AVPF"; } else { return "RTP/AVPF"; } } } if (secure) { return "RTP/SAVP"; } return "RTP/AVP"; } There are 3 conditions to enable SRTP: session->channel->flags['CF_AVPF'](session->channel->flags['CF_DTLS'] || secure) session->channel->flags['CF_AVPF_MOZ'] The conditions to put *CF_AVPF* flag are calling *switch_core_session_set_ice* or: if (is_outbound || switch_channel_test_flag(session->channel, CF_RECOVERING) || switch_channel_test_flag(session->channel, CF_3PCC)) { if (!switch_channel_test_flag(session->channel, CF_AVPF) && switch_true(switch_channel_get_variable(session->channel, "media_webrtc"))) { switch_channel_set_flag(session->channel, CF_AVPF); switch_channel_set_flag(session->channel, CF_ICE); smh->mparams->rtcp_audio_interval_msec = SWITCH_RTCP_AUDIO_INTERVAL_MSEC; smh->mparams->rtcp_video_interval_msec = SWITCH_RTCP_VIDEO_INTERVAL_MSEC; } if (switch_true(switch_channel_get_variable(session->channel, "add_ice_candidates"))) { switch_channel_set_flag(session->channel, CF_ICE); } if ( switch_rtp_has_dtls() && dtls_ok(session)) { if (switch_channel_test_flag(session->channel, CF_AVPF) || switch_true(switch_channel_get_variable(smh->session->channel, "rtp_use_dtls"))) { switch_channel_set_flag(smh->session->channel, CF_DTLS); switch_channel_set_flag(smh->session->channel, CF_SECURE); generate_local_fingerprint(smh, SWITCH_MEDIA_TYPE_AUDIO); } } switch_core_session_parse_crypto_prefs(session); switch_core_session_check_outgoing_crypto(session);} The conditions to put *CF_DTLS* flag are the same as above (*CF_AVPF*) or calling *check_ice*: if (switch_rtp_has_dtls() && dtls_ok(smh->session) && !strcasecmp(attr->a_name, "fingerprint") && !zstr(attr->a_value)) { char *p; engine->remote_dtls_fingerprint.type = switch_core_session_strdup(smh->session, attr->a_value); if ((p = strchr(engine->remote_dtls_fingerprint.type, ' '))) { *p++ = '\0'; if (switch_channel_test_flag(smh->session->channel, CF_REINVITE) && !switch_channel_test_flag(smh->session->channel, CF_RECOVERING) && !zstr(engine->remote_dtls_fingerprint.str) && !strcmp(engine->remote_dtls_fingerprint.str, p)) { engine->new_dtls = 0; } else { switch_set_string(engine->remote_dtls_fingerprint.str, p); engine->new_dtls = 1; engine->new_ice = 1; } } generate_local_fingerprint(smh, type); switch_channel_set_flag(smh->session->channel, CF_DTLS); } There is also the possibility to send true for the *secure* parameter but the conditions are many. The conditions to put *CF_AVPF_MOZ* flag: if (m->m_proto_name && !strcasecmp(m->m_proto_name, "UDP/TLS/RTP/SAVPF")) { switch_channel_set_flag(session->channel, CF_AVPF_MOZ);} if (m->m_proto_name && !strcasecmp(m->m_proto_name, "UDP/RTP/AVPF")) { switch_channel_set_flag(session->channel, CF_AVPF_MOZ);} -------------- next part -------------- An HTML attachment was scrubbed... URL: