At long last, my Pinephone has a GUI can receive phone calls! As it turns out,
I was wrong about there being no way of retrieving the phone number of the
calling party on RING: you just have to set AT+CLIP=1, and the +CLIP URC will
contain the phone number whenever the phone rings. Similarly, AT+COLP=1 lets
the phone be notified when the other end picks up if I start a
call. This means that we no longer have to issue AT+CLCC to get information
about all known calls anymore, simplifying
atd substantially. It also means
that the call handler interface that I described last week is gone, replaced
by a simpler one.
atd, we now have a
calld, responsible for managing calls and
their GUIs. When
calld is notified of an incoming call by
it launches the
answer program, which displays a dialog with the phone number
of the caller, along with two buttons to accept or decline the call. The return
answer is dependent upon whether call is accepted or declined,
calld uses this information to determine whether to launch the
which will be the interface for managing active calls. For now,
managing only one call at a time. Also it doesn't manage call audio yet, but I
plan to make it do so.
I also finally took the time to write a compositor based on
swc. It is pretty
simple at the moment, only 79 lines of code. The point, however, is just to have
something to build upon as I need more compositor features.
The video demonstration is back this week. I am called (normally the phone number
of the callee would be where it says "redacted"), and
calld is notified that
there is a call incoming by
atd, and launches the
answer dialog. I accept the call by
tapping the green button, which tells the
answer dialog to exit with code 0,
calld that I accepted the call.
calld then launches the
The green bar that you saw is where the audio input/output controls will eventually
go. I then end the call by tapping the red button.
calld is notified that the
call program exited by SIGCHLD, and updates its internal state, leaving it ready
to accept a new call. I am called again, and I decline the call.