โทรออก (API)
การโทรออกช่วยให้คุณส่งหมายเลขปลายทางและการกำหนดค่าเอเจนต์ไปยัง ThunderPhone เพื่อให้ AI โทรออกแทนคุณ กรณีการใช้งานทั่วไป:
- การยืนยันนัดหมาย
- การโทรกลับเพื่อทำแบบสำรวจ
- การติดตามผล "ครั้งที่สอง" หลังพลาดสาย
- การแจ้งเตือนลักษณะงานจัดส่ง
ข้อกำหนดเบื้องต้น
- เตรียมหมายเลข VoIP
การโทรออกกำหนดให้คุณเป็นเจ้าของ
from_numberผ่าน การเชื่อมต่อ VoIP หมายเลขเดโม ใช้รับสายเข้าเท่านั้น ดู นำหมายเลขของคุณมาใช้ - สร้างเอเจนต์
พรอมป์ต์สำหรับการโทรออกมักเริ่มต้นด้วยการที่เอเจนต์ระบุตัวตน และวัตถุประสงค์ — "สวัสดี นี่คือ Acme โทรมาเพื่อ ยืนยันนัดหมายของคุณพรุ่งนี้เวลา 15:00 น.…" ตั้งค่า
outbound_speak_orderเป็นagent_first(ค่าเริ่มต้น) - รักษายอดคงเหลือให้เป็นบวก
การโทรออกจะส่งกลับ
402 Payment Requiredหากยอดคงเหลือ ≤$0.00เติมเงินผ่านPOST /v1/billing/top-upหรือเปิดใช้ การเติมเงินอัตโนมัติ
โทรออกด้วยเอเจนต์ที่บันทึกไว้
วิธีที่ง่ายที่สุด — อ้างอิงเอเจนต์ด้วย id:
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": "+14155550199",
"agent_id": 12
}'
การตอบกลับ:
{ "call_id": 987654321, "status": "initiated" }
โทรออกด้วยการกำหนดค่าแบบอินไลน์
หากคุณต้องการพรอมป์ต์แบบใช้ครั้งเดียวที่ไม่คุ้มค่าจะบันทึกเป็นเอเจนต์
ให้ส่ง config แทน โครงสร้างจะตรงกับสคีมาการตอบกลับของ
call.incoming webhook:
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": "+14155550199",
"config": {
"prompt": "You are confirming Jane Doe appointment for 3pm tomorrow…",
"voice": "john",
"product": "spark"
}
}'
ติดตามการโทร
ในเวลาเดียวกัน ให้สมัครรับ
telephony.complete webhook —
ซึ่งเป็นวิธีที่เร็วที่สุดในการทราบว่าสายสิ้นสุดแล้ว หากคุณไม่สามารถรับ
webhook ขาเข้าได้ ให้ตรวจสอบ GET /v1/calls/{call_id} ทุกไม่กี่วินาที
ระเบียนจะมี end_reason, duration_seconds และ URL ของไฟล์บันทึกเสียง
เมื่อสายสิ้นสุด
รูปแบบความล้มเหลวที่ควรจัดการ
| ข้อผิดพลาด | วิธีแก้ไข |
|---|---|
402 Payment Required | เติมยอดคงเหลือหรือเปิดใช้การเติมเงินอัตโนมัติ |
403 บล็อกการโทรออก (หมายเลขเดโม) | ใช้หมายเลข VoIP แทน |
403 บล็อกการโทรออก (VoIP ที่ยังไม่ยืนยัน) | เรียกใช้ POST /v1/phone-numbers/{id}/verify-voip |
404 from_number is not registered to this organization | ยืนยันว่า from_number ตรงกับหมายเลขโทรศัพท์ที่คุณเป็นเจ้าของ |
502 Bad Gateway | ความล้มเหลวชั่วคราวของ SIP / LiveKit สามารถลองใหม่ได้อย่างปลอดภัย |
การควบคุมเวลาในการรอสาย
การโทรออกที่ใช้เวลานานเนื่องจากผู้รับสายตอบสนองช้า
(เมนู IVR คิว) สามารถกำหนดเพดานได้ด้วย max_hold_seconds:
{
"from_number": "+15551234567",
"to_number": "+14155550199",
"agent_id": 12,
"max_hold_seconds": 120
}
เอเจนต์จะวางสายหากไม่ได้รับเสียงมนุษย์ในช่วง N วินาทีที่ผ่านมา ค่าเริ่มต้นคือ 900 (15 นาที)