Thứ Sáu, 28 tháng 2, 2014

Xây dựng chương trình thông báo kết quả học tập qua điện thoại

Thông báo kết quả học tập của học sinh qua điện thoại GVHD : Nguyễn Đức Thuần
Nếu người gọi nhấn một trong các phím 1, 2, 3, 5 thì sẽ được yêu cầu
nhập vào tháng muốn biết. Nếu nhấn phím 4 hay 6 thì sẽ được yêu cầu nhập vào
học kỳ muốn biết.
Bất cứ lúc nào, người gọi có thể nhấn phím * để trở về menu. Muốn kết
thúc cuộc gọi, ngoài cách nhấn phím * tại menu chọn lựa, người gọi có thể gác
máy như bình thường, lúc này hệ thống sẽ tự phát hiện ra , ngắt kết nối với cuộc
gọi hiện tại và tiếp tục chờ cuộc gọi khác đến. Nếu hệ thống phát hiện sau một
khoảng thời gian định trước (thời gian rỗi) mà không có một tác động nào từ
phía người gọi thì hệ thống cũng sẽ tự động ngắt kết nối.
SVTH : Bùi Danh Đạt Trang 5
Thông báo kết quả học tập của học sinh qua điện thoại GVHD : Nguyễn Đức Thuần
PHẦN 2
CƠ SỞ
CƠ SỞ
LÝ THUYẾT
LÝ THUYẾT
SVTH : Bùi Danh Đạt Trang 6
Thông báo kết quả học tập của học sinh qua điện thoại GVHD : Nguyễn Đức Thuần
Chương 1
GIAO TIẾP GIỮA ĐIỆN THOẠI
VÀ MÁY TÍNH
I. Sự cần thiết của modem :
Như chúng ta đã biết kỹ thuật điện thoại ra đời và phát triển rất sớm trước
kỹ thuật máy tính. Ngày đó, đường dây điện thoại được thiết kế chỉ để truyền
tín hiệu của tiếng nói có tần số của âm thanh. Dạng tín hiệu này thuộc loại tín
hiệu tương tự (analog) và thường gọi là sóng âm tần hình sin. Trong khi đó,
máy tính chỉ có thể xử lý các tín hiệu số (digital) có tần số cao. Nếu tín hiệu số
này được truyền trực tiếp trên đường dây điện thoại thì chúng sẽ bị suy giảm và
biến dạng. Vì thế, một thiết bị chuyển đổi qua lại giữa hai tín hiệu này đã ra đời,
gọi là modem. Công việc chuyển tín hiệu số của máy tính thành tín hiệu tương
tự của đường dây điện thoại được thực hiện bằng một số phương pháp mà
người ta gọi là điều chế (Modulation). Ngược lại, công việc chuyển tín hiệu
tương tự của đường dây điện thoại thành tín hiệu số của máy tính cũng được
thực hiện bằng một số phương pháp mà người ta gọi là giải điều chế
(Demodulation). Modem chính là viết tắt của 2 chữ Modulation và
Demodulation.
Ứng dụng của modem mà chúng ta thường thấy nhất là kết hợp với máy
tính để truy cập internet. Trong trường hợp này, mỗi đầu của đường dây điện
thoại sẽ nối vào một modem gắn vào máy tính. Nhờ đó chúng ta có thể truy
xuất được dữ liệu của máy kia (máy chủ). Còn ở đây, đối với công việc thông
báo qua điện thoại từ máy tính, ta chỉ cần nối một đầu dây điện thoại vào
modem gắn với máy tính tại trường học. Người gọi có thể sử dụng bất kỳ điện
thoại nào để gọi tới. Lúc này tín hiệu từ đường dây điện thoại sẽ được modem
chuyển đổi thành tín hiệu số và đưa vào máy tính để xử lý. Sau đó máy tính sẽ
phát trở lại các tín hiệu số (ví dụ như tiếng nói ở dạng số) cho modem để
SVTH : Bùi Danh Đạt Trang 7
Thông báo kết quả học tập của học sinh qua điện thoại GVHD : Nguyễn Đức Thuần
modem chuyển đổi thành các tín hiệu tương tự (tiếng nói ở dạng tương tự) và
truyền ngược trở lại người gọi. Nhờ đó , người gọi có thể nghe được.
II. Giao tiếp lập trình ứng dụng cho hệ thống điện thoại - TAPI
(Telephony Application Programming Interface) :
I. Một số khái niệm trong mô hình TAPI :
II.1.1. TAPI là gì ?
TAPI được phát triển bởi sự kết hợp của hai hãng Intel và Microsoft .
TAPI được thiết kế để truy xuất các dịch vụ điện thoại trên tất cả các hệ điều
hành Windows. Nói cách khác, TAPI là tập hợp các hàm đơn lẻ được Windows
cung cấp để hỗ trợ cho việc lập trình giao tiếp giữa điện thoại và máy tính thông
qua modem hoặc các thiết bị truyền thông . Với TAPI , người lập trình không
phải lo lắng về các tập lệnh của modem để khởi tạo nó hoặc phải chọn cổng
hoạt động cho modem.
Mục đích của TAPI là cho phép các nhà lập trình viết những ứng dụng mà
không cần quan tâm chi tiết đến thiết bị phần cứng. Ví dụ với modem, người lập
trình không cần biết modem loại nào, của hãng nào, tập lệnh của của modem là
gì, sử dụng cổng nối tiếp hay song song hay cổng USB, chỉ cần thiết bị phần
cứng đó có một TAPI driver gọi là TSP(Telephone Service Provider) do nhà
sản xuất cung cấp, mà thường khi cài thiết bị phần cứng này vào máy thì tất cả
các driver của nó đều được cài vào. Do đó chỉ cần thiết bị này hoạt động tốt thì
ứng dụng TAPI sẽ không gặp vấn đề gì.
TAPI hỗ trợ cả việc truyền số liệu lẫn tiếng nói ở nhiều loại thiết bị đầu
cuối khác nhau, hỗ trợ các kiểu kết nối phức tạp và các kỹ thuật quản lý cuộc
gọi như: tạo cuộc gọi, chờ cuộc gọi , hộp thư thoại, vv Các ứng dụng được
viết bởi TAPI có thể truy cập trực tiếp vào các dịch vụ trên đường dây điện
thoại. Các ứng dụng này có thể phát ra và nhận vào mọi tín hiệu của điện thoại.
Dù đường dây điện thoại truyền tín hiệu dạng tương tự hay dạng số thì ta
cũng cần một thiết bị giao tiếp giữa máy tính và đường dây điện thoại . Dĩ
nhiên, thiết bị giao tiếp đó phải có hỗ trợ TAPI TSP. Thiết bị này có thể là một
trạm ISDN , một bảng mạch hệ thống điện thoại hoặc đơn giản là một modem
SVTH : Bùi Danh Đạt Trang 8
Thông báo kết quả học tập của học sinh qua điện thoại GVHD : Nguyễn Đức Thuần
II.1.2. Chương trình ứng dụng TAPI :
Ứng dụng TAPI là ứng dụng mà có sử dụng giao tiếp lập trình hệ thống
điện thoại nhằm thực hiện một công việc gì đó. Ví dụ : phần mềm giả lập điện
thoại trong mạng điện thoại chuyển mạch công cộng (PSTN), phần mềm
gửi/nhận fax, hộp thư thoại, hệ thống trả lời tự động, điện thoại qua internet
(VoIP) vv
II.1.3. TAPI DLL (Dynamic link library - Thư viện liên kết động) :
Các thư viện này cùng với TAPI Server (Tapisvr.exe) là sự trừu tượng hóa
trong việc phân cách giữa người dùng và các nhà cung cấp dịch vụ điện thoại.
Một thư viện TAPI liên kết với TAPI Server để cung cấp một giao tiếp giữa 2
lớp (xem mô hình lập trình cho hệ thống điện thoại ở phần sau).
Có 3 thư viện liên quan tới TAPI : Tapi.dll, Tapi32.dll, Tapi3.dll . Mỗi thư
viện này đều có vài trò như nhau :
SVTH : Bùi Danh Đạt Trang 9
Ứng dụng TAPI
16-bit
Tapi.dll
Tapi32.dll
Ứng dụng TAPI
32-bit
Tapi32.dll
Ứng dụng TAPI3
32-bit
Tapi3.dll
MSP
TAPISVR.EXE
TSP
Registry
Telephony Control Panel,
Dialing Properties, vv
Thông báo kết quả học tập của học sinh qua điện thoại GVHD : Nguyễn Đức Thuần
Mỗi thư viện này tương ứng với một thời điểm phiên bản của TAPI. Các
ứng dụng 16-bit liên kết với Tapi.dll . Trong Windows 98/NT/2000, Tapi.dll sẽ
hoạt động bằng cách ánh xạ các địa chỉ 16-bit tới các địa chỉ 32-bit , đồng thời
chuyển các yêu cầu tới Tapi32.dll. Với các ứng dụng 32-bit thì chúng sẽ liên kết
với Tapi32.dll (TAPI phiên bản 1.4 - 2.2). Với TAPI 3.0 và 3.1 thì ứng dụng sẽ
liên kết với Tapi3.dll
II.1.4. MSP (Media Service Provider ) :
Trước hết MSP chỉ đến với TAPI 3, nó cho phép việc điều khiển một ứng
dụng qua phương tiện với cơ chế vận chuyển đặc biệt. Một MSP luôn luôn tồn
tại song song với một TSP (Tapi Service Provider). Một MSP cho phép việc
điều khiển phương tiện thông qua việc sử dụng thiết bị cuối và các giao tiếp
luồng được định nghĩa bởi TAPI
II.1.5. MSPI (Media Service Provider Interface) :
MSPI là tập hợp các giao tiếp và các phương thức được thực hiện bởi
MSP nhằm cho phép việc điều khiển một ứng dụng TAPI 3 trên phương tiện
trong suốt phiên liên lạc truyền thông.
II.1.6. TAPI Server :
TAPI Server được xem như kho trung tâm lưu trữ các thông tin về hệ
thống điện thoại trên máy người dùng. Tiến trình của dịch vụ này giám sát các
tài nguyên cục bộ và ở xa của hệ thống điện thoại, giám sát các ứng dụng TAPI,
và thực hiện một giao tiếp phù hợp với các TSP. (xem mô hình lập trình hệ
thống điện thoại ở phần sau để thấy mối liên hệ giữa TAPI Server và các thành
phần khác) .
Trong Windows 95, 98, NT, TAPI Server (Tapisrv.exe) sẽ chạy như một
tiến trình riêng biệt. Trong Windows 2000, nó chạy trong ngữ cảnh của
Svchost.exe . Khi ứng dụng nạp TAPI DLL và thực hiện công việc khởi tạo
xong, DLL sẽ xây dựng một kết nối tới TAPI Server. Sau đó TAPI Server sẽ
nạp các TSP.
SVTH : Bùi Danh Đạt Trang 10
Thông báo kết quả học tập của học sinh qua điện thoại GVHD : Nguyễn Đức Thuần
II.1.7. TSP (Telephony Service Provider ) :
TSP thực chất là một thư viện liên kết động hỗ trợ việc điều khiển các
thiết bị truyền thông thông qua một tập các hàm dịch vụ. Ứng dụng TAPI sử
dụng các lệnh được chuẩn hóa , và TSP điều khiển các lệnh đặc trưng mà cần
phải được trao đổi với thiết bị.
II.1.8. TSPI (Telephony Service Provider Interface ) :
TSP phải tạo ra một giao tiếp TSP phù hợp để thực hiện chức năng như
một nhà cung cấp dịch vụ trong môi trường hệ thống điện thoại. TSPI định
nghĩa ra các hàm ngoại mà được hỗ trợ bởi TSP.
II.1.9. Service Providers :
Đây được xem như bộ phận cung cấp các dịch vụ cần thiết để thực hiện
việc điều khiển thiết bị điện thoại một cách chi tiết. TSP cung cấp các điều
khiển cuộc gọi và MSP nếu có sẽ cung cấp điều khiển luồng qua phương tiện.
Tất cả các TSP thực thi bên trong tiến trình TAPISRV. Các bộ phận cung
cấp dịch vụ có thể tạo ra các thread ngay trong ngữ cảnh của TAPISRV khi cần
và được chắc chắn rằng không có tài nguyên nào mà chúng tạo ra bị hủy do
thoát khỏi một ứng dụng cá nhân nào đó. Khi cần TAPI Server có thể dịch các
câu lệnh của ứng dụng sang tập các lệnh phù hợp như là TSPI.
Các MSP thực thi ngay trong tiến trình của ứng dụng, cho phép phản hồi
nhanh một số yêu cầu trong việc điều khiển phương tiện. TAPI DLL cung cấp
một kết nối chặt chẽ tới MSPI.
SVTH : Bùi Danh Đạt Trang 11
Thông báo kết quả học tập của học sinh qua điện thoại GVHD : Nguyễn Đức Thuần
II. Mô hình lập trình cho hệ thống điện thoại :
- Ứng dụng TAPI sẽ nạp thư viện TAPI (TAPI DLL) vào và sử dụng
TAPI cho các nhu cầu truyền thông
- TAPI sẽ tạo ra một kết nối với TAPI Server. Ngoài ra, với TAPI phiên
bản 3 sẽ tạo thêm một đối tượng MSP và kết nối với nó bằng cách sử
dụng tập các câu lệnh được định nghĩa trước, hình thành nên MSPI
- Khi ứng dụng thực hiện một thao tác TAPI, thư viện TAPI sẽ làm một
số kiểm tra cần thiết , sau đó sẽ chuyển thông tin cho TAPISVR
- TAPISVR liên lạc với các tài nguyên khả dụng trên máy tính và giao
tiếp với các TSP bằng cách sử dụng TSPI
SVTH : Bùi Danh Đạt Trang 12
Ứng dụng
TAPI
TAPI DLL
(Dynamic Link Library)
MSP
(Media Service Provider)
TAPISVR
(TAPI Server)
TSP
(TAPI Service Provider)
Device
MSPI
Service Providers
TSPI
Thông báo kết quả học tập của học sinh qua điện thoại GVHD : Nguyễn Đức Thuần
- Những kết nối giữa TSP và MSP được diễn ra bằng cách sử dụng một
kết nối ảo thông qua TAPI DLL và TAPISVR
- TSP và MSP sẽ làm nhiệm vụ cung cấp những thông tin về các trạng
thái, chức năng của thiết bị khi có yêu cầu.
Kết quả của việc lập trình theo mô hình này là ứng dụng vẫn có thể hoạt
động khi thay thế thiết bị mới mà không cần thực hiện những thay đổi mã
nguồn.
III. Mô hình ứng dụng TAPI :
1. Khởi tạo TAPI (TAPI Initialization) :
- Khởi tạo môi trường truyền thông trên máy tính
- Việc khởi tạo là đồng bộ và không quay trở về cho tới khi thao tác
hoàn tất hoặc bị lỗi
- Nếu TAPISRV không đang chạy thì TAPI sẽ gọi nó
- TAPI thiết lập một kết nối cho tiến trình TAPISRV
- TAPISRV nạp vào các bộ phận cung cấp dịch vụ được chỉ định trong
registry và buộc chúng khởi tạo những thiết bị mà chúng hỗ trợ.
SVTH : Bùi Danh Đạt Trang 13
Khởi tạo TAPI
Khởi tạo TAPI
Điều khiển
phiên làm việc
Điều khiển
phiên làm việc
Điều khiển
thiết bị
Điều khiển
thiết bị
Điều khiển
phương tiện
Điều khiển
phương tiện
Kết thúc TAPI
Kết thúc TAPI
Thông báo kết quả học tập của học sinh qua điện thoại GVHD : Nguyễn Đức Thuần
- Lấy số phiên bản thích hợp cho ứng dụng TAPI, TAPI và bộ cung cấp
dịch vụ điện thoại . Công việc này bắt buộc phải làm ở TAPI 2.
- Kiểm tra và thu nhận thông tin liên quan đến các thiết bị khả dụng cho
ứng dụng TAPI
- Đăng ký thông điệp để nhận được các sự kiện liên quan tới những thay
đổi trạng thái của đường truyền.
2. Điều khiển phiên làm việc (Session Control) :
- Một phiên làm việc nói chung hay một cuộc gọi nói riêng là một kết
nối giữa hai hay nhiều địa chỉ. Kết nối này là động và các đối tượng
liên quan phải được tạo , quản lý và hủy khi không còn dùng. Trong
trường hợp đơn giản nhất thì đây là quá trình từ lúc tạo cho đến lúc
ngắt kết nối một cuộc gọi.
- Gồm 2 công việc chính :
• Điều khiển hoạt động của phiên làm việc : khởi tạo, duy trì và
kết thúc phiên làm việc
• Lấy thông tin của phiên làm việc : lấy những thông tin chi tiết
trong phiên làm việc.
3. Điều khiển thiết bị (Device Control) :
- Thiết lập và lấy thông tin của các thiết bị
• Network : là lớp giao vận cho việc truyền thông.
• Line : là một kết nối tới một network. Đó là một thiết bị vật lý
như bảng mạch fax, modem, hay cạc ISDN. Thiết bị có thể
không cần kết nối thẳng vào máy tính mà có ứng dụng TAPI
đang chạy
• Channel : là sự chia nhỏ của một line
• Address : một address đại diện cho một sự định vị trên
network. Mỗi line hay channel đều có một hay nhiều địa chỉ
liên kết với nhau
• Terminal : một nguồn hoàn trả lại cho một địa chỉ đặc trưng
và một kiểu phương tiện.
4. Điều khiển phương tiện (Media Control) :
SVTH : Bùi Danh Đạt Trang 14

Không có nhận xét nào:

Đăng nhận xét