Skip to content

PHASE2_07 — Operations Manual

PyroRadius Enterprise Documentation | Phase 2 Last Updated: 2026-07-13 Audience: ISP Operations Staff (non-technical day-to-day operators)


SECTION 1: Daily Operations

Morning Checklist

Run through these checks at the start of every working day:

Check Where to look What to do if not green
All services healthy Health page → Status tiles Contact tech team
Queue workers running Health → Queue Workers Contact tech team to restart
Any RADIUS alerts Health → RADIUS Contact tech team
Overnight expired customers Customers → filter Status: Expired Process renewals or send reminders
Failed WhatsApp messages WhatsApp → Logs → filter Status: Failed Check session, resend if needed

Recharging a Customer

This is the most common daily task.

  1. Go to Customers in the left menu
  2. Search for the customer by name, username, or mobile number
  3. Click the customer row to open their profile
  4. Click the Recharge tab
  5. Fill in:
  6. Amount — the payment received (in PKR)
  7. Payment Method — cash, bank transfer, JazzCash, etc.
  8. Notes — optional (e.g., "paid via JazzCash ref 12345")
  9. Click Recharge

What happens automatically: - Invoice is generated for the current billing period - Payment is recorded against the invoice - Expiry date is extended based on the package duration - Customer's PPPoE access is restored in RADIUS (within seconds) - WhatsApp notification is sent to the customer automatically

You do not need to do anything else. If the recharge button is greyed out, check that the customer has a package assigned and a valid PPPoE username.


Creating a New Customer

  1. Go to Customers → Add New Customer
  2. Fill in the required fields:
Field Required Notes
Full Name Yes Customer's legal name
Mobile Yes 03XX format — used for WhatsApp
PPPoE Username Yes Must be unique across the system
PPPoE Password No Leave blank to auto-generate
Package Yes Select from assigned packages
Dealer Yes Which dealer this customer belongs to
Area Yes Geographic area
NAS Yes Which router this customer connects through
Static IP Only for Static Fill IP, Gateway, Subnet Mask
Connection Type Yes PPPoE, Static IP, or CIR Corporate
  1. For CIR Corporate customers (dedicated bandwidth contracts):
  2. Set Connection Type to CIR
  3. Fill Committed Bandwidth and Burst Bandwidth
  4. Add SLA notes in the Notes field

  5. Click Save

The customer is immediately created in the RADIUS system. They can connect via PPPoE as soon as their router is configured with the username and password.


Disconnecting a Customer (for non-payment or violation)

Method 1 — Soft suspension (prevents reconnect) 1. Open customer profile → click Edit 2. Change Status to Suspended or Disabled 3. Click Save 4. RADIUS will reject the next PPPoE authentication attempt

The customer's current active session continues until it drops naturally. They cannot reconnect after that.

Method 2 — Immediate disconnect (kicks live session) 1. Open customer profile 2. Click the Kick Session button (in the Actions section) 3. Confirm the action

This sends a CoA Disconnect packet to the router. The customer is disconnected within seconds. This requires the NAS (router) to be reachable and to support RADIUS CoA.

To restore access: Edit the customer → Status: Active → Save. The customer can then reconnect.


Monthly Billing Cycle

  1. Generate invoices — Go to Billing → Batch Billing and run GenerateMonthlyInvoices, or wait for the scheduled run (check Health → Cron Jobs for the schedule)
  2. Review generated invoices — Billing → Invoices → filter by current month
  3. Send payment reminders — use WhatsApp Bulk Send or let automated templates run
  4. Track collections — Reports → Collections → set date range to current month
  5. Follow up on defaulters — Reports → Defaulters → shows all customers past expiry

SECTION 2: Managing Dealers

Adding a New Dealer

  1. Go to Users → Add User
  2. Set Role to Dealer
  3. Fill name, email, mobile, password
  4. Save

The dealer can now log in. They will see only their own customers.

Assigning Packages to a Dealer

  1. Go to Users → {Dealer Name}
  2. Click the Packages tab
  3. Click Assign Package → select package → optionally set a custom rate (what the dealer pays vs. the standard price)
  4. Save

Dealers can only create customers on packages assigned to them.

Viewing the System as a Dealer (for troubleshooting)

  1. From any page in the app, go to the Dashboard
  2. Find the View As dropdown (top right or sidebar)
  3. Select the dealer's name
  4. The system now shows exactly what that dealer sees

To return to your admin view, select Exit View As from the same dropdown.

Checking a Dealer's Account Balance

  1. Go to Users → {Dealer Name}
  2. Click the Ledger tab
  3. The ledger shows all credits (collections from customers) and debits (payments to PyroNet)
  4. Running balance at the bottom shows what the dealer currently owes

SECTION 3: Network Management

Adding a New NAS (Router)

A NAS (Network Access Server) is a router — typically MikroTik — that handles PPPoE sessions for customers.

  1. Go to Network → NAS → Add NAS
  2. Fill in:
Field Value
IP Address (nasname) The router's IP as seen from the RADIUS server
Short Name Friendly label (e.g., "Site-A-MK01")
Type mikrotik, cisco, juniper, or other
SNMP Community Used for traffic polling (usually "public" or custom)
API Username MikroTik API user (for live traffic and session kick)
API Password MikroTik API password
API Port Default 8728 (or 8729 for SSL)
  1. On the MikroTik router (done by tech team):
  2. Allow API access from the PyroRadius server IP
  3. Configure /radius incoming to allow CoA packets from the server

  4. On the FreeRADIUS server (done by tech team):

  5. Add the NAS IP to clients.conf with the correct shared secret

Once added, the NAS appears in the NAS dropdown when creating or editing customers.


Monitoring Fiber Signal (OLT/ONT)

OLTs are the fiber head-end devices. Each OLT manages many ONT (fiber modem) ports.

  1. Go to Network → OLT → select an OLT
  2. The ONT list shows all connected fiber modems with their signal strength (Rx Power in dBm)
Signal Level Range Action
Good (green) Above -27 dBm No action needed
Marginal (yellow) -27 to -30 dBm Monitor — check fiber connector cleanliness
Bad (red) Below -30 dBm Investigate — customer likely has fiber issues

If a customer reports slow speeds or drops, check their ONT signal here first before dispatching a technician.


Managing WhatsApp Sessions

PyroRadius sends WhatsApp messages through linked phone accounts. Each session corresponds to a phone.

  1. Go to WhatsApp → Sessions
  2. Each session shows status: Connected or Disconnected

If a session is disconnected: 1. Click Reconnect next to the session 2. A QR code appears on screen 3. Open WhatsApp on the linked phone → Settings → Linked Devices → Link a Device 4. Scan the QR code 5. Session status changes to Connected within 30 seconds

One session can handle several hundred messages per day. If message volume is high, consider linking a second session.


SECTION 4: Importing Customers (Bulk)

Use this when migrating from another system or onboarding a large batch of customers.

  1. Go to Customers → Import
  2. Click Download Template — this gives you an Excel file with the correct column headers
  3. Fill in the template:
Column Required Format
full_name Yes Text
mobile Yes 03XXXXXXXXX
pppoe_username Yes Unique — will fail if duplicate
pppoe_password No Leave blank to auto-generate
package Yes Must match exact package name in system
dealer Yes Must match dealer's username or ID
area Yes Must match area name in system
expiry_date No YYYY-MM-DD format
status No active, suspended, expired
  1. Upload the filled file: Import → Customer Import → Upload
  2. The system processes each row and shows:
  3. Success — customer created
  4. Skipped — duplicate PPPoE username
  5. Error — invalid data (shows which column failed)

  6. Download the error report and fix the failed rows

  7. Re-upload only the failed rows (already-imported customers will be skipped automatically)

SECTION 5: Reports

Report Location What it shows
Defaulters Reports → Defaulters All customers whose expiry_date has passed
Collections Reports → Collections Payments collected — filter by date range and dealer
Package Summary Reports → Packages Number of active customers per package
Dealer Summary Reports → Dealer Summary Revenue collected per dealer for the period
Audit Log Reports → Audit Full history of every change — who did what and when

Exporting reports: Most reports have an Export to Excel button. Use this for sharing with management or for further analysis.


SECTION 6: Troubleshooting Common Issues


"Customer says internet is not working but their account shows active"

Work through this checklist in order:

  1. Check expiry date — Open customer profile. Is expiry_date in the future? If expired, recharge the customer.

  2. Check status — Is status active? If suspended or disabled, change to active and save.

  3. Check RADIUS sync — Click the Sync RADIUS button on the customer profile (if available) or ask tech team to verify RADIUS entries.

  4. Check the NAS — Is the customer's assigned NAS (router) reachable? Go to Network → NAS and check the status of their NAS.

  5. Try kicking and reconnecting — Click Kick Session on the customer profile, then ask the customer to reconnect their router.

  6. Escalate to tech team — If the above steps don't resolve it, provide tech team with the customer's PPPoE username.


"WhatsApp messages are not being sent"

  1. Go to Health → check WhatsApp session status
  2. If any session shows Disconnected:
  3. Go to WhatsApp → Sessions
  4. Click Reconnect → scan QR code on the linked phone
  5. If session shows Connected but messages are still failing:
  6. Check WhatsApp → Logs — look at the error message for recent failed logs
  7. Contact tech team with a sample of the failed log entries

"Dashboard shows 0 online customers"

This means the system cannot read current session data from the routers.

  1. Go to Health → check if Queue Workers are running
  2. Check if MikroTik API is reachable: Network → NAS → check if any NAS shows "Unreachable"
  3. Contact tech team — they will check Redis and the RouterOS API connection

This does not affect billing or internet service. Customers are still online; the counter just cannot display the count.


"A customer was recharged but their internet is still not working"

  1. Check the Audit Log for the customer — confirm the recharge was actually recorded (event: customer.recharged)
  2. Check the recharge details — is the expiry date now in the future?
  3. Ask tech team to check RADIUS: is Cleartext-Password present in radcheck for this username? Is there an Auth-Type=Reject entry that should have been removed?
  4. Try Kick Session to force a fresh authentication

"Invoice was generated for the wrong amount"

  1. Do not delete the invoice — contact tech team
  2. Note: PyroRadius can create a credit note or adjustment — this is handled manually by an admin
  3. Never manually edit payment amounts in the database

SECTION 7: Scheduled Operations Reference

These tasks run automatically. You can view their last-run status and schedule from Health → Cron Jobs.

Task Schedule What it does
CheckExpiry Daily (midnight) Marks customers past expiry_date as expired; adds Auth-Type=Reject to RADIUS
GenerateMonthlyInvoices Configured per deployment Auto-creates invoices for the new billing period
SyncOntAssignments Every 1 minute Reads ONT data from OLTs and updates fiber signal readings
PollTraffic Every 5 minutes Queries MikroTik API for bandwidth usage; updates traffic graphs
PruneAuditLogs Weekly Removes audit log entries older than 30 days to manage database size
BackupRun Daily Creates database backup and stores it securely

If a cron job shows "missed" or "failed": Contact the tech team. Do not attempt to run these manually unless specifically instructed.

If CheckExpiry did not run: Customers who should have expired remain active. This is not an emergency but should be fixed within the day. Tech team can run it manually: php artisan expiry:check.


Quick Reference Card

Task Path
Recharge customer Customers → {Customer} → Recharge tab
Add customer Customers → Add New Customer
Suspend customer Customers → {Customer} → Edit → Status: Suspended
Kick session Customers → {Customer} → Kick Session button
Add dealer Users → Add User → Role: Dealer
Assign package to dealer Users → {Dealer} → Packages tab
View as dealer Dashboard → View As dropdown
Add NAS Network → NAS → Add NAS
Check fiber signal Network → OLT →
Reconnect WhatsApp WhatsApp → Sessions → Reconnect
Defaulters list Reports → Defaulters
Collections report Reports → Collections
System health Health (top nav)
Audit log Reports → Audit