2025-10-21T14:18:40.178+01:00 DEBUG 32511 --- [saas-multitenant-api] [nio-7001-exec-1] c.s.v.filter.TelnyxTenantResolverFilter  : 🎯 TelnyxTenantResolverFilter: Intercepting webhook: /api/voip/telnyx/texml-response
2025-10-21T14:18:40.181+01:00  INFO 32511 --- [saas-multitenant-api] [nio-7001-exec-1] c.s.s.core.TenantIdentifierResolverImpl  : 🔍 resolveCurrentTenantIdentifier() CALLED - returning: saas_db
Hibernate: 
    select
        pn1_0.id,
        pn1_0.created_at,
        pn1_0.description,
        pn1_0.friendly_name,
        pn1_0.is_active,
        pn1_0.phone_number,
        pn1_0.provider,
        pn1_0.tenant_id,
        pn1_0.updated_at 
    from
        phone_numbers pn1_0 
    where
        pn1_0.phone_number=?
2025-10-21T14:18:40.222+01:00  INFO 32511 --- [saas-multitenant-api] [nio-7001-exec-1] .s.c.SchemaMultiTenantConnectionProvider : 🔥 getConnection() CALLED with tenantIdentifier: saas_db
2025-10-21T14:18:40.222+01:00  INFO 32511 --- [saas-multitenant-api] [nio-7001-exec-1] .s.c.SchemaMultiTenantConnectionProvider : ⚡ Executing: USE saas_db
2025-10-21T14:18:40.223+01:00  INFO 32511 --- [saas-multitenant-api] [nio-7001-exec-1] .s.c.SchemaMultiTenantConnectionProvider : ✅ Successfully switched to database: saas_db
2025-10-21T14:18:40.235+01:00  INFO 32511 --- [saas-multitenant-api] [nio-7001-exec-1] c.s.s.core.TenantIdentifierResolverImpl  : 🔍 resolveCurrentTenantIdentifier() CALLED - returning: saas_db
Hibernate: 
    select
        t1_0.id,
        t1_0.created_at,
        t1_0.schema_name,
        t1_0.status,
        t1_0.tenant_id,
        t1_0.tenant_name,
        t1_0.updated_at 
    from
        tenants t1_0 
    where
        t1_0.tenant_id=?
2025-10-21T14:18:40.236+01:00  INFO 32511 --- [saas-multitenant-api] [nio-7001-exec-1] .s.c.SchemaMultiTenantConnectionProvider : 🔥 getConnection() CALLED with tenantIdentifier: saas_db
2025-10-21T14:18:40.236+01:00  INFO 32511 --- [saas-multitenant-api] [nio-7001-exec-1] .s.c.SchemaMultiTenantConnectionProvider : ⚡ Executing: USE saas_db
2025-10-21T14:18:40.236+01:00  INFO 32511 --- [saas-multitenant-api] [nio-7001-exec-1] .s.c.SchemaMultiTenantConnectionProvider : ✅ Successfully switched to database: saas_db
2025-10-21T14:18:40.237+01:00  INFO 32511 --- [saas-multitenant-api] [nio-7001-exec-1] c.s.v.filter.TelnyxTenantResolverFilter  : ✅ TelnyxTenantResolverFilter: Resolved tenant 'e7f7179a-5393-4711-adae-083a22cf9e68' (schema: tenant_clinique_la_rive1_bleue1) for number: +18066983980 - Context remains 'saas_db'
2025-10-21T14:18:40.246+01:00 DEBUG 32511 --- [saas-multitenant-api] [nio-7001-exec-1] o.s.security.web.FilterChainProxy        : Securing POST /api/voip/telnyx/texml-response
2025-10-21T14:18:40.250+01:00 DEBUG 32511 --- [saas-multitenant-api] [nio-7001-exec-1] c.s.s.security.TenantIdentifierFilter    : 🔒 TenantIdentifierFilter: Tenant already set to 'saas_db', skipping JWT extraction for URI: /api/voip/telnyx/texml-response
2025-10-21T14:18:40.251+01:00 DEBUG 32511 --- [saas-multitenant-api] [nio-7001-exec-1] o.s.s.w.a.AnonymousAuthenticationFilter  : Set SecurityContextHolder to anonymous SecurityContext
2025-10-21T14:18:40.253+01:00 DEBUG 32511 --- [saas-multitenant-api] [nio-7001-exec-1] o.s.security.web.FilterChainProxy        : Secured POST /api/voip/telnyx/texml-response
2025-10-21T14:18:40.255+01:00  INFO 32511 --- [saas-multitenant-api] [nio-7001-exec-1] c.s.s.core.TenantIdentifierResolverImpl  : 🔍 resolveCurrentTenantIdentifier() CALLED - returning: saas_db
2025-10-21T14:18:40.262+01:00  INFO 32511 --- [saas-multitenant-api] [nio-7001-exec-1] c.s.v.controller.TelnyxTeXMLController   : === TELNYX TeXML REQUEST ===
2025-10-21T14:18:40.262+01:00  INFO 32511 --- [saas-multitenant-api] [nio-7001-exec-1] c.s.v.controller.TelnyxTeXMLController   : 📞 From: +212661979197, To: +18066983980, CallSid: v3:2VMLGVH1H-G2hiBqQduRmkQtVMSNA5Q4nP3UPhn2LSxNyHLt5SxLDw, Status: null
2025-10-21T14:18:40.262+01:00  INFO 32511 --- [saas-multitenant-api] [nio-7001-exec-1] c.s.v.controller.TelnyxTeXMLController   : ✅ Using tenant from filter: e7f7179a-5393-4711-adae-083a22cf9e68 (schema: tenant_clinique_la_rive1_bleue1)
2025-10-21T14:18:40.262+01:00  INFO 32511 --- [saas-multitenant-api] [nio-7001-exec-1] c.s.tenant.service.InboundCallService    : 🆕 Creating MANUAL Hibernate Session for tenant schema: tenant_clinique_la_rive1_bleue1
2025-10-21T14:18:40.262+01:00  INFO 32511 --- [saas-multitenant-api] [nio-7001-exec-1] c.s.s.core.TenantIdentifierResolverImpl  : 🔍 resolveCurrentTenantIdentifier() CALLED - returning: saas_db
2025-10-21T14:18:40.263+01:00  INFO 32511 --- [saas-multitenant-api] [nio-7001-exec-1] .s.c.SchemaMultiTenantConnectionProvider : 🔥 getConnection() CALLED with tenantIdentifier: tenant_clinique_la_rive1_bleue1
2025-10-21T14:18:40.263+01:00  INFO 32511 --- [saas-multitenant-api] [nio-7001-exec-1] .s.c.SchemaMultiTenantConnectionProvider : ⚡ Executing: USE tenant_clinique_la_rive1_bleue1
2025-10-21T14:18:40.263+01:00  INFO 32511 --- [saas-multitenant-api] [nio-7001-exec-1] .s.c.SchemaMultiTenantConnectionProvider : ✅ Successfully switched to database: tenant_clinique_la_rive1_bleue1
2025-10-21T14:18:40.263+01:00 DEBUG 32511 --- [saas-multitenant-api] [nio-7001-exec-1] c.s.tenant.service.InboundCallService    : ✅ New Hibernate Session created with explicit tenantIdentifier: tenant_clinique_la_rive1_bleue1
Hibernate: 
    insert 
    into
        inbound_call_data
        (account_sid, api_version, call_sid, call_status, call_token, called, called_city, called_country, called_state, called_zip, caller, caller_city, caller_country, caller_state, caller_zip, created_at, direction, duration, end_time, forwarded_from, from_city, from_country, from_number, from_state, from_zip, parent_call_sid, provider, recording_sid, recording_url, start_time, stir_verstat, to_city, to_country, to_number, to_state, to_zip, updated_at) 
    values
        (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
2025-10-21T14:18:40.276+01:00  INFO 32511 --- [saas-multitenant-api] [nio-7001-exec-1] c.s.tenant.service.InboundCallService    : 💾 Call data saved to TENANT schema 'tenant_clinique_la_rive1_bleue1' - CallSid: v3:2VMLGVH1H-G2hiBqQduRmkQtVMSNA5Q4nP3UPhn2LSxNyHLt5SxLDw, From: +212661979197, To: +18066983980
2025-10-21T14:18:40.277+01:00 DEBUG 32511 --- [saas-multitenant-api] [nio-7001-exec-1] c.s.tenant.service.InboundCallService    : 🔒 Closed manual Hibernate Session for schema: tenant_clinique_la_rive1_bleue1
2025-10-21T14:18:40.277+01:00  INFO 32511 --- [saas-multitenant-api] [nio-7001-exec-1] c.s.v.controller.TelnyxTeXMLController   : ✅ Telnyx call data saved to tenant schema: tenant_clinique_la_rive1_bleue1
2025-10-21T14:18:40.278+01:00  INFO 32511 --- [saas-multitenant-api] [nio-7001-exec-1] .s.c.SchemaMultiTenantConnectionProvider : 🔥 getConnection() CALLED with tenantIdentifier: saas_db
2025-10-21T14:18:40.278+01:00  INFO 32511 --- [saas-multitenant-api] [nio-7001-exec-1] .s.c.SchemaMultiTenantConnectionProvider : ⚡ Executing: USE saas_db
2025-10-21T14:18:40.278+01:00  INFO 32511 --- [saas-multitenant-api] [nio-7001-exec-1] .s.c.SchemaMultiTenantConnectionProvider : ✅ Successfully switched to database: saas_db
2025-10-21T14:18:40.279+01:00  INFO 32511 --- [saas-multitenant-api] [nio-7001-exec-1] c.s.s.s.TenantVoipConfigRuntimeService   : 🔍 Resolving VoIP config for tenant: e7f7179a-5393-4711-adae-083a22cf9e68, provider: TELNYX
Hibernate: 
    select
        tvc1_0.id,
        tvc1_0.ai_assistant_id,
        tvc1_0.ai_type,
        tvc1_0.created_at,
        tvc1_0.is_active,
        tvc1_0.messaging_profile_id,
        tvc1_0.metadata,
        tvc1_0.provider,
        tvc1_0.stream_url,
        tvc1_0.tenant_id,
        tvc1_0.updated_at 
    from
        tenant_voip_configs tvc1_0 
    where
        tvc1_0.tenant_id=? 
        and tvc1_0.provider=? 
        and tvc1_0.is_active=?
2025-10-21T14:18:40.281+01:00  INFO 32511 --- [saas-multitenant-api] [nio-7001-exec-1] c.s.s.s.TenantVoipConfigRuntimeService   : ✅ VoIP config found in database (active)
2025-10-21T14:18:40.282+01:00  INFO 32511 --- [saas-multitenant-api] [nio-7001-exec-1] c.s.v.controller.TelnyxTeXMLController   : 📋 VoIP Config loaded for tenant: e7f7179a-5393-4711-adae-083a22cf9e68 - Type: TELNYX_NATIVE_AI, AssistantID: assistant-265ff822-c3e7-43ca-b9f3-02d3ae189e7d
2025-10-21T14:18:40.283+01:00  INFO 32511 --- [saas-multitenant-api] [nio-7001-exec-1] c.s.v.controller.TelnyxTeXMLController   : 🔧 VoIP Config - Type: TELNYX_NATIVE_AI, AssistantID: assistant-265ff822-c3e7-43ca-b9f3-02d3ae189e7d, StreamURL: wss://benedictory-provocative-lauralee.ngrok-free.dev/stream, Source: DATABASE
2025-10-21T14:18:40.283+01:00  INFO 32511 --- [saas-multitenant-api] [nio-7001-exec-1] c.s.v.controller.TelnyxTeXMLController   : 🤖 Starting Telnyx Native AI Assistant with Connect: assistant-265ff822-c3e7-43ca-b9f3-02d3ae189e7d
2025-10-21T14:18:40.283+01:00  INFO 32511 --- [saas-multitenant-api] [nio-7001-exec-1] c.s.v.controller.TelnyxTeXMLController   : 📞 StatusCallback configured: https://benedictory-provocative-lauralee.ngrok-free.dev/api/voip/telnyx/status-callback
2025-10-21T14:18:40.283+01:00  INFO 32511 --- [saas-multitenant-api] [nio-7001-exec-1] c.s.v.controller.TelnyxTeXMLController   : 📄 TeXML Response:
<?xml version="1.0" encoding="UTF-8"?>
<Response>
  <!-- Telnyx AI Assistant - Full Conversation Mode -->
  <Connect statusCallback="https://benedictory-provocative-lauralee.ngrok-free.dev/api/voip/telnyx/status-callback" statusCallbackEvent="initiated ringing answered completed">
    <AIAssistant id="assistant-265ff822-c3e7-43ca-b9f3-02d3ae189e7d"/>
  </Connect>
</Response>
2025-10-21T14:18:40.288+01:00 DEBUG 32511 --- [saas-multitenant-api] [nio-7001-exec-1] c.s.s.security.TenantIdentifierFilter    : 🧹 TenantIdentifierFilter: Cleared TenantContext after request
2025-10-21T14:18:40.288+01:00 DEBUG 32511 --- [saas-multitenant-api] [nio-7001-exec-1] c.s.v.filter.TelnyxTenantResolverFilter  : 🧹 TelnyxTenantResolverFilter: Cleared TenantContext
2025-10-21T14:18:50.828+01:00 DEBUG 32511 --- [saas-multitenant-api] [nio-7001-exec-2] c.s.v.filter.TelnyxTenantResolverFilter  : 🎯 TelnyxTenantResolverFilter: Intercepting webhook: /api/voip/telnyx/ai/conversation-event
2025-10-21T14:18:50.830+01:00  INFO 32511 --- [saas-multitenant-api] [nio-7001-exec-2] c.s.s.core.TenantIdentifierResolverImpl  : 🔍 resolveCurrentTenantIdentifier() CALLED - returning: saas_db
Hibernate: 
    select
        pn1_0.id,
        pn1_0.created_at,
        pn1_0.description,
        pn1_0.friendly_name,
        pn1_0.is_active,
        pn1_0.phone_number,
        pn1_0.provider,
        pn1_0.tenant_id,
        pn1_0.updated_at 
    from
        phone_numbers pn1_0 
    where
        pn1_0.phone_number=?
2025-10-21T14:18:50.833+01:00  INFO 32511 --- [saas-multitenant-api] [nio-7001-exec-2] .s.c.SchemaMultiTenantConnectionProvider : 🔥 getConnection() CALLED with tenantIdentifier: saas_db
2025-10-21T14:18:50.834+01:00  INFO 32511 --- [saas-multitenant-api] [nio-7001-exec-2] .s.c.SchemaMultiTenantConnectionProvider : ⚡ Executing: USE saas_db
2025-10-21T14:18:50.835+01:00  INFO 32511 --- [saas-multitenant-api] [nio-7001-exec-2] .s.c.SchemaMultiTenantConnectionProvider : ✅ Successfully switched to database: saas_db
2025-10-21T14:18:50.840+01:00  INFO 32511 --- [saas-multitenant-api] [nio-7001-exec-2] c.s.s.core.TenantIdentifierResolverImpl  : 🔍 resolveCurrentTenantIdentifier() CALLED - returning: saas_db
Hibernate: 
    select
        t1_0.id,
        t1_0.created_at,
        t1_0.schema_name,
        t1_0.status,
        t1_0.tenant_id,
        t1_0.tenant_name,
        t1_0.updated_at 
    from
        tenants t1_0 
    where
        t1_0.tenant_id=?
2025-10-21T14:18:50.842+01:00  INFO 32511 --- [saas-multitenant-api] [nio-7001-exec-2] .s.c.SchemaMultiTenantConnectionProvider : 🔥 getConnection() CALLED with tenantIdentifier: saas_db
2025-10-21T14:18:50.842+01:00  INFO 32511 --- [saas-multitenant-api] [nio-7001-exec-2] .s.c.SchemaMultiTenantConnectionProvider : ⚡ Executing: USE saas_db
2025-10-21T14:18:50.844+01:00  INFO 32511 --- [saas-multitenant-api] [nio-7001-exec-2] .s.c.SchemaMultiTenantConnectionProvider : ✅ Successfully switched to database: saas_db
2025-10-21T14:18:50.846+01:00  INFO 32511 --- [saas-multitenant-api] [nio-7001-exec-2] c.s.v.filter.TelnyxTenantResolverFilter  : ✅ TelnyxTenantResolverFilter: Resolved tenant 'e7f7179a-5393-4711-adae-083a22cf9e68' (schema: tenant_clinique_la_rive1_bleue1) for number: +18066983980 - Context remains 'saas_db'
2025-10-21T14:18:50.846+01:00 DEBUG 32511 --- [saas-multitenant-api] [nio-7001-exec-2] o.s.security.web.FilterChainProxy        : Securing POST /api/voip/telnyx/ai/conversation-event
2025-10-21T14:18:50.847+01:00 DEBUG 32511 --- [saas-multitenant-api] [nio-7001-exec-2] c.s.s.security.TenantIdentifierFilter    : 🔒 TenantIdentifierFilter: Tenant already set to 'saas_db', skipping JWT extraction for URI: /api/voip/telnyx/ai/conversation-event
2025-10-21T14:18:50.847+01:00 DEBUG 32511 --- [saas-multitenant-api] [nio-7001-exec-2] o.s.s.w.a.AnonymousAuthenticationFilter  : Set SecurityContextHolder to anonymous SecurityContext
2025-10-21T14:18:50.848+01:00 DEBUG 32511 --- [saas-multitenant-api] [nio-7001-exec-2] o.s.security.web.FilterChainProxy        : Secured POST /api/voip/telnyx/ai/conversation-event
2025-10-21T14:18:50.848+01:00  INFO 32511 --- [saas-multitenant-api] [nio-7001-exec-2] c.s.s.core.TenantIdentifierResolverImpl  : 🔍 resolveCurrentTenantIdentifier() CALLED - returning: saas_db
2025-10-21T14:18:50.850+01:00  INFO 32511 --- [saas-multitenant-api] [nio-7001-exec-2] c.s.v.controller.TelnyxEventController   : === TELNYX AI CONVERSATION EVENT ===
2025-10-21T14:18:50.850+01:00  INFO 32511 --- [saas-multitenant-api] [nio-7001-exec-2] c.s.v.controller.TelnyxEventController   : 📥 Content-Type: application/x-www-form-urlencoded
2025-10-21T14:18:50.850+01:00  INFO 32511 --- [saas-multitenant-api] [nio-7001-exec-2] c.s.v.controller.TelnyxEventController   : 📥 All parameters: {AccountSid=24b8c68c-c52a-4dd2-859c-22f1d2e62203, AnsweredTime=2025-10-21T13:18:40.793427Z, CallControlId=v3:2VMLGVH1H-G2hiBqQduRmkQtVMSNA5Q4nP3UPhn2LSxNyHLt5SxLDw, CallDuration=10, CallLegId=753f0e76-ae80-11f0-a368-02420aef13a0, CallQualityStats={"inbound":{"jitter_max_variance":"0.00","jitter_packet_count":"0","mos":"4.50","packet_count":"476","skip_packet_count":"16"},"outbound":{"packet_count":"424","skip_packet_count":"0"}}, CallSessionId=753f0ac0-ae80-11f0-a4bc-02420aef13a0, CallSid=v3:2VMLGVH1H-G2hiBqQduRmkQtVMSNA5Q4nP3UPhn2LSxNyHLt5SxLDw, CallSidLegacy=v3:2VMLGVH1H-G2hiBqQduRmkQtVMSNA5Q4nP3UPhn2LSxNyHLt5SxLDw, CallStatus=completed, CallbackSource=call-progress-events, CallingPartyType=pstn, ConnectionId=2806750933822736154, EndTime=2025-10-21T13:18:50.533418Z, From=+212661979197, FromSipUri=+212661979197@208.69.82.78:5060, HangupCause=normal_clearing, HangupSource=caller, OccurredAt=2025-10-21T13:18:50.533418Z, OrganizationId=24b8c68c-c52a-4dd2-859c-22f1d2e62203, SequenceNumber=0, SipHangupCause=200, StartTime=2025-10-21T13:18:40.793427Z, Timestamp=2025-10-21 13:18:50.850111Z, To=+18066983980, ToSipUri=+18066983980@192.76.120.10:5060, UserId=24b8c68c-c52a-4dd2-859c-22f1d2e62203}
2025-10-21T14:18:50.861+01:00 DEBUG 32511 --- [saas-multitenant-api] [nio-7001-exec-2] c.s.s.security.TenantIdentifierFilter    : 🧹 TenantIdentifierFilter: Cleared TenantContext after request
2025-10-21T14:18:50.861+01:00 DEBUG 32511 --- [saas-multitenant-api] [nio-7001-exec-2] c.s.v.filter.TelnyxTenantResolverFilter  : 🧹 TelnyxTenantResolverFilter: Cleared TenantContext
2025-10-21T14:18:51.067+01:00 DEBUG 32511 --- [saas-multitenant-api] [nio-7001-exec-3] c.s.v.filter.TelnyxTenantResolverFilter  : 🎯 TelnyxTenantResolverFilter: Intercepting webhook: /api/voip/telnyx/ai/conversation-event
2025-10-21T14:18:51.067+01:00  INFO 32511 --- [saas-multitenant-api] [nio-7001-exec-3] c.s.s.core.TenantIdentifierResolverImpl  : 🔍 resolveCurrentTenantIdentifier() CALLED - returning: saas_db
Hibernate: 
    select
        pn1_0.id,
        pn1_0.created_at,
        pn1_0.description,
        pn1_0.friendly_name,
        pn1_0.is_active,
        pn1_0.phone_number,
        pn1_0.provider,
        pn1_0.tenant_id,
        pn1_0.updated_at 
    from
        phone_numbers pn1_0 
    where
        pn1_0.phone_number=?
2025-10-21T14:18:51.068+01:00  INFO 32511 --- [saas-multitenant-api] [nio-7001-exec-3] .s.c.SchemaMultiTenantConnectionProvider : 🔥 getConnection() CALLED with tenantIdentifier: saas_db
2025-10-21T14:18:51.069+01:00  INFO 32511 --- [saas-multitenant-api] [nio-7001-exec-3] .s.c.SchemaMultiTenantConnectionProvider : ⚡ Executing: USE saas_db
2025-10-21T14:18:51.070+01:00  INFO 32511 --- [saas-multitenant-api] [nio-7001-exec-3] .s.c.SchemaMultiTenantConnectionProvider : ✅ Successfully switched to database: saas_db
2025-10-21T14:18:51.072+01:00  INFO 32511 --- [saas-multitenant-api] [nio-7001-exec-3] c.s.s.core.TenantIdentifierResolverImpl  : 🔍 resolveCurrentTenantIdentifier() CALLED - returning: saas_db
Hibernate: 
    select
        t1_0.id,
        t1_0.created_at,
        t1_0.schema_name,
        t1_0.status,
        t1_0.tenant_id,
        t1_0.tenant_name,
        t1_0.updated_at 
    from
        tenants t1_0 
    where
        t1_0.tenant_id=?
2025-10-21T14:18:51.073+01:00  INFO 32511 --- [saas-multitenant-api] [nio-7001-exec-3] .s.c.SchemaMultiTenantConnectionProvider : 🔥 getConnection() CALLED with tenantIdentifier: saas_db
2025-10-21T14:18:51.073+01:00  INFO 32511 --- [saas-multitenant-api] [nio-7001-exec-3] .s.c.SchemaMultiTenantConnectionProvider : ⚡ Executing: USE saas_db
2025-10-21T14:18:51.074+01:00  INFO 32511 --- [saas-multitenant-api] [nio-7001-exec-3] .s.c.SchemaMultiTenantConnectionProvider : ✅ Successfully switched to database: saas_db
2025-10-21T14:18:51.075+01:00  INFO 32511 --- [saas-multitenant-api] [nio-7001-exec-3] c.s.v.filter.TelnyxTenantResolverFilter  : ✅ TelnyxTenantResolverFilter: Resolved tenant 'e7f7179a-5393-4711-adae-083a22cf9e68' (schema: tenant_clinique_la_rive1_bleue1) for number: +18066983980 - Context remains 'saas_db'
2025-10-21T14:18:51.075+01:00 DEBUG 32511 --- [saas-multitenant-api] [nio-7001-exec-3] o.s.security.web.FilterChainProxy        : Securing POST /api/voip/telnyx/ai/conversation-event
2025-10-21T14:18:51.076+01:00 DEBUG 32511 --- [saas-multitenant-api] [nio-7001-exec-3] c.s.s.security.TenantIdentifierFilter    : 🔒 TenantIdentifierFilter: Tenant already set to 'saas_db', skipping JWT extraction for URI: /api/voip/telnyx/ai/conversation-event
2025-10-21T14:18:51.076+01:00 DEBUG 32511 --- [saas-multitenant-api] [nio-7001-exec-3] o.s.s.w.a.AnonymousAuthenticationFilter  : Set SecurityContextHolder to anonymous SecurityContext
2025-10-21T14:18:51.076+01:00 DEBUG 32511 --- [saas-multitenant-api] [nio-7001-exec-3] o.s.security.web.FilterChainProxy        : Secured POST /api/voip/telnyx/ai/conversation-event
2025-10-21T14:18:51.076+01:00  INFO 32511 --- [saas-multitenant-api] [nio-7001-exec-3] c.s.s.core.TenantIdentifierResolverImpl  : 🔍 resolveCurrentTenantIdentifier() CALLED - returning: saas_db
2025-10-21T14:18:51.077+01:00  INFO 32511 --- [saas-multitenant-api] [nio-7001-exec-3] c.s.v.controller.TelnyxEventController   : === TELNYX AI CONVERSATION EVENT ===
2025-10-21T14:18:51.077+01:00  INFO 32511 --- [saas-multitenant-api] [nio-7001-exec-3] c.s.v.controller.TelnyxEventController   : 📥 Content-Type: application/x-www-form-urlencoded
2025-10-21T14:18:51.077+01:00  INFO 32511 --- [saas-multitenant-api] [nio-7001-exec-3] c.s.v.controller.TelnyxEventController   : 📥 All parameters: {AccountSid=24b8c68c-c52a-4dd2-859c-22f1d2e62203, BilledDurationSeconds[v3:2VMLGVH1H-G2hiBqQduRmkQtVMSNA5Q4nP3UPhn2LSxNyHLt5SxLDw]=60, CallCost[v3:2VMLGVH1H-G2hiBqQduRmkQtVMSNA5Q4nP3UPhn2LSxNyHLt5SxLDw]=0.0055, CallSid=v3:2VMLGVH1H-G2hiBqQduRmkQtVMSNA5Q4nP3UPhn2LSxNyHLt5SxLDw, CallSidLegacy=v3:2VMLGVH1H-G2hiBqQduRmkQtVMSNA5Q4nP3UPhn2LSxNyHLt5SxLDw, CallbackSource=call-cost-events, CallerId=+212661979197, CallingPartyType=pstn, ConnectionId=2806750933822736154, From=+212661979197, FromSipUri=+212661979197@208.69.82.78:5060, To=+18066983980, ToSipUri=+18066983980@192.76.120.10:5060}
2025-10-21T14:18:51.078+01:00 DEBUG 32511 --- [saas-multitenant-api] [nio-7001-exec-3] c.s.s.security.TenantIdentifierFilter    : 🧹 TenantIdentifierFilter: Cleared TenantContext after request
2025-10-21T14:18:51.078+01:00 DEBUG 32511 --- [saas-multitenant-api] [nio-7001-exec-3] c.s.v.filter.TelnyxTenantResolverFilter  : 🧹 TelnyxTenantResolverFilter: Cleared TenantContext
