Open in
นำหมายเลขของคุณเองมาใช้ (VoIP, API)
เชื่อมต่อ Twilio หรือ Telnyx — หรือ SIP trunk ใดก็ได้ — นำเข้าหมายเลขโทรศัพท์ที่คุณมีอยู่แล้ว และให้เอเจนต์ ThunderPhone รับสายและโทรออกผ่านหมายเลขเหล่านั้น
หมายเลข ThunderPhone รองรับสายเรียกเข้า แต่สายเรียกออกและแคมเปญต้องใช้หมายเลขที่คุณเป็นเจ้าของผ่านผู้ให้บริการ VoIP ของคุณเอง คู่มือนี้จะแนะนำขั้นตอน 3 ขั้นตอน: ทดสอบข้อมูลรับรอง → สร้างการเชื่อมต่อ → นำเข้าหมายเลข → ยืนยัน
ผู้ให้บริการที่รองรับ
| ผู้ให้บริการ | รหัส provider | หมายเหตุ |
|---|---|---|
| Twilio | twilio | Account SID + Auth Token; หนึ่งการเชื่อมต่อสำหรับแต่ละบัญชีหรือบัญชีย่อยของ Twilio (ดู บัญชีย่อยของ Twilio) |
| Telnyx | telnyx | คีย์ API; มีการเริ่มต้นใช้งานแบบมีคำแนะนำ (setup_method: guided_telnyx) |
| SignalWire | signalwire | เร็ว ๆ นี้ — เชื่อมต่อผ่าน Manual SIP ได้ในวันนี้ |
| Vonage | vonage | เร็ว ๆ นี้ — เชื่อมต่อผ่าน Manual SIP ได้ในวันนี้ |
| Manual SIP | manual | SIP 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 ด้วยหลักฐานใหม่
บัญชีย่อย Twilio
การเชื่อมต่อ Twilio จะผูกกับบัญชี Twilio เดียวที่มี Account SID และ Auth Token อยู่ Twilio จะเก็บหมายเลขโทรศัพท์และ SIP trunk ไว้ภายในบัญชีย่อยแต่ละบัญชี ดังนั้นการเชื่อมต่อที่สร้างด้วยบัญชีหลัก จะเห็นเฉพาะหมายเลขของบัญชีหลักเท่านั้น และไม่สามารถเปลี่ยนการเชื่อมต่อที่มีอยู่ ไปยังบัญชีย่อยอื่นในภายหลังได้ (ระบบจะปฏิเสธการอัปเดตเนื่องจาก SIP trunk ของการเชื่อมต่ออยู่ในบัญชีเดิม)
หากต้องการเข้าถึงหมายเลขที่อยู่ในบัญชีย่อย ให้สร้างการเชื่อมต่อหนึ่งรายการต่อ บัญชีย่อย แดชบอร์ดดำเนินการนี้ให้คุณ: เมื่อคุณเชื่อมต่อบัญชีหลัก ที่มีบัญชีย่อยที่ใช้งานอยู่ กล่องโต้ตอบการตั้งค่าจะแสดงรายการบัญชีย่อย คุณ เลือกบัญชีที่ต้องการ แล้ว ThunderPhone จะสร้างการเชื่อมต่อ (และ SIP trunk) ในแต่ละบัญชี ขั้นตอนเดียวกันนี้ใช้งานผ่าน API ได้:
# Discover active subaccounts visible to the parent credentials
curl -X POST https://api.thunderphone.com/v1/voip-connections/twilio/subaccounts \
-H "Authorization: Bearer sk_live_YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"credentials": {"accountSid": "ACparent...", "authToken": "..."}}'{
"discovery_id": "7c1e...",
"parent": { "sid": "ACparent...", "friendly_name": "Acme" },
"subaccounts": [
{ "sid": "ACsupport...", "friendly_name": "Acme Support", "already_connected": false, "connection_id": null },
{ "sid": "ACsales...", "friendly_name": "Acme Sales", "already_connected": true, "connection_id": 5 }
]
}# Create a connection for each selected subaccount
curl -X POST https://api.thunderphone.com/v1/voip-connections/twilio/subaccounts/connect \
-H "Authorization: Bearer sk_live_YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"discovery_id": "7c1e...", "subaccount_sids": ["ACsupport..."]}'การตอบกลับมีหนึ่งแถวต่อบัญชีย่อย โดยมี status เป็น
created, skipped (เชื่อมต่อแล้ว) หรือ failed พร้อม error
ที่คุณสามารถดำเนินการแก้ไขได้ แต่ละแถวเป็นอิสระต่อกัน ดังนั้นความล้มเหลวในบัญชีย่อยหนึ่ง
จะไม่ขัดขวางบัญชีอื่น และ discovery_id จะยังใช้ได้เป็นเวลา 30
นาที จึงสามารถลองแถวที่ล้มเหลวอีกครั้งได้ บันทึกโทเค็นของบัญชีย่อยจะถูก
อ่านจาก Twilio ในเวลาค้นหาและจัดเก็บไว้ในการเชื่อมต่อใหม่
โดย API จะไม่ส่งโทเค็นเหล่านี้กลับมา การเชื่อมต่อใหม่แต่ละรายการจะนำเข้า
และยืนยันหมายเลขในลักษณะเดียวกับการเชื่อมต่อที่คุณสร้างด้วยตนเองทุกประการ
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. ยืนยันหมายเลขที่นำเข้าแต่ละหมายเลข
การนำเข้าจะลงทะเบียนหมายเลขให้เป็น พร้อมใช้งาน แต่การกำหนดเส้นทางสาย ผ่านหมายเลขนั้นจริงต้องมีการยืนยัน สำหรับการเชื่อมต่อผู้ให้บริการ (Twilio และ Telnyx) ระบบจะตรวจสอบข้อมูลรับรองผู้ให้บริการและการเข้าถึง SIP อีกครั้ง สำหรับการเชื่อมต่อ SIP แบบกำหนดเอง ระบบจะโทรทดสอบสั้น ๆ (ไม่กี่ วินาที และวางสายโดยอัตโนมัติ) จาก หมายเลขนั้น ผ่าน SIP trunk ของคุณ ไปยัง หมายเลข ThunderPhone เพื่อพิสูจน์ว่าได้ตั้งค่าชื่อผู้ใช้ รหัสผ่าน การขนส่ง และการกำหนดเส้นทางขาออกของ trunk ใช้งานได้จริง ผู้ให้บริการเครือข่าย ของคุณจะคิดค่าบริการสายนี้เช่นเดียวกับสายอื่น
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 แบบกำหนดเอง จะเป็นคำตอบ SIP ของผู้ให้บริการ
เครือข่าย ตัวอย่างเช่น "ปฏิเสธข้อมูลรับรองของ ThunderPhone (SIP 401)"
หรือ "ไม่สามารถกำหนดเส้นทางสายได้ (SIP 404)" ให้แก้ไขปัญหา
(ข้อมูลรับรอง IP ต้นทางที่อนุญาต หรือการกำหนด trunk ที่ขาดหายไปในแดชบอร์ด
ของผู้ให้บริการ) แล้วเรียกใช้อีกครั้ง
5. กำหนดเอเจนต์และรับสาย
เมื่อยืนยันหมายเลขแล้ว คุณสามารถกำหนดเอเจนต์ขาเข้า / ขาออกได้เช่นเดียวกับ หมายเลข ThunderPhone ดู จัดการสายขาเข้า และ โทรออก
การหมุนเวียนข้อมูลรับรอง
เมื่อมีการหมุนเวียนคีย์ของผู้ให้บริการ ให้เรียกใช้ขั้นตอนทดสอบแล้วอัปเดตอีกครั้ง:
# 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"
}'การเชื่อมต่อจะยังคงอยู่ ไม่จำเป็นต้องนำเข้าหมายเลขใหม่