1. Trang chủ
  2. » Luận Văn - Báo Cáo

ĐỒ án xây DỰNG các DỊCH vụ GIÁ TRỊ GIA TĂNG ASTERISK

66 17 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Xây Dựng Tổng Đài Nội Bộ Trên Nền Asterisk Và Xây Dựng Các Dịch Vụ Giá Trị Gia Tăng
Tác giả Nguyễn Văn Chiến
Người hướng dẫn Ths. Lê Duy Khánh
Trường học Học viện Công Nghệ Bưu Chính Viễn Thông
Chuyên ngành Điện Tử - Truyền Thông
Thể loại Đồ Án Tốt Nghiệp
Năm xuất bản 2016
Thành phố TP Hồ Chí Minh
Định dạng
Số trang 66
Dung lượng 1,83 MB

Cấu trúc

  • CHƯƠNG 1: TỔNG QUAN VỀ TỔNG ĐÀI ASTERISK (10)
    • 1.1. GIỚI THIỆU CHƯƠNG (10)
    • 1.2. GIỚI THIỆU ASTERISK (10)
    • 1.3. KIẾN TRÚC CỦA ASTERISK (12)
    • 1.4. MỘT SỐ TÍNH NĂNG CƠ BẢN CỦA ASTERISK (13)
      • 1.4.1. VOICEMAIL (HỘP THƯ THOẠI) (14)
      • 1.4.2. CALL FORWARDING(CHUYỂN CUỘC GỌI) (14)
      • 1.4.3. CALLER ID (HIỂN THỊ SỐ GỌI) (14)
      • 1.4.4. IVR (14)
      • 1.4.5. TIME AND DATE (15)
      • 1.4.6. CONFERENCE (ĐÀM THOẠI NHIỀU NGƯỜI) (15)
      • 1.4.7. CALL RECORDING (15)
    • 1.5. CÁC NGỮ CẢNH ỨNG DỤNG (15)
      • 1.5.1. TỔNG ĐÀI VOIP IP PBX (15)
      • 1.5.2. KẾT NỐI IP PBX VỚI PBX (16)
      • 1.5.3. KẾT NỐI GIỮA CÁC SERVER ASTERISK (17)
    • 1.6. CÁC KHÁI NIỆM TRONG HỆ THỐNG ASTERISK (17)
      • 1.6.1. PBX - PRIVATE BRANCH EXCHANGE (17)
      • 1.6.2. VOIP –VOICE OVER INTERNET PROTOCOL (18)
    • 1.7. CÁC HÌNH THỨC BÁO HIỆU GIAO TIẾP TDM (18)
      • 1.7.1. FXO VÀ FXS (18)
      • 1.7.2. BÁO HIỆU ANALOG GIỮA ĐẦU CUỐI VÀ TỔNG ĐÀI (19)
      • 1.7.3. BÁO HIỆU GIỮA CÁC TỔNG ĐÀI (19)
    • 1.8. BÁO HIỆU TRÊN MẠNG ĐIỆN THOẠI VOIP (20)
      • 1.8.1. SIP (SESSION INITIATION PROROCOL) (20)
      • 1.8.2. PROXY SERVER (20)
      • 1.8.3. RTP VÀ NAT (20)
      • 1.8.4. IAX – INTER ASTERISK EXCHANGE (21)
  • CHƯƠNG 2: XÂY DỰNG TỔNG ĐÀI NỘI BỘ ASTERISK (22)
    • 2.1. CÀI ĐẶT TỪNG PHẦN (22)
    • 2.2. CÀI ĐẶT ASTERISK TRÊN CENTOS 6.7 (22)
      • 2.2.1. CHUẨN BỊ MÁY ẢO CENTOS 6.7 64BIT (22)
        • 2.2.2.1. TẢI CÁC GÓI PHẦN MỀM CẦN THIẾT TRƯỚC KHI CÀI ĐẶT (23)
      • 2.2.3. CÁC CÔNG CỤ HỖ TRỢ VẬN HÀNH VÀ CẤU HÌNH ASTERISK (25)
        • 2.2.3.1. MOBAXTERM (25)
        • 2.2.3.2. CÁC PHẦN MỀM SOFTPHONE (26)
    • 2.3. CÁCH CẤU HÌNH ASTERISK (27)
      • 2.3.1. SIP.CONF (27)
      • 2.3.2. EXTENSIONS.CONF (28)
      • 2.3.3. CẤU HÌNH TRUNG KẾ (32)
    • 2.4. THI CÔNG HỆ THỐNG TỔNG ĐÀI ASTERISK CƠ BẢN (33)
      • 2.4.1. MÔ HÌNH THI CÔNG (33)
      • 2.4.2. CẤU HÌNH TỔNG ĐÀI (33)
        • 2.4.2.1. CẤU HÌNH FILE SIP.CONF (34)
        • 2.4.2.2. CẤU HÌNH FILE EXTENSIONS.CONF (35)
        • 2.4.2.3. THIẾT LẬP CÁC SOFTPHONE VÀ KIỂM TRA CUỘC GỌI (36)
    • 2.5. PHÂN TÍCH BẢN TIN SIP (38)
      • 2.5.1. QUÁ TRÌNH REGISTER (38)
      • 2.5.2. THIẾT LẬP CUỘC GỌI (39)
  • CHƯƠNG 3: XÂY DỰNG CÁC DỊCH VỤ GIÁ TRỊ GIA TĂNG TRÊN NỀN (42)
    • 3.1. GIỚI THIỆU (42)
    • 3.2. TỔNG QUAN MYSQL VÀ PHPAGI (42)
      • 3.2.1. MYSQL CƠ BẢN (42)
        • 3.2.1.1. KHÁI NIỆM CƠ BẢN VỀ CƠ SỞ DỮ LIỆU (CSDL) (42)
        • 3.2.1.2. CÁC LỆNH CƠ BẢN TRONG MYSQL (43)
        • 3.2.1.3. CÀI ĐẶT MYSQL TRÊN CENTOS 6 (43)
      • 3.2.2. PHPAGI- LỚP THƯ VIỆN SỬ DỤNG NGÔN NGỮ PHP (44)
        • 3.2.2.1. GIỚI THIỆU VỀ PHPAGI (44)
        • 3.2.2.2. CẤU TRÚC FILE CỦA PHPAGI (44)
        • 3.2.2.3. GỌI MỘT AGI SCRIPT TỪ DIAPLAN (44)
        • 3.2.2.4. LẬP TRÌNH AGI SCRIPT BẰNG PHP (44)
    • 3.3. XÂY DỰNG DỊCH VỤ TRA CỨU KẾT QUẢ XỔ SỐ VIETLOTT, THÔNG (45)
      • 3.3.2. DỊCH VỤ TRA CỨU KẾT QUẢ XỔ SỐ (46)
        • 3.3.2.1. TẠO DATABASE CHO DỊCH VỤ (47)
      • 3.3.3. DỊCH VỤ TRA CỨU THÔNG TIN TUYỂN DỤNG (49)
      • 3.3.4. CẤU HÌNH HỆ THỐNG CHO HAI DỊCH VỤ (51)
        • 3.3.4.1. CẤU HÌNH FILE EXTENSIONS.CONF (51)
        • 3.3.4.2. CẤU HÌNH AGI SCRIPT (52)
      • 3.3.5. KẾT QUẢ ĐẠT ĐƯỢC (59)
  • CHƯƠNG 4: KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN ĐỀ TÀI (60)
    • 4.1. ĐÁNH GIÁ CHUNG (60)
      • 4.1.1. ƯU ĐIỂM (60)
      • 4.1.2. NHƯỢC ĐIỂM (60)
    • 4.2. HƯỚNG PHÁT TRIỂN ĐỀ TÀI (61)
  • TÀI LIỆU THAM KHẢO (66)

Nội dung

HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG CƠ SỞ TẠI THÀNH PHỐ HỒ CHÍ MINH KHOA VIỄN THÔNG II ĐỒ ÁN TỐT NGHIỆP ĐẠI HỌC CHUYÊN NGÀNH ĐIỆN TỬ TRUYỀN THÔNG HỆ CHÍNH QUY NIÊN KHÓA 2012 2016 Đề tài XÂY DỰNG TỔNG ĐÀI NỘI BỘ TRÊN NỀN ASTERISK VÀ XÂY DỰNG CÁC DỊCH VỤ GIÁ TRỊ GIA TĂNG Mã số đề tài 16 N14LDVT001 Sinh viên thực hiện NGUYỄN VĂN CHIẾN MSSV N14LDVT001 Lớp L14CQVT01 N Giáo viên hướng dẫn Ths LÊ DUY KHÁNH HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG CƠ SỞ TẠI THÀNH PHỐ HỒ CHÍ MINH KHOA VIỄN THÔNG II ĐỒ.

TỔNG QUAN VỀ TỔNG ĐÀI ASTERISK

GIỚI THIỆU CHƯƠNG

Chương này sẽ làm rõ các khái niệm cơ bản liên quan đến hệ thống Asterisk, cung cấp kiến thức nền tảng và những khái niệm thiết yếu để thiết kế và triển khai hệ thống tổng đài hiệu quả với Asterisk.

GIỚI THIỆU ASTERISK

Asterisk là phần mềm tổng đài điện thoại nội bộ (PBX) giúp các máy điện thoại nhánh (extension) gọi cho nhau và kết nối với các hệ thống điện thoại khác, bao gồm mạng điện thoại analog (PSTN) và VoIP.

Asterisk là một giải pháp tổng đài PBX thương mại hoàn chỉnh, cung cấp đầy đủ các tính năng như hộp thư thoại, hội đàm và tương tác thoại Đặc biệt, Asterisk hỗ trợ nhiều giao thức VoIP như SIP và H.323, hoạt động như một trạm kết nối giữa các điện thoại IP và mạng PSTN.

Asterisk là một hệ thống chuyển mạch mềm, được phát triển dưới dạng phần mềm nguồn mở bằng ngôn ngữ C và hoạt động trên hệ điều hành Linux Giống như nhiều dự án nguồn mở khác, Asterisk ban đầu được tạo ra để phục vụ nhu cầu cá nhân của người dùng.

Khi còn là sinh viên ngành kỹ thuật máy tính tại Đại học Auburn, Alabama, Mark Spencer đã sáng lập một công ty cung cấp dịch vụ hỗ trợ người dùng Linux qua điện thoại Để tiết kiệm chi phí, thay vì mua tổng đài PBX có sẵn, Mark đã tự phát triển phần mềm tổng đài chạy trên hệ điều hành Linux, dẫn đến sự ra đời của Asterisk.

Asterisk là một phần mềm PBX mã nguồn mở, đáng tin cậy và miễn phí, cho phép biến một PC thông thường chạy Linux thành hệ thống điện thoại doanh nghiệp mạnh mẽ.

Astreisk là bộ công cụ mã nguồn mở chuyên dụng cho các ứng dụng thoại, đồng thời hoạt động như một máy chủ xử lý cuộc gọi với đầy đủ chức năng Asterisk, nền tảng tích hợp điện thoại, hỗ trợ kiến trúc mở, mang đến khả năng linh hoạt và tùy biến cho người dùng.

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 không chỉ quản lý thông tin liên lạc nội bộ trong công ty mà còn cho phép kết nối với mạng PSTN và VOIP, giúp người dùng thực hiện cuộc gọi đến bất kỳ số điện thoại nào trên mạng PSTN.

Asterisk was originally developed for GNU/Linux on the x86 (Intel) platform, but it can now be compiled and run on OpenBSD, FreeBSD, Mac OSX, and Microsoft Windows.

SVTH: NGUYỄN VĂN CHIẾN LỚP: L14CQVT01-N Page | 3

Ta có thể thấy được sơ đồ giao tiếp tổng quát của Asterisk qua hình sau:

Hình 1.1: Sơ đồ giao tiếp tổng quát của Asterisk

Asterisk là hệ thống chuyển mạch tích hợp, vừa là công nghệ truyền thống TDM vừa là chuyển mạch VoIP

Hệ thống này có khả năng giao tiếp linh hoạt với nhiều loại thiết bị, bao gồm điện thoại analog thông thường và thiết bị điện thoại VoIP Ngoài ra, nó còn hỗ trợ kết nối với mạng PSTN và các nhà cung cấp dịch vụ VoIP khác.

Asterisk là giải pháp viễn thông lý tưởng cho cả công ty và tổ chức nhỏ, cho phép thiết lập hệ thống điện thoại đa năng hỗ trợ đồng thời điện thoại analog và VoIP Theo M.Spencer, Asterisk mang lại lợi ích chi phí thấp và dễ dàng trong việc cài đặt, làm cho nó trở thành lựa chọn phổ biến cho nhiều doanh nghiệp.

SVTH: NGUYỄN VĂN CHIẾN LỚP: L14CQVT01-N Page | 4

KIẾN TRÚC CỦA ASTERISK

Kiến trúc của Asterisk là sự kết hợp hoàn hảo giữa nền tảng công nghệ điện thoại và ứng dụng điện thoại Nó hỗ trợ các công nghệ VoIP như SIP, H323, IAX, MGCP, cùng với hệ thống chuyển mạch TDM như T1, E1, ISDN và giao tiếp đường truyền thoại Analog Asterisk cũng cung cấp nhiều ứng dụng thoại hữu ích, bao gồm chuyển mạch cuộc gọi, tương tác thoại, caller ID, voicemail và chuyển cuộc gọi.

Asterisk là hệ thống chuyển mạch cuộc gọi quan trọng với nhiều chức năng chính Khi khởi động, chức năng Dynamic Module Loader sẽ nạp driver thiết bị, các kênh giao tiếp, định dạng, codec và các ứng dụng liên quan, đồng thời liên kết các hàm API vào hệ thống.

Hệ thống PBX Switching Core của Asterisk sẽ chuyển sang trạng thái sẵn sàng để thực hiện chuyển mạch cuộc gọi Các cuộc gọi được chuyển mạch dựa trên kế hoạch quay số (Dialplan) được cấu hình trong tập tin extensions.conf.

Chức năng Application Launcher để 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, các chức năng được phát triển bởi cộng đồng phát triển Asterisk

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

SVTH: NGUYỄN VĂN CHIẾN LỚP: L14CQVT01-N Page | 5

Hệ thống Asterisk đảm nhiệm vai trò quan trọng trong việc xử lý các cuộc gọi định hướng thông qua các giao tiếp như SIP, Zaptel và IAX, liên kết các giao tiếp khác nhau để đảm bảo sự thông suốt trong quá trình gọi điện.

Mọi cuộc gọi đều được thực hiện qua một kênh giao tiếp riêng biệt, có thể kết nối với kênh vật lý như đường dây POTS hoặc kênh logic như IAX hoặc SIP.

Phân biệt giữa sự xuất hiện của cuộc gọi trên một kênh và cách xử lý cuộc gọi đó là rất quan trọng Khi một cuộc gọi đến Asterisk qua kênh, kế hoạch đánh số (Dialplan) sẽ quyết định hành động cụ thể cho cuộc gọi Ví dụ, cuộc gọi có thể đến qua kênh SIP từ một SIP-Telephone hoặc SIP-Softphone trên máy tính Kế hoạch đánh số xác định liệu cuộc gọi nên được trả lời, kết nối với điện thoại khác, chuyển tiếp hay định hướng tới Voicemail.

Asterisk cung cấp nhiều ứng dụng đa dạng, sẵn sàng hỗ trợ kế hoạch đánh số trong quá trình xử lý cuộc gọi đến Việc lựa chọn kế hoạch đánh số và các ứng dụng phù hợp sẽ xác định các hành động mà Asterisk thực hiện.

Hệ thống cũng bao gồm 4 chức năng API chính:

Codec Translator API: các hàm đảm nhiệm thực thi và giải nén các chuẩn khác nhau như G723, GSM, MP3, ADPCM…

API Asterisk Channel cho phép giao tiếp linh hoạt với nhiều kênh liên lạc khác nhau, giúp kết nối các cuộc gọi tương thích với nhiều chuẩn như SIP, IAX, H323 và Zaptel.

API định dạng file Asterisk cho phép xử lý linh hoạt các loại file như MP3, WAV, GSM, hỗ trợ hiệu quả cho các ứng dụng trên nền tảng Asterisk trong việc quản lý âm chuông và DTMF.

Asterisk Aplication API: bao gồm tất cả các ứng dụng được thực thi trong hệ thống

Asterisk cung cấp nhiều tính năng như voicemail, hội nghị, và caller ID, cho phép phát triển các ứng dụng mới tương tác trực tiếp với lõi PBX Bên cạnh đó, Asterisk còn hỗ trợ thư viện Asterisk Gateway Interface (AGI), tương tự như CGI, giúp kích hoạt các ứng dụng bên ngoài và cho phép viết kịch bản phức tạp bằng các ngôn ngữ như PHP và Perl Nhờ đó, khả năng phát triển ứng dụng tùy biến với Asterisk là rất đa dạng và phong phú.

MỘT SỐ TÍNH NĂNG CƠ BẢN CỦA ASTERISK

Asterisk là một hệ thống mạnh mẽ với nhiều tính năng đa dạng, nhưng việc nắm bắt tất cả các tính năng này có thể là một thách thức Trong phần này, tôi sẽ giới thiệu một số tính năng cụ thể cùng với ứng dụng thực tiễn của chúng, nhằm giúp bạn hiểu rõ hơn về hệ thống Asterisk.

SVTH: NGUYỄN VĂN CHIẾN LỚP: L14CQVT01-N Page | 6

Asterisk là hệ thống Voicemail toàn diện, cho phép nhận và lưu trữ tin nhắn thoại Mỗi điện thoại trong hệ thống Asterisk có thể được cấu hình để sử dụng chức năng hộp thư thoại Khi số điện thoại bận hoặc không có tín hiệu, Asterisk tự động chuyển cuộc gọi đến hộp thư thoại đã được thiết lập Hệ thống Voicemail cung cấp nhiều tính năng hữu ích như xác nhận bằng mật khẩu khi truy cập và thông báo qua email khi có tin nhắn mới.

1.4.2 CALL FORWARDING(CHUYỂN CUỘC GỌI)

Khi bạn không ở nhà hoặc đi công tác và không muốn bỏ lỡ cuộc gọi, tính năng chuyển cuộc gọi là giải pháp lý tưởng Tính năng này, thường được sử dụng trong hệ thống Asterisk, cho phép chuyển cuộc gọi đến một hoặc nhiều số điện thoại đã được định trước Có nhiều trường hợp cần sử dụng tính năng chuyển cuộc gọi, như khi bận, không trả lời, chuyển cuộc gọi tức thời hoặc chuyển cuộc gọi theo thời gian đã định.

1.4.3 CALLER ID (HIỂN THỊ SỐ GỌI)

Chức năng Caller ID rất hữu ích trong việc xác định nguồn gốc cuộc gọi và nhận diện người gọi Nó cho phép người dùng xác minh số thuê bao gọi đến, từ đó quyết định có nhận cuộc gọi từ hệ thống Asterisk hay không, giúp ngăn chặn những cuộc gọi không mong muốn.

IVR (Interactive Voice Response) là hệ thống trả lời tự động tương tác, cho phép người dùng tương tác qua giọng nói Asterisk là nền tảng lý tưởng để triển khai dịch vụ này 24/7, hỗ trợ phát lại file âm thanh, đọc văn bản và truy xuất dữ liệu từ cơ sở dữ liệu Chức năng IVR có nhiều ứng dụng thực tiễn, như khi gọi đến các công ty, người gọi thường nghe các thông điệp hướng dẫn như “Nhấn phím 1 để gặp phòng kinh doanh” hay “Nhấn phím 2 để gặp phòng kỹ thuật” Hệ thống Asterisk sẽ định hướng cuộc gọi dựa trên lựa chọn của người gọi Ngoài ra, IVR còn giúp người dùng tra cứu thông tin như điểm thi, cước điện thoại, tỉ giá Dollar hay kết quả xổ số một cách nhanh chóng và tiện lợi.

SVTH: NGUYỄN VĂN CHIẾN LỚP: L14CQVT01-N Page | 7

Trong một khoảng thời gian nhất định, cuộc gọi sẽ được hướng đến một số điện thoại hoặc chức năng cụ thể Chẳng hạn, giám đốc công ty có thể quy định rằng nhân viên chỉ được phép sử dụng điện thoại trong giờ hành chính, trong khi ngoài giờ làm việc sẽ bị hạn chế hoặc không được phép gọi ra ngoài.

1.4.6 CONFERENCE (ĐÀM THOẠI NHIỀU NGƯỜI)

Nếu bạn cần thông báo cùng một nội dung cho nhiều người, việc gọi điện từng người một sẽ rất mất thời gian Chức năng Conference sẽ giúp bạn giải quyết vấn đề này Cuộc gọi hội nghị cho phép nhiều người tham gia, với tùy chọn cho phép người nhận chỉ nghe mà không cần nói.

Asterisk cung cấp tính năng ghi âm cuộc gọi, cho phép người dùng lưu trữ và chứng minh nội dung cuộc gọi khi cần thiết Tính năng này không chỉ hỗ trợ trong việc đáp ứng yêu cầu của khách hàng mà còn hữu ích trong các tình huống liên quan đến pháp luật.

CÁC NGỮ CẢNH ỨNG DỤNG

Asterisk có nhiều ngữ cảnh ứng dụng khác nhau tùy thuộc vào nhu cầu sử dụng Dưới đây là những ngữ cảnh ứng dụng phổ biến trong việc triển khai hệ thống Asterisk.

1.5.1 TỔNG ĐÀI VOIP IP PBX

Hình 1.3: Hệ thống chuyển mạch Voip

Hệ thống chuyển mạch VoIP được thiết kế để phục vụ các công ty cần giải pháp liên lạc nội bộ hiệu quả trên nền tảng mạng đã có Thay vì lắp đặt hệ thống PBX truyền thống, việc triển khai hệ thống VoIP sẽ giúp giảm đáng kể chi phí liên lạc nội bộ.

Hệ thống có thể liên lạc với mạng PSTN qua giao tiếp TDM

1.5.2 KẾT NỐI IP PBX VỚI PBX

Hình 1.4: Kết nối tổng đài IP PBX với PBX

Công ty hiện đang sử dụng hệ thống PBX và cần mở rộng để đáp ứng nhu cầu liên lạc nội bộ với chi phí tối ưu Giải pháp hiệu quả là trang bị hệ thống Asterisk và kết nối với hệ thống PBX hiện có thông qua luồng E1 Bên cạnh đó, để nâng cao khả năng liên lạc với mạng PSTN và các dịch vụ VOIP khác, công ty nên thiết lập kết nối với các nhà cung cấp dịch vụ VOIP.

SVTH: NGUYỄN VĂN CHIẾN LỚP: L14CQVT01-N Page | 9

1.5.3 KẾT NỐI GIỮA CÁC SERVER ASTERISK

Hình 1.5: Kết nối giữa các server asterisk

Phương pháp ứng dụng này rất hiệu quả cho các công ty có trụ sở ở nhiều vị trí địa lý khác nhau, giúp giảm chi phí đường dài Chẳng hạn, một công ty có hai văn phòng tại Thành phố Hồ Chí Minh và Hà Nội có thể tiết kiệm đáng kể chi phí thông qua mạng WAN, nhờ vào các cuộc gọi nội bộ giữa các vị trí khác nhau.

CÁC KHÁI NIỆM TRONG HỆ THỐNG ASTERISK

PBX (Private Branch Exchange) là hệ thống tổng đài nội bộ được lắp đặt tại nhà thuê bao, hoạt động như một tổng đài điện thoại riêng Hệ thống này cho phép kết nối một hoặc nhiều điện thoại nội bộ bên trong, mang lại sự tiện lợi và hiệu quả cho việc quản lý cuộc gọi.

PBX là hệ thống trung chuyển cho phép nhiều thuê bao nội bộ gọi ra thế giới bên ngoài thông qua một vài đường trung kế Hệ thống này kết nối các đường dây điện thoại bên ngoài từ công ty điện thoại với các máy điện thoại nội bộ trong tổng đài PBX Do đó, số lượng máy điện thoại nội bộ thường lớn hơn số đường dây kết nối đến PBX từ bên ngoài.

PBX (Private Branch Exchange) là hệ thống chuyển mạch cuộc gọi, cho phép kết nối các máy điện thoại nội bộ với nhau và với các máy điện thoại bên ngoài thông qua đường trung kế Hệ thống này cũng đảm bảo việc chuyển mạch các cuộc gọi từ bên ngoài vào các máy điện thoại nội bộ một cách hiệu quả.

Hệ thống chuyển mạch cuộc gọi PBX không chỉ đơn thuần là công cụ kết nối cuộc gọi, mà còn mang lại nhiều tính năng hữu ích cho khách hàng, vượt xa khả năng của các đường dây điện thoại truyền thống Các tính năng nổi bật như tương tác thoại (IVR), hộp thư thoại (Voicemail) và phân phối cuộc gọi tự động (ADC) giúp tối ưu hóa quy trình giao tiếp và nâng cao trải nghiệm người dùng.

SVTH: NGUYỄN VĂN CHIẾN LỚP: L14CQVT01-N Page | 10

Hiện nay, sự phát triển mạnh mẽ của công nghệ VoIP đã dẫn đến sự xuất hiện của thuật ngữ IP PBX, một hệ thống chuyển mạch PBX tích hợp công nghệ VoIP.

1.6.2 VOIP –VOICE OVER INTERNET PROTOCOL

VoIP, hay Voice over Internet Protocol, là công nghệ cho phép truyền tải âm thanh qua mạng IP, dựa trên hạ tầng của Internet Hiện nay, VoIP đang thu hút sự chú ý không chỉ từ các nhà khai thác và nhà sản xuất mà còn từ người tiêu dùng dịch vụ viễn thông.

VoIP không chỉ cho phép thực hiện tất cả các loại cuộc gọi giống như mạng điện thoại truyền thống (PSTN) mà còn có khả năng truyền dữ liệu qua mạng Với những lợi thế về chi phí dịch vụ và khả năng tích hợp nhiều loại hình dịch vụ, VoIP đang ngày càng được triển khai rộng rãi.

Dịch vụ điện thoại VoIP sử dụng giao thức IP để truyền tín hiệu âm thanh qua mạng Quá trình này bao gồm việc số hóa và nén tín hiệu giọng nói, chia nhỏ thành các gói tin và gửi đi Tại điểm nhận, các gói tin được ráp lại theo thứ tự và giải mã để phục hồi âm thanh ban đầu.

Cuộc gọi VoIP sử dụng cả chuyển mạch kênh và chuyển mạch gói, mỗi loại đều có những ưu điểm và nhược điểm riêng.

Kỹ thuật chuyển mạch kênh cho phép thiết lập một kênh truyền cố định giữa hai thiết bị đầu cuối thông qua các node chuyển mạch trung gian Tốc độ truyền dẫn trong chuyển mạch kênh luôn ổn định, với băng thông không đổi; ví dụ, trong mạng điện thoại PSTN, tốc độ này là 64 kbps Phương pháp này cũng đảm bảo độ trễ thấp trong quá trình truyền dẫn.

Trong chuyển mạch gói, dữ liệu được chia thành các gói nhỏ gọi là packet, và hoạt động dựa trên hệ thống lưu trữ và chuyển tiếp tại các node mạng Không giống như chuyển mạch kênh, chuyển mạch gói không có khái niệm về kênh riêng và băng thông có thể thay đổi, dẫn đến độ trễ lớn do không quy định thời gian cho mỗi gói dữ liệu Mỗi gói có thể đi qua nhiều con đường khác nhau để đến đích, khiến chuyển mạch gói trở thành lựa chọn lý tưởng cho việc truyền dữ liệu không yêu cầu thời gian thực, như trong trường hợp thoại Để tận dụng ưu điểm của cả hai phương pháp, VoIP kết hợp sử dụng cả chuyển mạch kênh và chuyển mạch gói.

CÁC HÌNH THỨC BÁO HIỆU GIAO TIẾP TDM

FXO (Văn phòng Giao dịch Ngoại tệ) là thiết bị nhận tín hiệu từ tổng đài, bao gồm các tín hiệu như chuông, nhấc máy, mời quay số, và gửi nhận tín hiệu thoại FXO hoạt động tương tự như máy Fax hoặc modem dial-up 56k, được sử dụng để kết nối với đường dây điện thoại.

SVTH: NGUYỄN VĂN CHIẾN LỚP: L14CQVT01-N Page | 11

FXS (Foreign Exchange Station) là thiết bị cung cấp đường dây điện thoại, chịu trách nhiệm cung cấp tín hiệu mời quay số, dòng chuông và hồi âm chuông Trong hệ thống đường dây Analog, FXS cung cấp điện áp -48VDC cho điện thoại hoạt động trong suốt cuộc gọi và phát ra 90VAC (20Hz) để tạo điện áp rung chuông Thiết bị FXS hoạt động song song với thiết bị FXO, trong đó FXS phát tín hiệu còn FXO nhận tín hiệu.

Để kết nối và thực hiện cuộc gọi từ các máy điện thoại nội bộ trong hệ thống IP PBX Asterisk đến mạng PSTN, cần có thiết bị phần cứng tương thích, cụ thể là các card FXO/FXS Những card này cho phép hệ thống IP PBX Asterisk giao tiếp hiệu quả với mạng PSTN.

Hình 1.6: Card FXO và FXS

1.7.2 BÁO HIỆU ANALOG GIỮA ĐẦU CUỐI VÀ TỔNG ĐÀI

Khi gọi điện, chúng ta nghe tín hiệu mời quay số và tín hiệu bận (busy tone) khi đầu dây bên kia không thể nhận cuộc gọi Những tín hiệu này được gọi là tín hiệu báo hiệu analog, bao gồm các tín hiệu như mời quay số, tín hiệu bận, rung chuông và trạng thái nhấc gác máy Các tín hiệu này được trao đổi giữa thiết bị FXO và FXS.

1.7.3 BÁO HIỆU GIỮA CÁC TỔNG ĐÀI

Hệ thống báo hiệu số 7 (SS7) được phát triển bởi AT&T và ITU, đóng vai trò quan trọng trong việc chuyển cuộc gọi giữa các tổng đài trong mạng PSTN Trong SS7, tín hiệu được truyền tải qua đường trung kế kết nối giữa hai tổng đài thông qua hai mạch riêng biệt: một mạch dành cho thoại và một mạch dành cho báo hiệu Điều này cho phép thoại và báo hiệu được xử lý trên hai kênh vật lý khác nhau, nâng cao hiệu quả và độ tin cậy của hệ thống.

SVTH: NGUYỄN VĂN CHIẾN LỚP: L14CQVT01-N Page | 12

BÁO HIỆU TRÊN MẠNG ĐIỆN THOẠI VOIP

SIP (Session Initiation Protocol) là giao thức Internet dành cho báo hiệu VoIP, được phát triển bởi IETF, cung cấp chức năng tương tự như hệ thống báo hiệu số 7 nhưng dựa trên nền tảng IP Giao thức này thực hiện việc thiết lập và báo hiệu cuộc gọi, bao gồm các tín hiệu như mời quay số và tín hiệu bận, với khả năng chuyển tải thoại trên hai kênh riêng biệt SIP là phần thiết lập mặc định trong Asterisk, với hỗ trợ từ module chan_sip.so, và hầu hết các thiết bị VoIP mới đều tương thích với giao thức này Một trong những ưu điểm của SIP là kích thước mã nhỏ hơn, do nó chỉ hỗ trợ các tính năng cơ bản, trong khi các tính năng tiên tiến được hỗ trợ qua các chuẩn Internet riêng biệt.

Cú pháp điều khiển SIP tương tự như các giao thức IETF khác như SMTP, HTTP và FTP SIP được xem là một tiêu chuẩn quan trọng trong VoIP nhờ vào sự đơn giản của nó so với các giao thức như H.323 Để cấu hình giao thức SIP, người dùng cần soạn thảo trong tập tin.

Tập tin /etc/asterisk/sip.conf chứa các thiết lập quan trọng trong phần [general], tiếp theo là các định nghĩa cho người sử dụng mà chúng ta sẽ phân tích chi tiết hơn trong phần cấu hình Asterisk.

Mặc dù hai thiết bị SIP có khả năng giao tiếp trực tiếp để khởi tạo cuộc gọi, giao thức SIP còn tích hợp chức năng Proxy để linh hoạt hơn trong việc thiết lập cuộc gọi Proxy Server ghi nhận tất cả các số điện thoại mà client đăng ký qua bản tin "Registration" Khi một client khác muốn thực hiện cuộc gọi, client đó không biết số điện thoại cần gọi đang ở đâu, vì vậy họ sử dụng Proxy Server để tìm kiếm và thiết lập cuộc gọi.

Hình 1.7: Đăng ký từ Client đến SIP Proxy

RTP (Giao thức truyền tải thời gian thực) là giao thức chịu trách nhiệm chuyển đổi các cuộc gọi Internet sử dụng giao thức SIP thành các gói thoại và video RTP không chỉ đảm bảo việc truyền tải âm thanh mà còn hỗ trợ video, giúp các cuộc gọi diễn ra một cách mượt mà và hiệu quả trên nền tảng Internet.

RTP (Real-time Transport Protocol) hoạt động với hai hướng thông tin là nhận và phát, chuyển các gói dữ liệu thoại trong thời gian ngắn Để giảm thiểu độ trễ trong liên lạc thoại, RTP nỗ lực đảm bảo rằng dữ liệu được truyền và nhận một cách hiệu quả, nhằm ngăn ngừa độ trễ ở mức tối đa có thể.

NAT (Network Address Translator) là công nghệ cho phép mạng chia sẻ nhiều địa chỉ IP nội bộ thông qua một địa chỉ IP công cộng để kết nối Internet Mặc dù NAT giúp nhiều máy tính trong mạng LAN nội bộ truy cập Internet, nhưng nó cũng gây khó khăn cho việc thực hiện cuộc gọi VoIP qua Internet, đặc biệt là trong việc truyền thoại qua giao thức RTP.

Giao thức RTP cho phép thoại được truyền qua hai đường riêng biệt: đường phát và đường thu Tuy nhiên, vấn đề NAT gây khó khăn cho việc nhận tín hiệu thoại từ bên ngoài vào bên trong, trong khi cuộc gọi từ các máy nội bộ ra Internet vẫn hoạt động tốt Nói cách khác, NAT ngăn cản các cuộc gọi từ Internet vào các máy nội bộ, dẫn đến tình trạng không nghe được, trong khi các cuộc gọi từ máy nội bộ ra bên ngoài vẫn nghe rõ ràng.

Vấn đề NAT trên được giải quyết trong Asterisk bằng việc khai báo thông số NAT=yes trong cấu hình kênh giao thức SIP

IAX là một giao thức được phát triển bởi các tác giả của phần mềm Asterisk nhằm khắc phục những hạn chế của SIP và H.323 Giao thức này cho phép máy chủ Asterisk thực hiện nhiều chức năng mà các chuẩn khác không thể làm được Một trong những ưu điểm nổi bật của IAX là khả năng xuyên qua NAT một cách dễ dàng, điều này rất quan trọng vì hầu hết các tường lửa và gateway Internet tại nhà đều sử dụng NAT Trong khi SIP và H.323 phải nỗ lực phát triển các tiêu chuẩn để vượt qua các dạng NAT khác nhau, IAX có khả năng hoạt động hiệu quả qua hầu hết các thiết bị NAT.

IAX là giao thức có khả năng cấu hình linh hoạt hơn so với các giao thức khác khi tương tác với Asterisk Với mã nguồn mở, người dùng có thể chỉnh sửa và đề xuất các thay đổi để được xem xét cho các phiên bản Asterisk trong tương lai Giao thức này hỗ trợ trung kế cho các cuộc gọi, cho phép nhiều cuộc gọi được kết hợp trong một luồng duy nhất, từ đó tiết kiệm băng thông đáng kể nhờ giảm thiểu overhead của nhiều luồng Ngoài ra, IAX cũng kết nối giữa các server và hỗ trợ chức năng "switch command", giúp định tuyến cuộc gọi hiệu quả giữa các server Asterisk.

SVTH: NGUYỄN VĂN CHIẾN LỚP: L14CQVT01-N Page | 14

XÂY DỰNG TỔNG ĐÀI NỘI BỘ ASTERISK

CÀI ĐẶT TỪNG PHẦN

Để cài đặt tổng đài Asterisk trên máy tính cá nhân sử dụng hệ điều hành Windows 10, bạn cần cài đặt phần mềm ảo hóa Oracle VM VirtualBox để thiết lập môi trường CentOS Sau khi cài đặt CentOS, bạn có thể tiến hành cài đặt tổng đài IP PBX Asterisk.

To install Oracle VM VirtualBox, follow the detailed guide available at the link: http://forum.bkav.com.vn/forum/bkav-forum/bkav-contest/29597-huong-dan-tao-may-ao-bang-virtualbox-complete This resource provides step-by-step instructions for setting up a virtual machine effectively.

✓ Cài đặt một hệ điều hành Linux lên máy ảo, ở đây em dùng CentOS 6.7

Hướng dẫn cài tại địa chỉ: https://www.sitecuatui.com/cai-dat-centos-tren- virtualbox/

✓ Cài đặt các gói tổng đài Asterisk

✓ Cài đặt công cụ hỗ trợ vận hành, cấu hình Asterisk

- Phần mềm MobaXterm, phần mềm softPhone (X-lite, Zoiper).

CÀI ĐẶT ASTERISK TRÊN CENTOS 6.7

Mục tiêu: Cài đặt Asterisk từ source trên CentOS 6.7

2.2.1 CHUẨN BỊ MÁY ẢO CENTOS 6.7 64BIT

Tiến hành đăng nhập với usename và password đã đăng ký khi cài CentOS

Tiến hành update cho CentOS6.7 bằng lệnh sau:

- #Yum update –y : lệnh dùng nâng cấp CenOS lênh phiên bản cao nhất

SVTH: NGUYỄN VĂN CHIẾN LỚP: L14CQVT01-N Page | 15

- #Reboot : khởi động lại CentOS

2.2.2.1 TẢI CÁC GÓI PHẦN MỀM CẦN THIẾT TRƯỚC KHI CÀI ĐẶT

▪ Tạo thư mục lưu trữ các tập tin cài đặt Asterisk

To download the Asterisk installation packages, use the `wget` command These packages can be obtained from the official Asterisk website at http://www.asterisk.org/downloads To do this, right-click on the download link for the installation packages and select "Copy link location."

▪ Lần lượt download các gói tin về thư mục /usr/src/asterisk gồm:

Gói dahdi-linux-complete cung cấp các driver cần thiết cho phần cứng giao tiếp với Asterisk, do Digium phát triển Ngoài ra, gói này còn bao gồm một số thư viện hỗ trợ việc thực hiện giao tiếp với phần cứng hiệu quả.

Thư viện libpri cung cấp driver cho các card giao tiếp trung kế PRI và một số phần cứng khác Dù Asterisk không sử dụng card PRI, việc cài đặt gói này vẫn cần thiết vì một số module của Asterisk yêu cầu thư viện này.

Ta dùng các lệnh sau:

# wget http://downloads.asterisk.org/pub/telephony/dahdi-linux- complete/dahdi-linux-complete-current.tar.gz

# wget http://downloads.asterisk.org/pub/telephony/libpri/libpri-current.tar.gz

# wget http://downloads.asterisk.org/pub/telephony/asterisk/asterisk-13 current.tar.gz

Trước khi biên dịch các gói tin tải về vào hệ thống, chúng ta cần giải nén chúng do các gói tin này được nén lại Để thực hiện việc giải nén, ta sử dụng các câu lệnh sau.

# tar -zxvf asterisk-13-current.tar.gz

# tar -zxvf dahdi-linux-complete-current.tar.gz

# tar -zxvf libpri-current.tar.gz

▪ Cài đặt các gói phụ

# make && make install && make config

SVTH: NGUYỄN VĂN CHIẾN LỚP: L14CQVT01-N Page | 16

▪ Cài đặt các gói cần thiết cho Asterisk:

#./contrib/scripts/install_prereq install

#./contrib/scripts/install_prereq install-unpackaged

(./configure libdir=/usr/lib nếu bạn sử dụng CentOS 32bit)

#./contrib/scripts/get_mp3_source.sh

(Chọn như Picture để cài thêm format mp3)

Hình 2.2: Cài định dạng đuôi mp3

#make && make install && make config && make install-logrotate

(cai đặt các file cấu hình mẫu)

(tự start asterisk khi khởi động server)

#sed -i -e s,'SELINUX=enforcing','SELINUX=disabled', /etc/selinux/config

SVTH: NGUYỄN VĂN CHIẾN LỚP: L14CQVT01-N Page | 17

Sau khi cài xong Asterisk sẽ có giao diện như sau:

Hình 2.3: Giao diện server Asterisk

2.2.3 CÁC CÔNG CỤ HỖ TRỢ VẬN HÀNH VÀ CẤU HÌNH ASTERISK

2.2.3.1 MOBAXTERM Đây là một SSH Client , ứng dụng quản trị máy chủ từ xa thông qua SSH dành cho máy khách, MobaXterm có các tính năng sau:

• Lưu trữ thông tin của nhiều server theo dạng profile Muốn kết nối vào server nào thì click 1 cái, nó sẽ tự mở tab mới

• Có tính năng Multi Execution – Nghĩa là gõ một lệnh thực thi cùng lúc trên nhiều server

• Hỗ trợ lưu session, không cần gõ lại mật khẩu mà chỉ cần nhập username là nó tự tìm session phù hợp

• Remote vào máy tính khác, giống như Teamviewer

Hình 2.4: Giao diện Mobaxterm khi ssh vào server

SVTH: NGUYỄN VĂN CHIẾN LỚP: L14CQVT01-N Page | 18

Các phần mềm dùng gọi điện thoại VoIP thông dụng nhất hiện nay:

Hình 2.5a: phần mềm Zoiper Hình 2.5b: phần mềm Jitsi

Hình 2.5c: phần mềm X-Lite Hình 2.5d: phần mềm PortGo

SVTH: NGUYỄN VĂN CHIẾN LỚP: L14CQVT01-N Page | 19

CÁCH CẤU HÌNH ASTERISK

Thư mục /etc/asterisk lưu trữ tất cả các tập tin cấu hình cho Asterisk, với mỗi ứng dụng có tập tin riêng Tuy nhiên, hai tập tin cấu hình quan trọng nhất là sip.conf và extensions.conf, nằm trong thư mục này.

Tệp tin này chứa chi tiết cấu hình thuê bao SIP, bao gồm cấu hình chung (trong thẻ

The article discusses the configuration of each subscriber, detailing essential information for client internal numbers such as username, password, IP address, type, and security settings.

Trong phần [general], các thông số chung cho tất cả các thuê bao SIP được khai báo trong toàn bộ tập tin Dưới đây là những tham số chính cần lưu ý.

Context Tất cả các cuộc gọi mặc định sẽ được chuyển đến ngữ cảnh này ngoại trừ phần dưới tệp tin cấu hình có khai báo ngữ cảnh khác

Udpbindaddr là địa chỉ IP mà client sử dụng để kết nối với kênh UDP; nếu được thiết lập là 0.0.0.0, điều này có nghĩa là chấp nhận tất cả các địa chỉ IP Tham số Tcpenable cho phép người dùng bật (Yes) hoặc tắt (No) chức năng TCP.

Tcpbindaddr là địa chỉ IP mà client sử dụng để kết nối đến kênh TCP; nếu được thiết lập là 0.0.0.0, điều này có nghĩa là cho phép tất cả các địa chỉ IP Transport xác định giao thức truyền thoại, bao gồm UDP và TCP/IP, trong khi srvlookup quyết định việc kích hoạt chức năng DNS SRV lookup Callcounter cho phép kích hoạt truy cập cuộc gọi cho các thiết bị SIP khi được đặt là yes Cuối cùng, Register được sử dụng để kết nối và giao tiếp với server khác.

Để quản lý các codec (encoder/decoder) cho các cuộc gọi SIP trong Asterisk, trước tiên bạn cần thiết lập disallow=all để vô hiệu hóa tất cả các codec Sau đó, bạn có thể cho phép từng codec cụ thể bằng cách sử dụng lệnh allow=codec, ví dụ như gsm, alaw, ulaw, và nhiều codec khác.

Musicclass là nơi thiết lập các bản nhạc chờ mặc định cho tất cả các cuộc gọi SIP Mặc định là “default”

Nat Có 2 trạng thái yes|no cho phép hoặc không cho phép route ra mạng bên ngoài

Bảng 2.1: Tham số context general

SVTH: NGUYỄN VĂN CHIẾN LỚP: L14CQVT01-N Page | 20

Cấu hình thuê bao cho phép khai báo các kênh SIP riêng biệt cho từng thuê bao Các thông số trong phần [general] sẽ áp dụng cho các kênh này, trừ khi có cấu hình khác tại phần cấu hình kênh.

Username Đây là phần cấu hình cho thuê bao có tên tương ứng, tên có thể là ký tự hay con số

Secret Mật khẩu để sử dụng kênh này

Type Kiểu kết nối thông tin user, peer hay friend Kiểu user là chỉ gọi, kiểu peer là chỉ nghe và kiểu friend là kết hợp của cả 2

Host Địa chỉ IP hay tên miền mà client kết nối với kênh này Giá trị là dynamic cho tất cả client kết nối đến

Context Các thuê bao cùng ngữ cảnh có thể nói chuyện với nhau

Permit Thiết lập danh sách các địa chỉ IP cho phép đăng ký đến Mặc định là tất cả các địa chỉ đều được phép

Deny Thiết lập danh sách các địa chỉ IP không cho phép đăng ký

Bảng 2.2: Tham Số Dành Riêng Cho Từng Thuê Bao 2.3.2 EXTENSIONS.CONF

Tệp tin cấu hình Dialplan trong hệ thống Asterisk xác định cách xử lý các cuộc gọi Nó thiết lập hoạt động của hệ thống bằng cách định hướng các cuộc gọi vào và ra, tạo thành một danh sách các bước và lệnh liên tiếp để thực hiện các tác vụ cần thiết Dialplan được cấu hình qua tập tin extension.conf, bao gồm các khái niệm cơ bản như Extension (số nội bộ), Priority (độ ưu tiên), Application (ứng dụng) và Context (ngữ cảnh).

Trong mỗi ngữ cảnh, có thể tồn tại nhiều extension, đóng vai trò là hạt nhân để hệ thống xác định cuộc gọi cần thực hiện Một extension hoàn chỉnh bao gồm các thành phần: exten, priority và application().

▪ Extension: là số điện thoại được quay số

▪ Priority: là thứ tự thực hiện các ứng dụng trong dialplan

▪ Application: là một ứng dụng cụ thể cho cuộc gọi

SVTH: NGUYỄN VĂN CHIẾN LỚP: L14CQVT01-N Page | 21

Ví dụ: cài đặt Dialplan để có thể thực hiện các cuộc gọi đến thuê bao 101:

[default] exten=>101,1,Dial(SIP/101,20) exten=>101,2,Hangup()

▪ Lệnh “exten=>” mô tả bước tiếp theo của cuộc gọi đến số “101”

Số “1” và “2” thể hiện độ ưu tiên trong việc xử lý lệnh, với “1” được ưu tiên xử lý trước “2” Trong trường hợp này, “2” có thể được thay thế bằng thuật ngữ “n” để đại diện cho các mức ưu tiên tiếp theo.

Lệnh "Dial(SIP/101,20)" được sử dụng để gọi số 101, với "20" là thời gian chờ nghe máy tính bằng giây Bạn có thể sử dụng biến ${EXTEN} thay cho số 101 trong phần ứng dụng, biến này sẽ lấy số mà người dùng đã nhập vào.

▪ Lệnh “Hangup()” là giải phóng cuộc gọi.

Khi bạn quay số "101", lệnh "exten=>" sẽ kết nối đến điện thoại SIP IP đã đăng ký với số "101" Nếu cuộc gọi không được trả lời trong vòng 20 giây, hệ thống sẽ tự động giải phóng cuộc gọi.

Một extension là tập hợp các lệnh hướng dẫn Asterisk thực hiện những công việc cụ thể Kế hoạch quay số bao gồm nhiều extension, và khi một cuộc gọi tương ứng với một extension nào đó, ứng dụng liên quan sẽ được thực thi.

Một extension có nhiều dạng như sau: Định dạng Giá trị

_2XX Số đại diện tổng quát

S Extension khởi tạo là extension chính để thực thi nếu không có số extension nào khác được đưa vào Điều này đánh dấu sự bắt đầu cho một số đại diện tổng quát.

.(dấu chấm) Số bất kỳ

Bảng 2.3: Các Dạng Của Extension

Trong kế hoạch quay số, "priority" xác định thứ tự thực hiện các ứng dụng, với Asterisk bắt đầu từ priority 1 và tiếp theo là priority 2 Một số lệnh có thể yêu cầu Asterisk chuyển đến priority n +1.

THI CÔNG HỆ THỐNG TỔNG ĐÀI ASTERISK CƠ BẢN

Phần này sẽ tiến hành thi công một mô hình tổng đài nội bộ cơ bản như sau:

✓ Tổng đài PBX Asterisk được cài trên hệ điều hành CentOS

✓ CentOS được cài trên máy ảo Oracle VM VirtualBox

✓ Oracle VM VirtualBox cài trên máy Laptop cá nhân

✓ Các softphone X-Lite, Zoiper, PortGo cài trên Laptop cá nhân

✓ Cấu hình phần cứng Laptop: Chip intel core i5, ram 6Gb, HDD 500Gb, card wifi onboard

Hình 2.6: Mô hình IP PBX Asterisk

▪ Các softphone và tổng đài PBX Asterisk điều được cài trên một máy tính, các softphone dùng chung phần cứng máy tính như micro, loa

▪ Router wifi được kết nối đến nhà cung cấp dịch vụ Internet

▪ Máy tính kết nối đến router wifi thông qua card wifi onboard

Trong thí nghiệm trên, kết quả mong muốn đạt được là:

▪ Thiết lập được cuộc gọi giữa các softphone trong mạng LAN

▪ Gọi ra PSTN với số DID làm đại diện

This section focuses on configuring Asterisk by initializing accounts for softphones in the sip.conf file, setting up routing for softphones to communicate with each other in the extension.conf file, and configuring SIP trunking in the sip.conf file to enable softphones to make calls to the PSTN network.

SVTH: NGUYỄN VĂN CHIẾN LỚP: L14CQVT01-N Page | 26

2.4.2.1 CẤU HÌNH FILE SIP.CONF

Mở file sip.conf như sau : vi /etc/asterisk/sip.conf

[general] context=public udpbindaddr=0.0.0.0:5060 tcpenable=no tcpbindaddr=0.0.0.0:5060 transport=udp srvlookup=yes callcounter=yes directmedia=yes derectrtpsetup=yes register =>2663059143:3240552995@sip.tel4vn.com:50061/0873020777

[201] username 1 secret3qwe type=friend host=dynamic context=tongdai qualify=yes directmedia=no disallow=all allow=gsm allow=ulaw allow=alaw

[202] username 2 secret3qwe type=friend host=dynamic context=tongdai qualify=yes directmedia=no

SVTH: NGUYỄN VĂN CHIẾN LỚP: L14CQVT01-N Page | 27 disallow=all allow=gsm allow=ulaw allow=alaw

The configuration details for the SIP connection include a username of "63059143," a friend type, and a secret code of "240552995." The host is set to "sip.tel4vn.com," with NAT settings configured for forced remote port and comedia DTMF signaling is managed using RFC2833, and the connection is qualified for reliability All codecs are disallowed except for ulaw and alaw, with the context designated as "tongdai." The port is labeled as P061, and the connection is marked as insecure for both port and invite.

2.4.2.2 CẤU HÌNH FILE EXTENSIONS.CONF

[general] static=yes writeprotect=no clearglobalvars=no

Cấu hình dialplan cho extension 2XX gọi local và outboud PSTN

[tongdai] exten => _2XX,1,Log(NOTICE, Call local in tongdai context) exten => _2XX,n,Dial(SIP/${EXTEN},60) exten => _2XX,n,Hangup() exten => _0Z.,1,Dial(SIP/trunk/${EXTEN},60) exten => _0Z.,n,Hangup()

SVTH: NGUYỄN VĂN CHIẾN LỚP: L14CQVT01-N Page | 28

2.4.2.3 THIẾT LẬP CÁC SOFTPHONE VÀ KIỂM TRA CUỘC GỌI Để kiểm tra cuộc gọi nội bộ dùng softphone, ta thiết lập đăng ký các tài khoản sip đã tạo trước đó ( 201, 202) cho softphone như sau:

▪ Cài đặt và khởi động các chương trình softphone : X-Lite, Zoiper

▪ Vào mục Account settings (X-Lite), preferences (Zoiper)

▪ Thiết lập các thông số của số nộ bộ để kết nối với tổng đài như:

- Account name: tên đại diện của số nội bộ

- User ID: là số nội bộ

- Domain: là IP của server Asterisk

- Passwork: là mật khẩu của số nội bộ (secret)

Hình 2.7: Thiết lập X-Lite Hình 2.8: Thiết lập Zoiper

SVTH: NGUYỄN VĂN CHIẾN LỚP: L14CQVT01-N Page | 29

Kiểm tra cuộc gọi từ 201 đến 202:

Kiểm tra cuộc gọi từ 202 đến PSTN 0981030095:

Hình 2.10: Account 202 call ra PSTN

SVTH: NGUYỄN VĂN CHIẾN LỚP: L14CQVT01-N Page | 30

PHÂN TÍCH BẢN TIN SIP

Dùng tool Sngrep để bắt các bản tin, tool này cài trực tiếp trên CentOS thông qua các gói cài đặt, có giao diện đồ họa trực quan

Cách cài tham khảo theo link sau: https://wiki.4psa.com/display/KB/How+to+install+sngrep+on+your+VoipNow+server

Khởi chạy Sngrep bằng lệnh #sngrep

Tiến hành đăng ký một softphone với tổng đài Asterisk

Mở bản tin bằng cách nhấn Enter bản tin đó

Hình 2.13: Bên trong bản tin Register

192.168.100.4:49747 : là IP của user 201 có port 49747

192.168.100.8:5060 : là IP của server chạy Asterisk có port 5060

SVTH: NGUYỄN VĂN CHIẾN LỚP: L14CQVT01-N Page | 31

Quá trình đăng ký như sau:

- User gửi bản tin REGISTER lên server

- Server gửi lại bản tin 401 Unauthorized yêu cầu chứng thực, với kèm thuật toán MD5 và chuỗi ký tư ngẫu nhiên nonce.

- User gửi lên lại bản tin REGISTER với chuỗi chứng thực nằm trong phần Authorization.

- Server kiểm tra và gửi về 200 OK để báo cho user biết đã đăng ký thành công.

Thực hiện cuộc gọi từ 201 đến 202

SVTH: NGUYỄN VĂN CHIẾN LỚP: L14CQVT01-N Page | 32

Quá trình thiết lập và giải phóng cuộc gọi nội bộ (201 gọi 202) được mô tả trong hình sau:

Hình 2.15: Quá trình thiết lập và giải phóng cuộc gọi

SVTH: NGUYỄN VĂN CHIẾN LỚP: L14CQVT01-N Page | 33

1) User 201 gửi bản tin INVITE đến server yêu cầu thiết lập cuộc gọi đến 202, trong bản tin INVITE chứa phần SDP là các thông số địa chỉ ip, port, codecs, mà 201 sử dụng trong quá trình truyền và nhận RTP

2) Server gửi lại bản tin 401 Unauthorized yêu cầu 201 chứng thực với thuật toán MD5 và chuỗi ký tự ngẫu nhiên nonce.

3) 201 gửi bản tin ACK thông báo cho server biết là đã nhận được yêu cầu chứng thực từ server

4) 201 gửi lại bản tin INVITE với chuỗi chứng thực nằm trong phần

5) Server kiểm tra và xác định 201 đã chứng thực thành công, do đó server gửi bản tin 100 Trying để báo cho 201 chờ đợi trong khi server kết nối với 202

6) Server gửi bản tin INVITE đến 202 Chú ý phần SDP đã được server thay đổi với ip, port,codec, của server Với kết quả như thế này ta có thể suy ra rằng server sẽ tham gia vào quá trình truyền RTP giữa 201 và 202

7) 202 gửi 100 Trying báo cho server biết là đang xử lý

8) 202 gửi lại cho server tín hiệu hồi âm chuông 180 Ringing

9) Server chuyển tiếp tín hiệu hồi âm chuông đến 201

10) Thuê bao 202 nhấc máy, gửi bản tin 200 OK chứa các thông số truyền nhận RTP trong phần SDP

11) Server gửi trả lại ACK thông báo cho 202 rằng server đã nhận được bản tin 200 OK

12) Server chuyển tiếp bản tin 200 OK đến 201 Cũng giống như trong bước

(6) do server được cấu hình tham gia vào cả quá trình truyền thoại nên phần SDP đã được thay đổi thành ip, port, codecs, của server

Trong quy trình giao tiếp, 1001 gửi bản tin ACK để thông báo cho server rằng đã nhận được bản tin 200 OK Lúc này, hai phiên bản 201 và 202 đã thiết lập kết nối với nhau, và server Asterisk đóng vai trò trung gian trong việc truyền tải tín hiệu thoại giữa chúng.

14) Sau khi kết thúc cuộc đàm thoại, thuê bao 202 cúp máy, gửi bản tin BYE đến server

15) Server gửi lại 200 OK cho phép 202 kết thúc phiên

16) Server gửi bản tin BYE cho 201 để báo phiên đã kết thúc

17) 1001 gửi lại 200 OK xác nhận kết thúc phiên

SVTH: NGUYỄN VĂN CHIẾN LỚP: L14CQVT01-N Page | 34

XÂY DỰNG CÁC DỊCH VỤ GIÁ TRỊ GIA TĂNG TRÊN NỀN

GIỚI THIỆU

Dịch vụ giá trị gia tăng (VAS) là thuật ngữ phổ biến trong ngành viễn thông, chỉ những dịch vụ ngoài gọi điện và fax Đối với điện thoại di động, VAS bao gồm các dịch vụ như SMS, nhạc chờ và các dịch vụ trên nền tảng dữ liệu như GPRS hay 3G Những dịch vụ này không chỉ nâng cao trải nghiệm người dùng mà còn đóng góp vào doanh thu của các nhà cung cấp dịch vụ viễn thông.

Hệ thống tổng đài VoIP ngày càng phát triển với nhiều lợi ích như cuộc gọi nội bộ miễn phí, chuyển tiếp cuộc gọi và cuộc gọi chờ Đặc biệt, công nghệ VoIP mang lại nhiều dịch vụ hữu ích cho khách hàng như quà tặng âm nhạc, dịch vụ tra cứu xổ số và điểm thi đại học Người dùng không chỉ mong muốn các dịch vụ cơ bản mà còn tìm kiếm nhiều tiện ích hơn Hệ thống Asterisk có khả năng đáp ứng nhu cầu này một cách hiệu quả Đề tài này nghiên cứu việc xây dựng các dịch vụ trên tổng đài Asterisk, bao gồm dịch vụ tra cứu kết quả xổ số VIETLOTT và thông tin tuyển dụng ngành viễn thông.

Các dịch vụ này được triển khai thông qua giao tiếp giữa Asterisk và AGI, sử dụng ngôn ngữ lập trình PHP để cung cấp thông tin từ cơ sở dữ liệu hệ thống cho khách hàng Nhờ vào PHP, các dịch vụ có khả năng mở rộng linh hoạt, đáp ứng nhu cầu thực tế của khách hàng Điều này giúp doanh nghiệp nâng cao tính năng của tổng đài, từ đó cải thiện chất lượng chăm sóc khách hàng.

TỔNG QUAN MYSQL VÀ PHPAGI

MySQL là hệ quản trị cơ sở dữ liệu mã nguồn mở phổ biến nhất trên thế giới, được các nhà phát triển ưa chuộng nhờ vào tốc độ cao, độ ổn định và tính dễ sử dụng Hệ thống này hoạt động trên nhiều nền tảng và cung cấp nhiều hàm tiện ích mạnh mẽ, phù hợp cho các ứng dụng truy cập cơ sở dữ liệu qua internet Với tính bảo mật cao và hoàn toàn miễn phí, người dùng có thể dễ dàng tải MySQL từ trang chủ.

3.2.1.1 KHÁI NIỆM CƠ BẢN VỀ CƠ SỞ DỮ LIỆU (CSDL)

Cơ sở dữ liệu (CSDL) là hệ thống lưu trữ thông tin, với nhiều loại hình khác nhau như CSDL quan hệ, CSDL hướng đối tượng và CSDL phân tán Trong các ứng dụng hiện nay, CSDL quan hệ thường được ưa chuộng và sử dụng phổ biến nhất.

SVTH: NGUYỄN VĂN CHIẾN LỚP: L14CQVT01-N Page | 35

▪ Trong cở sở dữ liệu quan hệ sẽ có các bảng (table), trong các table sẽ có các trường dữ liệu (hay còn gọi là field)

3.2.1.2 CÁC LỆNH CƠ BẢN TRONG MYSQL

▪ Lệnh tạo Database: Create Database Database_Name;

▪ Lệnh dùng database: Use Database_Name;

▪ Xóa database: Drop Database db_Name;

▪ Lệnh tạo bảng: CREATE TABLE table_name(/*column_list*/);

Ví dụ: Cho bảng Sinhvien gồm có các thông tin sau:

• TenSV: Tên sinh viên, kiểu varchar và chiều dài tối đa 255 ký tự

• MaSV: Mã sinh viên, kiểu INT và chiều dai là tối đa 11 số

• NamSinh: Năm sinh, kiểu INT và chiều dài tối đa là 4 số

Create Table Sinhvien(Tensv Varchar(255),Masv Int(11), Namsinh Int(4));

▪ Xóa bảng: Drop Table tb_name;

▪ Lệnh chèn các trường field vào table:

Insert Into table_name VALUES ('field_1', 'field_2', , 'field_n');

Ví dụ: Chèn thông tin của sinh viên Nguyen Van An vào bản Sinhvien

Insert Into Sinhvien Values ('Nguyen Van An',’123’, '1996);

▪ khóa chính (Primary key): PRIMARY KEY(field)

Trong bảng SinhVien, mỗi sinh viên được đại diện bởi một record riêng biệt Để phân biệt các sinh viên, không thể chỉ dựa vào tên, vì tên có thể trùng lặp Do đó, giải pháp hiệu quả là bổ sung một trường MaSV, với giá trị duy nhất cho mỗi sinh viên.

▪ Lệnh SELECT có nhiệm vụ lấy danh sách dữ liệu của một hoặc nhiều bảng trong database, cú pháp lệnh SELECT như sau:

SELECT field1, field2, field3, FROM table_name WHERE

▪ Cập nhật dữ liệu trong bảng, cú pháp:

Update tên_bảng set tên_cột = Giá trị mới WHERE (điều kiện)

3.2.1.3 CÀI ĐẶT MYSQL TRÊN CENTOS 6

▪ Đăng nhập vào CentOS với tài khoản root

#yum install mysql mysql-devel mysql-server php-mysql –y

#yum install php php-devel -y

SVTH: NGUYỄN VĂN CHIẾN LỚP: L14CQVT01-N Page | 36

3.2.2 PHPAGI- LỚP THƯ VIỆN SỬ DỤNG NGÔN NGỮ PHP

PHPAGI (PHP Asterisk Gateway Interface) là một thư viện cơ bản cho ngôn ngữ PHP, giúp người dùng viết các script AGI một cách dễ dàng và hiệu quả hơn.

▪ PHPAGI có thể được download tại: http://sourceforge.net/projects/phpagi/files/

3.2.2.2 CẤU TRÚC FILE CỦA PHPAGI

Thư viện lớp PHPAGI bao gồm hai file chính: phpagi.php, lớp thư viện dùng cho Asterisk AGI API, và phpagi-asmanager.php, lớp thư viện hỗ trợ giao diện manager của Asterisk Khi cài đặt lớp thư viện này cho AGI script, hệ thống sẽ tự động cài đặt lớp thư viện phpagi.php.

3.2.2.3 GỌI MỘT AGI SCRIPT TỪ DIAPLAN

Việc sử dụng AGI rất đơn giản, chỉ cần gọi lệnh AGI() với tên của script AGI làm đối số Ví dụ: trong cấu hình, bạn có thể sử dụng cú pháp như sau: "exten => 201,1,Answer()", "exten => 201,n,AGI(xinchao.php)", và "exten => 201,n,hangup()".

▪ AGI scripts thường được đặt trong thư mục: /var/lib/asterisk/agi-bin

▪ File thư viện lớp phpagi.php được đặt trong thư mục: /usr/share/php

▪ AGI Script có thể được lập trình bằng nhiều ngôn ngữ lập trình khác nhau như Perl, PHP, C, C#, Java ….Ở đây em chọn PHP làm ngôn ngữ để lập trình

3.2.2.4 LẬP TRÌNH AGI SCRIPT BẰNG PHP

Trong phần này, em sẽ đưa ra một ví dụ của lập trình AGI Script bằng PHP và phân tích để hiểu rõ hơn về AGI

Sử dụng softphone để gọi vào tổng đài qua số 201, người dùng sẽ nhận được một lời chào tự động trước khi kết thúc cuộc gọi Chương trình này được phát triển bằng ngôn ngữ PHP và lưu trữ trong tập tin xinchao.php.

▪ Tạo 1 file xinchao.php như sau: vào thư mục #cd /var/lib/asterisk/agi-bin

Gõ lệnh #touch xinchao.php sau đó mở file lên #vim xinchao.php

SVTH: NGUYỄN VĂN CHIẾN LỚP: L14CQVT01-N Page | 37

Dòng 1: Khai báo sử dụng ngôn ngữ php cho thực hiện giao tiếp agi

Dòng 2 và 7: Đóng và mở cho đoạn script php

Dòng 3: Sử dụng file phpagi.php cho thư viện lớp phpagi

Dòng 4: Hàm tạo AGI Kể từ dòng này trở đi, mỗi liên kết với Asterisk đều được thực hiện thông qua biến $agi

Dòng 5: Đây là lệnh đầu tiên của phpagi, thư viện lớp được gọi ra

Dòng 6: Phát file xinchao.wav được đặt trong thư mục: /var/lib/asterisk/sounds/

XÂY DỰNG DỊCH VỤ TRA CỨU KẾT QUẢ XỔ SỐ VIETLOTT, THÔNG

Trong bài viết này, chúng tôi sẽ xây dựng một hệ thống tổng đài trả lời tự động phục vụ khách hàng, cung cấp hai dịch vụ chính: tra cứu kết quả xổ số và thông tin tuyển dụng Khi khách hàng gọi đến số điện thoại 18001234, họ sẽ được chào đón và hướng dẫn nhấn các phím tương ứng để nhận thông tin cần thiết.

3.3.1 GIỚI THIỆU TỔNG QUAN VỀ HỆ THỐNG

Máy A gọi vào đầu số tổng đài 18001234 sẽ nghe lời chào, sau đó là hướng dẫn sử dụng các dịch vụ của tổng đài

- Bấm phím 1: Sử dụng dịch vụ tra cứu kết quả xổ số Vietlott

- Bấm phím 2: Sử dụng dịch vụ tra cứu thông tin tuyển dụng ngành viễn thông

- Bấm phím *: Nghe lại hướng dẫn

- Bấm phím #: Kết thúc cuộc gọi

Hình 3.1: Lưu đồ giải thuật menu chính của hệ thống

Bạn nhập sai cú pháp, xin vui lòng nhập lại Nhập Sai

Lời chào và Hướng dẫn nhấn phím

Menu tra kết quả xổ số

Tra cứu thông tin tuyển dụng

SVTH: NGUYỄN VĂN CHIẾN LỚP: L14CQVT01-N Page | 38

3.3.2 DỊCH VỤ TRA CỨU KẾT QUẢ XỔ SỐ

Hình 3.2: Lưu đồ giải thuật dịch vụ xổ số vietlott

Hệ thống tổng đài tiếp nhận yêu cầu từ người dùng dịch vụ xổ số Vietlott thông qua một lưu đồ Để sử dụng dịch vụ, khách hàng chỉ cần nhấn phím 1 trên điện thoại.

Khách hàng sẽ được chào đón và hướng dẫn về dịch vụ xổ số, bao gồm cú pháp tra cứu kết quả Khi nhập ngày cần tra, khách hàng cần thêm số 0 phía trước cho các ngày nhỏ hơn 10 và khác 0 Dữ liệu sẽ được cập nhật vào cơ sở dữ liệu bởi người quản trị hệ thống.

Khi khách hàng nhập đúng ngày mở thưởng của Vietlott, hệ thống sẽ đọc kết quả xổ số cho khách hàng, bao gồm 12 chữ số được chia thành 6 cặp số.

Nếu khách hàng nhập sai ngày cần tra, hệ thống sẽ thông báo sai cú pháp và yêu cầu nhập lại ngày

Khi kết quả xổ số được công bố, khách hàng sẽ nhận được một yêu cầu để lựa chọn: nghe lại kết quả, tra cứu kết quả xổ số khác hoặc quay về menu chính để chọn loại dịch vụ khác.

Bạn nhập sai ngày hoặc dữ liệu bạn cần tra đã hết hạn, xin vui lòng nhập lại Đúng

Hướng dẫn nghe lại hoặc tra kết quả khác

Hướng dẫn nhập ngày quay thưởng của vietlott

Dịch vụ xổ số vietlott phím 1

Kiểm tra cú pháp Đúng

SVTH: NGUYỄN VĂN CHIẾN LỚP: L14CQVT01-N Page | 39

Nếu khách hàng nhập sai hệ thống sẽ thông báo nhập sai và kết thúc cuộc gọi

1 Nghe lại kết quả xổ số vừa tra

2 Tra kết quả xổ số khác

Bảng 3.1: Ngữ cảnh hướng dẫn nghe lại dịch vụ xổ số 3.3.2.1 TẠO DATABASE CHO DỊCH VỤ

▪ Đăng nhập vào MySQL bằng lệnh: mysql -u root -p

▪ Tạo database tên kqxsvietlott: create database kqxsvietlott

▪ Chọn database vừa tạo: use kqxsvietlott

Để tạo bảng cơ sở dữ liệu cho kết quả xổ số, bạn có thể sử dụng câu lệnh SQL sau: `create table kqxs(ngayxs varchar(2) NOT NULL, cap_mot varchar(2) NOT NULL, cap_hai varchar(2) NOT NULL, cap_ba varchar(2) NOT NULL, cap_bon varchar(2) NOT NULL, cap_nam varchar(2) NOT NULL, cap_sau varchar(2) NOT NULL, KEY(ngayxs));` Bảng này bao gồm các trường cho ngày xổ số và các cấp giải, đảm bảo rằng ngày xổ số là khóa chính.

▪ Kiểm tra các thuộc tính của bảng: describe kqxs;

Hình 3.3: Các thuộc tính của bảng kqxs

▪ Thêm các trường dữ liệu (field) vào bảng, các field này bao gồm ngày xổ số và kết quả xổ số tương ứng

SVTH: NGUYỄN VĂN CHIẾN LỚP: L14CQVT01-N Page | 40

Ngày xổ số của Vietlott diễn ra vào thứ 4, thứ 6 và chủ nhật hàng tuần Do đó, tôi đã chọn tháng có 30 ngày, bắt đầu từ thứ 2, để tạo cơ sở dữ liệu phục vụ cho việc làm demo trong đồ án của mình.

▪ Show bảng vừa tạo ra: select * from kqxs;

Bảng trên thể hiện ngày xổ số (ngàyxs) trong tháng, với ngày 01 tương ứng với thứ Hai, ngày 03 tương ứng với thứ Tư, ngày mà Vietlott tiến hành quay thưởng Vietlott tổ chức quay thưởng vào thứ Tư, thứ Sáu và Chủ Nhật hàng tuần.

Cặp một (cap_mot) là cặp số đầu tiên trong tổng số 6 cặp số trúng giải jackpot, tiếp theo lần lượt là cặp hai (cap_hai), cặp ba (cap_ba) và các cặp số khác cho đến cặp sau.

SVTH: NGUYỄN VĂN CHIẾN LỚP: L14CQVT01-N Page | 41

3.3.3 DỊCH VỤ TRA CỨU THÔNG TIN TUYỂN DỤNG

Hình 3.5: Lưu đồ giải thuật dịch vụ tuyển dụng bạn nhập không đúng vui lòng nhập lại sai

Mời bạn chọn công ty muốn tra cứu Phím 1 : VNPT

Phím 2 : VIETTEL Phím 3 : FPT chọn lĩnh vực tuyển dụng Phím 1: mạng

Phím 2: vô tuyến Phím 3: truyền dẫn

Dịch vụ tuyển dụng phím 2

Play file tuyển dụng Tương ứng với các đối số nhập vào sai đúng sai đúng

Hướng dẫn nghe lại hoặc tra thông tin khác đúng bạn nhập không đúng vui lòng nhập lại

SVTH: NGUYỄN VĂN CHIẾN LỚP: L14CQVT01-N Page | 42

Hệ thống tổng đài tiếp nhận yêu cầu từ người dùng dịch vụ tra cứu thông tin tuyển dụng thông qua lưu đồ Để sử dụng dịch vụ này, khách hàng chỉ cần nhấn phím 2.

Khách hàng sẽ được giới thiệu dịch vụ tra cứu thông tin tuyển dụng ngành viễn thông của Khoa Viễn thông, Học viện Công nghệ Bưu chính Viễn thông TP.HCM Hệ thống sẽ hướng dẫn cú pháp tra cứu, cho phép khách hàng chọn công ty muốn tìm hiểu thông tin tuyển dụng, bao gồm các công ty lớn như VNPT, VIETTEL và FPT Trong trường hợp khách hàng nhập sai mã tra cứu, hệ thống sẽ thông báo lỗi cú pháp và yêu cầu nhập lại mã chính xác.

Sau khi khách hàng lựa chọn mã công ty, hệ thống sẽ hiển thị thông báo yêu cầu chọn chuyên ngành viễn thông cần tra cứu, bao gồm ba lĩnh vực chính: Mạng viễn thông, Vô tuyến và Truyền dẫn.

Nếu khách hàng nhập sai mã ngành cần tra, hệ thống sẽ thông báo sai cú pháp và yêu cầu nhập lại mã ngành

Bảng 3.2: Ngữ cảnh chọn công ty

1 Chọn chuyên ngành mạng viễn thông

2 Chọn chuyên ngành vô tuyến

3 Chọn chuyên ngành truyền dẫn

Bảng 3.3: Ngữ cảnh chọn chuyên ngành ngành

1 Nghe lại thông tin tuyển dụng vừa tra

Bảng 3.4: Ngữ cảnh hướng dẫn nghe dịch vụ tuyển dụng

SVTH: NGUYỄN VĂN CHIẾN LỚP: L14CQVT01-N Page | 43

3.3.4 CẤU HÌNH HỆ THỐNG CHO HAI DỊCH VỤ

3.3.4.1 CẤU HÌNH FILE EXTENSIONS.CONF

[tongdai] exten => 18001234,1,Answer(500) exten => 18001234,n,goto(mainmenu,s,1)

[mainmenu] exten => s,1,Noop(Welcome to hoc vien con nghe buu chinh vien thong) exten => s,2,Answer(500) exten => s,3,Background(loi_chao_mainmenu)

;chờ khach nhấn số chọn lọai dịch vụ exten => s,4,WaitExten(30) exten => s,5,Playback(goodbye) exten => s,6,Hangup()

;nghe lại exten => *,1,goto(mainmenu,s,3)

;khach chon so 1 exten => 1,1,goto(KQXS,s,1) ;nhảy đến nhãn KQXS

;khach chon so 2 exten => 2,1,goto(tuyen_dung,s,1) ;nhảy đến nhãn tuyen_dung

;khách chọn số khác thì nhảy đến saimenu exten => _X,1,goto(saimenu,s,1)

[saimenu] exten => s,1,Playback(nhap_sai_mainmenu) exten => s,n,goto(mainmenu,s,3)

[KQXS] exten => s,1,Noop(Welcome to AGI- tra cu ket qua xs vietlott) exten => s,n,AGI(KQXS.php) exten => s,n,goto(mainmenu,s,3) exten => s,n,Hangup()

[tuyen_dung] exten => s,1,Noop(Welcome to AGI- tra cu thong tin tuyen dung) exten => s,n,AGI(tuyendung.php) exten => s,n,goto(mainmenu,s,3) exten => s,n,Hangup()

SVTH: NGUYỄN VĂN CHIẾN LỚP: L14CQVT01-N Page | 44

- Truy cập file agi-bin qua đường dẫn /var/lib/asterisk/agi-bin

- Tạo 2 file script tên KQXS.php và tuyendung.php

- Tiến hành viết code cho từng file

Ngày đăng: 09/07/2022, 10:38

HÌNH ẢNH LIÊN QUAN

Hình 1.1: Sơ đồ giao tiếp tổng quát của Asterisk - ĐỒ án xây DỰNG các DỊCH vụ GIÁ TRỊ GIA TĂNG ASTERISK
Hình 1.1 Sơ đồ giao tiếp tổng quát của Asterisk (Trang 11)
Hình 1.2: kiến trúc Asterisk - ĐỒ án xây DỰNG các DỊCH vụ GIÁ TRỊ GIA TĂNG ASTERISK
Hình 1.2 kiến trúc Asterisk (Trang 12)
Hình 1.3: Hệ thống chuyển mạch Voip - ĐỒ án xây DỰNG các DỊCH vụ GIÁ TRỊ GIA TĂNG ASTERISK
Hình 1.3 Hệ thống chuyển mạch Voip (Trang 15)
Hình 1.4: Kết nối tổng đài IP PBX với PBX - ĐỒ án xây DỰNG các DỊCH vụ GIÁ TRỊ GIA TĂNG ASTERISK
Hình 1.4 Kết nối tổng đài IP PBX với PBX (Trang 16)
Hình 1.5: Kết nối giữa các server asterisk - ĐỒ án xây DỰNG các DỊCH vụ GIÁ TRỊ GIA TĂNG ASTERISK
Hình 1.5 Kết nối giữa các server asterisk (Trang 17)
Hình 1.6: Card FXO và FXS - ĐỒ án xây DỰNG các DỊCH vụ GIÁ TRỊ GIA TĂNG ASTERISK
Hình 1.6 Card FXO và FXS (Trang 19)
✓ Cài đặt công cụ hỗ trợ vận hành, cấu hình Asterisk. - ĐỒ án xây DỰNG các DỊCH vụ GIÁ TRỊ GIA TĂNG ASTERISK
i đặt công cụ hỗ trợ vận hành, cấu hình Asterisk (Trang 22)
Hình 2.2: Cài định dạng đuôi .mp3 - ĐỒ án xây DỰNG các DỊCH vụ GIÁ TRỊ GIA TĂNG ASTERISK
Hình 2.2 Cài định dạng đuôi .mp3 (Trang 24)
2.2.3. CÁC CÔNG CỤ HỖ TRỢ VẬN HÀNH VÀ CẤU HÌNH ASTERISK 2.2.3.1.MOBAXTERM - ĐỒ án xây DỰNG các DỊCH vụ GIÁ TRỊ GIA TĂNG ASTERISK
2.2.3. CÁC CÔNG CỤ HỖ TRỢ VẬN HÀNH VÀ CẤU HÌNH ASTERISK 2.2.3.1.MOBAXTERM (Trang 25)
Hình 2.3: Giao diện server Asterisk - ĐỒ án xây DỰNG các DỊCH vụ GIÁ TRỊ GIA TĂNG ASTERISK
Hình 2.3 Giao diện server Asterisk (Trang 25)
Hình 2.5c: phần mềm X-Lite Hình 2.5d: phần mềm PortGo - ĐỒ án xây DỰNG các DỊCH vụ GIÁ TRỊ GIA TĂNG ASTERISK
Hình 2.5c phần mềm X-Lite Hình 2.5d: phần mềm PortGo (Trang 26)
Hình 2.5a: phần mềm Zoiper Hình 2.5b: phần mềm Jitsi - ĐỒ án xây DỰNG các DỊCH vụ GIÁ TRỊ GIA TĂNG ASTERISK
Hình 2.5a phần mềm Zoiper Hình 2.5b: phần mềm Jitsi (Trang 26)
2.3. CÁCH CẤU HÌNH ASTERISK - ĐỒ án xây DỰNG các DỊCH vụ GIÁ TRỊ GIA TĂNG ASTERISK
2.3. CÁCH CẤU HÌNH ASTERISK (Trang 27)
Bảng 2.3: Các Dạng Của Extension - ĐỒ án xây DỰNG các DỊCH vụ GIÁ TRỊ GIA TĂNG ASTERISK
Bảng 2.3 Các Dạng Của Extension (Trang 29)
ITOCHU HONGKONG - ĐỒ án xây DỰNG các DỊCH vụ GIÁ TRỊ GIA TĂNG ASTERISK
ITOCHU HONGKONG (Trang 44)

TỪ KHÓA LIÊN QUAN

w