Megaco Adalah

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.

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.

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.

Final Charter for Working Group

Note: There is an additional file storage area at ftp://standards.nortelnetworks.com/megaco/docs/

The Megaco media gateway control protocol, RFC 3015 (also published as ITU-T Recommendation H.248), was developed by the Megaco Working Group in close cooperation with ITU-T Study Group 16. The protocol responds to the requirements documented in RFC 2805.

The Megaco Working Group has identified a large number of corrections to the protocol specification in the year and a half since RFC 3015/Rec. H.248 was approved. As guardians of the protocol specification, Study Group 16 maintains a record of these corrections in the form of an "Implementor's Guide". Study Group 16 now proposes to issue a new version of Recommendation H.248 incorporating these corrections and a limited number of new protocol features. The current charter includes one package, on naming patterns. If the WG determines that other packages are of general usefulness, an AD and IESG review is needed to permit addition of the package to the charter.

The basic mandate of the Megaco Working Group is to cooperate with the ITU-T in the continuing refinement and evolution of the Megaco/H.248 protocol. This specifically includes participation in the development of H.248v2 and subsequent versions, creation of packages of general usefulness to users of the protocol, and creation of documents providing additional information to the development community on specific aspects of the protocol.

The work of package development for specific applications is specifically excluded from the Working Group's mandate. However, the Megaco list will continue to be a place where such packages can be discussed and refined before being submitted to the IESG for potential publication as individually-submitted RFCs.

Megaco atau Media Gateway Control itu adalah sebuah benda abstrak yang berfungsi sebagai protokol pensinyalan yang mengatur bahasa komunikasi antara perangkat Media Gateway(MG) dengan Media Gateway Controller (MGC) dalam teknologi softswitch, khususnya untuk keperluan komunikasi VoIP . H.248 adalah nama lain MEGACO yang diberikan oleh ITU-T, sementara kalangan IETF menamainya Megaco (RFC 3525). Sebelum megaco ini dilahirkan, sebelumnya sudah ada protokol yang disebut MGCP (Media Gateway Control Protocol). Namun Megaco memberikan peningkatan kecerdasan daripada MGCP,antara lain:

Media Gateway (MG) dapat terletak dimana saja dalam jalur panggilan, dari sebuah terminal diujung network sampai gateway besar ditengah Network. Dan MG tidak harus untuk VoIP saja, namun juga untuk topologi-topologi yang berbeda. Megaco mempunyai struktur arsitektur yang hampir sama dengan MGCP tetapi Megaco mempunyai fungsi yang lebih luas. Dalamproses pembangunan dan pemutusan hubungan,

Megaco melibatkan dua parameter utama yang disebut termination dan context.

Megaco menggunakan konsep dari context untuk memproses panggilan multimedia dan panggilan konferensi. Komponen lain dalam Megaco adalah Descriptors dan Packages. Descriptors digunakan bersama dengan command dan berfungsi sebagai parameter. Descriptors menyediakan informasi yang cukup untuk mendasari elemen seperti DSP. Hal ini mungkin digunakan secara sederhana dan dengan cara yang menarik untuk mengimplementasikan context bila dihubungkan dengan layanan yang diberikan.

Sekilas seperti itulah Megaco...

ITU-T menamainya H.248, sementara kalangan IETF menyebutnya Megaco (RFC 3525). Megaco menawarkan peningkatan lebih dari MGCP, yaitu:

* Mendukung multimedia danconferencee multipoint yang meningkatkan layanan.

* Pilihan pengangkut TCP dan UDP.

* Memperbolehkan teks encoding atau binary encoding.

Sebagai perjanjian dalam Megaco media gateway dapat terletak dimana saja dalam jalur panggilan, dari sebuah terminal diujung network sampai gateway besar ditengah network, MG tidak harus untuk VoIP saja, tapi juga untuk topologi-topologi yang berbeda.

Megaco memungkinkan penggabungan paketvoice, fax, dan multimedia antara jaringan PSTN dan jaringan IP. Penggabungan dengan voice-to-text application misalnya, dimungkinkan dalam protocol ini. Dikembangkan dari Media Gateway Control Protokol (MGCP), Megaco menyediakan control yang terpusat untuk komunikasi multimedia dan layanan yang berbasis IP. Secara fungsional, Megaco adalah protocol pensinyalan yang digunakan antara MG dan MGC (softswitch).

Dalam NGN ( Next Generation Network ), MGC merupakan tempat untuk signaling logic. Sementara itu media logic ditempatkan dalam MG. Dengan menggunakan Megaco, MGC dapat mengontrol MG melalui jaringan yang terdistribusi. Megaco mempunyai struktur arsitektur yang hamper sama dengan MGCP tetapi Megaco mempunyai fungsi yang lebih luas.

Dalam proses pembangunan dan pemutusan hubungan protocol Megaco melibatkan dua parameter utama yang disebut termination dan context.

Termination a dalah entitas logic dalam MG yang berfungsi sebagai sumber data. Sebuah termination didefinisikan sebagai kumpulan dari sejumlah karakteristik properties, yang tergabung dalam satu set descriptors yang termasuk dalam command. Termination punya identitas unik (Termination ID), yang ditandai oleh MG pada saat pertama kali diciptakan. Termination juga menyatakan entitas fisik dengan keberadaan yang semi permanent. Sebagai contoh, termination menyatakan kana lTDM dalam gateway. Termination ada sebagai akibat dari add command dan dapat dihapus dengan menggunakan substract command. Dalam termination terdapat signals yang dibangkitkan oleh MG (misal: tones). Termination juga deprogram untuk mendeteksi proses yang terjadi seperti pesan yang akan diberikan kepada MGC atau aksi yang dilakukan oleh MG. Statistik dapat dikumpulkan dalam termination lalu dilaporkan ke MGC selama request (oleh command Audit Value) dan saat termination diambil dari proses koneksi. Multimedia gateway bias memproses media streams yang kompleks. Sebagai contoh, protocol H221 memiliki struktur frame yang dapat digunakan untuk memproses media stream yang kompleks dengan kecepatan 64 kbps. Pada setiap bearer channel yang membawa multiplexed streamter dapat sebuah termination. Termination tersebut dihubungkan kebeberapa termination lain yang disebut multiplexing termination. Sebuah Mux Descriptor digunakan sebagai akhir hubungan ini. Protokol dapat juga digunakan untuk menciptakan termination baru dan mengubah nilai dari termination yang sudah ada. Pengubahan ini termasuk kemungkinan penambahan atau pemindahan events dan/atau signals. Dalam prosesnya, termination diwakili oleh suatu Termination ID. Termination ID menyatakan struktur seperti trunk group atau sebuah trunk diantara group. Dalam termination dikenal juga Packages. Packages merupakan kumpulan dari properties, events, signals statistic dan parameter-parameter didalamnya. Setiap packages memiliki property Id, Events Id, Signals Id, Statistic Id dan Parameter Id. Property Id memiliki keunikan dan kebanyakan dari property memiliki nilai yang secara explicit telah didefinisikan dalam standar track Megaco atau alam packages atau telah disediakan sebelumnya. Jika tidak disediakan maka semua descriptors terkecuali Termination State dan Local Control diset ke empty/no value saat termination diciptakan pertama kali atau dikembalikan ke null context. Nilai dari property mungkin juga diubah saat termination dipindahkan dari satu context ke context lain sebagai hasil dari perintah move.

Context didefinisikan sebagai hubungan antara beberapa termination. Context juga menyatakan suatu komponen penyambungan jika dalam hubungan tersebut terdapat lebih dari 2 termination. Null context merupakan tipe context yang khusus. Null context terdiri dari termination yang tidak berhubungan dengan termination yang lain. Termination dalam null context memiliki parameter sendiri untuk digunakan atau diubah. Secara umum, add command digunakan untuk menambahkan termination dalam context. Jika MGC tidak menyebutkan ke context mana termination harus ditambahkan, maka MG akan menciptakan context baru. Sebuah termination mungkin saja dihapus dari suatu context dengan perintah substract dan dipindahkan dari satu context ke context lain dengan perinah move. Sebuah termination harus ada hanya dalam satu context pada satu waktu. Context mengandung beberapa hal yaitu context ID, topologi yang menyatakan aliran media antara termination diantara context., dan the priority yang digunakan context untuk menyediakan MG informasi tentang kejadian/proses yang harus segera ditangani oleh context. MGC juga dapat menggunakan priority untuk mengontrol trafik yang terjadi dalam MG pada situasi tertentu (contoh: saat ada banyak context yang harus ditangani secara simultan). Context juga bias mengandung indicator untuk panggilan darurat dan untuk menyediakan penanganan yang lebih baik dalam MGC. Hubungan dibuat berdasarkan gabungan dua atau lebih termination didalam context dengan mengirimkan command yang tepat. Megaco menggunakan konsep dari context untuk memproses panggilan multimedia dan panggilan konferensi. Komponen lain dalam Megaco adalah Descriptors dan Packages. Descriptors digunakan bersama-sama dengan command dan berfungsi sebagai parameter. Descriptors menyediakan informasi yang cukup untuk mendasari elemen seperti DSP. Hal ini mungkin digunakan secara sederhana dan dengan cara yang menarik untuk mengimplementasikan context bila dihubungkan dengan layanan yang diberikan. Beberapa jenis descriptors diantaranya:

* Modem Descriptor, digunakan untuk melakukan konfigurasi terhadap modem berbasis DSP untuk text telephony. * Multiplex descriptor, digunakan pada tipe media yang dihubungkan dengan bearer channel. * Media descriptor, menjelaskan media stream dan transformasi yang diaplikasikan ke media flow melalui termination. * Event descriptors, merupakan daftar-daftar kejadian untuk notifikasi. * Signal descriptors, merupakan sinyal yang dihubungkan dengan sinyal suara dan menyatakan sinyal mana yang diminta oleh MGC dari MG untuk dipakai oleh termination. * Package descriptor, digunakan hanya bersama-sama dengan Audit Value command, berfungsi untuk mengembalikan daftar packages yang dicapai termination.

Media descriptor terdir iatas:

* Termination State descriptor, digunakan untuk membawa kondisi termination yang independent dari berbagai media flow. * Local Control descriptor, digunakan untuk menyediakan informasi yang berhubungan dengan media stream hanya diantara MGC dan MG. * Local & Remote descriptor, digunakan untuk membawa informasi yang menjelaskan media flow didalam stream yang harus dikoordinasi dengan remote entity.

This entry was posted on February 17, 2010 at 10:31 am and is filed under Uncategorized. You can follow any responses to this entry through the RSS 2.0 feed. You can leave a response, or trackback from your own site.

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ư:

Concluded WG Media Gateway Control (megaco)

Note: The data for concluded WGs is occasionally incorrect.

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.

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.

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.

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.

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.

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

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.

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

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:

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)

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

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 .

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

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:

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

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.

SIP Message structure

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

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:

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

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:

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:

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.

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.

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