diff --git a/server/src/sms/parse.ts b/server/src/sms/parse.ts index 8e90dee..6967e13 100644 --- a/server/src/sms/parse.ts +++ b/server/src/sms/parse.ts @@ -71,11 +71,17 @@ export function parseVonageInboundMessage(body: unknown): ParsedInboundSms | nul if (fileUrl) mediaUrls.push(fileUrl); } // Nested media shapes (best-effort) - const nestedMediaUrl = + const nestedContent = data.message && typeof data.message === 'object' - ? (((data.message as Record).content as Record | undefined)?.url as string) || '' - : ''; - if (nestedMediaUrl) mediaUrls.push(nestedMediaUrl); + ? ((data.message as Record).content as Record | undefined) + : undefined; + const nestedDirectUrl = (nestedContent?.url as string) || ''; + const nestedImageUrl = (nestedContent?.image as Record | undefined)?.url as string; + const nestedVideoUrl = (nestedContent?.video as Record | undefined)?.url as string; + const nestedFileUrl = (nestedContent?.file as Record | undefined)?.url as string; + for (const url of [nestedDirectUrl, nestedImageUrl, nestedVideoUrl, nestedFileUrl]) { + if (url) mediaUrls.push(url); + } const hasMedia = mediaUrls.length > 0 || channel === 'mms';