📄 Whozz Bridge — Network Installation Guide

Whozz Calling Bridge - Installation Guide

Whozz Calling Bridge

Installation & Configuration Guide — Version 1.0

Contents

How It Works

Requirements

Architecture Diagram

Installation Steps

Configuration

Running the Bridge

Auto-Start on Boot

Verification

Troubleshooting

Multi-Workstation Deployment

1. How It Works

The Whozz Calling Bridge is a lightweight Python program that runs on a computer connected to the same network as your Whozz Calling device. It:

Listens to the Whozz Calling device over the network (TCP/IP)

Captures call data — phone number, caller name, which line, and call duration

Sends the data to your Whozz Calling web application so it appears in the dashboard, popup notifications, and call statistics

Key Point: The bridge must run on a computer that is always on and on the same local network as the Whozz Calling device. When the bridge is off, calls won't be logged. The web application itself runs in the cloud and is always available.

2. Requirements

RequirementDetails

Computer Any always-on PC, Mac, Linux machine, or Raspberry Pi on the same LAN as the Whozz Calling device

Python Python 3.7 or newer (python.org/downloads)

Network Same local network as the Whozz Calling device (the computer must be able to reach the device's IP)

API Key Your BRIDGE_API_KEY (provided by your system administrator)

Web App URL The URL of your Whozz Calling web app (e.g., https://callerid.link)

3. Architecture Diagram

Phone Lines ──┐ │ ┌──────┴──────┐ │ Whozz │ │ Calling │ │ Device │ │ (Ethernet) │ └──────┬───────┘ │ TCP port 3520 │ (local network) │ ┌──────┴──────┐ │ Bridge │ │ Computer │ ← Always-on machine │ (this │ running whozz_bridge.py │ script) │ └──────┬───────┘ │ HTTPS (internet) │ ┌──────┴──────┐ │ Web App │ ← Cloud-hosted │ (Replit) │ (always available) │ Dashboard, │ │ Popups, │ │ Stats │ └─────────────┘

4. Installation Steps

Step 1: Install Python

If you don't already have Python installed, download it from python.org/downloads.

Windows users: During installation, check the box that says "Add Python to PATH".

Verify the installation by opening a command prompt (or terminal) and typing:

python --version You should see something like Python 3.11.5 (any version 3.7+ is fine).

Step 2: Install the Requests Library

The bridge needs one additional Python library to communicate with the web app. Install it by running:

pip install requests On some systems you may need to use pip3 instead of pip.

Step 3: Download the Bridge Script

Download whozz_bridge.py and save it to a folder on the bridge computer. A good location is:

Windows: C:\CallerID\whozz_bridge.py

Mac/Linux: /opt/callerid/whozz_bridge.py

Step 4: Find Your Device IP Address

You need the IP address of your Whozz Calling device. You can find it using:

ELConfig utility (included with your Whozz Calling unit)

Your router's device list (look for a device named "Whozz" or similar)

The default IP is usually 192.168.1.250 and the default port is 3520.

Step 5: Configure the Bridge

You have two options for configuration:

Option A: Edit the Script (Simplest)

Open whozz_bridge.py in a text editor and find the CONFIG section near the top. Fill in your values:

CONFIG = { 'device_ip': '192.168.1.250', # Your device IP 'device_port': 3520, # Usually 3520 'api_url': 'https://callerid.link', 'api_key': 'your-api-key-here', }

Option B: Use Environment Variables

Set these environment variables on your system instead of editing the file:

VariableExample Value

WHOZZ_DEVICE_IP192.168.1.250Required

WHOZZ_DEVICE_PORT3520Optional

BRIDGE_API_URLhttps://callerid.linkRequired

BRIDGE_API_KEYyour-api-key-hereRequired

5. Configuration Reference

SettingDefaultDescription

device_ip192.168.1.250IP address of the Whozz Calling device on your LAN

device_port3520TCP port the device listens on

api_url(none)Full URL of your web app (no trailing slash)

api_key(none)API key that authenticates the bridge with the web app

reconnect_delay5Seconds to wait before reconnecting after a disconnect

log_filewhozz_bridge.logFile where activity logs are written

6. Running the Bridge

Open a command prompt (or terminal) and navigate to the folder containing the script:

# Windows cd C:\CallerID python whozz_bridge.py

# Mac/Linux cd /opt/callerid python3 whozz_bridge.py

You should see output like:

============================================================ CallerID.com Whozz Calling Bridge ============================================================

Device: 192.168.1.250:3520 API URL: https://callerid.link Log: whozz_bridge.log

Connecting to Whozz Calling device at 192.168.1.250:3520... Connected to device.

When a call comes in, you'll see:

2026-02-13 10:30:15 [INFO] [Line 01] Inbound S: JOHN SMITH (770-555-1234) dur=0s 2026-02-13 10:30:15 [INFO] -> Call created (id=42) 2026-02-13 10:30:45 [INFO] [Line 01] Inbound E: JOHN SMITH (770-555-1234) dur=30s 2026-02-13 10:30:45 [INFO] -> Duration updated: call 42 = 30s

Important: The bridge must stay running to capture calls. If you close the terminal window, the bridge stops. See the next section for how to set it up to run automatically.

7. Auto-Start on Boot

To keep the bridge running without manual intervention:

Windows: Task Scheduler

Open Task Scheduler (search for it in the Start menu)

Click Create Basic Task

Name it: Whozz Calling Bridge

Trigger: When the computer starts

Action: Start a program

Program: python (or full path like C:\Python311\python.exe)

Arguments: C:\CallerID\whozz_bridge.py

Start in: C:\CallerID

Check "Run whether user is logged on or not"

Click Finish

Mac/Linux: systemd Service

Create a service file at /etc/systemd/system/whozz-bridge.service:

[Unit] Description=Whozz Calling Bridge After=network.target

[Service] Type=simple User=callerid WorkingDirectory=/opt/callerid ExecStart=/usr/bin/python3 /opt/callerid/whozz_bridge.py Restart=always RestartSec=10 Environment=BRIDGE_API_URL=https://callerid.link Environment=BRIDGE_API_KEY=your-api-key-here Environment=WHOZZ_DEVICE_IP=192.168.1.250

[Install] WantedBy=multi-user.target

Then enable and start the service:

sudo systemctl enable whozz-bridge sudo systemctl start whozz-bridge sudo systemctl status whozz-bridge

Raspberry Pi

Use the same systemd approach as Linux above. A Raspberry Pi is an excellent low-power, always-on bridge computer.

8. Verification

Test 1: Bridge Connection

Start the bridge. You should see Connected to device. in the output. If not, check the device IP and that both machines are on the same network.

Test 2: Make a Test Call

Call one of your phone lines from a cell phone. You should see:

The bridge logs an Inbound S (Start) record

The call appears in the web app dashboard

When you hang up, the bridge logs an Inbound E (End) record with duration

The call statistics page shows the correct duration

Test 3: Check the Web App

Open your web app in a browser and go to the Logs tab. You should see the test call with caller name, phone number, and duration.

Success! If all three tests pass, your bridge is working correctly. Calls will be logged with full duration data in your dashboard and statistics.

9. Troubleshooting

ProblemCauseSolution

"Cannot connect to device" Wrong IP, device off, or network issue Verify the device IP with ELConfig. Ensure both machines are on the same network. Try ping 192.168.1.250

"Connection refused" Another program is connected to the device Only one TCP connection is allowed at a time. Close ELConfig or any other software connected to the device

"API error 401" Invalid API key Check that your BRIDGE_API_KEY matches the one configured in the web application

"API error 429" Too many requests (rate limit) Normal operation shouldn't trigger this. Check if the bridge is sending duplicate records

Calls appear but duration is 0 End records not being received Check that the device is sending both Start and End records. Some configurations only send Start

"Network error posting call" Internet connectivity issue Verify the bridge computer has internet access. Check the API URL for typos

Bridge disconnects frequently Network instability The bridge will auto-reconnect. Check network cables and Wi-Fi signal. Use a wired connection if possible

10. Multi-Workstation Deployment

Important: You only need one bridge computer per Whozz Calling device. The bridge captures all calls from the device and sends them to the web app. All workstations view calls through the web app — they do not need the bridge installed.

Setup Overview

MachineWhat to InstallAlways On?

Bridge computer (1 per device) Python + whozz_bridge.py Yes

All other workstations Nothing — just open the web app in a browser No

Deployment Steps

Choose one always-on computer on the same network as the Whozz Calling device

Install the bridge on that one computer following steps 1-5 above

Set up auto-start (Section 7) so it runs on boot

On all other workstations, simply open the web app URL in any browser

Every workstation will see the same call data in real time

That's it! One bridge captures all calls. Every workstation sees them through the web app. No additional software needed on workstations.

CallerID.com — Whozz Calling Bridge Installation Guide v1.0

Odoo Version Upgrade Compatibility

Important: Major Version Upgrade Notice (e.g., Odoo 18 → 19) This custom module was developed and tested for Odoo 18.0. Understanding how Odoo updates affect custom modules is critical for long-term maintenance.

Minor Updates (Within Odoo 18.x)

Routine patches and security updates within the same major version (e.g., 18.0.1 → 18.0.2) will not affect this module. Your custom module files are stored separately from Odoo's core code and are not modified or deleted by these updates. No action is required for minor updates.

Major Version Upgrades (e.g., Odoo 18 → 19)

When upgrading to a new major version, be aware of the following:

Aspect Impact Action Required

Module Files Your custom module files will not be deleted or overwritten None — files remain in your custom addons directory

Python API Changes Odoo may rename, deprecate, or remove Python methods and classes between major versions Review Odoo's migration guide and test all model methods, computed fields, and overrides

XML/QWeb Templates View inheritance targets (template IDs, XPath expressions) may change if Odoo restructures its base templates Verify all inherited views and templates render correctly in the new version

Database Schema Core Odoo table structures may change, affecting fields this module extends Test database migration in a staging environment before production upgrade

JavaScript/OWL Frontend framework changes (e.g., OWL component API updates) may break client-side customizations Test all UI components, wizards, and client actions in the new version

Dependencies Required base modules listed in __manifest__.py must still exist in the new version Verify all dependency modules are available and compatible

Recommended Upgrade Procedure

Never upgrade production directly. Always set up a staging/test environment first.

Back up everything — database, filestore, and all custom module directories.

Review Odoo's official migration documentation for the target version, noting any breaking changes to models or APIs used by this module.

Update the module's __manifest__.py version number to match the new Odoo version (e.g., change 18.0.1.0.0 to 19.0.1.0.0).

Test in staging — install the module, verify all features, check server logs for deprecation warnings or errors.

Fix any compatibility issues — update Python code, XML views, and JavaScript as needed.

Run full regression testing before deploying to production.

Key Takeaway: You control when major upgrades happen. Custom modules are safe during routine 18.x updates. For major version jumps, plan ahead with staging tests and allow time for any code adjustments.

© 2026 CallerID.com — All Rights Reserved

For technical support, contact Info@CallerID.com or call 770.263.7111