Open in
เชื่อมต่อผ่าน SIP (ไม่ต้องใช้หมายเลขโทรศัพท์)
ส่งสายไปยังเอเจนต์ ThunderPhone โดยตรงจาก PBX ผู้ให้บริการเครือข่าย หรือแอปพลิเคชัน SIP ของคุณ ด้วย SIP URI แบบใช้ครั้งเดียวต่อการโทร หรือที่อยู่ SIP แบบถาวร
หากระบบของคุณจัดการหมายเลขโทรศัพท์อยู่แล้ว (เช่น PBX แพลตฟอร์มคอนแทคเซ็นเตอร์ หรือบัญชีผู้ให้บริการที่คุณหมุนเวียนหมายเลข) คุณสามารถส่งสายไปยังเอเจนต์ ThunderPhone ผ่าน SIP มาตรฐานได้ คุณไม่ต้องนำเข้าหรือซื้อหมายเลขบน ThunderPhone ระบบของคุณโทรไปยังที่อยู่ SIP แล้วเอเจนต์จะรับสาย
ที่อยู่ SIP มีสองประเภท:
| SIP URI ต่อสาย | ปลายทาง SIP | |
|---|---|---|
| มีลักษณะเป็น | sip:c-<token>@sip.thunderphone.com | sip:agent-<id>-<letters>@sip.thunderphone.com |
| สร้างด้วย | POST /v1/calls/register-sip หนึ่งครั้งต่อสาย | POST /v1/sip-endpoints หนึ่งครั้ง |
| การยืนยันตัวตน | โทเค็นใช้ครั้งเดียวในที่อยู่ | ชื่อผู้ใช้ + รหัสผ่าน SIP digest (และรายการอนุญาต IP ต้นทางเพิ่มเติมได้) |
| เหมาะสำหรับ | แอปที่เรียก API อยู่แล้วก่อนโอนสาย ตัวแปรต่อสาย | PBX และผู้ให้บริการที่ควรเพียง "ชี้ทรังก์" ไปที่ ThunderPhone |
| ใช้ได้เป็นเวลา | 5 นาที หนึ่งสาย | จนกว่าคุณจะลบ |
ทั้งสองประเภทรวมสายไปยังเอเจนต์หนึ่งรายในองค์กรของคุณ และทั้งสองประเภทจะแสดงในประวัติการโทรเช่นเดียวกับสายเรียกเข้าอื่นๆ
SIP URI ต่อสาย
1. ลงทะเบียนสาย
curl -X POST https://api.thunderphone.com/v1/calls/register-sip \
-H "Authorization: Bearer sk_live_YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"agent_id": 12,
"to_number": "+14155550142",
"variables": {"customer_name": "Ada"}
}'{
"call_id": 862197007562,
"sip_uri": "sip:c-1790372992.Qm3xT8vLk2PzR7nYw4HbJa.uF6sD1gK9eW2cX5vB8nM0q@sip.thunderphone.com",
"expires_at": "2026-09-25T21:49:52Z",
"agent_id": 12,
"to_number": "+14155550142"
}to_number(ไม่บังคับ) คือหมายเลขที่ผู้โทรโทรเข้ามาทางฝั่งของคุณ ระบบจะบันทึกเป็นปลายทางของสายในประวัติการโทร และเอเจนต์จะเห็นเป็นหมายเลขของตนเองvariables(ไม่บังคับ) ใช้เติม{{placeholders}}ในพรอมป์ต์ของเอเจนต์ เช่นเดียวกับ การโทรออกcall_idคือ id ที่สายจะมีในประวัติการโทร (GET /v1/calls/{call_id}) เมื่อเชื่อมต่อแล้ว
2. โทรไปยัง URI
ส่งสายไปยัง sip_uri ภายใน 5 นาที URI ใช้ได้สำหรับหนึ่งสายเท่านั้น: เมื่อสายใดใช้แล้ว URI จะถูกใช้หมด แม้ว่าสายนั้นจะสิ้นสุดลงอย่างรวดเร็ว
ตัวอย่างเช่น เมื่อใช้ Twilio ให้ส่งคืน TwiML นี้สำหรับสายที่คุณต้องการส่งต่อ:
<Response>
<Dial>
<Sip>sip:c-1790372992.Qm3xT8vLk2PzR7nYw4HbJa.uF6sD1gK9eW2cX5vB8nM0q@sip.thunderphone.com;transport=tcp</Sip>
</Dial>
</Response>จาก PBX ให้โทรไปยัง URI ในฐานะปลายทาง SIP ไม่ต้องใช้ชื่อผู้ใช้หรือรหัสผ่าน โทเค็นคือข้อมูลรับรอง ดังนั้นให้ปฏิบัติต่อ URI เสมือนเป็นรหัสผ่านจนกว่าจะถูกใช้งาน
เอนด์พอยต์ SIP (ที่อยู่ถาวร)
1. สร้างเอนด์พอยต์
curl -X POST https://api.thunderphone.com/v1/sip-endpoints \
-H "Authorization: Bearer sk_live_YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"agent_id": 12, "name": "Main PBX"}'{
"id": 7,
"name": "Main PBX",
"agent_id": 12,
"sip_uri": "sip:agent-12-jhxmginwjx@sip.thunderphone.com",
"username": "tp409667538f83",
"password": "8mJ0…",
"allowed_source_cidrs": [],
"status": "active",
"created_at": "2026-09-25T21:46:18Z"
}2. ตั้งค่าระบบให้ชี้ไปยังเอนด์พอยต์
กำหนดค่า SIP trunk หรือปลายทางด้วย:
| การตั้งค่า | ค่า |
|---|---|
| SIP URI | sip_uri ของเอนด์พอยต์ |
| ชื่อผู้ใช้ / รหัสผ่าน | username / password (การยืนยันตัวตนแบบ digest; ThunderPhone จะท้าทายการโทรแต่ละครั้ง) |
| การรับส่งข้อมูล | TCP บนพอร์ต 5060 หรือ TLS บนพอร์ต 5061 (แนะนำ) หรือ UDP บนพอร์ต 5060 |
| โคเดก | G.711 (PCMU/PCMA) หรือ G.722 |
การตั้งค่าการรับส่งข้อมูลและโคเดกเหล่านี้ใช้กับ URI ต่อสายด้วย รายละเอียดเครือข่าย 2 ข้อมีความสำคัญสำหรับที่อยู่ทั้งสองประเภท:
- ทำตาม Record-Route หลังจาก INVITE แรก สัญญาณส่วนที่เหลือของสาย
(ACK การวางสาย การโอนสาย) จะส่งไปยังเซิร์ฟเวอร์ ThunderPhone เฉพาะที่
ตอบรับสาย ซึ่งระบุอยู่ในส่วนหัว
Record-Route(sip-1.thunderphone.comหรือsip-2.thunderphone.comหรือที่อยู่ IP ของเซิร์ฟเวอร์) หากคุณจำกัด SIP ขาออก ให้อนุญาตโฮสต์เหล่านั้นร่วมกับsip.thunderphone.com:172.170.39.202(sip),13.86.104.121(sip-1) และ20.80.98.90(sip-2) - เสียงส่งไปที่อื่น
sip.thunderphone.comใช้สำหรับส่งสัญญาณเท่านั้น อนุญาตสื่อ (RTP) ไปยังที่อยู่และพอร์ตในคำตอบ SDP
ทุกสายที่โทรไปยังที่อยู่นี้จะไปถึงเอเจนต์ของเอนด์พอยต์ ไม่ว่าผู้โทรจะโทรไปยัง หมายเลขใดในฝั่งของคุณ คุณไม่ต้องนำเข้าหมายเลข ดังนั้นการเปลี่ยนหมายเลขในฝั่งของคุณ จึงไม่ต้องเปลี่ยนแปลงใด ๆ ใน ThunderPhone
ส่งหมายเลขที่โทรเข้า (ไม่บังคับ)
หากต้องการบันทึกว่าผู้โทรโทรไปยังหมายเลขใดของคุณ ให้ส่งหมายเลขนั้นใน INVITE ผ่าน
ส่วนหัว X-Original-To (ตัวอย่างเช่น X-Original-To: +14155550142) หรือผ่าน
ส่วนหัวมาตรฐาน Diversion ThunderPhone จะจัดเก็บเป็นปลายทางของสาย
ระบบจะเลือกปลายทางตามลำดับนี้: to_number ที่ระบุเมื่อลงทะเบียน URI ต่อสาย
จากนั้นคือหมายเลขใน X-Original-To แล้วจึงเป็นหมายเลขใน Diversion
หากไม่มีรายการใดระบุหมายเลข ระบบจะแสดงเป็น sip:agent-12-jhxmginwjx (ที่อยู่ของ
เอนด์พอยต์) สำหรับเอนด์พอยต์ หรือ sip:call สำหรับ URI ต่อสาย
เมื่อใช้ Twilio คุณสามารถเพิ่มส่วนหัวลงใน SIP URI:
sip:agent-12-jhxmginwjx@sip.thunderphone.com;transport=tcp?X-Original-To=%2B14155550142
จำกัด IP ต้นทาง (ไม่บังคับ)
ตั้งค่า allowed_source_cidrs เพื่อรับสายจากที่อยู่ส่งสัญญาณของคุณเท่านั้น
นอกเหนือจากชื่อผู้ใช้และรหัสผ่าน:
curl -X PATCH https://api.thunderphone.com/v1/sip-endpoints/7 \
-H "Authorization: Bearer sk_live_YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"allowed_source_cidrs": ["203.0.113.0/28"]}'ระบบจะปฏิเสธสายจากที่อยู่อื่นทั้งหมดก่อนที่จะถึงเอเจนต์ ใช้ที่อยู่ที่ระบบของคุณส่ง สัญญาณ SIP ออกมา (สำหรับผู้ให้บริการ เช่น Twilio ให้ใช้ช่วง IP สัญญาณที่เผยแพร่ไว้) ไม่ใช่ที่อยู่สื่อของคุณ
สิ่งที่ผู้โทรและระบบของคุณเห็น
- หมายเลขผู้โทร: ส่วนผู้ใช้ของส่วนหัว
Fromจะถูกจัดเก็บเป็นผู้โทร หมายเลขโทรศัพท์ (ตัวเลข โดยอาจมี+ช่องว่าง ขีด จุด หรือ วงเล็บ) จะถูกปรับรูปแบบเป็น E.164 ส่วนค่าอื่น เช่น ชื่อผู้ใช้ SIP จะ ถูกเก็บไว้ตามที่ส่งมา ระบบจะเก็บไว้สูงสุด 32 อักขระ และผู้โทรที่ไม่มีค่าจะถูกจัดเก็บเป็นanonymous - สายที่ถูกปฏิเสธ: URI ต่อสายที่ไม่รู้จักหรือหมดอายุจะได้รับ SIP
404 Not FoundURI ต่อสายที่ถูกใช้ไปแล้ว ปลายทางที่ปิดใช้งาน หรือ แหล่งที่มาอยู่นอก allowlist (รวมถึงสาย UDP ใดๆ ไปยังปลายทางที่มี allowlist) จะถูกตัดการเชื่อมต่อก่อนที่เอเจนต์จะเริ่มทำงาน: ระบบของคุณอาจเห็นว่า สายล้มเหลว หรือเชื่อมต่อแล้วสิ้นสุดทันที การปฏิเสธเหล่านี้จะไม่ สร้างรายการในประวัติการโทร หากองค์กรของคุณมีเครดิตไม่เพียงพอหรือ ถึงขีดจำกัดการใช้จ่ายแล้ว สายจะถูกปฏิเสธและแสดงในประวัติการโทรเป็น สายที่ล้มเหลวโดยไม่มีค่าใช้จ่าย หากต้องการลองทำรายการต่อสายอีกครั้ง ให้ลงทะเบียน URI ใหม่ - การโอนสาย: การโอนสายแบบ cold ของเอเจนต์ใช้งานได้ (ThunderPhone ส่ง SIP
REFERซึ่งระบบของคุณต้องยอมรับ) การโอนสายแบบ warm ไม่พร้อมใช้งานสำหรับสายไปยังที่อยู่ SIP เนื่องจากไม่มีหมายเลข ThunderPhone ที่จะแสดงเป็นหมายเลขผู้โทรสำหรับช่วงสายที่สอง เมื่อใช้ Twilio นั้น TwiML ข้างต้นจะเชื่อมต่อเอเจนต์ แต่ ไม่จัดการการโอนสาย: เพิ่มreferUrl="https://YOUR_SERVER/sip-transfer"ไปยัง<Dial>และให้ webhook นั้นอ่านReferTransferTargetแล้วส่งกลับ TwiML ที่โทรไปยังปลายทางการโอนสาย (ดู คู่มือ SIP REFER ของ Twilio) - ข้อความ: ที่อยู่ SIP และหมายเลขที่โทรออกไม่สามารถส่งข้อความได้ เอเจนต์สามารถส่งข้อความระหว่างสายไปยังที่อยู่ SIP ได้ก็ต่อเมื่อได้ตั้งค่า หมายเลขที่รองรับ SMS แยกต่างหากสำหรับส่งข้อความแล้ว มิฉะนั้นเครื่องมือ SMS ของเอเจนต์จะ ใช้งานไม่ได้
- การลงทะเบียน: ThunderPhone ไม่รับ SIP
REGISTERให้ส่งสายไปยัง ที่อยู่ ไม่ต้องลงทะเบียนกับที่อยู่นั้น
ราคา
สายไปยังที่อยู่ SIP จะคิดค่าบริการตามอัตราต่อนาทีปกติของเอเจนต์ ไม่มี ค่าหมายเลขโทรศัพท์ เนื่องจากไม่มีหมายเลข ThunderPhone ที่รองรับสาย ผู้ให้บริการของคุณเอง จะเรียกเก็บค่าบริการฝั่งของตนตามปกติ ดู ราคา
ทดสอบ
- สร้าง URI ต่อสายหรือปลายทางตามที่อธิบายข้างต้น
- โทรจากระบบของคุณ หรือจาก SIP softphone ใดก็ได้ (สำหรับปลายทาง ให้ป้อน ชื่อผู้ใช้และรหัสผ่าน)
- หลังวางสาย ให้เปิดสายดังกล่าวใน สาย ในแดชบอร์ด หรือดึงข้อมูลด้วย
GET /v1/calls/{call_id}ระบบจะแสดงผู้โทร ปลายทาง (ดูลำดับใน "ส่งหมายเลขที่โทรออก") และบันทึกการสนทนา
รายละเอียด API: ข้อมูลอ้างอิง API สำหรับที่อยู่ SIP.