This example allows users to make calls over the internet. The project is basic, but you are free to evolute.
ESP32-ADF https://www.olimex.com/Products/IoT/ESP32/ESP32-ADF/open-source-hardware
Install requared packages:
sudo apt-get install git wget flex bison gperf python python-pip python-setuptools python-serial python-click python-cryptography python-future python-pyparsing python-pyelftools cmake ninja-build ccache libffi-dev libssl-dev
Download and install esp-adf:
cd ~/
git clone --recursive https://github.com/espressif/esp-adf.git
cd esp-adf
git submodule update --init
export ADF_PATH=$PWD
cd esp-idf
./install.sh
. ./export.sh
Prepare the audio board:
- Connect speakers or headphones to the board.
Load the example:
cd ~/
mkdir ~/espwork
cd ~/espwork
git clone --recursive https://github.com/OLIMEX/sip_phone_example.git
cd sip_phone_example
git submodule update --init
cp lvgl_component.mk components/lvgl/component.mk
make menuconfig
Configure the example:
- Select compatible audio board in
menuconfig
>Audio board select
. - Set up Wi-Fi connection by running
menuconfig
>VOIP App Configuration
and filling inWiFi SSID
andWiFi Password
. - Select compatible audio codec in
menuconfig
>VOIP App Configuration
>SIP Codec
. - Create the SIP extension, ex: 100 (see below)
- Set up SIP URI in
menuconfig
>VOIP App Configuration
>SIP_URI
.
Upload the example:
make flash monitor
Configure external application:
Setup the PBX Server like Yet Another Telephony Engine (FreePBX/FreeSwitch or any other PBXs) http://docs.yate.ro/wiki/Beginners_in_Yate
- Lightweight
- Support multiple transports for SIP (UDP, TCP, TLS)
- Support G711A/8000 & G711U/8000 Audio Codec
- Easy setting up by using URI
http://www.yate.ro/ https://www.tutorialspoint.com/session_initiation_protocol/index.htm https://tools.ietf.org/html/rfc3261