RTP được coi như một giao thứ truyền từ đầu cuối đến đầu cuối (end to end) phục vụ truyền dữ liệu thời gian thực như audio và video. RTP thực hiện việc quản lý về thời gian truyền dữ liệu và nhận dạng dữ liệu được truyền. Nhưng RTP không cung cấp bất cứ một cơ chế nào đảm bảo thời gian truyền và cũng không cung cấp bất cứ một cơ chế nào giám sát chất lượng dịch vụ. Sự giám sát và đảm bảo về thời gian truyền dẫn cũng như chất lượng dịch vụ được thực hiện nhờ hai giao thức RTCP và RSVP.
Tương tự như các giao thứ truyền dẫn khác, gói tin RTP (RTP packet) bao gồm hai phần là header (phần mào đầu) và data (dữ liệu). Nhưng không giống như các giao thức truyền dẫn khác là sử dụng các trường trong header để thực hiện các chức năng điều
khiển, RTP sử dụng một cơ chế điều khiển độc lập trong định dạng của gói tin RTCP
để thực hiện các chức năng này.
36 trang |
Chia sẻ: maiphuongdc | Lượt xem: 2579 | Lượt tải: 1
Bạn đang xem trước 20 trang tài liệu Hệ thống VoIP và tổng đài Asterisk, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
ỗ trợ nhiều cuộc gọi cùng một lúc do vậy có nhiều kênh điều H.245 tương ứng. Khuyến nghị H.245 định nghĩa một số thực thể giao thức độc lập trợ giúp cho báo hiệu từ đầu cuối đến đầu cuối như sau:
• Trao đổi khả năng : Bao gồm những bản tin cho phép xác định khả năng trao đổi dữ liệu và âm thanh của từng đầu cuối tham gia cuộc gọi. Nó đảm bảo cho bên thu đủ khả năng nhận và xử lý thông tin đầu vào mà không bị xung đột gì. Khi biết được khả năng thu của đầu cuối nhận, thì đầu cuối phát sẽ giới hạn nội dung thông tin mà nó truyền đi trong khuôn khổ khả năng thu trên. Ngược lại, khả năng truyền cho phép đầu cuối nhận lựa chọn chế độ thu thích hợp. Với tín hiệu âm thanh, khả năng trao đổi bao gồm các bộ giải mã tín hiệu thoại như họ tiêu chuẩn G: G.729 8kbps, G.711 64kbps, G.723 5,3 hoặc 6,3 kbps, G.722 48kbps...
• Quyết định chủ - tớ: Là các thủ tục quyết định đầu cuối nào là chủ đầu cuối nào là tớ trong một cuộc gọi xác định. Mối quan hệ này được duy trì trong suốt thời gian cuộc gọi.
• Trễ vòng (Round Trip delay) : Là các thủ tục dùng để xác định trễ giữa đầu cuối nguồn và đầu cuối đích. Bản tin RounđTripDelayRequest đo trễ và kiểm tra thực thể giao thức H.245 ở đầu cuối bên kia có còn hoạt động hay không.
• Báo hiệu kênh logic (Logical channel signaling) : Báo hiệu kênh logic sử dụng các bản tin OpenLogicalChannel và CloseLogicalChannel và các thủ tục của H.245 để đóng mở các kênh logic. Khi một kênh logic được mở, một bản tin OpenLogical sẽ miêu tả đầy đủ nội dung của kênh logic đó bao gồm kiểu truyền thông (media type), thuật toán sử dụng, các chức năng và mọi thông tin khác để bên thu có thể dịch được nội dung của kênh logic.
• Các thủ tục kết nối nhanh : Có hai thủ tục để thiết lập kênh truyền thông là H.245 và kết nối nhanh. Kết nối nhanh cho phép sự thiết lập kết nối truyền thông cho các cuộc gọi cơ bản điểm tới điểm với chỉ một lần trao đổi bản tin vòng (bản tin đi từ đầu cuối nguồn tới đầu cuối đích rồi lại trở về đầu cuối nguồn).
• H245 ngầm (Tuneling H.245) : Các bản tin H.245 có thể được đóng gói ở trong kênh báo hiệu cuộc gọi H.225 thay vì tạo ra một kênh điều khiển H.245 riêng biệt. Phuơng pháp này cải thiện được thời gian thiết lập cuộc gọi và thời gian định vị tài nguyên. Đồng thời nó cho phép sự đồng bộ giữa báo hiệu cuộc gọi và điều khiển. Có thể đóng gói nhiều bản tin H.245 vào bất kỳ bản tin H.225 nào. Vào một thời điểm bất kỳ, mỗi đầu cuối có thể chuyển sang một kết nối H.245 riêng biệt.
1.3 .Quá trình thiết lập cuộc gọi H323.
Một cuộc gọi trải qua các bước như sau:
• Thiết lập cuộc gọi.
• Khởi tạo truyền thông và trao đổi khả năng.
• Thiết lập kênh truyền thông nghe nhìn.
• Dịch vụ cuộc gọi.
• Kết thúc cuộc gọi.
2. Giao thức khởi tạo phiên SIP
SIP (Session Initiation Protcol ) là giao thức báo hiệu điều khiển lớp ứng dụng được dùng để thiết lập, duy trì, kết thúc các phiên truyền thông đa phương tiện (multimedia). Các phiên multimedia bao gồm thoại Internet, hội nghị, và các ứng dụng tương tự có liên quan đến các phương tiện truyền đạt (media) như âm thanh, hình ảnh, và dữ liệu.
SIP sử dụng các bản tin mời (INVITE) để thiết lập các phiên và để mang các thông tin mô tả phiên truyền dẫn. SIP hỗ trợ các phiên đơn bá (unicast) và quảng bá (multicast) tương ứng các cuộc gọi điểm tới điểm và cuộc gọi đa điểm. Có thể sử dụng năm chức năng của SIP để thiết lập và kết thúc truyền dẫn là : định vị thuê bao, khả năng thuê bao, độ sẵn sàng của thuê bao, thiết lập cuộc gọi và xử lý cuộc gọi.
SIP được IETF đ−a ra trong RFC 2543. Nó là một giao thức dựa trên ý tưởng và cấu trúc của HTTP(HyperText Transfer Protocol)-giao thức trao đổi thông tin của World Wide Web- vμ lμ một phần trong kiến trúc multimedia của IETF. Các giao thức có liên quan đến SIP bao gồm giao thức RSVP (Resource Reservation Protocol), giao thức truyền vận thời gian thực (Real-time Transport Protocol), giao thức cảnh báo phiên SAP (Session Announcement Protocol), giao thức miêu tả phiên SDP (Session Description Protocol). Các chức năng của SIP độc lập, nên chúng không phụ thuộc vào bất kỳ giao thức nào thuộc các giao thức trên. Mặt khác, SIP có thể hoạt động kết hợp với các giao thức báo hiệu khác như H.323.
SIP là một giao thức theo thiết kế mở do đó nó có thể được mở rộng để phát triển thêm các chức năng mới. Sự linh hoạt của các bản tin SIP cũng cho phép đáp ứng các dịch vụ thoại tiên tiến bao gồm cả các dịch vụ di động.
2.1 Các thành phần trong hệ thống SIP
Hai phần tử cơ bản trong hệ thống SIP là tác nhân người sử dụng (user agent) và các máy phục vụ mạng (network server). Bên chủ gọi và bị gọi được nhận dạng bằng các địa chỉ SIP.
• User agent
- Client (UAC): Khởi tạo các yêu cầu SIP và đóng vai trò như tác nhân chủ gọi
của người dùng.
- Server (UAS): Nhận các yêu cầu và thay mặt cho người sử dụng gửi trả các đáp
ứng, đóng vai trò như tác nhân bị gọi.
• Network server
- Proxy server: xử lý các yêu cầu hoặc chuyển đổi nội dung rồi gửi cho các server khác
- Location server: định vị thuê bao và cung cấp thông tin cho proxy hoặc redirect server
- Redirect server: xác định server chặng tiếp theo rồi thông báo cho client để nó tự gửi yêu cầu. Redirect server không tạo và gửi yêu cầu
- Registrar server: tiếp nhận và xử lý các yêu cầu REGISTER (vd, khi bật máy thuê bao), thực hiện nhận thực thuê bao
2.2 . Các bản tin của SIP
SIP là một giao thức dựa trên ký tự văn bản với cú pháp bản in và các trường mào đầu đồng nhất với giao thức truyền siêu văn bản HTTP (Hypper Text Transfer Protocol). Các bản tin của SIP truyền trên cùng một kết nối TCP hoặc bó dữ liệu UDP.
Một số trường mào đầu đơn giản :
- INVITE : Để chỉ thị rằng thuê bao hoặc dịch vụ được mời tham gia vào một phiên. Nó bao gồm một mô tả phiên và đối với các cuộc gọi song công thì bên chủ gọi chỉ thị phương thức truyền thông (media) trong bản tin này. Theo phương pháp đơn giản này các bên có thể xác định được các khả năng của bên kia và bắt đầu một phiên hội thoại .
- ACK : Những yêu cầu này tương ứng với một yêu cầu INVITE. Chúng là sự xác nhận cuối cùng từ một hệ thống cuối và chấm dứt một giao dịch được khởi tạo bởi INVITE.
- OPTIONS : Bản tin này cho phép truy vấn và tập hợp các khả năng của user agent và network server. Tuy nhiên yêu cầu này không được dùng để thiết lập phiên.
- BYE: Bên chủ gọi và bị gọi sử dụng yêu cầu này để giải phóng cuộc gọi. Trước khi thực sự giải phóng cuộc gọi, user agent gửi yêu cầu này tới server để cảnh báo rằng nó muốn giải phóng phiên làm việc.
- CANCEL: Yêu cầu này cho phép user agent và network server xoá bỏ bất kỳ một yêu cầu nào đang thi hành.
- REGISTER: yêu cầu này được client dùng để đăng ký thông tin với SIP server.
Các bản tin đáp ứng
- 1xx Informational (vd 100 Trying, 180 Ringing)
- 2xx Successful (vd 200 OK, 202 Accepted)
- 3xx Redirection (vd 302 Moved Temporarily)
- 4xx Request Failure (e.g. 404 Not Found, 482 Loop Detected)
- 5xx Server Failure (e.g. 501 Not Implemented)
- 6xx Global Failure (e.g. 603 Decline)
2.3 Quá trình thiết lập cuộc gọi .
- Theo kiểu Proxy :
(1) Client gửi bản tin INVITE chứa thông tin về bên bị gọi tới Proxy Server
(2) Proxy server xác định vị trí của bên bị gọi bằng cách sử dụng các địa chỉ được cung cấp trong bản tin INVITE và location server .
(3) Location Server gửi trả lại Proxy Server thông tin đã yêu cầu
(4) Proxy server gửi yêu cầu INVITE tới địa chỉ mà nó vừa xác định được.
(5) Bên bị gọi (server) đáp ứng lại bằng bản tin thành công 200 OK.
(6) Proxy server lại đáp ứng lại bên Client bằng bản tin 200 OK.
(7)(8) Client xác nhận bằng bản tin ACK. Bản tin này được gửi qua Proxy server hoặc được gửi trực tiếp tới bên bị gọi.
- Theo kiểu redirect :
(1) Client gửi bản tin INVITE chứa thông tin về bên bị gọi tới Redirect Server
(2 Redirect Server xác định vị trí của bên bị gọi bằng cách sử dụng các địa chỉ được cung cấp trong bản tin INVITE và location server .
(3) Location Server gửi trả lại Proxy Server thông tin đã yêu cầu
(4) Sau khi đã xác định được vị trí của thuê bao thì Redirect server gửi trực tiếp địa chỉ vừa nhận được cho phía Client.
(5) Client gửi bản tin ACK tới Redirect server để hoàn tất phiên giao dịch.
(6) Client gửi trực tiếp yêu cầu INVITE tới bên bị gọi.
(7)(8) Bên bị gọi đáp ứng bằng bản tin 200 OK và bên chủ gọi xác nhận bằng bản tin ACK.
3.Real-time Transport Protocol (RTP)
RTP được coi như một giao thứ truyền từ đầu cuối đến đầu cuối (end to end) phục vụ truyền dữ liệu thời gian thực như audio và video. RTP thực hiện việc quản lý về thời gian truyền dữ liệu và nhận dạng dữ liệu được truyền. Nhưng RTP không cung cấp bất cứ một cơ chế nào đảm bảo thời gian truyền và cũng không cung cấp bất cứ một cơ chế nào giám sát chất lượng dịch vụ. Sự giám sát và đảm bảo về thời gian truyền dẫn cũng như chất lượng dịch vụ được thực hiện nhờ hai giao thức RTCP và RSVP.
Tương tự như các giao thứ truyền dẫn khác, gói tin RTP (RTP packet) bao gồm hai phần là header (phần mào đầu) và data (dữ liệu). Nhưng không giống như các giao thức truyền dẫn khác là sử dụng các trường trong header để thực hiện các chức năng điều
khiển, RTP sử dụng một cơ chế điều khiển độc lập trong định dạng của gói tin RTCP
để thực hiện các chức năng này.
Cấu trúc gói tin RTP
- Version (2 bit): version của RTP (hiện tại là version 2).
- Padding (1 bit): có vai trò như bit cờ được sử dụng để đánh dấu khi có một số byte được chèn vào trong gói.
- Extension (1 bit): cũng có vai trò như một bit cờ được sử dụng để đánh dấu khi có header mở rộng tiếp theo header cố định.
- CSRC count (4 bit): chỉ rõ số lượng của CSRC (contributing source)
- Marker (1 bit): có vai trò như một bit cờ, trạng thái của nó được phụ thuộc vào trường payload type.
- Payload Type (7 bit): chỉ rõ loại thông tin được chứa trong các gói.
- Serquence Number (16 bit): cung cấp số thứ tự của các gói. Cách này như một
cơ chế giúp bên thu có thể thu đúng thứ tự các gói tin, nhận ra gói tin bị mất.
- Time-stamp (32 bit): là tham số đánh dấu thời điểm byte đầu tiên được lấy mẫu
trong gói RTP. Giá trị time-stamp khởi đầu là ngẫu nhiên, các gói RTP phát đi
liên tiếp có thể có cũng giá trị time-stemp nếu chúng cùng được phát đi một lúc.
- Syschronisation source (SSRC) identifier: số nhận dạng nguồn của gói dữ liệu. Nếu ứng dụng muốn truyền dữ liệu có nhiều dạng khác nhau trong cùng một thời điểm (ví dụ là tín hiệu audio và video) thì sẽ có những phiên truyền riêng cho mỗi dạng dữ liệu. Sau đó ứng dụng sẽ tập hợp các gói tin có cùng nhận dạng SSRC. Số nhận dạng này được gán một cách ngẫu nhiên.
- Contribute source (CSRC) identifer (độ dài thay đổi): tại một điểm đích nào đó mà những tín hiệu audio đến đích cần trộn lại với nhau thì giá trị CSRC sẽ là tập hợp tất cả các giá trị SSRC của các nguồn mà gửi tín hiệu đến điểm đích đó. Trường CSRC có thể chứa tối đa là 15 số nhận dạng nguồn SSRC.
- Extension header (độ dài thay đổi): chứa các thông tin thểm của gói RTP.
4.Real-time Transport Control Protocol (RTCP)
Mặc dù RTP là một giao thức độc lập nhưng thường được hỗ trợ bởi giao thức RTCP. RTCP trả về nguồn các thông tin về sự truyền thông và các thành phần đích. Giao thức điều khiển này cho phép gửi về các thông số về bên thu và tự thích nghi với bên phát
cho phù hợp vời bên phát. Mỗi người tham gia một phiên truyền RTP phải gửi định kỳ
các gói RTCP tới tất cả những người khác cũng tham gia phiên truyền. Tuỳ theo mục
đích mà RTCP thực hiện 4 chức năng:
- RTCP cung cấp một sự phản hồi chất lượng của dữ liệu. Các thông tin đó giúp cho ứng dụng thực hiện chức năng điều khiển luồng và quản lý tắc nghẽn.
- RTCP cung cấp sự nhận dạng mà được sử dụng để tập hợp các kiểu dữ liệu khác nhau (ví dụ audio và video). Điều này là cần thiết vì khả năng này không được RTP cung cấp.
- Nhờ việc định kỳ gửi các gói tin RTCP mà mỗi phiên truyền có thể theo dõi được số người tham gia. RTP không thể sử dụng được cho mục đích này khi một ai đó không gửi dữ liệu mà chỉ nhận từ những người khác.
- Cuối cùng là một chức năng lựa chọn cho phép có thêm thông tin về những người tham gia vào phiên truyền.
Tuỳ thuộc vào giao thức RTP được sử dụng cho loại dữ liệu nào mà RTCP cung cấp các thông báo điều khiển khác nhau. Có 4 loại thông báo điều khiển chính được giao
thức RTCP cung cấp là:
- Sender report (SR): thông báo này chứa các thông tin thống kê liên quan đến kết quả truyền như tỷ lệ tổn hao, số gói dữ liệu bị mất, khoảng trễ. Các thông báo này phát ra từ phía phát trong một phiên truyền thông.
- Receiver report (RR): thông báo này chứa các thông tin thống kê liên quan đến kết quả nhận giữa các điểm cuối. Các thông báo này được phát ra từ phía thu trong một phiên truyền thông.
- Source description (SDES): thông báo bao gồm các thông số mô tả nguồn như tên, vị trí,...
- Application (APP): thông báo cho phép truyền các dữ liệu ứng dụng.
Cấu trúc gói tin RTCP
- Version (2 bit): version RTP hiện tại (version 2).
- Padding (1 bit): có chức năng như một bit cờ chỉ rõ xem trong gói có các byte được chèn thêm hay không.
- Report counter (5 bit): số thông báo chứa trong gói
- Packet type (8 bit): xác định loại thông báo của gói (SR hoặc RR hoặc APP).
- Length (16 bit): chỉ rõ độ dài của gói.
- Report (độ dài thay đổi): chứa các thông báo chi tiết.
5. Resource Reservation Protocol (RSVP)
Giao thức RSVP được sử dụng như một giao thức báo hiệu hỗ trợ cho RTP. Mục đích của RSVP là cung cấp một cơ chế đảm bảo băng thông cho các hoạt động của các ứng dụng. RSVP gửi tham số chất lượng dịch vụ QoS kết hợp với các dữ liệu thời gian thực được truyền trên mạng TCP/IP. Hỗ trợ giao thức RTP, giao thức RSVP có thể giải quyết các lỗi xảy ra trên đường truyền để đảm bảo các tham số chất lượng. Thật vậy, giao thức RTP chỉ hỗ trợ việc truyền thông điểm – điểm và không quản lý các tham số liên kết trên mạng. RSVP không những tác động ở máy phát, máy thu mà còn tác động trên cả các router trong mạng.
RSVP thiết lập và duy trì kết nối duy nhất cho một luồng dữ liệu, xác lập một hệ thống quản lý thứ tự các gói và tạo modun điều khiển để quản lý các nguồn tài nguyên của các nút mạng khác nhau. RSVP đưa ra một mô hình tối ưu để liên kết các dữ liệu từ một nguồn tới nhiều đích. RSVP đóng vai trò quản lý một cách lập các host đích để tự thích nghi các tham số chất lượng giữa khả năng cung cấp và nhu cầu đáp ứng.
Việc dành riêng các tài nguyên được yêu cầu bởi bên thu bằng cách phát một yêu cầu chất lượng dưới dạng một bản tin RSVP tương thích với nhu cầu của chúng. Thực tế sử dụng RSVP nhằm đảm bảo chất lượng trong việc truyền tin. Để đảm bảo đường truyền
thông suốt các điểm cuối phải hoạt động ở chế độ kết nối. Máy thu phải thường xuyên gửi các bản tin RSVP đến các router để đảm bảo thông suốt đường truyền.
RSVP hoạt động trên cơ sở xử lý các gói tin theo một yêu cầu chất lượng dịch vụ QoS. Hai thành phần chính thực hiện chức năng này là flowspec và filterspec. Flowspec có chức năng kiểm tra luồng dữ liệu được truyền như một yêu cầu dịch vụ của các ứng dụng mà kết quả là đưa ra một yêu cầu về chất lượng dịch vụ QoS. Flowspec đưa ra một yêu cầu chất lượng dịch vụ còn filterspec có nhiệm vụ lọc bỏ các gói tin mà không đảm bảo yêu cầu về chất lượng dịch vụ, những gói này sẽ được cung cấp một phương thức truyền tốt nhất có thể đáp ứng yêu cầu chất lượng dịch vụ.
6. Giao thức SGCP (Simple Gateway Control Protocol)
Giao thức này cho phép các thành phần điều khiển cuộc gọi có thể điều khiển kết nối giữa trung kế, các thiết bị đầu cuối với các gateway. Các thành phần điều khiển được gọi là Call Agent. SGCP được sử dụng để thiết lập, duy trì và giải phóng các cuộc gọi qua mạng IP. Call Agent thực hiện các chức năng báo hiệu cuộc gọi và gateway thực hiện chức năng truyền tín hiệu âm thanh. SGCP cung cấp năm lệnh điều khiển chính như sau:
- Notification Request: yêu cầu gateway phát các tín hiệu nhấc đặt máy và các tín
hiệu quay số DTMF.
- Notify: gateway thông báo với Call Agent về các tín hiệu được phát hiện ở trên.
- Create Connection: Call Agent khởi tạo kết nối giữa các đầu cuối trong gateway.
- Modify Connection: Call Agent dùng lệnh này để thay đổi các thông số về kết nối đã thiết lập. Lệnh này cũng có thể dùng để điều khiển luồng cho các gói tin RTP đi từ gateway này sang gateway khác.
- Delete Connection: Call Agent giải phóng các kết nối đã thiết lập.
Năm lệnh trên đây điều khiển gateway và thông báo cho call agent về các sự kiện xảy ra. Mỗi lệnh hay yêu cầu bao gồm các thông số cụ thể cần thiết để thực thi các phiên làm việc.
7. Giao thức MGCP (Media Gateway Control Protocol)
Giao thức MGCP cho phép điều khiển các gateway thông qua các thành phần điều khiển nằm bên ngoài mạng. MGCP sử dụng mô hình kết nối tương tự như SGCP dựa trên các kết nối cơ bản giữa thiết bị đầu cuối và gateway. Các kết nối có thể là kết nối điểm-điểm hoặc kết nối đa điểm. Ngoài chức năng điều khiển như SGCP, MGCP còn cung cấp thêm các chức năng sau:
- Endpoint Configuration: Call Agent dùng lệnh này để yêu cầu gateway xác định kiểu mã hoá ở phí đường dây kết nối đến thiết bị đầu cuối.
- AuditEndpoint và AuditConnection: Call Agent dùng lệnh này để kiểm tra trạng thái và sự kết nối ở một thiết bị đầu cuối.
- RestartIn-Progress: Gateway dùng lệnh này để thông báo với Call Agent khi nào các thiết bị đầu cuối ngừng sử dụng dịch vụ và khi nào quay lại sử dụng dịch vụ.
Phần II
Tổng quan về Asterisk
Asterisk là hệ thống chuyển mạch mềm, là phần mềm nguồn mở được viết bằng ngôn ngữ C chạy trên hệ điều hành linux thực hiện tất cả các tính năng của tổng đài PBX và hơn thế nữa. Asterisk ra đời vào năm 1999 bởi một sinh viên sinh năm 1977 tên là Mark Spencer. Anh ta viết phần mềm này ban đầu với mục đích hỗ trợ cho công ty của mình trong việc liên lạc đàm thoại.
Asterisk là một phần mềm mang tính cách mạng, tin cậy, mã nguồn mở và miễn phí mà biến một PC rẻ tiền thông thường chạy Linux thành một hệ thống điện thoại doanh nghiệp mạnh mẽ. Asterisk là một bộ công cụ mã nguồn mở cho các ứng dụng thoại và là một server xử lý cuộc gọi đầy đủ chức năng. Asterisk là một nền tảng tích hợp điện thoại vi tính hoá kiến trúcb mở. Nhiều hệ thống Asterisk đã được cài đặt thành công trên khắp thế giới. Công nghệ Asterisk đang phục vụ cho nhiều doanh nghiệp. Asterisk đem đến cho người sử dụng tất cả các tính năng và ứng dụng của hệ thống tổng đài PBX và cung cấp nhiều tính năng mà tổng đài PBX thông thường không có được,
Hiện nay Asterisk trên đà phát triển nhanh được rất nhiều doanh nghiệp triển khai ứng dụng cho công ty của mình. Đây là xu thế tất yếu của người sử dụng điện thoại, vì các công ty đều có mạng máy tính và cần liên lạc với nhau trong công việc giữa các phòng ban hoặc chi nhánh và cần một chi phí thấp thậm chí không phải tốn chi phí khi thực hiện các cuộc gọi trên mạng nội bộ của công ty. Không gói gọn thông tin liên lạc trong công ty mà các ứng dụng giao tiếp với mạng PSTN hoặc mạng VOIP cho phép gọi ra bất cứ số điện thoại nào có trên mạng PSTN.
I. Kiến trúc Asterisk
Về cơ bản kiến trúc của Asterisk là sự kết hộp giữa nền tảng công nghệ điện thoại và ứng dụng điện thoại cho VOIP như SIP, H323, IAX, MGCP... các công nghệ điện thoại cho hệ thống chuyển mạch mạch TDM như T1, E1, ISDN và các giao tiếp đường truyền thoại Analog.
Khi khởi động hệ thống Asterisk thì chức năng Dynamic Module Loader thực hiện nạp driver của thiết bị, nạp các kênh giao tiếp, các format, codec và các ứng dụng liên quan, đồng thời các hàm API cũng được liên kết nạp vào hệ thống. Sau đó hệ thống PBX Switching Core của Asterisk chuyển sang trạng thái sẵn sàng hoạt động chuyển mạch cuộc gọi, các cuộc gọi được chuyển mạch tuỳ vào kế hoạch quay số (Dialplan) được thực hiện cấu hình trong file extension.conf. Application Launchar để rung chuông thuê bao, quay số, định hướng cuộc gọi, kết nối với hộp thư thoại… Scheduler and I/O Manager đảm nhiệm các ứng dụng nâng cao. Codec Translator xác nhận các kênh nén dữ liệu ứng với các chuẩn khác nhau có thể kết hợp liên lạc được với nhau. Hệ thống cũng bao gồm 4 chức năng API chính: Codec translator API: các hàm thực thi, giải nén các chuẩn như G711, G729… Asterisk Channel API : Giao tiếp với các kênh liên lạc khác nhau . Asterisk file format API : xử lý các loại file có định dạng như Mp3, wav, gsm… Asterisk Aplication API : Bao gồm tất cả các ứng dụng được thực thi trong hệ thống Asterisk như voicemail, callerID…
II – Giao thức IAX ( Inter Asterisk eXchange)
IAX là giao thức chuẩn dành riêng cho Asterisk, được phát triển bởi tác giả của phần mềm Asterisk để khắc phục những hạn chế trong giao thức SIP. Nó cung cấp hoạt động liên kết trong suốt với tường lửa NAT và PAT. Nó hỗ trợ việc thiết lập, nhận, chuyển cuộc gọi và đăng ký cuộc gọi. Không giống như giao thức SIP chuyển tải thoại và báo hiệu trên hai kênh khác nhau (out of band), IAX chuyển tải thoại và báo hiệu trên cùng một kênh(in band). IAX giải quyết được vấn đề NAT đề cập trên phần giao thức SIP. Mặc khác IAX là giao thức tối ưu trong việc sử dụng băng thông, cho phép nhiều gói dữ liệu thoại trên cùng một IP header, cơ chế chuyển tải nhiều cuộc gọi trên cùng một gói IP được gọi là trung kế(Trunk).
Với IAX, các điện thoại hoàn toàn cơ động. Chỉ cần kết nối điện thoại với Asterisk server bất cứ đâu trên mạng Internet, chúng sẽ đăng ký với PBX chủ và được định tuyến cuộc gọi ngay tức thì. IAX có đoạn mào đầu rất nhỏ. Với bốn byte của mào đầu, so sánh với 12 byte mào đầu của SIP hay H.323, bản tin IAX có thể nói là nhỏ hơn rất nhiều.
III – Các tính năng cơ bản của tổng đài Asterisk
Ngoài những tính năng tương tự như tổng đài PBX, Asterisk còn có thêm nhiều tính năng khác mà chỉ có thể có được ở những tổng đài rất đắt tiền.
Đó là các tính năng:
- Voicemail Services with Directory
- Conferencing Server
- Packet Voice Server
- Encryption of Telephone or Fax Calls
- Heterogeneous Voice over IP gateway (H.323, SIP, MGCP, IAX)
- Custom Interactive Voice Response (IVR) system
- Soft switch
- Number Translation
- Calling Card Server
- Predictive Dialer
- Call Queuing with Remote Agents
- Gateway and Aggregation for Legacy PBX systems
- Remote Office or User Telephone Services
- PBX long distance Gateway
- Telemarketing Block
- Standalone Voicemail System
Phần III
Triển khai hệ thống Asterisk
Mô hình triển khai hệ thống :
Các phần cứng sử dụng :
4 PC :
+ 2PC Asterisk Server ( Linux) : Cài đặt Asterisk
+ 2PC Client ( Windows ) : Cài đặt Softphone ( X-lite)
2 Router
1 Switch
1 Analog phone
1 SPA 3102
Cài đặt phần mềm
Cài đặt Asterisk Server
- Download các gói phần mềm :
Asterisk :
Lipri :
Zaptel :
Asterisk Addons :
- Giải nén chúng vào thư mục /usr/src :
tar -vxzf asterisk-1.4.12.tar.gz
tar -vxzf libpri-1.4.7.tar.gz
tar -vxzf zaptel-1.4.7.tar.gz
tar -vxzf asterisk-addons-1.4.2.tar.gz
- Kiểm tra các thư viện cần thiết cho việc cài đặt :
Các thư viện bao gồm : bison, bison-devel, ncurses, ncurses-devel, zlib,
zlib-devel, openssl, openssl-devel, gnutls-devel, gcc, gcc-c++
Kiểm tra bằng cách dùng lệnh : rpm –q tên_thư_viện
Nếu thư viện chưa được cài đặt , dùng lệnh : yum install tên_thư_viện để cài đặt
- Cài đặt gói Lipri :
cd /usr/src/libpri-1.4.7
make
make install
- Cài đặt gói Zaptel
cd /usr/src/zaptel-1.4.7
make
make install
- Cài đặt gói Asterisk
cd /usr/src/asterisk-1.4.12
./configure
make
make install
- Cài đặt gói Asterisk Addon :
cd /usr/src/asterisk-addons-1.4.2
make
make install
Cài đặt Softphone:
Softphone được sử dụng ở đây là phần mềm X-Lite
Tiến hành download X-Lite 3.0 tại www.counterpath.com và cài đặt
III - Cấu hình hệ thống Asterisk
1. Cấu hình Asterisk Server
Asterisk Server 1
Sip.conf
---------------------
[thanh]
Type=friend
Username=thanh
Secret=1234
Host=dynamic
Context = local1
-----------------------
[khanh]
Type=friend
Username=khanh
Secret=1234
Host=dynamic
Context = local1
------------------------
[spa3102]
Type=friend
Secret=1234
Host=dynamic
Context = local1
Extension.conf
------------------------
[local1]
Exten=101, 1, Dial(SIP/thanh)
Exten=thanh, 1, Dial(SIP/thanh)
Exten=102, 1, Dial(SIP/khanh)
Exten=khanh, 1, Dial(SIP/khanh)
Exten=103,1,Dial(SIP/spa3102)
Asterisk Server 2
Sip.conf
---------------------
[phuong]
Type=friend
Username=phuong
Secret=1234
Host=dynamic
Context = local2
-----------------------
[cuc]
Type=friend
Username=cuc
Secret=1234
Host=dynamic
Context = local2
Extension.conf
------------------------
[local2]
Exten=201, 1, Dial(SIP/phuong)
Exten= phuong, 1, Dial(SIP/phuong)
Exten=202, 1, Dial(SIP/cuc)
Exten=cuc, 1, Dial(SIP/cuc)
Cấu hình các Softphone : ( Sip Account Setting - Add )
Softphone 1 :
Softphone 2 :
Cấu hình SPA3102
Thiết bị SPA3102 dùng để kết nối điện thoại tương tự thông thường vào mạng IP. SPA3102 có 4 cổng giao tiếp
- Cổng Ethernet nối với một máy tính, máy tính này được sử dụng để cấu hình các thông số cho SPA3102 hoạt động.
- Cổng Internet nối với mạng LAN chứa Asterisk PBX và các máy tính có cài softphone.
- Cổng Line nối với đường dây điện thoại thông
Các file đính kèm theo tài liệu này:
- he_thong_voip_tren_asterisk_4743_1944.doc