Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 66 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
66
Dung lượng
1,21 MB
Nội dung
Trang EBOOKBKMT.COM Đề tài: Thiết kế chương trình truyền tiếng nói qua mạng LAN thơng qua trợ giúp cơng cụ SDK LỜI NĨI ĐẦU Trong năm gần đây, mạng máy tính ngày trở nên phổ biến Việc liên kết máy tính mơi trường mạng liên kết mạng lại với đem lại cho nhiều lợi ích cơng việc việc học tập nghiên cứu, giải trí Chúng ta sử dụng tài ngun sẵn có chia xẻ file server, printer, máy fax, mơi trường mạng cịn mơi trường thơng tin nhanh chóng tiện lợi nhờ vào chế truyền thông mạng : e-mail, www Bên cạnh đó, tốc độ phát triển máy tính PC nhanh chóng Các kỹ thuật đại giúp tạo máy PC với tốc độ tính tốn nhanh hơn, nhớ lớn khả xử lý ngày đa dạng giá thành ngày rẻ Một khả ưu việt máy PC hỗ trợ multimedia Các máy PC ngày giao tiếp với người không text mà kết hợp tất phương tiện khác tiếng nói, hình ảnh Việc đưa kỹ thuật multimedia vào ứng dụng truyền thông mạng giúp tạo nhiều ứng dụng phong phú Chẳng hạn hộp thư điện tử ngày khơng văn mà cịn bao gồm tiếng nói, hình ảnh Các trang web trở nên sinh động hẳn kèm theo kỹ thuật multimedia Bên cạnh đó, thiết kế ứng dụng tiện ích Video conference, voice mail Thông qua chương trình này, người sử dụng trao đổi thơng tin với tiếng nói Chương trình thực nhiều lĩnh vực thông tin điện thoại, viễn thơng, máy tính Tuy nhiên chưa áp dụng phát triển rọng rãi lĩnh vực thông tin khác hạn chế thiết bị Ngày nay, cơng nghệ thơng tin phát triển việc thực chương trình hồn tồn Ứng dụng nhiều lĩnh vực khác : •Việc dạy học từ xa •Việc chẩn đốn, chữa bệnh từ xa •Hội thảo, thảo luận theo nhóm •Cơng cụ trao đổi thơng tin hình ảnh âm Mục tiêu đồ án tốt nghiệp tìm hiểu mơ hình cơng nghệ truyền âm mạng máy tính, sở xây dựng ứng dụng truyền thơng âm thoại mạng cục Đồ án xây dựng thử nghiệm hệ thống cho phép trao đổi thông tin tiếng nói thoại, tương tác điểm – điểm mạng LAN Đồ án trình bày gồm chương với bố cục sau : Chương I : Tìm hiểu mơ hình điện thoại qua mạng, Từ đưa mơ hình thực thi đồ án Chương II: Giới thiệu chung giao thức truyền thông mạng Internet vào khảo sát cụ thể giao thức Chương III : Giới thiệu chuẩn mã hoá nén âm Chương IV : Tìm hiều mơi trường lập trình SDK Windows ứng dụng mạng Chương V : Thiết kế chương trình truyền tiếng nói qua mạng LAN thơng qua trợ giúp công cụ SDK Đánh giá kết thử nghiệm Phần kết luận : Nêu kết đề tài hướng nghiên cứu hướng phát triển Đề tài : Xây dựng ứng dụng truyền thông âm mạng cục EBOOKBKMT.COM Trang Việc nghiên cứu lý thuyết cách hệ thống xây dựng chương trình phần mềm địi hỏi phải đầu tư nhiều thời gian Với thời gian có hạn luận văn em không tránh khỏi thiếu sót, em mong dẫn thêm thầy cô bạn Nhân đây, em xin chân thành cám ơn đến PGS - TS Nguyễn Thị Hoàng Lan, người trực tiếp hướng dẫn em hoàn thành luận văn Em xin chân thành cám ơn thầy cô khoa Công nghệ thông tin Trường ĐH Bách Khoa HN, Trường ĐH Thủy Sản toàn thể bạn giúp đỡ em hồn thành luận văn CHƯƠNG I TÌM HIỂU MÔ HÌNH ĐIỆN THOẠI QUA MẠNG I.1 CÁC MÔ HÌNH ĐIỆN THOẠI I.1.1 MÁY TÍNH ĐẾN MÁY TÍNH Trong mô hình hai thuê bao sử dụng máy tính nối vào mạng IP thiết bị đầu cuối Tiếng nói mã hoá sau nén trình nhận liệu hoàn toán giống với quy trình ngược lại giải nén, giải mã phần mềm Trong mô hình đòi hỏi hai thuê bao cần phải có soundcard, microphone, loa phần mềm giống nhau.[1] Đề tài : Xây dựng ứng dụng truyền thông âm mạng cục Trang EBOOKBKMT.COM IP Máy tính Máy tính Hình I.1 : Mô hình PC - PC Máy tính Gateway I.1.2 MÁY TÍNH ĐẾN ĐIỆN THOẠI HOẶC ĐIỆN THOẠI ĐẾN MÁY TÍNH Trong mô hình này, thuê bao sử dụng máy tính nối mạng với mạng thuê bao sử dụng điện thoại mạng PSTN/ISDN/GSM/TDM Sử dụng gateway để chuyển tiếng nói mạng IP thành tiếng nói mạng PSTN trao đổi thông tin hai mạng Như vậy, máy tính phải đầy đủ thiết bị Soundcard, loa, microphone phần mềm thông qua server mạng IP để kết nối với mạng PSTN thông qua Geteway IP Điện thoại PSTN Hình I.2 : Mô hình Máy tính – Điện thoại PSTN Điện thoại IP Gateway PSTN Gateway Điện thoại I.1.3 ĐIỆN THOẠI ĐẾN ĐIỆN THOẠI Trong mô hình này, hai thuê bao sử dụng điện thoại bình thường mạng IP sử dụng trường hợp gọi đường dài Gateway sử dụng hai đầu để chuyển đổi liệu mạng với nhau.[1] Hình I.3 : Mô hình Điện thoại – Điện thoại I.2 YÊU CẦU ỨNG DỤNG TRUYỀN ÂM THANH TRÊN MẠNG LAN Trong phần phân tích yêu cầu xây dựng ứng dụng truyền âm mạng LAN : Từ ba mô hình em nhận thấy mô hình đòi hỏi trình nghiên cứu thiết bị phức tạp, đòi hỏi phải đầu tư công nghệ thực Nên đồ án thức theo mô hình PC – Đề tài : Xây dựng ứng dụng truyền thông âm mạng cục EBOOKBKMT.COM Trang PC, đơn giản không cần đầu tư thiết bị mới, tận dụng thiết bị có sẵn điều quan trọng thử nghiệm hoàn chỉnh phạm vi đồ án Vấn đề đặt với hệ thống mạng LAN, WAN với tài nguyên sẵn có xây dựng chương trình truyền tiếng nói với thời gian thực cho phép từ máy sang máy khác (point to point) với số yêu cầu thích hợp giống việc xử lý truyền tiếng nói thông tin liên lạc (điện thoại hữu tuyến) Chương trình sử dụng giao thức TCP/IP giao thức phổ biến tin cậy để kết nối truyền tiếng nói Do sử dụng giao thức TCP giao thức có liên kết nên dẫn đến độ trễ lớn với ứng dụng mạng LAN chấp nhận Ngay tiếng nói thu qua số xử lý mã hoá tiếng nói nén máy, tiếng nói truyền tới máy cần kết nối qua xử lý ngược so với lúc thu giải nén giải mã để phát loa Chương trình cho phép kết nối hai máy tạo mô hình điện thoại máy tính điện thoại hữu tuyến thông thường Bất kỳ máy mạng chế độ chờ hay chế độ chạy (background) gọi máy P-SERVER; máy chế độ gọi (active) gọi P-CLIENT Như máy mạng P-SERVER P-CLIENT Trên môi trường mạng, muốn nói chuyện người máy đó, tiến hành việc gọi liên kết Việc gọi liên kết tiến hành việc xác định địa IP máy mà cần liên kết Sau chờ việc xác lập liên kết Ở máy gọi có thông báo cho người sử dụng biết có người khác muốn nói chuyện Tùy theo người định có chấp nhận hay không Nếu chấp nhận liên kết xác lập hai bên tiến hành trao đổi thông tin với Trong trình trao đổi thông tin, máy truyền tiếng nói người sử dụng đồng thời nhận liệu âm máy liên kết Khi nói chuyện xong, liên kết bị hủy bỏ chương trình kết thúc Nếu máy gọi người trả lời sau thời gian chờ vượt giới hạn liên kết bị huỷ bỏ Vì liệu truyền nhận chương trình liệu dạng liên tục âm có yêu cầu đặt sau: Bảo đảm tính mạch lạc liệu Tiếng nói trình thông tin phải rõ ràng, liền lạc, không bị ngắt quãng Các yêu cầu đặt nhiệm vụ mà phải giải việc xây dựng chương trình Đối với liệu âm thanh, phải xem xét thông số trình lấy mẫu đầu vào Các thông số đặc trưng : tần số lấy mẫu, số bit biểu diễn cho điểm lấy mẫu, kênh lấy mẫu sử dụng kênh (mono) hay hai kênh (stereo) Do phải tổ chức kích thước buffer âm cho phù hợp với việc truyền nhận đạt tốc độ cao Một vấn đề khác đặt với liệu âm việc nhận phát đầu ra, phải quan tâm đến việc xử lý loại bỏ tín hiệu nhiễu giúp cho âm rõ ràng, trung thực Do việc truyền nhận liệu môi trường mạng nên phải quan tâm đến tốc độ, lưu lượng trao đổi liệu, thời gian truyền nhận để đưa cách giải cho phù hợp Ngoài vấn đề trên, số yêu cầu khác đặt cho ứng dụng : chế tạo lập liên kết, việc chọn lựa dạng format liệu, định Đề tài : Xây dựng ứng dụng truyền thông âm mạng cục EBOOKBKMT.COM Trang thông số thời gian Tất nhiệm vụ thực thi phải thực thông qua giao diện dễ dàng cho người sử dụng.[3] Trường hợp mở rộng hệ thống cho mạng Internet cần kết nối server mạng với tổng đài mạng PABX, yêu cầu đòi hỏi phức tạp cần có trang thiết bị để thử nghiệm Bởi đồ án em nghiên cứu cách thức truyền tiếng nói mạng nội CHƯƠNG II KHẢO SÁT CÁC GIAO THỨC TRUYỀN THÔNG II.1 KHÁI NIỆM CƠ BẢN GIAO THỨC TCP/IP Trong hệ thống mạng Internet, máy có tên địa IP (Internet Protocol) Tên hay địa IP xác định máy hệ thống mạng Internet Giữa tên máy địa IP chuyển đổi thông qua hàm Địa IP biểu diễn số 32 bits Mỗi giao diện mạng nút có hỗ trợ ngăn xếp IP gán địa IP Địa IP gồm phần : số mạng(netid) số máy chủ (hostid) Những bits quan trọng dùng để xác định số lượng bits dùng cho netid hostid Có lớp địa xác định A,B,C,D E Trong đó, lớp A,B,C chứa địa gián Lớp D dành riêng cho kỹ thuật Multicasting sử dụng Đề tài : Xây dựng ứng dụng truyền thông âm mạng cục Trang EBOOKBKMT.COM giao thức đặc biệt để truyền thông điệp đến nhóm nút chọn lọc Lớp E dành riêng cho ứng dụng tương lai.[5] Hình II.1 Các lớp đại IP Hình II.2 TCI/IP mô hình OSI Netid nhận dạng cho mạng riêng biệt Các kiểu lớp địa IP cho thấy số lượng mạng số lượng nút lớp khác Bảng cho thấy số lượng mạng số lượng nút lớp địa : Lớp địa A B Số lượng mạng 127 16.383 Số lượng nút 16.777.241 65.534 Đề tài : Xây dựng ứng dụng truyền thông âm mạng cục Trang EBOOKBKMT.COM C 2.097.151 254 Mạng lớp A dùng cho mạng diện rộng Trường netid có bits nên có 127 mạng Mạng lớp B mạng có kích thước trung bình thích hợp cho tổ chức có quy mô lớp vừa Mạng lớp C dùng quan nhỏ, mạng có không 254 nút Con số 32 bits biểu thị chữ số thập phân tương ứng giá trị byte tạo thành địa IP Những số thập phân cách dấu chấm (.) Một ví dụ tên máy địa IP máy : Hostname : viethung IP Address : 192.168.0.55 II.1.1 KHAÙI NIỆM SOCKET Socket đơn vị cấu trúc truyền thông chiều Chúng đọc hay ghi lên Tuy nhiên socket thành phần mối máy mạng máy tính thao tác đọc ghi thao tác trao đổi liệu ứng dụng nhiều máy khác Socket điểm kết nối cuối cho phép ứng dụng gắn vào mạng Khái niệm socket cung cấp thư viện chứa tất hàm yêu cầu cho chương trình mạng Khi ứng dụng yêu cầu dịch vụ mạng, gọi trình tự tập hợp thư viện để quản lý hoạt động mạng Hai loại socket có sẵn stream datagram.[5] Những socket stream dùng cho TCP (Transmission Control Protocol), socket datagram dùng UDP (User Datagram Protocol) Máy A Port Máy B Mối nối Port TCI/IP Interface Hình II.3 Các socket port mối nối TCP/IP Số hiệu cổng 11 13 Mô tả Reserved Management Entry Remote Job Entry Echo Discard Systat Daytime Đề tài : Xây dựng ứng dụng truyền thông âm mạng cục Trang EBOOKBKMT.COM 15 17 20 21 23 25 37 42 49 53 80 102 103 104 111 139 160-223 Netstat Quoted(quote of the day) FTP data FTP control Telnet SMTP Time Host name server Login host protocol Domain name server World wide web HTTP ISO-TSAP x.4000 X.4000 sending server Sun RPC NetBIOS session source Reserved Ghi chuù : Trị số cổng ứng dụng : - Các ứng dụng chuẩn : – 999 - Các ứng dụng không chuẩn : 1000 – 64000 II.1.2 GIAO THỨC IP Internet protocol (IP) dạng giao thức truyền tin thiết kế cho mạng chuyển mạng gói Vai trò IP tương đương với vai trò tầng mạng mô hình OSI Giao thức IP đảm nhiệm việc chuyển gói mạch liệu (datagram) từ địa nguồn đến địa đích Địa IP có địa cố định (4 byte) dùng để xác định trạm làm việc tham gia vào việc truyền, nhận liệu Trong trường hợp mạng truyền tin truyền gói liệu có kích thức nhỏ, giao thức IP đảm nhiệm chức chia nhỏ gói liệu có kích thước lớn trước truyền gộp chúng lại chúng sau nhận được.[5] Giao thức IP thiết kế với chức chuyển gói bit, gọi internet datagram từ địa nguồn đến địa đích Đây giao thức theo kiểu không liên kết, nghóa giai đoạn thiết lập liên kết trước truyền liệu, chế bảo đảm thông tin tới đích an toàn, chế điều khiển luồng liệu Trên thực tế việc thông báo lỗi đường truyền thực nhờ giao thức khác có tên ICMP( Internet Control Message Protocol) Địa IP nói trên, chuỗi bit có độ dài byte, phân chia làm lớp bit dùng làm định danh lớp địa Đề tài : Xây dựng ứng dụng truyền thông âm mạng cục EBOOKBKMT.COM Trang II.2 GIAO THỨC TCP Giao thức TCP giao thức dùng cho tầng tầng IP Đối với mô hình OSI, ta thấy tầng TCP có vai trò tương ứng với tầng giao vận tầng phiên Khác với IP, TCP giao thức có liên kết (connection oriented), nghóa thiết phải có giai đoạn thiết lập liên kết giữ cặp thực thể TCP trước chúng có trao đổi liệu với Giao thức TCP cung cấp khả truyền liệu cách an toàn thực thể mạng Nó cung cấp chức nhằm kiểm tra tính xác liệu gửi đến gửi lại liệu có lỗi xảy ra.[5] Đơn vị liệu TCP gọi segment Trong segment có cặp tham số số hiệu cổng trạm nguồn số hiệu cổng trạm đích Mỗi tiến trình ứng dụng trạm truy cập dịch vụ TCP thông qua cổng Một cổng kết hợp với địa IP tạo thành socket mạng Dịch vụ TCP cung cấp nhờ liên kết logic cặp socket, socket tham gia liên kết với nhiều socket xa khác Trước truyền liệu chúng thiết lập liên kết nhu cầu truyền liệu liên kết giải phòng Mỗi ứng dụng TCP gồm hai phần client server Lưu đồ sau minh họa bước cần thiết để ứng dụng client server giao tiếp với : Đề tài : Xây dựng ứng dụng truyền thông âm mạng cục EBOOKBKMT.COM Trang 10 Hình II.4 Tạo kết nối client server theo giao thức TCP II.2.1 CÁCH THỨC CÀI ĐẶT ỨNG DỤNG TCP SERVER Ứng dụng TCP server làm việc theo qui trình sau: Gọi hàm socket để tạo socket Gọi hàm bind để kết buộc socket với port, giao thức ứng dụng chuẩn có số định nghóa sẵn winsock cho port giao thức Gọi hàm listen để chờ đến có client nối vào port Khi có client nối vào hàm listen trả điều khiển về, ứng dụng server gọi hàm accept để xác nhận mối nối client Gọi hàm gửi hay nhận liệu để trao đổi thông tin với client, ví dụ send, recv Sau hoàn tất trình trao đổi liệu, ứng dụng server gọi hàm closesocket để đóng socket tạo Đề tài : Xây dựng ứng dụng truyền thông âm mạng cục Trang 52 EBOOKBKMT.COM Lưu đồ giải thuật modul giải mã sau : Bắt đầu Buffer nhận có liệu sai Kết thúc Lấy khung tiếng nói từ buffer nhận Mã hoá theo phương pháp PCM Chép khung tiếng nói vào buffer phát Hình V.5 Lưu đồ giải thuật modul mã hoá V.2.5 MODUL TRUYỀN, NHẬN ÂM THANH Modul có nhiệm vụ giao tiếng máy tính với mạng IP Sử dụng giao thức TCP/IP Khi buffer truyền có liệu cần truyền đi, modul truyền kích hoạt liệu cần truyền có thêm header thông tin cần thiết khác Modul truyền có mức ưu tiên bình thường Khi có liệu đến, winsock gửi thông báo đến chương trình, chương trình nhận thông báo kích hoạt modul nhận Modul nàu có nhiệm vụ nhận liệu, kiểm tra, loại bỏ liệu thừa với header Sau chuyển liệu vào buffer nhận kích hoạt modul giải mã Đề tài : Xây dựng ứng dụng truyền thông âm mạng cục Trang 53 EBOOKBKMT.COM Lưu đồ giải thuật modul truyền nhận : Bắt đầu Buffer truyền có liệu sai Kết thúc Lấy khung tiếng nói từ buffer truyền Truyền theo giao thức TCP Hình V Lưu đồ giải thuật modul truyền Bắt đầu Có goi tin chưa nhận sai Kết thúc Dùng giao thức TCP Lấy gói tin Kích hoạt modul giải mã Hình V.7 Lưu đồ giải thuật modul nhận V.3 THIẾT KẾ GIAO DIỆN CHƯƠNG TRÌNH CPHONE Chương trình thực với điều kiện hai máy đàm thoại phải chạy chương trình ứng dụng Giao diện chương trình : Đề tài : Xây dựng ứng dụng truyền thông âm mạng cục EBOOKBKMT.COM Trang 54 Hình V.8 Giao diện chương trình CPhone Khi muốn bắt đầu đàm thoại, người sử dụng vào menu kết nối click vào nhập IP Điều gọi hàm tạo kết nối hai máy PC, hàm hiển thị cửa sổ yêu cầu người sử dụng nhập vào IP máy cần kết nối Sau nhập xong click connect, thông điệp yêu cầu kết nối gửi đến máy cần kết nối Đề tài : Xây dựng ứng dụng truyền thông âm mạng cục Trang 55 EBOOKBKMT.COM Hình V.9 Nhập địa IP Nếu tín hiệu chưa cho phép trình đàm thoại Khi có tín hiệu phản hồi hàm khởi động sound card, card mạng socket gọi thực cuốc đàm thoại Hình V.10 Cuộc đàm thoại thực Đề tài : Xây dựng ứng dụng truyền thông âm mạng cục EBOOKBKMT.COM Trang 56 IV.4 KẾT QUẢ THỰC NGHIỆM&NHẬN XÉT ĐÁNH GIÁ CHƯƠNG TRÌNH IV.4.1 KẾT QUẢ THỰC NGHIỆM Môi trường thử nghiệm đồ án mạng LAN, sử dụng công nghệ Ethernet 10 Mbps Hiện truyền liệu máy tính mạng LAN ít, phần lớn tài nguyên dải thông mạng chưa sử dụng Phần giải thông lại lớn để truyền tín hiệu tiếng nói, lý nên độ trễ point – to – point mạng nhỏ tương đối đồng (hầu hết < 10ms), giá trị nhỏ so với mức chấp nhận 200ms Vì chất lượng đàm thoại trường hợp phụ thuộc vào chất lượng sound card IV.4.2 ĐÁNH GIÁ KẾT QUẢ Qua thử nghiệm, em thấy chất lượng tiếng nói đầu khác biệt so với chất lượng tiếng nói đầu vào, chất lượng âm sau truyền chấp nhận Như du đánh giá qua cảm nhận tai mà nên chưa thể khảng định chất lượng tiếng nói sau truyền có đạt tiêu chuẩn cho phép hay không Nếu sử dụng máy đo thông số liên quan đến chất lượng tiếng nói, phương pháp đảm bảo đánh giá xác chất lượng tiếng nói điều kiện chấp nhận Nhưng luận văn dừng lại mức độ đồ án tốt nghiệp điều kiện không cho phép nên chưa có thiết bị đo thông số tiếng nói Vì vậy, chưa thể đánh giá chất lượng âm cách xác So với số dịch vụ truyền âm thoại : VoIP (dịch vụ 171) , Internet Telephony chất lượng âm tốt Vì mô hình Cphone ứng dụng mạng cục nên tốc độ đường truyền cao, mặt khác khoảng cách ngắn Tuy nhiên độ trễ lớn song với mạng cục vấn đề chấp nhận Còn dịch vụ 171 hay Internet Telephony chất lượng âm giai đoạn đầu nói chung không đạt mong muốn người sử dụng chất lượng âm cải thiện đáng kể đặc biệt ứng dụng ngày đưa vào phục vụ sống Đề tài : Xây dựng ứng dụng truyền thông âm mạng cục Trang 57 EBOOKBKMT.COM KẾT LUẬN Đồ án tốt nghiệp hoàn thành nhiệm vụ đề phạm vi cho phép Do điều kiện thời gian trình độ hạn chế nên đồ án dừng lại mức nghiên cứu số phương pháp mã hoá tiếng nói số giao thức truyền tín hiệu mạng Internet TCP/IP, UDP Trên sở xây dựng phần mềm thử nghiệm truyền tiếng nói thoại mạng LAN Đồ án em sử dụng hàm có sẵn môi trường SDK từ xây dựng ứng dụng CPhone liên kết hai máy lại thực trình trao đổi âm Phần thử nghiệm dừng lại việc xây dựng ứng dụng truyền tiếng nói thực thể PC theo giao thức TCP/IP tiếng nói mã hoá theo phương pháp PCM nên tỷ số nén tốc độ truyền chưa cao Mặt khác, đánh giá chất lượng tiếng nói theo phương pháp chủ quan nên chưa khảng định điều độ trễ chất lượng tiếng nói sau truyền Thế đạt đồ án chủ yếu nhằm giúp em nắm bắt vững mặt lý thuyết nắm quyền kiểm soát, quyền điều khiển ứng dụng thực tế, kết qua trọng hữu ích cho hoạt động nghiên cứu sau cho dù nội dung luận văn phần thử nghiệm chưa đầy đủ hoàn chỉnh mong muốn Hiện nay, mô hình truyền tiếng nói mạng(VoIP) nghiên cứu phát triển mạng giới nói chung nước ta nói riêng, vấn đề mới, đặc biệt ứng dụng cho mạng Internet Qua thử nghiệm cho thấy hướng nghiên cứu tiếp tục nâng cấp để đưa vào sử dụng, trước tiên với mô hình nhỏ dùng cho mạng cục phòng ban Từ phát triển đưa vào sử dụng diện rộng nhăm tăng chất lượng đàm thoại, giảm giá thành gọi để thương mại hoá sản phẩm Về lâu dài nghiên cứu, xây dựng giải mã cho ngôn ngữ tiếng việt; nghiên cứu ghép thêm modul nhằm tạo đàm thoại mật để đảm bảo an toàn gọi Đề tài : Xây dựng ứng dụng truyền thông âm mạng cục Trang 58 EBOOKBKMT.COM PHẦN PHỤ LỤC Các từ viết tắt, ký hiệu : AbS : Analysis by Synthesis ADPCM : Adaptive Differential Pulse Code Modulation ATC : Adaptive Transform Coding PABX : Private Automatic Branch eXchange PCM : Pulse Code Modulation GMS : Global System for Mobile telecommucations ETSI : European Telecommunication Standards Institude GSM : Global System for Mobile telecommunication protocol MCI : Media Control Interface TCP : Transmission Control Protocol UDP : User Datagram Protocol IP : Internet protocol RIFF : Resource Interchange File Format IMA : Interactive Multimedia Association ICMP : Internet Control Message Protocol LPC : Linear Prediction Coding OSI : Open System Interconnection Đề tài : Xây dựng ứng dụng truyền thông âm mạng cục EBOOKBKMT.COM Chương trình nguồn : Đoạn chương trình thực hiên chức đợi (chạy nền) UINT Server(LPVOID param) { const PORT=1967; const NO_FLAGS_SET=0; const MAXBUFLEN=500; WSADATA Data; SOCKADDR_IN SvrAddr,CIntAddr; SOCKET SvrSock,CIntSock; int AddrLen=sizeof(SOCKADDR_IN); int status,nbyte,nbsend; char bufferrecv[MAXBUFLEN],buffersend[80]; //Khởi tạo Windows Socket DLL status=WSAStartup(MAKEWORD(1,1),&Data); if(status!=0) { MessageBox(NULL,"ERROR: WSAStartup unsuccessful.", "WSAStartup error!",MB_ICONEXCLAMATION); return(-1); } memset(&SvrAddr,0,sizeof(SvrAddr)); SvrAddr.sin_port=htons(PORT); SvrAddr.sin_family=AF_INET; SvrAddr.sin_addr.s_addr=htonl(INADDR_ANY); SvrSock=socket(AF_INET,SOCK_STREAM,0); if(SvrSock==INVALID_SOCKET) { MessageBox(NULL,"ERROR: Socket unsuccessful.","Socket error !", MB_ICONEXCLAMATION); WSACleanup(); return(-1); } //Kết buộc socket với PORT bind(SvrSock,(LPSOCKADDR)&SvrAddr,sizeof(SvrAddr)); //Chờ client nối vào listen(SvrSock,1); //Xác nhận mối nối có client nối vào CIntSock=accept(SvrSock,(LPSOCKADDR)&CIntAddr,&AddrLen); if(CIntSock==INVALID_SOCKET) { MessageBox(NULL,"ERROR: Connect unsuccessful.","Connect error !", MB_ICONEXCLAMATION); closesocket(CIntSock); WSACleanup(); return(-1); } else Đề tài : Xây dựng ứng dụng truyền thông âm mạng cục Trang 59 EBOOKBKMT.COM { nbyte=recv(CIntSock,bufferrecv,MAXBUFLEN,NO_FLAGS_SET); if((nbyte==0)||(nbyte==SOCKET_ERROR)) { MessageBox(NULL,"Please the end conversation !","The conversation !",MB_ICONEXCLAMATION); closesocket(CIntSock); WSACleanup(); return(-1); } else MessageBox(NULL,bufferrecv,"The coversation !",MB_ICONINFORMATION); strcpy(buffersend,"Receivered the signal Please begin the conversation."); nbsend=send(CIntSock,buffersend,strlen(buffersend)+1,NO_FLAGS_SET); if(nbsend!=(int)strlen(buffersend)+1) { closesocket(CIntSock); WSACleanup(); return(0); } return(0); } } Đoạn mã thực kết nối hai máy : // Tạm dừng trạng thái chờ SuspendThread(Server); // Chuyển sang trạng thái gọi m_DestAddrStr=dialog.m_DestAddrStr; if(m_DestAddrStr=="") { MessageBox("ERROR: Hostname is unknown !","Error hostname !", MB_ICONEXCLAMATION); return(-1); } const PORT=1967; const NO_FLAGS_SET=0; const MAXBUFLEN=256; WSADATA Data; SOCKADDR_IN SockAddr; unsigned long DestAddr; int status,nbyte,nbrecv; char SendBuf[50],RecvBuf[MAXBUFLEN]; // Khởi tạo Windows Socket DLL status=WSAStartup(MAKEWORD(1,1),&Data); if(status!=0) { MessageBox("ERROR :WSAStartup unsuccessf", "Error WSAStarup !",MB_ICONEXCLAMATION); Đề tài : Xây dựng ứng dụng truyền thông âm mạng cục Trang 60 EBOOKBKMT.COM return(-1); } // Nhận địa internet, chuyển sang dạng byte DestAddr=inet_addr(m_DestAddrStr); //Khởi tạo cấu trúc SOCKADDR_IN SockAddr.sin_addr=*(struct in_addr*)&DestAddr; SockAddr.sin_port=htons(PORT); SockAddr.sin_family=AF_INET; // Tạo socket hSock=socket(AF_INET,SOCK_STREAM,0); if(hSock==INVALID_SOCKET) { MessageBox("ERROR: Socket unsuccessful.","Error Socket", MB_ICONEXCLAMATION); WSACleanup(); return(-1); } // Nối vào máy chạy ứng dụng server status=connect(hSock,(LPSOCKADDR)&SockAddr,sizeof(SockAddr)); if(status==SOCKET_ERROR) { MessageBox("ERROR: Connect unsuccessful !","Error connect !", MB_ICONEXCLAMATION); closesocket(hSock); WSACleanup(); return(-1); } else { strcpy(SendBuf,"There is the signal send to your computer !"); nbyte=send(hSock,SendBuf,strlen(SendBuf)+1,NO_FLAGS_SET); nbrecv=recv(hSock,RecvBuf,MAXBUFLEN,NO_FLAGS_SET); if((nbrecv==0)||(nbrecv==SOCKET_ERROR)) { MessageBox("Please end the conversation !", "The conversation",MB_ICONEXCLAMATION); closesocket(hSock); WSACleanup(); return(-1); } else MessageBox(RecvBuf,"The conversation",MB_ICONINFORMATION); } // Keát thúc trạng thái gọi // Khôi phục lại trạng thái chờ ResumeThread(Server); return(1); } Đoạn chương trình thực chức ghi âm từ micro void CWAveIn::recordWaveData() Đề tài : Xây dựng ứng dụng truyền thông âm mạng cục Trang 61 EBOOKBKMT.COM { HWAVEIN hWaveIn; HWND hwndApp=NULL; HGLOBAL hWaveHdr; LPWAVEHDR lpWaveHdr; HMMIO hmmio=NULL; UINT wResult; HANDLE hFormat=NULL; WAVEFORMAT pFormat; DWORD dwDataSize=1000; // Mở thiết bị wave để phát if (!waveInOpen((LPHWAVEIN)&hWaveIn, WAVE_MAPPER, (LPWAVEFORMATEX)&pFormat, (LONG)waveInProc, DWORD(this), CALLBACK_FUNCTION)) { MessageBox( "Failed to open waveform input device.", NULL,MB_OK | MB_ICONEXCLAMATION); LocalUnlock(hFormat); LocalFree(hFormat); mmioClose(hmmio, 0); return; } // Allocate and lock memory for the waveform data hData = GlobalAlloc(GMEM_MOVEABLE | GMEM_SHARE, dwDataSize ); if (!hData) { MessageBox( "Out of memory.", NULL, MB_OK | MB_ICONEXCLAMATION); mmioClose(hmmio, 0); return; } if ((lpData =(HPSTR)GlobalLock(hData)) == NULL) { MessageBox( "Failed to lock memory for data chunk.", NULL, MB_OK | MB_ICONEXCLAMATION); GlobalFree(hData); mmioClose(hmmio, 0); return; } // Allocate and lock memory for the header hWaveHdr = GlobalAlloc(GMEM_MOVEABLE | GMEM_SHARE, (DWORD) sizeof(WAVEHDR)); if (hWaveHdr == NULL) { GlobalUnlock(hData); GlobalFree(hData); MessageBox("Not enough memory for header.", NULL, MB_OK | MB_ICONEXCLAMATION); Đề tài : Xây dựng ứng dụng truyền thông âm mạng cục Trang 62 EBOOKBKMT.COM return; } lpWaveHdr = (LPWAVEHDR) GlobalLock(hWaveHdr); if (lpWaveHdr == NULL) { GlobalUnlock(hData); GlobalFree(hData); MessageBox( "Failed to lock memory for header.", NULL, MB_OK | MB_ICONEXCLAMATION); return; } // After allocation, set up and prepare header lpWaveHdr->lpData = lpData; lpWaveHdr->dwBufferLength = dwDataSize; lpWaveHdr->dwFlags = 0L; lpWaveHdr->dwLoops = 0L; waveInPrepareHeader(hWaveIn, lpWaveHdr, sizeof(WAVEHDR)); // Gởi khối liệu đến thiết bị phát wResult = waveInAddBuffer(hWaveIn, lpWaveHdr, sizeof(WAVEHDR)); if (wResult = 0) { waveInUnprepareHeader(hWaveIn, lpWaveHdr, sizeof(WAVEHDR)); GlobalUnlock( hData); GlobalFree(hData); MessageBox( "Failed to write block to device", NULL, MB_OK | MB_ICONEXCLAMATION); return; } wResult = waveInStart(hWaveIn); if (wResult != 0) return; } Đoạn chương trình play liệu âm void CWAveIn::playbackWaveData() { HWAVEOUT hWaveOut; HWND hwndApp =NULL; HGLOBAL hWaveHdr; LPWAVEHDR lpWaveHdr; HMMIO hmmio=NULL; UINT wResult; HANDLE hFormat=NULL; WAVEFORMAT pFormat; DWORD dwDataSize=1000; // Mở thiết bị wave để phát if (waveOutOpen((LPHWAVEOUT)&hWaveOut, WAVE_MAPPER, (LPWAVEFORMATEX)&pFormat, Đề tài : Xây dựng ứng dụng truyền thông âm mạng cục boä Trang 63 EBOOKBKMT.COM (LONG)hwndApp, 0L, CALLBACK_WINDOW)) { MessageBox( "Failed to open waveform output device.", NULL,MB_OK | MB_ICONEXCLAMATION); LocalUnlock(hFormat); LocalFree(hFormat); mmioClose(hmmio, 0); return; } // Allocate and lock memory for the waveform data hData = GlobalAlloc(GMEM_MOVEABLE | GMEM_SHARE, dwDataSize ); if (!hData) { MessageBox( "Out of memory.", NULL, MB_OK | MB_ICONEXCLAMATION); mmioClose(hmmio, 0); return; } if ((lpData =(HPSTR)GlobalLock(hData)) == NULL) { MessageBox( "Failed to lock memory for data chunk.", NULL, MB_OK | MB_ICONEXCLAMATION); GlobalFree(hData); mmioClose(hmmio, 0); return; } // Allocate and lock memory for the header hWaveHdr = GlobalAlloc(GMEM_MOVEABLE | GMEM_SHARE, (DWORD) sizeof(WAVEHDR)); if (hWaveHdr == NULL) { GlobalUnlock(hData); GlobalFree(hData); MessageBox("Not enough memory for header.", NULL, MB_OK | MB_ICONEXCLAMATION); return; } lpWaveHdr = (LPWAVEHDR) GlobalLock(hWaveHdr); if (lpWaveHdr == NULL) { GlobalUnlock(hData); GlobalFree(hData); MessageBox( "Failed to lock memory for header.", NULL, MB_OK | MB_ICONEXCLAMATION); return; } // After allocation, set up and prepare header lpWaveHdr->lpData = lpData; Đề tài : Xây dựng ứng dụng truyền thông âm mạng cục boä Trang 64 EBOOKBKMT.COM lpWaveHdr->dwBufferLength = dwDataSize; lpWaveHdr->dwFlags = 0L; lpWaveHdr->dwLoops = 0L; waveOutPrepareHeader(hWaveOut, lpWaveHdr, sizeof(WAVEHDR)); // Gởi khối liệu đến thiết bị phát wResult = waveOutWrite(hWaveOut, lpWaveHdr, sizeof(WAVEHDR)); if (wResult != 0) { waveOutUnprepareHeader(hWaveOut, lpWaveHdr, sizeof(WAVEHDR)); GlobalUnlock( hData); GlobalFree(hData); MessageBox( "Failed to write block to device", NULL, MB_OK | MB_ICONEXCLAMATION); return; } } Đề tài : Xây dựng ứng dụng truyền thông âm mạng cục Trang 65 Trang 66 EBOOKBKMT.COM TÀI LIỆU THAM KHẢO [1] ANNEXE VOIP-SLIDE Raj Jain http://www.cis.ohio-state.edu/~jain/ [2] AUDIO COMPRESSION THEOGRY http://www.owlnet.rice.edu/~elec301/projects99/adda/index.html [3] BUILDING INTERNET APPLICATION WITH VISUAL C++ Kate Gregogy - Paul Robichaux - Brady Merkel - Markus Pope [4] DIGITAL SIGNAL PROCESSING John G.Proakis - Dimitris G.Manolakis - Prentice Hall [5] INTERNET WORKING VỚI TCP/IP Nhà xuất giáo dục, 2001 [6] Thư viện MSDN Đề tài : Xây dựng ứng dụng truyền thông âm mạng cục