Tải bản đầy đủ (.pdf) (15 trang)

Truyền text sử dụng giao thức sip

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (905.72 KB, 15 trang )

TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI
VIỆN ĐIỆN TỬ VIỄN THÔNG
---------------------------

ĐỀ TÀI : TRUYỀN TEXT SỬ DỤNG GIAO THỨC SIP

GVHD
Sinh viên
Mai Văn Quyết
Trần Văn Tâm
Nguyễn Văn Chương

TS.Nguyễn Tài Hưng
MSSV
Lớp
20102057
ĐTVT6
20102124
ĐTVT6
20101177
ĐTVT6

Khóa
55
55
55


PHẦN I. GIỚI THIỆU SIP
1.SIP
SIP là viết tắt của cụm từ “Session Initiation Protocal”, là một giao thức truyền tín hiệu ở


tầng ứng dụng (application-level) và được định nghĩa bởi IETF. SIP được sử dụng để tạo và quản lý các
session thông qua mạng IP. Thuật ngữ “Session” là một phiên làm việc trong quá trình trao đổi media
(voice, video,….).
SIP làm việc cùng với một vài các giao thức khác trong tầng ứng dụng để nhận dạng và truyền
session media. Sự nhận dạng và thỏa thuận về media được thực hiện với Session Description Protocol
(SDP). Đối với việc truyền các media stream (voice, video), SIP sử dụng Real-time Transport Protocol
(RTP) hay Secure Real-time Transport Protocol (SRTP). Còn bảo mật trong quá trình truyền các thông
điệp thì được mã hóa bởi Transport Layer Security (TLS).
SDP được sử dụng để miêu tả về các media session nhằm mục đích thông báo, mời gọi và thỏa
thuận tham số dành cho 1 session. Do đó, để tạo ra một session, một SIP message luôn mang theo SDP
mà cho phép các bên tham gia đồng ý thiết lập một vài các thông số cần thiết để trao đổi media, cũng như
loại media, địa chỉ truyền tải,…
2.SIP Addressing (địa chỉ của SIP)
Trong SIP, mỗi người sử dụng đều có 1 SIP URI tương ứng , đó được gọi là địa chỉ của SIP. Có
dạng như sau:
sip:username:
sip:username:password@host:port
Trong đó:
- Mỗi địa chỉ SIP URI, đầu tiên bắt buộc phải có bổ ngữ sip: .
- Phần người dùng, gồm có username và password, phần này không bắt buộc phải có.
- Phần host, là địa chỉ bắt buộc phải khai báo để có thể trao đổi media session
Ví dụ : sip:, sip:khang::2008, sip:43.67.23.12, ....
3. Các thành phần của SIP
Các thành phần của SIP bao gồm :
- User Agents (UAs)
- Registras
- Proxies
- Back-to-Back User Agents (B2BUSs)
a.User Agents
Một SIP User Agent (UA) bao gồm 2 thành phần : User Agent Client (UAC) và User Agent Server

(UAS).
- Nhiệm vụ của UAC : tạo ra các SIP request (yêu cầu) gởi cho UAS và thu nhận các response (phản hồi)
được gởi từ UAS .
- Nhiệm vụ của UAS : nhận các SIP request được gởi từ UAC và tạo ra các response gởi cho UAC.


Lưu ý : SIP độc lập với media session. SIP không dính líu với bất cứ loại media session nào mà cần được
thực hiện. Ví dụ, nếu bạn muốn tăng cường 1 tính năng nào đó cho media thì bạn phải bổ sung thành phần
đó và tích hợp nó với user interface, còn chính SIP User Agent vẫn không thay đổi.
SIP UA là bộ phận quan trọng của 1 ứng dụng về truyền media. SIP UA được thực hiện trong
nhiều cách khác nhau, có thể là:
- Một phần mềm chạy trên PC.
- Một ứng dụng trên mobile phone.
- Một trạng thái nào đó trong network server : gởi phản hồi tự động khi có yêu cầu, tự động gởi
media chúc mừng sinh nhật,….
b. Registrar
Registrar là một server mà chấp nhận các registration request (các yêu cầu được đăng ký) từ các
UA. UA cung cấp vị trí hiện tại của nó với 1 SIP Message truyền đến Registrar Server. 1 SIP UA cần được
đăng ký trước khi nó có thể nhận cuộc gọi. Khi registrar nhận registration request, nó đưa những thông tin
mà nó nhận được vào trong 1 cơ sở dữ liệu được gọi là Location Service.
Tức là, Registrar là 1 SIP endpoint mà nhận các registration request và đưa các thông tin nó nhận
được trong request này vào location service để xử lý.
c.Location Service
Location Service là một cơ sở dữ liệu mà chứa một tập danh sách ánh xạ giữa Adresses of Record
(AORs – địa chỉ công khai dành công UA) và Contact Addresses (địa chỉ để xác định tên domain cũng như
vị trí của người dùng).
Khi Registrar nhận một registration request từ một UA, registrar sẽ đưa thông tin nó nhận được
vào Location Service. Location service cũng được liên hệ với Proxy Servcers chỉ ra domain chính xác để
lấy về thông tin vị trí có thể thực hiện được cuộc gọi đến người dùng.
Ví dụ:

Address of Record
Sip:
Sip:


Contact Address
Sip:
Sip:
….


d.Proxy Server
* Chức năng của Proxy Server trong Internet
Một số hãng và công ty sử dụng proxy với mục đích: Giúp nhiều máy tính truy cập Internet thông
qua một máy tính với tài khoản truy cập nhất định, máy tính này được gọi là Proxy server. Chỉ duy nhất
máy Proxy này cần modem và account truy cập internet, các máy client (các máy trực thuộc) muốn truy
cập internet qua máy này chỉ cần nối mạng LAN tới máy Proxy và truy cập địa chỉ yêu cầu. Những yêu cầu
của người sử dụng sẽ qua trung gian proxy server thay thế cho server thật sự mà người sử dụng cần giao
tiếp, tại điểm trung gian này công ty kiểm soát được mọi giao tiếp từ trong công ty ra ngoài internet và từ
internet vào máy của công ty. Sử dụng Proxy, công ty có thể cấm nhân viên truy cập những địa chỉ web
không cho phép, cải thiện tốc độ truy cập nhờ sự lưu trữ cục bộ các trang web trong bộ nhớ của proxy server
và giấu định danh địa chỉ của mạng nội bộ gây khó khăn cho việc thâm nhập từ bên ngoài vào các máy của
công ty.
Đối với các nhà cung cấp dịch vụ đường truyền internet: Do internet có nhiều lượng thông tin mà
theo quan điểm của từng quốc gia, từng chủng tộc hay địa phương mà các nhà cung cấp dịch vụ internet
khu vực đó sẽ phối hợp sử dụng proxy với kỹ thuật tường lửa để tạo ra một bộ lọc gọi là firewall proxy
nhằm ngăn chặn các thông tin độc hại hoặc trái thuần phong mỹ tục đối với quốc gia, chủng tộc hay địa
phương đó. Địa chỉ các website mà khách hàng yêu cầu truy cập sẽ được lọc tại bộ lọc này, nếu địa chỉ
không bị cấm thì yêu cầu của khách hàng tiếp tục được gửi đi, tới các DNS server của các nhà cung cấp
dịch vụ. Firewall proxy sẽ lọc tất cả các thông tin từ internet gửi vào máy của khách hàng và ngược lại.

* Chức năng của Proxy Server trong SIP
Tương tự như chức năng của Proxy Server trong Internet, Proxy Server trong SIP là một thực thể
trung gian, vai trò chính của proxy là định tuyến, nghĩa là bảo đảm một request được gởi đi đến người dùng.


Proxy Server có thể được dùng để kiểm tra, thống kê, tìm đường truyền kế tiếp, chính sách bắt buộc nào
đó,….
Có nhiều loại Proxy khác nhau trong SIP, nhưng 2 loại Proxy thường được nhắc đến là : outbound
proxy và inbound proxy.
+ Outbound Proxy : Outbound Proxy giúp đỡ các UA để định tuyến các request đi ra từ các UA.
Các UA thường được cấu hình truyền các request của nó đến một outbound proxy.
+ Inbound Proxy : giúp định tuyến các request đi ra từ proxy này trực tiếp đến UA yêu cầu. Khi
1 inbound proxy nhận một request yêu cầu gởi đến 1 user, inbound proxy sẽ gởi đến Location Service để
xác định contact address của user đó, sau đó gởi trực tiếp đến user.

e. Forking
Forking của SIP request có nghĩa là nhiều session media có thể được thực hiện từ 1 request duy
nhất. Đây là 1 tính năng mạnh mẽ của SIP.
Với SIP Forking, bạn có thể đăng ký 1 Address of Record mà có nhiều Contact Adress trong
location service.
Ví dụ:
Address of Record
Sip:
Sip:
Sip:
..

Contact Address
Sip:
Sip:

Sip:


Khi có 1 request gởi đến inbound proxy để thực hiện cuộc gọi đến John, thì proxy này tìm thấy
các vị trí khác nhau này và đưa ra 1 thuật toán để cố gắng liên lạc với John ở các vị trí khác nhau. Có 2
thuật toán được sử dụng :
+Sequential search (tìm tuần tự) : proxy cố gắng tìm lần lượt từng vị trí, vị trí này xong đến vị trí
khác.


+Parallel search (tìm song song) : proxy sẽ tìm tất cả các vị trí cùng lúc.


f.Redirect Server
Redirect Server là UAS mà nhận các request từ User Agent Clients và tự động tạo ra các
responses gởi đến UAC. Các reponses này luôn luôn hướng dẫn UAC tạo ra request liên lạc với 1 tập các
địa chỉ thay thế.

g. Back-to-Back User Agents (B2BUA)


Một B2BUA là một thực thể vật lý (là một server), nhận 1 request, sau đó tính toán lại request
và gởi nó đi dưới dạng 1 request mới. Các Response phản hồi lại request cũng được tính toán lại và gởi đi
theo hướng ngược lại. Nó quản lý từ lúc bắt đầu cho đến khi kết thúc.
B2BUA được sử dụng để cung cấp những tính năng nâng cao, ví dụ dịch vụ nặc danh, ẩn thông
tin người gọi….


PHẦN 2 : CÁCH HOẠT ĐỘNG CỦA GIAO THỨC SIP
I. Mô hình hoạt động của SIP:

SIP hoạt động dựa trên sự trao đổi các SIP Messages. SIP Message gồm 2 phần là SIP Request
và SIP Response. 1 SIP Request cùng với tất cả SIP Response kết hợp với nó được gọi là 1 transaction.
Cũng tương tự như HTTP, khi bạn kết nối 1 web site, trình duyệt của bạn gởi đi 1 HTTP request bao gồm
địa chỉ của trang web mà bạn muốn nhìn thấy. Server chứa website nhận được request và tạo ra 1
response bao gồm nội dung của trang web và hiển thị trên trình duyệt.
SIP requests bắt đầu từ 1 User Agent Client (UAC) đến 1 User Agent Server (UAS), SIP
responses cũng tương tự nhưng theo cách ngược lại từ UAS đến UAC.

1.SIP Responses
1 Response là 1 mã trạng thái có 3 chữ số. Số đầu tiên định nghĩa loại response, số đầu tiên là 1
đó là provisonal response, các số khác được gọi chung là final response.
Giá trị
1xx
2xx
3xx

Ý nghĩa
Provisional
Success
Redirection

Miêu tả
Request đã nhận được. Tiếp tục xử lý request
Request đã được xử lý thành công.
Redirection được gởi đi khi 1 session được chuyển đến 1 địa chỉ
khác.
4xx
Client Error
Reuqest chứa cú pháp lỗi và không được xử lý ở phía server.
5xx

Server Error
Server bị lỗi không xử lý được các request hợp lệ.
6xx
Global Failure
Request không được xử lý ở bất cứ server nào.
Chữ x đại diện cho 1 con số nào đó từ 0-> 9. Ví dụ : 100, 202,301,…
Không giống như HTTP, trong SIP, 1 request có nhiều response. Bất kỳ request nào cũng phải có
ít nhất 1 final repsonse và có thể có nhiều provisional responses.


2.SIP Requests
Có 6 loại SIP Request thông dụng : REGISTER, INVITE, ACK, CANCEL, BYE, OPTIONS.
a.REGISTER
Register request được sử dụng bởi 1 User Agent để thực hiện thủ tục đăng ký. UAC xây dựng
một Register request bao gồm các thông tin sau:
- Address of Record (AOR) được biểu diễn dưới dạng 1 SIP URI trong trường đầu đề
To.
Ví dụ :
To : sip:
To: John Wales <sip:>
- Vị trí của người dùng (Contact Address) được biễu diễn dưới dạng 1 SIP URI trong trường
đầu đề Contact.
Ví dụ:
Contact: Sip:
Contact: John Wales < Sip:>
Ví dụ : John Wales muốn đăng ký để thực hiện trao đổi media. John phải cung cấp địa chỉ vị trí
của mình và gởi đến registrar server để đăng ký. Địa chỉ của Registrar server cũng được biểu diễn dưới
dạng SIP URI như sip:registrar.university.com.vn

Trong mô hình trên Registrar kết hợp với location service trên cùng 1 server. Khi đăng ký thành

công 1 response phản hồi mã trạng thái 200 OK.
Sự lưu trữ trên Location Server có thời gian tồn tại nhất định, nếu bạn muốn được lưu trữ theo ý
muốn bạn sử dụng trường tiêu đề Expires trong Request Register. Trường Expires được sử dụng trong tất
cả các Request để chỉ ra khoảng thời gian mà request hay message content là hợp lệ.
Ví dụ:


Expires : 60 (kể từ lúc đăng ký đến 60 giây)
Expires: 15 Sep 2013 00:00:00 GMT (hạn dùng là 15 tháng 9 năm 2013)

b.INVITE
Một UAC tạo ra 1 INVITE Request để khởi tạo 1 session với một UAS. Request này có thể
được gởi trực tiếp từ UAC đến UAS hay phải qua 1 hay nhiều proxy mà giúp định tuyến request này.
Một khi UAS nhận được request, nó tạo ra một vài provision response để thông báo tuyến trình
của cuộc gọi. Ví dụ, reponse có mã trạng thái 180 chỉ ra đang thông báo cho bên được gọi. Nếu bên được
gọi đã nhận được, 1 final response có mã trạng thái 200 OK được tạo ra và phản hồi đến người gọi.
Lưu ý, SIP chỉ truyền tín hiệu giữa bên gọi và bên được gọi, còn việc trao đổi media stream đó
là nhiệm vụ của Real-time Transport Protocol (RTP) và Sesson Description Protocol (SDP) – các bạn
đừng quá lo lắng, RTP và SDP không quá khó hiểu, chúng ta sẽ tìm hiểu nó trong những chương sau. SIP
Request sẽ dính kèm theo SDP, SDP này được gọi là “SDP offer”. Ví dụ, bạn muốn trao đổi voice hay
video, bên gọi và bên được gọi phải có cùng codecs, bên gọi và bên được gọi cũng phải cung cấp địa chỉ
IP, Port để trao đổi media stream. Codec, IP, Port được miêu tả trong SDP, sau đó RTP có trách nhiệm
truyền các media stream.
Ví dụ, Alice muốn thực hiện voice chat đến John, các thông số được kèm theo trong SDP:
- Media types : voice.
- Codec : Adaptive Multirate – AMR, Pulse Code Modulation -PCM
-IP và Port của Alice để thực hiện voice : 23.17.32.16:4000.
1 final response 200 OK được phản hồi nếu John nhận được thành công, trong response này cũng
chứa 1 SDP của John, SDP này được gọi là “SDP anwser” bao gồm các thông số sau:
- Media types : voice

- Codec : PCM (John không có AMR)
- IP và Port của John để thực hiện voice là : 45.23.2.5:3000.


Một INVITE request cũng có thể được gởi đi khi một cuộc đối thoại đang được thực hiện, trong
trường hợp này bạn có thể xem INVITE request mới này là 1 re-INVITE. Thông thường re-INVITE được
sử dụng để chỉnh sửa hay bổ sung các thông số của 1 session đang tồn tại. Ví dụ, Alice đang voice chat
với John, trong lúc này Alice muốn John mở webcam để thấy mặt nhau. Trong trường hợp này, Alice phải
gởi 1 INVITE mới trong một cuộc đối thoại đang tồn tại để bổ sung vào SDP thành phần video. SDP thay
đổi như sau :
- Media types : voice và video
- codecs dành cho voice : AMR
- codecs dành cho video : H.261
- IP và Port của Alice để thực hiện voice : 23.17.32.16:4000.
- IP và Port của Alice để thực hiện video : 23.17.32.16:4001.
c. ACK
ACK Request được sử dụng để xác nhận rằng UAC đã nhận được final response từ 1 INVITE
request. Tức là, sau khi UAC nhận được final response, nó sẽ tự tạo ra 1 request khác để thông báo với
UAS rằng UAC đã nhận được final response, request này được gọi là ACK.


d.CANCEL
1 UAC tạo ra 1 CANCEL request để hủy bỏ 1 request đang chờ xử lý. Ví dụ, Alice gọi John, vì
thế UA của Alice tạo ra 1 INVITE requset. Khi INVITE được nhận bởi UA của John, nó gởi 180
provisional response và bắt đầu thông báo đến John. John không tiếp nhận cuộc gọi này trong khi Alice
vẫn chờ và Alice quyết định gác máy. Để gác máy, Alice đã gởi 1 CANCEL request đến John. Khi
CANCEL request này được tiếp nhận bởi UA của John, UA sẽ dừng chuông báo và cuộc gọi được hủy
bỏ. UA của John tạo ra 2 response phản hồi CANCEL request : 200 OK response (dành cho CANCEL
request) và 487 “Request terminated” response (dành cho INVITE request).


e.BYE
BYE Request được sử dụng để kết thúc 1 media session đang được thực hiện. BYE Chỉ được
gởi bởi các UA đang tham gia trong media session. Ví dụ, Alice và John đang thực hiện voice chat với
nhau, một lúc sau Alice (hoặc John) muốn kết thúc ,cô ấy gởi 1 BYE Request để kết thúc cuộc trò cuộc
này.


f.Options
OPTIONS Request được sử dụng để truy vấn về tính năng thực hiện session media của 1 UA
hay Server , đồng thời khám phá những tính năng có sẵn của nó. OPTIONS được sử dụng khi tìm hiểu
các thông tin về phương thức hổ trợ, codec,….


PHẦN 3 : KẾT QUẢ SIMULATIONS



×