The SDK uses Python’s standard logging module for all log messages and follows shared-library best practices.
logging.getLogger(__name__)The SDK does not log sensitive information such as API keys, authentication tokens, certificate contents, or private keys. Connection URLs and call IDs are logged when useful for diagnostics.
ActiveCall runs independently in its own asyncio taskasync with AgenTaoClient(config) as client plus await client.run_forever() is the clearest default patternclose() and disconnect() deliberately - close() is state-dependent: after connect() it removes the agent while the other parties stay connected, but after answer() without connect() it ends the call for the caller too. disconnect() asks the server to end the call for everyoneconnect() routes to the original callee - The public 0.24.0 surface documents connect() as a handoff to the original callee associated with the connectorCALL_UNANSWERED explicitly - connect() can raise WSSCallCommandError with error_code == "CALL_UNANSWERED", and the call remains active afterwardsasyncio.TaskGroup and a queue to decouple receive and send work0.24.0 surface - The published package docs only describe connect() to the original callee, so these docs do the samewebsockets >= 15.0typing-extensions >= 4.8.0