• If this is your first visit, be sure to check out the FAQ by clicking the link above. You may have to register before you can post: click the register link above to proceed. To start viewing messages, select the forum that you want to visit from the selection below.
Xin chào ! Nếu đây là lần đầu tiên bạn đến với diễn đàn, xin vui lòng danh ra một phút bấm vào đây để đăng kí và tham gia thảo luận cùng VnPro.

Announcement

Collapse
No announcement yet.

Tìm hiểu về Session Initiation Protocol – SIP

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • Tìm hiểu về Session Initiation Protocol – SIP

    Bài viết sau đây sẽ giúp chúng ta tìm hiểu cơ chế hoạt động của giao thức Session Initiation Protocol hay viết tắt là SIP.Chúng ta sẽ cùng nhau tìm hiểu về kiến trúc của SIP Architecture, và cách Call Setup – Disconnect giữa SIP Gateway-to- SIP Gateway.

    Đầu tiên, chúng ta cùng nhau tìm hiểu kiến trúc của SIP Architecture:
    .

    SIP Architecture
    Session Initiation Protocol (SIP) - ASCII-base là một application-layer control protocol sử dụng để setup, manage và control session cuộc gọi giữa các endpoint trên môi trường IP based network, hoặc đôi khi session có thể là text, voice, video hoặc phối hợp nhiều loại trên.
    SIP sử dụng cấu trúc HTTP và SMTP trong các thông điệp message format, endcoding để trao đổi thông tin. SIP cho phép các ứng dụng truyền thông hợp nhất gửi nhận Text, Voice và Video. SIP Protocol thường sử dụng 2 Port là 5060 5061 còn SIP Endpoint thường sử dụng RTP Port dao động từ 10.000 cho tới 20.000. SIP là một peer-to-peer protocol, peer trong một session đóng vai trò là Called UA (User Agent), UA là một logical SIP endpoint có thể create và manage một SIP session. UA có thể đóng vai trò của cả client (UAC) và server (UAS).

    Một UA sử dụng giao thức SIP có thể hoạt động ở 2 phương thức sau:

    UAC (User Agent Client – SIP Client): Phát sinh và gửi các request tới Server.

    UAC có thể là softphone application cài đặt trên PC hoặc IP phone, chúng phát sinh và gửi đi các request tới Server (Proxy Server) khi chúng ta thực hiện cuộc gọi đi. Một SIP EndPoint (Phone) có thể đóng vai trò của cả UAC (gửi request) và UAS (xử lý response). Softphones và Cisco SIP IP phones có thể phát sinh các SIP requests và respond lại các requests.UAC ám chỉ là các End User trên Client Device.

    UAS (User Agent Server – SIP Server): Tiếp nhận, xử lý và hồi đáp các request. Một Server có thể kiêm nhiều chức năng logical server như Registrar Server cùng với Redirect hoặc Proxy server.

    Proxy Server (User Agent Server): Khi Client thực hiện cuộc gọi, nó không biết chính xác địa chỉ của recipient là gì nên sẽ gửi thông điệp request tới Proxy Server. Proxy Server sẽ xác định location của recipient, translate name của User thành network address. Proxy Server sẽ thay mặt Client tiếp tục forward thông điệp request tới Proxy Server kế tiếp hoặc tới trực tiếp recipient.

    Proxy Server có thể cung cấp một số chức năng như authentication, authorization, network access control, routing, reliable request retransmission, security. Stateful Proxy sử dụng User Agent (UAC) với vai trò logical entity được gọi là (Back-To-Back-User-Agent). User agent nhận request và xử lý request với vai trò UAS rồi sau đó đóng vai trò là UAC và phát sinh rồi gửi đi request.

    Downstream: Là direction mà request message di chuyển từ client side tới server side (client > proxy > proxy .. proxy > proxy > server).

    Upstream: Là direction mà response flow từ server side gửi tới client side (server > proxy > proxy .. proxy > proxy > client).

    Redirect Server: Cung cấp cho client thông tin next hop hoặc các hops mà message phải đi qua để Client có thể contact được tới next-hop server hoặc UAS trực tiếp. Redirect Server tiến hành redirect thông điệp request ngược trở về SIP Client để thông báo cho Client sẽ tiếp tục thực hiện route request tới recipient. Redirect Server có thể truy vấn Location Server để lấy thông tin location information.

    Registrar Server: Tiếp nhận REGISTER message từ các End User và gửi thông tin location của User cho Location Server. Registrar Server giúp xác định location của một User trên hệ thống network. SIP End User có thể login trên các station khác nhau trên hệ thống nên User phải register vị trí location của chúng tới Registrar Server. User sẽ định kỳ refresh vị trí location của chúng bằng cách register tới Registrar server. Registrar server sẽ tiến hành binding giữa User với địa chỉ address của User, thông tin này được lưu trữ trên Location server và được các Proxy server sử dụng để xác định locate của User.

    Location Server: Danh sách các địa chỉ của User khi register tới Registrar Server sẽ lưu trữ tại Location Server. Location Server có thể sử dụng một số loại giao thức (LDAP) để xác định locate vị trí end user.


    Call Setup và Disconnect giữa SIP Gateway-to-SIP Gateway:




    PBX A kết nối tới SIP gateway 1 bằng T1/E1. PBX B kết nối tới SIP gateway 2 bằng T1/E1. User B có phone number là 555-0100. SIP gateway 1 kết nối tới SIP gateway 2 thông qua IP network. Call flow diễn ra như sau:
    • User A calls User B.
    • User B answers the call.
    • User B hangs up.
    1. Setup: PBX A tới SIP gateway 1. Call setup được thiết lập giữa PBX A và SIP gateway 1. Setup sẽ trao đổi các standard mà User A đang thực hiện cuộc gọi tới User B.
    2. INVITE: SIP gateway 1 tới SIP gateway 2. SIP gateway 1 gửi INVITE request tới SIP gateway 2. INVITE request là một invitation gửi tới User B tham gia vào call session. INVITE request có thể rơi vào một trong những tình huống sau:
      1. Phone number của User B được insert vào Request-URI field để hình thành SIP URL. SIP URL nhận diện address của User B có định dạng tương tự như email address user@host.
        • User là telephone number.
        • Host là domain (có hoặc không có thông tin hostname) hoặc numeric network address.
        • Chẳng hạn Request-URI field trong INVITE request tới User B có dạng như “INVITE sip:555-0100@example.com; user=phone.”
      2. PBX A đóng vai trò là call session initiator trong From field.
      3. Unique numeric identifier được thiết lập cho cuộc gọi và insert vào Call-ID field.
      4. Transaction number trong single call leg được định danh trong CSeq field.
      5. Media capability User A cũng được thiết lập.
      6. Port RTP data để nhận lưu lượng trên SIP gateway 1 cũng được nhúng vào.
    3. Call Proceeding: SIP gateway 1 tới PBX A. SIP gateway 1 gửi Call Proceeding message tới PBX A để báo nhận setup request.
    4. Setup: SIP gateway 2 tới PBX B. SIP gateway 2 nhận INVITE request từ SIP gateway 1 và thiết lập call setup với User B thông qua PBX B.
    5. 100 Trying: SIP gateway 2 tới SIP gateway 1. SIP gateway 2 gửi 100 Trying response tới INVITE request được gửi bởi SIP gateway 1. 100 Trying response ám chỉ INVITE request đã được nhận bởi SIP gateway 2 nhưng User B vẫn chưa được xác định vị trí locate và vẫn chưa thực hiện tác vụ action nào, chẳng hạn như việc truy vấn database consultation đang được xử lý.
    6. Call Proceeding: PBX B tới SIP gateway 2. PBX B gửi Call Proceeding message tới SIP gateway 2 để báo nhận setup request.
    7. Alerting: PBX B tới SIP gateway 2. PBX B xác định locate User B và gửi Alert message tới SIP gateway 2. User B Phone bắt đầu đổ chuông ringing.
    8. 180 Ringing: SIP gateway 2 tới SIP gateway 1. SIP gateway 2 gửi 180 Ringing response tới SIP gateway 1. 180 Ringing response ám chỉ SIP gateway 2 đã xác định được locate của User B.
    9. Alerting: SIP gateway 1 tới PBX A. SIP gateway 1 gửi Alert message tới User A thông qua PBX A. Alert message ám chỉ SIP gateway 1 đã nhận được 180 Ringing response từ SIP gateway 2. User A sẽ nghe được ringback tone ám chỉ rằng User B đã được alert. Tại thời điểm này, one-way voice path đã được thiết lập giữa SIP gateway 1 và PBX A và giữa SIP gateway 2 và PBX B. Two-way RTP channel đã được thiết lập giữa SIP gateway 1 và SIP gateway 2.
    10. Connect: PBX B tới SIP gateway 2. User B answers phone. PBX B gửi Connect message tới SIP gateway 2. Connect message notifies SIP gateway 2 kết nối connection đã được thiết lập.
    11. 200 OK:
    12. Connect: SIP gateway 1 tới PBX A. SIP gateway 1 gửi Connect message tới PBX A. Connect message notifies PBX A kết nối connection đã được thiết lập.
    13. Connect ACK: PBX A tới SIP gateway 1. PBX A báo nhận thông điệp Connect message từ SIP gateway 1.
    14. ACK: SIP gateway 1 tới SIP gateway 2. SIP gateway 1 gửi ACK tới SIP gateway 2. ACK xác nhận SIP gateway 1 đã nhận được 200 OK response từ SIP gateway 2.
    15. Connect ACK: SIP gateway 2 tới PBX B. SIP gateway 2 báo nhận Connect message từ PBX B. Call session đã được kích hoạt active trên two-way voice path thông qua RTP. Tại thời điểm này two-way voice path đã được thiết lập giữa SIP gateway 1 và PBX A và giữa SIP gateway 2 và PBX B. Two-way RTP channel cũng đã được thiết lập giữa SIP gateway 1 và SIP gateway 2.
    16. Disconnect: PBX B tới SIP gateway 2. Khi User B hangs up, PBX B gửi Disconnect message tới SIP gateway 2. Disconnect message bắt đầu call session termination process.
    17. BYE: SIP gateway 2 tới SIP gateway 1. SIP gateway 2 gửi BYE request tới SIP gateway 1. BYE request ám chỉ User B muốn giải phóng và kết thúc cuộc gọi. User B muốn kết thúc cuộc gọi nên Request-URI field được thay thế bằng SIP URL của PBX A và From field chứa thông tin SIP URL của User B. Giá trị cseq value tăng lên một đơn vị.
    18. Release: SIP gateway 2 tới PBX B. SIP gateway 2 gửi Release message tới PBX B.
    19. Disconnect: SIP gateway 1 tới PBX A.
    20. Release: PBX A tới SIP gateway 1. PBX A gửi Disconnect message tới SIP gateway 1.
    21. 200 OK: SIP gateway 1 tới SIP gateway 2. SIP gateway 1 gửi 200 OK response tới SIP gateway 2. 200 OK response notifies SIP gateway 2 rằng SIP gateway 1 đã nhận được BYE request.
    22. Release Complete: PBX B tới SIP gateway 2.
    23. Release Complete: SIP gateway 1 tới PBX A. SIP gateway 1 gửi Release Complete message tới PBX A và phiên session kết thúc.
Working...
X