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ũ.