يُرجع GET /api/v1/voice/calls/{id} حالة المكالمة ومدتها والرصيد المخصوم وملخصها وتحليلها ونصها المفرَّغ. اعرض المكالمات عبر GET /api/v1/voice/calls?agent_id=&status=&channel=&user_id=&page= (user_id: معرّفك الخاص للشخص، من رمز مكالمة ويب). وturns فيها هو سجل تصحيح المكالمة دورًا بدور: أين ذهب الوقت منذ أن أنهى المتصل كلامه حتى سمع الإجابة، بالملّي ثانية — waitMs (نهاية الكلام) وsttMs (التعرّف) وllmMs (أول كلمة من النموذج، وواحدة إضافية لكل جولة دوال) وttsMs (أول صوت من الصوت) وfirstAudioMs (سماع الإجابة) — مع الدوال المستدعاة والمقاطعات والأخطاء. وتعرضه صفحة المكالمة أيضًا.
مع recording_enabled تُسجَّل كل مكالمة بصيغة WAV ثنائي القناة: المتصل على اليسار والوكيل على اليمين، بمعدل أخذ العينات في المكالمة. مع recording_consent: "announce" يقول الوكيل أولًا إن المكالمة مسجَّلة؛ ومع "ask" يسأل، ولا يُحتفظ بالتسجيل إلا إذا وافق المتصل (عدم الرد يُعدّ رفضًا)؛ ومع "none" لا يُقال شيء. تحقق مما يشترطه القانون في المكان الذي تقيمون فيه أنت ومتصلوك.
تُحفظ التسجيلات في تخزين EvaSay، أو في bucket خاص بك متوافق مع S3 (AWS S3 أو Cloudflare R2 أو Google Cloud Storage أو Supabase أو MinIO) تضبطه من التكاملات ← Webhooks والإشعارات ← تخزين التسجيلات. يرفع الـworker الذي يشغّل المكالمة الملف مباشرة إلى الـbucket. يُرجع GET /api/v1/voice/calls/{id} الحقل recordingUrl صالحًا لمدة ساعة بعد تخزين التسجيل، وrecording.status (recording أو stored أو declined أو failed).
يحذف DELETE /api/v1/voice/calls/{id} مكالمة منتهية مع النص المكتوب والتسجيل (في تخزين EvaSay أو في الحاوية الخاصة بك) والتحليل وسجلات Webhook. تبقى Credits المستخدمة في سجل الأرصدة. المكالمة التي لا يمكن حذفها بعد تُرجع 409 مع code call_not_deletable_yet: لا تزال جارية أو انتهت للتو، أو لا تزال قيد المحاسبة، أو قد يكون تسجيلها لا يزال قيد الرفع، أو عليها Credits لم يغطها رصيدك (أضف Credits أولًا).
عندما يطلب شخص حذف بياناته، يحذف POST /api/v1/voice/calls/delete-by-caller مع { "phone_number": "+14155550123" } كل المكالمات مع هذا الرقم (رقم المتصل في المكالمات الواردة، والرقم المطلوب في الصادرة)، أو مع { "user_id": "..." } كل مكالمات الويب التي حمل رمزها هذا user_id. الرد هو { "deleted": 12, "kept_back": { "settling": 1 }, "more": false }: 200 مكالمة على الأكثر في كل طلب، فكرّر الطلب ما دام more يساوي true، ثم لاحقًا للمكالمات في kept_back. إذا كان الرقم في قائمة عدم الاتصال، يبقى فيها. تقوم لوحة التحكم بالأمر نفسه من المكالمات → حذف بيانات متصل.