@extends('layouts.app') @section('content')
The GUI writes to the database. Asterisk reads live (realtime) from that database.
Inbound: Carrier ? PJSIP trunk ?? GUI-defined destination (e.g., from-internal,1000,1) Outbound: Phone 1000 ? <from-internal> ? Dial() via selected trunk
ps_endpoints, ps_aors, ps_auths, ps_contacts: PJSIP objects.extensions: dialplan rows (context, exten, priority, app, appdata).inbound_routes: GUI model that writes matching rows into extensions under trunks-in.ps_endpoints => odbc,asterisk ps_auths => odbc,asterisk ps_aors => odbc,asterisk ps_contacts => odbc,asterisk extensions => odbc,asterisk,extensions
[from-internal] switch => Realtime/from-internal@extensions [trunks-in] switch => Realtime/trunks-in@extensions
dialplan show <did>@trunks-in.SELECT * FROM extensions WHERE context='trunks-in' AND exten='<DID>';
asterisk -rx "core show switches" | grep -i Realtime
asterisk -rx "dialplan reload" then
asterisk -rx "dialplan show trunks-in"
asterisk -rvvvvv core set verbose 4 pjsip show endpoints pjsip show registrations dialplan show trunks-in dialplan show <DID>@trunks-in tail -f /var/log/asterisk/full
mysqldump asterisk > backup_$(date +%F).sql