Các thành phần trong mạng Voip sử dụng giao thức báo hiệu SIP

Một phần của tài liệu Nghiên cứu, thiết kế và xây dựng hệ thống thoại doanh nghiệp sử dụng VoIP (Trang 32)

2.3.1. SIP User Agent

Các thiết bị đầu cuối SIP được gọi là các User Agent (UA) ví dụ như IP phone, cell phone, PDA, Cisco Router các máy tính đang chạy các chương trình

ứng dụng có hỗ trợ giao thức SIP. Bên cạnh đó một trong những chức năng quan trọng nhất của giao thức SIP là chức năng thiết lập phiên giữa các UA. Mỗi một UA có những lúc hoạt động như một Client nhưng cũng có lúc nó hoạt động như một Server do đó yêu cầu mỗi UA phải có cảứng dụng Client và ứng dụng Server trong nó. UAC là một phần của User Agent mà gửi bản tin yêu cầu và nhận lại các bản tin phúc đáp còn UAS là một phần của User Agent mà nhận các yêu cầu và gửi các phúc đáp cho UAC.

Nguyễn Đức Hùng- ĐHBKHN  32 

Hình 2.2. Sip User Agent

2.3.2. Back-to-Back User Agent - B2BUA

Một back-to-back user agent (B2BUA) là một loại thiết bị SIP nhận các bản tin yêu cầu SIP đầu vào, sau đó định dạng lại các bản tin đó và gửi ra ngoài như một bản tin yêu cầu mới. Các bản tin trả lời cũng được định dạng lại và gửi trả về theo hướng ngược lại. Ví dụ một thiết bị B2BUA có thể được sử dụng để thực thi dịch vụ anomymizer, trong đó hai SIP UA có thể giao tiếp mà không cần phải tìm hiểu URI của đối tác, địa chỉ IP, hay bất cứ thông tin gì. Để làm được điều này, một anomymizer B2BUA sẽ định dạng mới lại một bản tin request với toàn bộ trường From, Via, Contact, Call –ID và thông tin về SDP media, đồng thời loại bỏ tất cả

các trường SIP header có chứa thông tin về bên gọi.

Bản tin trả lời cũng sẽđược thay đổi trường Contact và thông tin SDP media từ bên bị gọi. SDP sửa đổi sẽ trỏ tới B2BUA, gửi các gói RTP media từ bên bị gọi tới bên gọi và ngược lại. Bằng cách này, cả hai điểm đầu cuối đều học được bất cứ

Nguyễn Đức Hùng- ĐHBKHN  33  Đôi lúc B2BUA được sử dụng để thực thi những dịch vụ SIP khác như

Prepaid Controller. Tuy nhiên, chúng phá vỡ đặc tính end-to-end của giao thức Internet như SIP. Cũng vậy, một B2BUA là một call-stateful single point of failure trong mạng, có nghĩa là sử dụng chúng sẽ làm giảm độ tin cậy của phiên SIP qua Internet từ việc tăng độ trễ tới khả năng mất gói tin, do đó làm giảm chất lượng của phiên media. Sự phân bổ theo vùng địa lý của các B2BUA sẽ làm giảm hiệu ứng này, nhưng vấn đề là lựa chọn B2BUA tốt nhất cho mỗi phiên cụ thể là rất khó mỗi khi địa chỉ IP nguồn và đích của media không được biết tới khi phiên thực sựđược thiết lập (với 200OK).

Mẫu B2BUA thông dụng nhất trong mạng SIP là các gateway lớp ứng dụng (ALG). Một số firewall có chức năng ALG, cho phép firewall có khả năng quản lý SIP và media traffic trong khi vẫn bảo đảm mức bảo mật cao.

2.3.3. SIP Gateways

SIP gateway là một ứng dụng giao tiếp giữa mạng báo hiệu SIP và một mạng sử dụng giao thức báo hiệu khác. Trong ngôn ngữ của giao thức SIP, một gateway chỉ là một loại User Agent đặc biệt. Nếu một gateway giới hạn số lượng kênh báo hiệu thì có thể nó cũng bị giới hạn kênh media.

Ví dụ một gateway SIP/H323 sẽ kết thúc kênh báo hiệu SIP và chuyển sang báo hiệu H323, tuy nhiên các thiết bịđầu cuối SIP và H323 có thể trao đổi thông tin RTP media trực tiếp với nhau mà không phải đi qua gateway.

Một gateway SIP/PSTN giới hạn cả kênh báo hiệu và kênh media. SIP có thể được chuyển đổi hoặc bắt tay với những giao thức PSTN thông dụng như

Intergrated Services Digital Network (ISDN), ISDN User Part (ISUP), và các giao thức CAS khác. Một PSTN gateway cũng chuyển đổi luồng RTP media trong mạng IP sang đường dây hay đường trung kế điện thoại chuẩn. Sự chuyển đổi kênh báo hiệu và kênh media cho phép gọi tới và gọi từ mạng PSTN sử dụng báo hiệu SIP.

Nguyễn Đức Hùng- ĐHBKHN  34  Hình 2.3 sau đây mô tả mạng SIP kết nối qua gateway với PSTN và một mạng H323. (Hiện nay đang có dự án xây dựng chức năng kết nối SIP/H323).

Hình 2.3. Mng SIP vi các gateway chuyn đổi giao thc báo hiu

Trong hình trên, mạng SIP, mạng PSTN và mạng H323 được biểu diễn như

những đám mây mạng. Kết nối tới đám mây SIP là các SIP IP telephone, SIP- enabled PCs, và các Coporate SIP gateway cùng với nhiều điện thoại. Những đám mây được kết nối với nhau bằng các gateway. Gắn với đám mây mạng H323 là các thiết bị đầu cuối H323 và các PC hỗ trợ H323. Đám mây PSTN kết nối tới những

điện thoại analog truyền thống Black Telephone và những điện thoại ISDN số, và những Coporate PBX. Các PBX kết nối tới PSTN sử dụng chung những đường trung kế và cung cấp giao diện đường dây cho cảđiện thoại tương tự và số.

Gateway có lúc tách rời với một media gateway (MG) và một media gateway controller (MGC). Một MGC cũng còn được gọi là một call agent vì nó quản lý các giao thức điều khiển cuộc gọi, trong khi MG quản lý kết nối media. Sự phân tách này là trong suốt đối với SIP, và những giao thức sử dụng để phân tách một gateway không được mô tả trong phần này.

Một sự khác biệt nữa giữa một user agent với một gateway là số lượng các user được hỗ trợ. Trong khi một user agent đặc trưng hỗ trợ một user đơn lẻ thì một

Nguyễn Đức Hùng- ĐHBKHN  35  gateway có thể hỗ trợ hàng trăm thậm chí hàng nghìn user. Một PSTN gateway có thể hỗ trợ một lượng lớn khách hàng là những công ty, hay toàn bộ cả một vùng địa lý. Và kết quả là, một gateway không đăng ký tất cả user nó hỗ trợ giống cách mà một user agent làm. Thay vì thế, một giao thức không phải SIP có thểđược sử dụng

để thông báo cho các proxy về những gateway và cộng sự trong việc định tuyến. Một giao thức được đề xuất cho việc này là giao thức Telephony Routing over IP (TRIP), cho phép xây dựng một bảng định tuyến liên vùng của những gateway. Một giao thức khác có tên gọi Telephony Gateway Registration Protocol (TGREP) cũng

đã được phát triển cho phép một gateway đăng ký với một proxy server trong cùng một domain.

2.3.4. SIP Proxy Server

Proxy Server giữ một vai trò quan trọng trong mạng SIP, nó có thực hiện chức năng định tuyến cuộc gọi, chức năng nhận thực, chức năng phân quyền, chức năng ánh xạ từđịa chỉ URI sang địa chỉ IP và chức năng phát hiện lặp bản tin báo hiệu trong mạng. Proxy Server có thể forward các bản tin báo hiệu nếu nó biết được

địa chỉ của đối tượng được gọi, nếu không nó có thể truy vấn các Server khác để tìm kiếm những thông tin cần thiết cho việc forward bản tin tới đúng đối tượng được gọi. Sau khi cuộc gọi được thiết lập, Proxy Server có thể quyết định hoặc vẫn tồn tại trên tuyến báo hiệu giữa hai thiết bịđầu cuối để có thể quan sát sự thay đổi và kết thúc cuộc gọi hoặc có thể rút ra khỏi tuyến báo hiệu để đảm bảo sự trong suốt về

Nguyễn Đức Hùng- ĐHBKHN  36  (adsbygoogle = window.adsbygoogle || []).push({});

Hình 2.4. Chc năng ca Proxy Server

Một Proxy server khác so với một UA hoặc một Gateway ở một số điểm quan trọng sau:

• Proxy Server không tạo ra các bản tin yêu cầu nó chỉ trả lời yêu cầu từ các UA

• Proxy Server không có khả năng media

• Proxy Server không can thiệp vào nội dung của các bản tin mà nó chỉ được phép định dạng và sửa đổi lại một số thông tin trong các Header.

Có 2 loại SIP Proxy servers cơ bản là stateless và stateful:

Stateless Servers

Stateless server đơn giản được xem như là các thiết bị chuyển tiếp thông tin. Chúng chuyển tiếp thông tin một cách độc lập với nhau. Mặc dù các thông tin được sắp xếp theo kiểu giao dịch nhưng stateless proxy không quan tâm tới vấn đề này, chúng không lưu giữ lại thông tin về các bản tin và các cuộc đàm thoại trước đó. Do vậy Stateless Server thường đơn giản hơn nhưng nhanh hơn stateful Proxy servers. Chúng có thể được sử dụng như các bộ định tuyến. Một trong những hạn chế của

Nguyễn Đức Hùng- ĐHBKHN  37  stateless proxy là chúng không có khả năng truyền lại các thông tin và thực hiện công việc định tuyến cao cấp.

Stateful servers

Chúng phức tạp hơn. Trong lúc nhận yêu cầu, stateful proxy tạo ra một trạng thái và giữ nó cho đến khi sự giao dịch là kết thúc. Vì stateful proxy phải đảm bảo trạng thái này trong suốt quá trình giao dịch, nên sự hoạt động của chúng là giới hạn.

Khả năng kết hợp các thông tin SIP thành các phiên giao dịch tạo ra cho stateful proxy một vài đặc điểm thú vị. Stateful proxy có thể thực hiện chia nhánh, nghĩa là trong khi nhận một tin thì 2 hoặc nhiều hơn các tin khác sẽđược gửi đi.

Stateful proxy có thể thực hiện việc truyền lại bởi vì chúng biết được trạng thái của các phiên giao dịch trước đó nếu do có sự lưu trữ thông tin. Stateful proxy có thể thực hiện các phương pháp phức tạp hơn để tìm ra các user.

Hầu hết các SIP proxy ngày nay là stateful vì cấu hình của chúng thường là rất phức tạp. Chúng thường thực hiện việc tính toán, chia nhánh, và tất cả những

đặc trưng đó đòi hỏi phải là một stateful proxy chứ Stateless proxy không đáp ứng

được.

Để hiểu hơn về Proxy server chúng ta hãy xem xét ví dụ sau:

Một cấu hình đặc trưng là mỗi một thực thể quản lý trung tâm (ví dụ như một công ty) bản thân chúng đều có proxy server SIP và được sử dụng bởi tất cả các tác nhân user trong thực thểđó. Ví dụ có 2 công ty A và B và mỗi công ty đều có proxy server.

Nguyễn Đức Hùng- ĐHBKHN  38 

Hình 2.5. Quá trình gi bn tin INVITE

Hình 2.5 chỉ ra một lời mời phiên từ nhân viên Joe của công ty A đưa tới nhân viên Bob của công ty B như thế nào.

Joe sử dụng địa chỉ sip:bob@b.com để gọi tới Bob. Tác nhân user của Joe không biết làm thế nào để định tuyến lời mời nhưng nó được cấu hình để gửi tất cả

lưu lượng tới SIP proxy server proxy a.com. Và Proxy server này sẽ tính toán là user có địa chỉ sip:bob@b.com đang ở trong một công ty khác và rồi nó tìm kiếm SIP Proxy server của B sau đó gửi lời mời đến đó. Proxy server của B có thể hoặc

được cấu hình trước tại Proxy.a.com hoặc proxy tại A sẽ sử dụng DNS SRV để tìm proxy server của B. Lời mời tới được proxy.b.com. Proxy này biết rằng Bob hiện nay đang ngồi tại cơ quan và có thể tới được thông qua điện thoại trên bàn của anh ta, mà điện thoại này có địa chỉ IP là 1.2.3.4, vì vậy proxy tại B sẽ gửi lời mời tới

đó.

2.3.5. SIP Registrar Server

Chúng ta đã đề cập đến SIP proxy tại proxy.b.com biết vị trí hiện thời của Bob nhưng không đề cập đến làm thế nào để có thể học được vị trí hiện thời của user. User agent của Bob (điện thoại SIP) phải đăng ký với một một thiết bị gọi là Registrar. Registrar này là một thực thể SIP, chúng nhận những đăng ký từ các users, trích ra những thông tin về vị trí nhưđịa chỉ IP, cổng, hay username … và lưu

Nguyễn Đức Hùng- ĐHBKHN  39  trữ những thông tin này vào trong 1 vùng cơ sở dữ liệu. Mục đích của vùng cơ sở

dữ liệu này là ánh xạ sip:bob@b.com thành những thứ tương tự như

sip:bob@1.2.3.4:5060. Vùng cơ sở dữ liệu sau đó được sử dụng bởi proxy server của B. Khi Proxy này nhận được một lời mời cho sip:bob@b.com, nó sẽ tìm kiếm vùng cơ sở dữ liệu. Nó tìm ra sip:bob@1.2.3.4:5060 và gửi lời mời tới đó. Registrar thực chất chỉ là một thực thể logic. (adsbygoogle = window.adsbygoogle || []).push({});

Hình 2.6 chỉ ra một sự đăng ký SIP điển hình. Một thông tin đăng ký mang theo địa chỉ của bản ghi sip:jan@iptel.org và liên hệ với địa chỉ jan@1.2.3.4:5060

mà ở đó 1.2.3.4 là địa chỉ IP của điện thoại, được gửi tới Registrar. Registrar trích thông tin này ra và lưu trữ nó vào trong vùng cơ sở dữ liệu. Nếu mọi chuyện đều thuận lợi thì Registrar gửi một đáp ứng là 200 OK tới điện thoại và quá trình đăng ký được kết thúc.

Hình 2.6. Register sever và quá trình đăng kí

Mỗi sựđăng ký đều có một vòng đời giới hạn. Sự kết thúc của trường header hoặc kết thúc của các tham số có liên quan đến trường header xác định trong bao lâu thì sựđăng ký có hiệu lực. Tác nhân user phải refresh lại sựđăng ký của nó.

Nguyễn Đức Hùng- ĐHBKHN  40 

2.3.6. Redirect Server

Thực thể mà nhận yêu cầu và gửi trả lại câu trả lời với 1 danh sách vị trí hiện tại của một user đặc biệt được gọi là redirect server. Một Redirect server nhận yêu cầu và tìm kiếm người nhận trong vùng cơ sở dữ liệu, sau đó nó tạo ra một danh sách các vị trí hiện thời của user và gửi chúng tới người tạo yêu cầu.

Người tạo yêu cầu sau đó trích một danh sách các đích và gửi các yêu cầu khác một cách trực tiếp đến chúng.

Hình 2.7. Redirect sever

Khi một user agent hay một proxy server nhận được 1 request nó sẽ gửi đáp

ứng response. Mỗi một request phải có một đáp ứng ngoài trừ các request ACK.

Các responses là giống với các request ngoại trừ dòng đầu tiên. Dòng đầu tiên của response mang theo version của giao thức (SIP/2.0), mã reply (reply code) và cụm từ reason.

Reply code là một số nguyên từ 100 đến 699 và để phân ra các loại response. Có 6 lớp response.

Các response 1xx là các response tạm thời. Một response tạm thời là một response mà cho bên nhận biết rằng cái request kết hợp đó đã được nhận nhưng kết quả của quá trình là chưa biết được. Các response tạm thời chỉ được khi mà quá

Nguyễn Đức Hùng- ĐHBKHN  41  trình xử lý không kết thúc ngay lập tức. Người gửi phải dừng việc truyền lại request trong lúc nhận các response tạm thời. Một cách điển hình các proxy server gửi các response với mã là 100 khi chúng bắt đầu quá trình xử lý một lời mời INVITE và các user agent gửi response với mã 180 (ringing) tức là bên điện thoại được nhận

đang rung chuông.

Các response 2xx là các response cuối cùng mang tính chất xác thực. Một response cuối cùng là một response sau chót mà người tạo request sẽ nhận được. Do

đó các response cuối cùng sẽ biểu diễn kết quả của quá trình xử lý của request liên

đới. Các response cuối cùng cũng kết thúc phiên giao dịch. Các response với mã từ

200-299 là các response dương mà chúng có ý nghĩa là các request này được xử lý thành công và được chấp nhận. Ví dụ một response là 200 OK được gửi đi khi một user chấp nhận lời mời tạo thành một phiên giao dịch.

Các response 3xx được sử dụng để đề địa Một UAC (user agent client) có thể nhận vài thông tin 200 thành một request INVITE đơn. Điều này là do một proxy chia nhánh có thể chia nhánh request đó bởi vậy nó sẽ tới được vài UAS và mỗi UAS sẽ chấp nhận lời mời tương ứng. Trong trường hợp này mỗi response

được phân biệt bởi tham biến tag trong trường header To. Mỗi một response sẽ

minh họa một cuộc thoại riêng biệt cùng với phần dạng cuộc thoại rõ ràng.

Một redirection response giữ thông tin về vị trí mới của user hay một dịch vụ

khác mà người gọi phải sử dụng để nhằm thực hiện được cuộc gọi. Các response thường được gửi bởi các proxy server. Khi mà một proxy nhận một request và không muốn hoặc không thể xử lý nó với bất kỳ lý do nào, nó sẽ gửi một response redirection tới người gọi và đặt một ví trí khác vào trong response mà người gọi

Một phần của tài liệu Nghiên cứu, thiết kế và xây dựng hệ thống thoại doanh nghiệp sử dụng VoIP (Trang 32)