Sends a slack notification when you miss a call on your IP phone. Pretty cool, huh?
- TypeScript 61.1%
- Shell 38.9%
| src | ||
| .gitignore | ||
| install.sh | ||
| package-lock.json | ||
| package.json | ||
| phone-webhook.service | ||
| README.md | ||
| tsconfig.json | ||
Phone webhook notifications
Sends a slack notification when you miss a call on your IP phone. Pretty cool, huh?
Phone setup (Yealink T33G)
In the phone's web UI go to Features → Action URL and set Call Missed to:
http://<server-ip>:3000/webhook?event=CallMissed&caller=%CALLERID%&callerName=%CALLEENAME%&callee=%CALLEE%
Development
cp .env.example .env # fill in SLACK_WEBHOOK_URL
npm run dev # ts-node, no build needed
Production (systemd)
Prerequisites
- Debian/Ubuntu Linux server
- Volta — install it on the server first if not already present:
curl https://get.volta.sh | bash
Install
Copy the project to the server and run the install script as root:
git clone <repo-url> /tmp/phone-webhook
cd /tmp/phone-webhook
sudo bash install.sh
The script will:
- Install the Node version pinned in
package.jsonvia Volta - Create a dedicated
phone-webhooksystem user - Deploy the app to
/opt/phone-webhook - Create
/etc/phone-webhook/.env(edit this before starting — see below) - Enable and start the
phone-webhooksystemd service
Configure secrets
sudo nano /etc/phone-webhook/.env
SLACK_WEBHOOK_URL=https://hooks.slack.com/services/T.../B.../...
PORT=3000
sudo systemctl restart phone-webhook
Useful commands
sudo systemctl status phone-webhook
sudo journalctl -u phone-webhook -f # live logs
sudo systemctl restart phone-webhook
Updating
cd /tmp/phone-webhook
git pull
sudo bash install.sh # re-runs safely; skips existing env file