env('FREEPBX_API_URL', 'http://127.0.0.1'), /** * Base URL for pbxCore.php (WebRTC / 99-prefix extension creation). * Always points to 127.0.0.1 regardless of whether the public site forces HTTPS. * Override with PBX_CORE_URL if your vhost listens on a different local port. */ 'core_url' => env('PBX_CORE_URL', 'http://127.0.0.1'), /** * API Request timeout in seconds */ 'timeout' => env('FREEPBX_API_TIMEOUT', 30), /** * Enable automatic credential rotation */ 'auto_rotate_credentials' => env('FREEPBX_AUTO_ROTATE', false), /** * Credential rotation interval in days */ 'rotation_interval_days' => env('FREEPBX_ROTATION_DAYS', 90), /** * Queue settings for extension operations */ 'queue' => [ 'connection' => env('FREEPBX_QUEUE_CONNECTION', 'redis'), 'queue_name' => env('FREEPBX_QUEUE_NAME', 'pbx'), ], /** * Retry settings for failed operations */ 'retry' => [ 'max_attempts' => env('FREEPBX_MAX_ATTEMPTS', 3), 'backoff_seconds' => env('FREEPBX_BACKOFF', 30), ], /** * Extension defaults - can be overridden per extension * Based on original pbxCore.php configuration */ 'extension_defaults' => [ 'tech' => 'pjsip', 'voicemail' => 'novm', 'recording_in_external' => 'force', 'recording_out_external' => 'force', 'recording_in_internal' => 'force', 'recording_out_internal' => 'force', 'context' => 'from-internal', 'dtmfmode' => 'rfc4733', 'callwaiting' => 'disabled', ], /** * WebRTC settings */ 'webrtc' => [ 'enabled' => env('FREEPBX_WEBRTC_ENABLED', false), 'auto_enable' => env('FREEPBX_WEBRTC_AUTO_ENABLE', false), ], /** * Asterisk Manager Interface (AMI) connection settings * Used for all direct AMI connections throughout the application. * NOTE: Always reference these via config('pbx.ami.*') — never env() directly, * as env() is not available when the config cache is active. */ 'ami' => [ 'host' => env('AMI_HOST', '127.0.0.1'), 'scheme' => env('AMI_SCHEME', 'tcp://'), 'port' => env('AMI_PORT', 5038), 'username' => env('AMI_USERNAME', 'theAMIManager'), 'secret' => env('AMI_SECRET', ''), 'connect_timeout' => env('AMI_CONNECT_TIMEOUT', 10), 'read_timeout' => env('AMI_READ_TIMEOUT', 60), 'rawman_url' => env('AMI_RAWMAN_URL', 'http://127.0.0.1:8088/rawman'), ], /** * Queue member mode for group/queue assignment. * 'static' - Members are stored in asterisk.queues_details (survives reloads, default). * 'dynamic' - Members are managed via Asterisk QPENALTY database (runtime only). */ 'queue_member_mode' => env('QUEUE_MEMBER_MODE', 'static'), /** * Logging settings */ 'logging' => [ 'enabled' => true, 'channel' => 'daily', 'level' => env('FREEPBX_LOG_LEVEL', 'info'), ], ];