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