/* BEGIN BLOG-CLOSE-CHAT */ /* END BLOG-CLOSE-CHAT */

ICTCore PBX Database Configuration

ICTCore manages the PBX configuration stored in PostgreSQL. All PBX objects (extensions, ring groups, IVR, etc.) are written directly to the ICTCore PBX PostgreSQL database.

PostgreSQL Credentials

Stored in the [fusionpbx] section of /usr/ictcore/etc/ictcore.conf:

[fusionpbx]
host = 127.0.0.1
port = 5432
name = fusionpbx
user = fusionpbx
pass = "<generated at install>"
Always use -h 127.0.0.1 when connecting via psql. The pg_hba.conf requires TCP with MD5 auth. Peer/socket auth isn’t configured.

Connecting to PostgreSQL

PGPASSWORD="" psql -h 127.0.0.1 -U fusionpbx -d fusionpbx

Key Tables

Table Content
v_extensions SIP extensions
v_devices Registered devices
v_ring_groups Ring group definitions
v_call_center_queues Call queues
v_call_center_tiers Queue agent assignments
v_ivr_menus + v_ivr_menu_options IVR definitions
v_voicemails Voicemail boxes
v_conference_centers Conference rooms
v_gateways SIP trunks
v_destinations Inbound DIDs
v_dialplans Dialplan rules
v_domains Tenant domains

Tenant Domain Mapping

Each ICTPBX tenant maps to a PBX domain via tenant.fpbx_domain_uuid. The ICTCore domain resolver handles this mapping automatically.

Reloading FreeSWITCH

When you save in the portal, ICTCore regenerates the FreeSWITCH XML and reloads it for you. Editing these tables with SQL doesn’t regenerate anything, so make changes through the portal or the API. To reload by hand, use the ESL password from the [freeswitch] section of ictcore.conf:

fs_cli -p "$ESL_PASS" -x reloadxml