dograh/api/services/telephony/providers
Mubashir Rahim ace4903c0e fix(telephony): handle Cloudonix CDR payloads missing session/disposition
The /cloudonix/cdr webhook is a public, unauthenticated endpoint that parses
arbitrary external JSON. It dereferenced cdr_data.get("session").get("token")
unconditionally, so a partial or malformed CDR payload that omits "session"
(or sends "session": null) raised AttributeError -> HTTP 500. The existing
"Missing call_id field" guard right below it was unreachable because the crash
happened first.

StatusCallbackRequest.from_cloudonix_cdr had the same fragility plus a second
one: data.get("disposition", "") returns None when the key is present-but-null,
and None.upper() then crashed.

Navigate both fields defensively so missing/null values fall through to the
intended graceful error path instead of crashing. Adds regression tests
covering missing session, null session, null disposition, and the well-formed
mapping path.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-03 14:22:01 +05:00
..
ari feat: add openai realtime models (#298) 2026-05-16 18:05:23 +05:30
cloudonix fix(telephony): handle Cloudonix CDR payloads missing session/disposition 2026-06-03 14:22:01 +05:00
plivo feat: add ultravox realtime and fix signature issue in telephony (#345) 2026-05-23 12:51:55 +05:30
telnyx chore: format release please changelogs 2026-06-02 13:42:55 +05:30
twilio fix(telephony): resolve transfer context via call-sid index instead of KEYS scan (#387) 2026-06-02 12:56:05 +05:30
vobiz fix: fix vobiz webhook signature validation 2026-05-25 18:30:06 +05:30
vonage feat: add openai realtime models (#298) 2026-05-16 18:05:23 +05:30
__init__.py feat: refactor telephony to support multiple telephony configurations (#251) 2026-04-29 11:39:57 +05:30
AGENTS.md feat: add Review AGENTS.md Skill 2026-05-20 16:20:07 +05:30
CLAUDE.md chore: refactor AGENTS.md 2026-05-20 15:56:52 +05:30