Khái quát về hoạt động của SIP

Một phần của tài liệu Giáo trình Lý thuyết báo hiệu (Trang 54)

Trong hội thoại SIP, mỗi bên tham gia (bên chủ gọi và bên bị gọi) được gắn một địa chỉ SIP hay còn gọi là SIP URL. Người sử dụng phải đăng ký vị trí của họ với SIP

Server. Để tạo một cuộc gọi SIP, phía chủ gọi định vị tới máy phục vụ thích ứng và sauđó gửi một yêu cầu SIP. Hoạt động SIP thường xuyên nhất là lời mời các thành viên tham gia hội thoại. Thành phần Register đóng vai trò tiếp nhận các yêu cầu đăng ký từ UA và lưu trữ các thông tin này tại một dịch vụ phi SIP (Non-SIP).

4.1.3.1. Địa chỉ SIP

Các đối tượng được đánh địa chỉ bởi SIP là các người sử dụng tại các trạm, những người sử dụng này dược định danh bằng một SIP URL. SIP URL có dạng

user@host. Phần user là một tên của người sử dụng hay tên của một máy điện thoại. Phần host có thể là một tên miền hoặc một địa chỉ mạng.

SIP URLđược dùng trong các bản tin SIP để thông báo về nơi gửi (From), đích hiện thời (Request URI) và nơi nhận cuối cùng (To) của một yêu cầu SIP và chỉ rõ địa

chỉ gián tiếp. Một SIP URL có thể gắn vào một trang Web hoặc những siêu liên kết

(Hyperlink) khácđể thông báo rằng người dùng hoặc dịch vụ có thể gọi thông qua SIP.

Một địa chỉ SIP URL có thể chỉ rõ một cá nhân (có thể được định vị tại một trong

các hệ thống đầu cuối), người khả dụng đầu tiên từ một nhóm các cá nhân hoặc toàn

bộ một nhóm. Ví dụ, khuôn dạng địa chỉ: sip:sales@example.com nói chung là không

đủ để quyết định mục đích của người gọi.

4.1.3.2. Quá trìnhđịnh vị tới máy chủ SIP

Khi một Client muốn gửi đi một yêu cầu, Client sẽ gửi bản tin yêu cầu đó tới SIP

Proxy Server (như trong HTTP), hoặc tới địa chỉ IP và cổng tương ứng trong địa chỉ

của yêu cầu SIP (Request-URI). Trường hợp đầu, yêu cầu được gửi tới SIP Proxy

Server không phụ thuộc vào địa chỉ của yêu cầu đó là như thế nào. Với trường hợp

sau, Client phải xác định giao thức, cổng vàđịa chỉ IP của Server mà yêu cầu được gửi đến.

Một Client thực hiện các bước tiếp theo để có được những thông tin này. Tại mỗi

bước, trừ các trạng thái khác, Client cố gắng liên lạc với Server theo số cổng được chỉ

ra trong địa chỉ yêu cầu SIP (Request-URI). Nếu không có số cổng nào chỉ ra trong

rõ là sử dụng giao thức TCP hay UDP, Client sẽ làm việc với Server theo giao thức đó. Nếu không có giao thức nào được chỉ ra thì Client cố gắng dùng giao thức UDP (nếu

không hỗ trợ TCP) hoặc sử dụng giao thức TCP cho hoạt động của mình (chỉ được hỗ

trợ TCP mà khôngđược hỗ trợ UDP).

Client cố gắng tìm một hay nhiều địa chỉ cho SIP Server bằng việc truy vấn DNS (Domain Name System) theo các thủ tục sau:

1) Nếu địa chỉ Host trong địa chỉ Request-URI là một địa chỉ IP thì Client làm việc với Server bằng địa chỉ được đưa ra. Nếu đó không phải là một địa chỉ

IP, Client thực hiện bước tiếp theo.

2) Clientđưa ra câu hỏi tới DNS Server về bản ghi địa chỉ cho địa chỉ Host trong

địa chỉ Request-URI. DSN sẽ trả về một bản ghi danh sách các địa chỉ. Lúc đó

việc lựa chọn một trong các địa chỉ này là tùy ý. Còn nếu DNS Server không đưa ra bản ghi địa chỉ, Client sẽ kết thúc hoạt động, có nghĩa nó không thực

hiện được việc định vị máy chủ. Nhờ bản ghi địa chỉ, sự lựa chọn tiếp theo

cho giao thức mạng của Client có nhiều khả năng thành công hơn. Một quá

trình thực hiện thành công là quá trình có một bản ghi chứa trong phần trả lời

và Server làm việc ở một trong những địa chỉ chứa trong trả lời đó.

4.1.3.3. Giao dịch SIP

Khi cóđịa chỉ IP của SIP Server thì yêu cầu sẽ được gửi đi theo tầng vận chuyển

giao thức TDP hay UDP. Client gửi một hoặc nhiều yêu cầu SIPđến máy chủ đó và nhận lại một hoặc nhiều các phúcđáp từ máy chủ. Một yêu cầu cùng với các phúcđáp

được tạo ra bởi yêu cầuđó tạo thành một giao dịch SIP. Tất cả các phúcđáp cho một

yêu cầu mang cùng các giá trị trong các trường: Call – ID, Cseq, To, và From. Yêu

cầu ACK xácđịnh sự nhận một phúcđáp INVITE không là một phần của giao dịch vì nó có thể di chuyển giữa một tập các host khác nhau. Mỗi cuộc gọi trong SIP được định danh bởi một trường định danh cuộc gọi (Call-ID).

Một yêu cầu phải cần có thông tin gửi đi từ đâu (From) và tới đâu (To). Trường

From và Tođều có cấu trúc theo khuôn dạng SIP-URL. Trường CSeq lưu trữ thông tin

về phương thức sử dụng trong phiên, trường CSeq có dạng:

CSeq = “CSeq”: “DIGIT Method”

Trongđó DIGIT là số nguyên không dấu 32 bit.

Nếu một giao thức điều khiển luồng tin cậy được sử dụng, yêu cầu và các phúc

cùng máy khách đến cùng máy chủ có thể sử dụng cùng kết nối hoặc có thể sử dụng

một kết nối mới cho mỗi yêu cầu.

Nếu một client gửi yêu cầu thông qua một giao thức datagram đơn hướng như

UDP thì các UA thu sẽ định hướng phúc đáp theo thông tin chứa trong các trường mào

đầu Via. Mỗi proxy server trong tuyến chuyển tiếp của yêu cầu chuyển tiếp phúc đáp

sử dụng các trường mào đầuVia này.

4.1.3.4. Lời mời SIP

Một lờimời SIP thành công gồm hai yêu cầu INVITE và ACK. Yêu cầu INVITE

thực hiện lời mời một thành viên tham gia hội thoại. Khi phía bị gọi đồng ý tham gia,

phía chủ gọi xác nhận đã nhận một bản tin đáp ứng bằng cách gửi đi một yêu cầu

ACK. Nếu phía chủ gọi không muốn mời thành viên tham gia cuộc gọi nữanó sẽ gửi

yêu cầu BYE thay cho ACK.

Thông điệp INVITE chứa thành phần mô tả phiên (SDP) và phương thức tiến

hành traođổi ứng với phiênđó. Với các phiênđa hướng, phần mô tả phiên liệt kê kiểu

và khuôn dạng củacác phương tiện (Media) để phân phối cho phiên hội thoại. Với một

phiênđơn hướng, phần mô tả phiên liệt kê kiểu và khuôn dạng của các phương tiện mà phía chủ gọi muốn sử dụng và nơi những dữ liệu muốn gửi đi.

 Trường hợp máy phục vụ ủy quyền (Proxy Server):

 Proxy Server (PS) tiếp nhận lời mời INVITE.

 PS tra cứu thông tin ở dịch vụ định vị ngoài SIP.

 PS nhận thông tin để tạo ra địa chỉ chính xác.

 PS tạo lại INVITE trong trường Request URI và chuyển tiếp.

 UAS thông báo bị gọi.

 PS nhận đápứng chấp nhận 200 OK từ UAS.

 PS trả về kết quả thành công cho chủ gọi.

 Chủ gọi gửi thông báo xác nhận ACK.

 Yêu cầu xác nhận được chuyển tiếp qua PS.

Chú ý: Một ACK có thể được gửi trực tiếp đến User được gọi qua Proxy. Tất

cả các yêu cầu vàđápứng phải có cùng Call-ID.  Trường hợp máy phục vụ gián tiếp (Redirect Server):

 Liên lạc với dịch vụ định vị.

 Trả lời địa chỉ chủ gọi.

 Chủ gọi gửi thông báo xác nhận ACK đến PS.

 Chủ gọi tạo một yêu cầu mới cùng một Call-ID nhưng có CSeq cao hơn tới địa chỉ trả lời bởi Server đầu tiên.

 Bị gọi gửi đápứng chấp nhận 200 OK.

Chủ gọi gửi thông báo xác nhận ACK.

4.1.3.5.Định vị người dùng

Một đối tượng bị gọi có thể di chuyển giữa một số các hệ thống đầu cuối khác nhau theo thời gian. Một máy chủ định vị cũng có thể sử dụng một hay nhiều giao thức

khác nhauđể xácđịnh hệ thống đầu cuối mà tại đó một người sử dụng có thể liên lạc. Một máy chủ định vị có thể đưa ra một vài vị trí vì người sử dụng được đăng nhập vào tại một vài host đồng thời hoặc bởi vì máy chủ định vị lỗi. Máy chủ SIP kết hợp các kết quả để đưa ra một danh sách các vị trí.

Đối với từng kiểu SIP Server thì hoạt động sau khi nhận đượcdanh sách các vị trí

khác nhau là khác nhau. Một SIP Redirect Server sẽ trả lại danh sách địa chỉ cho

Client vớicác mào đầu Contact. Một SIP proxy server có thể thử lần lượt hoặc song song các địa chỉ cho đến khi cuộc gọi thành công (phúc đáp 2xx) hoặc bên bị gọi từ

chối cuộc gọi (phúcđáp 6xx).

Nếu một proxy server chuyển tiếp một yêu cầu SIP, nó phải bổ sung địa chỉ của nó vào vị trí bắt đầu của danh sách các trạm chuyển tiếp được ghi trong các mào đầu

Via. Dấu vết Via đảm bảo rằng các trả lời có thể đi theo cùng tuyến đó theo hướng ngược lại, việc đảm bảo hoạt động chính xác nhờ tuân theo các tường lửa và tránh lặp

lại yêu cầu. Ở hướng phúc đáp, mỗi host phải xoá bỏ Via của nó, do đó thông tin định

tuyến nội bộ được che khuất đối với phía bị gọi và các mạng bên ngoài.

4.1.3.6. Thay đổi một phiên hiện tại

Trong một vài trường hợp, cần phải thay đổi các thông số của phiên hội thoại

hiện tại. Việc đó được thực hiện bởi việc phát lại các yêu cầu INVITE. Các yêu cầu

INVITEđó có cùng trường Call-ID nhưng có trường mào đầu và trường bản tin khác

với yêu cầu ban đầu để mang thông tin mới. Các bản tin INVITE đó phải có chỉ số

CSeq cao hơn các yêu cầu trước. Ví dụ: có hai thành viênđang hội thoại và muốn có

thêm một người thứ ba tham gia. Một trong hai thành viên sẽ mời thành viên thứ ba

INVITE đến thành viên thứ hai với trường miêu tả phiên đa hướng nhưng có trường

Call-ID cũ.

Một phần của tài liệu Giáo trình Lý thuyết báo hiệu (Trang 54)

Tải bản đầy đủ (PDF)

(91 trang)