Fix browser phone client name mismatch causing immediate disconnection
- Standardized client name generation across all files to use alphanumeric only - Fixed mismatch between token generation and call routing that caused calls to disconnect - Updated TWP_Workflow, TWP_Webhooks, and TWP_Agent_Manager to use same format - Client names now consistently formatted as 'agent123Username' without underscores 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
		@@ -283,7 +283,12 @@ class TWP_Agent_Manager {
 | 
			
		||||
        if ($call_mode === 'browser') {
 | 
			
		||||
            // For browser mode, redirect the existing call to the browser client
 | 
			
		||||
            $current_user = get_userdata($user_id);
 | 
			
		||||
            $client_name = 'agent_' . $user_id . '_' . sanitize_title($current_user->display_name);
 | 
			
		||||
            // Twilio requires alphanumeric characters only - must match generate_capability_token
 | 
			
		||||
            $clean_name = preg_replace('/[^a-zA-Z0-9]/', '', $current_user->display_name);
 | 
			
		||||
            if (empty($clean_name)) {
 | 
			
		||||
                $clean_name = 'user';
 | 
			
		||||
            }
 | 
			
		||||
            $client_name = 'agent' . $user_id . $clean_name;
 | 
			
		||||
            
 | 
			
		||||
            // Create TwiML to redirect call to browser client
 | 
			
		||||
            $twiml = new \Twilio\TwiML\VoiceResponse();
 | 
			
		||||
 
 | 
			
		||||
@@ -408,7 +408,12 @@ class TWP_Webhooks {
 | 
			
		||||
            $agent_phone = get_user_meta($agent->ID, 'twp_phone_number', true);
 | 
			
		||||
            
 | 
			
		||||
            if ($call_mode === 'browser') {
 | 
			
		||||
                $client_name = 'agent_' . $agent->ID . '_' . sanitize_title($agent->display_name);
 | 
			
		||||
                // Twilio requires alphanumeric characters only
 | 
			
		||||
                $clean_name = preg_replace('/[^a-zA-Z0-9]/', '', $agent->display_name);
 | 
			
		||||
                if (empty($clean_name)) {
 | 
			
		||||
                    $clean_name = 'user';
 | 
			
		||||
                }
 | 
			
		||||
                $client_name = 'agent' . $agent->ID . $clean_name;
 | 
			
		||||
                $browser_agents[] = $client_name;
 | 
			
		||||
            } elseif (!empty($agent_phone)) {
 | 
			
		||||
                $cell_agents[] = $agent_phone;
 | 
			
		||||
@@ -485,7 +490,12 @@ class TWP_Webhooks {
 | 
			
		||||
            $agent_phone = get_user_meta($agent->ID, 'twp_phone_number', true);
 | 
			
		||||
            
 | 
			
		||||
            if ($call_mode === 'browser') {
 | 
			
		||||
                $client_name = 'agent_' . $agent->ID . '_' . sanitize_title($agent->display_name);
 | 
			
		||||
                // Twilio requires alphanumeric characters only
 | 
			
		||||
                $clean_name = preg_replace('/[^a-zA-Z0-9]/', '', $agent->display_name);
 | 
			
		||||
                if (empty($clean_name)) {
 | 
			
		||||
                    $clean_name = 'user';
 | 
			
		||||
                }
 | 
			
		||||
                $client_name = 'agent' . $agent->ID . $clean_name;
 | 
			
		||||
                $browser_agents[] = $client_name;
 | 
			
		||||
            } elseif (!empty($agent_phone)) {
 | 
			
		||||
                $cell_agents[] = $agent_phone;
 | 
			
		||||
 
 | 
			
		||||
@@ -458,7 +458,12 @@ class TWP_Workflow {
 | 
			
		||||
            ));
 | 
			
		||||
            
 | 
			
		||||
            foreach ($agents as $agent) {
 | 
			
		||||
                $client_name = 'agent_' . $agent->ID . '_' . sanitize_title($agent->display_name);
 | 
			
		||||
                // Twilio requires alphanumeric characters only
 | 
			
		||||
                $clean_name = preg_replace('/[^a-zA-Z0-9]/', '', $agent->display_name);
 | 
			
		||||
                if (empty($clean_name)) {
 | 
			
		||||
                    $clean_name = 'user';
 | 
			
		||||
                }
 | 
			
		||||
                $client_name = 'agent' . $agent->ID . $clean_name;
 | 
			
		||||
                $client = $dial->addChild('Client', $client_name);
 | 
			
		||||
            }
 | 
			
		||||
        } else {
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user