ข้ามไปยังเนื้อหา

วิธีที่ 2: SIP Registration

หลักการทำงาน

Ingfah SIP Server จะทำตัวเป็น SIP client ที่ลงทะเบียน (REGISTER) กับ SIP server ของลูกค้าโดยอัตโนมัติ เมื่อมีสายเข้ามาที่ DID ระบบของลูกค้าจะส่ง INVITE มาที่ Ingfah SIP Server ผ่าน registration session ที่ active อยู่ วิธีนี้เหมาะกับ PBX ทั่วไปที่ไม่มี public static IP

การลงทะเบียน (Background session)

sequenceDiagram
    box rgba(43,127,255,0.1) Ingfah
    participant SBC as Ingfah SIP Server
    end
    participant Server as SIP Server ลูกค้า

    SBC->>Server: REGISTER (user/pass)
    Server-->>SBC: 200 OK
    loop keep-alive ทุก 20 วินาที
        Server->>SBC: OPTIONS
        SBC-->>Server: 200 OK
    end

สายเข้า (Inbound)

sequenceDiagram
    actor Caller as ผู้โทร
    participant PBX as PBX ลูกค้า
    box rgba(43,127,255,0.1) Ingfah
    participant SBC as Ingfah SIP Server
    participant AI as Ingfah
    end

    Caller->>PBX: โทรเข้า DID
    PBX->>SBC: INVITE (ผ่าน registration session ที่ active)
    SBC->>AI: ส่งสายต่อ

สายออก (Outbound)

sequenceDiagram
    box rgba(43,127,255,0.1) Ingfah
    participant AI as Ingfah
    participant SBC as Ingfah SIP Server
    end
    participant Proxy as Outbound Proxy
    participant PBX as PBX ลูกค้า
    participant PSTN as PSTN

    AI->>SBC: เริ่มโทรออก
    SBC->>Proxy: INVITE + auth (credentials เดียวกับ REGISTER)
    Proxy->>PBX: ส่งสายต่อ
    PBX->>PSTN: ส่งออก PSTN

ข้อมูลที่ต้องเตรียม

ฟิลด์จำเป็นคำอธิบายตัวอย่าง / default
nameชื่อย่อใช้แทน trunk นี้ (ตัวอักษรอังกฤษ ไม่มีช่องว่าง)"abc-corp"
serverSIP registrar — IP สาธารณะหรือ FQDN"sip.example.com"
proxyOutbound proxy (ระบุเฉพาะถ้าต่างจาก server)default = server
portSIP signaling portdefault 5060
transport"udp" หรือ "tls" (ปลอดภัยกว่า ต้องใช้ cert)default "udp"
codecArray ของ codec ตามลำดับ: ["g722","ulaw"] (แนะนำ) หรือ ["ulaw"]default ["g722","ulaw"]
sip_userSIP identity — ที่ Ingfah ใช้ register (From:, Contact:, registration URI)"020256960" หรือ "101"
auth_userUsername ใน Authorization header (ระบุเฉพาะถ้าต่างจาก sip_user เช่น MS Teams)default = sip_user
passwordSIP password คู่กับ auth_user
numberหมายเลข PSTN หรือ extension; routing key สำหรับโทรออก ถ้าต่างจาก sip_user ให้ระบุdefault = sip_user
direction"inbound", "outbound", หรือ "both"default "both"

สิ่งที่ลูกค้าต้องทำในระบบของตน

  • สร้าง SIP Extension / Trunk Account สำหรับ Ingfah SIP Server พร้อม username + password
  • อนุญาตให้ลงทะเบียนจาก Ingfah SIP Server IP (ดู endpoint ที่ทีมงานส่งให้) ถ้าระบบจำกัด IP
  • ตั้ง Inbound Routing ให้สายที่เข้ามาที่ DID route ไปที่ extension นี้
  • หากระบบมี NAT: ตรวจสอบว่า Contact header ส่งเป็น IP สาธารณะ

แบบฟอร์มเชื่อมต่อ

กรุณา copy ฟอร์มด้านล่าง กรอกข้อมูลให้ครบ แล้วส่งกลับให้ทีมงาน

========== SIP REGISTRATION TRUNK ==========
ชื่อบริษัท/โครงการ : ____________________
ผู้ติดต่อ : ____________________
อีเมล / เบอร์โทร : ____________________
[ข้อมูลทางเทคนิค]
name : ____________________ (ชื่อย่อ ภาษาอังกฤษ)
server : ____________________ (SIP registrar — host / IP)
proxy : ____________________ (ระบุเฉพาะถ้าต่างจาก server)
port : ____________________ (default 5060)
transport : [ ] udp [ ] tls
codec : [ ] g722 (แนะนำ) [ ] ulaw
sip_user : ____________________ (SIP identity — ที่ Ingfah ใช้ register)
auth_user : ____________________ (ระบุเฉพาะถ้าต่างจาก sip_user)
password : ____________________
number : ____________________ (ระบุเฉพาะถ้าต่างจาก sip_user)
[ทิศทางการใช้งาน]
direction : [ ] inbound [ ] outbound [ ] both (default)
[ฝั่งลูกค้า checklist]
[ ] สร้าง SIP account แล้ว ทดสอบ login ผ่าน softphone ได้
[ ] อนุญาต register จาก Ingfah SIP Server IP
[ ] ตั้ง inbound route ของ DID ไปยัง extension นี้