Re: Making a phone call with GNOME

Le jeudi 15 mars 2018 à 10:39 +0000, Bob Ham a écrit :
Hi all,

I'm working on the ability to make a phone call with the Librem 5 phone.
 I've started working on a Telepathy-based dialer and call handler.  The
goal at Purism is to work upstream and we use GNOME as the desktop
environment in our distribution, PureOS, which will be what the Librem 5
runs.  There's no existing dialer in GNOME so the assumption underlying
this work is that it will end up as "GNOME Dialer".  I'm sending this
email now to check in and get feedback on my approach.

Note that this is not entirely true, there is a dialer in Empathy
already. It's most likely a miss-fit for a Phone UI (just like most
Gnome application if left unmodified).

There was a long discussion⁰ last year on this mailing list regarding
replacing Telepathy with Matrix and the thread also included a lot of
general discussion of Telepathy and communication.  In that discussion
there were plenty of calls for Telepathy to die so I feel I should
justify my approach.

Firstly, there are only two existing free GSM middleware frameworks:
freesmartphone.org¹ (FSO) and oFono².  FSO is actually a whole
smartphone middleware, including not just telephony but contacts,
alarms, audio, battery and so on.  We are explicitly targetting the
GNOME platform which already provides a lot of (all of?) what FSO does.
We cannot use FSO or else we would conflict with our goal of building on
the GNOME platform.  Hence, we must use oFono.

oFono is also the best choice for telephony. It has been extensively
tested and used in read-world use cases. It also handles well the
Bluetooth Handset and implement all the features you car integration
needs. Though, it might not have a great upstream at the moment (non

Both Telepathy and oFono expose APIs over D-Bus so regardless of whether
we use oFono natively or through telepathy-ring, we'll be writing a
GNOME D-Bus application.  By building a dialer based on Telepathy we get
the tantalising possibility of supporting SIP cheaply as there are SIP
connection managers for Telepathy.

Telepathy Ring was justified by the "single UI" requirement to
aggregate GSM / SIP / XMPP (which included Google and Facebook back
then) / IRC but also proprietary stuff like Skype. As of today's
reality, Matrix native API is missing, and only GSM/SIP/IRC remains
(well haze, for libpurple, but a bit limited), from which only GSM and
SIP have strong common needs. That's why Telepathy is being criticized,
as it's very complex for what it brings.  A simpler abstractions would
make everyone's life easier.

By using telepathy-ring we also open the possibility of having deep
integration of SMS and IM systems.  That's not the immediate focus but
it's something to bear in mind.

When I read through the Telepathy Developer's Manual, I thought "this is
awesome!"  However, having got to grips with a lot of the complexity, I
can see why there has been so little traction and why a lot of people in
the aforementioned mailing list thread wanted it to die.  That said, I
still think Telepathy is awesome and it still seems like the most
sensible choice for our immediate need of building telephony programs
for the Librem 5.

It was designed for a phone, and made useful to the desktop.

My colleague François Téchené recently wrote a blog post³ proposing a
unified UX using a "feature"-based approach rather than an
application-based approach.  This proposal comes from the ideas of
Ethical Design⁴.  The technological underpinnings of this UX are already
largely extant in Telepathy.

The future that I'm looking towards is one where the Librem 5 is a
shining beacon of harmonious Telepathy-based telecommunication magic,
providing unified interfaces to various different messaging and
audio/video telephony systems including Matrix, GSM, SIP and XMPP,
complete with encryption.

Maybe you want to finish the Telepathy 1.0 spec then ? It's a major
cleanup that go abandoned when Nokia Open Source went down. All the
code is still available. It removes the legacy/backward compatibility,
removes the duplicated interface (specially for Telephony, as there was
couple of rewrites of this interface, and we ended up supported
multiple versions in Empathy).

I understand that this is no small undertaking, to say the least.  We
will not achieve this state when the Librem 5 first ships.  However,
over time I would like us to work towards that harmonious magic.

Thoughts are most welcome.




desktop-devel-list mailing list
desktop-devel-list gnome org

Attachment: signature.asc
Description: This is a digitally signed message part

[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]