Skip to main content

Anonymous Login for AI Agents

Overview

The anonymousLogin method allows you to connect to AI assistants without traditional authentication credentials. This is the first step in establishing communication with a Telnyx AI Agent.

Method Signature

Future<void> anonymousLogin({
  required String targetId,
  String targetType = 'ai_assistant',
  String? targetVersionId,
  Map<String, dynamic>? userVariables,
  bool reconnection = false,
  LogLevel logLevel = LogLevel.none,
})

Parameters

ParameterTypeRequiredDefaultDescription
targetIdStringYes-The ID of your AI assistant
targetTypeStringNo’ai_assistant’The type of target
targetVersionIdString?NonullOptional version ID of the target. If not provided, uses latest version
userVariablesMap<String, dynamic>?NonullOptional user variables to include
reconnectionboolNofalseWhether this is a reconnection attempt
logLevelLogLevelNoLogLevel.noneLog level for this session

Usage Example

try {
  await _telnyxClient.anonymousLogin(
    targetId: 'your_assistant_id',
    // targetType: 'ai_assistant', // This is the default value
    // targetVersionId: 'your_assistant_version_id' // Optional
  );
  // You are now connected and can make a call to the AI Assistant.
} catch (e) {
  // Handle login error
  print('Login failed: $e');
}

Advanced Usage

With User Variables

await _telnyxClient.anonymousLogin(
  targetId: 'your_assistant_id',
  userVariables: {
    'user_id': '12345',
    'session_context': 'support_chat',
    'language': 'en-US'
  }
);

With Logging

await _telnyxClient.anonymousLogin(
  targetId: 'your_assistant_id',
  logLevel: LogLevel.debug
);

Important Notes

  • Call Routing: After a successful anonymousLogin, any subsequent call, regardless of the destination, will be directed to the specified AI Assistant
  • Session Lock: The session becomes locked to the AI assistant until disconnection
  • Version Control: If targetVersionId is not provided, the SDK will use the latest available version
  • Error Handling: Always wrap the call in a try-catch block to handle authentication errors

Error Handling

Common errors you might encounter:
try {
  await _telnyxClient.anonymousLogin(targetId: 'invalid_id');
} catch (e) {
  if (e.toString().contains('authentication')) {
    // Handle authentication error
    print('Invalid assistant ID or authentication failed');
  } else if (e.toString().contains('network')) {
    // Handle network error
    print('Network connection failed');
  } else {
    // Handle other errors
    print('Unexpected error: $e');
  }
}

Next Steps

After successful anonymous login:
  1. Start a conversation using newInvite()
  2. Set up transcript updates to receive real-time conversation data
  3. Send text messages during active calls