<div dir="ltr"><div><div>well, I would say, once mod_ttyusb_audio is available and stable, there may be various ways to handle the signaling, and MoidemManager might be one of them.<br><br></div>As it's vacations time, I didn't yet approach potential sponsors, so I can't say how fast that will go. At the moment I'm spending 1-2 hours a week on it. <br><br></div>By the way, I'm in talks with one of Chinese ARM board makers, to build an appliance with mPCIE slot and metal enclosure with antenna mounts. It would be in the range of $50 and would run a modern Linux kernel (most probably the one maintained by Armbian team). So, we may eventually build a FreeSWITCH-based LTE voice gateway as an alternative to all those Asterisk-based boxes, most of which are not even open-source.<br><br><br><br></div><div class="gmail_extra"><br><div class="gmail_quote">On Sat, Aug 5, 2017 at 4:51 AM, Giovanni Maruzzelli <span dir="ltr"><<a href="mailto:gmaruzz@gmail.com" target="_blank">gmaruzz@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div>In a separate mail thread, Enrico Mioso ( <a href="mailto:mrkiko.rs@gmail.com" target="_blank">mrkiko.rs@gmail.com</a>  ) just proposed an interesting approach toward a new generic voicemodem endpoint, and asked me to "join" the two mail threads:<br></div><br><pre>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 
<a href="http://lists.freeswitch.org/pipermail/freeswitch-users/2017-August/127153.html" target="_blank">http://lists.freeswitch.org/<wbr>pipermail/freeswitch-users/<wbr>2017-August/127153.html</a>


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:
<a href="https://www.freedesktop.org/wiki/Software/ModemManager/" target="_blank">https://www.freedesktop.org/<wbr>wiki/Software/ModemManager/</a>
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
</pre><br><br><div><div><div><div><div><div class="gmail_extra"><div><div class="h5"><br><div class="gmail_quote">On 3 August 2017 at 20:48, Anthony Minessale <span dir="ltr"><<a href="mailto:anthony.minessale@gmail.com" target="_blank">anthony.minessale@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="auto"><br></div><div dir="auto">Maybe a dictionary of abstract commands to translate to the vendor specific like procomm used to do.</div><div dir="auto"><br></div><div dir="auto">Then only issue the abstract commands from the high level and allow it to translate.</div><div class="m_-3479429409558766917gmail-HOEnZb"><div class="m_-3479429409558766917gmail-h5"><div dir="auto"><br></div><div dir="auto"> </div><div dir="auto"><br></div><div><br><div class="gmail_quote"><div>On Thu, Aug 3, 2017 at 9:24 AM Stanislav Sinyagin <<a href="mailto:ssinyagin@gmail.com" target="_blank">ssinyagin@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">On Thu, Aug 3, 2017 at 3:51 PM, Tihomir Culjaga <<a href="mailto:tculjaga@gmail.com" target="_blank">tculjaga@gmail.com</a>> wrote:<br>
> how are you going to instruct mod_ttyusb_audio top open audio channel on a<br>
> specific tty ? are you planing to provide the api in ESL ?<br>
<br>
a command like "ttyusb connect /dev/ttyUSB3 <uuid>"<br>
<br>
before that, a command "ttyusb device /dev/ttyUSB3 8000 L16" would<br>
tell the module what codec to use.<br>
<br>
After the call is finished, issue "ttyusb disconnect /dev/ttyUSB3", or<br>
it would disconnect automatically when the channel is destroyed.<br>
<br>
<br>
>> Once it's done, the signaling could be done either within FreeSWITCH,<br>
>> or in an outside ESL daemon. An external daemon would allow more<br>
>> flexibility, but there's a burden of running one more process.<br>
><br>
><br>
> although it can be much more flexible and faster using an external ESL<br>
> daemon, i'd prefer to make it in FreeSWITCH as a module ... e.g. mod_hayes<br>
<br>
the commands are very different for different vendors (I compared<br>
Huawei against Simcom, and it's a lot of difference), so there should<br>
be some vendor-specific extensions. Either a rich XML file defining<br>
the whole dialogue, or a per-vendor module in FreeSWITCH. Difficult to<br>
say, I'm not that far yet.<br>
<br>
>> In regards to udev rules -- you actually don't need them. The logic of<br>
>> finding the modem and matching it against IMEI and IMSI is already in<br>
>> mod_gsmopen (was that Giovanni who implemented it?). It just needs a<br>
>> bit of improvement in making it more vendor-independent. Also I would<br>
>> do matching on IMEI OR IMSI, not the AND condition that is in the<br>
>> module currently.<br>
>><br>
> are we sure IMEI and/or IMSI will always present ?<br>
<br>
yes, as per GSM standard. But again, commands retrieving them are<br>
different between vendors. And anyway, that would only be one method<br>
of selecting a device. There should always be a way to point to a<br>
specific ttyUSB device explicitly.<br>
<br>
>> I actually do have a set of udev rules, they are in fact needed for<br>
>> data connection:<br>
>> <a href="https://github.com/ssinyagin/wwan_udev_rules" rel="noreferrer" target="_blank">https://github.com/ssinyagin/w<wbr>wan_udev_rules</a><br>
>> But they fail if you have more than one modem, and here's an explanation:<br>
>><br>
>> <a href="https://txlab.wordpress.com/2017/05/19/two-lte-modems-with-pc-engines-apu3/" rel="noreferrer" target="_blank">https://txlab.wordpress.com/20<wbr>17/05/19/two-lte-modems-with-<wbr>pc-engines-apu3/</a><br>
><br>
><br>
> this is specific HW :=) .. im positive there is a work around this problem<br>
<br>
no, this is a generic problem, and a solution for a specific host hardware.<br>
<br>
______________________________<wbr>______________________________<wbr>_____________<br>
Professional FreeSWITCH Consulting Services:<br>
<a href="mailto:consulting@freeswitch.org" target="_blank">consulting@freeswitch.org</a><br>
<a href="http://www.freeswitchsolutions.com" rel="noreferrer" target="_blank">http://www.freeswitchsolutions<wbr>.com</a><br>
<br>
Official FreeSWITCH Sites<br>
<a href="http://www.freeswitch.org" rel="noreferrer" target="_blank">http://www.freeswitch.org</a><br>
<a href="http://confluence.freeswitch.org" rel="noreferrer" target="_blank">http://confluence.freeswitch.o<wbr>rg</a><br>
<a href="http://www.cluecon.com" rel="noreferrer" target="_blank">http://www.cluecon.com</a><br>
<br>
FreeSWITCH-users mailing list<br>
<a href="mailto:FreeSWITCH-users@lists.freeswitch.org" target="_blank">FreeSWITCH-users@lists.freeswi<wbr>tch.org</a><br>
<a href="http://lists.freeswitch.org/mailman/listinfo/freeswitch-users" rel="noreferrer" target="_blank">http://lists.freeswitch.org/ma<wbr>ilman/listinfo/freeswitch-user<wbr>s</a><br>
UNSUBSCRIBE:<a href="http://lists.freeswitch.org/mailman/options/freeswitch-users" rel="noreferrer" target="_blank">http://lists.frees<wbr>witch.org/mailman/options/<wbr>freeswitch-users</a><br>
<a href="http://www.freeswitch.org" rel="noreferrer" target="_blank">http://www.freeswitch.org</a></blockquote></div></div></div></div><span class="m_-3479429409558766917gmail-HOEnZb"><font color="#888888"><div dir="ltr">-- <br></div><div><div dir="ltr"><div><div dir="ltr"><div><div dir="ltr"><div><div dir="ltr">Anthony Minessale II       ♬ @anthmfs  ♬ @FreeSWITCH  ♬<div><br><div>☞ <a href="http://freeswitch.org/" target="_blank">http://freeswitch.org/</a>  ☞ <a href="http://cluecon.com/" target="_blank">http://cluecon.com/</a>  ☞ <a href="http://twitter.com/FreeSWITCH" target="_blank">http://twitter.com/FreeSWITCH</a></div><div><div>☞ <a href="http://irc.freenode.net" target="_blank">irc.freenode.net</a> #freeswitch ☞ <u><a href="http://freeswitch.org/g+" target="_blank">http://freeswitch.org/g+</a></u><br><br></div><div>ClueCon Weekly Development Call <br></div><div>☎ <a href="mailto:sip%3A888@conference.freeswitch.org" target="_blank">sip:888@conference.freeswitch<wbr>.org</a>  ☎ <a href="tel:%28919%29%20386-9900" value="+19193869900" target="_blank">+19193869900</a> </div><div><br></div></div></div><div><a href="https://www.youtube.com/watch?v=oAxXgyx5jUw" target="_blank">https://www.youtube.com/watch?<wbr>v=oAxXgyx5jUw</a><br></div><div><a href="https://www.youtube.com/watch?v=9XXgW34t40s" style="color:rgb(17,85,204);font-size:12.8px" target="_blank">https://www.youtube.com/watch?<wbr>v=9XXgW34t40s</a></div><div><a href="https://www.youtube.com/watch?v=NLaDpGQuZDA" target="_blank">https://www.youtube.com/watch?<wbr>v=NLaDpGQuZDA</a><br></div></div></div></div></div></div></div></div></div>
</font></span><br>______________________________<wbr>______________________________<wbr>_____________<br>
Professional FreeSWITCH Consulting Services:<br>
<a href="mailto:consulting@freeswitch.org" target="_blank">consulting@freeswitch.org</a><br>
<a href="http://www.freeswitchsolutions.com" rel="noreferrer" target="_blank">http://www.freeswitchsolutions<wbr>.com</a><br>
<br>
Official FreeSWITCH Sites<br>
<a href="http://www.freeswitch.org" rel="noreferrer" target="_blank">http://www.freeswitch.org</a><br>
<a href="http://confluence.freeswitch.org" rel="noreferrer" target="_blank">http://confluence.freeswitch.o<wbr>rg</a><br>
<a href="http://www.cluecon.com" rel="noreferrer" target="_blank">http://www.cluecon.com</a><br>
<br>
FreeSWITCH-users mailing list<br>
<a href="mailto:FreeSWITCH-users@lists.freeswitch.org" target="_blank">FreeSWITCH-users@lists.freeswi<wbr>tch.org</a><br>
<a href="http://lists.freeswitch.org/mailman/listinfo/freeswitch-users" rel="noreferrer" target="_blank">http://lists.freeswitch.org/ma<wbr>ilman/listinfo/freeswitch-user<wbr>s</a><br>
UNSUBSCRIBE:<a href="http://lists.freeswitch.org/mailman/options/freeswitch-users" rel="noreferrer" target="_blank">http://lists.frees<wbr>witch.org/mailman/options/<wbr>freeswitch-users</a><br>
<a href="http://www.freeswitch.org" rel="noreferrer" target="_blank">http://www.freeswitch.org</a><br></blockquote></div><br><br clear="all"><br>-- <br></div></div><span class=""><div class="m_-3479429409558766917gmail_signature" data-smartmail="gmail_signature"><div dir="ltr"><div><span><span><br>Sincerely,<br></span><span><font color="#888888"><br>
Giovanni Maruzzelli<br>
OpenTelecom.IT</font></span><br><span>cell: +39 347 266 56 18<span><font color="#888888"><br></font></span></span></span></div></div></div>
</span></div></div></div></div></div></div></div>
<br>______________________________<wbr>______________________________<wbr>_____________<br>
Professional FreeSWITCH Consulting Services:<br>
<a href="mailto:consulting@freeswitch.org">consulting@freeswitch.org</a><br>
<a href="http://www.freeswitchsolutions.com" rel="noreferrer" target="_blank">http://www.<wbr>freeswitchsolutions.com</a><br>
<br>
Official FreeSWITCH Sites<br>
<a href="http://www.freeswitch.org" rel="noreferrer" target="_blank">http://www.freeswitch.org</a><br>
<a href="http://confluence.freeswitch.org" rel="noreferrer" target="_blank">http://confluence.freeswitch.<wbr>org</a><br>
<a href="http://www.cluecon.com" rel="noreferrer" target="_blank">http://www.cluecon.com</a><br>
<br>
FreeSWITCH-users mailing list<br>
<a href="mailto:FreeSWITCH-users@lists.freeswitch.org">FreeSWITCH-users@lists.<wbr>freeswitch.org</a><br>
<a href="http://lists.freeswitch.org/mailman/listinfo/freeswitch-users" rel="noreferrer" target="_blank">http://lists.freeswitch.org/<wbr>mailman/listinfo/freeswitch-<wbr>users</a><br>
UNSUBSCRIBE:<a href="http://lists.freeswitch.org/mailman/options/freeswitch-users" rel="noreferrer" target="_blank">http://lists.<wbr>freeswitch.org/mailman/<wbr>options/freeswitch-users</a><br>
<a href="http://www.freeswitch.org" rel="noreferrer" target="_blank">http://www.freeswitch.org</a><br></blockquote></div><br></div>