0
Tải bản đầy đủ (.doc) (153 trang)

TRUYỀN THOẠI GIỮA CÂC PC TRÍN MẠNG LAN:

Một phần của tài liệu TÌM HIỂU CÔNG NGHỆ VOIP XÂY DỰNG MÔ HÌNH TRUYỀN THOẠI PC TO PC ( PHẦN NHẬN ) (Trang 144 -149 )

Kết nối truyền thoại giữa câc đầu cuối PC trín mạng LAN được thực hiện thông qua lớp TCP/IP, theo đó câc gói thoại được chuyển qua câc soket trín đầu cuối PC.

Để đơn giản cho quâ trình lập trình hệ thống mạng vă không phải quan tđm đến câc lớp giao thức mạng ở bín dưới, hệ thống truyền thoại qua mạng LAN được thiết kế sử dụng câc hăm lập trình trong ứng dụng lập trình VB6.0 trín Windows API theo mô hình client server.

Qui trình thiết lập kết nối vă truyền nhận dữ liệu trín socket

Theo mô hình được mô tả trín, khi thực thi chương trình, câc đầu cuối sẽ mở socket để chờ kết nối đến. Khi có yíu cầu thiết lập kết nối, tín hiệu chuông được thu trín câc file *.wave sẽ được phât ra loa để thông bao cho thuí bao có cuộc gọi đến.

Nếu phía bị gọi đồng ý chấp nhận cuộc gọi đến, soundcard bắt đầu thực thi câc quâ trình thu tín hiệu thoại để chuyển ra bộ đệm phât. Quâ trình thu thoại trín soundcard sẽ được ngừng lại khi phât hiện có sự

Socket () Tạo socket

bind() Định tín cho socket

listen()

Kiểm tra kết nối từ client Chờ yíu cầu kết nối từ client

Accept()

Tạo một socket mới để chấp nhận kết nối, trong khi kết nối ban đầu tiếp tục chờ kết

nối mới

Send()/Receive() Thu phât dữ liệu

Closesocket()

Đóng socket Closesocket()Đóng socket Send()/Receive()

Thu phât dữ liệu Socket () Tạo socket Connect() Kết nối đến server

xuất hiện của câc gói chứa khoảng lặng, lúc năy soundcard sẽ chờ nhận câc gói thoại ở đầu cuối xa để phât ra loa.

Quâ trình thu phât giữa câc đầu cuối PC sẽ được thực hiện liín tục bằng việc sử dụng câc message thông bâo sự kiện của Window dựa trín trạng thâi của socket. Khi soundcard thu đầy bộ đệm, chương trình sẽ nhận được message yíu cầu phât gói thoại đi, tương tự như vậy khi câc gói thoại đến đầu cuối PC, Window cùng sẽ phât message để chương trình tiếp nhận câc gói thoại vă phât ra loa.

Để tạo được câc đm hiệu bâo hiệu liín tục, chương trình phải thiết lập bộ định thời. Sau mỗi khoảng thời gian định thời, tín hiệu bâo hiệu sẽ được phât ra loa.

Để chuyển đổi giữa quâ trình thu vă phât thoại chương trình xđy dựng thuật toân tâch dò khoảng lặng. Tiến trình phât câc gói thoại sẽ được dừng lại để chờ nhận câc gói được gởi đến khi phât hiện có bất kì gói năo chứa khoảng lặng. Trín thực tế với thuật toân năy nếu câc gói thoại quâ lớn sẽ mất đi tính song công của quâ trình đăm thoại nhưng nếu chọn kích thước gói nhỏ hơn 50ms thì người sử dụng vẫn có thể cảm nhận quâ trình thu phât được thực hiện đồng thời. Điều năy đê được kiểm nghiệm khi chạy thử chương trình.

Như đê đề cập ở trín để chương trình có thể thực thi theo đúng tiến trình cuộc gọi, tương ứng với việc phât câc thông tin bâo hiệu cũng như tiến hănh câc quâ trình thu phât thoại cần phải sử dụng câc bản tin thông bâo trạng thâi socket của Windows. Câc bản tin thông bâo trạng thâi của socket bao gồm :

FD-ACCEPT : sự kiện năy xuất hiện khi mây PC được gọi tới chấp nhận socket kết nối có thể xem tương tự như kết nối từ tổng đăi tới thuí bao thănh công, bín mây được gọi sẽ có tín hiệu bâo chuông như điện thoại thông thường vă tín hiệu chuông sẽ bị ngắt khi người được gọi chấp nhận hội thoại. Trạng thâi năy tương tự như trạng thâi “off hook” khi có người nhấc mây điện thoại từ đầu được gọi.

buffer đm thanh vừa mới thu được dănh cho soundcard ban đầu. Kích thước buffer gởi đi lă 400 byte. Khi truyền trong mạng LAN với tốc độ từ 10Mbit/s tới 100Mbit/s, thời gian cần thiết để gởi một buffer đi lă không đâng kể. Buffer thu được nếu lă im lặng, dữ liệu im lặng vẫn gởi đi nhưng chương trình sẽ tạm ngưng thu mă sẵn săng nhận buffer tới để phât thanh. Có nghĩa lă phía nói tạm ngưng thu để nghe bín kia trả lời. Hai quâ trình thu phât luđn phiín liín tục nhau một khi có phât hiện im lặng. Tuy nhiín cuộc nói chuyện vẫn được thực hiện song công vì kích thước buffer nhỏ, im lăng có thể phât hiện ngay lập tức vă người nghe có thể chỉn văo ngay khi người gọi đang nói chuyện.

FD-READ : Sự kiện xuất hiện khi Windows phât hiện có dữ liệu cần nhận trín một port đang trống. Dữ liệu được nhận văo buffer nhận với thời gian không đâng kể. Buffer nhận được sẽ chuyển văo buffer DSP trín soundcard để phât ra ngay lập tức. Quâ trình cuyển đổi qua lại giữa thu phât diễn ra tương tự như với FD-WRITE để hình thănh cuộc nói chuyện song công.

FD-CLOSE : Sự kiện xuất hiện ngay khi Windows phât hiện có socket bị đóng do lệnh closesocket() đến từ một trong hai phía kết nối. Khi nhận được tín hiệu năy xem như một bín gâc mây xuống trước, tín hiệu chuông bâo nhận sẽ được phât ra ở đầu còn lại để thông bâo kết nối đê được giải tỏa.

CHƯƠNG

10

VOICE CONVERSATION

------ ------

- Person A chạy chương trình ứng dụng bằng câch kích bắt đầu - Person B đồng thời cũng chạy chương trình ứng dụng cùng lúc

với Person A.

- Person A nhập địa chỉ IP của Person B vă kích kết nối.

- Person B khi đó nhận được thông bâo vă kích OK để chấp nhận kết nối.

- Kết nối thănh công, khi đó cả Person A vă Person B có thề đăm thoại với nhau vă cũng có thể chat với nhau.

- Kết nối chỉ hủy bỏ khi một trong hai bỏ kết nối.

Một phần của tài liệu TÌM HIỂU CÔNG NGHỆ VOIP XÂY DỰNG MÔ HÌNH TRUYỀN THOẠI PC TO PC ( PHẦN NHẬN ) (Trang 144 -149 )

×