Dear viewer, these subtitles were generated by a machine via the service YouTube and therefore are (very) buggy. If you are capable, please help us to create good quality subtitles: https://c3subtitles.de/talk/2595 Thanks!
[Music]
okay welcome to my talk this is about
messenger um two P2P um phone calls and
there's story behind it I want to tell
and of course what it is and what's is
about uh why I um took it on me to to
learn Android and stuff um so let's
let's go bit information about myself my
Moritz um warning um funny name it's
it's uh it's not a qu it's it's really
my name um I'm from Berlin I'm a
software programmer as I guess a lot of
people here and I feel associated with
this Fon Community it's a Grassroots
mesh routing uh community in in Germany
um you have hundreds of those in Germany
and I would describe myself as a mesh
routing
Enthusiast okay let's go in it uh what
is it about what is it so you might have
heard um already that it's some kind of
Android app it's now written in cotlin
and it's all about um audio video call
um that doesn't sound very special at
this point because um of course you have
WhatsApp you have Facebook Messenger you
have all other things but this simple
app really it's it's kind of stupid um
is all about just calling an IP address
so it doesn't use any servers any mesh
no Discovery as which is important for
FR for mesh routing networks where you
block all um almost all broadcasts and
can't really do discovery and of course
it's it's a GPL it's it's a free open
source
software and um now for a bit of
background why it came to be um it's
basically case for for for for no
internet so this fun in Germany it's
most people see it oh there's a Fone cot
spot I can connect I have internet uh
and if I don't have internet then it's
broken uh which is a bit of sad bit sad
because fun is mostly about uh having a
decentralized infrastructure where and
in these networks the internet gateway
that is provided usually by the
community is all about I mean it's just
a very popular service but it's not
really what fun is about um H but the
problem is also that since everybody
knows okay you can get internet over
that you don't need the password to to
log in these fun networks these mesh
networks um yeah that's all what you
know about and um there's not really a
use case for for mesh networks without
um internet access because there there's
a lack of of apps L lots of lack of uh
applications how to find content stuff
like that and I thought okay maybe we
need some kind of demo app for for frun
that is not only for frun but all kinds
of other things and I looked around um
if there is something like that but
actually I wouldn't I couldn't find
anything I I on Google Play uh AF Droid
um no not really um I couldn't find
anything and um of course um it's really
important that I we have something that
is not really specific to a certain
Network so this app since it's only
calling IP addresses directly otherwise
doesn't work um it's well it works at
home in your own network but you don't
even need uh internet
um you don't you can use it at at home
at at your company in offgrade
situations in general disaster areas I
mean maybe you can put up some frr
grouters have some Wi-Fi Cloud um and
then you can use it to to call people so
bit more background I mean this all
started 2018 um I mean um of course
there will be some some demo um soon but
let's go bit down and back in history um
I had no idea of uh Android develop
Android development in general I knew
bit Java from University that's not very
good and um so but I had this idea okay
I really would like to have some app
like that to exist but I can't program
it um so um there was a Google summer of
code um where fun was participating in
and I submitted it as an idea and we
found a student and he implemented that
um with web RTC and over the time I mean
there were ups and downs and um in the
meantime I was able to learn Android
programming myself um I don't know um
was interesting experience um
mixed um and um now as the software is
mostly complete I would say um a bit
about how it works it's basically you
scan a QR code um so you have to meet
the person you want to to call and um in
that R code like you see it maybe here
in the app um it's just contention J
adjacent formatted block with some name
fields so it's some nickname some public
key and then some area of IP addresses
usually it's just one
um and this Al also have a lot of exra
features you see like a a bit how it
looks like you have a contact list uh
call history on the on the right side um
of the tab there and uh okay I've also
opened here the the context menu so you
can delay rename ping thatp address and
then the Red Dot will turn maybe green
because you can reach that and then you
can make the call um and of course
um okay you can um yeah you have all
kinds of features uh bit also a bit
weird features like you can Auto accept
calls so um if you want to use it as an
intercom system and in your house and
want to I don't know uh call the kitchen
or
something so I think it's really
important that you can use this software
for all kinds of different uh
applications not just
fun okay it's about calling um it calls
an IP address so that is look basically
how it looks like on the right side you
see okay this is also the D back menu uh
that you see there where you can see
what codec is currently used um bit rate
audio rate uh resolution
um but usually you don't see that this
is what you toggle by press by tapping
on this I icon on the on the left side
on the top in the corner and um you can
of course not only speak but also use
video so that's quite nice um and um
it's pretty
basic um yeah and lots of other features
I won't go through this um you can set a
specific framework a frame rate um you
can disable the proximity uh sensor you
can use it with Bluetooth headset at
least I hope it works for most cases I
haven't really tested it a lot um then
of this is when you use uh expert um
settings so this is like everything but
by default it's really a small list so
people I mean this is meant to be a
Simple app and I don't want we we don't
want to scare people um but this is the
full list of all the options so it's a
long list
all right uh this is a bit for for
experts I mean this QR code usually you
have the default IP add the IP address
of your Wi-Fi adapter um in there when
you when you started the first time but
you can configure it and put other stuff
in there like other IP addresses on your
on your system you can addit them
manually maybe even a host name um but
this is more some expert
thing yeah the current state of the
project um I said it's started in 2018
has been written Rewritten in a um
followup uh drama um Google summer of
code um to cotlin uh which I like bit
more than Java more cleaned up and well
it has a lot of releases lots of commits
um so basically I would say the the app
app is done um I
mean you okay i' I've told you the name
is Messenger um but I have to admit um
it doesn't really mesh itself it's just
calling an IP address and it's also not
sending messages maybe in the future but
I don't really have like right now the
resources to to implement that if
anybody wants to Fork it and do that or
just commit a merch request you're
really welcome um but for now it's it's
good this is a bit of a GitHub code
graph where you see
2018 let's see yeah uh where it was
initially done and
then like in sports and I mean there
were lots of gaps where I said Okay I
want to work on on different stuff and
um then in the end you see one big spike
where got converted to cotlin and I did
a lot of stuff on the right side um so
I'm mostly the only person working on it
there were few merch requests from other
people fixing stuff so that's that's
always awesome and warms my heart um
yeah this is the GitHub homepage um not
that much to see here more
screenshots um of the app itself um yeah
for the future I already told T you I
see it mostly As done and I don't think
I want to go into iOS development uh I
have other stuff to do with my life um
maybe someone wants to use flutter or
something well or just for a whole app
um I don't care it's open source uh it's
meant to be
something to support
communities and um yeah hopefully we get
more translations I think we have
Chinese uh Russian
translations um Ukrainian even well I
have to look I don't know it and there
might be even some some n pointer
exceptions some some bugs but uh this is
still something I'm hunting but it's
more or less stable and yeah where to
get it um yeah afid
primary um on Google Play you can also
find it um but I would prefer fdroid um
yeah there's also down there the
website um for the use of the app I mean
it is always interesting to know how
many people are using that app I mean it
has been around since 2018 okay most
features and bugs were fixed lately um
for afid I don't know um they don't know
which I think it's a good idea but at
least I could since it's on a Google
Play Store I can show you that data this
data um so Google Play Tracks tracks a
lot and you see um by now it's somewhat
over 500 installations I think if I'm
not blind yeah so that's
interesting so if so that's this graph
that um you can look at if you look at
if you log into the um developer console
when you are signed up for Google Play
as a developer for your app and also
have some GitHub statistics uh which
shows that yeah I guess there are some
40 people or unique appear addresses not
people um per day uh accessing the
GitHub project and that's basically it I
can also have uh now show you maybe a
bit of a demo I mean I can really show
you like uh my phone screen it's bit too
small but um what I can tell you um
maybe you have just to believe me I have
install it here and on this phone and
this is just a small travel Wi-Fi router
which could of course be part of a mesh
Network and then I can just okay I've
already did the scanning with a QR code
and then I press it and it says
connection failed
because I'm not in that same Von so I
need to switch okay let's
see ah wrong menu let's do that
quickly okay doesn't show my travel
router it's oh yeah I'm I moved it and
that's um triggered it to restart
because the connector is is kind of bad
okay but maybe in that meantime I can
tell you something like um this app only
works of course on local networks it's
calls an IP address there's no stun turn
servers I mean it's based on web RTC um
but it calls on an IP address so when
you have some net uh going on then it
doesn't work I tried it on the internet
via well two routers with a public IP
address no firewall okay then then it
works also IP addresses of course course
change so this is kind of a problem but
this the thing is with frun networks you
usually get the same IPv6 address for
link local at least because there's your
Mac address of the Wi-Fi adapter inside
so that stays uh pretty
consistent and um
yeah and for those scenarios it's it's
quite quite nice it works but of course
you can just edit this QR code this
address management and that then add
maybe add some host name or something so
that should also work so let's see maybe
if I can make a call if it's now I hope
the router has booted up
again
H it's oh yeah I need to connect to the
Wi-Fi uh let's check if that phone is
also in the same W
Wi-Fi yeah please connect obtaining a IP
address so that is look good looking
good this one is
connected and this is also connected so
well let's give it a
call that didn't work of
course yeah that's the so-called for
effect
okay so now it works okay and then I can
oh no that was declining that is not
what I wanted to do okay accept here and
then I
can use the phone camera from one phone
and then D stay on the other one I can
well then enable switch of cameras use
the camera from both sides and um yeah
that's it so thank you very much for
listening if you have questions uh feel
free to ask and then um oh yeah I'll be
one question but maybe let we let uh
this disco train pass
by because otherwise nobody will will
[Music]
hear
okay they got the notice thank you
thanks uh couple of questions one is um
how bandwidth low bandwidth friendly is
the voice codec well it uses web Arc uh
which is uh rather band friendly um I
had some numbers for the video it well
it really depends on on the resolution
um there's some default automatic
settings so the resolution will readjust
to how much bandwidth is available um
but I would expect it to for for for AIO
um to be at a few kilobyte slightly over
10 kiloby byte maybe thanks and second
question is you mentioned file transfers
so I suppose in that is also like
sending an image and probably more
importantly is a a voicemail how hard do
you think those features would be to
implement even if they're not on your
to-do list
okay so I understood your question is
about file transfer
voicemail okay yeah well these are all
features that can be implemented um but
well no resources right now no time but
of course it shouldn't be that hard I
mean uh over web ticc you can use
specific channels to transfer files it's
mostly in UI thing I think so the most
work to do is is to add the the icons
the menus and uh the transer of the
files is not even that much of a big of
a problem but it has to be implemented
of
course more
questions over there please hello uh
great app first um regarding the
autoacceptance can you do this like only
uh activate this for all callers or can
you also differentiate either all
callers or only certain callers um I
implemented it as a general feature so
uh I have I know somebody who has a 3D
printer in the in the basement I thought
okay maybe uh he can just put his old
phone next to it and then then call that
phone of the of the Wi-Fi and he doesn't
have to go down and then he can check on
his uh his old 3D printer um but well to
answer your question more directly um
it's just for for everybody um but of
course it could be made made a per
contact setting but that's not how I did
it right now okay than but is no problem
to do that to implement
that so you said it only works on local
networks but can I use something like
wire guard or zero Tire to connect two
phones via some other tunnels or or uh
yeah sure I mean you can um use some
some tunnel uh on your phone then you go
to this address management and then say
yeah my QR code should also contain this
uh the address of this tunnel local
tunnels on Tunnel on your phone and then
you need to well scan again to to add
that IP address and yeah uh if there's
an IP that if it's reachable then of
course it works so I can I can choose
under which IP I'm I want to be called
and there's only one address in the QR
code or is it all of my IPS or um by
default actually it's uh the mech
address as a special address basically
of your um of your Wi-Fi adapter that's
by default if you start the app um and
from that um local addresses are then
created by default and also the phone
then looks uh what kind of prefixes you
have IPv6 prefix and then it puts there
the mech address of of the person you
want to contact and hopefully it will
get through but for folks this works
well but there are lot of configuration
op
options okay thank you all right thanks
for the nice talk and I hope you all
found it
enlightening
oh