Open in
إجراء مكالمات صادرة (API)
فعِّل مكالمة صادرة يقودها الذكاء الاصطناعي من تعليماتك البرمجية — لاستطلاعات الرأي أو المتابعة أو مسارات التأكيد.
تتيح لك المكالمات الصادرة تزويد ThunderPhone برقم وجهة وإعدادات وكيل، ليجري الذكاء الاصطناعي المكالمة نيابةً عنك. حالات الاستخدام الشائعة:
- تأكيدات المواعيد
- معاودة الاتصال للاستبيانات
- متابعات «المحاولة الثانية» بعد مكالمة فائتة
- إشعارات على نمط الإرسال
المتطلبات الأساسية
- اختر رقماً مفعّلاً للمكالمات الصادرة
استخدم رقماً تملكه عبر اتصال VoIP، أو اطلب الإذن لاستخدام أرقام ThunderPhone الخاصة بك للمكالمات الصادرة من صفحة أرقام الهاتف. تبدأ أرقام ThunderPhone مخصصة للمكالمات الواردة فقط. تراجع ThunderPhone كل طلب يدوياً؛ وبعد الموافقة، يمكن لتلك الأرقام إجراء مكالمات حتى الحد اليومي المعتمد (يُعاد ضبطه عند 00:00 UTC) وتشغيل الحملات، ويمكنك طلب حد أعلى. لا تملك أرقام VoIP الخاصة بالعملاء حداً يومياً، لذا نوصي بها للمكالمات الصادرة. راجع استخدم أرقامك الخاصة.
- أنشئ وكيلاً
يميل موجّه مخصص للمكالمات الصادرة إلى البدء بتعريف الوكيل بنفسه والغرض منه — "مرحباً، هذه Acme تتصل لتأكيد موعدك غداً الساعة 3 مساءً…" عيّن
outbound_speak_orderإلىagent_first(الإعداد الافتراضي). - حافظ على رصيد موجب
تُرجع المكالمات الصادرة
402 Payment Requiredإذا كان الرصيد ≤$0.00. أضف رصيداً أو فعّل إعادة التعبئة التلقائية ضمن المؤسسة ← إعدادات الفوترة في لوحة التحكم. يمكن لمفتاحsk_live_الخاص بك التحقق من الرصيد باستخدامGET /v1/billing، لكنه لا يمكنه إضافة رصيد أو تغيير إعادة التعبئة التلقائية.
إجراء مكالمة باستخدام وكيل محفوظ
أبسط طريقة — الإشارة إلى وكيل باستخدام معرّفه:
curl -X POST https://api.thunderphone.com/v1/call \
-H "Authorization: Bearer sk_live_YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"from_number": "+15551234567",
"to_number": "+14155552671",
"agent_id": 12
}'الاستجابة:
{ "call_id": 987654321, "status": "initiated" }إجراء مكالمة باستخدام إعدادات مضمنة
إذا كنت تريد موجّهًا لمرة واحدة لا يستحق الحفظ كوكيل،
فمرّر config بدلًا من ذلك. يتطابق الشكل مع مخطط استجابة
خطاف الويب call.incoming:
curl -X POST https://api.thunderphone.com/v1/call \
-H "Authorization: Bearer sk_live_YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"from_number": "+15551234567",
"to_number": "+14155552671",
"config": {
"prompt": "You are confirming Jane Doe appointment for 3pm tomorrow…",
"voice": "john",
"product": "spark"
}
}'متابعة المكالمة
بالتوازي، اشترك في
ويبهوك telephony.complete —
وهي أسرع طريقة لمعرفة انتهاء المكالمة. إذا لم تتمكن من قبول
ويبهوكات واردة، فاستطلع GET /v1/calls/{call_id} كل بضع ثوانٍ؛
يتضمن السجل end_reason وduration_seconds ورابط التسجيل
بعد انتهاء المكالمة.
إذا كان وكيلك مُعدًّا لاستخراج بيانات منظّمة بعد المكالمة، تُسلَّم تلك البيانات بشكل منفصل بعد اكتمال الإنهاء.
تمرير متغيرات لكل مكالمة إلى وكيل محفوظ
يمكن للوكلاء المحفوظين استخدام عناصر نائبة مثل {{name}} أو {{name|there}} في
نص الموجّه. عند إجراء مكالمة صادرة باستخدام agent_id، مرّر
variables بالقيم الخاصة بتلك المكالمة:
{
"from_number": "+[REDACTED_PHONE]",
"to_number": "+[REDACTED_PHONE]",
"agent_id": 12,
"variables": {
"name": "Jordan"
}
}استخدم قيماً نصية بمفاتيح تحمل أسماء العناصر النائبة. تنطبق هذه المتغيرات على
الوكلاء المحفوظين؛ ولا يستخدم مثال config المضمّن في هذا الدليل هذه المتغيرات.
أوضاع الفشل التي تستحق المعالجة
| الخطأ | الحل |
|---|---|
402 Payment Required | اشحن الرصيد أو فعّل إعادة الشحن التلقائية |
400 مع code: destination_not_allowed | لا يتصل ThunderPhone بهذا الرقم: أرقام غير صالحة، أو أرقام طوارئ، أو أرقام برسوم إضافية، أو رموز قصيرة، أو بلدان خاضعة للعقوبات. من أرقام ThunderPhone، يُسمح فقط بالأرقام العادية في الولايات المتحدة وكندا، دون أرقام برسوم إضافية. يوضح reason أيّها ينطبق؛ راجع الوجهات المحظورة |
409 مع retryable: false لرقم ThunderPhone | اتبع code: اطلب تفعيل الاتصال الصادر في صفحة أرقام الهاتف، أو انتظر مراجعة معلّقة، أو استخدم رقمًا آخر مؤهلًا |
429 مع code: platform_outbound_daily_limit_reached | استخدمت المؤسسة مكالمات اليوم الصادرة من أرقام ThunderPhone. انتظر resets_at (00:00 UTC)، أو اطلب حدًا أعلى في صفحة أرقام الهاتف، أو اتصل من رقم على اتصال VoIP الخاص بك |
429 مع code: concurrent_call_limit_reached | لدى المؤسسة عدد مكالمات جارية يساوي حد المكالمات المتزامنة لديها (20 افتراضيًا، بما في ذلك المكالمات الواردة والصادرة ومكالمات الويب والاختبار). أعد المحاولة بعد عدد الثواني الوارد في ترويسة Retry-After أو عند انتهاء مكالمة؛ أرسل بريدًا إلكترونيًا إلى support@thunderphone.com لرفع الحد |
429 مع code: same_number_too_soon | اتصلت بالرقم نفسه to_number قبل أقل من 10 ثوانٍ. أعد المحاولة بعد عدد الثواني الوارد في ترويسة Retry-After |
409 مع retryable: false لرقم VoIP تابع لعميل | صحح الحالة التي يحددها code؛ عند فشل التحقق، نفّذ POST /v1/phone-numbers/{id}/verify-voip |
تعارض التكرار 409 | أعد استخدام المفتاح فقط مع الطلب الأصلي بعد توحيده، أو أرسل مفتاحًا جديدًا |
404 from_number is not registered to this organization | تأكد من أن from_number يطابق رقم هاتف نشطًا في مؤسستك. يعيد الرقم الذي يجري تجهيزه بالفعل، أو الذي فشل، أو الذي يجري إصداره، أو الذي صدر أيضًا هذه الاستجابة |
500 مع حقل detail فقط | لم يتم إعداد مسار صادر. تواصل مع الدعم؛ هذه ليست مشكلة في حالة الرقم يمكنك تصحيحها |
502 Bad Gateway | فشل عابر في SIP / LiveKit؛ يمكن إعادة المحاولة بأمان |
راجع مرجع المكالمات الصادرة
للاطلاع على القائمة الكاملة المستقرة لرموز الأهلية وكلا شكلي استجابة 409.
إذا أصبح رقم نشط غير مؤهل بعد قبول الطلب وقبل
إجراء المكالمة، يعيد الفحص النهائي حمولة 409 غير القابلة لإعادة المحاولة.
التحكم في وقت الانتظار
يمكن تحديد حد أقصى للمكالمات الصادرة التي تطول لأن الطرف المتصل به بطيء في الاستجابة
(قوائم هاتفية آلية، طوابير) باستخدام max_hold_seconds:
{
"from_number": "+15551234567",
"to_number": "+14155552671",
"agent_id": 12,
"max_hold_seconds": 120
}ينهي الوكيل المكالمة إذا لم يتم تلقي أي صوت بشري خلال آخر N ثانية. القيمة الافتراضية هي 900 ثانية (15 دقيقة).