นำหมายเลขของคุณมาใช้เอง (VoIP, API)

หมายเลขสาธิตเหมาะสำหรับการสร้างต้นแบบ แต่ทราฟฟิกในระบบใช้งานจริงควร ใช้หมายเลขที่คุณเป็นเจ้าของผ่านผู้ให้บริการ VoIP ของคุณเอง คู่มือนี้จะแนะนำ ขั้นตอน 3 ขั้นตอน: ทดสอบข้อมูลรับรอง → สร้าง การเชื่อมต่อ → นำเข้าหมายเลข → ตรวจสอบยืนยัน

ผู้ให้บริการที่รองรับ

ผู้ให้บริการรหัส providerหมายเหตุ
Twiliotwilioคีย์ API + ซีเคร็ต
Telnyxtelnyxคีย์ API; มีการเริ่มต้นใช้งานแบบมีคำแนะนำ (setup_method: guided_telnyx)
SignalWiresignalwireเร็ว ๆ นี้ — เชื่อมต่อผ่าน SIP ด้วยตนเองได้ในวันนี้
Vonagevonageเร็ว ๆ นี้ — เชื่อมต่อผ่าน SIP ด้วยตนเองได้ในวันนี้
SIP ด้วยตนเองmanualSIP trunk ใดก็ได้ — ใช้การกำหนดค่าของคุณเอง

1. ทดสอบข้อมูลรับรอง

ก่อนสร้างการเชื่อมต่อ VoIP แบบถาวร ให้ตรวจสอบข้อมูลรับรองของผู้ให้บริการ เพื่อยืนยันว่าใช้งานได้ การดำเนินการนี้จะส่งคืน verification_evidence_id เพื่อนำไปใช้ในขั้นตอนการสร้าง เพื่อไม่ให้ มีการคิดค่าทดสอบข้อมูลรับรองซ้ำ

curl -X POST https://api.thunderphone.com/v1/voip-connections/test \
  -H "Authorization: Bearer sk_live_YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "provider":    "telnyx",
    "credentials": { "apiKey": "KEY...", "connectionId": "123456" },
    "sip_config":  { "domain": "acme.sip.telnyx.com" }
  }'
{
  "status": "pass",
  "verification_evidence_id": "b9a2...",
  "suggested_connection_name": "Telnyx: Acme Main (+15550001234)",
  "checks": {
    "credentials_valid": true,
    "inbound_reachable": true,
    "outbound_authorized": true
  }
}

หากการตรวจสอบใดล้มเหลว status ในการตอบกลับจะเป็น fail และ checks จะ แสดงขั้นตอนที่ล้มเหลว แก้ไขการกำหนดค่าฝั่งผู้ให้บริการ (การกำหนด trunk รายการอนุญาต IP การอนุญาตสายขาออก) แล้วลองอีกครั้ง

2. สร้างการเชื่อมต่อ

ส่ง verification_evidence_id ที่เพิ่งได้รับ:

curl -X POST https://api.thunderphone.com/v1/voip-connections \
  -H "Authorization: Bearer sk_live_YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "name":         "Acme Telnyx Main",
    "provider":     "telnyx",
    "setup_method": "api_key",
    "credentials":  { "apiKey": "KEY...", "connectionId": "123456" },
    "sip_config":   { "domain": "acme.sip.telnyx.com" },
    "verification_evidence_id": "b9a2..."
  }'

การตอบกลับคือ ออบเจ็กต์ VoipConnection ที่มี status="connected" ข้อมูลรับรองจะจัดเก็บไว้ฝั่งเซิร์ฟเวอร์และจะไม่ ถูกส่งกลับเป็นข้อความล้วนในการเรียก GET ครั้งถัดไป — หากต้องการหมุนเวียน ให้เรียก test ใหม่และ PATCH ด้วยหลักฐานใหม่

3. แสดงรายการและนำเข้าหมายเลข

ตรวจสอบหมายเลขที่ข้อมูลรับรองของคุณมองเห็นและยังไม่ได้อยู่ ในองค์กร ThunderPhone:

curl https://api.thunderphone.com/v1/voip-connections/5/available-numbers \
  -H "Authorization: Bearer sk_live_YOUR_API_KEY"

จากนั้นนำเข้าหมายเลขที่ต้องการ:

curl -X POST https://api.thunderphone.com/v1/voip-connections/5/import-numbers \
  -H "Authorization: Bearer sk_live_YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"numbers": ["+15550001234", "+15550009999"]}'

การนำเข้าแต่ละรายการจะกลายเป็นทรัพยากรหมายเลขโทรศัพท์ ในองค์กรของคุณ โดยมี source="voip" และ status="provisioning"

4. ยืนยันหมายเลขที่นำเข้าแต่ละหมายเลข

การนำเข้าจะลงทะเบียนหมายเลขเป็น พร้อมใช้งาน แต่การกำหนดเส้นทางสายผ่านหมายเลขนั้นจริงต้องมีการยืนยันแบบไป-กลับ (การตรวจสอบการโทรเข้าจากภายนอก + การทดสอบการอนุญาตโทรออก)

curl -X POST https://api.thunderphone.com/v1/phone-numbers/{id}/verify-voip \
  -H "Authorization: Bearer sk_live_YOUR_API_KEY"

เมื่อสำเร็จ voip_verification_status จะเปลี่ยนเป็น verified และหมายเลขจะเข้าสู่ status="active" หากล้มเหลว การตอบกลับจะระบุสิ่งที่ล้มเหลวอย่างชัดเจน — แก้ไขปัญหา (มักเป็นการไม่ได้กำหนด trunk ในแดชบอร์ดของผู้ให้บริการ) แล้วเรียกอีกครั้ง

5. กำหนดเอเจนต์และรับสาย

เมื่อยืนยันหมายเลขแล้ว ให้กำหนดเอเจนต์สำหรับสายเข้า / สายออกด้วยวิธีเดียวกับหมายเลขเดโม ดู จัดการสายเข้า และ โทรออก

การหมุนเวียนข้อมูลรับรอง

เมื่อคีย์ของผู้ให้บริการมีการหมุนเวียน ให้เรียกใช้ขั้นตอนทดสอบแล้วอัปเดตอีกครั้ง:

# 1. Test the new credentials
curl -X POST https://api.thunderphone.com/v1/voip-connections/test ...

# 2. PATCH the connection with the new evidence
curl -X PATCH https://api.thunderphone.com/v1/voip-connections/{id} \
  -H "Authorization: Bearer sk_live_YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "credentials": { "apiKey": "NEW_KEY..." },
    "verification_evidence_id": "fresh-evidence-id"
  }'

การเชื่อมต่อจะยังคงอยู่ — ไม่จำเป็นต้องนำเข้าหมายเลขอีกครั้ง


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