Hello Alejandro-
As mentioned internal calls to an AI agent answer normally. External calls to an AI agent produce the AI Bridge error in 3CX Event Viewer.
Here is the failed external call in 3CX AI log.
Id: 28
sdpType: WRTCConfirmed
other_party_displayname: "RYAN FISHER"
other_party_number: "+12488xxxxxx"
transactionId: 1
sdp: ""
SIPDialogID: "OzSmLAi_BRcjMK5fNA1_zQ..0e5089cbe"
2026-07-30 15:21:16.884|Trace|{'call': 28, 'dir': 'ai'} RTCPeerConnection() iceGatheringState gathering -> complete
2026-07-30 15:21:16.885| Info|{'call': 28, 'dir': 'ai'} OpenAI request: POST
https://api.openai.com/v1/realtime/calls client_secret_hash=785d7ef6c52bd3bf888be48713532502a63182e82d91f5920b3e0fe85544b291
2026-07-30 15:21:16.893|Trace|{'call': 28, 'dir': 'pbx'} RTCIceTransport(controlling) - checking -> completed
2026-07-30 15:21:16.893|Trace|{'call': 28, 'dir': 'pbx'} RTCPeerConnection() iceConnectionState checking -> completed
2026-07-30 15:21:16.895|Trace|{'call': 28, 'dir': 'pbx'} RTCDtlsTransport(client) - State.NEW -> State.CONNECTING
2026-07-30 15:21:16.901|Trace|{'call': 28, 'dir': 'pbx'} RTCDtlsTransport(client) x DTLS handshake negotiated SRTP_AEAD_AES_256_GCM
2026-07-30 15:21:16.902|Trace|{'call': 28, 'dir': 'pbx'} RTCDtlsTransport(client) - DTLS handshake complete
2026-07-30 15:21:16.902|Trace|{'call': 28, 'dir': 'pbx'} RTCDtlsTransport(client) - State.CONNECTING -> State.CONNECTED
2026-07-30 15:21:16.902|Trace|{'call': 28, 'dir': 'pbx'} RTCPeerConnection() connectionState connecting -> connected
2026-07-30 15:21:16.903| Info|{'call': 28, 'dir': 'pbx'} endpoint_pc.state > connected
2026-07-30 15:21:16.978| Info|{'call': 28} Connected
2026-07-30 15:21:17.070| Info|{'call': 28, 'dir': 'ai'} OpenAI response:
https://api.openai.com/v1/realtime/calls (500) http_version=HTTP/2 openai_call_id=/v1/realtime/calls/rtc_u1_E7Qbc321dEAa855sNOyBa request_id=None cf_ray=a236b9b88df2d66f-IAD
2026-07-30 15:21:17.071| Info|{'call': 28, 'dir': 'ai'} realtime/calls conn: http_version=HTTP/2 local_addr=('10.0.0.22', 58932) server_addr=('172.66.0.243', 443)
2026-07-30 15:21:17.071|Error|{'call': 28, 'dir': 'ai'} realtime/calls error body: retry_after=None body=Internal Server Error
2026-07-30 15:21:17.072|Error|{'call': 28} [FATAL] AI Session entered fatal error state: Failed to start AI session: Server error '500 Internal Server Error' for url '
https://api.openai.com/v1/realtime/calls'
For more information check:
https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/500
2026-07-30 15:21:17.072| Warn|{} extract_call_api_error_message: unparsable HTTP error body: Internal Server Error
2026-07-30 15:21:17.072| Info|{} PBX eventlog report requested: type=fatal_error msg=Internal Server Error
2026-07-30 15:21:17.072| Info|{} PBX eventlog report SUPPRESSED (aggregated within window): type=fatal_error msg=Internal Server Error
2026-07-30 15:21:17.073| Info|{'call': 28} fatal fallback isn't configured: drop the call
2026-07-30 15:21:17.073|Debug|{'u': '1026'} Send RequestDropCall
2026-07-30 15:21:17.091|Debug|{'call': 28} PBX call closed, close scheduled
2026-07-30 15:21:17.091|Debug|{'call': 28} Closing the call
2026-07-30 15:21:17.091|Debug|{'call': 28} Closing endpoint_pc
2026-07-30 15:21:17.092|Debug|{'call': 28, 'dir': 'pbx'} Closing super
2026-07-30 15:21:17.093|Trace|{'call': 28, 'dir': 'pbx'} RTCDtlsTransport(client) - DTLS shutdown complete
2026-07-30 15:21:17.093|Trace|{'call': 28, 'dir': 'pbx'} RTCDtlsTransport(client) - State.CONNECTED -> State.CLOSED
2026-07-30 15:21:17.093|Trace|{'call': 28, 'dir': 'pbx'} RTCPeerConnection() connectionState connected -> closed
2026-07-30 15:21:17.093| Info|{'call': 28, 'dir': 'pbx'} endpoint_pc.state > closed
2026-07-30 15:21:17.094| Warn|{'call': 28, 'dir': 'pbx'} Endpoint PC lost connection; forcing idle & closing bridge
2026-07-30 15:21:17.094|Debug|{'call': 28, 'dir': 'pbx'} StunProtocol(Connection(9))#9 Socket RELEASED 10.0.0.22:59321 (close())
2026-07-30 15:21:17.095|Trace|{'call': 28, 'dir': 'pbx'} RTCIceTransport(controlling) - completed -> closed
2026-07-30 15:21:17.095|Trace|{'call': 28, 'dir': 'pbx'} RTCPeerConnection() iceConnectionState completed -> closed
2026-07-30 15:21:17.096|Debug|{'call': 28, 'dir': 'pbx'} Closing complete
2026-07-30 15:21:17.097|Debug|{'call': 28} Closing ai leg
2026-07-30 15:21:17.097| Info|{'call': 28, 'dir': 'ai'} downlink gate OPENED
2026-07-30 15:21:17.097| Info|{'call': 28, 'dir': 'ai'} OpenAI call CLOSE: openai_call_id=None
2026-07-30 15:21:17.098|Debug|{'call': 28, 'dir': 'ai'} Closing super
2026-07-30 15:21:17.098|Debug|{'call': 28, 'dir': 'ai'} StunProtocol(Connection(10))#11 Socket RELEASED 10.0.0.22:48147 (close())
2026-07-30 15:21:17.099|Trace|{'call': 28, 'dir': 'ai'} RTCIceTransport(controlling) - new -> closed
2026-07-30 15:21:17.099|Trace|{'call': 28, 'dir': 'ai'} RTCPeerConnection() iceConnectionState new -> closed
2026-07-30 15:21:17.099|Trace|{'call': 28, 'dir': 'ai'} RTCPeerConnection() connectionState new -> closed
2026-07-30 15:21:17.099|Debug|{'call': 28, 'dir': 'ai'} StunProtocol(Connection(11))#10 Socket RELEASED 10.0.0.22:57582 (close())
2026-07-30 15:21:17.100|Trace|{'call': 28, 'dir': 'ai'} RTCIceTransport(controlling) - new -> closed
2026-07-30 15:21:17.102|Debug|{'call': 28, 'dir': 'ai'} Closing complete
2026-07-30 15:21:17.102| Info|{'call': 28} transcript is enabled: True
2026-07-30 15:21:17.102| Info|{'call': 28} announcement type is: None, email extension is:
2026-07-30 15:21:17.103| Info|{'call': 28} USAGE CALL: {'duration_s': 1.0381203321740031, 'realtime': {'total_tokens': 0, 'input_tokens': 0, 'output_tokens': 0, 'input_text_tokens': 0, 'input_audio_tokens': 0, 'input_text_cached_tokens': 0, 'input_audio_cached_tokens': 0, 'output_text_tokens': 0, 'output_audio_tokens': 0, 'responses_count': 0, 'context_window_size': 0, 'model': 'gpt-realtime-2'}, 'transcription': {'usage_type': None, 'total_tokens': 0, 'input_tokens': 0, 'output_tokens': 0, 'input_text_tokens': 0, 'input_audio_tokens': 0, 'duration_seconds': 0, 'events_count': 0, 'model': 'gpt-realtime-whisper'}, 'analysis': {'total_tokens': 0, 'input_tokens': 0, 'output_tokens': 0, 'runs_count': 0, 'by_model': {}}}