Hello! We are developing a FreeSwitch based solution for a sign-language interpreter service for hearing impaireds. The system is already somewhat operational, but we are facing serious audio/video quality issues (to the point of being completely unusable), presumably caused by our virtualized PBX environment in passthrough media mode. Indeed, by switching the calls to bypass media mode from the dialplan, most of these problems vanished. The problem is the callcenter module, which is a crucial component for the operation of our service, but seemingly does not honor any setting meant to switch the calls to bypass mode. We have tried setting, exporting (even with cc_export_vars) the bypass_media=true and bypass_media_after_bridge=true variables from the dialplan before calling the callcenter application, setting them from the dialstring of the callcenter agents, and configuring the profile with inbound-bypass-media=true. None of these worked, the media streams of the calls serviced from the queue still got relayed by FreeSwitch. The only way we were able to remove the PBX from the media path was using the uuid_media_3p off API call, issued from an ESL PHP script after the call is established between a client and an agent (from a custom event handler for the bridge-agent-start callcenter action). The main problem with this approach that the callcenter app initiates the call to the agent without ICE protocol (since it wants the PBX to relay the media streams), so our custom liblinphone-based desktop client will also respond to the b-leg REINVITE (triggered by uuid_media_3p) without ICE, resulting no media at all in bypass mode. Our custom mobile clients are ICE enabled, so the a-leg properly answers the REINVITE with ICE, and its SDP with candidate attributes gets forwarded to the b-leg, but since it had not started an ICE session at the initial call setup, it will ignore it, and send back a plain SDP just with its internal IP and ports. Is there any way to force the callcenter app to send its initial INVITE with ICE? We have noticed that the a-leg's INVITE with candidates in its SDP is responded by FreeSwitch with a single candidate line for itself (this way it also keeps the ICE session alive at the client, so it can use it later responding the REINVITE), so hopefully it is possible. We are open to any other suggestions which leads to bypass media mode with callcenter. Best Regards! Gábor Szalánczi cid:image001.gif@01D1B1E9.D64F69C0 E‑Group cím: telefon: fax: 1062 Budapest, Váci út 1-3. Westend Irodaház "C" torony, 5. emelet (+36-1) 371 25 55 (+36-1) 371 25 56 web: telephely: www.egroup.hu <http://www.egroup.hu/> 3525 Miskolc, Madarász Viktor u. 13/A Szalánczi Gábor szoftverfejlesztő / Software Developer
Hello, Very interesting application of FreeSWITCH (from my pov). Anyway, what FS version have you tried? Because I tracked down this issue with the FS community and it has been solved in 1.6.8, released on May the 5th (https://freeswitch.org/the-freeswitch-1-6-8-release-is-here/). Case was https://freeswitch.org/jira/browse/FS-9025. Hope it helps. Florent 2016-05-19 18:05 GMT+02:00 Szalánczi Gábor <szalanc1@gmail.com>:
Hello!
We are developing a FreeSwitch based solution for a sign-language interpreter service for hearing impaireds. The system is already somewhat operational, but we are facing serious audio/video quality issues (to the point of being completely unusable), presumably caused by our virtualized PBX environment in passthrough media mode. Indeed, by switching the calls to bypass media mode from the dialplan, most of these problems vanished.
The problem is the callcenter module, which is a crucial component for the operation of our service, but seemingly does not honor any setting meant to switch the calls to bypass mode. We have tried setting, exporting (even with cc_export_vars) the bypass_media=true and bypass_media_after_bridge=true variables from the dialplan before calling the callcenter application, setting them from the dialstring of the callcenter agents, and configuring the profile with inbound-bypass-media=true. None of these worked, the media streams of the calls serviced from the queue still got relayed by FreeSwitch.
The only way we were able to remove the PBX from the media path was using the uuid_media_3p off API call, issued from an ESL PHP script after the call is established between a client and an agent (from a custom event handler for the bridge-agent-start callcenter action). The main problem with this approach that the callcenter app initiates the call to the agent without ICE protocol (since it wants the PBX to relay the media streams), so our custom liblinphone-based desktop client will also respond to the b-leg REINVITE (triggered by uuid_media_3p) without ICE, resulting no media at all in bypass mode. Our custom mobile clients are ICE enabled, so the a-leg properly answers the REINVITE with ICE, and its SDP with candidate attributes gets forwarded to the b-leg, but since it had not started an ICE session at the initial call setup, it will ignore it, and send back a plain SDP just with its internal IP and ports.
Is there any way to force the callcenter app to send its initial INVITE with ICE? We have noticed that the a-leg's INVITE with candidates in its SDP is responded by FreeSwitch with a single candidate line for itself (this way it also keeps the ICE session alive at the client, so it can use it later responding the REINVITE), so hopefully it is possible.
We are open to any other suggestions which leads to bypass media mode with callcenter.
Best Regards!
Gábor Szalánczi
[image: cid:image001.gif@01D1B1E9.D64F69C0]
*E*‑*Group*
cím: telefon: fax:
1062 Budapest, Váci út 1-3. Westend Irodaház "C" torony, 5. emelet (+36-1) 371 25 55 (+36-1) 371 25 56
web:
telephely:
www.egroup.hu
3525 Miskolc, Madarász Viktor u. 13/A
*Szalánczi Gábor* szoftverfejlesztő / Software Developer
_________________________________________________________________________ Professional FreeSWITCH Consulting Services: consulting@freeswitch.org http://www.freeswitchsolutions.com
Official FreeSWITCH Sites http://www.freeswitch.org http://confluence.freeswitch.org http://www.cluecon.com
FreeSWITCH-users mailing list FreeSWITCH-users@lists.freeswitch.org http://lists.freeswitch.org/mailman/listinfo/freeswitch-users UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users http://www.freeswitch.org
(to be more precise: I tracked down the issue of bypass_media_after_bridge with mod_callcenter :) ) Florent 2016-05-19 18:26 GMT+02:00 Florent Krieg <flokrrr@gmail.com>:
Hello,
Very interesting application of FreeSWITCH (from my pov).
Anyway, what FS version have you tried? Because I tracked down this issue with the FS community and it has been solved in 1.6.8, released on May the 5th (https://freeswitch.org/the-freeswitch-1-6-8-release-is-here/). Case was https://freeswitch.org/jira/browse/FS-9025.
Hope it helps. Florent
2016-05-19 18:05 GMT+02:00 Szalánczi Gábor <szalanc1@gmail.com>:
Hello!
We are developing a FreeSwitch based solution for a sign-language interpreter service for hearing impaireds. The system is already somewhat operational, but we are facing serious audio/video quality issues (to the point of being completely unusable), presumably caused by our virtualized PBX environment in passthrough media mode. Indeed, by switching the calls to bypass media mode from the dialplan, most of these problems vanished.
The problem is the callcenter module, which is a crucial component for the operation of our service, but seemingly does not honor any setting meant to switch the calls to bypass mode. We have tried setting, exporting (even with cc_export_vars) the bypass_media=true and bypass_media_after_bridge=true variables from the dialplan before calling the callcenter application, setting them from the dialstring of the callcenter agents, and configuring the profile with inbound-bypass-media=true. None of these worked, the media streams of the calls serviced from the queue still got relayed by FreeSwitch.
The only way we were able to remove the PBX from the media path was using the uuid_media_3p off API call, issued from an ESL PHP script after the call is established between a client and an agent (from a custom event handler for the bridge-agent-start callcenter action). The main problem with this approach that the callcenter app initiates the call to the agent without ICE protocol (since it wants the PBX to relay the media streams), so our custom liblinphone-based desktop client will also respond to the b-leg REINVITE (triggered by uuid_media_3p) without ICE, resulting no media at all in bypass mode. Our custom mobile clients are ICE enabled, so the a-leg properly answers the REINVITE with ICE, and its SDP with candidate attributes gets forwarded to the b-leg, but since it had not started an ICE session at the initial call setup, it will ignore it, and send back a plain SDP just with its internal IP and ports.
Is there any way to force the callcenter app to send its initial INVITE with ICE? We have noticed that the a-leg's INVITE with candidates in its SDP is responded by FreeSwitch with a single candidate line for itself (this way it also keeps the ICE session alive at the client, so it can use it later responding the REINVITE), so hopefully it is possible.
We are open to any other suggestions which leads to bypass media mode with callcenter.
Best Regards!
Gábor Szalánczi
[image: cid:image001.gif@01D1B1E9.D64F69C0]
*E*‑*Group*
cím: telefon: fax:
1062 Budapest, Váci út 1-3. Westend Irodaház "C" torony, 5. emelet (+36-1) 371 25 55 (+36-1) 371 25 56
web:
telephely:
www.egroup.hu
3525 Miskolc, Madarász Viktor u. 13/A
*Szalánczi Gábor* szoftverfejlesztő / Software Developer
_________________________________________________________________________ Professional FreeSWITCH Consulting Services: consulting@freeswitch.org http://www.freeswitchsolutions.com
Official FreeSWITCH Sites http://www.freeswitch.org http://confluence.freeswitch.org http://www.cluecon.com
FreeSWITCH-users mailing list FreeSWITCH-users@lists.freeswitch.org http://lists.freeswitch.org/mailman/listinfo/freeswitch-users UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users http://www.freeswitch.org
Thank you for the tip! I upgraded to the 1.6.8 release, and tested it with tshark. As it seems, it does exactly the same thing as the uuid_media_3p off API call (sending a REINVITE after the call is answered by an agent), without juggling with ESL. Sadly, it also means that it won't trigger an ICE based response from the b-leg, since the initial INVITE from callcenter was not ICE based, thus liblinphone did not start an ICE session for this call. Gábor From: freeswitch-users-bounces@lists.freeswitch.org [mailto:freeswitch-users-bounces@lists.freeswitch.org] On Behalf Of Florent Krieg Sent: Thursday, May 19, 2016 6:26 PM To: FreeSWITCH Users Help Subject: Re: [Freeswitch-users] Bypass media with callcenter Hello, Very interesting application of FreeSWITCH (from my pov). Anyway, what FS version have you tried? Because I tracked down this issue with the FS community and it has been solved in 1.6.8, released on May the 5th (https://freeswitch.org/the-freeswitch-1-6-8-release-is-here/). Case was https://freeswitch.org/jira/browse/FS-9025. Hope it helps. Florent 2016-05-19 18:05 GMT+02:00 Szalánczi Gábor <szalanc1@gmail.com>: Hello! We are developing a FreeSwitch based solution for a sign-language interpreter service for hearing impaireds. The system is already somewhat operational, but we are facing serious audio/video quality issues (to the point of being completely unusable), presumably caused by our virtualized PBX environment in passthrough media mode. Indeed, by switching the calls to bypass media mode from the dialplan, most of these problems vanished. The problem is the callcenter module, which is a crucial component for the operation of our service, but seemingly does not honor any setting meant to switch the calls to bypass mode. We have tried setting, exporting (even with cc_export_vars) the bypass_media=true and bypass_media_after_bridge=true variables from the dialplan before calling the callcenter application, setting them from the dialstring of the callcenter agents, and configuring the profile with inbound-bypass-media=true. None of these worked, the media streams of the calls serviced from the queue still got relayed by FreeSwitch. The only way we were able to remove the PBX from the media path was using the uuid_media_3p off API call, issued from an ESL PHP script after the call is established between a client and an agent (from a custom event handler for the bridge-agent-start callcenter action). The main problem with this approach that the callcenter app initiates the call to the agent without ICE protocol (since it wants the PBX to relay the media streams), so our custom liblinphone-based desktop client will also respond to the b-leg REINVITE (triggered by uuid_media_3p) without ICE, resulting no media at all in bypass mode. Our custom mobile clients are ICE enabled, so the a-leg properly answers the REINVITE with ICE, and its SDP with candidate attributes gets forwarded to the b-leg, but since it had not started an ICE session at the initial call setup, it will ignore it, and send back a plain SDP just with its internal IP and ports. Is there any way to force the callcenter app to send its initial INVITE with ICE? We have noticed that the a-leg's INVITE with candidates in its SDP is responded by FreeSwitch with a single candidate line for itself (this way it also keeps the ICE session alive at the client, so it can use it later responding the REINVITE), so hopefully it is possible. We are open to any other suggestions which leads to bypass media mode with callcenter. Best Regards! Gábor Szalánczi cid:image001.gif@01D1B1E9.D64F69C0 E‑Group cím: telefon: fax: 1062 Budapest, Váci út 1-3. Westend Irodaház "C" torony, 5. emelet (+36-1) 371 25 55 (+36-1) 371 25 56 web: telephely: www.egroup.hu <http://www.egroup.hu/> 3525 Miskolc, Madarász Viktor u. 13/A Szalánczi Gábor szoftverfejlesztő / Software Developer _________________________________________________________________________ Professional FreeSWITCH Consulting Services: consulting@freeswitch.org http://www.freeswitchsolutions.com Official FreeSWITCH Sites http://www.freeswitch.org http://confluence.freeswitch.org http://www.cluecon.com FreeSWITCH-users mailing list FreeSWITCH-users@lists.freeswitch.org http://lists.freeswitch.org/mailman/listinfo/freeswitch-users UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users http://www.freeswitch.org
Just set bypass_media_after_bridge=true in the member channel and everything will work. This was fixed a month ago, you need to update.
On 19 de mai de 2016, at 13:05, Szalánczi Gábor <szalanc1@gmail.com> wrote:
Hello!
We are developing a FreeSwitch based solution for a sign-language interpreter service for hearing impaireds. The system is already somewhat operational, but we are facing serious audio/video quality issues (to the point of being completely unusable), presumably caused by our virtualized PBX environment in passthrough media mode. Indeed, by switching the calls to bypass media mode from the dialplan, most of these problems vanished.
The problem is the callcenter module, which is a crucial component for the operation of our service, but seemingly does not honor any setting meant to switch the calls to bypass mode. We have tried setting, exporting (even with cc_export_vars) the bypass_media=true and bypass_media_after_bridge=true variables from the dialplan before calling the callcenter application, setting them from the dialstring of the callcenter agents, and configuring the profile with inbound-bypass-media=true. None of these worked, the media streams of the calls serviced from the queue still got relayed by FreeSwitch.
The only way we were able to remove the PBX from the media path was using the uuid_media_3p off API call, issued from an ESL PHP script after the call is established between a client and an agent (from a custom event handler for the bridge-agent-start callcenter action). The main problem with this approach that the callcenter app initiates the call to the agent without ICE protocol (since it wants the PBX to relay the media streams), so our custom liblinphone-based desktop client will also respond to the b-leg REINVITE (triggered by uuid_media_3p) without ICE, resulting no media at all in bypass mode. Our custom mobile clients are ICE enabled, so the a-leg properly answers the REINVITE with ICE, and its SDP with candidate attributes gets forwarded to the b-leg, but since it had not started an ICE session at the initial call setup, it will ignore it, and send back a plain SDP just with its internal IP and ports.
Is there any way to force the callcenter app to send its initial INVITE with ICE? We have noticed that the a-leg's INVITE with candidates in its SDP is responded by FreeSwitch with a single candidate line for itself (this way it also keeps the ICE session alive at the client, so it can use it later responding the REINVITE), so hopefully it is possible.
We are open to any other suggestions which leads to bypass media mode with callcenter.
Best Regards!
Gábor Szalánczi
<image001.gif>
E‑Group
cím: telefon: fax: 1062 Budapest, Váci út 1-3. Westend Irodaház "C" torony, 5. emelet (+36-1) 371 25 55 (+36-1) 371 25 56 web:
telephely: www.egroup.hu
3525 Miskolc, Madarász Viktor u. 13/A
Szalánczi Gábor szoftverfejlesztő / Software Developer
_________________________________________________________________________ Professional FreeSWITCH Consulting Services: consulting@freeswitch.org http://www.freeswitchsolutions.com
Official FreeSWITCH Sites http://www.freeswitch.org http://confluence.freeswitch.org http://www.cluecon.com
FreeSWITCH-users mailing list FreeSWITCH-users@lists.freeswitch.org http://lists.freeswitch.org/mailman/listinfo/freeswitch-users UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users http://www.freeswitch.org
Ítalo Rossi italo@freeswitch.org
participants (4)
-
Florent Krieg
-
Gábor Szalánczi
-
Szalánczi Gábor
-
Ítalo Rossi