Skip to content

qienhuang/Caller_ID_on_screen

Repository files navigation

Caller ID On Screen

A Golang application for telephone caller ID display on screen. Implemented in Raspberry Pi, a low-cost and low-power single board computer.

This application was created for my customer support team to response quickly and efficiently for incoming service calls.

diagram

Components:

cidmon.go # The server App runs on Raspberry Pi, coding in Golang

Features:

  • Supports multiple phone lines
  • Mornitoring USB modem hot plug/unplug for phone line adding or removing
  • Matching phone number from accounting database, returns customer's address and last purchase date

server_running

Client # The client program runs on Windows PC, implemented on Visual C++ and C#/Winforms

Features:

  • No configure required, automatically register on server
  • Receives caller information and view call log

The caller ID popup program on Windows PC:

main_form

The expanded window to view call logs:

main_form_expanded

The call log page from the company web portal(Java/Spring/Tomcat):

call log page

Deployment:

On raspberry Pi/Debian:

#If you haven't the mysql installed:

sudo apt install mysql-server mysql-client

#Create database 'modem' and import tables

sudo mysql -uroot -p -e "create database modem"
sudo mysql -uroot -p  modem < mysql_import.sql

#To fix "Ping MySQL host error: Error 1698: Access denied for user 'root'@'localhost'"

sudo mysql -uroot -p < change_root_plugin.sql

#If your mysql root user password isn't blank, please update it from the line:

#sql.Open("mysql", "root:your_password@tcp(localhost:3306)/modem?charset=utf8")

nano cidmon.go

#Build

go get github.com/go-sql-driver/mysql
go get github.com/mattn/go-sqlite3
go get github.com/tarm/serial
go build

#run

sudo ./cidmon

#Or if you like to use the pre-built app

cd /home/pi/Downloads
wget https://github.com/qienhuang/Caller_ID_on_screen/raw/master/bin/cidmon
wget https://github.com/qienhuang/Caller_ID_on_screen/raw/master/cidmon.service

#Run App as a service:

sudo mkdir -p /usr/local/cidmon && cp cidmon /usr/local/cidmon
sudo cp cidmon.service /etc/systemd/system
sudo systemctl enable cidmon.service
sudo systemctl start cidmon.service

On Windows stations:

Download the pre-built client from here, then create a shortcut for cider.exe and add it to startup folder.

Plan for improvement:

  • MQTT with TLS secured messaging

Others:

  • archived/cidmon.c -The previous version of server app that written in c. Implemented serial port communication, multi-threads, tcp/udp socket, MySQL database Read/Write...
  • archived/cidmon.py -The previous version of server app that written in Python.
  • img/diagram.ai -The vector source file of diagram drawing(isometric view)

About

A Golang application for telephone caller ID display on screen. Implemented in Raspberry Pi, a low-cost and low-power single board computer.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors