fix: harden cloudonix cdr session validation

This commit is contained in:
Sabiha Khan 2026-06-10 17:33:28 +05:30
parent ace4903c0e
commit f7b3dc1ceb
3 changed files with 29 additions and 2 deletions

View file

@ -103,7 +103,8 @@ async def handle_cloudonix_cdr(request: Request):
return {"status": "error", "message": "Missing domain field"}
# Extract call_id to find workflow run
call_id = (cdr_data.get("session") or {}).get("token")
session = cdr_data.get("session")
call_id = session.get("token") if isinstance(session, dict) else None
logger.info(f"Cloudonix CDR data for call id {call_id} - {cdr_data}")
if not call_id:
logger.warning("Cloudonix CDR missing call_id field")

View file

@ -116,9 +116,11 @@ class StatusCallbackRequest(BaseModel):
disposition = data.get("disposition") or ""
status = disposition_map.get(disposition.upper(), disposition.lower())
session = data.get("session")
call_id = session.get("token") if isinstance(session, dict) else ""
return cls(
call_id=(data.get("session") or {}).get("token") or "",
call_id=call_id or "",
status=status,
from_number=data.get("from"),
to_number=data.get("to"),