QB / ESX
Agency-Phone
Téléphone multi-framework moderne pour FiveM avec détection automatique de QBCore et ESX. Suite complète d'applications incluant Dialer, Buzz SMS, Snap Camera, Pulse Social Feed, Postbox Mail, Wallet avec AgencyPay, Galerie et Contacts.

01 Installation
Copier agency-phone dans le dossier resources
Ajouter ensure agency-phone dans server.cfg
Activer AutoApplySqlSchema dans config.lua ou importer agency-phone.sql manuellement
Configurer config.lua (détection automatique du framework)
Dépendances
oxmysql — requispma-voice — requis pour les appelsscreenshot-basic — optionnel (pour Snap)framework QBCore ou ESX
Fichier SQL
Importez ce fichier SQL dans votre base de données avant de démarrer la ressource :
-- Agency Phone SQL Schema
CREATE TABLE IF NOT EXISTS `agency_contacts` (
`id` INT(11) NOT NULL AUTO_INCREMENT,
`identifier` VARCHAR(60) NOT NULL,
`name` VARCHAR(100) NOT NULL,
`number` VARCHAR(20) NOT NULL,
`is_emergency` TINYINT(1) NOT NULL DEFAULT 0,
PRIMARY KEY (`id`),
KEY `identifier` (`identifier`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
CREATE TABLE IF NOT EXISTS `agency_messages` (
`id` INT(11) NOT NULL AUTO_INCREMENT,
`identifier` VARCHAR(60) NOT NULL,
`number` VARCHAR(20) NOT NULL,
`messages` LONGTEXT DEFAULT NULL,
PRIMARY KEY (`id`),
KEY `identifier` (`identifier`),
KEY `number` (`number`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
CREATE TABLE IF NOT EXISTS `agency_chirper` (
`id` INT(11) NOT NULL AUTO_INCREMENT,
`identifier` VARCHAR(60) DEFAULT NULL,
`firstname` VARCHAR(50) DEFAULT NULL,
`lastname` VARCHAR(50) DEFAULT NULL,
`message` TEXT DEFAULT NULL,
`post_id` VARCHAR(30) NOT NULL,
`created_at` DATETIME DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (`id`),
KEY `identifier` (`identifier`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
CREATE TABLE IF NOT EXISTS `agency_mail` (
`id` INT(11) NOT NULL AUTO_INCREMENT,
`identifier` VARCHAR(60) NOT NULL,
`recipient_email` VARCHAR(120) DEFAULT NULL,
`sender` VARCHAR(100) DEFAULT NULL,
`sender_email` VARCHAR(120) DEFAULT NULL,
`subject` VARCHAR(200) DEFAULT NULL,
`message` TEXT DEFAULT NULL,
`mail_id` INT(11) DEFAULT NULL,
`is_read` TINYINT(4) DEFAULT 0,
`button` TEXT DEFAULT NULL,
`created_at` DATETIME DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (`id`),
KEY `identifier` (`identifier`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
CREATE TABLE IF NOT EXISTS `agency_mail_accounts` (
`id` INT(11) NOT NULL AUTO_INCREMENT,
`identifier` VARCHAR(60) NOT NULL,
`local_part` VARCHAR(64) NOT NULL,
`email` VARCHAR(120) NOT NULL,
`label` VARCHAR(100) DEFAULT NULL,
`is_primary` TINYINT(4) DEFAULT 0,
`created_at` DATETIME DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (`id`),
UNIQUE KEY `email` (`email`),
KEY `identifier` (`identifier`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
CREATE TABLE IF NOT EXISTS `agency_gallery` (
`id` INT(11) NOT NULL AUTO_INCREMENT,
`identifier` VARCHAR(60) NOT NULL,
`device_kind` VARCHAR(20) NOT NULL DEFAULT 'phone',
`image_url` VARCHAR(512) NOT NULL,
`created_at` DATETIME DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (`id`),
KEY `identifier` (`identifier`),
KEY `identifier_device` (`identifier`,`device_kind`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
CREATE TABLE IF NOT EXISTS `agency_phone_dispatches` (
`id` INT(11) NOT NULL AUTO_INCREMENT,
`dispatch_id` INT(11) NOT NULL,
`type` VARCHAR(60) DEFAULT NULL,
`priority` VARCHAR(20) DEFAULT NULL,
`code` VARCHAR(20) DEFAULT NULL,
`label` VARCHAR(120) DEFAULT NULL,
`message` TEXT DEFAULT NULL,
`caller` VARCHAR(120) DEFAULT NULL,
`caller_phone` VARCHAR(40) DEFAULT NULL,
`location_x` FLOAT DEFAULT NULL,
`location_y` FLOAT DEFAULT NULL,
`location_z` FLOAT DEFAULT NULL,
`street` VARCHAR(160) DEFAULT NULL,
`status` VARCHAR(20) DEFAULT 'pending',
`timestamp` INT(11) DEFAULT NULL,
`created_at` DATETIME DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (`id`),
UNIQUE KEY `dispatch_id` (`dispatch_id`),
KEY `status` (`status`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
CREATE TABLE IF NOT EXISTS `agency_cloud_limits` (
`id` INT(11) NOT NULL AUTO_INCREMENT,
`scope_type` VARCHAR(20) NOT NULL,
`scope_key` VARCHAR(80) NOT NULL,
`storage_limit_mb` INT(11) NOT NULL DEFAULT 0,
`storage_used_mb` DECIMAL(12,2) NOT NULL DEFAULT 0.00,
`asset_limit` INT(11) NOT NULL DEFAULT 0,
`asset_count` INT(11) NOT NULL DEFAULT 0,
`purchased_storage_mb` INT(11) NOT NULL DEFAULT 0,
`purchased_asset_count` INT(11) NOT NULL DEFAULT 0,
`updated_at` DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY (`id`),
UNIQUE KEY `scope_lookup` (`scope_type`, `scope_key`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
CREATE TABLE IF NOT EXISTS `agency_cloud_assets` (
`id` INT(11) NOT NULL AUTO_INCREMENT,
`asset_uid` VARCHAR(64) NOT NULL,
`scope_type` VARCHAR(20) NOT NULL,
`scope_key` VARCHAR(80) NOT NULL,
`owner_identifier` VARCHAR(60) DEFAULT NULL,
`job_name` VARCHAR(60) DEFAULT NULL,
`asset_type` VARCHAR(30) NOT NULL DEFAULT 'document',
`title` VARCHAR(200) DEFAULT NULL,
`description` VARCHAR(255) DEFAULT NULL,
`url` VARCHAR(512) NOT NULL,
`mime_type` VARCHAR(100) DEFAULT NULL,
`storage_bytes` INT(11) NOT NULL DEFAULT 0,
`meta_json` LONGTEXT DEFAULT NULL,
`created_at` DATETIME DEFAULT CURRENT_TIMESTAMP,
`updated_at` DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY (`id`),
UNIQUE KEY `asset_uid` (`asset_uid`),
KEY `scope_lookup` (`scope_type`, `scope_key`),
KEY `owner_identifier` (`owner_identifier`),
KEY `job_name` (`job_name`),
KEY `asset_type` (`asset_type`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
CREATE TABLE IF NOT EXISTS `agency_phone_emails` (
`id` INT(11) NOT NULL AUTO_INCREMENT,
`identifier` VARCHAR(60) NOT NULL,
`email` VARCHAR(120) NOT NULL,
`created_at` DATETIME DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (`id`),
UNIQUE KEY `identifier` (`identifier`),
UNIQUE KEY `email` (`email`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
CREATE TABLE IF NOT EXISTS `agency_app_accounts` (
`id` INT(11) NOT NULL AUTO_INCREMENT,
`identifier` VARCHAR(60) NOT NULL,
`app_id` VARCHAR(60) NOT NULL,
`email` VARCHAR(120) NOT NULL,
`password` VARCHAR(60) NOT NULL,
`display_name` VARCHAR(100) DEFAULT NULL,
`faceid_enabled` TINYINT(4) DEFAULT 0,
`created_at` DATETIME DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (`id`),
UNIQUE KEY `identifier_app` (`identifier`, `app_id`),
KEY `identifier` (`identifier`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
CREATE TABLE IF NOT EXISTS `agency_notes` (
`id` INT(11) NOT NULL AUTO_INCREMENT,
`identifier` VARCHAR(60) NOT NULL,
`note_id` VARCHAR(40) NOT NULL,
`title` VARCHAR(200) DEFAULT NULL,
`content` LONGTEXT DEFAULT NULL,
`updated_at` DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
`created_at` DATETIME DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (`id`),
KEY `identifier` (`identifier`),
UNIQUE KEY `note_id` (`note_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
CREATE TABLE IF NOT EXISTS `agency_call_history` (
`id` INT(11) NOT NULL AUTO_INCREMENT,
`identifier` VARCHAR(60) NOT NULL,
`caller_number` VARCHAR(20) NOT NULL,
`receiver_number` VARCHAR(20) NOT NULL,
`call_type` ENUM('incoming','outgoing','missed') DEFAULT 'outgoing',
`duration` INT(11) DEFAULT 0,
`created_at` DATETIME DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (`id`),
KEY `identifier` (`identifier`),
KEY `caller_number` (`caller_number`),
KEY `receiver_number` (`receiver_number`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
CREATE TABLE IF NOT EXISTS `agency_darknet_purchases` (
`id` INT(11) NOT NULL AUTO_INCREMENT,
`identifier` VARCHAR(60) NOT NULL,
`item_id` VARCHAR(60) NOT NULL,
`item_label` VARCHAR(100) DEFAULT NULL,
`price` DECIMAL(10,4) DEFAULT 0,
`currency` VARCHAR(10) DEFAULT 'BTC',
`status` ENUM('pending','collected','expired') DEFAULT 'pending',
`pickup_x` FLOAT DEFAULT NULL,
`pickup_y` FLOAT DEFAULT NULL,
`pickup_z` FLOAT DEFAULT NULL,
`created_at` DATETIME DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (`id`),
KEY `identifier` (`identifier`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
CREATE TABLE IF NOT EXISTS `agency_invoices` (
`id` INT(11) NOT NULL AUTO_INCREMENT,
`sender_identifier` VARCHAR(60) NOT NULL,
`receiver_identifier` VARCHAR(60) NOT NULL,
`sender_name` VARCHAR(100) DEFAULT NULL,
`receiver_name` VARCHAR(100) DEFAULT NULL,
`amount` DECIMAL(10,2) NOT NULL,
`reason` VARCHAR(200) DEFAULT NULL,
`status` ENUM('pending','paid','declined') DEFAULT 'pending',
`created_at` DATETIME DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (`id`),
KEY `sender_identifier` (`sender_identifier`),
KEY `receiver_identifier` (`receiver_identifier`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
CREATE TABLE IF NOT EXISTS `agency_phone_settings` (
`id` INT(11) NOT NULL AUTO_INCREMENT,
`identifier` VARCHAR(60) NOT NULL,
`setting_key` VARCHAR(60) NOT NULL,
`setting_value` TEXT DEFAULT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `identifier_key` (`identifier`, `setting_key`),
KEY `identifier` (`identifier`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
CREATE TABLE IF NOT EXISTS `agency_housing` (
`id` INT(11) NOT NULL AUTO_INCREMENT,
`identifier` VARCHAR(60) NOT NULL,
`house_id` VARCHAR(100) NOT NULL,
`house_label` VARCHAR(200) DEFAULT NULL,
`housing_script` VARCHAR(60) DEFAULT NULL,
`is_locked` TINYINT(4) DEFAULT 1,
`updated_at` DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY (`id`),
KEY `identifier` (`identifier`),
UNIQUE KEY `house_id` (`house_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;