Senior citizen-friendly video telephony system with a Raspberry Pi

Push of a Button

© Lead Image © Darek Chramienko,

© Lead Image © Darek Chramienko,

Article from Issue 246/2021

A video telephony system with huge user benefits does not have to be complex. This project starts a phone call with just a single button press and switches channels automatically on a TV.

The coronavirus pandemic has the world in its grasp. With social distancing and family dispersion, many people are not able to see their grandchildren. Even a cellphone is too complicated for some senior citizens, and they may not want to have anything to do with PCs. One alternative could be an Internet-enabled baby monitor with a return channel, but it won't have video. Besides, grandma and grandpa don't want to be monitored, and you don't want the baby monitor to alert you every time your grandparents walk past the device.

With no simple video phone to be found thus far, the question is whether the Raspberry Pi comes to the rescue and whether it can be built without any advanced Raspberry Pi knowledge. In this article, I look at a video telephony solution based on the Jitsi [1] open source video conferencing solution that is useful for even the least computer savvy seniors (see the "Jitsi and WebRTC" box). One button turns everything on and just as easily turns everything off again. Ultimately, the Raspberry Pi needs to be able to do three things: switch the TV to HDMI, send email, and, of course, start the video call.

Jitsi and WebRTC

Today, many multimedia applications such as audio or video calls no longer require separate programs such as Skype. The free WebRTC [2] standard enables modern web browsers to send voice, video, and data directly from user to user – and without a central server instance. Jitsi is based on WebRTC and, as an open source solution, does not even require authentication. It is enough to open a Jitsi meeting on a website [3] and send an invitation to the conversation in the form of a URL over email or chat to the desired call partners. This straightforward approach makes Jitsi Meet an ideal candidate for a senior-friendly video chat solution.

Hardware and Preparations

The setup of the automated video conferencing system is based on a Raspberry Pi 3B+ with a case and a power supply, on which the latest version of the Raspberry Pi OS "Buster" is installed and Internet access is configured. To be able to control a TV by CEC (Consumer Electronics Control), you also need an HDMI cable that meets at least HDMI standard 1.3 (high speed). Also pay attention to the quality of the power supply. Because the webcam is powered by the Raspberry Pi over USB, the power supply needs to output 2.5A or more. Only testing can determine whether the power source will do, because even if the label on the adapter claims the right kind of performance, it might not necessarily achieve it in practice.

Ultimately, the shopping list includes a simple push button with two matching connecting cables that will later serve as an on/off switch. For the button, I drilled a hole into the case. If your expectations for the webcam are not too high, all of the components together will set you back something south of $100. The Raspberry Pi 3 would be overtaxed with very high resolutions, anyway, so a very simple webcam is absolutely fine (Figure 1). In the test, I worked with a no-name camera from my lab treasure trove. Although it has a microphone, it does not work as a USB audio device, so I needed an additional USB sound card with analog audio input. Alternatively, I tested a more modern webcam from Logitech.

Figure 1: The complete hardware (here with an older webcam and separate USB sound card).

After setting up and configuring the video chat solution, the Pi does not need any input devices. For the initial setup, however, connecting an external keyboard and mouse makes work easier. You should also enable SSH access with the raspi-config configuration tool. In this way you can connect to the system over the network and, for example, install updates, even when the keyboard has been removed from the Raspberry Pi.

On the software side, the Chromium browser and the important x11-xserver-utils component are usually already included by default in the current Raspberry Pi OS. However, if you are building the system on an older Raspbian version, you might still need to install the chromium-browser and x11-xserver-utils packages:

$ sudo apt update && sudo apt full-upgrade
$ sudo apt install chromium-browser x11-xserver-utils

The first line updates the system before you start the installation.

Dispatching Email

For the system to be able to send email on its own, you don't necessarily have to set up a complex mail server (or more precisely, MTA, Mail Transfer Agent) such as Sendmail or Postfix – that would be over the top. It is easier to integrate an existing email account with a web mailer (e.g., AOL Mail, Gmail,, Yahoo! Mail). The email client's task is handled by the msmtp [4] command-line program. You can import all the necessary components with:

$ sudo apt install rdate msmtp msmtp-mta mailutils

For the configuration you then have to create three text files. In the following example, I will be using the services of the German portal; however, you can use any other email provider that operates an SMTP server. The server addresses, ports, and access data are usually explained by the services in the depths of their documentation. To set up the email tool for your web mailer, open the text editor with

sudo nano /etc/msmtprc

copy the content from Listing 1, and paste it into this file.

Listing 1


# default values
auth on
tls on
tls_trust_file /etc/ssl/certs/ca-certificates.crt
account <john.doe>
port 587
from <john.doe>
user <john.doe>
password <SecretPassword>
account default: <john.doe>
aliases /etc/aliases

Of course, you do need to adjust the email address and password to match the service you use. Save the change by pressing Ctrl+O and Enter and return to the command line by pressing Ctrl+X. Remember this procedure: In the following instructions you will need to edit and save more text files in Nano. Note that the password (here, <SecretPassword>) is open and unencrypted in this file. To prevent every user on the system from gaining access to the credentials, use the

sudo chmod 600 /etc/msmtprc

command to change the file permissions.

In the next step, assign the sender, in this case the root user, the email account just configured as the sender. To do this, create the /etc/aliases file in Nano the same way as before and enter the customized contents:

root: <john.doe>
default: <john.doe>

Finally, to make sure that the system uses msmtp as the email program, the line

set sendmail="/usr/bin/msmtp -t"

in the /etc/mail.rc file defines it as the alternative to sendmail.

TV Remote Control

To avoid your grandparents having to fiddle with the remote control, you now want the system to turn on the TV and switch to the correct HDMI input automatically – and switch back to the normal cable TV tuner after hanging up. For this, the Raspberry Pi and TV communicate with each other by CEC on the HDMI cable. You can install the necessary software from the cec-utils package. Then scan for CEC-capable devices (Listing 2).

Listing 2

TV Remote Control by CEC

$ sudo apt install cec-utils
$ echo 'scan' | cec-client -s -d 1
opening a connection to the CEC adapter...
requesting CEC bus information ...
CEC bus information
device #0: TV
active source: no
vendor:        LG
osd string:    TV
CEC version:   1.3a
power status:  unknown
language:      eng

Typically, the TV advertises itself as device #0 and the Raspberry Pi as device #1. If only the Raspberry Pi appears in the list (vendor: "Pulse Eight"), CEC is probably not enabled on the TV.

Depending on the manufacturer, the name for the CEC technology differs: LG refers to it as SimpLink, Sony uses the term BRAVIA Sync, and Samsung says Anynet+. An overview of common manufacturer designations can be found on Wikipedia [5].

If it still doesn't work, you need to take a closer look at the HDMI cable. If it is not a high-speed cable, the communication channel to the TV is usually missing.

Buy this article as PDF

Express-Checkout as PDF
Price $2.95
(incl. VAT)

Buy Linux Magazine

Get it on Google Play

US / Canada

Get it on Google Play

UK / Australia

Related content

  • Pi OS 2020-12-02

    The Raspberry Pi Foundation regularly adds new features to the official operating system, Raspberry Pi OS. The December 2020 update added the PulseAudio sound server and a print manager.

  • Jitsi

    If you are looking for an alternative to commercial videoconferencing platforms, Jitsi offers an open source solution that lets you build and deploy online videoconferences.

  • A New Raspberry Pi Board

    The new board packs everything that you get in Raspberry Pi 3B+ in a smaller package.

  • Real-World Raspberry Pi

    The single-circuit-board Raspberry Pi computer, only as big as a credit card, makes it easy to gain experience with embedded Linux systems. We'll show you some hands-on examples of how to use the Raspberry Pi in an everyday environment.

  • New Raspberry Pi Adds Two USB Ports

    New B+ board lets you build cool things without the complication of a powered USB hub.

comments powered by Disqus
Subscribe to our Linux Newsletters
Find Linux and Open Source Jobs
Subscribe to our ADMIN Newsletters

Support Our Work

Linux Magazine content is made possible with support from readers like you. Please consider contributing when you’ve found an article to be beneficial.

Learn More