Re: [review v2] Voice implementation fixes (with audio channel setup handlers)

2018-08-16 Thread Aleksander Morgado
>
>
>
> > > The Huawei USB dongles that support voice require a command
> > > (AT^DDSETEX=2) to be executed when the call is established, and
> > > also
> > > need to report which port is being used for audio. In order to
> > > support
> > > that, instead of subclassing all start/accept/hangup methods, I
> > > extended the MMBaseCall class with two new handlers that allow
> > > setting
> > > up and cleaning up the audio channel however the plugin needs it.
> > > Bob,
> > > you could use these two methods for the custom AT commands you
> > > require
> > > for the SIMCom implementation, right?
> >
> > Possibly, yes.  The SimTech (== SIMCom) plugin is using the
> >
> MMBroadbandModemQmi class which means I either need to (1) subclass
> > MMBroadbandModemQmi and mix in AT commands, or (2) use the plugin's
> > AT-only MBroadbandModemSimtech class and add to it.  I'd rather stick
> > with QMI but I don't know how well the modem will cope with it so I
> > need
> > to experiment.
>
> I'd be very curious if the modem supports the QMI Voice service and if
> so, how that interacts with the actual audio ports the modem exposes.
>


Yes, using QMI also for the voice management would be ideal, if the device
supports the VOICE service. Otherwise, falling back to AT commands by
implementing a custom MMBroadbandModemQmiSimtech wouldn't be very bad.


-- 
Aleksander
https://aleksander.es
___
ModemManager-devel mailing list
ModemManager-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/modemmanager-devel


Re: [review v2] Voice implementation fixes (with audio channel setup handlers)

2018-08-16 Thread Dan Williams
On Thu, 2018-08-16 at 17:30 +0100, Bob Ham wrote:
> On 10/08/18 14:31, Aleksander Morgado wrote:
> 
> > The Huawei USB dongles that support voice require a command
> > (AT^DDSETEX=2) to be executed when the call is established, and
> > also
> > need to report which port is being used for audio. In order to
> > support
> > that, instead of subclassing all start/accept/hangup methods, I
> > extended the MMBaseCall class with two new handlers that allow
> > setting
> > up and cleaning up the audio channel however the plugin needs it.
> > Bob,
> > you could use these two methods for the custom AT commands you
> > require
> > for the SIMCom implementation, right?
> 
> Possibly, yes.  The SimTech (== SIMCom) plugin is using the
> MMBroadbandModemQmi class which means I either need to (1) subclass
> MMBroadbandModemQmi and mix in AT commands, or (2) use the plugin's
> AT-only MBroadbandModemSimtech class and add to it.  I'd rather stick
> with QMI but I don't know how well the modem will cope with it so I
> need
> to experiment.

I'd be very curious if the modem supports the QMI Voice service and if
so, how that interacts with the actual audio ports the modem exposes. 
Or if you do indeed need to use AT commands to do the voice operations,
and QMI is completely unaware.

> > Dan's original changes also include support for reporting which
> > port
> > and which audio format to use in the call, so plugins may use that
> > to
> > report to upper layers that required information. Instead of
> > updating
> > that information within the Huawei implementation, that is now
> > managed
> > by the base call object.
> 
> My intention was to handle the audio completely outside of
> ModemManager.
>  Out of interest, what upper layers make use of this information?

Any kind of dialer implementation.  The idea is to make the
ModemManager API as generic as possible, though we understand that this
won't always be possible.

The only other example I have of a voice-capable modem is an AT-based
Huawei device that switches its DIAG tty from QCDM to raw PCM frames
when a voice call is active.  You literally read the PCM data off the
USB tty or write PCM to it as a Linux character device.  Obviously
that's not how they all work, especially in setups where the DAC is
handled by the modem board.  Some older Sierras were like that too;
they had a headphone jack on the card that magically became active
during voice calls.

The point is there are a number of ways audio is exposed by the
hardware, and ModemManager should try to expose those in an
informative, marginally consistent way so that userspace applications
can find and/or control the audio.

Dan

> Cheers,
> 
> Bob
> 
> ___
> ModemManager-devel mailing list
> ModemManager-devel@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/modemmanager-devel
___
ModemManager-devel mailing list
ModemManager-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/modemmanager-devel


Re: [review v2] Voice implementation fixes (with audio channel setup handlers)

2018-08-16 Thread Bob Ham
On 10/08/18 14:31, Aleksander Morgado wrote:

> The Huawei USB dongles that support voice require a command
> (AT^DDSETEX=2) to be executed when the call is established, and also
> need to report which port is being used for audio. In order to support
> that, instead of subclassing all start/accept/hangup methods, I
> extended the MMBaseCall class with two new handlers that allow setting
> up and cleaning up the audio channel however the plugin needs it. Bob,
> you could use these two methods for the custom AT commands you require
> for the SIMCom implementation, right?

Possibly, yes.  The SimTech (== SIMCom) plugin is using the
MMBroadbandModemQmi class which means I either need to (1) subclass
MMBroadbandModemQmi and mix in AT commands, or (2) use the plugin's
AT-only MBroadbandModemSimtech class and add to it.  I'd rather stick
with QMI but I don't know how well the modem will cope with it so I need
to experiment.

> Dan's original changes also include support for reporting which port
> and which audio format to use in the call, so plugins may use that to
> report to upper layers that required information. Instead of updating
> that information within the Huawei implementation, that is now managed
> by the base call object.

My intention was to handle the audio completely outside of ModemManager.
 Out of interest, what upper layers make use of this information?

Cheers,

Bob



signature.asc
Description: OpenPGP digital signature
___
ModemManager-devel mailing list
ModemManager-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/modemmanager-devel


Re: Fibocom L850-GL hangs upon connect.

2018-08-16 Thread Vincent Bernat
 ❦ 16 août 2018 11:18 +0200, Aleksander Morgado :

 If this modem is going to end up stuck with pure PPP and therefore maxing
 out at 25Mbps, then I'm not too concerned anyways since its use is rather
 limited. I just wish I could figure out how to switch this thing to MBIM
 (Tried everything listed in the AT Command reference guide, including
 factory resets and defaults.).

>>>
>>> Talked to Fibocom engineers and unfortunately that firmware version
>>> you're using cannot do MBIM :/
>>
>> On the latest Lenovo X1/T580/T480, this modem is plugged on a
>> PCIe-enabled M2 port and boots as a PCI device. It seems Linux isn't
>> able to handle that. People tried to tape the PCIe pins to make it boot
>> as USB, but it's then blacklisted in the BIOS. Maybe you have some hints
>> on how to make this modem switch to USB after booting?
>>
>> I don't own one yet, so I cannot really help with the specifics.
>>
>> Relevant thread:
>>  
>> https://forums.lenovo.com/t5/Linux-Discussion/Linux-support-for-WWAN-LTE-L850-GL-on-T580-T480/m-p/4067969
>
> Fibocom engineers say there is no way to "switch" to USB after the
> device has been booted in PCIe mode. Was told that Intel may be
> already working on the PCIe support for these devices in the kernel,
> but while that is not a reality, there seems to be absolutely no way
> to handle the device in the Thinkpad running Linux, unless Lenovo
> decides to add the corresponding USB vid:pid in the BIOS whitelist.

Thanks for the heads up!
-- 
Don't stop at one bug.
- The Elements of Programming Style (Kernighan & Plauger)
___
ModemManager-devel mailing list
ModemManager-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/modemmanager-devel


Re: Fibocom L850-GL hangs upon connect.

2018-08-16 Thread Aleksander Morgado
>>> If this modem is going to end up stuck with pure PPP and therefore maxing
>>> out at 25Mbps, then I'm not too concerned anyways since its use is rather
>>> limited. I just wish I could figure out how to switch this thing to MBIM
>>> (Tried everything listed in the AT Command reference guide, including
>>> factory resets and defaults.).
>>>
>>
>> Talked to Fibocom engineers and unfortunately that firmware version
>> you're using cannot do MBIM :/
>
> On the latest Lenovo X1/T580/T480, this modem is plugged on a
> PCIe-enabled M2 port and boots as a PCI device. It seems Linux isn't
> able to handle that. People tried to tape the PCIe pins to make it boot
> as USB, but it's then blacklisted in the BIOS. Maybe you have some hints
> on how to make this modem switch to USB after booting?
>
> I don't own one yet, so I cannot really help with the specifics.
>
> Relevant thread:
>  
> https://forums.lenovo.com/t5/Linux-Discussion/Linux-support-for-WWAN-LTE-L850-GL-on-T580-T480/m-p/4067969

Fibocom engineers say there is no way to "switch" to USB after the
device has been booted in PCIe mode. Was told that Intel may be
already working on the PCIe support for these devices in the kernel,
but while that is not a reality, there seems to be absolutely no way
to handle the device in the Thinkpad running Linux, unless Lenovo
decides to add the corresponding USB vid:pid in the BIOS whitelist.

-- 
Aleksander
https://aleksander.es
___
ModemManager-devel mailing list
ModemManager-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/modemmanager-devel