8.1.1 tổng quan
Tiêu chuẩn
Một số tiêu chuẩn về quy trình phát triển phần mềm bao gồm:
ISO 9000-9002;
Unified Process;
• Rational RoseTM
Công cụ phát triển phần mềm hướng đối tượng được sử dụng rộng rãi trên thế giới do khả năng hỗ trợ toàn bộ quy trình phát triển phần mềm .Ngoài ra ,nó còn hỗ trợ quy trình phát triển thống nhất (Unified Process).
Card Dialogic
Chi tiết về phần cứng này sẽ được trình bày trong mục sau
• Dialogic’s SDK (software Development Kit)
Bộ thư viện phát triển phần mềm của Dialogic được cung cấp cùng với card phần cứng giúp cho người phát triển có thể khai thác được các tính năng của card một cách tương đối rễ dàng.
Ngôn ngữ lập trình Visual C++ 6.0
Ngôn ngứ lập trình được sử dụng là Visual C++ vì nó là một ngôn ngữ được dùng rộng rãi trong công nghiệp
• Sơ đồ cấu hình hệ phát triển :
Hình 8-17Cấu hình Phone to Phone sử dụng 2 Gateway kết nối qua Internet
Phạm Việt Dũng lớp DTTH1 K40 Trường Đại học Bách khoa Hà Nội 90
Ex.11 Ex.15 Ex.16 Ex.12 ViPGa te VipGat e Mạng Internet CO line 8345467 1.0.4.20 4 1.0.4.20 2
8.1.2 Cấu trúc phần cứng :
Trong mô hình chế tạo thử nghiệm Gateway tại phòng Chuyển Mạch Viện Khoa Học Kỹ Thuật Bưu Điện phần cứng card gắn trên PC là card Dialogic D/41H .Đây là card sử dụng kiến trúc vi xử lý kép có chức năng xử lý tín hiệu của một DSP và chức năng tính toán logic và thao tác với số liệu của một bộ vi điều khiển đa dụng 80186.Với cách tiếp cận này ,do bảng mạch có thể tự xử lý các tính toán ỏ mức thấp nên tải trên máy chủ giảm .Vì vậy,việc phát triển các ứng dụng mạch hơn trở nên dễ dàng hơn.Kiến trúc này xử lý các sự kiện thời gian thực ,quản lý dòng số liệu trên máy chủ (thời gian phản ứng của hệ thống nhanh hơn ) ,giảm yêu cầu xử lý ở máy chủ ,xử lý DTMF và báo hiệu thoại và cho DSP thực hiện xử lý báo hiệu cho cuộc gọi tới .
Mỗi trong bốn giao diện dây thuê bao alalog trên bảng mạch D/41H nhận tiếng nói ở dạng analog và báo hiệu thoại từ mạng PSTN .Mỗi giao diện dây thuê bao sử dụng lẫy nhấc đặt máy có độ tin cậy cao (dùng công nghệ solid state nên không có tiếp xúc cơ khí )và mạch phát hiện chuông theo tiêu chuẩn FCC-phần 68 loại B .Mạch phát hiện chuông này hoạt động chính xác ngay cả khi có dao động điện thế trong mạng .Mỗi giao diện còn có mạch bảo vệ chống điện áp cao và thay đổi môi trường của mạng và cho phép chương trình ứng dụng nhấc máy vào bất cứ lúc nào trong khi đổ chuông mà không làm hỏng bảng mạch.
Hình 8-18Sơ đồ khối card D/41H
Giao diện điện thoại có một đường âm thanh (on-hook audio path ) để phát hiện thông tin chủ gọi .Nó còn có thể phát hiện tone nhấn số ngay cả khi hạ máy .Khả năng này cho phép bảng mạch hoạt động với PBX.
Tín hiệu thoại tới (chuông ,dòng điện mạch vòng ) được xử lý bởi giao diện đường thuê bao và truyền tới bộ xử lý qua bus điều khiển .Bộ xử lý thông báo trình ứng dụng về trạng thái báo hiệu và hướng dẫn phần giao diện đường thuê bao gửi báo hiệu (nhấc /đặt máy ) ra mạng thoại.
Tín hiệu tiếng nói alalog nhận từ mạng được bộ giao diện đường thuê bao lọc và làm sạch và đưa vào mạch CODEC .CODEC lọc , lấy mẫu và số hoá tín hiệu âm tần analog vào và gửi tín hiệu đã được số hoá sang bộ DSP của Motorola.
Dựa trên firmware của SpringWare cài đặt trong SRAM ,bộ DSP thực hiện phân tích tín hiệu và một số hoạt động khác như sau :
Điều khiển khuếch đại tự động (Automatic gain Control ) để bù cho dao động của mức tín hiệu âm tần đầu vào ;
Line Interface Codec DSP DSP RAM Control Bus Control Processor Shared RAM Codec Data DRAM PC ISA Bus DAT A IRG PB X
• sử dụng thuật toán ADPCM (Adaptive Differential Pulse Code Modulation) hoặc PCM (Pulse Code Modulation )để nén tín hiệu thoại đã được số hoá và để tiết kiệm đĩa;
• phát hiện tone –DTMF ,MF, hoặc tone đơn hoặc tone kép được định nghĩa bởi trình ứng dụng ;
• phát hiện khoảng lặng nhằm xác định xem đường dây có im lặng không và chủ gọi không trả lời.
Đối với số liệu ra ,bộ DSP thực hiện hoạt động sau: • dãn số liệu âm thanh (đã được nén )cho playback;
• điều chỉnh âm lượng và tốc độ playback theo yêu cầu của trình ứng dụng hoặc người sử dụng .
• tạo tone –DTMF,MF hoặc tone đa dụng được trình ứng dụng định nghĩa . • bộ xử lý kép còn thực hiện quay số và giám sát trạng thái cuộc gọi.
• truyền tín hiệu nhấc máy tới mạng thoại. • quay số ra ngoài.
• giám sát và báo kết quả :đường bận hoặc nghẽn ;chặn bởi nhà vận hành mạng ;rung chuông ,không ai nhấc máy ;hoặc nếu nhấc máy thì do người ,máy trả lời điện thoại,máy făx hay modem trả lời.
Trong khi ghi âm, bộ DSP sử dụng tốc độ số hoá từ 24kbps đến 64 kbps theo yêu cầu của trình ứng dụng cho chất lượng tốt nhất và kích thước hiệu quả nhất .Tôc độ số hoá được chọn cho từng kênh và có thể được thay đổi khi bắt đầu ghi hoặc phát .Tiếng nói sau khi qua xử lý bởi DSP được truyền tới máy chủ PC và được lưu giữ ở đó.Khi phát một file lưu trên đĩa ,bộ xử lý lấy thông tin thoại từ máy chủ PC và gửi tới bộ DSP .Bộ DSP chuyển đổi một file sang tiếng nó số hoá .Bộ DSP gửi tiếng nó dạng số và báo hiệu trả lời tới CODEC .CODEC chuyển sang tín hiệu dạng analog để truyền trong mạng thoại.
Báo hiệu (nhấc /đặt máy ,chuông ...)được gửi tới bộ xử lý và truyền tới trình ứng dụng qua RAM 2 cổng và ISA Bus của máy chủ PC.
Bộ vi xử lý điều khiển tất cả hoạt động của bảng mạch D/41H qua bus nội bộ ,dịch và thực hiện các câu lệnh từ máy chủ PC .Nó xử lý các sự kiện thời gian thực ,quản lý dòng số liệu tới máy chủ PC,làm tăng nhanh thời gian đáp ứng của hệ thông.
Trao đổi thông tin giữa bộ vi xử lý và máy chủ PC được thực hiện qua RAM chung 2 cổng .RAM đóng vai trò bộ đệm vào ra do đó tăng hiệu suất truyền file từ /đến đĩa.RAM được nối với maý chủ PC qua bus ISA.Tất cả hoạt động được thực hiện với ngắt nhằm đáp ứng yêu cầ về thời gian thực của hệ thống .Khi khởi tạo hệ thống
,firmware của SpringWare được tải từ máy chủ PC xuống RAM mã /số liệu và RAM DSP .Cơ chế tải firmware làm cho việc nâng cấp cải tiến được dễ dàng hơn.
8.2 Giải pháp thiết lập bộ đệm .
Một board thoại 4 kênh của Dialogic (ví dụ như D41H ) có bốn tài nguyên xử lý thoại, thường được sử dụng cho 4 kênh đọc /ghi thoại tương tự .
Giải pháp bộ đệm định lại tài nguyên xử lý thoại và gán kênh 1 và 2 để đọc ,kênh 3 và 4 để ghi, từ đó cho phép hai cổng thoại song công.
Dữ liệu thoại PCM (ghi và đọc riêng biệt ) từ một ứng dụng Gateway Internet được gửi thẳng đến các tài nguyên trên board ,nơi nó được xử lý và đưa ra như tín hiệu thoại analog tiêu chuẩn .Ngược lại ,một tín hiệu thoại analog tiêu chuẩn nhận được từ mạng telephone (CO hoặc PBX) được phân chia bởi board thoại thành dữ liệu đọc và ghi và được gửi thẳng đến ứng dụng Gateway .
Một ứng dụng Internet GateWay điển hình thực hiện các chức năng sau:
• Lấy dữ liệu thoại từ Internet ,chuyển từ dữ liệu thoại IP sang PCM, và chuyển dữ liệu PCM đến board thoại nơi nó được đọc ra ở máy điện thoai.
• Ghi dữ liệu thoại analog từ điện thoại, chuyển nó đến ứng dụng ,đổi từ PCM sang dữ liệu thoại IP ,và chuyển dữ liệu IP lên Internet .
Hình 8-19Hình Sơ đồ khối của giải pháp bộ đệm
T e l e p h o n e D e c o d e r D e c o r d e r D a ta S tr e a m i n g D a ta S tr e a m i n g C h a n n e l 3 F ir m w a r e B u ffe r C h a n n e l 3 F ir m w a r e B u ffe r E c h o C a n c e l C h a n n e l 1 A na lo g V oic e A n a lo g V o ic e D ia lo g ic V o ic e B o a r d P la y R e c o r d P C M P C M A p p lic a t io n V o ic e O v e r I P V o ic e O v e r I P In te rn et
Chất lượng của Internet Telephony GateWay được cải thiện bởi khả năng truyền dữ liệu thoại của nó giưã board thoại Dialogic và ứng dụng nhanh
hết mức có thể .Có hai phương pháp chuyển dữ liệu thoại: luồng UIO (phương pháp 1 ) và luồng đọc ghi trực tiếp-PRDS (phương pháp 2 ).
Hình 8-20Hình Gateway cơ bản
8.2.1 Phương pháp truyền dữ liệu qua 3 bộ đệm.
Luồng UIO là một phương án thuộc giải pháp bộ đệm (hình 3 ) .Dữ liệu thoại nhận được từ mạng thoại (ghi ) được ghi vào bộ đệm firmware của board thoại .Driver thoại sau đó điều khiển việc chuyển dữ liệu từ bộ đệm firmware đến một bộ đệm của driver .Các bộ đệm Driver được tạo ra trong bộ nhớ của người dùng sử dụng hàm
dx_setparm() , và có thể được gán bất kỳ giá trị nào trong khoảng 256 byte đến 1
KB.Trong quá trình ghi ,khi bộ đệm driver đã đầy ,driver thoại gọi hàm write() của người dùng (được chỉ ra trong hàm dx_setuio()).Thông thường , hàm write() được sử dụng để lưu dữ liệu trong bộ đệm ứng dụngđể xử lý.
Dữ liệu thoại nhận được từ Internet (đọc ) được lưu vào trong bộ đệm ứng dụng .Trong khi đọc , khi driver thoại cần dữ liệu, một hàm read() của người dùng (được chỉ ra trong hàm dx_setuio() ) được sử di\ụng để lưu dữ liệu đến bộ đệm của driver (Nếu
I n t e rn e t g a te w a y A p p l i c a ti o n R e s c o u r c e 1 R e s c o u rc e 3 R e s c o u rc e 2 R e s c o u rc e 4 C O o r P B X In te rn e t C h an n e l1 C h a n n e l 2 P C M R e c o rd P C M P la y P C M P la y P C M R e c o r d T e le p h o n e T e le p h o n e
không có dữ liệu ,driver thoại chèn khoảng lặng vào bộ đệm firmware ). Driver thoại sau đó chuyển dữ liệu đến bộ đệm firmware nơi nó được xử lý và gửi đi khỏi board thoại đến mạng telephone.
Trễ tổng thể qua Internet GateWay có thể được giảm bớt nhờ điều chỉnh cỡ bộ đệm của cả firmware và driver .Để hoạt động tối ưu ,cỡ của bộ đệm driver phải được đặt ở giá trị ít nhất gấp đôi cỡ bộ đệm firmware. Ví dụ khi sử dụng cỡ bộ đệm firmware là 512 byte và cỡ bộ đệm driver là 1.5kb thì trễ xấp xỉ 225 ms.
Hình 8-21Hai phương pháp truyền dữ liệu
Tốc độ vi xử lý của máy chủ cũng như các chương trình cùng chạy đồng thời sẽ có ảnh hưởng đến khả năng giá trị các bộ đệm có thể đặt thấp đến đâu .Các thử nghiệm ban đầu chỉ ra cỡ tối thiểu cho bộ đệm driver là 512 và cỡ tối thiểu của bộ đệm firmware là 256 với vi xử lý pentium (90Mhz hoặc cao hơn ).
in t e r n e t
A p p lic a tio n B u ffe r
U s e r M e m o ry In te rn e t G a te w a y A p p ic a ti o n F ir m w a r e B u ffe r U s e r M e m o ry D ia lo g i c V o i c e B o a rd D r iv e r B u ffe r U s e r M e m o ry T e le p h o n e
A p p lic a tio n B u ffe r
U s e r M e m o ry In te rn e t G a te w a y A p p ic a ti o n F ir m w a r e B u ffe r U s e r M e m o ry D i a l o g ic V o i c e B o a rd T e le p h o n e in t e r n e t
8.2.2 Phương thức truyền dữ liệu qua hai bộ đệm.
Theo hình (3) luồng đọc ghi trực tiếp (PRDS ) không sử dụng bộ đệm driver như trong phương pháp 1 .Thay vào đó ,một khu vực bộ nhớ chia sẻ (cũng được gọi là bộ đệm ứng dụng ) được tạo ra và được truy nhập bởi cả ứng dụng và driver .Bộ nhớ chia sẻ bao gồm một mào đầu (header) và có thể có đến 32 khối nhớ , mỗi khối nhớ tương đương với cõ của bộ đệm firmware .Các hàm API được sử dụng để cung cấp bộ nhớ chia sẻ.
Dữ liệu thoại nhận được từ mạng telephone (ghi ) được lưu vào trong board thoại trong một bộ đệm firmware .Việc ghi được khởi tạo sử dụng hàm
dx_reciottdata() .Các điều khiển của driver thoại chuyển dữ liệu từ bộ đệm firmware
đến bộ nhớ cha sẻ .Khi mà bộ đệm firmware đã đầy ,driver định vị trí trong bộ nhớ chia sẻ để lưu dữ liệu ,chuyển dữ liệu,sau đó thông báo cho ứng dụng bằng một event.
Dữ liệu thoại nhận được tử Internet (đọc ) được lưu trong bộ nhớ chia sẻ.Việc đọc được khởi tạo sưe dụng hàm dx_playiottdata() .Driver định vị địa chỉ trong bộ nhớ chia sẻ nơi dữ liệu được lưu ,sau đó chuyển dữ liệu đến bộ đệm firmware .Ví dụ ,sử dụng cỡ bộ đệm firmware là 240 byte ,trễ xấp xỉ là 125 ms .Bằng cách đặt cỡ của bộ đệm firmware là 120 byte ,trễ được giảm xuống còn khoảng 85 ms.
8.3 Triệt tiếng vọng
Đặc tính triệt tiếng vọng của giải pháp bộ đệm đáp ứng được ác yêu cầu đặc trưng của GateWay Internet Telephony . Trong môi trường Internet , tiếng vọng được tạo ra trong GateWay và trong mạng thoại có thể bị trễ .Bộ triệt tiếng tiên tiến của Dialogic sẽ triệt các tiếng vọng bị trễ đến 16ms. các cải tiến khác bao gồm việc xử lý không tuyến tính và tăng cường việc phát hiện nhiều người cùng nói.
8.4 Phần mềm VIPGate8.4.1 Giới thiệu chung 8.4.1 Giới thiệu chung
Phần mềm VIPGate được xây dựng dựa trên phần mềm demo Phone IP kèm theo Card Dialogic D/41H.Do đây là card đa dụng thế hệ cũ sử dụng trong Voice Mail không phải là card chuyên dụng cho VoIP nên chúng không được tích hợp chuẩn H.323 vào phần cứng của bảng mạch. Bản thân Card chỉ hỗ trợ nén PCM 64kb (theo luật A hoặc µ)nên không thích hợp với việc truyền tín hiệu thoại trên mạng Internet .Vì vậy phần mềm VIPGate phải thực hiện hầu hết các chức năng của một Gateway VoIP như báo hiệu ,nén ,giải nén và giao tiếp.Các công việc chính của nhóm phát triển phần mềm là : • Viết chương trình xử lí báo hiệu cuộc gọi như chuông ,bận nhấc hạ máy ... • Phát triển bộ nén thoại tốc độ thấp theo chuẩn G.723.1
• phát triển phần truyền số liệu qua TCP/IP. • tích hợp CODEC tốc độ thấp vào VIPGate • phát triển phần xử lý bộ đệm cho 2 kênh thoại • lập giao diện thân thiện
8.4.2 Cấu trúc chương trình
8.4.2.1 Điều khiển xử lý cuộc gọi
Hình Thể hiện cấu trúc phần mềm VIPGate 3.0 . Thông qua API của Dialogic module này thực hiện lệnh lấy các sự kiện của từng kênh thoại trên card D41/H qua đó thiết lập trạng thái và điều khiển thực hiện các hoạt động tương ứng .Các trạng thái chính của kênh như sau:
Đầu tiên kênh ở trạng thái rỗi và đợi tín hiệu chuông .Khi có tín hiệu chuông từ tổng đài cấp đến kênh chuyển sang trạng thái đợi tín hiệu DTMF chứa số máy bị gọi .
Số máy bị gọi nhận được sẽ được truyền sang phía GateWay đối phương , đồng thời cho phép mã hoá tín hiệu thoại trên card theo chuẩn G.711.
Khi nhận được âm báo bận từ tổng đài gửi tới cuộc gọi sẽ được kết thúc.
Hình 8-22Cấu trúc phần mềm VIPGate.
Phạm Việt Dũng lớp DTTH1 K40 Trường Đại học Bách khoa Hà Nội 104
T r u y Ò n d ÷ l i Ö u D ÷ l i Ö u ® i Ò u k h i Ó n T C P D ÷ l i Ö u k i Ó m t r a R T C P -t Ý n h i Ö u t h o ¹ i R T P § i Ò u k h i Ó n ,x ö l ý c u é c g ä i N h Ë n c h u « n g T h u p h ¸ t t Ý n h i Ö u D T M F m · h o ¸ N h Ë n © m b ¸ o b Ë n N Ð n t Ý n h i Ö u th o ¹ i G S M 6 . 1 . 0 L & H C o d e c D S P G ro u p T r u e S p e e c h c o d e c M ¹ n g I P P S T N N h © n t h a m s è K h ë i ® é n g G i a o d i Ö n v í i n g ê i x ö d ô n g T Ý n h i Ö u t h o ¹ i T Ý n h i Ö u ® i Ò u k h i Ó n Cửa sổ hiển thị trạng thái v cà ảnh báo hệ thống Cửa sổ hiển thị Các chức năng điều khiển hệ thống
8.4.2.2 Nén Tín hiệu thoại.
Tín hiệu thoại sau khi được mã hoá G.711 thành luồng tín hiệu 64kbit/s tiếp tục được nén thành luồng tín hiệu thấp hơn. Các chuẩn nén có thể xử dụng là:
• Lernout & Hauspie (L&H) 4.8 kbit/s • GSM 6.10 13kbit/s
• DSP Group True Speech 8 kbit/s • G.723.1 (5.6 hoặc 6.3 kbit/s)
8.4.2.3 Điều khiển truyền dữ liệu trên mạng IP
Có hai phương thức truyền dữ liệu được sử dụng:
Dữ liệu báo hiệu được truyền theo giao thức TCP . Giao thức này bảo đảm truyền đầy đủ , chính xác thông tin sang Gateway đối phương.
Tín hiệu thoại sau khi được mã hoá , nén xuống tốc độ thấp sẽ được truyền trên mạng theo giao thức RTP. Dữ liệu truyền theo giao thức này có độ chính xác không bằng