Add SDK persistence and configurable edge location
All checks were successful
Create Release / build (push) Successful in 4s
All checks were successful
Create Release / build (push) Successful in 4s
- Add external SDK installation (wp-content/twilio-sdk/) that survives WordPress plugin updates - Add install-twilio-sdk-external.sh script for external SDK setup - Update SDK loading to check external location first, internal fallback - Add post-update detection hook to warn if SDK was deleted - Add configurable Twilio Edge Location setting (default: roaming) - Fix US calls failing due to hardcoded Sydney edge location Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
45
CLAUDE.md
45
CLAUDE.md
@@ -6,6 +6,7 @@
|
||||
- **URL**: `https://phone.cloud-hosting.io/`
|
||||
- **Deployment**: rsync to Docker (remote server only, not local)
|
||||
- **SDK**: Twilio PHP SDK v8.7.0
|
||||
- **External SDK**: `wp-content/twilio-sdk/` (survives plugin updates)
|
||||
|
||||
## Phone Variable Names
|
||||
**Use**: `incoming_number`, `agent_number`, `customer_number`, `workflow_number`, `queue_number`, `default_number`
|
||||
@@ -47,6 +48,25 @@ $api->update_call($customer_call_sid, ['twiml' => $twiml_xml]);
|
||||
- Firefox support added
|
||||
- 1-min agent status auto-revert
|
||||
|
||||
## SDK Installation
|
||||
- **External SDK (Recommended)**: Use `install-twilio-sdk-external.sh` to install SDK to `wp-content/twilio-sdk/`
|
||||
- Survives WordPress plugin updates
|
||||
- SDK location defined by `TWP_EXTERNAL_SDK_DIR` constant
|
||||
- Loading priority: External first, then internal `vendor/` fallback
|
||||
- **Internal SDK (Alternative)**: Use `install-twilio-sdk.sh` to install to `vendor/`
|
||||
- Will be deleted when WordPress updates the plugin
|
||||
- Requires reinstallation after each plugin update
|
||||
- **SDK Loading**: Plugin checks external location first via autoloader, falls back to internal
|
||||
- **Post-Update Detection**: Hook on `upgrader_process_complete` checks SDK status and shows warning
|
||||
|
||||
## Browser Phone Configuration
|
||||
- **Edge Location Setting**: Configurable via Settings → Twilio Edge Location
|
||||
- Default: `roaming` (auto-select closest edge)
|
||||
- Options: ashburn, umatilla, dublin, frankfurt, singapore, sydney, tokyo, sao-paulo
|
||||
- Stored in: `twp_twilio_edge` option
|
||||
- Used by: Browser phone JavaScript for WebRTC connection
|
||||
- Critical: Wrong edge causes immediate call failures (e.g., US calls with Sydney edge)
|
||||
|
||||
## Development Notes
|
||||
- **API**: E.164 format (+1XXXXXXXXXX)
|
||||
- **Database**: Use `$wpdb`, prepared statements
|
||||
@@ -61,5 +81,28 @@ $api->update_call($customer_call_sid, ['twiml' => $twiml_xml]);
|
||||
- ElevenLabs TTS with Alice fallback
|
||||
- 68 AJAX actions, 26 REST endpoints
|
||||
|
||||
## Recent Technical Changes (v2.8.9)
|
||||
|
||||
### SDK Persistence Between Plugin Updates
|
||||
- **Problem**: WordPress plugin updates delete entire plugin folder including `vendor/` SDK
|
||||
- **Solution**: External SDK installation at `wp-content/twilio-sdk/` survives updates
|
||||
- **Implementation**:
|
||||
- New constant: `TWP_EXTERNAL_SDK_DIR` points to `wp-content/twilio-sdk/`
|
||||
- Loading priority in `twp_check_sdk_installation()`: External first, internal fallback
|
||||
- Classes updated: `TWP_Twilio_API`, `TWP_Webhooks` constructors check external location first
|
||||
- New script: `install-twilio-sdk-external.sh` automates external installation
|
||||
- Post-update hook: `twp_check_sdk_after_update()` detects missing SDK after updates
|
||||
- Admin notices: `twp_sdk_missing_notice()` shows both installation options
|
||||
- Warning system: `twp_show_sdk_update_warning()` via transient after plugin updates
|
||||
|
||||
### US Calls Failing Fix (Browser Phone)
|
||||
- **Problem**: Browser phone had hardcoded `edge: 'sydney'`, causing US calls to fail with immediate HANGUP
|
||||
- **Solution**: Configurable edge location via WordPress settings
|
||||
- **Implementation**:
|
||||
- New setting: `twp_twilio_edge` with default value `roaming`
|
||||
- Settings UI: Dropdown in admin settings with 8 edge options
|
||||
- Browser phone JS: Uses `get_option('twp_twilio_edge', 'roaming')` instead of hardcoded value
|
||||
- Edge options: roaming, ashburn, umatilla, dublin, frankfurt, singapore, sydney, tokyo, sao-paulo
|
||||
|
||||
---
|
||||
*Updated: Sept 2025*
|
||||
*Updated: Jan 2026*
|
||||
Reference in New Issue
Block a user