Re: Making a phone call with GNOME

2018-03-15 Thread Simon McVittie
On Thu, 15 Mar 2018 at 10:39:39 +, Bob Ham wrote:
> 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.

Unfortunately, the technological underpinnings of that UX are also a
large part of why Telepathy is no longer actively developed. Designing
an abstraction across protocols that are not "the same shape" is really
hard. Maintaining that abstraction in Telepathy soaked up a lot of
developer time, and the need to keep that abstraction API-stable made it
disproportionately hard to add new features (which is why, as previously
noted, Telepathy had trouble keeping up with "modern XMPP": adding a
new feature required touching at least three projects, and making it
API-stable often required investigating multiple protocols to make sure
the API would fit them all).

(For instance, the call-centric design of telephony and the
non-patent-encumbered subset of SIP supported by Telepathy are unlike the
roster-centric design of XMPP, while the hard division between one-to-one
messages and chatrooms in XMPP is unlike the variable-number-of-users
"switchboards" in the now-defunct MSNP.)

If the UX that your users expect is very much "the same shape" for a
pair of protocols, then perhaps it makes sense to have an abstraction
across those protocols; but is that really the case for all of them?

smcv
___
desktop-devel-list mailing list
desktop-devel-list@gnome.org
https://mail.gnome.org/mailman/listinfo/desktop-devel-list

Re: Making a phone call with GNOME

2018-03-15 Thread Matthew Hodgson

On 15/03/2018 10:39, Bob Ham wrote:

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.


At ths risk of repeating the mail thread from last year, telepathy (in 
its current incarnation) is not fit for this because protocols like 
Matrix or modern XMPP are way way richer than the APIs that telepathy's 
abstractions provides.  The gaps include E2E encryption, infinite room 
history, server-side search, server-side notification rules, read 
markers, read receipts, flair, communities/groups, stickers, widgets, 
SFU-based video conferencing, threading, emoji reactions, "peeking" into 
rooms without joining, starred/favourited/pinned messages, arbitrary 
non-IM/VoIP data types, etc. etc. etc.


So either this is going to end up dumbing down Matrix or XMPP until they 
feel like the IM/VoIP technologies of 10 years ago, or you're going to 
end up creating a whole new API (Telepathy-NG) which attempts to be a 
richer superset of those features.  Having just spent 4 years building a 
'richer superset API' in the form of Matrix, using a relatively large 
team of VoIP/IM experts, I would caution that it's a massive amount of 
work, and Purism may be better off building on what already exists 
rather than inventing yet another new wheel.


My recommendation would be that rather than inventing yet another API, 
you'd just use the existing Matrix client-server API semantics locally 
(perhaps using a more efficient IPC transport than HTTP).  This has the 
advantage that you can use existing Matrix clients with minimal changes 
for the decent experience.  You can also use the existing server-side 
bridges that exist in Matrix through to Slack, IRC, Gitter, Telegram 
etc.  And one could *also* do a client-side protocol adaptor which 
transform the Matrix client-server API semantics directly into GSM, SIP, 
etc. for telepathy-style behaviour - although such an adaptor does not 
yet exist.  (Such an adaptor could also act as a general purpose useful 
 local matrix daemon, handling E2E crypto, search indexing of decrypted 
logs, push notifications, etc).


We were hoping to build the latter as part of bringing Matrix to the 
Librem5, but as it seems Purism has opted to do this in house rather 
than utilising the Matrix team, we don't have any way of supporting the 
work and are having to concentrate on business-as-usual Matrix dev 
instead.  That said, we'd obviously be happy to try to advise on anyone 
else who does have the bandwidth/funding to work on this.


thanks,

Matthew

--
Matthew Hodgson
Matrix.org
___
desktop-devel-list mailing list
desktop-devel-list@gnome.org
https://mail.gnome.org/mailman/listinfo/desktop-devel-list


Re: Making a phone call with GNOME

2018-03-15 Thread mcatanzaro


Note the DTMF is really, really unreliable... not sure if that's a bug 
in Empathy or in Telepathy, but I'd assume the later. I reported this 
as https://bugzilla.gnome.org/show_bug.cgi?id=770709.


___
desktop-devel-list mailing list
desktop-devel-list@gnome.org
https://mail.gnome.org/mailman/listinfo/desktop-devel-list


Re: Making a phone call with GNOME

2018-03-15 Thread Bob Ham
On 15/03/18 17:13, Nicolas Dufresne wrote:
> Le jeudi 15 mars 2018 à 15:41 +, Bob Ham a écrit :

>> is there a 3x4 button grid somewhere that I missed?
> 
> To be clear, I mean that Empathy Call UI have a dial pad with all this
> with the DTMF implemented. So the code is there. Mostly all what we did
> on the Nokia phone was also implemented in Empathy for SIP. What's
> likely missing, is to enable that UI to initiate a call.

Ah I see!  I was expecting there to be Empathy code there we could use
in the call handler.  I didn't realise there was a dial pad in there.

> What I don't
> mean to, is that this is not ready for a Phone UI, it needs a design
> and a better workflow.

Right, yes.  In my original email, I avoided pre-empting the question
"why aren't you just using Empathy?"  You've provided the answer here.
I'm glad we're on the same page :-)

> Also, from random Google Image search:
> http://fortintam.com/blog/wp-content/uploads/empathy-3.6-and-pulseaudio-2.0.jpg

Cool, thanks.


Bob




signature.asc
Description: OpenPGP digital signature
___
desktop-devel-list mailing list
desktop-devel-list@gnome.org
https://mail.gnome.org/mailman/listinfo/desktop-devel-list

Re: Making a phone call with GNOME

2018-03-15 Thread Nicolas Dufresne
Le jeudi 15 mars 2018 à 15:41 +, Bob Ham a écrit :
> On 15/03/18 14:48, Nicolas Dufresne wrote:
> > Le jeudi 15 mars 2018 à 10:39 +, Bob Ham a écrit :
> 
> >> There's no existing dialer in GNOME
> 
> > 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).
> 
> To be clear here, when I say "dialer", I mean something with a typical
> phone interface; a 3x4 grid of buttons with numbers, '*' and '#'.  I
> know Empathy can request channels from telepathy-ring⁰, I've got it to
> do that with an SMS channel but couldn't seem to poke it into requesting
> a call though I expect it's possible.  Is that what you mean when you
> say there's a dialer in Empathy or is there a 3x4 button grid somewhere
> that I missed?

To be clear, I mean that Empathy Call UI have a dial pad with all this
with the DTMF implemented. So the code is there. Mostly all what we did
on the Nokia phone was also implemented in Empathy for SIP. What's
likely missing, is to enable that UI to initiate a call. What I don't
mean to, is that this is not ready for a Phone UI, it needs a design
and a better workflow.

Also, from random Google Image search:
http://fortintam.com/blog/wp-content/uploads/empathy-3.6-and-pulseaudio-2.0.jpg

Nicolas

signature.asc
Description: This is a digitally signed message part
___
desktop-devel-list mailing list
desktop-devel-list@gnome.org
https://mail.gnome.org/mailman/listinfo/desktop-devel-list

Re: Making a phone call with GNOME

2018-03-15 Thread Bob Ham
On 15/03/18 14:48, Nicolas Dufresne wrote:
> Le jeudi 15 mars 2018 à 10:39 +, Bob Ham a écrit :

>> There's no existing dialer in GNOME

> 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).

To be clear here, when I say "dialer", I mean something with a typical
phone interface; a 3x4 grid of buttons with numbers, '*' and '#'.  I
know Empathy can request channels from telepathy-ring⁰, I've got it to
do that with an SMS channel but couldn't seem to poke it into requesting
a call though I expect it's possible.  Is that what you mean when you
say there's a dialer in Empathy or is there a 3x4 button grid somewhere
that I missed?

⁰
https://blogs.gnome.org/wjjt/2010/07/15/sending-smses-with-empathy-and-telepathy-ring/


> A simpler abstractions would make everyone's life easier.

No doubt.  Perhaps a Telepathy-NG is needed?


>> The future that I'm looking towards is one where the Librem 5 is a
>> shining beacon of harmonious Telepathy-based telecommunication magic

> Maybe you want to finish the Telepathy 1.0 spec then ?

Maybe :-)


Cheers,

Bob



signature.asc
Description: OpenPGP digital signature
___
desktop-devel-list mailing list
desktop-devel-list@gnome.org
https://mail.gnome.org/mailman/listinfo/desktop-devel-list

Re: Making a phone call with GNOME

2018-03-15 Thread Nicolas Dufresne
Le jeudi 15 mars 2018 à 10:39 +, 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
have)

> 
> 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.
> 
> Thanks,
> 
> Bob
> 
> 
> ⁰
> https://mail.gnome.org/archives/desktop-devel-list/2017-August/thread.html#00112
> https://mail.gnome.org/archives/desktop-devel-list/2017-September/thread.html#00047
> ¹ http://www.freesmartphone.org/
> ² https://01.org/ofono
> ³ https://puri.sm/posts/librem5-progress-report-8/
> ⁴ https://2017.ind.ie/ethical-design/
> 
> ___

Making a phone call with GNOME

2018-03-15 Thread Bob Ham
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.

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.

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.

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.

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.

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.

Thanks,

Bob


⁰
https://mail.gnome.org/archives/desktop-devel-list/2017-August/thread.html#00112
https://mail.gnome.org/archives/desktop-devel-list/2017-September/thread.html#00047
¹ http://www.freesmartphone.org/
² https://01.org/ofono
³ https://puri.sm/posts/librem5-progress-report-8/
⁴ https://2017.ind.ie/ethical-design/



signature.asc
Description: OpenPGP digital signature
___
desktop-devel-list mailing list
desktop-devel-list@gnome.org
https://mail.gnome.org/mailman/listinfo/desktop-devel-list