Nghiên cứu và xây dựng chương trình truyền thông đa phương tiện

CHƯƠNG 0: GIỚI THIỆU................................................................................................4

CHƯƠNG 1: TÌM HIỂU CÁC CHUẨN NÉN ÂM THANH..........................................6

2.1. 2.2. 2.3. 2.4. 2.5. 2.6. 2.7.

3.1. 3.2. 3.3.

4.1. 4.2.

1. Giới thiệu: ...............................................................................................................6 2. Chuẩn nén G.711: ...................................................................................................6 Giới thiệu:......................................................................................................6 Tốc độ lấy mẫu: .............................................................................................6 Quy luật mã hoá: ...........................................................................................7 Truyền tín hiệu ký tự:.....................................................................................7 Mối liên hệ giữa luật mã hóa và cấp độ âm thanh:.......................................7 Sự chuyển đổi giữa A-law và µ-law : ............................................................8 Sự chuyển đổi giữa µ-law và A-law: .............................................................9 3. Chuẩn nén G.723: .................................................................................................12 Giới thiệu:....................................................................................................12 Cơ chế mã hóa:............................................................................................12 Cơ chế giải mã:............................................................................................14 4. Chuẩn nén G.729: .................................................................................................15 Giới thiệu:....................................................................................................15 Mô tả chung về bộ mã CS-ACELP: .............................................................15 4.2.1.Nguyên lý mã hóa: ......................................................................................16 4.2.2.Nguyên lý giải mã: ......................................................................................18

CHƯƠNG 2: TÌM HIỂU CÁC CHUẨN NÉN HÌNH ẢNH..........................................20

2.1. 2.2. 2.3.

3.1. 3.2.

1. Giới thiệu: .............................................................................................................20 2. Chuẩn nén H.261: .................................................................................................20 Giới thiệu:....................................................................................................20 Đinh dạng ảnh nguồn của chuẩn H.261 ......................................................20 Ghép kênh H.261 (H.261 Multiplexing): .....................................................22 2.3.1.Picture layer: ..............................................................................................22 2.3.2.Group of blocks (GOB):..............................................................................23 2.3.3.Macroblocks: ..............................................................................................24 2.3.4.Block: ..........................................................................................................26 3. Chuẩn nén H.263: .................................................................................................26 Giới thiệu:....................................................................................................26 Những khác biệt giữa H.263 và H.261:.......................................................27 3.2.1.SubQCIF: ....................................................................................................27 3.2.2.Cách tính độ sai lệch tốt hơn: .....................................................................27 3.2.3.Độ chính xác trong việc dự đoán:...............................................................27 3.2.4.Cách xử lý truyền macroblock: ...................................................................27

CHƯƠNG 3: TÌM HIỂU VỀ VOICE OVER IP............................................................28

2.1. 2.2. 2.3. 2.4. 2.5. 2.6.

1. Giới thiệu về VoIP: ...............................................................................................28 2. Ưu điểm của VoIP so với PSTN:..........................................................................28 Tiết kiệm băng thông: ..................................................................................28 Đơn giản hóa:..............................................................................................29 Khả năng tích hợp: ......................................................................................29 Uyển chuyển trong quản lý:.........................................................................29 Quản lý tốt: ..................................................................................................29 Giá thành thấp:............................................................................................30 3. Các hình thức truyền thoại trên mạng IP: .............................................................30

1

Trần Thanh Long - Nguyễn Thành Nam

Nghiên cứu và xây dựng chương trình truyền thông đa phương tiện

3.1. 3.2. 3.3.

4.1. 4.2.

5.1. 5.2. 5.3. 5.4. 5.5. 5.6.

6.1.

6.2.

PC-PC : .......................................................................................................30 PC – Phone :................................................................................................30 Phone - Internet - Phone : ...........................................................................30 4. Nguyên tắc và mô hình hoạt động của VoIP: .......................................................31 Quá trình thiết lập một kết nối VoIP : .........................................................31 Mô hình hoạt động của VoIP:......................................................................31 5. Các nghi thức được sử dụng trong hệ thống VoIP:...............................................31 Giao thức UDP (User Datagram Protocol):...............................................31 Giao thức RTP (Realtime Protocol): ...........................................................32 Giao thức RTCP ( RTP Control Protocol ): ................................................32 Giao thức RSVP:..........................................................................................32 SGCP: ..........................................................................................................33 MGCP:.........................................................................................................34 6. Các vấn đề liên quan đến chất lượng dịch vụ : .....................................................34 Mất gói và các giải pháp khắc phục tình trạng này: ...................................34 6.1.1.Tổng quan: ..................................................................................................34 6.1.2.Các giải pháp khắc phục: ...........................................................................34 Trễ gói..........................................................................................................35 6.2.1.Tổng quan ...................................................................................................35 6.2.2.Có hai giải pháp: ........................................................................................35 Network Jitter ..............................................................................................35 Kết luận: ......................................................................................................36

6.3. 6.4.

CHƯƠNG 4: TÌM HIỂU CÁC NGHI THỨC TRUYỀN THÔNG THỜI GIAN THỰC RTP (REALTIME PROTOCOL).......................................................................37

4.1. 4.2. 4.3.

1. Giới thiệu giao thức RTP (Realtime Protocol): ....................................................37 2. Các khái niệm và định nghĩa được sử dụng trong RTP: .......................................37 Thứ tự byte, alignment và định dạng thời gian: ....................................................40 3. 4. Nghi thức truyền dữ liệu RTP (RTP Data Transfer Protocol): .............................40 Các trường cố định trong RTP header:.......................................................40 Ghép kênh các phiên RTP (Multiplexing RTP sessions): ............................43 Những thay đổi trong đặc tả profile của RTP Header: ...............................44 4.3.1.Phần RTP header mở rộng (RTP Header Extension):................................45 5. Giao thức điều khiển RTP (RTP Control Protocol – RTCP):...............................46 Cấu Trúc của gói RTP (RTP Packet Format): ............................................47 Các thông báo của bên gửi và bên nhận ( Sender and Receiver reports ):.49

5.1. 5.2.

CHƯƠNG 5: TÌM HIỂU CHUẨN H.323 VÀ THƯ VIỆN OPENH323 ......................56

2.1. 2.2.

2.3.

1. Giới thiệu: .............................................................................................................56 2. Chuẩn H.323: ........................................................................................................56 Các ưu điểm của chuẩn H.323: ...................................................................56 Kiến trúc hệ thống H.323: ...........................................................................58 2.2.1.Terminal:.....................................................................................................59 2.2.2.Gateway: .....................................................................................................60 2.2.3.Gatekeeper: .................................................................................................61 2.2.4.MCU (Multipoint Control Unit): ................................................................63 Sơ đồ cấu trúc phân lớp: .............................................................................64 2.3.1.Video Codec:...............................................................................................65 2.3.2.Audio Codec:...............................................................................................65 2.3.3.Data Channel (Kênh dữ liệu):.....................................................................66

2

Trần Thanh Long - Nguyễn Thành Nam

Nghiên cứu và xây dựng chương trình truyền thông đa phương tiện

2.4.

2.5.

2.6. 2.7. 2.8.

3.

3.1. 3.2.

Điều khiển hệ thống:....................................................................................66 2.4.1.Chức năng điều khiển H.245: .....................................................................66 2.4.2.Chức năng báo hiệu RAS H.225.0: .............................................................67 2.4.3.Chức năng báo hiệu cuộc gọi H.225.0: ......................................................68 Hội nghị đa điểm: ........................................................................................70 2.5.1.Hội nghị đa điểm tập trung:........................................................................70 2.5.2.Hội nghị đa điểm phân tán: ........................................................................71 2.5.3.Hội nghị đa điểm tập trung và phân tán kết hợp: .......................................71 Quy trình thiết lập cuộc gọi qua mạng H.323: ............................................71 Mối quan hệ giữa nghi thức H323 và mô hình OSI: ...................................77 Tổng kết: ......................................................................................................77 Thư viện OpenH323..............................................................................................78 Giới thiệu:....................................................................................................78 Cấu trúc phân lớp và phương thức hoạt động: ...........................................78 3.2.1.Cấu trúc phân lớp: ......................................................................................78 3.2.2.Ý nghĩa một số lớp trong thư viện:..............................................................81 Phương thức hoạt động: ..............................................................................85

3.3.

CHƯƠNG 6: XÂY DỰNG ỨNG DỤNG TRUYỀN THÔNG ĐA PHƯƠNG TIỆN THỂ NGHIỆM ..................................................................................................................88

2.1. 2.2. 2.3.

3.1. 3.2.

4.

4.1. 4.2.

1. Mô hình thực tế: ....................................................................................................88 2. Xác định các yêu cầu: ...........................................................................................88 Các yêu cầu chức năng:...............................................................................88 Các yêu cầu phi chức năng: ........................................................................89 Mô hình giao tiếp giữa các thành phần trong hệ thống: .............................90 3. Đặc tả chung cho hệ thống và sơ đồ khối của các yêu cầu: ..................................91 Đặc tả chung cho hệ thống:.........................................................................91 Sơ đồ khối của một vài chức năng của client: .............................................92 Thiết kế cơ sở dữ liệu:.........................................................................................100 Các trường của bảng lưu thông tin user như sau:.....................................100 Các trường của bảng lưu thông tin danh sách các user trong contact list101 Thiết kế giao diện:...............................................................................................101 5. 6. Cách thực thi hệ thống: .......................................................................................110 7. Cài đặt chương trình:...........................................................................................111 8. Đánh giá kết quả xây dựng ứng dụng: ................................................................111 9. Hướng phát triển chương trình:...........................................................................112

TỔNG KẾT .....................................................................................................................114

BẢNG THAM CHIẾU CÁC TỪ VIẾT TẮT ...............................................................115

CÁC TÀI LIỆU THAM KHẢO ....................................................................................118

3

Trần Thanh Long - Nguyễn Thành Nam

Nghiên cứu và xây dựng chương trình truyền thông đa phương tiện

CHƯƠNG 0: GIỚI THIỆU

Hiện nay với sự phát triển của xã hội, các dịch vụ, các ứng dụng về

truyền thông đa phương tiện như điện thoại, nhắn tin, nghe nhac, xem phim,

v.v… không còn xa lạ với mọi người. Song song với sự phát triển của xã hội

hiện nay là sự phát triển của mạng máy tính, trong đó có mạng truyền thông

đa phương tiện. Trong những năm trước đây, các dịch vụ truyền thông đa

phương tiện đều rất khó thực hiện bởi vì ít có sự hỗ trợ về phần cứng, băng

thông chính là điểm khó khăn cho việc truyền và nhận các tín hiệu âm thanh

và hình ảnh. Tuy nhiên, với kỹ thuật phát triển như hiện nay, các tín hiệu âm

thanh và hình ảnh có thể được nén và giải nén môt cách dễ dàng và băng

thông không còn là vấn đề trở ngại đối với việc truyền nhận tín hiệu âm

thanh, hình ảnh. Hội nghị video (video conference) là một minh chứng rất

thuyết phục cho khả năng này của mạng truyền thông đa phương tiện hiện

nay.

Những kỹ thuật để phục vụ cho mạng truyền thông đa phương tiện hiện

nay đã được nhiều người đi trước nghiên cứu chuyên sâu, tuy nhiên việc kết

hợp các kỹ thuật này lại là một vấn đề mới, thú vị và rất cần thiết cho cuộc

sống hiện nay. Do vậy, chúng em đã chọn đề tài “Nghiên cứu và xây dựng

chương trình truyền thông đa phương tiện tích hợp” để làm đề tài luận văn tốt

nghiệp của mình. Mục tiêu của đề tài là tìm hiểu các chuẩn truyền thông thời

gian thực, các chuẩn nén âm thanh, hình ảnh, nghiên cứu bộ thư viện giao

diện lập trình OpenH323 và từ những kết quả tìm hiểu được, xây dựng một

hệ thống truyền thông giao tiếp trực tuyến sử dụng máy tính giữa nhiều người

dùng trong các tổ chức hoặc công ty hoạt động phân tán tại nhiều vùng địa lý

khác nhau, hoặc giữa các trường đại học, sử dụng cơ sở hạ tầng mạng nối kết

4

Trần Thanh Long - Nguyễn Thành Nam

giữa các vị trí đó (mạng cục bộ, đường truyền thuê bao riêng hoặc Internet).

Nghiên cứu và xây dựng chương trình truyền thông đa phương tiện Phương thức giao tiếp cho phép đa dạng, gồm nhiều phương thức thông qua

nhiều loại phương tiện thông tin khác nhau (thông điệp ngắn, âm thanh, hình

ảnh ..) nhằm đáp ứng những nhu cầu thông tin và điều kiện môi trường trong

thực tế.

Ngoài ra hệ thống còn cần có khả năng nối kết với phương tiện truyền

thông truyền thống đang được sử dụng phổ biến như điện thoại để bàn nối kết

với hệ thống điện thoại công cộng, điện thoại di động và hệ thống thư điện tử.

Sự kết nối tích hợp này sẽ giúp làm tăng khả năng thông tin liên lạc xuyên

suốt giữa các người dùng.

Với khả năng còn hạn chế, luận văn này vẫn còn nhiều điều chưa hoàn

tất, kính mong sự đóng góp ý kiến và giúp đỡ của quý thầy cô.

Thành phố Hồ Chí Minh, 7/2003

5

Trần Thanh Long - Nguyễn Thành Nam

Trần Thanh Long - Nguyễn Thành Nam

Nghiên cứu và xây dựng chương trình truyền thông đa phương tiện

CHƯƠNG 1: TÌM HIỂU CÁC CHUẨN NÉN ÂM THANH

1. Giới thiệu:

Như chúng ta đã biết, các tín hiệu âm thanh có dung lượng rất lớn nên

rất khó khăn cho việc truyền dẫn mà vẫn đạt được một chất lượng tương đối

trên cơ sở hạ tầng mạng hiện nay. Do vậy, việc nén các luồng âm thanh để có

thể truyền trên băng thông thấp với chất lượng dịch vụ cao là một điều rất cần

thiết.

Hiệp hội viễn thông quốc tế, ITU-T ( International Telecommunication

Union – Telecommunication ) đã đưa ra những chuẩn nén âm thanh mới nhất

như G728, G729, G723.1 v.v… dành cho băng thông thoại thấp với tần số

300 Hz đến 3,4kHz. Tất cả các chuẩn này đều dựa trên chuẩn mã hóa CELP

(Code-Excited Linear Prediction). Chuẩn nén âm thanh đã được tiêu chuẩn

hóa trong mã ANSI-C với 2 lý do chính:

• Độ tin cậy khi tương tác giữa các thiết bị.

• Giá thành thấp và những tiện ích thực thi dựa trên 16 bit fixpoint

DSP.

2. Chuẩn nén G.711:

2.1. Giới thiệu:

Chuẩn G.711 là một chuẩn nén âm thanh được sử dụng rộng rãi cho

các hội nghị âm thanh. Chuẩn này mô tả phương pháp mã hoá và giải mã âm

thanh với tốc độ 64Kbps.

2.2. Tốc độ lấy mẫu:

Một giá trị được đề nghị của tần số lấy mẫu là 8000 samples/giây. Độ

6

Trần Thanh Long - Nguyễn Thành Nam

sai sót thường là +/- 50 phần triệu.

Nghiên cứu và xây dựng chương trình truyền thông đa phương tiện 2.3. Quy luật mã hoá:

Mỗi mẫu âm thanh là một số nhị phân có tám bit được sử dụng cho

phạm vi toàn cầu. ITU – T đưa ra hai quy luật mã hóa là mã hóa theo quy luật

A và mã hóa theo quy luật µ.

Khi sử dụng luật mã hóa µ trong mạng truyền thông thì việc chặn tất cả

các tín hiệu ký tự 0 là yêu cầu nhất thiết. Giá trị lượng tử hóa là kết quả của

luật mã hóa. Bất cứ sự chuyển đổi cần thiết giữa các quốc gia đều sử dụng

quy luật µ.

Sự chuyển đổi PCM: Giá trị ấn định (decision value) và giá trị lượng

tử (quantizer value) của A-law được kết hợp với giá trị đồng dạng PCM. Sự

chuyển đổi từ A-law hoặc µ-law từ giá trị đồng dạng PCM tương ứng với giá

trị ấn đinh là một phần chỉ định của giá trị riêng lẽ.

2.4. Truyền tín hiệu ký tự:

Khi tín hiệu ký tự được truyền tuần tự trong một tầng vật lý, bit số 1

(bit dấu) được truyền trước tiên và bit số 8 (bit ít có ý nghĩa nhất) được

truyền cuối cùng.

2.5. Mối liên hệ giữa luật mã hóa và cấp độ âm thanh:

Tín hiệu sóng hình sin 1kHz ở cấp độ nhỏ của 0 dBm0 được thể hiện ở

bất cứ tần số âm thanh nào ở đẩu ra của bộ ghép kênh PCM khi một chuổi tín

hiệu định kỳ của A-law (table 1) và µ-law (table 2) được dùng ở đẩu vào của

bộ giải mã. Theo kết quả lý thuyết, giá trị Tmax = +3.14 dBm0 ứng với A-law

7

Trần Thanh Long - Nguyễn Thành Nam

và Tmax = +3.17 dBm0 ứng với µ-law.

Nghiên cứu và xây dựng chương trình truyền thông đa phương tiện

Table 1

Table 2

2.6. Sự chuyển đổi giữa A-law và µ-law :

Xem Table 3.

Ghi chú:

• Tín hiệu đầu vào của bộ giải mã A-law sẽ bao gồm sự đảo ngược các bit

chẳn của giá trị đưa vào. Do đó tín hiệu đầu ra của bộ chuyển đổi µ-A sẽ

có quá trình chuyển đổi các bit chẳn được thể hiện trong bộ chuyển đổi ở

đầu ra.

• Nếu bộ chuyển đổi µ-A được thay bằng A-µ thì hầu hết các octets sẽ được

lưu trữ ở giá trị nguyên thủy của nó. Chỉ có những octet tương ứng với bộ

giải mã µ-law ở đầu ra được đánh số 0,2,4,6,8,10,12,14 bị thay đổi (các

con số được tăng lên 1). Hơn nữa trong các octets này, chỉ có bit 8

(thường ít giữ vị trí quan trọng trong PCM) thay đổi. Để phù hợp với

những điều nói trên, bộ chuyển đổi kép µ-A-µ thường trong suốt đối với

8

Trần Thanh Long - Nguyễn Thành Nam

bit 1 đến bit 7.

Nghiên cứu và xây dựng chương trình truyền thông đa phương tiện

• Tương tự như vậy, nếu bộ chuyển đổi A-µ được thay bằng µ-A chỉ có các

octet tương ứng với bộ giải mã A-law ở đầu ra có số 26,28,30,32,45,47,63

và 80 bị thay đổi và bit thứ 8 cũng thay đổi. Kết quả là hầu hết dãy tín

hiệu tần số âm thanh tương tự được đưa vào lượng tử hóa thường không

cho kết quả chính xác bởi vì bộ chuyển đổi kép µ-A-µ hay A-µ-A không

cho kết quả tốt hơn bộ chuyển đổi đơn µ-A hay A-µ.

2.7. Sự chuyển đổi giữa µ-law và A-law:

9

Trần Thanh Long - Nguyễn Thành Nam

Xem Table 4.

Nghiên cứu và xây dựng chương trình truyền thông đa phương tiện

Table 3

10

Trần Thanh Long - Nguyễn Thành Nam

Nghiên cứu và xây dựng chương trình truyền thông đa phương tiện

Table 4

11

Trần Thanh Long - Nguyễn Thành Nam

Nghiên cứu và xây dựng chương trình truyền thông đa phương tiện 3.

Chuẩn nén G.723:

3.1. Giới thiệu:

Chuẩn G.723 giới thiệu một bộ nén có thể dùng để nén tín hiệu thoại

hoặc những tín hiệu âm thanh khác của các dịch vụ đa phương tiện ở tốc độ

bit rất thấp. Trong thiết kế của chuẩn này, nguyên lý ứng dụng làm việc ở tốc

độ truyền bit rất nhỏ. Bộ mã hóa này được tích hợp hai tốc độ khác nhau: 5.3

và 6.3kbit/s. Cả hai tốc độ đều hỗ trợ bởi bộ mã hóa và giải mã. Chúng có thể

chuyển đổi qua lại tại bất kì khung truyền (30 ms) nào. Với tốc độ 6.3 kbit/s

chất lượng âm thanh tốt hơn. Bộ mã hóa này nén thoại với chất lượng cao ở

cả hai tốc độ nhưng ít sử dụng kĩ thuật phức tạp. Các tín hiệu âm thanh khác

sau khi được nén cho âm thanh có chất lượng không thực lắm. Về độ trễ, bộ

mã hóa này mã hóa tín hiệu thoại và những tín hiệu âm thanh khác bằng

những khung 30 ms, thêm độ trễ của phần chuyển đổi giữa các khung 7.5 ms,

thời gian trễ tổng cộng là 37.5 ms.

3.2. Cơ chế mã hóa:

Bộ mã hóa này được thiết kế để thực thi với một tín hiệu số. Tín hiệu

này có được bằng cách thực hiện lọc tín hiệu tương tự đầu vào trong băng tần

thoại, sau đó tiến hành lấy mẫu ở tần số 8000 Hz, tiếp theo nó chuyển đổi

thành PCM tuyến tính 16 bit để đưa vào đầu vào của bộ mã hóa. Đầu ra của

bộ mã hóa phải được chuyển đổi ngược lại sang tín hiệu tương tự bằng những

cách tương tự. Những kiểu dữ liệu có đầu vào/đầu ra(input/output) khác, như

dữ liệu PCM 64 kbit/s trong Khuyến nghị G711, phải được chuyển đổi sang

PCM tuyến tính 16 bit trước khi mã hóa hoặc từ PCM tuyến tính 16 bit đến

định dạng đúng sau khi giải mã. Luồng bit từ bộ mã hóa sang bộ giải mã

được định nghĩa rõ trong chuẩn này.

Bộ mã hóa dựa trên nguyên lý mã hóa phân tích bằng cách tổng hợp(

analysis-by-synthesis) dự đoán tuyến tính và cố gắng tối thiểu tín hiệu trọng

số lỗi một cách trực quan( conceptual). Bộ mã hóa hoạt động dựa trên những

12

Trần Thanh Long - Nguyễn Thành Nam

khối (frame 240 mẫu), tương đương với thời gian lấy mẫu là 30 ms ở tốc độ

Nghiên cứu và xây dựng chương trình truyền thông đa phương tiện lấy mẫu 8 kHz. Với mỗi block, trước tiến nó được đưa qua bộ lọc tần số cao

để loại bỏ thành phần DC, sau đó chia vào 4 subframe, mỗi subframe có 60

mẫu. Ứng với mỗi subframe, bộ lọc mã hóa dự đoán tuyến tính (LPC filter–

Linear Prediction Coder filter) cấp 10 được tính toán dùng những tín hiệu đầu

vào chưa được xử lý. LPC filter cho subframe cuối cùng được lượng tử hóa

dùng PSVQ (Predictive Split Vector Quantizer). Các hệ số LPC không được

lượng tử hóa được sử dụng để xây dựng bộ lọc trọng số ngắn hạn(short-term

perceptual weighting filter). Bộ lọc này dùng để lọc toàn bộ frame để nhận

được tín hiệu trong số thoại.

Ứng với 2 subframe (120 mẫu), vòng lặp mở định kỳ cường độ, LOL,

được tính toán dùng tín hiệu trọng số thoại. Sự đánh giá về cường độ âm

thanh được thực thi trên một khối 120 mẫu. Định kỳ về cường độ được dò

tìm trong một khoảng từ 18 đến 142 mẫu. Từ điểm này âm thoại được xử lí

với 60 mẫu trên một subframe.

Bằng cách dùng sự ước lượng về cường độ âm thanh được tính toán ở

phía trước ta xây dựng được bộ lọc định dạng nhiễu điều hòa( harmonic noise

shaping filter). Sự kết hợp của bộ lọc tổng hợp LPC, bộ lọc trọng số và bộ lọc

điều hòa tạp âm được dùng để tạo nên các xung hồi đáp sử dụng cho những

sự tính toán về sau.

Vòng lặp đóng của sự dự đoán cường độ âm thanh được tính toán dựa

trên sự ước lượng định kỳ cường độ âm thanh và đáp ứng xung. Chu kì

cường độ được tính toán như là một giá trị sai biệt nhỏ xung quanh sự ước

đoán cường độ vòng lặp mở. Ứng với trường hợp tốc độ bit cao (6.3 kbit/s),

kĩ thuật lượng tử Multi-pulse Maximum Likelihood Quantization( MP-MLQ)

được dùng, còn đối với trường hợp tốc độ bit thấp (5.3 kbit/s), sự kích thích

các mã đại số được dùng (ACELP). Biểu đồ khối của bộ mã hóa được thể

13

Trần Thanh Long - Nguyễn Thành Nam

hiện trong hình dưới đây.

Nghiên cứu và xây dựng chương trình truyền thông đa phương tiện

Biểu đồ khối của bộ mã hóa tín hiệu thoại

3.3. Cơ chế giải mã:

Bộ giải mã được thực thi dựa trên cơ sở frame-by-frame. Trước tiên

các chỉ mục LPC đã lượng tử hóa được giải mã, tiếp theo bộ giải mã tạo ra bộ

lọc tổng hợp LPC. Ứng với mỗi subframe, cả bộ dự đoán adaptive codebook

và fixed codebook được giải mã và được đưa vào bộ lọc tổng hợp. Tín hiệu

kích hoạt được đưa vào bộ lọc chuyển (postfilter) cường độ âm thanh, bộ lọc

14

Trần Thanh Long - Nguyễn Thành Nam

này được kích hoạt để đưa vào bộ lọc tổng hợp.

Nghiên cứu và xây dựng chương trình truyền thông đa phương tiện

Biểu đồ khối của bộ giải mã tín hiệu thoại

4. Chuẩn nén G.729:

4.1. Giới thiệu:

Chuẩn này sử dụng thuật toán Conjugate-Structure Algebraic-Code-

Excited Linear-Prediction (CS-ACELP) để mã hóa tín hiệu âm thanh với tốc

độ 8kbit/s. Bộ mã hóa này được thiết kế để thực thi với tín hiệu số nhận được

từ bộ lọc băng thông thoại đầu tiên (được giới thiệu ở chuẩn G.712) của tín

hiệu tương tự ở đầu vào, sau đó tiến hành lấy mẫu ở tần số 8000 Hz và

chuyển đổi các mẫu âm thanh này thành PCM tuyến tính 16 bits để chuyển

đến bộ mã hóa ở đầu vào. Đầu ra của bộ giải mã phải chuyển đổi ngược sang

tín hiệu tương tự bằng cách giống như ở đầu vào.

4.2. Mô tả chung về bộ mã CS-ACELP:

Bộ mã CS-ACELP được dựa trên nền tảng của mô hình mã hóa CELP

(Code-Excited Linear-Prediction). Bộ mã này thực thi trên những khung âm

thanh 10 ms tương đương với tốc độ lấy mẫu 8000 sample/s. Cứ mỗi khung

10 ms, tín hiệu âm thanh được phân tích để trích ra những tham số của mô

hình CELP, những tham số này được mã hóa và truyền đi

Tại bộ phận giải mã, các tham số này được dùng vào việc khởi tạo và

15

Trần Thanh Long - Nguyễn Thành Nam

tổng hợp các tham số trong bộ lọc. Âm thanh được khôi phục bằng cách lọc

Nghiên cứu và xây dựng chương trình truyền thông đa phương tiện khởi tạo này thông qua các bộ lọc tổng hợp và bộ lọc dự đoán. Sau khi tính

toán xong luồng, âm thanh vừa được tổng hợp lại được nâng cao hơn nữa

Biểu đồ khối của mô hình quan niệm tổng hợp CELP

bằng một bộ postfilter.

4.2.1. Nguyên lý mã hóa:

Nguyên lý mã hóa được biểu diễn trong hình dưới đây. Tín hiệu đầu

vào được chuyển lên bộ lọc chất lượng cao và được chia tỷ lệ trong những

khối trước khi xử lý . Tín hiệu tiền xử lý cung cấp như là tín hiệu đầu vào để

dùng cho tất cả những việc phân tích tiếp theo. Việc phân tích dự đoán tuyến

tính (Linear Prediction - LP) được làm một lần trên một khung 10 ms để tiến

hành tính toán hệ số lọc LP. Các hệ số này được chuyển sang dạng quang phổ

vạch dạng đôi (Line Spectrum Pairs - LSP) và dạng lượng tử hóa sử dùng dự

đoán hai giai đoạn vector lượng tử (Vector Quantization – VQ) 18 bits. Sự

kích hoạt tín hiệu được chọn bằng cách dùng một thủ tục tìm kiếm phân tích

tổng hợp, trong đó những lỗi giữa âm thanh nguồn và âm thanh sau khi được

tổng hợp lại giảm đến mức tối thiểu theo một quan niệm về việc đo lường

trọng lượng không chính xác. Việc này được thực hiện bằng cách lọc những

tín hiệu lỗi theo quan niệm về trọng lượng mà các hệ số của nó nhận được từ

bộ lọc LP chưa được lượng tử hóa. Hầu hết các quan niệm về trọng lượng

được tương thích hóa để cải thiện hiệu năng của tín hiệu đầu vào với một tần

16

Trần Thanh Long - Nguyễn Thành Nam

số đáp ứng không thay đổi. Sự kích hoạt các tham số (các tham số cố định và

Nghiên cứu và xây dựng chương trình truyền thông đa phương tiện tương thích các ký hiệu điện tử) được xác định trên mỗi khung phụ

(subframe) 5 ms (40 mẫu). Các hệ số trong bộ lọc LP đã được lượng tử hóa

và chưa được lượng tử hóa được sử dụng trong một khung phụ thứ hai, trong

khi khung phụ thứ nhất được tự động thêm vào các hệ số trong bộ lọc LP để

sử dụng ( cả hệ số lượng tử và hệ số chưa được lượng tử hóa). Một vòng lặp

mở với độ delay của chất lượng tiếng nói được đánh giá một lần trên một

khung 10 ms dựa trên quan niệm về trọng lượng của tín hiệu tiếng nói. Sau

đó các thao tác này được lặp lại cho mỗi khung phụ. Tín hiệu cần đạt đến

x(n) được tính toán bằng cách lọc LP còn dư lại qua một bộ lọc phân tích

trọng lượng W(z)/Â(z). Trạng thái khởi tạo của các bộ lọc này được cập nhật

bằng cách lọc các lỗi giữa LP còn dư và LP kích thích, nó tương đương với

việc trừ đi những tín hiệu zero ở đầu vào của bộ lọc tổng hợp trọng lượng từ

trọng lượng của tín hiệu tiếng nói. Những xung đáp ứng h(n) của bộ lọc tổng

hợp trọng lượng được tính toán. Sau đó vòng lặp đóng của chất lượng âm

thanh được thi hành (để tìm độ delay của bộ mã tương thích các ký hiệu điện

tử và tăng tốc cho nó), dùng x(n) và h(n), và bằng cách tìm kiếm xung quanh

những giá trị của vòng lặp mở độ delay của chất lượng âm thanh. Độ trể của

chất lượng âm thanh được mã hóa 8 bits rong khung phụ thứ nhất và mã hóa

5 bit cho khung phụ thứ hai. Tín hiệu đạt được x(n) được cập nhật bằng cách

trừ đi (lọc) các codebook tương thích tham gia vào, và một tín hiệu đạt được

khác x’(n) được dùng trong việc tìm kiếm các fixed_codebook để tìm ra một

sự kích thích tương thích nhất. Codebook đại số 17 bits được dùng cho sự

kích thích fixed_codebook. Sự gia tăng của độ tương thích và những mã cố

định đóng góp vào là một vector lượng tử hóa 7 bits. Cuối cùng bộ nhớ của

17

Trần Thanh Long - Nguyễn Thành Nam

bộ lọc được cập nhật lại dùng tín hiệu kích thích đã được xác định trước.

Nghiên cứu và xây dựng chương trình truyền thông đa phương tiện

Cơ chế mã hóa của bộ mã hóa CS-ACELP

Cơ chế giải mã của bộ mã hóa CS-ACELP

18

Trần Thanh Long - Nguyễn Thành Nam

4.2.2. Nguyên lý giải mã:

Nghiên cứu và xây dựng chương trình truyền thông đa phương tiện

Trước tiên, tham số chỉ mục được trích ra từ luồng bits nhận được.

Những tham số chỉ mục này được giải mã để nhận được tham số mã hóa

tương ứng với các khung thoại 10 ms. Các tham số này đều là các hệ số LSP

(Line Spectrum Pairs), hai phân số độ trễ chất lượng âm thanh, 2 vector

fixed-codebook, và 2 tập hợp tính tương thích và fixed-codebook được tăng

lên. Các hệ số LSP được tự động thêm vào và chuyển đổi sang hệ số bộ lọc

LP (Linear Prediction) cho mỗi khung phụ. Sau đó các bước sau được thực

hiện cho mỗi subframe 5 ms:

Sự kích thích được xây dựng bằng cách thêm độ tương thích và chia tỷ

lệ các vector fixed-codebook bằng cách tăng những phần riêng của nó.

Âm thanh được khôi phục lại bằng cách lọc sự kích thích thông qua

một bộ lọc tổng hợp LP.

Tín hiệu thoại sau khi đã được tái tạo, nó được chuyển qua công đoạn

post-processing, nó bao gồm bộ tương thích postfilter dựa trên bộ lọc tổng

hợp ngắn hạn và dài hạn, chuyển sang bộ lọc high-pass và tiến hành chia tỷ

19

Trần Thanh Long - Nguyễn Thành Nam

lệ.

Nghiên cứu và xây dựng chương trình truyền thông đa phương tiện

CHƯƠNG 2: TÌM HIỂU CÁC CHUẨN NÉN HÌNH ẢNH

1. Giới thiệu:

Cũng giống như các tín hiệu âm thanh, tín hiệu hình cũng gặp rất nhiều

khó khăn trong việc truyền dẫn tín hiệu do sự hạn chế về băng thông. Về điều

này, Hiệp hội viễn thông quốc tế ITU-T cũng đưa ra một vài chuẩn nén dùng

cho video như H.261, H.263 v.v… để có thể truyền các tín hiệu hình ảnh trên

băng thông thấp nhưng vẫn đạt được chất lượng dịch vụ tốt. Các chuẩn kỹ

thuật này đang được sử dụng rộng rãi trong các hội nghị truyền hình.

Ngoài ra, chúng ta có thể sử dụng các kỹ thuật nén hình khác như

MPEG I & II phục vụ cho nhu cầu mã hoá chung các hình ảnh động. Tuy

nhiên, luận văn này đi sâu vào nghiên cứu hai chuẩn nén do ITU-T đưa ra là

H.261 và H.263.

2. Chuẩn nén H.261:

2.1. Giới thiệu:

Chuẩn H.261được ITU-T đưa ra vào năm 1990. Chuẩn này đưa ra

những phương pháp mã hoá và giải mã hình ảnh, dùng trong việc truyền hình

ảnh video của các dịch vụ nghe nhìn với tốc độ px64Kbps ( p = 1- 30 ).

Chuẩn này thực sự hiệu quả khi sử dụng cho các ứng dụng sử dụng trong

mạng chuyển mạch điện tử (SCN). H.261 thường được dùng với các chuẩn

khác như: H221, H230, H242 và H320 hoặc những chuẩn mới.

2.2. Đinh dạng ảnh nguồn của chuẩn H.261

Bộ mã nguồn chỉ có tác dụng với loại ảnh không đan xen (non-

interlaced). Ảnh được mã hoá theo độ sáng và hai thành phần màu khác nhau

(Y, Cb,Cr). Ma trận Cb, Cr có kích thước bằng một nửa ma trận Y.

H261 hỗ trợ hai độ phân giải ảnh khác nhau: QCIF(144*176 pixel) và

20

Trần Thanh Long - Nguyễn Thành Nam

CIF(288*352 pixel).

Nghiên cứu và xây dựng chương trình truyền thông đa phương tiện

Y Y

Cr

Cb

H.1

Y Y

Trong bộ mã hoá H.261, có ba thành phần chính là prediction, block

tranformation, quantization & entropy coding. Chúng ta sẽ đi sau vào các

phần trên đây.

a. Prediction:

H261 định nghĩa hai loại mã khác nhau:

INTRA coding: mỗi block 8*8 pixel được mã hoá một cách độc •

lập và được gởi đi trực tiếp đến tiến trình chuyển đổi block

(block transformation process).

INTER coding: mỗi frame được mã hoá có sự liên quan đến các •

frame khác. Độ sai lệch được tính toán giữa một vùng 16*16

pixel (gọi là macroblock) với một macroblock của frame trước.

b. Block transformation:

H261 hỗ trợ việc bù đắp những mất mát của quá trình chuyển

động trong bộ mã hoá như một tùy chọn. Trong việc bồi thường

chuyển động, một vùng tìm kiếm được xây dựng dựa trên frame trước

để xác định macroblock tham chiếu tốt nhất (reference macroblock).

Cả độ sai lệch ước tính cũng như vector chuyển động, xác định giá trị

và hướng di chuyển giữa macroblock được mã hóa và vùng tham chiếu

đã chọn đều được gửi đi. Cùng tìm kiếm cũng như làm thế nào để tính

21

Trần Thanh Long - Nguyễn Thành Nam

toán vector chuyển động không tùy thuộc và sự chuẩn hóa. Thành

Nghiên cứu và xây dựng chương trình truyền thông đa phương tiện

phần nằm ngang và thẳng đứng của vector phải có giá trị nguyên nằm

trong khoảng -15 đến 15.

Trong sự biến đổi khối, những frame mã hóa theo kiểu INTRA

cũng như những sai số dự đoán đều được đưa vào trong khối 8*8. Mỗi

khối sẽ được xử lý bởi một hàm FDCT hai chiều.

c. Quantization & Entropy Coding:

Mục đích của bước này là đạt được sự nén tốt hơn bằng các hệ

số DCT (Discrete Cosine Transform) để đạt được chất lượng đòi hỏi.

Số lượng tử hóa là 1 đối với các hệ số INTRA và là 31 cho tất cả các

hệ số khác.

Mã hóa entropy kéo theo sự nén tốt hơn được thực hiện bằng

cách gán những từ mã ngắn hơn cho những sự kiện phổ biến và sử

dụng những sự kiện ít phổ biến hơn. Mã hóa Huffman thường được sử

dụng trong trường hợp này.

Nói cách khác, chúng ta có thể mất một vài hệ số trong việc

chuyển đổi bằng cách sử dụng ít bit hơn so với số bit cần thiết cho tất

cả các giá trị. Chúng ta sẽ dùng những từ mã ngắn hơn đối với những

giá trị thông thường (giống như việc sử dụng 8 bit cho việc mã hóa 3 kí

tự trong tiếng Anh).

2.3. Ghép kênh H.261 (H.261 Multiplexing):

Dữ liệu trong bộ ghép kênh H.261 được nén thành các luồng bit phân

lớp. Hệ thống gồm có 4 lớp sau:

2.3.1. Picture layer:

Mỗi một picture layer tương ứng với một khung hình và có cấu trúc

PSC TR PTYPE PEI

PSPARE

PEI

GOB Data

H.2 Structure of picture layer

22

Trần Thanh Long - Nguyễn Thành Nam

như sau:

Nghiên cứu và xây dựng chương trình truyền thông đa phương tiện

• PSC : Picture Start Code (20 bit), có giá trị 0000 0000 0001 0000 0000.

• TR : Temperal Reference (5 bit):

Có 32 giá trị khác nhau, nó được thành lập bằng cách tăng giá trị đó

ở header của ảnh đã chuyển trước lên 1 cộng với số lượng ảnh chưa được

chuyển kể từ ảnh notice chuyển cuối cùng.

• PTYPE : Type Information (6 bit):

Thông số này lưu thông tin về toàn bộ ảnh.

Bit 1: Split screen indicator, “0”: off , “1”: on

Bit 2: Document camera indicator, “0”: off, “1”: on

Bit 3: Freeze Picture Release, “0”: off , “1”: on

Bit 4: Source Format, “0”: QCIF , “1”: CIF.

Bit 5,6 Space.

• PEI : Extra Insertion Information (1 bit)

Được bật lên 1 nếu có trường data tùy chọn theo sau.

• PSPARE : Spare Information (0, 8, 16 …bits)

Nếu trường PEI được bật lên 1 thì 9 bits bao gồm 8 bits data và 1

bit PEI dùng để chỉ tiếp 9 bits theo sau và cứ tiếp tục như thế cho đến khi

bit PEI = 0.

2.3.2. Group of blocks (GOB):

Ứng với 1/12 CIF (Common Image Format) picture hoặc 1/3 QCIF

1 2 3 QCIF

1 3 5 7

2 4 6 8

9 11

10 12

CIF

H.3 Trật tự của một GOB trong một ảnh

23

Trần Thanh Long - Nguyễn Thành Nam

(Quarter Common Image Format)

Nghiên cứu và xây dựng chương trình truyền thông đa phương tiện

Dữ liệu cho một group of block bao gồm một GOB header theo sau là

GBSC GN GQUANT GEI

GSPARE GEI

MB Data

H.4 Structure of GOB Layer

macroblock data. Cẩu trúc của nó như sau:

• GBSC : Group of Blocks Start Code (16 bits)

Một word 16 bits, có giá trị là 0000 0000 0000 0001.

• GN : Group of Number (4 bits)

4 bits này dùng để chỉ vị trí của group of blocks

• GQUANT : Quantizer Information (5 bits)

Dùng để chỉ ra lượng tử hóa (quantizer) được dùng trong group of

block cho đến khi bị loại bỏ bởi bất kỳ một MQUANT nào theo sau. Đây

là giá trị của lượng tử có trị số từ 1-31.

• GEI : Extra Insertion Information (1 bit)

Được bật lên 1 khi có trường data.

• GSPARE : Spare Information (0,8,16,…bits)

Khi thông số GEI bật lên thì 9 bits theo sau sẽ bao gồm 8 bits data

và 1 bit GEI khác dùng để 9 bits tiếp theo và cứ tiếp tục như thế cho đến

khi gặp bit GEI = 0.

2.3.3. Macroblocks:

Mỗi GOB (Group of Block) được chia thành 33 macroblock ứng với

1

2

3

4

5

6

7

8

9

10 11

12 13 14 23 24 25

15 16 17 26 27 28

18 19 20 21 22 29 30 31 32 33

H.5 Trật tự của các macroblock trong một GOB

MBA MTYPE MQUANT MVD

CBP

Block Data

H.6 Cấu trúc một lớp macroblock

24

Trần Thanh Long - Nguyễn Thành Nam

16*16 pixel của cường độ sáng và 2 thành phần màu (8*8).

Nghiên cứu và xây dựng chương trình truyền thông đa phương tiện

• MBA : Macroblock Address

Có độ dài thay đổi dùng để chỉ vị trí của macroblock trong một

group of block. Trật tự được truyền đi theo đúng thứ tự như hình 5 ở trên.

Đối với macroblock đẩu tiên trong GOB thì MBA chính là địa chỉ tuyệt

đối theo như hình 5. Còn đối với các macroblock cuối cùng notice chuyển

đi. Những macroblock nào không chứa thông tin của phần ảnh đó sẽ

không được chuyển đi.

• MTYPE : Type Information

Là từ mã có độ dài thay đổi cung cấp thông tin về macroblock và

những yếu tố data có mặt.

• MQUANT : Quantizer (5 bit)

Giá trị của MQUANT cũng giống GQUANT.

• MVD : Motion Vector Data

Giá trị MVD tính được từ macroblock vector bằng cách trừ đi

vector của macroblock đi trước được xem là bằng 0 trong 3 trường hợp

sau:

(cid:57) Macroblock 1,12,23

(cid:57) Các macroblock mà MBA có độ sai lệch khác 1

(cid:57) MTYPE của macroblock trước không phải là MC

MVD bao gồm một word mã hóa thành phần ngang và theo sau là

môt word mã hóa thành phần dọc.

• CPB : Coded block pattern

Trường này chỉ có khi nó được chỉ định bởi trường MTYPE. Từ mã

(codeword) cung cấp 1 con số chỉ định những block ở trong macroblock

25

Trần Thanh Long - Nguyễn Thành Nam

nào có ít nhất một hệ số biến đổi được truyền đi.

Nghiên cứu và xây dựng chương trình truyền thông đa phương tiện 2.3.4. Block:

Ứng với 8*8 pixel. Dữ liệu cho mỗi block bao gồm các codewords cho

các hệ số biến đổi theo sau là kí hiệu kết thúc block. Trật tự của các block

5

6

1 3

2 4

Y

CA

CB

trong một macroblock như sau:

TCOEFF EOB

Cấu trúc của block layer như sau:

• TCOEFF : (Transform Coefficients)

Hệ số biến đổi luôn luôn biểu thị cho tất cả 6 blocks trong một

macroblock khi trường MTYPE chỉ định là INTRA. Các hệ số biến đổi đã

Increasing cycle per picture width

Increasing cycle per picture height

2 5 9 12 20 23 35 37

1 3 4 10 11 21 22 36

6 8 13 19 24 34 38 49

7 14 18 25 33 39 48 50

15 17 26 32 40 47 51 58

16 27 31 41 46 52 57 59

28 30 42 45 53 56 60 63

29 43 44 54 55 61 62 64

được lượng tử hóa được truyền đi một cách tuần tự theo một dãy như sau:

3. Chuẩn nén H.263:

3.1. Giới thiệu:

H263 ra đời khoảng 5 năm sau chuẩn H261, là phần mới thêm vào

trong loạt chuẩn H của ITU và mục đích là để mở rộng khả năng mã hóa

video cho việc truyền thông tốc độ thấp (Low Bit Rate Communication).

H.263 được thiết kế cho mạng có tốc độ nhỏ hơn 64 Kbps, rất thích hợp cho

các mạng truyền thông có băng thông thấp. Chuẩn này chỉ mở rộng thêm một

vài phần so với chuẩn H.261 nên trong mục này, ta chỉ nêu lên sự khác biệt

26

Trần Thanh Long - Nguyễn Thành Nam

giữa hai chuẩn này.

Nghiên cứu và xây dựng chương trình truyền thông đa phương tiện 3.2. Những khác biệt giữa H.263 và H.261:

3.2.1. SubQCIF:

H263 ngoài việc hỗ trợ các độ phân giải QCIF (176*144),

CIF(352*288), 4CIF(704*576), 16CIF (1048*1152), nó còn hỗ trợ dạng mới

gọi là SubQCIF(352*288).

3.2.2. Cách tính độ sai lệch tốt hơn:

H263 xem xét trước tất cả khả năng có thể để lựa chon vùng tham

chiếu tốt nhất. Tùy chọn APM (Advanced Prediction Mode) cho phép tính

vector chuyển động sử dụng 4 block 8*8 thay vì 1 block 16*16. Nếu tùy chọn

này được xác định thì thuật toán tính độ sai lệch sẽ tính 4 vector chuyển động

V1,V2,V3,V4.

3.2.3. Độ chính xác trong việc dự đoán:

H263 đưa ra một cách tính phần phải chuyển đi (carrier of motion) với

độ chính xác cao hơn. Một khi nó quyết định mã hóa INTER và đã tính được

vector chuyển động của macroblock, H263 đưa ra một thuật toán để tính một

phần chuyển đi mới (carrierer motion) dựa vào search pixel (Half Pixel

Search).

3.2.4. Cách xử lý truyền macroblock:

Một macroblock sẽ không được chuyển đi nếu nó giống với

macroblock trước. H261 truyền MBA (macroblock address) với độ dài từ mã

27

Trần Thanh Long - Nguyễn Thành Nam

khác nhau trong khi H263 thì chỉ truyền có 1 bit.

Nghiên cứu và xây dựng chương trình truyền thông đa phương tiện

CHƯƠNG 3: TÌM HIỂU VỀ VOICE OVER IP

1. Giới thiệu về VoIP:

VoIP là từ viết tắt của Voice Over Internet Protocol. Đúng như tên gọi

của chúng, nghi thức truyền âm thanh này sử dụng phương pháp truyền tín

hiệu âm thanh thông qua truyền các gói tin thông qua mạng IP. Bằng cách

này, VoIP có thể sử dụng tốc độ của phần cứng để hoàn thành mục đích và có

thể hữu dụng trên môi trường PC.

VoIP có khả năng kết hợp thoại và dữ liệu trong quá trình xử lý truyền,

phân phối thông, cuộc gọi điện thoại, hội nghị truyền hình, các trò chơi tương

tác trực tuyến cũng như phân phối các ứng dụng truyền thanh, truyền hình và

phát quảng bá.

Đây là công nghệ viễn thông hấp dẫn và được chú ý nhiều nhất hiện

nay. Việc sử dụng VoIP làm cho quá trình phân phối thông tin và dịch vụ

toàn cầu hiệu quả hơn và kinh tế hơn so với sử dụng mạng chuyển mạch thoại

công cộng truyền thống (PSTN), trong khi đó vẫn cho phép sử dụng các ứng

dụng và dữ liệu trước đây. VoIP có thể thực hiện tất cả các chức năng tương

tự với mạng truyền thống với chất lượng dịch vụ tốt.

2. Ưu điểm của VoIP so với PSTN:

2.1. Tiết kiệm băng thông:

Mạng VoIP hiệu quả hơn mạng PSTN trên cơ sở các kênh chuyên

dùng được thiết lập giữa các điểm cuối. Ðối với cuộc gọi thông thường có

đến 40% thời gian bị lãng phí bởi những khoảng lặng (không nói chuyện).

Trong mạng VoIP, các gói chỉ được gởi qua mạng khi có tín hiệu cần truyền

đi. Ðiều này cho phép mạng có thể điều khiển được một lưu lượng nhiều hơn

28

Trần Thanh Long - Nguyễn Thành Nam

qua độ rộng băng thông sẵn có.

Nghiên cứu và xây dựng chương trình truyền thông đa phương tiện 2.2. Đơn giản hóa:

VoIP là môt mô hình tổng hợp, chấp nhận mọi dạng thông tin cho phép

thực hiện việc chuẩn hoá và giảm bớt một phần trang thiết bị dùng riêng cho

từng loại hình. Tích hợp các ứng dụng về thoại và dữ liệu.

2.3. Khả năng tích hợp:

Khả năng này được minh họa một cách rõ nhất bằng việc hỗ trợ phối

hợp giữa mạng không dây và mạng có dây, khả năng hợp nhất các ứng dụng

riêng lẽ trong truyền thống qua các giao thức gắn kết.

Sự tích hợp qua mạng IP đưa ra các giải pháp truy cập hợp nhất các

dịch vụ trong mạng diện rộng WAN bao gồm thoại, dữ liệu, Internet, hình

ảnh qua một hệ thống các đường truy cập tốc độ cao dùng chung.

2.4. Uyển chuyển trong quản lý:

Được thể hiện qua khả năng mở rộng của địa chỉ IP, có thể mở rộng

hay thu hẹp phạm vi của mạng một cách dễ dàng mà không gây nên sự biến

đổi lớn nào về phần cứng và phần mềm..

Việc thêm hay bớt người sử dụng điện thoại, sắp xếp lại các số trên

mạng IP đều dễ dàng hơn so với hệ thống chuyển mạch thoại truyền thống.

Việc định dạng và chuyển nhượng địa chỉ IP có thể được thực hiện bằng cách

sử dụng giao thức DHCP, áp dụng cho điện thoại IP qua LAN khiến việc lập

và quản lý địa chỉ gần như tự động.

Đối với việc kết nối với tổng dài nội bộ (PBX) qua mạng IP được đưa

ra bởi PSINet’s Voice iPEnterprise, phân phối lưu lượng thoại nội bộ qua kết

nối tượng tự như dữ liệu của Internet, cho phép các nhà kinh doanh truyền

các dịch vụ thoại tới văn phòng của họ.

2.5. Quản lý tốt:

Giao thức quản lý SNMP có thể áp dụng vào cho dữ liệu và thoại dùng

29

Trần Thanh Long - Nguyễn Thành Nam

trong VoIP để có thể loại bỏ sai sót và củng cố hệ thống.

Nghiên cứu và xây dựng chương trình truyền thông đa phương tiện

Được phát triển trên mạng IP, VoIP sử dụng các giải pháp bảo mật cho

Internet gồm mã hoá, tạo đường hầm, xác nhận sự xâm nhập tự động, quét

virus được thực hiện bởi các máy chủ, firewall, các bộ định tuyến đã giải

quyết được các vấn đề về gian lận cước phí, toàn vẹn dữ liệu.

2.6. Giá thành thấp:

Việc giảm chi phí tài nguyên mạng, chia sẽ trang thiết bị và chi phí vận

hành cho cả tín hiệu thoại và dữ liệu có thể nâng cao hiệu quả sự dụng mạng

vì phần băng thông dư trên mạng này có thể tận dụng trên mạng khác, dẫn

đến tỷ lệ cước phí khi sử dụng thoại và Fax kết hợp trong truy cập Internet có

thể tiết kiệm đáng kể chi phí cho người dùng so với dùng mạng PSTN.

3. Các hình thức truyền thoại trên mạng IP:

3.1. PC-PC :

Mỗi PC trang bị thêm các thiết bị truyền thông và được kết nối trực

tiếp vào mạng Internet thông qua giao diện NIC với mạng LAN hoặc thông

qua Modem / cable modem khi kết nối qua ISP (Internet Sevice Provider).

3.2. PC – Phone :

Người dùng PC hình thành cuộc gọi với người dùng mạng thoại PSTN

thông thường. Cấu trúc này là đường dẫn tới việc kết hợp giữa mạng IP và

PSTN.

3.3. Phone - Internet - Phone :

Là mô hình mở rộng của PC – Phone, sử dụng Internet làm cơ sở để

tính cước phí điện thoại cho người sử dụng mạng PSTN. Mô hình này sử

dụng một mã số đặc biệt là giá trị cổng kết nối giữa PSTN và mạng Internet

rồi mới nhấn số điện thoại cần gặp. Mọi quá trình lấy mẫu và mã hoá đều

30

Trần Thanh Long - Nguyễn Thành Nam

diễn ra ở gateway.

Nghiên cứu và xây dựng chương trình truyền thông đa phương tiện 4.

Nguyên tắc và mô hình hoạt động của VoIP:

4.1. Quá trình thiết lập một kết nối VoIP :

- Bộ phận ADC chuyển đổi âm thanh dạng tín hiệu tương tự sang tín

hiệu số, được biểu diễn bằng các chuỗi bit.

- Các chuỗi bit này được nén với một định dạng để truyền bằng các

nghi thức nén dữ liệu phù hợp tuỳ chọn.

- Đóng gói âm thanh vào gói dữ liệu và truyền đi bằng nghi thức

RTP(real-time transport protocol), thông thường sử dụng RTP over

UDP.

- Dùng nghi thức báo hiệu ITU-T H323 để gọi các user.

- Bên RX sẽ mở gói tin, giải nén dữ liệu, chuyển dữ liệu từ tín hiệu

số sang tín hiệu âm thanh dạng tương tự và gửi tới card âm thanh

(hay phone).

4.2. Mô hình hoạt động của VoIP:

5. Các nghi thức được sử dụng trong hệ thống VoIP:

5.1. Giao thức UDP (User Datagram Protocol):

UDP thực hiện truyền dữ liệu với số header hạn chế tối đa vì giao thức

này không đòi hỏi kiểm tra qua lại giữa bên nhận và bên phát. Các gói tìm

31

Trần Thanh Long - Nguyễn Thành Nam

đường độc lập để đến nơi nhận, do đó không đảm bảo dữ liệu được nhận đầy

Nghiên cứu và xây dựng chương trình truyền thông đa phương tiện đủ và đúng thứ tự. Tuy nhiên, thời gian truyền dữ liệu ngắn với độ hiệu quả

sử dụng các gói cao nên UDP được sử dụng là giao thức chính trong VoIP.

5.2. Giao thức RTP (Realtime Protocol):

Giao thức này cung cấp các dịch vụ về dữ liệu mang tính thời gian thực

như video và audio tương tác. Các ứng dụng này chạy dựa trên nền UDP để

tận dụng được khả năng multiplexing và checksum. Cả hai giao thức này góp

phần tạo nên các tính năng của nghi thức truyền dữ liệu. RTP có thể được

dùng hiệu quả hơn trong các hệ thống mạng hay nghi thức thích hợp. RTP

cũng hỗ trợ truyền dữ liệu đến nhiều địa chỉ khác nhau bằng cách dùng cơ

chế multicast nếu được sự hỗ trợ của hệ thống mạng. Chúng ta sẽ tìm hiểu rõ

hơn về nghi thức này trong phần tìm hiểu về các nghi thức mạng truyền dữ

liệu theo thời gian thực.

5.3. Giao thức RTCP ( RTP Control Protocol ):

Giao thức điều khiển RTP truyền các gói điều khiển theo chu kỳ cho

mọi thành viên trong phiên làm việc, sử dụng cùng một cơ chế phân phối như

đối với các gói dữ liệu. RTCP thực hiện bốn chức năng sau: Cung cấp các

phản hồi về chất lượng của quá trình phân phối dữ liệu, giữ vết các thành

phần tham gia, kiểm soát tốc độ để có thể phục vụ cho một số lượng lớn các

thành phần tham gia, kiểm soát phiên làm việc.

5.4. Giao thức RSVP:

Hỗ trợ cho giao thức RTP, giao thức RSVP có thể giải quyết tạm thời

các lỗi có thể xảy ra trên đường truyền để đảm bảo các tham số chất lượng.

Giao thức RTP chỉ kiểm tra sự truyền thông điểm - điểm, không quản lý các

tham số liên kết trên mạng trong khi RSVP không những tác động ở máy phát

và máy thu mà còn tác động trên các router trên mạng.

RSVP thiết lập và duy trì kết nối duy nhất cho một luồng dữ liệu, xác

32

Trần Thanh Long - Nguyễn Thành Nam

lập một hệ thống quản lý các nguồn tài nguyên của các nút mạng khác nhau.

Nghiên cứu và xây dựng chương trình truyền thông đa phương tiện

RSVP hoạch định một mô hình tối ưu để liên kết các dữ liệu đa điểm (

từ một nguồn đến nhiều điểm đích). RSVP đóng vai trò quản lý một cách độc

lập các máy đích để tự thích nghi các tham số chất lượng giữa khả năng cung

cấp và yêu cầu đáp ứng.

Ðể đảm bảo đường truyền thông suốt, các hệ thống đầu cuối phải hoạt

động ở chế độ kết nối. Máy thu phải thường xuyên gởi các thông điệp RSVP

đến các router để đảm bảo thông suốt đường truyền.

5.5. SGCP:

Giao thức này cho phép các thành phần điều khiển cuộc gọi có thể điều

khiển kết nối giữa các trung kế, các Endpoint và cácVoIP gateway. Các thành

phần điều khiển gọi là Call Agent. SGCP được dùng để thiết lập duy trì và

giải phóng cuộc gọi qua mạng IP. Call Agent thực hiện chức năng báo hiệu

cuộc gọi và Gateway cung cấp chức năng truyền tín hiệu âm thanh. SGCP

yêu cầu các Gateway thực hiện chức năng thiết lập, điều chỉnh, giải phóng

kết nối và báo hiệu về Call Agent các sự kiện xảy ra tại gateway. SGVP có 5

lệnh chính như sau:

- NotificationRequest: yêu cầu Gateway phát hiện các tín hiệu nhấc

máy và tín hiệu quay số DTMF.

- Notify: Gateway sử dụng lệnh này để báo ngược về Call Agent các

tín hiệu trên.

- CreateConnection: Call Agent yêu cầu tạo kết nối giữa cá đầu cuối

tham gia liên lạc trong gateway.

- ModifyConnection: Call Agent dùng lệnh này để thay đổi các

thông số về kết nối đã thiết lập. Lệnh này để thay đổi các thông số

về kết nối đã thiết lập. Lệnh này cũng có thể dùng các gói RTP thay

đổi lộ trình từ Gateway này sang Gateway khác.

- Deleteconnection: Call Agent và Gateway dùng lệnh này để giải

33

Trần Thanh Long - Nguyễn Thành Nam

phóng kết nối.

Nghiên cứu và xây dựng chương trình truyền thông đa phương tiện 5.6. MGCP:

MGCP xác định cách thức truyền thông giữa các đại lý(call agent) và

các cổng điện thoại (telephony gateway). Call agent điều khiển cuộc gọi,

quản lý các telephony gateway được dùng để chuyển đổi giao thức. MGCP

có bốn lệnh chính như sau:

- EndPointConfiguration: Call Agent dùng lệnh này để yêu cầu

Gateway xác định kiểu mã hoá ở phía đường dây kết nối tới

EndPoint.

- AudiEndpoint và AudiConnection: Call Agent kiểm tra trạng thái

và kết nối ở một Endpoint.

- RestarIn_Progress: Gateway báo hiệu cho Call Agent khi nào các

Endpoint ra khỏi dịch vụ hoặc quay lại sử dụng dịch vụ.

6.

Các vấn đề liên quan đến chất lượng dịch vụ : Chất lượng của các dịch vụ truyền thông đa phương tiện được xem là

vấn đề quan quyết định sự phát triển của dịch vụ đó. Mọi dịch vụ truyền

thông đa phương tiện phát triển trên mạng VoIP đều phải khắc phục chất

lượng về âm thanh sau khi nén và điều này là một trong những lý do quan

trọng nhất khiến VoIP không cạnh tranh được với mạng điện thoại truyền

thống PSTN. Có 3 yếu tố chính gây ảnh hưởng trực tiếp đến chất lượng tín

hiệu thoại trong VoIP là : mất gói, trễ gói và jitter.

6.1. Mất gói và các giải pháp khắc phục tình trạng này:

6.1.1. Tổng quan:

• Là hiện tượng chung trong môi trường chuyển mạch gói.

• Các gói được truyền giữa các đầu cuối thông qua các router trung

gian. Khi các router này quá tải, nghẽn mạch sẽ dẫn đến mất gói.

6.1.2. Các giải pháp khắc phục:

• Nâng cấp mạng

34

Trần Thanh Long - Nguyễn Thành Nam

• Lấp gói mất bằng khoảng lặng

Nghiên cứu và xây dựng chương trình truyền thông đa phương tiện

• Thay thế các gói mất bằng cách chèn nhiễu trắng.

• Phát lại gói cuối nhận được với âm lượng nhỏ hơn.

• Thêm gói dựa vào đặc tính sóng âm của các gói lân cận.

• Chèn khung thoại vào các gói khác nhau.

6.2. Trễ gói

6.2.1. Tổng quan

• Giới hạn của delay là 150ms, với đường truyền xa thì delay chấp

nhận được là từ 150->400ms.

• Trễ gói làm tiếng nói không thực, chồng lấp tiếng nói, tạo tiếng

vọng,…

• Nguyên nhân: do độ trễ của quá trình mã hoá, giải mã tiếng nói gây

ra, thời gian truyền, hay do xếp hàng trong các buffer tại các nút

chuyển mạch và nút truyền số liệu, …

6.2.2. Có hai giải pháp:

• Nén Header: mỗi gói dữ liệu đều kèm theo các header để tìm đường

chuyển các gói đến đúng nơi nhận.

• Phân đoạn: các gói thoại sử dụng các giao thức thời gian thực như

RTP, RTCP, RSVP sẽ được ưu tiên hơn trong truyền thông.

6.3. Network Jitter

• jitter là khoảng thời gian đến nơi nhận khác nhau của các gói thoại,

là yếu tố ảnh hưởng nghiêm trọng đến chất lượng thoại trong VoIP.

• Để giải quyết vấn đề này, phía thu phải có một bộ đệm jitter để sắp

xếp các gói nhận theo đúng thứ tự phát. Thời gian lưu trữ làm tăng

thêm thời gian delay.

• Các gateway cần có khả năng thay đổi kích thước bộ đệm jitter để

thích nghi với thời gian trễ trong mạng.

35

Trần Thanh Long - Nguyễn Thành Nam

• Kích thước chung của buffer là 50-100ms.

Nghiên cứu và xây dựng chương trình truyền thông đa phương tiện

• Ngoài ra nghẽn mạch trên mạng cũng ảnh hưởng rất lớn đến chất

lượng thoại.

6.4. Kết luận:

Cần giải quyết tốt các vấn đề nêu trên để chất lượng dịch vụ được cung

cấp trên môi trường mạng VoIP được cải tiến, nâng khả năng cạnh tranh với

36

Trần Thanh Long - Nguyễn Thành Nam

mạng truyền thống PSTN.

Nghiên cứu và xây dựng chương trình truyền thông đa phương tiện

CHƯƠNG 4: TÌM HIỂU CÁC NGHI THỨC TRUYỀN THÔNG THỜI

GIAN THỰC RTP (Realtime Protocol)

Trong môi trường truyền thông trên mạng hiện nay, việc truyền các tín

hiệu được truyền đều được dựa trên các chuẩn kỹ thuật khác nhau. Các nghi

thức truyền thông thời gian thực cũng là một trong số các chuẩn kỹ thuật

được đưa ra cho hạ tầng mạng hiện nay nhằm truyền các gói tin trong thời

gian thực, phục vụ cho các ứng dụng truyền thông đa phương tiện trực tuyến

như hội nghị truyền hình (video conference), hội nghị thoại (voice

conference) v.v…. Trong chương này, chúng ta sẽ cùng đi sâu tìm hiểu rõ về

hai chuẩn kỹ thuật tryền thông thời gian thực hiện nay là RTP và RTCP

1. Giới thiệu giao thức RTP (Realtime Protocol):

Realtime Protocol là một chuẩn Internet để truyền các luồng thông tin

giữa các thành phần tương tác trên mạng. RTP cung cấp các dịch vụ về dữ

liệu mang tính thời gian thực như video và audio. Thông thường các ứng

dụng chạy RTP dựa trên UDP để tận dụng khả năng multiplexing và kiểm lỗi.

RTP hỗ trợ việc truyền dữ liệu đến nhiều địa chỉ đích bằng cách dùng cơ chế

multicast nếu được hỗ trợ bởi hệ thống mạng.

RTP không có sẵn các cơ chế để đảm bảo việc truyền theo thời gian

hay các kỹ thuật về QoS mà dựa vào các dịch vụ ở lớp dưới để thực hiện

những khả năng này. RTP không đảm bảo an toàn hay thứ tự các packet khi

truyền, số thứ tự trong RTP packet cho phép bên nhận sắp xếp lại các packet

theo thứ tự khi truyền của bên gửi. Ngoài ra số thứ tự cũng có thể được tận

dụng để xác định vị trí thích hợp của một packet, ví dụ trong việc giải mã

video, mà không cần phải giải mã các packet theo thứ tự.

2.

Các khái niệm và định nghĩa được sử dụng trong RTP: RTP payload: Dữ liệu được chuyển trong RTP packet, ví dụ như các

mẫu âm thanh (audio samples ) hay các dữ liệu hình ảnh nén (compressed

37

Trần Thanh Long - Nguyễn Thành Nam

video data).

Nghiên cứu và xây dựng chương trình truyền thông đa phương tiện

RTP packet: Một gói dữ liệu bao gồm RTP header, danh sách các

nguồn cung cấp (contributing sources) có thể rỗng và dữ liệu payload. Một số

nghi thức mạng nền có thể yêu cầu phải xác định cơ chế đóng gói cho RTP

packet. Thông thường một gói của nghi thức mạng nền chứa một RTP packet,

nhưng cũng có thể chứa nhiều tùy theo cơ chế đóng gói (encapsulation).

RTCP packet: Một gói điều khiển bao gồm phần header tương tự như

của RTP packet, phần còn lại là các thành phần có cấu trúc tùy thuộc loại của

gói RTCP. Thông thường nhiều gói RTCP được gởi cùng lúc như một gói

RTCP tổng hợp được chứa trong một gói của nghi thức mạng nền.

Transport address: Sự kết hợp của địa chỉ mạng và cổng (port) để

xác định một điểm cuối (endpoint) ở mức transport, ví dụ như một địa chỉ IP

và cổng UDP. Các packets được truyền từ địa chỉ nguồn đến địa chỉ đích.

RTP session: Là sự kết hợp của các thành phần tham gia trao đổi

thông tin. Đối với mỗi thành phần tham gia, phiên (session) được xác định

bởi một cặp địa chỉ truyền đích. Cặp địa chỉ đích này có thể là chung cho mọi

thành phần tham gia hoặc riêng cho từng thành phần. Trong một phiên đa

phương tiện, mỗi phương tiện được chuyển tải bởi một RTP session riêng

cùng với các gói RTCP của nó. Các phiên RTP khác nhau được phân biệt bởi

các cặp ports và địa chỉ multicast.

Synchronization source (SSRC): Nguồn của luồng các gói RTP được

xác định bởi một số định danh 32 bit trong header của gói RTP để độc lập với

địa chỉ network. Mỗi gói từ nguồn đồng bộ (SSRC) có cùng một không gian

về thời gian và số thứ tự, do đó bên nhận có thể nhóm các gói để phát lại

(playback). Một nguồn đồng bộ có thể thay đổi định dạng dữ liệu của nó vào

bất cứ lúc nào. Định danh nguồn đồng bộ là một giá trị ngẫu nhiên, giá trị này

mang ý nghĩa duy nhất (không trùng lắp) trong một RTP session riêng biệt.

Một thành viên tham gia hội thảo không cần phải dùng cùng một định danh

38

Trần Thanh Long - Nguyễn Thành Nam

SSRC trong một phiên đa phương tiện.

Nghiên cứu và xây dựng chương trình truyền thông đa phương tiện

Contributing source (CSRC): Là nguồn của luồng các gói RTP đã

góp phần tạo nên luồng kết hợp thông qua một bộ trộn RTP (RTP mixer). Bộ

trộn RTP chèn một danh sách các định danh nguồn đồng bộ (SSRC identifier)

của các nguồn vào RTP header của một gói RTP. Danh sách này được gọi là

danh sách CSRC.

End system: Là một ứng dụng có khả năng tạo ra các nội dung để

truyền trong các gói RTP, hay nhận và xử lý nội dung của gói RTP. Một

endsystem có thể hoạt động như một hoặc nhiều nguồn đồng bộ trong một

phiên RTP riêng, nhưng thường là một.

Mixer: Là một hệ thống trung gian nhận các gói RTP từ một hay nhiều

nguồn, có thể thay đổi định dạng dữ liệu rồi kết hợp các gói đó lại theo một

cách thức nào đó tạo thành một gói RTP mới và truyền đi. Vì sự phối hợp

thời gian giữa các nguồn có thể không hoàn toàn đồng bộ nên bộ trộn sẽ đồng

bộ thời gian giữa các nguồn và sau đó, luồng ra sẽ có một sự định thời của

mixer. Do đó các gói được tạo ra từ một mixer đều xác định mixer là nguồn

đồng bộ.

Translator: Là một hệ thống trung gian có nhiệm vụ chuyển tiếp các

gói RTP mà không làm thay đổi các nguồn đồng bộ.

Monitor: Là một ứng dụng tiếp nhận các gói RTCP được gửi từ các

thành viên của một phiên RTP, báo cáo cụ thể sự tiếp nhận, ước lượng chất

lượng của dịch vụ hiện thời và dự đoán lỗi. Chức năng monitor thường được

xây dựng trong các ứng dụng tham gia trong phiên, hoặc cũng có thể được

xây dựng như một ứng dụng tách biệt, có thể là thành viên hoặc không và

không gởi, nhận các gói dữ liệu RTP. Chúng được gọi là những monitor tham

gia thứ ba.

Non-RTP means: Là các nghi thức hay cơ chế có thể được dùng để

39

Trần Thanh Long - Nguyễn Thành Nam

thêm vào RTP để làm tăng tính khả dụng của các dịch vụ.

Nghiên cứu và xây dựng chương trình truyền thông đa phương tiện 3.

Thứ tự byte, alignment và định dạng thời gian: Tất cả các trường số nguyên đều được truyền theo thứ tự byte chuẩn

trên mạng, có nghĩa là byte dấu nằm trước. Các hằng số đều ở dạng thập phân

trừ các trường hợp đặc biệt.

Tất cả các dữ liệu trong header được sắp xếp theo độ dài tự nhiên của

nó, ví dụ: các trường 16 bit được đặt ở các vị trí chẵn, các trường 32 bit được

đặt ở các vị trí chia hết cho 4…Các octets nối thêm mang giá trị 0.

Giờ tuyệt đối được biểu diễn theo nghi thức NTP (Network Time

Protocol), tính theo giây kêt từ 0 giờ ngày 01/01/1900. Ta dùng một số không

dấu 64 bit để biểu diễn, trong đó 32 bit đầu là phần nguyền và 32 bit sau là

phần thập phân. Một số trường có thể chỉ dùng 32 bit giữa do nhu cầu nén dữ

liệu, nghĩa là 16 bit thấp của phần nguyên và 16 bit cao của phần thập phân.

4. Nghi thức truyền dữ liệu RTP (RTP Data Transfer Protocol):

0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1

CC

M

PT

Sequence number

4.1. Các trường cố định trong RTP header:

Timestamp Synchronization source (SSRC) identifier Contributing source (CSRC) identifiers ………………………

Định dạng RTP Header

V = 2 P X

RTP Header bao gồm mười hai octet (mỗi octet gồm 8 bit) đầu tiên

luôn có trong mỗi gói RTP, trừ CSRC có thể có hoặc không do được thêm

vào bởi RTP mixer. Ý nghĩa của các trường như sau:

version (V): 2 bit

Trường này xác định version của RTP.

padding (P): 1 bit

Nếu bit pađing bật nghĩa là có một hay nhiều octet được thêm vào

40

Trần Thanh Long - Nguyễn Thành Nam

cuối dữ liệu. Octet cuối cùng của phần thêm vào cho biết có bao

Nghiên cứu và xây dựng chương trình truyền thông đa phương tiện

nhiêu octet thêm vào cần được bỏ qua. Cần phải thêm vào các octet

bởi vì có một số thuật toán mã hóa yêu cầu kích thước dữ liệu xác

định để có thể thực hiện, hoặc dùng để mang theo mốt số gói RTP ở

các tầng nghi thức thấp hơn.

extension (X): 1 bit

Nếu bit extension bật thì sau phần header cố định sẽ có thêm duy

nhất một phần header mở rộng.

CSRC count (CC): 4 bits

Trường này cho biết số lượng các định danh CSRC có trong danh

sách được lưu trữ sau phần header cố định.

marker (M): 1 bit

Phần diễn giải cho trường marker được định nghĩa bởi một profile.

Nó bao gồm các thông tin về các sự kiện quan trọng như việc đánh

dấu các biên của frame trong luồng packet. Profile có thể định nghĩa

thêm các bit đánh dấu (marker) hoặc xác định rằng không có bit

đánh dấu nào bằng cách thay đổi số lượng bit trong trường kiểu

payload.

payload type (PT): 7 bit

Trường này cho biết định dạng của RTP layload và xác định cách

thức diễn giải (interpretation) mà ứng dụng sủ dụng. Một profile

đặc tả một ánh xạ tĩnh mặc nhiên của các mã kiểu payload cho các

định dạng payload. Các mã kiểu payload khác muốn thêm vào có

thể được định nghĩa động bằng các cơ chế khác RTP (non RTP

means). Mỗi bên gửi RTP chỉ phát ra một kiểu payload nhất định

trong suốt thời gian hoạt động. Trường này không dùng trong việc

ghép kênh các luồng media riêng biệt.

sequence number: 16 bit

Số thứ tự được tăng lên một đơn vị cho mỗi gói RTP được gửi đi,

41

Trần Thanh Long - Nguyễn Thành Nam

bên nhận dựa vào số này để phát hiện các gói dữ liệu bị mất hay sắp

Nghiên cứu và xây dựng chương trình truyền thông đa phương tiện

xếp lại các gói RTP theo thứ tự như khi truyền. Giá trị khởi đầu của

số thứ tự là ngẫu nhiên, không thể dự đoán trước làm cho sự tấn

công vào dữ liệu mã hóa trong quá trình mã hoá gặp khó khăn hơn

bởi vì một gói tin có thể được chuyển qua translator để thực hiện

mã hoá mặc dù bản thân bên nguồn không thực hiện mã hoá. Có rất

nhiều kỹ thuật tạo ra một số ngẫu nhiên không thể dự đoán trước

được.

timestamp: 32 bit

Timestamp xác định thời điểm lấy mẫu của octet đầu tiên trong dữ

liệu của gói RTP. Thời điểm lấy mẫu được xác định nhờ vào một

đồng hồ đếm giờ tuyến tính để cho phép sự đồng bộ và tính toán

nhanh chóng và chính xác. Tốc độ nhịp đồng hồ phải đủ lớn để có

thể đồng bộ một cách chính xác và đo lường tốc độ đến của các gói

RTP. Tần số đồng hồ phụ thuộc vào dữ liệu được truyền và được

đặc tả một cách tĩnh trong profile hoặc trong đặc tả của định dạng

payload, tần số này cũng có thể được xác định một cách linh động

qua các phương tiện khác RTP. Giá trị ban đầu của timestamp cũng

là một số ngẫu nhiên như sequence number. Về mặc logical, vài gói

RTP liên tiếp có thể có cùng timestamp nếu chúng được tạo ra cùng

một lúc.

SSRC: 32 bit

Trường SSRC định danh một nguồn đồng bộ. Định danh này là

ngẫu nhiên nhằm mục đích để bất cứ hai nguồn đồng bộ nào trong

cùng một phiên RTP không có cùng một định danh. Tuy nhiền, các

cài đặt của RTP phải chuẩn bị cho việ phát hiện và xử lý đụng độ.

Danh sách CSRC:

Có từ 0 đến 15 mục, mỗi mục có chiều dài 32 bits. Danh sách

CSRC xác định các nguồn kết hợp cho payload được chứa trong

42

Trần Thanh Long - Nguyễn Thành Nam

mỗi gói RTP. Số lượng các định danh được xác định bởi trường

Nghiên cứu và xây dựng chương trình truyền thông đa phương tiện

CC. Nếu có nhiều hơn 15 nguồn kết hợp thì chỉ có 15 nguồn đầu

được định danh. Các định danh CSRC được thêm vào gói RTP bởi

các mixer.

4.2. Ghép kênh các phiên RTP (Multiplexing RTP sessions):

Để xử lý một cách hiệu quả thì số lượng các phiên RTP được đem

ghép kênh càng nhỏ càng tốt. Trong RTP, sự ghép kênh thực hiện được nhờ

vào địa chỉ truyền đích (distination transport address) xác định nên một phiên

RTP. Ví dụ: trong một cuộc hội thảo từ xa bằng âm thanh và hình ảnh mà các

dữ liệu này được mã hóa bởi hai bộ phận riêng biệt cho âm thanh và hình

ảnh, thì các dữ liệu này nên được truyền trên hai phiên RTP khác nhau với

địa chỉ đích và số hiệu port riêng. Nếu truyền chung trong một phiên RTP,

việc xen kẽ các gói với các kiểu payload khác nhau nhưng cùng một định

danh SSRC sẽ dẫn đến một số vấn đề sau:

1. Nếu một kiểu payload được chuyển đổi trong một phiên, sẽ không

có cách thức tổng quát để xác định được kiểu payload cũ và kiểu

payload mới trong việc thay thế.

2. SSRC được định nghĩa để xác định một cách tính giờ và không gian

số thứ tự riêng. Do đó, việc truyền xen kẽ nhiều loại payload sẽ cần

nhiều cách tính giờ khác nhau nếu xung nhịp đồng hồ của mỗi kiểu

payload khác nhau và cũng sẽ cần nhiều không gian số thứ tự hơn

để biết các packet của loại payload nào bị mất.

3. Thông báo của bên gửi và bên nhận RTCP có thể chỉ mô tả một

cách tính giờ và một không gian số thứ tự riêng cho mỗi một SSRC

và không chứa trường kiểu của payload.

4. RTP mixer không thể kết hợp các luồng dữ liệu xen kẽ không tương

thích nhau thành một luồng.

5. Truyền nhiều loại dữ liệu trong cùng một RTP session sẽ không có

43

Trần Thanh Long - Nguyễn Thành Nam

được các khả năng:

Nghiên cứu và xây dựng chương trình truyền thông đa phương tiện

(cid:131) Sử dụng sự phân phối các đường mạng và tài nguyên mạng khác

nhau nếu có thể.

(cid:131) Chỉ nhận được một số loại dữ liệu trong số nhiều loại yêu cầu ví

như chỉ nhận được âm thanh nếu tín hiệu hình ảnh vượt quá

băng thông.

(cid:131) Bên nhận cài đặt các xử lý riêng cho mỗi loại dữ liệu.

(cid:131) Ngoài ra, việc dùng nhiều RTP session cho phép các cài đặt xử

lý đơn hay đa xử lý.

4.3. Những thay đổi trong đặc tả profile của RTP Header:

Cấu trúc của RTP header hiện tại được coi là đầy đủ để đáp ứng tất cả

các chức năng cho mọi lớp ứng dụng mà RTP có thể hỗ trợ. Tuy nhiên, với

nguyên lý thiết kế ALF, RTP header có thể được cải tiến bằng cách chỉnh sửa

hoặc thêm vào các định nghĩa mới vào đặc tả profile của nó trong khi vẫn

cho phép các công cụ quản lý và ghi nhận hoạt động độc lập với profile.

• Bit đánh dấu (marker) và trường kiểu payload mang các thông tin

đặc tả của profile, nhưng chúng được định vị cố định trong header

vì có nhiều ứng dụng rất cần đến chúng và nếu không thì có thể đã

dành riêng một word (32 bit) chỉ để lưu trữ nó. Các octet chứa

những trường này có thể được định nghĩa lại bằng một profile để

phù hợp với các yêu cầu khác nhưu ví dụ như thêm hoặc bớt các bit

marker. Nếu có nhiều bit marker, thì một bit sẽ được đặt ở vị trí

quan trọng nhất của octet vì các bộ giám sát độc lập với profile có

thể sử dụng bit marker để quan sát việc mất gói.

• Các thông tin yêu cầu thêm vào cho một định dạng payload cụ thể,

ví dụ như mã hóa video, nên được lưu trong phần payload của gói

tin. Các thông tin thêm vào header đều nằm ở phần bắt đầu của

payload hiện tại hoặc là được chỉ định bởi một giá trị dành riêng

44

Trần Thanh Long - Nguyễn Thành Nam

trong phần data.

Nghiên cứu và xây dựng chương trình truyền thông đa phương tiện

• Nếu một lớp cụ thể của ứng dụng cần thêm vào các chức năng độc

lập với định dạng của payload thì profile bên dưới của các ứng dụng

này sẽ định nghĩa thêm các trường cố định ngay sau trường SSRC

trong phần header chuẩn. Những ứng dụng này sẽ có thể truy xuất

nhanh chóng và trực tiếp đến các trường thêm vào này, trong các bộ

phận điều khiển và ghi nhận độc lập profile vẫn có thể xử lý các gói

RTP chỉ với 12 octet đẩu tiên.

Nếu đến lúc nào đó các chức năng phụ được nhận thấy là cần thiết

độc lập profile thì một phiên bản mới hơn của RTP sẽ được xây

dựng để cố định các thay đổi trong header.

4.3.1. Phần RTP header mở rộng (RTP Header Extension):

Một cơ chế mở rộng được cung cấp để cho phép thử nghiệm thực thi

những chức năng độc lập định dạng payload mới yêu cầu các thông tin bổ

sung cần được mang theo trong RTP header. Cơ chế này được thiết kế để

phần header mở rộng có thể được bỏ qua bởi các thực thi khác không hỗ trợ

0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1

defined by profile

length

header extension ………………………

Định dạng RTP Header Extension

phần header mở rộng.

Nếu bit X trong RTP header bật thì một phần header mở rộng với kích

thước không cố định được nối thêm vào sau phần header chuẩn, ngay sau

phần danh sách CSRC nếu danh sách này có trong header. Phần header mở

rộng có một trường dài 16 bit cho biết chiều dài của nó tính theo word (32

bit) trừ phần header phụ dài 4 byte. Chỉ có thể thêm được một phần header

45

Trần Thanh Long - Nguyễn Thành Nam

mở rộng vào RTP header. Tuy nhiên 16 bit đầu tiên của phần header mở rộng

Nghiên cứu và xây dựng chương trình truyền thông đa phương tiện được dành cho mục đích nhận ra định danh hoặc tham số. Định dạng của 16

bit này được định nghĩa bởi đặc tả của profile tương ứng với header mà

chúng ta đạng thực thi các hoạt động bên dưới.

5. Giao thức điều khiển RTP (RTP Control Protocol – RTCP):

Giao thức điều khiển RTP dựa trên việc truyền các gói điều khiển theo

chu kỳ cho mỗi thành viên trong phiên làm việc, sử dụng cùng một cơ chế

phân phối như đối với các gói dữ liệu. RTCP thực hiện bốn chức năng sau:

1. Chức năng chính là cung cấp các phản hồi về chất lượng của quá

trình phân phối dữ liệu. Đây là phần không thể thiếu trong vai trò

chuyển tải của RTP và có liên hệ với các chức năng điều khiển

luồng và điều khiển nghẽn mạch của các nghi thức chuyển tải khác.

Các phản hồi có thể hữu dụng một cách trực tiếp cho việc kiểm soát

việc mã hóa nhưng những thí nghiệm với IP multicasting cho thấy

rằng cũng khó để lấy được các phản hồi từ bên nhận để tìm lỗi trong

quá trình phân phối. Việc gửi đi các thông tin phản hồi cho các

thành phần tham gia cho phép một người có khả năng thấy được các

vấn để và xác định vấn đề đó là cục bộ hay chung. Với một cơ chế

phân phối như IP multicast, các thực thể không liên quan đến

session có thể nhận được các thông tin phản hồi và hoạt động như là

một bộ phận điều hành thứ ba để dự đoán các vấn đề về mạng.

Chức năng phản hồi này được thực hiện nhờ vào các thông tin của

bên gửi và bên nhận.

2. RTCP mang theo một đinh danh ở mức transport cho một nguồn

RTP được gọi là CNAME (canonical name). Vì các định danh

SSRC có thể thay đổi nếu có xung đột hoặc có một chương trình bị

khởi động lại nên bên nhận cần có CNAME để “giữ vết” của mỗi

46

Trần Thanh Long - Nguyễn Thành Nam

thành phần tham gia. Bên nhận cũng cần CNAME để kết hợp các

Nghiên cứu và xây dựng chương trình truyền thông đa phương tiện

phiên RTP có liên hệ với nhau, ví dụ như để đồng bộ âm thanh với

hình ảnh.

3. Hai chức năng trên yêu cầu các thành phần tham gia phải gửi các

gói RTCP, do đó tốc độ phải được kiểm soát để RTP có thể phục vụ

cho một số lượng lớn các thành phần tham gia. Bằng cách gửi các

gói điều khiển đến mọi thành phần khác, một thành phần tham gia

có thể theo dõi số lượng các thành phần khác một cách độc lập. Con

số này được dùng để tính toán tốc độ gửi các gói tin.

4. Chức năng thứ tư là truyền tối thiểu các thông tin kiểm soát phiên

làm việc, ví dụ như các thông tin nhận diện của một thành phần

tham gia có thể được hiển thị trên giao diện người dùng. Điều này

có thể có ích trong các session được kiểm soát lỏng lẻo (là các

session mà các thành phần tham gia vào và ra mà không thông báo

rõ ràng). RTCP phục vụ như một cách để đến được các thành phần

tham gia nhưng không nhất thiết phải hỗ trợ tất cả các yêu cầu về

thông tin điều khiển của một ứng dụng.

5.1. Cấu Trúc của gói RTP (RTP Packet Format):

Phần này mô tả định nghĩa của một vài loại gói RTCP mang một thông

tin điều khiển khác nhau:

SR (Sender report): Các thông báo về tình trạng của quá trình truyền

và nhận từ các thành phần tham gia đóng vai trò là người gởi.

RR (receiver): Các thông báo về trạng thái tiếp nhận từ các thành

phần tham gia đóng vai trò là người nhận.

SDES (source description items): Các trường mô tả nguồn, bao gổm

cả CNAME.

BYE: Cho biết kết thúc sự tham dự của một thành phần.

47

Trần Thanh Long - Nguyễn Thành Nam

APP: Các chức năng cụ thể của ứng dụng.

Nghiên cứu và xây dựng chương trình truyền thông đa phương tiện

Mỗi gói RTCP có một phần header cố định, theo sau là các thành phần

có cấu trúc với số chiều dài không cố định, tùy vào từng loại gói RTCP,

nhưng luôn là bội số của 32 bit. Nhờ sự sắp xếp và chiều dài của một trường

cố định trong mỗi thành phần thêm vào giúp cho các gói RTCP có khả năng

“stackable”. Một gói RTCP tổng hợp được truyền trong một gói tin đơn của

nghi thức nền dưới, ví dụ như UDP, có thể được nối lại từ nhiều gói RTCP

khác mà không cần phải tách biệt từng gói.

Mỗi gói RTCP riêng trong một gói RTCP tổng hợp có thể được xử lý

một cách độc lập không cần dựa trên thứ tự hay cách tổng hợp. Tuy nhiên, để

thực hiện các chức năng của giao thức, các điều kiện sau phải được thỏa mãn:

1. Trạng thái tiếp nhận trong các gói SR hay RR nên được truyền càng

nhiều càng tốt ở mức giới hạn cho phép của băng thông để cho mức

phân giải của các trạng thái là cao nhất. Do đó mỗi gói RTCP tổng hợp

được truyền định kì nên có một gói SR hay RR.

2. Những thành viên mới cần nhận được thông tin CNAME của nguồn

càng sớm càng tốt để có thể xác định được nguồn và bắt đầu kết hợp

các tín hiệu đa phương tiện nhằm nhiều mục đích ví như đồng bộ hóa.

Do đó, mỗi gói RTCP kết hợp nên bao gồm thêm một gói SDES

CNAME.

3. Số lượng các kiểu packet mà có thể xuất hiện đầu tiên trong gói RTCP

kết hợp nên được giới hạn để tăng lượng các bit hằng trong word đầu

tiên và tăng xác suất thành công của việc kiểm tra tính đúng đắn của

các gói RTCP đối với các gói RTP sai địa chỉ hoặc các gói không liên

quan. Do vậy, cần phải gửi ít nhất hai gói RTCP riêng biệt trong một

gói RTCP kết hợp, với các định dạng đề nghị như sau:

a. Encryption prefix: Đây là một số ngẫu nhiên 32 bit được đặt trước

mỗi một gói kết hợp được truyền nếu và chỉ nếu gói kết hợp này

48

Trần Thanh Long - Nguyễn Thành Nam

được mã hoá.

Nghiên cứu và xây dựng chương trình truyền thông đa phương tiện

b. SR hay RR: Gói RTCP đầu tiên trong gói RTCP kết hợp phải luôn

là gói thông báo để quá trình kiểm tra header được dễ dàng. Điều

này vẫn đúng nếu không có dữ liệu truyền và nhận, trường hợp gói

RR rỗng được gởi, và chỉ duy nhất một trường khác trong gói

RTCP kết hợp là BYE.

c. Thêm các gói RR: Nếu số lượng nguồn được thông báo vượt quá

31 (là lượng tối đa mà một gói RR hay SR có thể chứa) thì các gói

RR dư ra nên được đặt ngay sau gói thông báo khởi đầu.

d. SDES: Một gói SDES chứa mục NNAME phải luôn có trong một

gói RTCP kết hợp. Các mục mô tả nguồn khác tuỳ ý có thể được

gộp vào nếu cần thiết bởi một ứng dụng cụ thể, tùy vào các ràng

buộc về băng thông.

e. BYE hoặc APP: Các kiểu gói RTCP khác, kể cả các kiểu chưa

được định nghĩa, có thể được đặt theo thứ tự bất kỳ trong gói kết

hợp, ngoại trừ gói BYE nên được đặt cuối cùng.

5.2. Các thông báo của bên gửi và bên nhận ( Sender and Receiver

reports ):

Bên nhận RTP thông qua các gói RTCP để cung cấp các thông tin phản

hồi về tình trạng nhận dữ liệu của mình ở một trong hai dạng tùy thuộc vào

việc bên nhận có đồng thời là bên gửi hay không. Ngoài mã kiểu, sự khác biệt

duy nhất giữa thông tin bên nhận (RR) và bên gửi (SR) là: thông tin bên gửi

bao gồm phần thông tin người gửi dài 20 bytes được sử dụng cho những

người gửi đang hoạt động. SR được phát ra nếu một vị trí nào đó gửi bất cứ

gói dữ liệu nào trong khoảng thời gian chờ giữa hai lần gửi thông báo, ngược

lại là RR.

Cả SR và RR có thể có hoặc không các khối thông tin nhận (reception

report blocks), mỗi khối đại diện cho mỗi nguồn kết hợp (synchronization

49

Trần Thanh Long - Nguyễn Thành Nam

source) mà từ đó bên nhận đã nhận được các gói dữ liệu RTP kể từ thông báo

Nghiên cứu và xây dựng chương trình truyền thông đa phương tiện được gửi gần nhất. Các thông báo không được sử dụng cho các nguồn kết

hợp (contributing source) được liệt kê trong danh sách CSRC. Mỗi khối nhận

cho biết thông tin về tình trạng dữ liệu nhận được từ một nguồn cụ thể được

chỉ định rõ trong khối đó. Vì mỗi gói RR hay SR chỉ có thể chứa tối đa 31

khối, nếu cần thiết cho các gói thông báo, các khối dư ra có thể được gắn sau

gói SR hay RR thiết lập.

Dưới đây, ta sẽ tìm hiểu về định dạng của các gói thông báo RTCP:

0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1

header

V = 2 P

RC

PT = SR = 200

Length

SSRC of sender

NTP timestamp, most significant word

sender info

NTP timestamp, least significant word RTP timestamp sender’s packet count sender’s octet count

SSRC_1 (SSRC of first source)

report block 1

cumulative number of packets lost

a. SR – Sender Report RTCP packet format:

extended highest sequence number received iterarrival jitter last SR (LSR) delay since last SR (DLSR)

report block 2

SSRC_2 (SSRC of second source) ……………….

profile-specific extensions

Định dạng SR

fraction lost

Gói thông báo bên nhận gồm ba phần, có thể có thêm phần đặc tả

profile mở rộng nếu được định nghĩa. Phần đầu có chiều dài 8 octet. Ý nghĩa

của các trường:

Version (V): 2 bit

Định danh của version của RTP. Giá trị này giống nhau cho các gói

50

Trần Thanh Long - Nguyễn Thành Nam

dữ liệu RTP và RTCP.

Nghiên cứu và xây dựng chương trình truyền thông đa phương tiện

Padding (P): 1 bit

Nếu bit padding bật, thì gói RTCP này được nối thêm các octets vào

cuối phần dữ liệu, octet cuối cùng trong số các octet được nỗi thêm

vào cho biết có bao nhiêu octet cần được bỏ qua. Trong gói RTCP

kết hợp, chỉ cần thêm các octet vào gói RTCP đơn cuối cùng vì gói

kết hợp được mã hóa toàn bộ.

Reception report count (RC): 5 bit

Số lượng các khối thông báo nhận được chứa trong gói này. Trường

này có thể bằng 0.

Packet type (PT): 8 bit

Mang giá trị 200 để xác định gói này là gói RTCP kiểu SR.

Length: 16 bit

Độ dài tính theo word 32 bit của gói RTCP trừ đi một, bao gồm cả

phần header và phần padding.

SSRC: 32 bit

Định danh của nguồn đồng bộ của nơi gửi gói RTCP này.

Phần thứ hai dài 20 octet là phần thông tin người gửi (sender

information) có trong mọi gói thông báo bên gửi (sender report packet).

NTP timestamp: 64 bit

Chỉ ra thời điểm gói này được gửi đi.

RTP timestamp: 32 bit

Mang cùng giá trị với NTP timestamp nhưng chỉ cùng đơn vị và

cùng một độ dời với RTP timestamp trong gói dữ liệu.

Sender’s packet count: 32 bit

Tổng số gói RTCP đã truyền bởi bên gửi kể từ khi bắt đầu truyền

cho đến thời điểm gói này được tạo. Số đếm này sẽ được khởi tạo

51

Trần Thanh Long - Nguyễn Thành Nam

lại mỗi khi bên gửi thay đổi định danh SSRC.

Nghiên cứu và xây dựng chương trình truyền thông đa phương tiện

Sender’s octet count: 32 bit

Tổng số payload octet (không bao gồm header và phần padding) đã

truyền trong gói dữ liệu RTP bởi bên gửi kể từ khi bắt đầu truyền

cho đến thời điểm gói tin này được tạo. Số đếm này sẽ được khởi

tạo lại mỗi khi bên gửi thay đổi định danh SSRC của nó. Trường

này có thể được dùng để ước lượng tốc độ truyền dữ liệu payload

trung bình.

Phần thứ ba chứa hoặc không các khối thông báo nhận phụ thuộc vào

số lượng nguồn khác mà bên gởi nghe được từ thông báo cuối. Mỗi gói thông

báo lưu tình trạng nhận của gói tin RTP từ một nguồn đồng bộ đơn.

0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1

header

RC

PT = SR = 201

Length

b. RR – Receiver Report RTCP packet format:

SSRC of sender

SSRC_1 (SSRC of first source)

report block 1

fraction lost

cumulative number of packets lost

extended highest sequence number received iterarrival jitter

last SR (LSR) delay since last SR (DLSR)

report block 2

SSRC_2 (SSRC of second source) ……………….

profile-specific extensions

Định dạng RR

52

Trần Thanh Long - Nguyễn Thành Nam

V = 2 P

Nghiên cứu và xây dựng chương trình truyền thông đa phương tiện

0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1

RC

PT = SR = 202

Length

c. SDES – Source Description RTCP packet format:

SSRC/CSRC_1 SDES items ……..

SSRC/CSRC_2 SDES items ……..

Định dạng SDES

V = 2 P

0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1

CNAME = 1

length

user and domain name …

Định dạng CNAME

d. CNAME – Canonical end point identifier SDES item:

0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1

NAME = 2

length

common name source …

Định dạng NAME

e. NAME – Uer name SDES item:

0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1

EMAIL = 3

length

mmail address of source …

Định dạng EMAIL

f. EMAIL – Electronic mail address SDES item:

0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1

PHONE = 4

length

phone number of source …

Định dạng PHONE

53

Trần Thanh Long - Nguyễn Thành Nam

g. Phone – phone number SDES item:

Nghiên cứu và xây dựng chương trình truyền thông đa phương tiện

0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1

length

geographic location of source …

h. LOC – Geographic user location SDES item:

Định dạng LOC

LOC = 5

0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1

TOOL = 6

length

name/ version of source appliaction…

Định dạng TOOL

i. TOOL – Application or tool name SDES item:

0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1

NOTE = 7

length

note about the source…

Định dạng NOTE

j. NOTE – Notice/status SDES item:

0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1

length

prefix length

prefix string…

k. PRIV – Private extensions SDES item:

value string…

Định dạng PRIV

PRIV = 8

0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1

SC

PT = BYE = 203

length

l. BYE – Goodbye RTCP packet:

SSRC/CSRC

……..

reason for leaving

length

Định dạng BYE

54

Trần Thanh Long - Nguyễn Thành Nam

V = 2 P

Nghiên cứu và xây dựng chương trình truyền thông đa phương tiện

0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1

subtype

PT = APP = 204

length

m. APP – Application defined RTCP lacket:

SSRC/CSRC name (ASCII) application dependent data

Định dạng APP

55

Trần Thanh Long - Nguyễn Thành Nam

V = 2 P

Nghiên cứu và xây dựng chương trình truyền thông đa phương tiện

CHƯƠNG 5: TÌM HIỂU CHUẨN H.323 VÀ THƯ VIỆN OPENH323

1. Giới thiệu:

Đây là một khuyến cáo của ITU, được phê chuẩn vào năm 1996 (phiên

bản 2 được phê chuẩn vào tháng 1 năm 1998), nó đề những tiêu chuẩn cho

truyền thông đa phương tiện qua mạng LAN mà không đảm bảo chất lượng

dịch vụ. Cung cấp nền tảng cho việc truyền thông dữ liệu, hình ảnh, âm thanh

qua mạng IP. Dựa vào chuẩn H.323, các sản phẩm và ứng dụng truyền thông

đa phương tiện từ nhiều nhà cung cấp có thể liên kết hoạt động được với

nhau, cho phép người dùng giao tiếp với nhau mà không cần xem xét đến sự

tương thích.

H.323 là một bộ phận của một loạt các chuẩn truyền thông đa phương

tiện trên các mạng khác như H.324 cho mạng SCN, H.321 cho mạng

B_ISDN, H.320 cho mạng ISDN v.v… nhờ vậy cung cấp sự tương thích giữa

mạng LAN và các mạng khác.

Và OpenH323 là một lớp thư viện bổ sung cho giao thức H.323. Thư

viện này được sử dụng để phát triển các ứng dụng sử dụng giao thức H.323

trong truyền thông đa phương tiện.

Chúng ta sẽ lần lượt đi sâu vào các vấn đề trên để hiểu rõ thêm về

chuẩn H.323 và thư viện OpenH323.

2. Chuẩn H.323:

2.1. Các ưu điểm của chuẩn H.323:

• Cung cấp các bộ mã hoá đã được chuẩn hoá:

H.323 thiết lập các chuẩn nén và giải nén luồng dữ liệu audio và video,

bảo đảm cho các thiết bị từ các nhà cung cấp khác nhau có sự hỗ trợ

56

Trần Thanh Long - Nguyễn Thành Nam

chung.

Nghiên cứu và xây dựng chương trình truyền thông đa phương tiện

• Tính tương thích cao:

Người sử dụng có thể trao đổi dữ liệu mà không phải lo lắng về tính

tương thích ở bên nhận. Bên cạnh việc đảm bảo bên nhận có thể giải

nén thông tin nhận được, H.323 còn thiết lập một phương thức cho

phép bên nhận có thể trao đổi khả năng nhận thông tin của mình với

bên gởi.

• Độc lập phần cứng:

H.323 được thiết kế để chạy ở tầng trên của kiến trúc mạng. Những

giải pháp cơ bản của H.323 cho phép tận dụng được những cải tiến về

kỹ thuật mạng và sự phát triển băng thông.

• Độc lập với ứng dụng và hệ điều hành:

H.322 không bị ràng buộc với phần cứng hay hệ điều hành.

• Hỗ trợ đa điểm:

Tuy H.323 có thể quản lý được những cuộc hội nghị có nhiều kết nối

mà không cần sử dụng thêm một trình điều khiển đa điểm chuyên dụng

nào, nhưng việc sử dụng MCU (Multipoint Control Unit – trình điều

khiển đa điểm) sẽ cung cấp một kiến trúc mạnh và linh hoạt hơn cho

hội nghị kiểu nhiều kết nối.

• Quản lý được băng thông:

Việc truyền các dữ liệu truyền thông đa phương tiện đòi hỏi băng

thông rất lớn và có thể làm nghẽn mạch. Để giải quyết vấn đề này,

H.323 đưa ra trình quản lý băng thông. Nhân viên quản trị mạng có thể

giới hạn số kết nối H.323 hay giới hạn băng thông cho các ứng dụng sử

dụng H.323. Điều này đảm bảo cho sự lưu thông trên mạng không bị

tắt nghẽn.

• Hỗ trợ khả năng quản bá thông tin:

57

Trần Thanh Long - Nguyễn Thành Nam

Giúp cho việc sử dụng băng thông hiệu quả hơn.

Nghiên cứu và xây dựng chương trình truyền thông đa phương tiện

• Linh hoạt:

Một hội nghị sử dụng chuẩn H.323 có khả năng tiếp nhận các thiết bị

đầu cuối khác nhau. Ví du: một terminal chỉ hỗ trợ khả năng truyền và

nhận âm thanh có thể tham gia hội nghị với các máy hỗ trợ khả năng

truyền dữ liệu và hình ảnh. Máy sử dụng chuẩn H.323 có thể chia sẽ dữ

liệu, âm thanh, hình ảnh với các máy khác.

• Khả năng hội nghị liên mạng:

Nhiều người dùng muốn kết nối từ mạng LAN đến một đầu xa chẳng

hạn như kết nối giữa hệ thống LAN với hệ thống ISDN. H.323 cũng hỗ

trợ khả năng này và sử dụng kỹ thuật mã hoá chung từ các chuẩn hội

nghị khác nhau để giảm thiểu thời gian chuyển đổi mã và tạo một hiệu

suất tối ưu cho hội nghị.

2.2. Kiến trúc hệ thống H.323:

Chuẩn H.323 của ITU là một tập hợp các tiểu chuẩn, giao thức liên

quan đến truyền thông âm thanh và hình ảnh trong mạng LAN mà chất lượng

dịch vụ không bảo đảm. Kiến trúc của H.323 không bao gồm cả mạng LAN

hay tầng transport dùng để kết nối giữa các mạng LAN khác mà chỉ có những

thành phần cần thiết cho việc tương tác với mạng chuyển mạch điện tử SCN

(Switched Circuit Network).

H.323 gồm có bốn thành phần chính cho một hệ thống truyền tin trên

H.323 Zone

H.323 Terminal

H.323 MCU

H.323 Gatekeeper

H.323 Gateway

mạng đó là: Terminal, Gateway, Gatekeeper và MCU.

H.323 Terminal

H.323 Terminal

H.323 Terminal

H.323 Router

H.323 Router

Các thành phần trong hệ thống H.323

58

Trần Thanh Long - Nguyễn Thành Nam

H.323 Terminal

Nghiên cứu và xây dựng chương trình truyền thông đa phương tiện 2.2.1. Terminal:

Terminal là các máy khách hay các thiết bị đầu cuối trên mạng LAN

tham gia truyền thông thời gian thực. Một H.323 terminal có thể là một máy

điện thoại hay một PC chạy ứng dụng H.323. Một H.323 terminal phải hỗ trợ

tối thiểu truyền thông thoại còn dữ liệu và hình ảnh có thể tùy chọn. H.323

xác định một hình thức tương tác cho các terminal khác nhau cùng hoạt động

H.323 Terminal Equipment

với nhau.

Tất cả các terminal đều phải hỗ trợ giao thức H.245 được dùng để

thống nhất khả năng và cách dùng kênh truyền. Ba thành phần khác mà mỗi

terminal đều phải hỗ trợ là:

59

Trần Thanh Long - Nguyễn Thành Nam

• Giao thức Q.931 dùng cho báo hiệu và thiết lập cuộc gọi.

Nghiên cứu và xây dựng chương trình truyền thông đa phương tiện

• Giao thức RAS (Registration / Admission / Status) để giao tiếp với

Gatekeeper.

• Giao thức RTP / RTCP để sắp xếp các gói âm thanh và hình ảnh.

Những thành phần tùy chọn của một terminal H.323 là mã hóa hình

ảnh, giao thức hội nghị dữ liệu T.120, khả năng điều khiển kết nối đa điểm.

2.2.2. Gateway:

Gateway là thiết bị kết nối trung gian, thực hiện chức năng chuyển đổi

các giao thức cho việc thiết lập và giải phóng cuộc gọi, chuyển đổi dạng

truyền thông giữa hai mạng khác nhau (mạng theo chuẩn H.323 và mạng

không theo chuẩn H.323) như trong mạng điện thoại IP, Gateway thực hiện

H.323/PSTN Gateway

kết nối giữa mạng IP và mạng PSTN

Gateway là một thành phần tuỳ chọn trong hội nghị H.323, thường là

các máy tính có nhiều giao diện với các mạng khác nhau. Gateway cung cấp

nhiều dịch vụ, tổng quát nhất là chức năng biên dịch giữa các đầu cuối H.323

và các loại đầu cuối khác. Bằng những bộ chuyển mã thích hợp, Gateway

H.323 có thể hỗ trợ những thiết bị đầu cuối tuân theo các chuẩn H.310,

H.321, H.322 và V.70. Chức năng này bao gồm biên dịch giữa những khuôn

dạng truyền (H.225.0 đến H.221) và giữa những thủ tục truyền thông (H.245

60

Trần Thanh Long - Nguyễn Thành Nam

sang H.242). Ngoài ra, Gateway cũng biên dịch giữa các bộ mã hoá âm thanh

Nghiên cứu và xây dựng chương trình truyền thông đa phương tiện và hình ảnh, thực hiện thiết lập và kết thúc cuộc gọi trên cả đầu mạng LAN

và đầu mạng chuyển mạch điện tử SCN.

Gateway Function

H.323 Terminal Function

SCN Terminal Function

Translation ( Translation Format / Conmmunication procedure

LAN SCN

Protocol Conversion and Transmission Translation

SCN Terminal Function

H.323 Terminal Function

IP/PSTN Gateway

PSTN

(cid:11)

Các chức năng của Gateway

Những ứng dụng cơ bản của Gateway là:

• Thiết lập kết nối với đầu cuối PSTN tương tự.

• Thiết lập kết nối với đầu cuối tương hợp H.320 đầu xa qua mạng

chuyển mạch mạch dựa trên nền ISDN.

• Thiết lập kết nối với các đầu cuối tương hợp H.324 đầu xa qua

mạng PSTN.

Các thiết bị đầu cuối giao tiếp với Gateway sử dụng giao thức H.245

và Q.931.

2.2.3. Gatekeeper:

Gatekeeper là thành phần quan trọng nhất của mạng H.323. Nó là trung

tâm của mọi cuộc gọi trong vùng H.323. Gatekeeper cung cấp các dịch vụ

61

Trần Thanh Long - Nguyễn Thành Nam

điều khiển cuộc gọi cho các Endpoint. Hay có thể coi Gatekeeper H.323 hoạt

Nghiên cứu và xây dựng chương trình truyền thông đa phương tiện động như một bộ chuyển mạch ảo. Chuẩn H.323 định nghĩa các dịch vụ mà

Gatekeeper phải cung cấp và xác định các chức năng tùy chọn khác mà nó có

thể cung cấp. Một vùng H.323 được quản lý bởi một Gatekeeper duy nhất.

Các chức năng cơ bản của Gatekeeper:

• Biên dịch địa chỉ: Cuộc gọi khởi tạo trong mạng H.323 sử dụng

một địa chỉ định danh máy đích. Cuộc gọi thiết lập ngoài mạng

H.323 và nhận được ở Gateway bằng cách dùng số điện thoại để

định địa chỉ đích. Gatekeeper biên dịch số điện thoại hoặc bí danh

sang địa chỉ IP sử dụng cho mạng.

• Ðiều khiển đăng nhập: Gatekeeper điều khiển việc tiếp nhận các

Endpoint bằng cách sử dụng các thông điệp RAS như yêu cầu đăng

nhập (ARQ), xác nhận đăng nhập (ARC) và từ chối đăng nhập

(ARJ). Ðiều khiển đăng nhập cũng có thể là một hàm rỗng chấp

nhận mọi yêu cầu đăng ký của các Endpoint trong mạng.

• Ðiều khiển băng thông: Gatekeeper điều khiển băng thông thông

qua các thông điệp RAS, yêu cầu, xác nhận hay loại bỏ băng thông

(BRQ/BCF/BRJ). Ðiều này có thể dựa vào chức năng quản lý băng

thông của Gatekeeper. Ðiều khiển băng thông cũng có thể là một

hàm rỗng chấp nhận cho mọi yêu cầu thay đổi băng thông.

• Quản lý vùng: Gatekeeper cung cấp tất cả các chức năng trên cho

các đầu cuối, MCU và Gateway đăng ký trong vùng điều khiển của

nó.

Một đặc tính tuỳ chọn nhưng quan trong của Gatekeeper là khả năng

định tuyến các cuộc gọi H.323. Endpoint gởi các tín hiệu báo hiệu đến

Gatekeeper, sau đó Gatekeeper tìm đường đến Endpoint đích. Một cuộc gọi

được định tuyến thông qua một Gatekeeper sẽ hiệu quả hơn. Các chức năng

tùy chọn là:

• Báo hiệu điều khiển cuộc gọi: Gatekeeper có thể tìm đường cho

62

Trần Thanh Long - Nguyễn Thành Nam

các tín hiệu báo hiệu giữa hai H.323 Endpoint. Trong một kết nối

Nghiên cứu và xây dựng chương trình truyền thông đa phương tiện

điểm - điểm, Gatekeeper xử lý báo hiệu điều khiển cuộc gọi H.225.

Gatekeeper cho phép các thông điệp trên được gởi trực tiếp giữa các

Endpoint trong mạng.

• Chấp nhận cuộc gọi: Gatekeeper có thể tiếp nhận hoặc từ chối

cuộc gọi từ đầu cuối theo khuyến nghị Q.931. Tiêu chuẩn xét không

thuộc H.323.

• Quản lý băng thông: Gatekeeper có thể từ chối các cuộc gọi từ đầu

cuối nếu nó xét thấy lượng băng thông không đáp ứng đủ. Tiêu

chuẩn xét băng thông không được định nghĩa trong chuẩn H.323.

• Quản lý cuộc gọi: Gatekeeper có thể duy trì danh sách các cuộc gọi

H.323 để biểu thị đầu gọi bị gọi đang bận hoặc để cung cấp thông

tin cho chức năng quản lý băng thông.

Call Signalling (Q 931)

Call Control (H.245)

Media Stream (RTP)

Terminal Gateway

Address Translation Admission Control Bandwidth Control (RAS)

Chức năng của Gatekeeper

GateKeeper

2.2.4. MCU (Multipoint Control Unit):

MCU hỗ trợ hội nghị từ ba Endpoint trở lên. Theo H.323, một MCU

63

Trần Thanh Long - Nguyễn Thành Nam

gồm một bộ điều khiển đa điểm MC, không hoặc nhiều bộ xử lý đa điểm MP.

Nghiên cứu và xây dựng chương trình truyền thông đa phương tiện MC điều khiển tương tác H.245 giữa các đầu cuối để xác định khả năng

chung trong việc xử lý âm thanh và hình ảnh. MC cũng điều khiển tài nguyên

hội nghị bằng cách xác định xem có dòng âm thanh và hình ảnh nào là quãng

bá không.

MC không xử lý trực tiếp bất kỳ dòng truyền thông nào. Việc này được

thực hiện bởi MP. MP thực hiện trộn, chuyển mạch và xử lý âm thanh, hình

ảnh và các bit dữ liệu. Những khả năng của MP và MC có thể cùng có mặt

Terminal 1

Terminal 2

Gatekeeperl 1

Gatekeeper 2

Gatekeeper 3

MC

MC

MC MP

MC

MC

Gateway 1

MC MP Gateway 2

Gateway 3

MC MP MCU 1

MCU 2

Các vị trí của MC và MP trong hệ thống H.323

trong một phần chuyên biệt hoặc một phần của các thành phần H.323 khác.

Video Codec H.261, H.263

2.3. Sơ đồ cấu trúc phân lớp:

Video I/O Equipment

Receive Path Delay

Audio Codec G.711, G.723 G.729

Local Area Network Interface

System Control

H.255.0 Layer

Audio I/O Equipment

H.245 Control

Call Control H.255.0

System Control User Interface

RAS Control H.255.0

Sơ đồ cấu trúc phân lớp

64

Trần Thanh Long - Nguyễn Thành Nam

User Data Applications T.120, etc

Nghiên cứu và xây dựng chương trình truyền thông đa phương tiện 2.3.1. Video Codec:

Mã hóa hình ảnh là khả năng tùy chọn. Nếu được cung cấp nó sẽ theo

các yêu cầu trong khuyến cáo này. Mọi đầu cuối H.323 cung cấp truyền

thông hình ảnh đều phải có khả năng mã hóa và giải mã hình ảnh theo chuẩn

QCIF H.261. Một đầu cuối cũng có thể tùy chọn khả năng mã hóa và giải mã

hình ảnh theo H.261 hoặc H.263. Nếu một đầu cuối hỗ trợ H.263 CIF hoặc

cao hơn thì cũng hỗ trợ H.261 CIF. Tất cả đầu cuối hỗ trợ H.263 sẽ hỗ trợ

H.263 QCIF. Các bộ mã hóa hình ảnh khác và các dạng hình ảnh khác cũng

có thể được dùng thông qua thoả thuận trong H.245. Nhiều kênh hình ảnh

được truyền và nhận qua kênh điều khiển H.245.

Các tuỳ chọn về tốc độ truyền bit ảnh, dạng ảnh và giải thuật truyền có

thể được chấp nhận bởi bộ giải mã được định nghĩa trong suốt thời gian trao

đổi khả năng sử dụng H.245.Các đầu cuối H.323 có thể hoạt động ở các tốc

độ bit hình ảnh, tốc độ khung không cân đối và các giải pháp hình ảnh nếu có

nhiều giải pháp hình ảnh hỗ trợ. Chẳng hạn cho phép một đầu cuối CIF

truyền hình ảnh QCIF trong khi nhận hình ảnh CIF. Dòng hình ảnh được định

dạng như mô tả trong chuẩn H.225.0

Trong những trường hợp các đầu cuối H.323 nhận nhiều kênh hình

ảnh, đầu cuối cần thực hiện chức năng trộn hoặc chuyển mạch hình ảnh để

truyền báo hiệu hình ảnh đến người dùng. Chức năng này có thể bao gồm

truyền nhiều hình ảnh đến người dùng.

2.3.2. Audio Codec:

Mọi đầu cuối H.323 đều cần có một bộ mã hóa âm thanh. Khả năng mã

hóa và giải mã âm thanh của các đầu cuối H.323 dựa theo chuẩn G.711 (64

Kbps). Tất cả thiết bị đầu cuối đều có khả năng phát và nhận theo luật A và

µ. Một thiết bị đầu cuối có thể tùy chọn mã hóa và giải mã âm thanh dựa trên

các chuẩn khác của ITU như G.722 (64 Kbps, 56 Kbps và 48 Kbps), G.728

65

Trần Thanh Long - Nguyễn Thành Nam

(17 Kbps), G.729 (8 Kbps), MPEG và G.723.1 (5.3 Kbps và 6.3 Kbps). Giải

Nghiên cứu và xây dựng chương trình truyền thông đa phương tiện thuật mã hóa âm thanh được bộ mã hóa sử dụng sẽ được cung cấp trong quá

trình trao đổi khả năng sử dụng H.245. Đầu cuối H.323 phải có khả năng hoạt

động không cân đối trong mọi khả năng âm thanh mà nó đã được khai báo

trong cùng tập hợp khả năng đó, chẳng hạn như gởi G.711 và nhận G.728.

Đầu cuối H.323 có thể gởi một hoặc nhiều kênh âm thanh cùng lúc.

2.3.3. Data Channel (Kênh dữ liệu):

Một hoặc nhiều kênh dữ liệu là tuỳ chọn. Kênh dữ liệu có thể là đơn

hướng hoặc đa hướng. Chuẩn T.120 là nền tảng mặc định cho khả năng liên

kết hoạt động dữ liệu với nhau giữa đầu cuối H.323 và các đầu cuối H.323,

H.324, H.320 hoặc H.310 khác. Bất kỳ ứng dụng dữ liệu nào sử dụng một

hoặc nhiều chuẩn ITU-T đều có thể được thoả thuận thông qua H.245.

2.4. Điều khiển hệ thống:

2.4.1. Chức năng điều khiển H.245:

Chức năng điều khiển H.245 sử dụng kênh điều khiển H.245 để mang

thông điệp điều khiển End - to - End, điều khiển hoạt động của thực thể

H.323 bao gồm: trao đổi khả năng, mở và đóng kênh logic, yêu cầu chế dộ ưu

tiên, thông điệp điều khiển dòng và tạo những lênh, chỉ thị.

Báo hiệu H.245 được thiết lập giữa hai Endpoint, giữa một Endpoint

và một MC, hoặc giữa một Endpoint và một Gatekeeper. Endpoint thiết lập

chính xác một kênh điều khiển H.245 cho mỗi cuộc gọi mà nó tham gia.

Kênh này sử dụng các thông điệp và thủ tục trong chuẩn H.245. Một

Terminal, MCU, Gateway, hoặc Gatekeeper có thể hỗ trợ nhiều cuộc gọi, do

đó có nhiều kênh điều khiển H.245.

Khuyến cáo H.245 chỉ ra một số phương thức độc lập hỗ trợ báo hiệu

Endpoint – to – Endpoint. Một phương thức được chỉ rõ bởi cú pháp, ngữ

nghĩa, và một tập các thủ tục của nó để chỉ rõ sự trao đổi thông điệp và sự

tương tác với người dùng. Các Endpoint H.323 sẽ hỗ trợ cú pháp, ngữ nghĩa

66

Trần Thanh Long - Nguyễn Thành Nam

và các thủ tục bởi các giao thức sau:

Nghiên cứu và xây dựng chương trình truyền thông đa phương tiện

• Xác định chủ tớ.

• Trao đổi khả năng.

• Báo hiệu kênh logic.

• Báo hiệu kênh logic hai chiều.

• Báo hiệu đóng kênh logic.

• Yêu cầu chế độ.

• Xác định độ trì hoãn.

• Báo hiệu vòng bảo tri.

Các thông điệp của H.245 gồm: Request, Respone, Command, và

Indication.

2.4.2. Chức năng báo hiệu RAS H.225.0:

Chức năng báo hiệu RAS sử dụng thông điệp H.225.0 để thực hiện

đăng ký, đăng nhập thay đổi băng thông trạng thái và xoá các thủ tục giữa các

Endpoint và Gatekeeper. Kênh này độc lập với kênh báo hiệu cuộc gọi và

kênh điều khiển H.245. Thủ tục mở kênh logic H.245 không dùng để thiết lập

kênh báo hiệu RAS. Trong môi trường mạng không có Gatekeeper thì không

sử dụng kênh báo hiệu RAS. Nếu có Gatekeeper thì kênh báo hiệu RAS được

mở giữa Endpoint và Gatekeeper và được mở trước khi thiết lập các kênh

khác giữa các H.323 Endpoint.

Kênh báo hiệu RAS H.225.0 là kênh không tin cậy, mang thông điệp

dùng trong quá trình tìm Gatekeeper và đăng ký Endpoint liên quan đến địa

chỉ định danh của Endpoint trong địa chỉ chuyển tải kênh báo hiệu cuộc gọi.

Vì kênh báo hiệu RAS không tin cậy nên chuẩn H.225.0 đưa ra thời gian

Timeout và được đếm lại cho mỗi thông điệp khác nhau. Một Endpoint hay

Gatekeeper không đáp ứng được yêu cầu trong thời gian Timeout thì có thể

dùng thông điệp RIP (Request In Progress) để thông báo rằng nó vẫn đang

tiếp tục yêu cầu. Một Endpoint hay Gatekeeper nhận RIP sẽ xoá Timeout của

67

Trần Thanh Long - Nguyễn Thành Nam

nó và đếm lại.

Nghiên cứu và xây dựng chương trình truyền thông đa phương tiện 2.4.3. Chức năng báo hiệu cuộc gọi H.225.0:

Dùng để thiết lập kết nối giữa hai H.323 Endpoint. Kênh báo hiệu cuộc

gọi độc lập với kênh RAS và kênh điều khiển H.245. Không dùng thủ tục mở

kênh logic H.245 để thiết lập kênh báo hiệu cuộc gọi. Kênh báo hiệu cuộc gọi

được mở trước khi thiết lập kênh H.245 và các kênh logic giữa các H.323

Endpoint. Kênh báo hiệu cuộc gọi là một kênh tin cậy, được dùng để mang

thông điệp điều khiển cuộc gọi H.225.0.

Trong hệ thống không có Gatekeeper , kênh báo hiệu cuộc gọi được

mở giữa hai Endpoint liên quan đến cuộc gọi. Thông điệp báo hiệu cuộc gọi

được truyền trực tiếp giữa hai Endpoint chủ gọi và Endpoint bị gọi sử dụng

địa chỉ chuyển tải kênh báo hiệu. Trong trường hợp này, xem như Endpoint

chủ gọi đã biết địa chỉ chuyển tải kênh báo hiệu cuộc gọi của Endpoint bị gọi

nên có thể truyền trực tiếp.

Trong hệ thống có Gatekeeper, kênh báo hiệu cuộc gọi được mở giữa

Endpoint và Gatekeeper, hoặc giữa các Endpoint với nhau ( do Gatekeeper

quyết định).

Định tuyến kênh báo hiệu cuộc gọi:

a. Gatekeeper tìm đường báo hiệu cuộc gọi. Thông điệp báo hiệu cuộc

gọi giữa các Endpoint được định tuyến qua Gatekeeper.

4 5 6

7

1 2 3 8

Gatekeeper Cloud

1 ARQ 2 ACF/ARJ 3 Set-up 4 Set-up 5 ARQ 6 ACF/ARJ 7 Connect 8 Connect

Call Signalling Channel Message

RAS Channel Messages

Gatekeeper tìm đường báo hiệu cuộc gọi

68

Trần Thanh Long - Nguyễn Thành Nam

Endpoint 1 Endpoint 2

Nghiên cứu và xây dựng chương trình truyền thông đa phương tiện

b. Báo hiệu cuộc gọi trực tiếp giữa các Endpoint, thông điệp báo hiệu

cuộc gọi được truyền trực tiếp giữa các Endpoint.

4

5

1

2

1 ARQ 2 ACF/ARJ 3 Set-up 4 ARQ

3

Gatekeeper Cloud

6

5 ACF/ARJ 6 Connect

Call Signalling Channel Message

RAS Channel Messages

Báo hiệu cuộc gọi trực tiếp giữa các Endpoint

Endpoint 1 Endpoint 2

Định tuyến kênh điều khiển:

Khi báo hiệu cuộc gọi được định tuyến bởi Gatekeeper, có hai phương

pháp định tuyến kênh điều khiển H.245 được dùng:

a. Kênh điều khiển H.245 được thiết lập trực tiếp giữa các Endpoint.

4 5 6

7

1 2 3 8

9

Gatekeeper Cloud

1 ARQ 2 ACF/ARJ 3 Set-up 4 Set-up 5 ARQ 6 ACF/ARJ 7 Connect 8 Connect 9 H.245 Channel

H.245 Control Channel Message

Call Signalling Channel Message RAS Channel Messages Thiết lập kênh điều khiển H.245 trực tiếp giữa các Endpoint

69

Trần Thanh Long - Nguyễn Thành Nam

Endpoint 1 Endpoint 2

Nghiên cứu và xây dựng chương trình truyền thông đa phương tiện

b. Kênh điều khiển H.245 được định tuyến giữa các Endpoint thông

qua Gatekeeper. Phương pháp này cho phép Gatekeeper gởi lại

kênh điều khiển H.245 vào cho MC khi hội nghị chuyển từ điểm -

điểm sang đa điểm. Khi báo hiệu cuộc gọi được thực hiện trực tiếp

giữa các Endpoint, kênh điều khiển H.245 chỉ được kết nối trực tiếp

với các Endpoint.

1 2 3 8

10

4 5 6

7

9

Gatekeeper Cloud

H.245 Control Channel Message

Call Signalling Channel Message RAS Channel Messages

Gatekeeper định tuyến kênh điều khiển H.245

Endpoint 1 Endpoint 2

1 ARQ 2 ACF/ARJ 3 Set-up 4 Set-up 5 ARQ 6 ACF/ARJ 7 Connect 8 Connect 9 H.245 Channel 10 H.245 Channel

2.5. Hội nghị đa điểm:

Khả năng hội nghị đa điểm theo chuẩn H.323 được tổ chức bằng nhiều

phương pháp và cấu hình phong phú. Chuẩn H.323 đưa ra ba mô hình hội

nghị đa điểm: hội nghị đa điểm tập trung, hội nghị đa điểm phân tán, hội nghị

đa điểm tập trung và phân tán kết hợp.

2.5.1. Hội nghị đa điểm tập trung:

Dùng MCU để làm linh hoạt hội nghị đa điểm. Các đầu cuối gởi các

dòng âm thanh, hình ảnh, dữ liệu và tín hiệu điều khiển đến MCU theo mô

hình điểm - điểm. MCU quản lý hội nghị đa điểm tập trung sử dụng các chức

70

Trần Thanh Long - Nguyễn Thành Nam

năng điều khiển H.245. MP thực hiện trộn âm thanh, phân phối dữ liệu, trộn

Nghiên cứu và xây dựng chương trình truyền thông đa phương tiện hoặc chuyển mạch các hình ảnh và gởi kết quả cho đầu cuối tham gia trong

mạng, cung cấp sự chuyển đổi giữa các bộ mã hoá tốc độ bit khác nhau và có

thể dùng chế độ quảng bá thông tin để phân phối hình ảnh xử lý được. MCU

tiêu biểu hỗ trợ hội nghị đa điểm tập trung gồm một MC và một MP.

2.5.2. Hội nghị đa điểm phân tán:

Dùng kỹ thuật quãng bá thông tin. Các đầu cuối H.323 tham gia trong

mạng truyền quảng bá âm thanh và hình ảnh đến các đầu cuối khác không

qua MCU. Tuy nhiên, dữ liệu điều khiển vẫn được xử lý tập trung bởi MCU,

thông tin điều khiển H.245 vẫn được truyền theo mô hình điểm - điểm đến

MC.

2.5.3. Hội nghị đa điểm tập trung và phân tán kết hợp:

Báo hiệu H.245 hoặc âm thanh hoặc hình ảnh được xử lý thông qua

thông điệp truyền điểm - điểm đến MCU. Báo hiệu còn lại ( hình ảnh hoặc

âm thanh) truyền đến đầu cuối theo kiểu quảng bá.

Một lợi điểm của hội nghị tập trung là tất cả đầu cuối H.323 đều hỗ trợ

truyền thông điểm - điểm. Một MCU có thể truyền đi nhiều dòng tín hiệu đơn

đến các đầu cuối tham gia hội nghị mà không cần yêu cầu khả năng đặc biệt

nào của mạng. Ngược lại, MCU có thể nhận nhiều tín hiệu đơn, sau đó thực

hiện trộn âm thanh, chuyển mạch hình ảnh và truyền thành luồng quảng bá,

duy trì băng thông cho mạng.

H.323 cũng hỗ trợ hội nghị đa điểm hỗn hợp, trong đó một số thiết bị

đầu cuối là tập trung, một số thiết bị đầu cuối là phân tán và MCU là cầu nối

giữa hai mạng này. Các đầu cuối tham gia trong hội nghị không biết được bản

chất thật sử của hội nghị hỗn hợp mà chỉ hiểu đơn giản đó là một kiểu kết nối

mà trong đó nó gởi và nhận.

2.6. Quy trình thiết lập cuộc gọi qua mạng H.323:

71

Trần Thanh Long - Nguyễn Thành Nam

• Endpoint đăng ký với Gatekeeper.

Nghiên cứu và xây dựng chương trình truyền thông đa phương tiện

• Gatekeeper nhận đăng ký của endpoint và cho phép Endpoint thiết

lập cuộc gọi và thực hiện chuyển đổi địa chỉ (ARP)

• Thiết lập các báo hiệu cuộc gọi tương ứng, khởi động cuộc gọi nếu

thành công hoặc từ chối cuộc gọi nếu không thể kết nôis

• Điều chỉnh các chức năng của hệ thống trong suốt cuộc gọi, trao đổi

thông tin và xác định chế độ hoạt động của hệ thống

• Định dạng và mở kênh truyền, thu và phát dòng dữ liệu

• Thay đổi người gọi, các thông số, phương tiện truyền thông

ARQ(1)

H.225 Signalling

RAS Message

ACF(2)

SETUP(3)

ARQ(5)

ACF(6)

Connect (8)

H323 Call Establishment

• Kết thúc cuộc gọi và loại bỏ đăng ký ban đầu ở Gatekeeper.

Mô hình như sau: Call Proceeding (4) Alerting (7) Endpoint1 gởi thông điệp RAS ARQ trên kênh điều khiển RAS đến 1.

gatekeeper để đăng ký. Endpoint1 yêu cầu báo hiệu cuộc gọi trực tiếp.

2. Gatekeeper xác nhận sự kết nối của Endpoint1 bằng cách gởi thông

điệp ACF cho Endpoint1. Gatekeeper chỉ thị cho Endpoint1 có thể sử

72

Trần Thanh Long - Nguyễn Thành Nam

dụng báo hiệu cuộc gọi trực tiếp.

Nghiên cứu và xây dựng chương trình truyền thông đa phương tiện 3.

Endpoint1 gởi thông điệp báo hiệu cuôc gọi H.225 SETUP đến cho

Endpoint2 để yêu cầu tạo kết nối.

4. Endpoint2 gởi trả lời thông điệp H225 Call Proceeding đến Endpoint1.

5. Endpoint2 đã đăng ký với Gatekeeper, và gởi thông điệp RAS ARQ

trên kênh điều khiển RAS đến cho Gatekeeper.

6. Gatekeeper xác nhận sự đăng kỹ bằng cách gởi thông điệp RAS ACF

đến cho Endpoint2.

7. Endpoint2 thông báo cho Endpoint1 biết kết nối đã được thiết lập bằng

cách gởi thông điệp Alerting đến cho Endpoint1.

8. Sau đó, Endpoint2 xác nhận sự thiết lập kết nối bằng cách gởi thông

TerminalCapabilitySet(9)

TerminalCapabilitySetAck(10)

H245 Message

TerminalCapabilitySetAck(12)

OpenLogicalChannel(13)

OpenLogicalChannelAck(14)

OpenLogicalChannelAck(16)

H.323 Control Signaling Flows

điệp Connect đển Endpoint1.

TerminalCapabilitySet(11) OpenLogicalChannel(15) Kênh điều khiển H.245 được thiết lập giữa Endpoint1 và Endpoint2. 9.

Endpoint1 gởi thông điệp H245 TerminalCapabilitySet đến Endpoint2

để cho Endpoint2 biết khả năng của mình.

10. Endpoint2 báo nhận cho Endpoint1 bằng cách gởi thông điệp H245

TerminalCapabilitySetAck cho Endpoint1.

11. Endpoint2 gởi thông điệp H245 TerminalCapabilitySet đến Endpoint1

73

Trần Thanh Long - Nguyễn Thành Nam

để cho Endpoint1 biết khả năng của mình.

Nghiên cứu và xây dựng chương trình truyền thông đa phương tiện 12. Endpoint1 báo nhận cho Endpoint2 bằng cách gởi thông điệp H245

TerminalCapabilitySetAck cho Endpoint2.

13. Endpoint1 mở kênh truyền thông với Endpoint2 qua thông điệp H245

OpenLogicalChannel. Địa chỉ chuyển tải của kênh điều khiển RTCP

bao gồm trong thông điệp này.

14. Endpoint2 xác nhận sự thiết lập này và gởi thông điệp H245

OpenLogicalChannelAck. Trong thông điệp này bao gồm địa chỉ

chuyển tải RTP được chỉ định bởi Endpoint2 được sử dụng để

Endpoint1 gởi các dòng dữ liệu RTP và địa chỉ RTCP nhận được từ

Endpoint1 trước đó.

15. Endpoint2 mở một kênh truyền thông với Endpoint1 qua thông điệp

H245 OpenLogicalChannel. Địa chỉ chuyển tải của kênh điều khiển

RTCP bao gồm trong thông điệp này.

16. Endpoint1 xác nhận sự thiết lập này và gởi thông điệp H245

OpenLogicalChannelAck. Trong thông điệp này bao gồm địa chỉ

chuyển tải RTP được chỉ định bởi Ep1 được sử dụng để Endpoint2 gởi

các dòng dữ liệu RTP và địa chỉ RTCP nhận được từ Endpoint2 trước

RTP Media Stream (17)

RTP Media Stream (18)

RTCP Messages (19)

RTCP Messages (20)

RTP media stream and RTCP Messages

H.323 Media Stream and Media Control Flows

đó.

74

Trần Thanh Long - Nguyễn Thành Nam

17. Endpoint1 gởi dòng dữ liệu RTP đã được thiết lập đến cho Endpoint2

Nghiên cứu và xây dựng chương trình truyền thông đa phương tiện 18. Ep2 gởi dòng dữ liệu RTP đã được thiết lập đến cho Ep1.

19. Endpoint1 gởi thông điệp RTCP đến cho Endpoint2.

End Session Command (21)

End Session Command (22)

Release Complete (23)

DRQ (24)

DRQ (24)

DCF (25)

DCF (25)

H.225 Signaling Message

H.245 Message

RAS Message

H.323 Call Release

20. Endpoint2 gởi thông điệp RTCP đến cho Endpoint1.

21. Endpoint2 bắt đầu huỷ cuộc gọi. Nó gởi thông điệp End Session

Command đến cho Endpoint1.

22. Endpoint1 huỷ cuộc gọi và xác nhận bằng thông điệp End Session

Command gởi cho Endpoint2.

23. Endpoint2 hoàn thành việc huỷ cuộc gọi và gởi lại thông điệp Release

Complete đến cho Endpoint1.

24. Endpoint1 và Endpoint2 huỷ đăng ký ở Gatekeeper bằng cách gởi

thông điệp DRQ đến cho Gatekeeper.

25. Gatekeeper huỷ đăng ký của Endpoint1 và Endpoint2 và xác nhận bằng

thông điệp DCF đến cho Endpoint1 và Endpoint2 .

Phương thức thiết lập hội thoại giữa các người dùng máy:

Để thiết lập một cuộc hội thoại, cần phải có một MCU. MCU bao gồm

một MC và có thể có hoặc không có MP. Có nhiều cách để thiết lập một cuộc

75

Trần Thanh Long - Nguyễn Thành Nam

hội thoại. Các đầu cuối có thể quảng bá thông tin của mình cho các đầu cuối

Nghiên cứu và xây dựng chương trình truyền thông đa phương tiện khác hoặc gởi đến MP, MP thực hiện trộn và phân phối, chuyển các dữ liệu

này đến các thành phần khác tham gia trong cuôc hội thoại. MCU quản lý hội

thoại bằng cách sử dụng các chức năng điều khiển của H.245. Các thông tin

điều khiển được truyền đến MC trên kênh điều khiển H.245. Trong trường

hợp các đẩu cuối tham gia hội thoại quảng bá thông tin của mình đến cách

đầu cuối khác thì MP không được sử dụng để trộn và xử lý dữ liệu, trong khi

đó, các thông tin điều khiển cuộc hội thoại vẫn được truyền trên kênh điều

khiển H.245.

Trên đây là phương thức thiết lập cuộc gọi nói chung, có rất nhiều

trường hợp thiết lập cuộc gọi giữa hai Ep:

• Cả hai Endpoint thiết lập cuộc gọi không thông qua Gatekeeper.

• Cả hai Endpoint đăng ký cùng một Gatekeeper và báo hiệu cuộc gọi

trực tiếp giữa hai Endpoint với nhau.

• Cả hai Endpoint đăng ký cùng một Gatekeeper và Gatekeeper báo

hiệu cuộc gọi.

• Chỉ có Endpoint gọi đăng ký với Gatekeeper và sử dụng báo hiệu

trực tiếp.

• Chỉ có Endpoint gọi đăng ký với Gatekeeper và Gatekeeper báo

hiệu cuộc gọi.

• Chỉ có Endpoint được gọi đăng ký với Gatekeeper và sử dụng báo

hiệu trực tiếp.

• Chỉ có Endpoint được gọi đăng ký với Gatekeeper và Gatekeeper

báo hiệu cuộc gọi.

• Cả hai Endpoint đăng ký hai Gatekeeper khác nhau và sử dụng báo

hiệu cuộc gọi trực tiếp.

• Cả hai Endpoint đăng ký hai Gatekeeper khác nhau và hai

76

Trần Thanh Long - Nguyễn Thành Nam

Gatekeeper báo hiệu cuộc gọi

Nghiên cứu và xây dựng chương trình truyền thông đa phương tiện 2.7. Mối quan hệ giữa nghi thức H323 và mô hình OSI:

2.8. Tổng kết:

Truyền thông theo chuẩn H.323 có thể xem như kết hợp và truyền các

tín hiệu âm thanh, hình ảnh, dữ liệu. Các thành phần trong hệ thống –

Terminal, Gateway, Gatekeeper, MCU - được quản lý bằng những giao thức

điều khiển, báo hiệu như H.245, H.225.0, Q.931, RAS v.v… Trước khi

truyền các tín hiêu truyền thông đa phương tiện, các tín hiệu này đều được

nén theo chuẩn của các video codec và audio codec được cung cấp bởi chuẩn

H.323. Ngoài ra, các hội nghị hoạt động một cách linh hoạt nhờ vào MCU

77

Trần Thanh Long - Nguyễn Thành Nam

của hệ thống theo chuẩn H.323.

Nghiên cứu và xây dựng chương trình truyền thông đa phương tiện 3.

Thư viện OpenH323

3.1. Giới thiệu:

Thư viện hàm OpenH323 là một lớp thư viện bổ sung cho giao thức

H.323 của ITU-T. Thư viện hàm OpenH323 được đưa ra đầu tiên bởi một

công ty của Úc, Equivalence Pty Ltd, năm 1998 – 2000. Thư viện này nhằm

mục đích cung cấp cho các nhà lập trình bộ API để phát triển các ứng dụng

dựa trên chuẩn H.323.

3.2. Cấu trúc phân lớp và phương thức hoạt động:

3.2.1. Cấu trúc phân lớp:

• H245Negotiator

o H323NegTerminalCapabilitySet

o H245NegRoundTripDelay

o H245NegRequestMode

o H245NegMasterSlaveDetermination

o H245NegLogicalChannels

o H245NegLogicalChannel

• H323Capability

o H323_UserInputCapability

o H323RealTimeCapability

(cid:131) H323VideoCapability

+ H323_H261Capability

+ H323NonStandardVideoCapability.

(cid:131) H323AudioCapability

+ H323_LIDCapability

+ H323_GSM0610Capability

+ H323_G711Capability

+ H323_ACMG7231Capability.

78

Trần Thanh Long - Nguyễn Thành Nam

+ H323NonStandardAudioCapability

Nghiên cứu và xây dựng chương trình truyền thông đa phương tiện

- H323_ACMCapability.

o H323DataCapability

(cid:131) H323_T120Capability

(cid:131) H323NonStandardDataCapability

• H323CapabilityList

• H323CapabilitySet

• H323Channel

o H323UniDirectionalChannel

(cid:131) H323_RTPChannel

o H323BiDirectionalChannel

• H323ChannelNumber

• H323Codec

o H323VideoCodec

(cid:131) H323_H261Codec

o H323AudioCodec.

(cid:131) H323_LIDCodec

(cid:131) H323FramedAudioCodec

+ H323_GSM0610Codec

+ H323_ACMCodec

+ H323StreamedAudioCodec

- H323_ µLawCodec

- H323_ALawCodec.

• H323Connection

• H323ControlPDU

• H323Endpoint

• H323GateKeeper

• H323GloballyUniqueID

79

Trần Thanh Long - Nguyễn Thành Nam

• H323Listener

Nghiên cứu và xây dựng chương trình truyền thông đa phương tiện

o H323ListenerTCP

• H323NonStandardCapabilityInfo

o H323NonStandardVideoCapabilityInfo

o H323NonStandardDataCapabilityInfo

o H323NonStandardAudioCapabilityInfo

(cid:131) H323_ACMCapabilityInfo

• H323SignalPDU

• H323Transport

• H323TransportIP

o H323TransportUDP

• H323TransportAddress

• H323VideoDevice

o PPMVideoOutputDevice

o NulVideoOutputDevice

• OpalLineChannel

• OpalLineInterfaceDevice

o OpalVpbDevice

o OpalIxJDevice

• Q931

• RTP_ControlFrame

• RTP_DataFrame

• RTP_Session.

o RTP_UDP

• RTP_SessionManager

• RTP_UserData

o H323_RTP_Session

(cid:131) H323_RTP_UDP.

80

Trần Thanh Long - Nguyễn Thành Nam

• X224

Nghiên cứu và xây dựng chương trình truyền thông đa phương tiện 3.2.2. Ý nghĩa một số lớp trong thư viện:

• Class H323Connection:

Class này trình bày một kết nối H.323 cụ thể giữa hai Endpoint. Có ít

nhất hai tiểu trình được sử dụng, một tiểu trình được dùng để lắng nghe các

tín hiệu trên kênh báo hiệu, tiểu trình còn lại được dùng để lắng nghe các tín

hiệu trên kênh điều khiển. Cứ mỗi kênh dữ liệu được tạo ra bởi kênh điều

khiển thì tương ứng có một tiểu trình được tạo ra để quản lý.

o Tạo một kết nối mới:

H323Connection(

H323EndPoint & endpoint, unsigned callReference,

unsigned options = 0);

o Hiểu một kết nối:

~H323Connection();

• Class H323EndPoint:

Lớp này quản lý một H.323 Endpoint. Một Endpoint có thể không có

hoặc có nhiều Listener để tạo kết nối đến hoặc kết nối đi được thiết lập thông

qua hàm MakeCall(). Một kết nối tồn tại được quản lý bởi lớp này. Mỗi ứng

dụng có thể tạo một lớp kế thừa từ lớp này và overide hàm

CreateConnection() nếu cần thiết.

o Tạo một Endpoint mới:

H323EndPoint();

o Hủy một Endpoint:

~H323EndPoint();

• Class H323Listener:

Lớp này mô tả một “listener” trên một giao thức chuyển tải. Một

“listener” là một đối tượng lắng nghe các kết nối đến trên một kênh chuyển

tải cụ thể. Nó được thực thi như là một tiểu trình riêng biệt.

Hàm Main() được sử dụng để quản lý các kết nối H.323 đến và gởi

81

Trần Thanh Long - Nguyễn Thành Nam

chúng đến các tiểu trình mới dựa trên vào lớp H323Transport. Điều này được

Nghiên cứu và xây dựng chương trình truyền thông đa phương tiện định nghĩa trong lớp dẫn xuất sử dụng các mức chuyển tải bên dưới, ví như

H323ListenerIP for the TCP/IP protocol. Một ứng dụng có thể tạo dẫn xuất từ

lớp này và overide các hàm cần thiết cho hoạt động của kênh giao thức.

o Tạo mới một Listener:

H323Listener(H323EndPoint & endpoint );

• Class H323ListenerTCP:

Lớp này quản lý các kết nối H323 dùng kênh TCP/IP Transport.

o Tạo mới một Listener cho giao thức TCP/IP:

H323ListenerTCP(

H323EndPoint & endpoint,

PIPSocket::Address binding,

WORD port,

BOOL exclusive = FALSE );

o Hủy một Listener:

~H323ListenerTCP();

• Class H323Gatekeeper:

Lớp này mô tả giao thức H.255.0 RAS đến Gatekeeper.

o Tạo mới một Gatekeeper:

H323Gatekeeper(

H323EndPoint & endpoint,

H323Transport * transport );

o Hủy một Gatekeeper:

~H323Gatekeeper();

• Class H323Channel:

Lớp này mô tả một kênh Logic giữa hai Endpoint. Những kênh này

được tạo và hủy theo yêu cầu trong giao thức H245. Ứng dụng có thể tạo lớp

dẫn xuất của lớp này và overide các hàm cần dùng cho hoạt động của giao

thức.

82

Trần Thanh Long - Nguyễn Thành Nam

o Tạo mới một kênh H323:

Nghiên cứu và xây dựng chương trình truyền thông đa phương tiện

H323Channel(

H323Connection & connection,

const H323Capability & capability );

o Hủy một kênh H323.:

Để tránh trường hợp sử dụng những đối tượng đã bị xóa trong tiểu

trình nền, do đó phải chờ tiểu trình H323LogicalChannelThread kết thúc

trước khi tiếp tục.

~H323Channel();

• Class H323_RTPChannel:

Lớp này sử dụng cho giao tiếp IETF Real Time Protocol.

o Tạo mới kênh H323_RTPChannel:

H323_RTPChannel(

H323Connection & connection,

const H323Capability & capability,

Directions direction, RTP_Session & rtp );

o Hủy một kênh H323_RTPChannel:

~H323_RTPChannel();

• Class H323CapabilityList:

Lớp này mô tả toàn bộ khả năng của một Endpoint, thường là các

codec, được sử dụng để chuyển đổi dữ liệu qua các kênh logic được mở và

quản lý bởi kênh điều khiển H323.

Lưu ý rằng bản thân lớp này không phải là thể hiện của một codec. Chỉ

đơn thuần là mô tả các codec. Ứng dụng có thể tạo ra dẫn xuất từ lớp này và

overide một số hàm cần thiết.

• Class H323CapabilitySet:

Định nghĩa cấu trúc hỗn hợp cho khả năng trao đổi và các kết hợp các

83

Trần Thanh Long - Nguyễn Thành Nam

khả năng này.

Nghiên cứu và xây dựng chương trình truyền thông đa phương tiện

• Class H323Codec:

Lớp này đưa ra sự thực hiện của một thể hiện codec cụ thể được dùng

để chuyển đổi dữ liệu được truyền qua các kênh logic được mở và quản lý

bởi kênh điều khiển H323. Ứng dụng có thể tạo lớp dẫn xuất từ lớp này và

overide những hàm cần dùng.

o Hàm khởi tạo:

H323Codec(

const char * mediaFormat,

Direction direction );

o Mở codec:

virtual BOOL Open(H323Connection & connection );

o Đóng codec:

virtual void Close() = 0;

• Class H323AudioCodec:

Lớp này định nghĩa một lớp Codec sẽ sử dụng cho các thiết bị đầu ra

theo chuẩn PCM.

o Tạo mới một audio codec:

Hàm này tạo ra một codec ở các thiết bị âm thanh chuẩn PCM để mã

hóa và giải mã các tín hiệu đến, đi và cho phép các lớp dẫn xuất gởi tín hiệu

ra thiết bị audio I/0.

H323AudioCodec(

const char * mediaFormat,

Direction direction );

o Hủy một audio codec:

~H323AudioCodec();

• Class H323VideoCodec:

Lớp này định nghĩa một lớp Codec sẽ sử dụng cho các thiết bị đầu ra

84

Trần Thanh Long - Nguyễn Thành Nam

theo chuẩn hình ảnh.

Nghiên cứu và xây dựng chương trình truyền thông đa phương tiện

o Tạo mới một video codec:

Hàm này tạo ra một codec ở các thiết bị hình ảnh chuẩn để mã hóa và

giải mã các tín hiệu đến, đi và cho phép các lớp dẫn xuất gởi tín hiệu ra thiết

bị video I/0.

H323VideoCodec(

const char * mediaFormat,

Direction direction );

o Hủy một video codec:

~H323VideoCodec();

3.3. Phương thức hoạt động:

Đối tượng cơ bản của sự phân cấp là lớp H323Endpoint. Mỗi ứng dụng

có một thể hiện con đặc trưng của lớp này. Ứng dụng định nghĩa thể hiện con

sẽ thiết lập các tham số H323 mặc định ( như Timeout, v. v… ), quan trọng

nhất là bảng khả năng định nghĩa kiểu mã hóa, giải mã và loại kênh mà ứng

dụng có thể sử dụng.

Một thể hiện con của lớp H323Endpoint cũng tạo ra một số thể hiện

con của lớp H323Listener. Mỗi giao thức được hỗ trợ bằng một thể hiện con

của lớp H323Listener này. Chẳng hạn như H323ListenerIP dùng cho Internet.

Mỗi Listener đưa ra một cách thức để giám sát giao thức của nó và tạo ra một

thể hiện của lớp H323Transport khi phát hiện ra một cuôc gọi mới đến. Đối

với mỗi nghi thức hỗ trợ, lớp H323Transport cũng có một lớp dẫn xuất tương

ứng với lớp H323Listener, chẳng hạn như lớp H323TransportIP tương ứng

85

Trần Thanh Long - Nguyễn Thành Nam

với H323ListenerIP.

Nghiên cứu và xây dựng chương trình truyền thông đa phương tiện

Sơ đồ lớp Booch của hệ thống:

Khi PDU đầu tiên đến, trên lớp H323Transport sử dụng giao thức

Q.931 và H.225 và một tham chiếu cuộc gọi được thành lập để nhận dạng kết

nối. Các kết nối này để biểu hiện bởi lớp H323Connection. Lớp

H323Connection chứa tất cả thông tin trạng thái của một kết nối giữa các

H323Endpoint. Thể hiện H323Endpoint theo dõi những kết nối đang hoạt

động này. Nếu không có kết nối nào cho số tham chiếu cuộc gọi đã thành lập,

thì một kết nối mới được tạo và quá trình trao đổi báo hiệu H323 bắt đầu.

Trong một ứng dụng, hệ thống tự tạo ra một thể hiện của lớp dẫn xuất

từ lớp H323Connection thay vì chính lớp này tạo ra. Điều này dẫn đến một số

lớn các phương thức ảo có thể bị chồng lấp. Các phương thức ảo này là

những hàm thư viện “callback” cho phép ứng dụng có được thông tin trao đổi

nghi thức hoặc điều chỉnh cách thức trao đổi giao thức.

Trạng thái và chức năng của mỗi lệnh được duy trì bởi các lớp

86

Trần Thanh Long - Nguyễn Thành Nam

H323Negotiator hoặc các biến chuỗi được định nghĩa H.245. Thật ra, lý do

Nghiên cứu và xây dựng chương trình truyền thông đa phương tiện chính cho sự tồn tại của chúng là để giảm bớt phạm vi của các file H255.h và

H245.h được định nghĩa bởi hàng trăm lớp. Một người dùng của lớp

H323Connection do đó không phải include tất cả các Class này trên mỗi phần

biên dịch.

Trong thời gian trao đổi H.245, các kênh logic có thể được tạo ra, vừa

bởi Endpoint từ xa, vừa bởi ứng dụng trong hệ thống. Lớp dẫn xuất từ lớp

H323Channel sẽ thực hiện điều này. Một ứng dụng tiêu biểu của những lớp

này là để mở dòng dữ liệu âm thanh được mã hóa. Lớp H323Channel sẽ dùng

các thông tin lưu trong H323Capability để tạo ra các H323Codec và các

87

Trần Thanh Long - Nguyễn Thành Nam

codec này sẽ được chuyển trong quá trình trao đổi giao thức.

Nghiên cứu và xây dựng chương trình truyền thông đa phương tiện

CHƯƠNG 6: XÂY DỰNG ỨNG DỤNG TRUYỀN THÔNG ĐA

PHƯƠNG TIỆN THỂ NGHIỆM

1. Mô hình thực tế:

Xây dựng một hệ thống truyền thông giao tiếp trực tuyến sử dụng máy

tính giữa nhiều người dùng trong các tổ chức hoặc công ty hoạt động phân

tán tại nhiều vùng địa lý khác nhau, hoặc giữa các trường đại học, sử dụng cơ

sở hạ tầng mạng nối kết giữa các vị trí đó (mạng cục bộ, đường truyền thuê

bao riêng hoặc Internet). Phương thức giao tiếp cho phép đa dạng, gồm nhiều

phương thức thông qua nhiều loại phương tiện thông tin khác nhau (thông

điệp ngắn, âm thanh, hình ảnh ..) nhằm đáp ứng những nhu cầu thông tin và

điều kiện môi trường trong thực tế.

Ngoài ra hệ thống còn cần có khả năng nối kết với phương tiện truyền

thông truyền thống đang được sử dụng phổ biến như điện thoại để bàn nối kết

với hệ thống điện thoại công cộng, điện thoại di động và hệ thống thư điện tử.

Sự kết nối tích hợp này sẽ giúp làm tăng khả năng thông tin liên lạc xuyên

suốt giữa các người dùng.

Trong đề tài này, chúng em không có tham vọng sẽ xây dựng nên một

ứng dụng hoàn chỉnh, hoạt động tốt như trong thực tế mà chỉ xây dựng một

ứng dụng để mô phỏng cho những gì nghiên cứu được về các chuẩn mã hóa /

giải mã, các chuẩn hỗ trợ truyền âm thanh, hình ảnh thời gian thực trong

mạng truyền thông đa phương tiện theo kiểu VoIP.

2. Xác định các yêu cầu:

2.1. Các yêu cầu chức năng:

Các chức năng của Client:

• Đăng ký là thành viên của hệ thống.

• Đăng nhập, xác định tình trạng của mình trong hệ thống.

88

Trần Thanh Long - Nguyễn Thành Nam

• Thay đổi thông tin của user.

Nghiên cứu và xây dựng chương trình truyền thông đa phương tiện

• Nhắn tin nhắn ngắn với các client khác trong cùng hệ thống.

• Thực hiện hội thoại thông điệp với các client khác trong cùng hệ

thống (hỗ trợ cho cả di động tham gia thông qua nhắn SMS).

• Nhắn sms đến cho di động.

• Thực hiện một voice call đến một user khác đang online trên mạng

(cho máy di động (hoặc máy để bàn) nếu user hiện không online).

• Thực hiện một cuộc hội thoại thoại với các user khác trên mạng (hỗ

trợ cho cả di động hay điện thoại bàn tham gia).

• Thực hiện một cuộc gọi cho di động hay điện thoại bàn.

• Nhận thông tin từ các kênh video được phát trên mạng và phát lại.

• Thực hiện hội thoại video giữa hai hay nhiều người dùng.

• Cho phép gởi mail đến người user khác.

Các chức năng của Server:

• Quản lý các thông tin user, quản lý địa chỉ của các gateway (SMS

gateway, PSTN gateway, MCU v.v…).

• Xác thực người dùng và xác nhận trình trạng người dùng.

• Tiếp nhận và xử lý các yêu cầu do client gởi đến như tình trạng kết

nối hiện thời của client, địa chỉ IP của user, thông tin về số điện

thoại để bàn, số di động của user.

• Lưu giữ các tin nhắn offline (text, voice) của user, các thông báo

của các user khác gởi đến và phát lại khi user login.

• Quản lý các user hiện đang online trong hệ thống, quản lý các cuộc

hội thoại đang diễn ra trong hệ thống.

2.2. Các yêu cầu phi chức năng:

• Chương trình có thể hoạt động tốt trên mọi hệ điều hành của

Microsoft.

• Có giao diện thân thiện, dễ sử dụng, dễ dàng thay đổi các thông số

89

Trần Thanh Long - Nguyễn Thành Nam

cấu hình hệ thống.

Nghiên cứu và xây dựng chương trình truyền thông đa phương tiện

• Thiết kế chương trình có tính mở cao để có thể nâng cấp dễ dàng.

Điều này rất quan trọng vì đây là yếu tố quyết định khả năng phát

triển đề tài theo những hướng phát triển đề xuất.

: Giao tiếp theo giao thức do chúng ta đề ra cho server

: Giao tiếp theo giao thức H323

: Giao tiếp theo giao thức POP3

: Giao tiếp theo giao thức đề ra cho trạm phát công

90

Trần Thanh Long - Nguyễn Thành Nam

2.3. Mô hình giao tiếp giữa các thành phần trong hệ thống:

Nghiên cứu và xây dựng chương trình truyền thông đa phương tiện 3.

Đặc tả chung cho hệ thống và sơ đồ khối của các yêu cầu:

3.1. Đặc tả chung cho hệ thống:

Hệ thống được xây dựng thành hai module: module Server và module

Client. Module Server được xây dựng theo mô hình song song hướng kết nối

(Concurrent, Connection-Oriented).

Module Server:

Module Server gồm hai phần: phần dịch vụ (service) chạy nền bên

dưới và phần ứng dụng (giao diện đồ họa) chạy bên trên để cấu hình hệ thống

cho service hoạt động đồng thời thực thi một số chức năng của Server như:

Quản lý hội thoại (Conference Management), v.v…

Khi service được khởi động (Start), một tiểu trình chính được khởi tạo

chịu trách nhiệm mở kho dữ liệu (database) dùng cho chương trình, đọc file

chứa các thông số khởi tạo cho service hoạt động (như địa chỉ IP của các

Gateway sử dụng trong hệ thống, v.v…), đồng thời thiết lập hai tiểu trình

con, một tiểu trình chịu trách nhiệm lắng nghe và phục vụ cho các yêu cầu

của user thông thường và tiểu trình còn lại chịu trách nhiệm lắng nghe và

phục vụ cho các yêu cầu của user admin. Tiểu trình chính này chỉ kết thúc khi

service kết thúc hoạt động (stop).

Tiểu trình phục vụ cho các yêu cầu của client lắng nghe trên cổng dịch

vụ 45000. Mỗi khi có một yêu cầu gởi đến từ phía client, tiểu trình này xác

định loại của yêu cầu (yêu cầu đăng nhập hay thoát khỏi hệ thống v.v…), sau

đó tạo ra một tiểu trình tương ứng với yêu cầu vừa xác định được và truyền

cho tiểu trình các thông tin cần thiết (socket gởi nhận dữ liệu) để tiếp tục

phục vụ cho client.

Trong các tiểu trình con được tạo ra bởi tiểu trình phục vụ client, mọi

thông tin liên quan đến yêu cầu được client gởi đến và tiểu trình sử dụng các

thông tin này để xử lý (truy vấn dữ liệu, v.v… ) và gởi trả các kết quả xử lý

được về cho client. Sau khi một yêu cầu từ client được đáp ứng hoàn tất, tiểu

91

Trần Thanh Long - Nguyễn Thành Nam

trình sẽ được hủy.

Nghiên cứu và xây dựng chương trình truyền thông đa phương tiện

Tiểu trình phục vụ cho các yêu cầu của server (phần giao diện dùng để

cấu hình service và quản lý hệ thống) lắng nghe trên cổng dịch vụ 40000.

Cũng tương tự như tiểu trình phục vụ client, mỗi khi có một yêu cầu nào từ

server gởi đến, tiểu trình này tạo ra một tiểu trình con tương ứng để phục vụ

cho yêu cầu đó và kết thúc tiểu trình khi yêu cầu được thực hiện xong.

Cả hai tiểu trình phục vụ cho client và tiểu trình phục vụ cho server

đều kết thúc khi service kết thúc hoạt động.

Module Client:

Các thành viên trong hệ thống sử dụng account của mình để đăng nhập

vào hệ thống, sau khi đăng nhập thành công, các thành viên có thể sử dụng

các dịch vụ được ứng dụng client hỗ trợ. Khi đăng nhập thành công, ứng

dụng client cũng tạo ra một tiểu trình để lắng nghe mọi thông báo hoặc yêu

cầu gởi về từ server như có yêu cầu trò chuyện từ một client khác đang

“online” trong hệ thống, v.v… Tiểu trình này hoạt động trên cổng dịch vụ

43000. Tiểu trình chính này chỉ kết thúc khi người dùng thoát khỏi hệ thống.

Khi tiểu trình này nhận được một yêu cầu hoặc thông báo từ service gởi về,

nó sẽ tạo ra một tiểu trình tương ứng với thông báo hoặc yêu cầu đó để thông

báo cho client biết và đáp lại thông báo, yêu cầu này.

3.2. Sơ đồ khối của một vài chức năng của client:

Tất cả các giao tiếp giữa client và server đều theo nguyên tắc sau:

Client gởi yêu cầu cho server (ví dụ như “LOGIN”) và client chờ

server gởi trả thông điệp báo nhận cho yêu cầu này (ví dụ như

“LOGINACK”). Khi nhận được thông điệp báo nhận từ server, client gởi lại

thông điệp báo nhận cho server (ví dụ như “LOGINACK) và quá trình trao

đổi thông tin giữa client và server bắt đầu.

Trong quá trình trao đổi giữa client và server, nếu có lỗi xảy ra từ phía

server, server sẽ gởi một thông điệp báo lỗi cho client biết để kết thúc quá

92

Trần Thanh Long - Nguyễn Thành Nam

trình trao đổi (ví dụ như “LOGINER”). Có nhiều loại lỗi xảy ra trong quá

Nghiên cứu và xây dựng chương trình truyền thông đa phương tiện trình trao đổi và tùy vào thông điệp báo lỗi được gởi về mà client biết để xử

lý hoặc thông báo cho người sử dụng biết.

a. Chức năng đăng nhập, xác định tình trạng hiện thời của user trong hệ

Client

Đăng nhập

Thông tin các user liên quan

Các thông tin về user đăng nhập

thống:

Đ

Đăng nhập lại

Xác thực user

Module xử lý của Server

S

Đặc tả: Client gởi các thông tin về account của mình cho module xử lý

của service để xác thực. Nếu xác thực đúng, module xử lý của service sẽ gởi

trả về cho client các thông tin liên quan đến account của client như danh sách

các thành viên có trong contact list của user, các thông báo của các user khác

gởi đến, các offline message của các client này.

Trong trường hợp xác thực không đúng, module xử lý của service sẽ

gởi về các thông điệp lỗi tương ứng với từng lỗi như không đúng password

hay user này không tồn tại trong hệ thống, v.v…

b. Thay đổi thông tin của user:

Đặc tả: Trong trường hợp client muốn thay đổi các thông tin liên quan,

client gởi các thông tin thay đổi đến cho module xử lý của service . Module

xử lý của service sẽ cập nhật lại các thông tin này trong cơ sở dữ liệu, nếu cập

nhật thành công, module xử lý của service sẽ báo cho client biết đã thay đổi,

nếu thay đổi không thành công, module xử lý của service báo cho client biết

93

Trần Thanh Long - Nguyễn Thành Nam

có lỗi xảy ra và client thoát khỏi .

Nghiên cứu và xây dựng chương trình truyền thông đa phương tiện

Client

Xem thông tin về user

Save ?

Thay đổi các thông tin

Thoát khỏi thông tin user

S

Cập nhật thông tin về user

Module xử lý của Server

Đ

Save OK?

Đ S

Client 2

Các dòng message

Client 1

Module xử lý của Server

Yêu cầu Server cho biết IP của Client 2

c. Nhắn tin ngắn với các user khác trong cùng hệ thống:

Online ?

IP của Client 2

Đ

Các dòng message

S lưu lại message của C1 nhắn cho C2

94

Trần Thanh Long - Nguyễn Thành Nam

S

Nghiên cứu và xây dựng chương trình truyền thông đa phương tiện

Đặc tả: Khi một client 1 (C1) muốn trò chuyện với một client 2 (C2)

trên mạng, C1 sẽ yêu cầu module xử lý của service thiết lập cuộc trò truyện,

tiểu trình phục vụ client sẽ tiếp nhận yêu cầu và tạo ra tiểu trình con phục vụ

riêng cho yêu cầu này, trong tiểu trình con này, module xử lý của service sẽ

tính toán cổng dịch vụ thực hiện cuộc trò truyền dựa vào id của C2 so với C1

trong cơ sở dữ liệu. Từ đó module xử lý của service (tiểu trình con) sẽ gởi vể

cho mỗi client cổng dịch vụ và địa chỉ IP của client còn lại. Mỗi client sẽ thiết

lập socket để gởi và nhận các message.

Trong trường hợp C2 offline, module xử lý của service sẽ gởi thông

báo cho C1 biết và tạo tiểu trình con để lưu các tin nhắn offline của C1 gởi

cho C2.

d. Thực hiện hội nghị thông điệp với các client khác trong cùng hệ thống

Client 2

Thông điệp

Client 1

Module xử lý của server

Yêu cầu thiết lập một hội thoại thông điệp

(hỗ trợ cho cả di động tham gia thông qua nhắn SMS)

Set up OK?

Thông điệp

Thông báo thiết lập thành công

Đ

SMS gateway

Thông điệp

Thông báo thiết lập không thành công

S

Di động

Đặc tả: Cũng giống yêu cầu trò truyện, yêu cầu thực hiện hội nghị

thông điệp được gởi đến cho module xử lý của service từ client yêu cầu,

95

Trần Thanh Long - Nguyễn Thành Nam

module xử lý của service tạo tiểu trình tiếp nhận danh sách các client tham

Nghiên cứu và xây dựng chương trình truyền thông đa phương tiện gia trong cuộc hội nghị. Sau khi nhận hết toàn bộ danh sách các client được

mời tham gia hội nghị, module xử lý của service tạo ra một group mới, tính

toán cổng dịch vụ, địa chỉ multicast và gởi các thông tin này về cho client yêu

cầu, đồng thời gởi thông báo mời tham gia hội nghị đến cho tất cả các user

còn lại trong group. Nếu thiết lập cuộc hội nghị không thành công, module xử

lý của service sẽ gởi thông báo lỗi về cho client yêu cầu biết.

Trong trường hợp thành công và các client được mời đều đã được

thông báo, nếu client nào chấp nhận tham gia hội nghị thì module xử lý của

service gởi về cho client này cổng dịch vụ, địa chỉ multicast sử dụng để trao

đổi thông điệp và danh sách các client hiện đã tham gia vào hội nghị. Khi một

client nhận được thông tin về cổng dịch vụ và địa chỉ ip, nó lập tức phát một

thông điệp “LOGIN” cho toàn bộ client đã tham gia hội nghị biết.

Đối với các client không online sẽ tham gia hội nghị này bằng di động

thông qua SMS Gateway.

Message

SMS gateway

Di động

e. Nhắn sms cho di động:

SMS Gateway IP

Client 1

Module xử lý của Server

SMS Gateway IP ?

Đặc tả: Để gởi tin nhắn đến cho di động, client yêu cầu module xử lý

của service cho biết địa chỉ của SMS Gateway, khi nhận được địa chỉ của

SMS Gateway, client gởi các dòng message đến cho SMS Gateway theo định

96

Trần Thanh Long - Nguyễn Thành Nam

dạng mà SMS Gateway có thể hiểu được.

Nghiên cứu và xây dựng chương trình truyền thông đa phương tiện f. Thực hiện một voice call đến một client khác đang online trên mạng

Client 2

Các dòng âm thanh gởi đi

Client 1

Module xử lý của Server

Yêu cầu Server cho biết IP của Client 2

(gọi ra máy di động (hoặc máy để bàn) nếu client không online)

Online ?

IP của Client 2

Đ

PSTN gateway

(cid:131) Số điện thoại di động hoặc điện thoại để bàn (cid:131) IP của PSTN

Di động

Máy để bàn

gateway

S

Đặc tả: Client 1 (C1) yêu cầu module xử lý của service cho biết địa chỉ

của Client 2 (C2) để thực hiện một cuộc gọi đến C2. Nếu C2 đang online trên

mạng, module xử lý của service sẽ gởi về cho C1 địa chỉ IP của C2, C1 sử

dụng địa chỉ IP này để thiết lập một cuộc gọi qua mạng H.323 đến C2.

Trong trường hợp C2 không online trên mạng, module xử lý của

service sẽ gởi trả về cho C1 các thông tin: số điện thoại di động hoặc điện

thoại bàn của C2, địa chỉ của máy tính đóng vai trò là PSTN Gateway. Sau

97

Trần Thanh Long - Nguyễn Thành Nam

khi nhận được các thông tin này, C1 thiết lập cuộc gọi ra PSTN cho C2.

Nghiên cứu và xây dựng chương trình truyền thông đa phương tiện g. Thực hiện một cuộc hội nghị thoại với các user khác đang online trên

mạng (hỗ trợ cho các user không online tham gia hội nghị bằng di

Client 2

Thông điệp thoại

Client 1

Multipoint Control Unit

Yêu cầu thiết lập một cuộc hội nghị thoại

động hoặc điện thoại bàn)

Set up OK?

Thông điệp thoại

Thông báo thiết lập thành công

Đ

S

Thông điệp thoại

Thông báo thiết lập không thành công

Di động

Máy để bàn

PSTN

Đặc tả: Đây là tính năng kèm theo khi tổ chức hội nghị thông điệp. Khi

một client trong danh sách tham gia hội nghị yêu cầu hội nghị thoại, yêu cầu

này được gởi đến module xử lý của service và client này sẽ nhận được địa chỉ

IP của MCU trong hệ thống. Đồng thời chính client yêu cầu sẽ phát thông

điệp yêu cầu hội nghị thoại đến toàn thể client đang tham gia hội nghi. Khi

nhận được thông điệp này, nếu chấp nhận, các client sẽ gởi thông điệp yêu

cầu cho biết địa chỉ của MCU đến cho module xử lý của service. Module xử

lý của service sẽ gởi trả lời cho client biết địa chỉ IP của MCU.

Đối với những client đã biết được địa chỉ IP của MCU, client này sẽ

thiết lập cuộc gọi đến MCU theo địa chỉ thiết lập có dạng như sau: [room +

id@ địa chỉ của MCU] (ví dụ: room1@192.168.0.1 với 1 là số id của cuộc

hội nghị được quản lý bởi module xử lý của service và 192.168.0.1 là địa chỉ

98

Trần Thanh Long - Nguyễn Thành Nam

IP của MCU trong hệ thống). Tất cả các client trong cùng một cuộc hội nghị

Nghiên cứu và xây dựng chương trình truyền thông đa phương tiện sẽ có cùng một id, do đó, khi thực hiện cuộc gọi với địa chỉ được gọi theo

định dạng trên thì toàn thể các client đều tham gia vào cung một group do

MCU quản lý, từ đây, MCU sẽ nhận các luồng âm thanh và phát lại cho các

client khác trong group.

Khi tất cả các client đều thoát khỏi cuộc hội nghị, MCU sẽ tự xóa

group này đi.

PSTN gateway

Client 1

Tín hiệu thoại

Máy để bàn

Di động

PSTN Gateway IP

h. Thực hiện một cuộc gọi ra PSTN:

PSTN Gateway IP ?

Module xử lý của Server

Đặc tả: Để thực hiện một cuộc gọi ra PSTN, client yêu cầu module xử

lý của service cho biết địa chỉ IP của máy đang đóng vai trò là PSTN

Gateway trong hệ thống. Module xử lý của service sẽ gởi về cho client địa

chỉ của PSTN Gateway trong hệ thống. Client sẽ thực hiện cuộc gọi theo nghi

thức H.323 với địa chỉ đích có định dạng như sau: số điện thoại cần gọi @ địa

chỉ của PSTN Gateway (ví dụ như 1234@192.168.0.1). Sau khi thiết lập

thành công, tín hiệu thoại sẽ được client gởi đến cho PSTN Gateway và từ

99

Trần Thanh Long - Nguyễn Thành Nam

PSTN Gateway sẽ chuyển cho máy di động hoặc máy để bàn.

Nghiên cứu và xây dựng chương trình truyền thông đa phương tiện 4.

Thiết kế cơ sở dữ liệu: Dữ liệu của chương trình chỉ bao gồm các dữ liệu để quản lý user. Một

user gồm có các thông tin cần quản lý như sau: họ tên của user, tên tài khoản,

mật mã của tài khoản, địa chỉ email của user, số điện thoại để bàn, số điện

thoại di động của user.

Ngoài ra, khi một user sử dụng tài khoản của mình đăng nhập trong hệ

thống còn có thêm các thông tin về địa chỉ IP của máy mà user đang sử dụng

để đăng nhập vào hệ thống, tình trạng của user trong hệ thống, tên các tập tin

lưu trữ thông tin offline như message offline, voice, các thông báo của các

user khác và danh sách các user có trong contact list của user.

Dữ liệu được tổ chức thành hai bảng, một bảng dùng để lưu thông tin

của user và một bảng dùng để lưu danh sách contact list tương ứng với từng

user.

4.1. Các trường của bảng lưu thông tin user như sau:

Kiểu Mô tả

String String String String String Thuộc tính AccountName Password UserName Status IPAddress

Number Number String String Mobile Phone Email Voice

String Text

String Notify

100

Trần Thanh Long - Nguyễn Thành Nam

Tên user sử dụng để đăng nhập Mật mã dùng với tên đăng nhập trên Tên đầy đủ của user Tình trạng của user trong hệ thống Địa chỉ của máy mà user sử dụng để đăng nhập vào hệ thống Số điện thoại di động của user Số điện thoại cố định của user Địa chỉ email của user Tên tập tin lưu các dòng âm thanh được gửi offline Tên tập tin lưu các message offline của các user khác nhắn lại Tên tập tin lưu các thông báo offline của các user khác gởi đên

Nghiên cứu và xây dựng chương trình truyền thông đa phương tiện 4.2. Các trường của bảng lưu thông tin danh sách các user trong

contact list:

Thuộc tính Kiểu

ID AutoNumber

AccountName String

GroupName FriendName String String

ContactName String list ứng với trong contact

Mô tả Số thứ tự tăng tự động khi thêm một trường mới vào dùng để phân biệt các trường với nhau. Tên của account quản lý contact list này Tên của từng group trong contact list Tên của user trong contact list (cũng là tên đăng nhập) Tên FriendName trên

Lưu ý: Trường AccountName trong bảng này được tham chiếu đến

trương AccountName trong bảng thông tin user.

Thiết kế giao diện:

5. • Giao diện cấu hình: Sử dụng để cấu hình lại địa chỉ IP của các gateway

đang hoạt động trong hệ thống. Màn hình này được sử dụng để cấu hình

101

Trần Thanh Long - Nguyễn Thành Nam

lại địa chỉ các Gateway đang chạy trong hệ thống.

Nghiên cứu và xây dựng chương trình truyền thông đa phương tiện

• Giao diện login vào hệ thống với vai trò admin: Chỉ có duy nhất user

admin mới có quyền truy cập vào hệ thống bằng chương trình này.

• Giao diện chính của module server : Giao diện chính thể hiện thông tin

của user đang được chọn và danh sách toàn bộ user trong hệ thống.

• Giao diện quản lý các cuộc hội nghị: Quản lý các cuộc hội nghị hiện đang

diễn ra trong hệ thống: Trên giao diện này, người quản trị có thể xem

được hiện thời có bao nhiêu cuộc hội nghị đang diễn ra trong hệ thống.

Khi chọn vào một cuộc hội nghị, bên dưới sẽ xuất hiện các thông tin chi

102

Trần Thanh Long - Nguyễn Thành Nam

tiết về các thành viên tham gia trong hội nghị.

Nghiên cứu và xây dựng chương trình truyền thông đa phương tiện

• Màn hình cấu hình lại địa chỉ IP của server phục vụ cho hệ thống.

103

Trần Thanh Long - Nguyễn Thành Nam

• Màn hình login vào hệ thống tại ứng dụng client:

Nghiên cứu và xây dựng chương trình truyền thông đa phương tiện

• Giao diện của chính của ứng dụng Client: Trong cửa sổ thể hiện toàn bộ

danh sách các user nằm trong contact list của một user dưới dạng cây.

104

Trần Thanh Long - Nguyễn Thành Nam

• Màn hình đăng ký là một thành viên của hệ thống.

Nghiên cứu và xây dựng chương trình truyền thông đa phương tiện

• Màn hình cho biết các thông tin của user và cho phép thay đổi các thông

tin này. Tất cả các thông tin đều có thể được sửa đổi được ngoại trừ thông

tin liên quan đến AccountName là không có thể thay đổi.

• Màn hình gởi tin nhắn cho các client khác trong hệ thống. Có thể có nhiều

thể hiện của màn hình này nếu client đang trò truyện với nhiều thành viên

105

Trần Thanh Long - Nguyễn Thành Nam

khác trong hệ thống.

Nghiên cứu và xây dựng chương trình truyền thông đa phương tiện

• Màn hình gởi sms đến di động:

• Màn hình đưa ra các tin nhắn offline của các thành viên khác nhắn đến lúc

user đang offline. Những tin nhắn nào chưa được xem qua sẽ được tô xanh

lên. Khi xem xong, trong những lần sau thì tin nhắn này không được tô

đậm lên mà chỉ hiện bình thường. Đây là cách thức chương trình phân biệt

106

Trần Thanh Long - Nguyễn Thành Nam

giữa tin nhắn offline mới (chưa xem) với các tin nhắn cũ (đã xem rồi).

Nghiên cứu và xây dựng chương trình truyền thông đa phương tiện

• Màn hình thêm một user mới vào trong danh sách contact list.

• Màn hình thông báo cho một user khi có một user khác add chính user này

vào trong danh sách contact list. Trong màn hình này, group được thể hiện

dưới dạng combo box để người dùng có nhiều lựa chọn cho group mà user

này sẽ ở trong contact list. Trong trường hợp trong contact list của user đã

107

Trần Thanh Long - Nguyễn Thành Nam

tồn tại user add thì không có thông báo này.

Nghiên cứu và xây dựng chương trình truyền thông đa phương tiện

• Màn hình mời các client đang online trên mạng tham gia vào hội thoại

108

Trần Thanh Long - Nguyễn Thành Nam

• Màn hình thông báo cho user khi được mời tham gia vào hội nghị.

Nghiên cứu và xây dựng chương trình truyền thông đa phương tiện

• Màn hình hội nghị thông điệp có cho phép sử dụng kèm hội nghị thoại

• Màn hình gọi điện thoại ra ngoài hệ thống PSTN cho số máy để bàn hoặc

109

Trần Thanh Long - Nguyễn Thành Nam

số di động

Cách thực thi hệ thống:

Nghiên cứu và xây dựng chương trình truyền thông đa phương tiện 6. • Khởi động Service để service chạy nền, phục vụ cho hệ thống. Tiếp đến,

login vào hệ thống dưới quyền quản trị và cấu hình lại các thông số cho

service như địa chỉ IP của các Gateway, các Server trong hệ thống.

o Chuyển đến thư mục chứa tập tin thực thi của MIService, thực thi lệnh

sau để chạy service dưới dạng dịch vụ:

MIService –Service

Sau khi thực thi xong lênh trên, chuyển vào trình quản lý các service của hệ

thống, tim service có tên MIService và cho bắt đầu thực thi. Để dịch vụ này

có thể tự động chạy lúc hệ điều hành khởi động, xét kiểu khởi động (Startup

110

Trần Thanh Long - Nguyễn Thành Nam

Type) cho dịch vụ này là Automatic:

Nghiên cứu và xây dựng chương trình truyền thông đa phương tiện

• Sau khi service đã chạy và đã cấu hình, các client có thể sử dụng chương

trình client để log vào hệ thống.

7.

Cài đặt chương trình: Chương trình được cài đặt hoàn toàn bằng ngôn ngữ C++ trên môi

trường phát triển VC 6.0.

Thư viện hàm sử dụng thêm:

OpenH323: Download miễn phí trên trang www.OpenH323.org.

8.

Đánh giá kết quả xây dựng ứng dụng: Trong thời gian nghiên cứu và xây dựng chương trình, nhóm đã xây

dựng được cơ bản một số các chức năng cần thiết trong hệ thống, xây dựng

hoàn chỉnh server (gồm cả service) phục vụ cho hệ thống và client.

Xây dựng tốt các chức năng quản lý hệ thống như đăng nhập, xác thực

người dùng, quản lý tình trạng của người dùng, tạo mới một thành viên trong

111

Trần Thanh Long - Nguyễn Thành Nam

hệ thống v.v…

Nghiên cứu và xây dựng chương trình truyền thông đa phương tiện

Xây dựng hoàn chỉnh các ứng dụng về nhắn tin ngắn trong hệ thống

(instance message và text message conference).

Xây dựng hoàn chỉnh khả năng tương tác thoại giữa các thành viên

trong hệ thống như tạo cuộc gọi giữa hai thành viên đang online trong hệ

thống, gọi điện thoại cho di động hoặc máy để bàn thông qua sử dụng PSTN

Gateway. Tín hiệu thoại được nén theo chuẩn nén âm thanh G.711.

Nhóm đang cố gắng hoàn thành chức năng nhắn SMS cho điện thoại di

động thông qua sử dụng server là SMS Server v.3.1.7 được cung cấp trên

trang www.smsdriver.com nhưng vẫn còn một vài trục trặc nên chức năng

này hiện đang disable.

Chương trình hoạt động tốt trên môi trường mạng. Có thể triển khai

ngay để sử dụng trong thực tế.

Xây dựng được mô hình có tính mở cao, dễ dàng phát triển thêm để

hoàn chỉnh các mong muốn đề ra.

Tuy nhiên, với thời gian nghiên cứu ngắn nên nhóm cũng chưa cài đặt

các chức năng liên quan đến hình ảnh như trạm phát công, hội nghị truyền

hình là những chức năng nâng cao trong hệ thống. Đây là hướng phát triển

của hệ thống trong tương lai.

9. Hướng phát triển chương trình:

• Nghiên cứu cải tiến chất lượng của dịch vụ truyền thông đa phương

tiện.

• Phát triển chương trình, hỗ trợ thêm những chuẩn nén âm thanh có

tốc độ nhỏ hơn như G.723, G.729.

• Tích hợp thêm chức năng máy tự trả lời tự động để có thể nhận các

cuộc gọi gọi đến và lưu lại. Hỗ trợ người dùng check các cuộc gọi

này bằng cách đăng nhập hệ thống hoặc thông qua PSTN.

• Phát triển hội nghị truyền hình, hội nghị dữ liệu để tổ chức những

112

Trần Thanh Long - Nguyễn Thành Nam

cuộc hội thảo trên môi trường liên mạng

Nghiên cứu và xây dựng chương trình truyền thông đa phương tiện

• Phát triển hệ thống trạm phát công cộng, cho phép thu hình các

cuộc họp và nén thành dòng, phát trực tiếp hoặc phát lại theo yêu

cầu của thành viên trong hệ thống.

• Phát triển tính năng tự động thông báo đến điện thoại để bàn các tin

nhắn do các thành viên để lại. Thông báo khi nhận được mail mới

v.v…

• Nghiên cứu thêm về chất lượng dịch vụ của các dịch truyền thông

đa phương tiện khi thực hiện trên môi trường liên mạng và mạng

113

Trần Thanh Long - Nguyễn Thành Nam

internet.

Nghiên cứu và xây dựng chương trình truyền thông đa phương tiện

TỔNG KẾT

Với sự phát triển xã hội hiện nay, các sản phẩm truyền thông đa

phương tiện trực tuyến ngày càng được xã hội quan tâm hơn. Vấn đề phát

triển và cải thiện chất lượng dịch vụ của các sản phẩm truyền thông đa

phương tiện trực tuyến ngày càng được đặt nặng hơn buộc các nhà phát triển

phải luôn phải quan tâm đến việc cải thiện chất lượng dịch vụ cho sản phẩm

của mình.

Với những gì đã đạt nghiên cứu và trình bày trong luận văn này chưa

phải là hoàn chỉnh nhưng chúng em mong muốn những kết quả nghiên cứu

về lĩnh vực truyền thông đa phương tiện được trình bày trong này sẽ giúp

được cho các nhà phát triển sau này.

Chúng em mong muốn sẽ tiếp tục phát triển tiếp hệ thống này để sản

phẩm ngày một tốt hơn, đáp ứng được yêu cầu của xã hội.

Chúng em xin cảm ơn Thạc sĩ Huỳnh Văn Gia đã hướng dẫn chúng em

thực hiện đề tài này. Cám ơn toàn thể bạn bè đã giúp đỡ trong quá trình thực

hiện luận văn.

Thành phố Hồ Chí Minh, 7 – 2003

114

Trần Thanh Long - Nguyễn Thành Nam

Trần Thanh Long - Nguyễn Thành Nam.

Nghiên cứu và xây dựng chương trình truyền thông đa phương tiện

BẢNG THAM CHIẾU CÁC TỪ VIẾT TẮT

Admission Confirmation ACF

Acknowledgment ACK

Admission Reject ARJ

Address Resolution Protocol ARP

Admission Request ARQ

ARPA Advanced Research Projects Agency

Asynchronous Transfer Mode ATM

Bandwidth Change Confirmation BCF

Bose, Chaudhuri, and Hocquengham BCH

B-ISDN Broadband-Integrated Services Digital Network

Bandwidth Change Reject BRJ

Badwidth Change Request BRQ

Chanel Associated Signalling CAS

Common Chanel Signalling CCS

Conference Identifier CID

Common Intermediate Dormat CIF

Domain name Server DNS

DTMF Dual-Tone MultiFrequency

Full Intra Request FIR

File Transfer Protocol FTP

Gatekeeper GK

General Switched Telephone Network GSTN

Gateway GW

Internet Control Message Protocol ICMP

Institute of Electrical and Electronic Engineers IEEE

Internet Protocol IP

115

Trần Thanh Long - Nguyễn Thành Nam

Integrated Services Digital Network ISDN

Nghiên cứu và xây dựng chương trình truyền thông đa phương tiện ISO

International Standard Organization

ISP Internet Service Point

International telecommunication Union – Telecommunication ITU-T

Standardixation Sector

LAN Local Area Network

LCN Logical Channel Number

MC Multipoint Controller

NCU Multipoint Control Unit

MGCP Media Gateway Control Protocol

MP Multipoint Processor

MTP Message Transfer Part

NACK Negative Acknowledge

N-ISDN Narrow-band-Intgrated Services Digital Network

OSI Open System Interconnection

PBN Packet Based Network

PBX Privatee Branch Exchange

PDU Packet Data Unit

POTS Plain Old Telephone Service

PPP Point-To-Point Protocol

PSTN Public Switched Telephone Network

QCIF Quarter CIF

QOS Quality Of Service

RAS Registration, Admission, and Status

RIP Request In Progress

RIP Routing Internet Protocol.

RSVP Resource Reservation Protocol

RTP Real Time Protocol

RTCP Real Time Control Protocol

116

Trần Thanh Long - Nguyễn Thành Nam

SCCP Signalling Connection Control Part

Nghiên cứu và xây dựng chương trình truyền thông đa phương tiện SCN

Switched Circuit Network

Service Control Point SCP

Simple Gateway Control Protocol SGCP

Simple Mail Transfer Protocol SMTP

Simple Network Monitoring Protocol SNMP

SS No.7 Singalling System No.7

Service Switching Point SSP

Signal Transfer Point STP

Transport Control Protocol TCP

Telephone User Part TUP

User Datagram Protocol UDP

Voice Over IP VOIP

117

Trần Thanh Long - Nguyễn Thành Nam

Wide Area Network. WAN

Nghiên cứu và xây dựng chương trình truyền thông đa phương tiện

TÀI LIỆU THAM KHẢO

RFC 1889.

RFC 1890.

ITU-T Recommendation H.323 Series H

ITU-T Recommendation H.245

ITU-T Recommendation H.225.0

ITU-T Recommendation H.323

ITU-T Recommendation H.261

ITU-T Recommendation G.723.1

ITU-T Recommendation G.729

ITU-T Recommendation G.711

SMSDriverHelpENG_Rel_3_1_11.pdf

H323 Premier V2.2

OpenH323 Library

www.OpenH323.org

www.smsdriver.com

118

Trần Thanh Long - Nguyễn Thành Nam

www.comversens.com