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
Hình 8-Cấu hình Phone to Phone sử dụng 2 Gateway kết nối qua Internet
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 Bu Đ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
Ex.11 Ex.15 Ex.16 Ex.12 ViPGa te VipGat e Mạng Internet PST N CO line 8345467 1.0.4.20 4 1.0.4.20 2
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-Sơ đồ 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 ;
• 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; Line Interface Codec DSP DSP RAM Control Bus Control Processor Shared RAM Codec Data DRAM PC ISA Bus DAT A IRG PB X
• 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 lu giữ ở đó.Khi phát một file lu 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-Hình Sơ đồ khối của giải pháp bộ đệm
Telephone Decoder Decorder DataStreaming DataStreaming Channel 3 Firmware Buffer Channel 3 Firmware Buffer Echo Cancel Channel 1 A na lo g V oic e Analog Voice Dialogic Voice Board
Play Record PCM PCM Application Voice Over IP Voice Over IP 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-Hì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 để lu dữ liệu trong bộ đệm ứng dụngđể xử lý.
Dữ liệu thoại nhận đợc từ Internet (đọc ) đợc lu 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 để lu dữ liệu đến bộ đệm của driver (Nếu không có dữ liệu ,driver thoại chèn khoảng lặng vào bộ đệm firmware ). Driver thoại sau đó
Internet gateway Application
Rescource1 Rescource3 Rescource2 Rescource4 CO or PBX Internet Channel1 Channel 2 PCM Record PCM Play PCM Play PCM Record Telephone Telephone
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-Hai 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 ).
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ẻ.
internet Application Buffer Use r Me mory Inte rne t Gate way Appication Firmware Buffer Use r Me mory Dialogic Voice Board Driver Buffer Use r Me mory Telephone Application Buffer Use r Me mory Inte rne t Gate way Appication Firmware Buffer Use r Me mory Dialogic Voice Board Telephone internet
Dữ liệu thoại nhận đợc từ mạng telephone (ghi ) đợc lu 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ẻ để lu 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 lu trong bộ nhớ chia sẻ.Việc đọc đợc khởi tạo se dụng hàm dx_playiottdata() .Driver định vị địa chỉ trong bộ nhớ chia sẻ nơi dữ liệu đợc lu ,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 trng 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-Cấu trúc phần mềm VIPGate.
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:
Truyền dữ liệu Dữ liệu điều khiển TCP Dữ liệu kiểm tra RTCP -tín hiệu thoại RTP Điều khiển ,xử lý cuộc gọi Nhận chuông Thu phát tín hiệu DTMF mã hoá Nhận âm báo bận Nén tín hiệu thoại GSM 6.1.0 L&H Codec DSP Group True Speech codec Mạng IP PSTN
Nhân tham số Khởi động
Giao diện với người xử dụng
Tín hiệu thoại Tín hiệu điều khiển
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 TCP tuy nhiên chiếm thời gian nhỏ đáp ứng đợc yêu cầu sử lý thời gian thực của tín hiệu thoại. Giao thức RTCP dùng để kiểm tra quá trình chuyển dữ liệu , thống kê số gói đã gửi đi và số gói đã nhận đợc.
8.4.3 Đặc tính kỹ thuật của VIPGate8.4.3.1 Tính năng và yêu cầu kỹ thuật 8.4.3.1 Tính năng và yêu cầu kỹ thuật
VIPGate làm cầu nối giữa mạng PSTN và mạng Internet ,thực hiện việc chuyển dạng PCM G.711 sang dạng tốc độ thấp và truyền tải qua mạng Internet .
Yêu cầu đối với nền PC Hệ điều hành : Window NT CPU: Pentium 200 MHz (trở lên) RAM :>=32 MB
Modem : >= 33.6 kbps