Skip to content

Cloud Operations Runbook

SSH Access

ssh root@89.116.31.109

Check NUC / Tata Gateway Status

Endpoint Status

asterisk -rx "pjsip show endpoint tata_gateway"

AOR and Contact

asterisk -rx "pjsip show aor tata_gateway"

Endpoint Shows Unavailable

The tata_gateway endpoint will always show "Unavailable" because Tata does not respond to OPTIONS. This is expected. Verify trunk health with a test call.

WireGuard Tunnel

wg show wg0
ping -c 3 10.10.10.2   # Ping NUC end of tunnel

DID Routing

View Current Routes

asterisk -rx "dialplan show tata-did-route"

Current DID Routing Table

DID Target Context Target Extension
+918065978000 acme_inbound s (queue:support)
+918065978001 org_mna9x47k_inbound 1001 (Hari Surya)
+918065978002 tech_inbound s (queue:tech_support)
+918065978003 org_mna9x47k_inbound 0986 (Manivel)

For adding new DIDs, see DID Management.

Reload Commands

# Reload PJSIP (endpoints, transports, AORs)
asterisk -rx "module reload res_pjsip.so"

# Reload dialplan only
asterisk -rx "dialplan reload"

# Full restart (drops all active calls)
asterisk -rx "core restart now"

Warning

core restart now drops all active calls. Use module and dialplan reloads whenever possible.

API Endpoints

Method Endpoint Description
GET /api/v1/organizations List all organizations
POST /api/v1/organizations Create a new organization
POST /api/v1/organizations/:id/regenerate Regenerate org config files
GET /api/v1/trunks List all trunks
POST /api/v1/trunks Create a new trunk
GET /api/v1/dids List all DIDs
POST /api/v1/dids Create a new DID
POST /api/v1/config/deploy Deploy generated configuration
POST /api/v1/config/reload Reload Asterisk configuration

Base URL: https://devpbx.astradial.com

Swagger documentation: https://devpbx.astradial.com/docs

Organization Reference

Name Context Prefix UUID Type
Acme Corp acme_ (see database) Test
TechStart tech_ (see database) Test
AstraPrivate org_mna9x47k_ (see database) Production

To look up UUIDs:

curl -s https://devpbx.astradial.com/api/v1/organizations | jq '.[] | {name, id, prefix}'

Or via database:

USE pbx_api_db;
SELECT id, name, context_prefix, type FROM organizations;

Restart Services

# Asterisk PBX
systemctl restart asterisk

# AstraPBX API (Node.js)
systemctl restart astrapbx

# Nginx reverse proxy
systemctl restart nginx

# MariaDB
systemctl restart mariadb

# WireGuard tunnel
systemctl restart wg-quick@wg0

# Netdata monitoring
systemctl restart netdata

Log Locations

Service Log Location
Asterisk /var/log/asterisk/messages, /var/log/asterisk/full
AstraPBX API journalctl -u astrapbx
Nginx /var/log/nginx/access.log, /var/log/nginx/error.log
MariaDB /var/log/mysql/error.log
WireGuard journalctl -u wg-quick@wg0
System journalctl -xe

Tailing Logs

# Asterisk messages (most useful for SIP debugging)
tail -f /var/log/asterisk/messages

# Asterisk full log (verbose, all output)
tail -f /var/log/asterisk/full

# AstraPBX API
journalctl -u astrapbx -f

# Nginx errors
tail -f /var/log/nginx/error.log