Giao thức SIP, H323, MGCP, MEGACO là gì ? – Tìm hiểu về SIP, H323, MGCP, MEGACO

Giao thức SIP, H323, MGCP, MEGACO là gì ? – Tìm hiểu về SIP, H323, MGCP, MEGACO

SIP (Session Initiation Protocol) là một giao thức được sử dụng trong việc truyền thông đa phương tiện thông qua mạng IP. Cung cấp một khuôn khổ để thiết lập voice, video truyền theo kiểu point-to-point, hội nghị và thông điệp kiểu văn bản.

Đây là một chuẩn của IETF để thiết lập các kết nối VoIP. Nó là một giao thức điều khiển lớp ứng dụng để tạo mới, chỉnh sửa và kết thúc các session. Cấu trúc của SIP giống như HTTP(client-server protocol). Các Request được tạo ra bởi các máy Client và gửi tới Server. Server xử lý các Request và gửi một Response lại cho Client. Một Request và Response là một yêu cầu để tạo ra một tương tác qua lại. SIP cũng có các thông điệp INVITE và ACK. SIP tạo ra sự giả định nhỏ nhất về cơ bản của giao thức truyền tải. Giao thức này chính nó cung cấp độ tin cậy và nó không phụ thuộc vào độ tin cậy của TCP. SIP phụ thuộc vào Session Description Protocol (SDP) trong việc mang ra ngoài các thỏa thuận để xác minh codec. SIP hỗ trợ việc mô tả các session mà cho phép các bên tham gia có thể đồng ý thiết lập các kiểu phương tiện tương thích.

SIP cung cấp các dịch vụ như:

  •  User Location: Xác định hệ thống cuối cùng để sử dụng cho việc truyền thông.
  •  Call Setup: Ringing và thiết lập các thông số cho call tại hai bên Called và Calling.
  •  User Availability: Xác định sự hài lòng của bên gọi để cam kết trong truyền thông.
  •  User Capabilities: Xác định phương tiện và các thông số của phương tiện được sử dụng.
  •  Call handling: Chuyển giao và kết thúc Call.

Chức năng và nét đặc trưng của giao thức SIP

Hai thành phần chính trong hệ thống SIP bao gồm: SIP User Agents và SIP Network Servers .

SIP User Agent (UA)

Mục đích của SIP là làm cho các session có thể thiết lập giữa các UA. Một UA là một hệ thống cuối cùng hoạt động trên danh nghĩa của người dùng. Một UA phải có khả năng thiết lập một session của phương tiện này với các UA khác.

Một UA phải duy trì trạng thái trên các cuộc gọi mà nó khởi tạo hoặc tham gia vào. Một trạng thái nhỏ nhất của các cuộc gọi được thiết lập bao gồm: các thẻ Local và Remote, Call-ID, các trường Local và Remote CSeq, cùng với việc thiết lập hướng và các thông tin cần thiết của các phương tiện. Remote Cseq thì lưu trữ các thông tin cần thiết để phân biệt giữa một Re-INVITE và một Re-Transmission. Một Re-INVITE được sử dụng để thay đổi các tham số session của một cuộc gọi đã thực hiện hoặc chưa xử lý. Nó sử dụng như một Call-ID nhưng CSeq thì được gia tăng bởi vì nó là một Request mới. Một INVITE được truyền lại chứa Call-ID và CSeq giống như INVITE trước. UA duy trì trạng thái của một cuộc gọi trong thời gian tối thiểu là 32 giây.

Một UA chứa một ứng dụng Client và một ứng dụng Server. Hai thành phần trên là một User Agent Client (UAC) và một User Agent Server (UAS). UAC bắt đầu các Request trong khi UAS thì tạo ra các Response. Trong một session, UA thường điều khiển cả UAC và UAS.

Một SIP User Agent cũng phải hỗ trợ SDP để mô tả Media.

Một UA phải hiểu rõ danh sách các trường nhu cầu mở rộng trong một Request. Nếu không biết các trường này có thể bị lờ đi bởi một UA.

SIP Server

SIP servers là các ứng dụng mà nó chấp nhận các SIP Request và Response đến chúng. Không nên lẫn lộn SIP Server với một User Agent Server hoặc Client-Server. Một SIP Server là một kiểu khác biệt của thực thể. Bởi vì SIP Server cung cấp các dịch vụ và chức năng với UA, chúng sẽ hỗ trợ cả TCP, TLS và UDP để truyền tải.


SIP Operation in Redirect mode and Proxy Mode

SIP server proxy

Một SIP Proxy Server nhận một SIP Request từ một User Agent hoặc một Proxy khác và hành động trên nhân danh của User Agent trong Forwarding hoặc Responding tới Request. Một Proxy không phải là B2BUA vì nó chỉ cho phép chỉnh sửa các Request và chấp nhận các Response để thiết lập các qui tắc bên ngoài trong RFC 3261. Các quy tắc này thì duy trì theo khoảng cách End-To-End của tín hiệu SIP trong khi đó vẫn còn cho phép các proxy server thực hiện các dịch vụ và chức năng với User Agent.

Một Proxy Server phải có truy xuất đến các database hoặc vị trí các dịch vụ để giúp đỡ nó trong quá trình xử lý các Request. SIP Protocol thì không xác định giao diện giữa proxy và vị trí dịch vụ. Proxy có thể sử dụng nhiều kiểu database trong quá trình xử lý các Request. Database có thể chứa SIP Registration, các thông tin hiện hữu, và nhiểu kiểu khác của thông tin về nơi mà User được chỉ định.

Một Proxy Server khác biệt với một User Agent hoặc Gateway ở ba điểm sau:

  •  Một Proxy Server không đưa ra các Request, nó chỉ đáp ứng các Request từ một User Agent (A CANCEL Request là một ngoại lệ trong quy tắc này).
  •  Một Proxy Server không có khả năng về Media.
  •  Một Proxy Server thì không phân tích các thông điệp, mà chỉ dựa vào các Header Field.

SIP Operation in Proxy Mode

Các bước cần thiết trong mô hình proxy để mang một cuộc gọi hai hướng.

Mô hình Proxy của Operation

Proxy Server chấp nhận INVITE Request từ Client.

Proxy Server liên hệ với Location Server để yêu cầu địa chỉ của UA đã gọi. Location Server xác định vị trí của UA đã gọi và cung cấp địa chỉ của Server đích. INVITE Request được tiếp tới một địa chỉ của vị trí mà nó được trở lại. Proxy phải thêm vào một Record-Route Header tới thông điệp INVITE để chắc chắn rằng tất cả các thông điệp đến sau đều được định tuyến thông qua Proxy. Điều này thì cần thiết để thống kê các mục đích hoặc các ứng dụng khác.

Called UA cảnh giác các User. User trả lời cuộc gọi. 
UAS trở về một 200 OK biểu thị tới yêu cầu Proxy Server. 
200 OK Response được tiếp tới từ Proxy Server tới Calling UA. 
Calling UA xác nhận của 200 OK bằng cách đưa ra một ACK Request được gửi tới Proxy(khi mà Proxy chèn vào đầu Record-Route trong thông điệp INVITE) hoặc gửi trực tiếp tới Called UA. 
Proxy chuyển tiếp ACK tới Called UA.

Tìm hiểu một ví dụ về Forking Proxy Operation

Redirect Servers

Một redirect server (hình bên dưới)như là một kiểu của SIP Server mà đáp ứng tới, nó không forward các request.

Schroedinger thừa nhận response:

Chú ý rằng ACK request sử dụng lại các nhánh ID giống nhau như là INVITE và Response 302. Bởi vì một ACK đến một Response Non-2xx cuối cùng đều nghĩ tới các phần của các giao tác giống nhau như là INVITE. Chỉ một ACK gửi trong một Response được đến một 200 OK được tính đến việc tách rời các giao tác với một nhánh ID độc nhất. Một ACK đến một Response 200 OK cuối cùng là một Hop-by-Hop Response, không phải là End-to-End Response.

Vì vậy một INVITE mới được tạo ra với một Call-ID mới và gửi trực tiếp tới các vị trí vẫn được sử dụng từ các trường Contact Header trong một Response 302, từ Redirect Server:

Các bước trong mô hình redirect để mang đi một call two-way:

Redirect server chấp nhận INVITE request từ calling party UA. Redirect Server liên hệ với Location Services để lấy địa chỉ của Called Party UA. Location Services trở về địa chỉ của Called Party UA. 
Sau khi user được chỉ định, Redirect Server trở lại địa chỉ trực tiếp tới Calling Party trong một thông điệp 3xx, với danh sách được cập nhật: vị trí đầu tới đích mới. Không giống như Proxy Server, Redirect Server không forward tới INVITE. 
UAC gửi một ACK tới Redirect Server báo nhận Response 3xx. 
UAC gửi một Request INVITE trực tiếp tới Contact: địa chỉ trở lại bởi Redirect. 
CalledParty UA cảnh báo các user, user trả lời cuộc gọi. Called Party UA cung cấp một chỉ báo thành công(200 OK) tới UAC. 
UAC gửi một ACK tới UAS báo đã nhận Response 200 OK. Mô hình Redirect Server của Operation. 
(Source:Henning Schulzrinne, Columbia University)

Registration Servers

Một Registration Server được biết như là một Registrar, chấp nhận các Request của SIP REGISTER ;tất cả các Request nhận một Response:501 Not Implemented. Thông tin liên quan từ Request làm cho các SIP Server có sẳn bên trong giống Administrator Domain, chẳng hạn như Proxies và Redirect Server. Trong một Resistration Request, trường TO Header chứa tên của tài nguyên bắt đầu Registed, và trường Contact Header chứa địa chỉ khác hoặc Aliases. Registration Server tạo ra một liên kết tạm giữa Address Of Record (AOR) URI trong TO và thiết bị URI trong Contact Courier.

Registration Server thường yêu cầu các User Agent đăng ký để xác thực, vì vậy các cuộc gọi đi vào không bị chiếm đoạt bởi các User không được xác thực. Phụ thuộc vào sự hiện diện của các trường, Register Request có thể được sử dụng bởi một User Agent để lấy lại một danh sách của các Registration hiện thời, làm sạch tất cả Registrations, hoặc thêm vào một Registration URI.

Để bảo vệ Registration, TLS phải được sử dụng như HTTP Digest không cung cấp nhu cầu bảo vệ toàn vẹn.

SIP Messages có thể được phân chia rộng rải trong SIP Requests và Responses, hơn nữa nó được xác định trong các session.

SIP Request

SIP Requests là các thông điệp được gửi từ các máy Client đến các Server để cần khẩn một SIP Operation. RFC 3261 xác định các SIP Request hoặc Method làm cho UA và Proxy có thể tới vị trí của các User và khởi đầu, sửa đổi, Tear-down các session.

INVITE:chỉ ra rằng các Recipient User hoặc các service bị cuốn vào trong một session. Bạn có thể sử dụng method mày để sửa đổi cấu thành của các session được thiết lập trước. Thân của Message INVITE phải bao gồm phần mô tả các Media Session được thiết lập hoặc chỉnh sửa, mã hóa trên SDP. Một Response thành công (200 OK Response)chỉ ra sự sẳn sàng của các Called Party khi tham gia vào kết quả của một session media. Nó bắt đầu một session.

ACK: xác nhận UAC đã nhận được Response cuối cùng đến một Request INVITE. ACK được sử dụng chỉ với các Request INVITE. ACK gửi End-To-End cho một 200 OK Response. Proxy trước hoặc UAC thì gửi các ACK cho các Response cuối cùng khác. ACK Request có thể bao gồm một thông điệp với phần mô tả các session cuối cùng nếu Request INVITE không chứa phần mô tả các session này.

OPTION: UA sử dụng Request OPTION để truy vấn một UAS về khả năng của nó. Nếu UAS có khả năng truyền các session tới các User, nó đáp ứng khả năng thiết lập của UAS.

BYE: sử dụng BYE để yêu kết thúc các session được thiết lập trước.

CANCEL: làm cho các UAC và Network Server có thể hủy một yêu cầu tiến trình bên trong, như INVITE. Điều này không ảnh hưởng đến việc hoàn thành các Request mà UAS đã gửi đi các Response cuối cùng.

REGISTER: client sử dụng REGISTER Request để đăng ký với các thông tin tương ứng AOR của người dùng và SIP servers.

PRACK: đảm bảo độ tin cậy tạm thời của các Response lớp 1xx.

UPDATE: cập nhật tạm thời các session.

REFER: chuyển giao call đến bên thứ ba sử dụng các thông tin liên quan được cung cấp trong các Request.

SUBSCRIBE: báo cáo một sự kiện vừa diễn ra, ví dụ như cập nhật sự hiện của các user.

NOTIFY: sử dụng để thông báo sự kiện đã diễn ra.

MESSAGE: một phương thức để chỉ việc mang đi một message.

SIP Respone: Một server gửi SIP Response tới một Client để chỉ ra trạng thái của một SIP Request mà Client trước đó đã gửi tới Server. UAS hoặc Proxy thì tạo ra các SIP Responses trong Response đến một SIP Request mà UAC khởi đầu. SIP Response là các con số từ 100 đến 699. SIP Responses là một nhóm giống như 1xx,2xx đến 6xx. SIP Response được phân loại như Provisional và Final.

Một Provisional Response chỉ ra tiến trình bởi server nhưng nó không chỉ ra các kết quả cuối cùng giống như kết quả quá trình xử lý các SIP Request. Lớp 1xx của SIP Response chỉ ra trạng thái tạm thời. Response cuối cùng chỉ ra phần kết thúc và trạng thái cuối cùng của SIP Request. Tất cả các lớp 2xx,3xx,4xx,5xx và 6xx đều là cuối cùng,riêng biệt: Lớp 1xx(Information)chỉ ra trạng thái của các call trước khi hoàn thành.

Lớp 2xx(Success)chỉ ra quá trình xử lý thành công của SIP Request

Lớp 3xx(Redirection)chỉ ra SIP Request cần phải gửi một lần nữa đến UAS khác để thực hiện tiến trình xử lý.

Lớp 4xx(Client-error)Request bị hỏng bởi Client. Client có thể thực hiện lại Request.

Lớp 5xx(server failure)Request bị hỏng do Server. Request có thể thử lại tại các Server khác. Lớp 6xx(Global failure) Request bị hỏng và không nên thử lại Request tại Server này hoặc Server khác.

SIP Message structure

Một SIP message gồm có các phần sau:

  •  Một Start-Line.
  •  Một hoặc nhiều header field.
  •  Một dòng rỗng để chỉ ra kết thúc header field.
  •  Một tùy chọn phần thân của thông điệp.
  •  Bạn phải kết thúc Start-Line,mổi dòng Message-Header,và một dòng rỗng bằng trình tự
  •  Carriage return Line Feed(CRLF).

Start-Line cho một SIP Request là một Request-line. Start-line cho một SIP Response là Status-line. Request-line chỉ rõ SIP Method, Request-URI và phiên bản của SIP. Status-line thì mô tả phiên bản của SIP, mã của SIP Response và một tùy chọn Reason Phrase. Reason Phrase là một nguyên văn mô tả của mã 3 ký từ SIP Response.

Bảng thể hiện các thành phần của 1 SIP Request Message:


Thông tin trong bảng được lấy từ RFC 3261

Bảng thể hiện cấu trúc của một SIP Respone Message:


Thông tin trong bảng được lấy từ RFC 3261

SIP header

Một thông điệp SIP được soạn ra từ các Header Field mà nó truyền tín hiệu và thông tin Routing đến các thực thể SIP Network. SIP có hình thức giống như HTTP Header(RFC 2616). Các Header Field được xác định kiểu như Header Field. Mô tả chức năng của các SIP Header:

From: chỉ ra sự giống nhau lúc bắt đầu của các SIP Request. Từ Header thường là AOR của bên gửi. Nó chứa một SIP hoặc các SIP URI và một tùy chọn hiển thị tên.

To: cho biết mong muốn có người nhận của một SIP Request. Đi đến Header là một AOR của người nhận. Nó cũng chứa SIP hoặc SIP URI và tùy chọn hiển thị tên.

Call-ID: trường này nhận ra một dãy serie của một message. Call_ID phải giống hệt nhau để tất cả các SIP rRequest và SIP Response gửi đi bằng các UA khác nhau với cùng một dialog.

Cseq: được soạn ra của một giá trị số nguyên và tên method. Trường này nhận ra Orders và tiếp tục các SIP Request trong một dialog. Cseq cũng có sự khác biệt trong việc gửi lại một message và một message mới.

Via: chỉ ra cách lấy đường dẫn bởi một request và xác định nơi mà response cần gửi đi.

Contact: nhận biết một SIP hoặc SIP URI nơi mà UA muốn nhận một SIP Request mới.

Allow: cho phép danh sách Header của SIP Method nhận hỗ trợ của UA mà tạo ra message.

Supported: tất cả phần mở rộng của SIP hỗ trợ bởi UA. Phần mở rộng của SIP là các RFC khác và RFC 3261. Miêu tả các thẻ option giống như 100rel trong RFC 3262.

Require: về nghĩa nó giống như Supported Header, nhưng sự hỗ trợ của phần mở rộng SIP ở các UA từ xa phải đến các giao tác để được xử lý.

Content-type: chỉ ra kiểu của thân message mà đính kèm với SIP Request hoặc Response phải được hiện ra nếu SIP Message có một thân.

Content-Length: xác định kích thước của thân message. SIP Request và SIP Response cũng chứa các Header Field.

Related Protocol SIP là một phần của bộ giao thức. Gồm có:SDP, RTP và RTCP.

SDP-Session Description Protocol: SDP được định nghĩa bởi RFC 2327, được phát triển bởi IETF MMUSIC. Mục đích ban đầu là mô tả việc thiết lập các Multicast Session thông qua MBONE. Ứng dụng đầu tiên của SDP là giao thức Session Announcement Protocol(SAP)sử dụng các port và nhận các thông báo của các MBONE session. SDP chứa các thông tin về media session:IP Address(IPv4 address hoặc host name). Port Number(sử dụng UDP hoặc TCP để truyền tải). Media type(audio,video,tương tác whiteboard,…). Media Encoding scheme(PCM A-Law,MPEG II video,…). SDP còn chứa các thông tin: chủ đề của các session. Bắt đầu và kết thúc mọi thời điểm. Liên hệ thông tin về các session. Giống như SIP, SDP dử dụng mã hóa văn bản. Một SDP Message được soạn là một series của các dòng, các trường Called, và nó yêu cầu Order để dễ dàng phân tích. SDP thì không được gán để có thể mở rộng dễ dàng, và phân tích các quy tắc một cách chính xác. Một người phân tích SDP không phải để ý tới các trường chưa biết đến, các trường missing, hoặc một dòng out-of-sequence.

Ví dụ một SIP Message chứa nhiều các Fields tùy chọn được hiển thị ở đây:


Thông tin trong bảng được lấy từ RFC 3261

Biểu mẫu của một SIP Message:X=parameter1 parameter2…parameter N.

Danh sách các SDP field trong Required của chúng.

Dòng bắt đầu với một chữ thường ký tự x. Không có khoảng trống giữa các ký tự và dấu =, chính xác là có một khoảng trắng giữa mỗi ký tự. Mỗi trường có một xác định của các tham số. Mỗi dòng kết thúc với một CRLF. RTP Audio Video Profiles được định nghĩa bởi RFC 3551 được liệt kê trong bảng:


Audio voideo profiles

Tài liệu hiện trạng đặc tả RTP:

UDP được sử dụng để ưu tiên truyền tải.

Số port của RTP luôn chẳn, tương ứng số port RTCP kế tiếp là lớn nhất, luôn luôn là số lẻ. Không có Header mở rộng nào được sử dụng.

Thông tin trong ba cột đầu tiên nó cũng chứa trong SDP a=rtpmap:field, thể hiện vì sao các thuộc tính được tùy chọn.

PSTN Protocols: Ba kiểu giao thức truyền tín hiệu PSTN: Circuit Associate Signaling(CAS),Integrated Services Digital Network(ISDN),và ISDN User Part(ISU).

Circuit Associate Signaling: đây là kiểu lâu nhất mà PSTN còn sử dụng. Thông tin sử dụng giống như chuyển mạch audio, như đường dẫn voice, với các ký số và ký từ trình bày bởi các tín hiệu số audio. Các tín hiệu số được gọi đến MT(Multifrequency Tone). Chúng giống như một tín hiệu số giữa một điện thoại và một trung tâm chuyển mạch, nó là tín hiệu số DTMF. Vì vậy CAS dễ bị gian lận, một tín hiệu không trung thực có thể được tạo ra bởi một Caller để làm cho cuộc gọi được miễn phí. Kiểu truyền tín hiệu này phổ biến giữa các văn phòng trung tâm và trao đổi giữa các chi nhánh riêng của tập đoàn(PBX).

ISUP Signaling: ISDN User Part là giao thức sử dụng giữa chuyển mạch điện thoại trong PSTN. Nó sử dụng thông qua một mạng Packet-Switched chuyên dụng mà sử dụng hệ thống Signaling System #7(SS7)để truyền tải. Phương thức này được phát triển để khắc phục sự trì hoãn và các vấn đề bảo mật trong CAS.

SDN Signaling: ISDN được phát triển để tất cả các hệ thống điện thoại số kết nối với PSTN. Kiểu phổ biến nhất dựa trên BRI(Basic Rate Interface)và PRI(Primary Rate Interface). Một BRI có thể chứa hai kênh truyền B 64-Kbps đến các voice khác hoặc dữ liệu và một kênh D 16-Kbps. BRI có thể được sử dụng thông qua các đường dây điện thoại quy ước nhưng nó yêu cầu một ISDN telephone hoặc một bộ tích hợp cuối cùng. PRI sử dụng một liên kết 1.544Mbps gọi tới một T-1 hoặc một DS-1 được chia sẻ bên trong 23 kênh B và một kênh D, với mỗi kênh là 64Kbps.

Tìm hiểu về H323

Những giao thức VoIP có thể được phân loại tùy theo vai trò của chúng trong suốt quá trình chuyển giao thông điệp. H323 và SIP là những giao thức báo hiệu, các giao thức này dùng để thiết lập, ngắt và thay đổi cuộc gọi. RTP và RTCP cung cấp chức năng mạng vận chuyển End-To-End cho những ứng dụng truyền dữ liệu mà yêu cầu thời gian thực (real-time) như là âm thanh và video. Những chức năng đó bao gồm nhận diện loại dữ liệu, số trình tự, tham số thời gian và giám sát tiến trình gửi. TRIP,SAP,STUN, TURN… bao gỗm một nhóm các giao thức hỗ trợ có liên quan đến VoIP. Sau cùng, bởi vì VoIP gían tiếp dựa vào tầng vận chuyển bên dưới để di chuyển dữ liệu nên đòi hỏi nhiều giao thức như là TCP/IP,DNS,DHCP,SNMP,RSVP, và TFTP.

Đặc điểm kĩ thuật của giao thức H323

Bộ giao thức H323 cho phép những thiết bị kết nối khác nhau có thể liên kết với nhau. H323 được phổ biến bởi tổ chức ITU. Giao thức này ban đầu được phát triển cho những ứng dụng đa phương tiện, các thực thể của H323 cung cấp những tiến trình liên quan đến vấn đề đồng bộ như thoại, video và kết nối dữ liệu. Hỗ trợ cho thoại là chủ yếu, hỗ trợ cho video, kết nối dữ liệu chỉ là phần mở rộng của H323.

Đặc điểm kỹ thuật của H323 định nghĩa bốn thực thể H323 khác nhau như là các đơn vị chức năng của mạng H323 hoàn chỉnh, những thành phần này của hệ thống H323 bao gồm thiết bị đầu cuối, gateway, gatekeeper và các đơn vị điều khiển đa điểm (MCUs). Thiết bị đầu cuối (điện thoại, softphones, IVRs, thư thoại, máy quay phim,v.v…) là những thiết bị điển hình tác động qua lại với người dùng cuối. Phần mềm MS Netmeeting là một ví dụ của thiết bị đầu cuối. Các thiết bị đầu cuối chỉ cung cấp thoại hoặc đa phương tiện như là video và sự cộng tác ứng dụng thời gian thực.

Gateways giải quyết điều khiển tín hiệu và truyền dẫn phương tiện, và là thành phần mở rộng. Điển hình của gateway là cung cấp giao diện cho những mạng khác nhau như là ISDN, PSTN hoặc những hệ thống H323 khác. Bạn có thể nghĩ chức năng của H323 như là cung cấp một “bộ dịch”. Ví dụ như là một gateway H323 sẽ điều khiển sự đàm thoại của H323 với SIP hoặc H323 với ISUP(ISDN User Part) chỉ rõ tính chất thủ tục tín hiệu xen kẽ cho việc điều khiển cuộc gọi. Nghĩ một cách khác thì một gateway cung cấp một giao diện giữa mạng chuyển gói(ví dụ như VoIP) và mạng chuyển mạch (ví dụ như PSTN). Nếu Gatekeeper tồn tại, Gateway VoIP đăng ký với Gatekeeper đó và Gatekeeper sẽ tìm ra Gateway tốt nhất cho phiên giao dịch chi tiết.

Gatekeeper cũng là phân mở rộng của H323, điều khiển việc giải quyết địa chỉ và cho vào mạng H323. Chức năng quan trọng nhất của nó là biên dịch địa chỉ giữa địa chỉ ký danh tượng trưng và địa chỉ IP.

Ví dụ: với sự có mặt của Gatekeeper nó có khả năng gọi tới địa chỉ có tên là “Tom” thay vì phải gọi tới địa chỉ IP 192.168.10.10. Gatekeeper cũng quản lý các thiết bị đầu cuối truy cập vào các thiết bị, tài nguyên mạng, và mở rộng hơn là có thể cung cấp các dịch vụ phụ. Chúng cũng giám sát việc sử dụng dịch vụ và cung cấp băng thông có giới hạn. Một Gatekeeper thì không đòi hỏi một hệ thống H323. Tuy nhiên nếu có sự hiện diện của Gatekeeper, các thiết bị đầu cuối muốn sử dụng được thì cần phải có sự phục vụ của Gatekeeper. RAS định nghĩa khái niệm này là sự biên dịch địa chỉ, điều khiển sự đi vào, điều khiển băng thông, sự quản trị miền. Các chức năng của Gatekeeper và Gateway thường được hiện diện trên những thiết bị vật lý đơn giản.

MCUs hỗ trợ hội nghị nhiều bên giữa ba hay nhiều thiết bị đầu cuối.

Chuẩn H323 cho phép nhiều kịch bản đàm thoại đặc biệt, hoặc tập trung hay phân quyền.

Base-end servers (BES) là một chức năng bổ sung quan trọng trong hạ tầng H323. BES có thể cung cấp những dịch vụ cho việc chứng thực người sử dụng, sự ủy quyền dịch vụ, tài chính, nạp điện và hóa đơn, và các dịch vụ khác. Trong một mạng đơn giản thì Gatekeeper và Gateway cung cấp những dịch vụ như thế.

Những giao thức có liên hệ với H323

H323 có đặc điểm kỹ thuật giống như một chiếc dù chứa đựng một số lượng lớn bộ máy chính trị có tác động qua lại với nhau bằng nhiều cách thức khác nhau dựa vào bộ dạng, sự vắng mặt, mối quan hệ mô hình của những thực thể tham gia và loại session (ví dụ như là audio và video). Có nhiều giao thức con bên trong đặc điểm của giao thức H323. Để mà có thể hiểu được toàn bộ những luồng thông điệp bên trong một giao tác VoIP của giao thức H323, bản thân chúng ta sẽ tự quan tâm đến những giao thức chung nhất có liên quan đến công nghệ VoIP.

H323 định nghĩa một tập hợp tổng quát việc thiết lập cuộc gọi và những thủ tục đàm phán- quan trọng nhất trong các ứng dụng VoIP ngày nay là các giao thức H.225, H.235, H.245 và các bộ phận của dãy tín hiệu Q.900. Các phương pháp vận chuyển dữ liệu cơ bản được định nghĩa bởi giao thức thời gian thực RTP và RTCP. H323 cũng chỉ rõ một nhóm audio codes cho sự liên kết VoIP, dãy G.700:

H.225/Q.931 định nghĩa tín hiệu cho việc thiết lập và ngắt cuộc gọi, bao gồm địa chỉ IP nguồn và địa chỉ IP đích, cổng, mã vùng, và thông tin cổng của giao thức H245.H.225.0/RAS chỉ rõ thông điệp mà mô tả tín hiệu, và thông tin dòng media.H.245 chỉ rõ thông điệp và thông tin kênh logic cho dòng phương tiện. Real Time Protocol (RTP) mô tả vận chuyển End-To-End của dữ liệu thời gian thực Real Time Control Protocol (RTCP) mô tả việc giám sát End-To-End của việc chuyển dữ liệu, chất lượng dịch vụ của thông tin cung cấp như là Jitter và sự thất lạc trung bình của packet.

Codecs G.700 series được sử dụng cho VoIP bao gồm:

G.711 Một trong số codecs lâu đời nhất, G.711 không sử dụng sự nén, vì thế giọng nói có chất lượng tuyệt vời.Codec này tiêu thụ nhiều dải thông nhất.Đây là codec tương tự được dùng bởi PSTN và ISDN.

G.723.1 Codec này được thiết kế cho tổ chức hội nghị video/ kỹ thuật điện thoại thông qua các đường điện thoại tiêu chuẩn và được tối ưu hóa cho việc mã hóa và giải mã nhanh chóng, chất lượng thoại thuộc loại trung bình.

G.729 codec này được sử dụng chủ yếu trong những ứng dụng VoIP bởi vì nhu cầu băng thông của nó thấp.

So sánh giữa SIP và H323

SIP và H.323 đều được phát triển với mục đích và nhu cầu khác biệt. H.323 được phát triển bởi ITU. Nó được thiết kế để thực hiện trong background của PSTN, sử dụng sự mã hóa binary và sử dụng lại vai trò của ISDN.

SIP được phát triển bởi IETF với một phối cảnh Internet, được thiết kế để thay đổi tỉ lệ thông qua Internet và làm việc bên trong domain thì rất tiện dụng vì nó tập hợp đầy đủ các chức năng và tiện ích Internet.

Trong khi H.323 được phát triển sớm trong VoIP, các ứng dụng IP Video Conferencing, SIP với hạ tầng Internet tạo đà phát triển và nổi lên như là một chuẩn trong việc truyền tín hiệu của truyền thông IP trong tương lai, như IP telephone.

Bảng so sánh giữa SIP và H.323


Bảng so sánh giữa SIP và H.323

Tìm hiểu giao thức MGCP

MGCP là giao thức ở mức ứng dụng dùng để điều khiển các gateway thoại từ các thiết bị điều khiển cuộc gọi, được gọi là MGC (Media Gateway Controller) hoặc CA (Call Agent). MGCP là sự bổ sung của cả hai giao thức SIP và H.323, được thiết kế đặc biệt như một giao thức bên trong giữa các MG và các MGC cho việc tách hoá kiến trúc GW. Trong đó, MGC xử lý cuộc gọi bằng việc giao tiếp với mạng IP qua truyền thông với một thiết bị báo hiệu địa chỉ giống như H.323 GK hoặc SIP Server và với mạng chuyển mạch kênh qua một GW báo hiệu tuỳ chọn. MGC thực hiện đầy đủ chức năng của lớp báo hiệu trong H.323 và như một H.323 GK. MG có nhiệm vụ chuyển đổi giữa dạng tínhiệu analog từ các mạch điện thoại, với các gói tin trong mạng chuyển mạch gói. MGCP hoàn toàn tương thích với VoIP GW. Nó cung cấp một giải pháp mở cho truyền thông qua mạng và sẽ cùng tồn tại với H.323 và SIP.

Kiến trúc và thành phần của MGCP

Giao thức điều khiển cổng đa phương tiện MGCP được coi là giao thức điều khiển trong quan hệ Client/Server. Trong đó MGC đóng vai trò Server thực hiện quản lý trạng thái cuộc gọi và định hướng cho MG từng bước trong quá trình thiết lập cuộc gọi. Cổng đa phương tiện MG sẽ khôngthực hiện bất cứ một hoạt động nào có liên quan đến cuộc gọi như cung cấp âm mời quay số, chuông nếu như không có yêu cầu của MGC. Quan hệ giữa MG và MGC (hay CA) được mô tả trên hình bên dưới. MGC thực hiện báo hiệu cuộc gọi, điều khiển MG. MGC và MG trao đổi lệnh với nhau thông qua MGCP. Quá trình thiết lập giữa hai đầu cuối tại các gateway cùng được quản lý bởi MGC diễn ra như sau:

+ MGC gửi CreatConnection tới GW đầu tiên. GW sẽ định vị các tài nguyên cần thiết và gửi trả các thông tin cần thiết cho kết nối như địa chỉIP, cổng UDP, các tham số cho quá trình đóng gói. Các thông tin này được chuyển tiếp qua MGC. 
+ MGC gửi CreatConnection tới GW thứ hai chứa các thông tin chuyển tiếp trên. GW này trả về các thông tin mô tả phiên của nó. 
+ MGC gửi lệnh ModifyConnection tới đầu cuối thứ nhất. Quá trình kết nối thành công sau khi hoàn tất các bước trên.


Vị trí giao thức MGCP trong mối quan hệ MGC và MG

Thiết lập cuộc gọi qua giao thức MGCP


Mô hình thiết lập cuộc gọi giữa A và B qua MGCP

Trình tự thiết lập cuộc gọi giữa hai máy điện thoại A điện thoại B như sau:

– Khi máy điện thoại A được nhấc lên Gateway A gửi bản tin cho MGC. 
– Gateway A tạo âm mời quay số và nhận số bị gọi. 
– Số bị gọi được gửi cho MGC. 
– MGC xác định định tuyến cuộc gọi như thế nào :

– MGC gửi lệnh cho Gateway B.
– Gateway B đổ chuông ở máy B. 
– MGC gửi lệnh cho Gateway A và B tạo phiên kết nối RTP/RTCP.

Tìm hiểu giao thức MEGACO

MEGACO là giao thức điều khiển cổng phương tiện nói chung, bao gồm cổng nội hạt, trung kế trong mạng PSTN, giao diện ATM, giao diện thoại và dây analog, điện thoại IP, các loại server…

Với tính năng hỗ trợ rộng rãi các ứng dụng một cách mềm dẻo, đơn giản và hiệu quả ở mức chi phí hợp lý, MEGACO sẽ là chuẩn được sử dụng trong mạng thế hệ mới. MEGACO không bị ràng buộc với bất kỳ một giao thức điều khiển cuộc gọi ngang cấp nào (ví dụ SIP hay H.323) và hoàn toàn tuỳ thuộc vào thiết kế của người quản trị mạng. Kiến trúc của MEGACO được thể hiện trên hình bên dưới dựa trên 3 lớp: lớp MGC, lớp MG, lớp MEGACO.


Kiến trúc điều khiển của MEGACO

Lớp MGC chứa tất cả các phần mềm điều khiển, xử lý cuộc gọi. Lớp này thực hiện các đặc điểm ở mức cuộc gọi như phát triển cuộc gọi, chuyển cuộc gọi, hội thoại hay hold. Lớp MGC cũng thực hiện giao tiếp với các MGC cũng như các thực thể ngang cấp hay cấp dưới khác, MGC quản lý mọi thuộc tính trong quá trình giao tiếp. Lớp MG thực hiện các kết nối lưu lượng đi và tới các mạng khác, tương tác với các luồng lưu lượng này qua ứng dụng báo hiệu và sự kiện. Lớp MG cũng điều khiển các thuộc tính thiết bị của cổng phương tiện (ví dụnhư giao diện với người dùng). Lớp này không hề biết gì về việc điều khiển các thuộc tính cuộc gọi và hoạt động theo sự điều khiển của lớp MGC. Lớp MEGACO/H.248 quy định cách thức mà lớp MGC điều khiển lớp MG.

Chức năng của giao thức MEGACO

Giao thức MEGACO/H.248 định nghĩa giao diện điều khiển của MGC đối với MG. MEGACO cung cấp các chức năng sau: 
– Điều khiển các loại MG khác nhau (TGW, RGW, AGW, MS…) 
– Hỗ trợ đàm phán quyết định các thuộc tính cuộc gọi 
– Có khả năng xử lý cuộc gọi đa người dùng 
– Hỗ trợ QoS và đo lường lưu lượng (các thông tin thống kê sau mỗi kết nối)
– Thông báo lỗi giao thức, mạng, hay các thuộc tính cuộc gọi.

Vị trí của giao thức MEGACO trong mô hình OSI

Giao thức MEGACO thực hiện chức năngcủa mình ở 3 lớp trên cùng trong mô hình OSI: lớp ứng dụng, lớp trình diễnvà lớp phiên.


Giao thức MEGACO trong mô hình OSI

Hoạt động của giao thức MEGACO

Khi một đầu cuối nào đó nhấc máy và định thực hiện cuộc gọi, sự kiện này sẽ được phát hiện bởi MG quản lý nó. MG sẽ thông báo sự kiện này tới MGC trực thuộc, MGC sẽ chỉ định MG này bằng một lệnh để gửi âm báo mời quay số tới đầu cuối đó, đồng thời digitmap cũng được MG này cập nhật từ MGC, để phục vụ cho việc thu các chữ số và gửi toàn bộ số được quay về MGC.


Mô tả cuộc gọi MEGACO

Giả sử đầu cuối bị gọi thuộc một MG khác nhưng cùng được quản lý bởi MGC trên. Quá trình thiết lập liên kết được tiến hành theo các bước cơ bản sau:

– MGC yêu cầu MG thứ nhất thiết lập một kết nối tại điểm kết cuối thứ nhất. MG này sẽ phân bổ tài nguyên cho kết nối yêu cầu và đáp ứng lại bằng bản tin trả lời. Bản tin trả lời sẽ chứa các thông tin cần thiết để MG thứ hai có thể gửi các bản tin một cách tin cậy tới liên kết vừa thiết lập. Các thông tin này có thể là: địa chỉ IP, tên cổng UDP, TCP hay các thông tin đóng gói bản tin. 
– Tương tự, MGC cũng yêu cầu MG thứ hai thiết lập một liên kết ở điểm kết cuối thứ hai. MG này phân bổ tài nguyên cho kết nối này trên cơ sở các thông tin trong bản tin đáp ứng của MG thứ nhất. Tới lượt, MG thứ haicũng đáp ứng lại bằng bản tin chứa các thông tin cần thiết nhằm đảm bảo MG thứ nhất có thể gửi các bản tin một cách tin cậy tới liên kết vừa thiết lập bởi MG thứ hai. 
– Các thông tin trong bản tin đáp ứng của MG thứ hai sẽ được gửi tới MG thứ nhất. Khi này liên kết đã được thiết lập, quá trình truyền thông có thể diễn ra theo hai chiều. Lưu lượng được truyền tải nhờ các giao thức RTP hay RTCP.
– Trong trường hợp hai MG được quản lý bởi 2 MGC khác nhau, các MGC này sẽ trao đổi các thông tin báo hiệu thông qua một giao thức báo hiệu từ MGC tới MGC (có thể là SIP hay H.323) để đảm bảo việc đồng bộ trong việc thiết lập kết nối tới hai điểm kết cuối. 
– Khi liên kết đã được thiết lập, các tham số của nó được giám sát bởi MGC và có thể được thay đổi dưới các lệnh của MGC (ví dụ như thêm một kết cuối vào liên kết).

Các ưu điểm của giao thức MEGACO so với các giao thức điều khiển cổng phương tiện khác

So với giao thức MGCP, phiên bản MEGACO version 3 (gần đây nhất là tháng 6 năm 2004) có các điểm nổi trội sau :

+ Hỗ trợ dịch vụ Multimedia, các dịch vụ hội nghị đa điểm tăng cường. 
+ Cải tiến cú pháp lệnh để việc xử lý bản tin hiệu quả hơn. 
+ Có khả năng lựa chọn giao thức TCP hay UDP. 
+ Chấp nhận cả việc mã hoá văn bản hay nhị phân. 
+ Các gói tin của MEGACO chi tiết hơn MGCP, hơn thế nữa các gói tin mới có thể được định nghĩa dựa trên các gói tin cơ sở này. 
+ Đưa ra khái niệm context, khái niệm này hỗ trợ kết nối đa dịch vụ, đa điểm.


Vị trí giao thức MGCP trong mối quan hệ MGC và MG

Leave A Comment?