'FusionPBX DID Management', 'description' => 'Manage DIDs for FusionPBX services', 'author' => 'Your Name', 'language' => 'english', 'version' => '1.0', 'fields' => [ 'Enabled' => [ 'FriendlyName' => 'Enabled', 'Type' => 'yesno', 'Description' => 'Enable or disable this addon', 'Default' => 'yes', ], ] ]; } /** * Activate addon module */ function fusionpbx_did_activate() { // Create database tables if they don't exist if (!Capsule::schema()->hasTable('mod_fusionpbx_dids')) { Capsule::schema()->create('mod_fusionpbx_dids', function ($table) { $table->increments('id'); $table->string('did_number', 20)->unique(); $table->string('province', 50); $table->string('city', 50); $table->enum('type', ['local', 'national', 'mobile', 'tollfree'])->default('local'); $table->enum('status', ['available', 'assigned', 'reserved'])->default('available'); $table->integer('service_id')->nullable(); $table->timestamps(); }); } if (!Capsule::schema()->hasTable('mod_fusionpbx_provinces')) { Capsule::schema()->create('mod_fusionpbx_provinces', function ($table) { $table->increments('id'); $table->string('name', 50)->unique(); $table->timestamps(); }); // Insert South African provinces $provinces = [ 'Eastern Cape', 'Free State', 'Gauteng', 'KwaZulu-Natal', 'Limpopo', 'Mpumalanga', 'North West', 'Northern Cape', 'Western Cape' ]; foreach ($provinces as $province) { Capsule::table('mod_fusionpbx_provinces')->insert(['name' => $province]); } } if (!Capsule::schema()->hasTable('mod_fusionpbx_cities')) { Capsule::schema()->create('mod_fusionpbx_cities', function ($table) { $table->increments('id'); $table->string('name', 50); $table->integer('province_id'); $table->timestamps(); }); } return [ 'status' => 'success', 'description' => 'FusionPBX DID Management addon activated successfully.' ]; } /** * Deactivate addon module */ function fusionpbx_did_deactivate() { // We don't want to drop tables on deactivation return [ 'status' => 'success', 'description' => 'FusionPBX DID Management addon deactivated successfully.' ]; } /** * Admin area output */ function fusionpbx_did_output($vars) { $modulelink = $vars['modulelink']; $action = isset($_REQUEST['action']) ? $_REQUEST['action'] : ''; $LANG = $vars['_lang']; // Include the DID management interface include_once(__DIR__ . '/admin/did_management.php'); } /** * Admin area sidebar output */ function fusionpbx_did_sidebar($vars) { $modulelink = $vars['modulelink']; $action = isset($_REQUEST['action']) ? $_REQUEST['action'] : ''; $LANG = $vars['_lang']; $sidebar = ''; return $sidebar; }