โทรออก (API)

การโทรออกช่วยให้คุณส่งหมายเลขปลายทางและการกำหนดค่าเอเจนต์ไปยัง ThunderPhone เพื่อให้ AI โทรออกแทนคุณ กรณีการใช้งานทั่วไป:

ข้อกำหนดเบื้องต้น

  1. เตรียมหมายเลข VoIP

    การโทรออกกำหนดให้คุณเป็นเจ้าของ from_number ผ่าน การเชื่อมต่อ VoIP หมายเลขเดโม ใช้รับสายเข้าเท่านั้น ดู นำหมายเลขของคุณมาใช้

  2. สร้างเอเจนต์

    พรอมป์ต์สำหรับการโทรออกมักเริ่มต้นด้วยการที่เอเจนต์ระบุตัวตน และวัตถุประสงค์ — "สวัสดี นี่คือ Acme โทรมาเพื่อ ยืนยันนัดหมายของคุณพรุ่งนี้เวลา 15:00 น.…" ตั้งค่า outbound_speak_order เป็น agent_first (ค่าเริ่มต้น)

  3. รักษายอดคงเหลือให้เป็นบวก

    การโทรออกจะส่งกลับ 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 นาที)


ขั้นตอนถัดไป