Add mobile app infrastructure and Gitea auto-update support

This commit adds comprehensive mobile app support to enable a native Android app that won't timeout or sleep when the screen goes dark.

New Features:
- JWT-based authentication system (no WordPress session dependency)
- REST API endpoints for mobile app (agent status, queue management, call control)
- Server-Sent Events (SSE) for real-time updates to mobile app
- Firebase Cloud Messaging (FCM) integration for push notifications
- Gitea-based automatic plugin updates
- Mobile app admin settings page

New Files:
- includes/class-twp-mobile-auth.php - JWT authentication with login/refresh/logout
- includes/class-twp-mobile-api.php - REST API endpoints under /twilio-mobile/v1
- includes/class-twp-mobile-sse.php - Real-time event streaming
- includes/class-twp-fcm.php - Push notification handling
- includes/class-twp-auto-updater.php - Gitea-based auto-updates
- admin/mobile-app-settings.php - Admin configuration page

Modified Files:
- includes/class-twp-activator.php - Added twp_mobile_sessions table
- includes/class-twp-core.php - Load and initialize mobile classes
- admin/class-twp-admin.php - Added Mobile App menu item and settings page

Database Changes:
- New table: twp_mobile_sessions (stores JWT refresh tokens and FCM tokens)

API Endpoints:
- POST /twilio-mobile/v1/auth/login
- POST /twilio-mobile/v1/auth/refresh
- POST /twilio-mobile/v1/auth/logout
- GET/POST /twilio-mobile/v1/agent/status
- GET /twilio-mobile/v1/queues/state
- POST /twilio-mobile/v1/calls/{call_sid}/accept
- GET /twilio-mobile/v1/stream/events (SSE)

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
2025-12-01 15:43:14 -08:00
parent 4baa8f539a
commit 86dd477d4f
9 changed files with 2370 additions and 6 deletions

View File

@@ -33,7 +33,14 @@ class TWP_Core {
// API classes
require_once TWP_PLUGIN_DIR . 'includes/class-twp-twilio-api.php';
require_once TWP_PLUGIN_DIR . 'includes/class-twp-elevenlabs-api.php';
// Mobile app classes
require_once TWP_PLUGIN_DIR . 'includes/class-twp-mobile-auth.php';
require_once TWP_PLUGIN_DIR . 'includes/class-twp-mobile-api.php';
require_once TWP_PLUGIN_DIR . 'includes/class-twp-mobile-sse.php';
require_once TWP_PLUGIN_DIR . 'includes/class-twp-fcm.php';
require_once TWP_PLUGIN_DIR . 'includes/class-twp-auto-updater.php';
// Feature classes
require_once TWP_PLUGIN_DIR . 'includes/class-twp-scheduler.php';
require_once TWP_PLUGIN_DIR . 'includes/class-twp-call-queue.php';
@@ -318,6 +325,20 @@ class TWP_Core {
// Initialize webhooks
$webhooks = new TWP_Webhooks();
$webhooks->register_endpoints();
// Initialize mobile app endpoints
$mobile_auth = new TWP_Mobile_Auth();
$mobile_auth->register_endpoints();
$mobile_api = new TWP_Mobile_API();
$mobile_api->register_endpoints();
$mobile_sse = new TWP_Mobile_SSE();
$mobile_sse->register_endpoints();
// Initialize auto-updater
$updater = new TWP_Auto_Updater();
$updater->init();
// Add custom cron schedules
add_filter('cron_schedules', function($schedules) {