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 để 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.
I. Giao tiếp lập trình ứng dụng cho hệ thống điện thoại - TAPI (Telephony
Application Programming Interface) :
I.1. Một số khái niệm trong mô hình TAPI :
I.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
I.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 ...
I.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 :
Ứ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 ...
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
I.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
I.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.
I.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.
I.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ị.
I.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.
I.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.