[Freeswitch-users] Freeswitch and VoiceModems
Enrico Mioso
mrkiko.rs at gmail.com
Fri Aug 4 14:39:43 UTC 2017
Hello guys.
First of all - hello to you all nice community.
I am sorry i started a new thread here, instead of joining the original
one at
http://lists.freeswitch.org/pipermail/freeswitch-users/2017-August/127153.html
I coincidentally started thinking about this thing some days ago. i
enjoyed a lot using FreeSwitch with some Huawei Dongles, and i can say it
worked with Huawei E173, Huawei E3531 and maybe others. There where some
problems, like DTMF not working properly with all dongles, but voice could
be heard. But the most important problem, to me at least, was instability.
After some time of operation, the modem did ring but FS didn't notice, or
outgoing call did get stuck in some strange way.
I decided to let things go at that time, but now something new happened:
ModemManager project:
https://www.freedesktop.org/wiki/Software/ModemManager/
operated by very nice and cool people, implemented support for voice in
modems supporting it.
I didn't look deep enough, but I think it's handling only initializzation
and preparation tasks in general.
I tought it would be cool to let FreeSwitch use ModemManager, for various
reasons.
1 - They did all the work of preparing udev rules for different hardware,
and they ship them in an elegantly packaged and proper way.
2 - They support a lot of different modems, with related firmware kludges
and workarounds.
3 - Most importantly, they offer unified APIs to control the modem they
support, over a DBUS interface.
I think this would bring FS support for voicemodems to the next level, for
various reasons. The first and most important one being robustness: since
ModemManager handles tricky devices from long time now, and has undergone
a good development and bugfixing time by now.
The second thing to consider is the fact that it will allow us to use our
modems in a more advanced way. Some modems offer native-level
functionalities like SMS handling and other things via protocols like QMI:
and using those functionalities this way could be very interesting,
especially considering the buggyness some firmwares can exhibit when the
modem is interfaced with situations that Windows drivers / Vendor software
did not think about.
I a very new to FS, both from a user perspective, and even more from a
developer one: so i started a cursory look at what's happening in the FS
eventing system. I didn't read further.
Still, I was thinking about the following steps:
1 - Implementing a DBUS->FS gateway module, allowing for modules inside FS
to listen and react fo dbus events. this would be necessary to allow us to
talk to ModemManager, which talks via dbus.
I don't know if this already exist: but I think it could be useful even
for other situations.
2 - Isolating audio processing in one module. i noticed this is already in
progress, good job guys! And thanks.
3 - Reimplementing something like mod_gsmopen, that talks via DBUS with
ModemManager and interfaces with FS, allowing for call setup/teardown, SMS
handling and so on.
I know I know: ModemManager is an external process and is a piece of
complex software. But following a little bit the development via the
repository and playing with different modems, I can tell you there are
good reasons for this.
And companies building those hardware are not known for standardizzing
things so much: and the amount of work to be done isn't small by no mean.
I think we should try to do it only once if possible, with incremental
develpment / fixes.
FS is known for it's reliability and robustness: and building something
reliable and robust is fundamental I think. I couldn't convince myself
about 3G/4G modems firmwares being robust pieces of software, also due to
their complexity. I think we should join our effort.
Enrico
More information about the FreeSWITCH-users
mailing list