GIỚI THIỆU ĐỀ TÀI1.1 Giới thiệu chung Sự xuất hiện của VoIP đã làm dậy lên một làn sóng lớn trong lĩnh vực viễn thông thế giới, lợi ích của nó mang lại vô cùng lớn khi chi phí cuộc gọi đ
Trang 1XÂY DỰNG HỆ THỐNG TỔNG ĐÀI ẢO
CLOUDPBX TRÊN NỀN TẢNG
FREEPBX
Trang 2DANH MỤC CÁC HÌNH VẼ
Trang 4IETF The Internet Engineer Task Force
ITU International Telecommunication UnionIVR Interactive Voice Response
PSTN Public Switched Telephone
RTP Real-time Transport Protocol
SDP Session Description Protocol
SIP Session Initial Protocool
TCP Transmission Control Protocol
UDP User Datagram Protocol
Secure Real-time Transport Protocol
Trang 5CHƯƠNG 1 GIỚI THIỆU ĐỀ TÀI
1.1 Giới thiệu chung
Sự xuất hiện của VoIP đã làm dậy lên một làn sóng lớn trong lĩnh vực viễn thông thế giới, lợi ích của nó mang lại vô cùng lớn khi chi phí cuộc gọi được giảm đi đáng
kể, đáp ứng tốt chất lượng dịch vụ, số lượng kết nối Hiện nay có rất nhiều doanh nghiệp sử dụng giải pháp VoIP làm cách giao tiếp chính
Internet of Thing (IoT) bùng nổ, công nghệ đám mây là xu hướng không thể bỏ qua
Để doanh nghiệp kịp thời gia nhập vào nền công nghệ 4.0 (IoT) thì việc kết nối điệnthoại truyền thống vào Internet là rất cần thiết Đó gọi là tổng đài ảo
Hình 1- 1: Giải pháp tổng đài ảo
1.2 Mục tiêu
Khi điện thoại truyền thống trở nên cô lập về mặt địa lý và bị động trong mọi tìnhhuống cũng như tính tương tác chưa cao thì tổng đài ảo giúp khách hàng sử dụngdịch vụ tốt nhất với chi phí rẻ hơn so với dịch vụ tổng đài truyền thống, tiết kiện chiphí lắp đặt ban đầu, không tốn chi phí bảo trì, sửa chữa khi có sự cố hay di chuyểnvăn phòng làm việc sang địa điểm khác,… Để đáp ứng các lợi điểm trên thì đề tài
Trang 6này nghiên cứu phần mềm Asterisk mã nguồn mở cùng với đó xây dựng hệ thống
dữ liệu database lưu trữ thông tin
Các tính năng được triển khai trong đề tài này được áp dụng cho một công ty baogồm:
Các tính năng cơ bản của tổng đài PBX
Dịch vụ tra cứu dịch vụ
Tư vấn trực tiếp từ các điện thoại viên
Dịch vụ trả lời tự động
1.3 Công việc thực hiện
Tìm hiểu VoIP và các giao thức
Xây dựng tổng đài Asterisk bằng lệnh linux
Cài đặt giao diện cho Asterisk và cấu hình các dịch vụ tổng đài nội bộ:
• Lời chào tương tác (IVR)
• Music on Hold
• Call Conference
• Định tuyến cuộc gọi
• Nghe lại ghi âm (Play Back)
Giới thiệu AGI_PHP
Giới thiệu Mysql, cách tạo database và truy vấn dữ liệu
Demo chương trình
Trang 7Để thấy những ưu điểm và nhược điểm VoIP và những tiện ích thực tế mang lạitrong đề tài “Xây dựng hệ thống tổng đài ảo CloudPBX trên nền tảng FreePBX”bao gồm:
Chương 2: TỔNG QUAN VỀ MẠNG VOIP
Chương 3: ASTERISK
Chương 4: MYSQL, AGI, PHP
Chương 5: XÂY DỰNG MÔ HÌNH TỔNG ĐÀI VÀ MÔ PHỎNG
Trang 8CHƯƠNG 2 TỔNG QUAN VỀ MẠNG VoIP
2.1 Giới thiệu chung về VoIP
VoIP (Voice over Internet Protocol) là công nghệ truyền tín hiệu thoại sử dụng giaothức TCP/IP trên cơ sở hạ tầng có sẵn của internet Giải pháp VoIP sử dụng kỹ thuậtchuyển mạch gói tức là số hóa tín hiệu giọng nói rồi nén tín hiệu đã số hóa thànhgói, chia nhỏ các gói này nhằm tiết kiệm băng thông sau đó truyền các gói này quamạng Đến nơi nhận các gói số liệu này được ghép lại, giải mã ra tín hiệu có dạnganalog như lúc đầu để khôi phục lại giọng nói như ban đầu
Hình 2-1: Mô hình VoIP [1]
Trang 9
Trong giao thức H.323 thì chúng được gọi là Gatekeeper.
Trong giao thức SIP thì gọi là SIP server
• Gateway: là bộ phận chuyển đổi tín hiệu tín hiệu analog sang tín hiệu số (vàngược lại)
VoIP gateway có chức năng làm cầu nối giữa mạng điện thoại thường(PSTN) và mạng VoIP
VoIP GSM gateway có chức năng làm cầu nối cho các mạng IP, GSM và cảcác mạng analog
• End user equipments (thiết bị đầu cuối):
Softphone, PC bao gồm 1 headphone, 1 phần mềm và 1 kết nối internet, cácphần mềm phổ biến như skype, ekiga
Điện thoại truyền thống và IP adapter: để dùng dịch vụ VoIP thì điện thoạiphải gắn với IP adapter để kết nối với VoIP server
IP phone: là điện thoại chuyên dụng cho giải pháp VoIP Các IP phone đượctích hợp sẵn để kết nối trực tiếp với VoIP server
2.3 Phương thức hoạt động
VoIP chuyển đổi tín hiệu giọng nói thông qua môi trường mạng (IP based network)
Vì thế, đầu tiên giọng nói (voice) phải chuyển sáng dạng bits (digital bits) và đóngthành các gói (packet) để truyền qua Ip network, đến đích cuối sẽ được chuyểnthành tín hiệu âm thanh
Quá trình này thông qua 2 bước:
Call Setup: là quá trình thiết lập cuộc gọi, người gọi phải xác định vị trí thông quangười nhận và yêu cầu một kết nối để liên lạc với người nhận Khi trên proxy serverxác định tồn tại địa chỉ của người nhận thì các proxy server giữa hai người sẽ thiếtlập qáu trình trao đổi dữ liệu voice
Trang 10Voice Data Proccessing: là quá trình xử lý tín hiệu giọng nói, tín hiệu giọng nói(analog) sẽ được chuyển thành tín hiệu số (digital) rồi nén lại để tiết kiệm băngthông (bandwidth) sau đó được mã hóa để tăng tính bảo mật Các dữ liệu voiceđược lấy mẫu sẽ được chèn vào các gói dữ liệu để được chuyển trên mạng Giaothức dùng cho các gói voice này là RTP (real-time transport protocol) Một gói tinRTP có các trường đầu chứa dữ liệu cần thiết cho việc biên dịch lại các gói tin sangtín hiệu voice ở thiết bị người nghe Các gói tin voice được truyền đi bởi giao thứcUDP Ở thiết bị cuối quá trình được làm ngược lại.
2.4 Các kiểu kết nối
2.4.1 Computer to computer
Hình 2-2: Kiểu kết nối computer to computer
Trong mô hình này, cần trang bị sound card, microphone, và cả hai người gọi và người nhận sử dụng dịch vụ VoIP Mô hình này thường được dùng trong tổ chức, công ty nhằm đáp ứng các nhu cầu liên lạc mà không cần lắp thêm hệ thống tổng đài nội bộ
Trang 11Nhược điểm của mô hình này là các PC phải mở liên tục.
2.4.2 Computer to phone
Hình 2-3: Kiểu kết nối computer to phone
Mô hình PC to Phone cho phép người dùng có thể thực hiện cuộc gọi đến mạngPSTN thông thường và ngược lại trên máy tính Trong mô hình này mạng PSTN vàmạng Internet giao tiếp thông qua gateway
Đối với mô hình này việc gọi đi quốc tế chi phí tốn ít hơn nhưng chất lượng cuộcgọi còn phụ thuộc vào tốc độ internet
2.4.3 Phone to phone
Trang 12Hình 2-4: Kiểu kết nối phone to phone
Mô hình này sử dụng internet làm phương tiện liên lạc giữa các mạng PSTN Tất cảcác mạng PSTN đều kết nối với mạng internet thông qua gateway Khi thực hiệncuộc gọi, mạng PSTN sẽ kết nối với gateway gần nhất, địa chỉ sẽ chuyển đổi từ địachỉ PSTN sang địa chỉ IP để định tuyến các gói tin đến mạng đích Ở gatewaynguồn chuyển đổi tín hiệu tương tự sang tín hiệu số sau đó mã hóa, nén, đóng góigửi qua mạng Mạng đích cũng kết nối với gateway và địa chỉ đó lại được chuyểnđổi lại địa chỉ PSTN, tín hiệu được giải mã, giải nén chuyển đổi ngược lại thành tínhiệu tương tự rồi gửi vào mạng PSTN đến đích
Trang 13thể tạo ra hiện tượng nhảy thoại gây khó chịu cho người sử dụng Còn trong truyền
dữ liệu việc mất một bit hay gói thì sẽ xảy ra hiện tượng song ảnh Việc mất góitheo dây truyền thì chất lượng truyền dẫn sẽ xuống cấp
Cách khắc phục để bù lại các gói đã mất là phát lại gói cuối cùng và gửi đi thông tindư
Trễ:
Trễ là thời gian truyền trung bình của dịch vụ từ điểm vào đến điểm ra khỏi mạng.Trễ trong mạng phụ thuộc vào nhiều yếu tố như là thuật toán mã hóa, lỗi mất khung,thiết bị
Biến động trễ
2.6 Ưu nhược điểm của VoIP so với mạng PSTN truyền thóng
Ưu điểm:
Giảm giá cước dịch vụ đường dài
Do các cuộc gọi VoIP sử dụng băng thông rất ít Khi dịch vụ thoại thông thường sửdụng kỹ thuật số hóa PCM theo chuẩn G.117 với lượng băng thông cố định là 64Kb/s thì VoIP sử dụng kiểu số hóa theo chuẩn G.729 với lượng băng thông 8Kb/shoặc G.723 (5.3 Kb/s, 6.3 Kb/s), băng thông được giảm đi một cách đáng kể Ngoài
ra, VoIP còn sử dụng cơ chế triệt khoảng lặng nên có thể tiết kiệm thêm băng thông
để truyền các dạng thông tin khác
Nhiều cuộc gọi hơn, giảm độ rộng băng thông cho mỗi kết nối
Trang 14Hỗ trợ thêm nhiều dịch vụ bổ sung khác, triển khai dịch vụ nhanh chóng hơn.
H.323 có thể dùng cho nhiều cơ cấu mạng khác nhau: chỉ audio (telephony), audio
và video (videotelephony) H.323 còn cung cấp rất nhiều loại hình dịch vụ và cáclĩnh vực khác nhau H.323 bao gồm các giao thức H.225.0-RAS, Q.931-H245,RTP/RTCP
RTP (real-time transport protocol) là giao thức vận chuyển thời gian thực cung cấpcác chức năng vận chuyển cho các ứng dụng truyền dữ liệu thời gian thực nhưaudio, video hay dữ liệu mô phỏng qua dịch vụ mạng như unicast hoặc multicast.RTP không chiếm giữ nguồn địa chỉ và không đảm bảo chất lượng dịch vụ cho cácdịch vụ thời gian thực, nó chỉ bổ sung vào dữ liệu UDP trong H.323
RTCP: giám sát luồng lưu lượng phân tán trong mạng và thực hiện các chức năngđiều khiển luồng, nhận dạng luồng cho các lưu lượng thời gian thực
RTP mang thông tin thực còn RTCP mang thông tin điều khiển và trạng thái
2.7.2 Các thành phần của H.323
Trang 15Hình 2-5: Sơ đồ giao thức H.323
Thiết bị đầu cuối:
Là các điểm cuối phía khách hàng, cung cấp giao diện giữa người dùng và mạng.Các chuẩn mã hóa thường gặp là G.711, G.728, G.723.1
Gateway:
Là điểm cuối trong mạng thực hiện chức năng chuyển đổi về báo hiệu và dữ liệu,cho phép các mạng phối hợp với nhau khi đang hoạt động dựa trên các giao thứckhác nhau Cung cấp các phiên dịch giữa các thực thể trong mạng chuyển gói (IP)với mjang chuyển mạch kênh (PSTN) Các gateway cũng có thể phiên dịch khuôndạng truyền dẫn, phiên dịch các tiến trình truyền thông, phiên dịch các bộ mã hóa.Ngoài ra gateway còn tham gia vào quá trình thiết lập, hủy cuộc gọi
Gatekeeper:
Trang 16Cung cấp chức năng biên dịch địa chỉ và điều khiển truy cập mạng cho các thiết bịđầu cuối H.323, gateway, MCU Gatekeeper còn cung cấp các dịch vụ quản lý băngthông, định vị các gateway.
Biên dịch địa chỉ: biên dịch từ địa chỉ định danh sang địa chỉ truyền tải
Điều khiển đăng nhập: GK quản lí việc truy cập mạng của các điểm cuối bằng bảntin H.225.0
Điều khiển băng thông: GK điều khiển băng thông bằng bản tin H.225.0
Báo hiệu điều khiển cuộc gọi: GK quyết định có tham gia vào quá trình báo hiệucho cuộc gọi hay không
Cấp phép cho cuộc gọi
Biên dịch số được quay: GK sẽ chuyển các số được quay sang số E.164 hay sốmạng riêng
Quản lí băng tần
Quản lí cuộc gọi
Sửa đổi địa chỉ định danh
Quản lí cấu trúc dữ liệu
Khối điều khiển đa điểm MCU (multipoint control unit):
Cung cấp khả năng truyền thông hội nghị cho ba điểm hay nhiều thiết bị đầu cuối
và các gateway MCU bao gồm hai phần: một bộ điều khiển đa điểm (MC) bắt buộc
và một bộ xử lí đa điểm (MP) tùy chọn
Thành phần khối điều khiển đa điểm gồm:
Bộ điều khiển đa điểm: cung cấp chức năng điều khiển
Trang 17Bộ xử lý đa điểm: thu nhận và xử lý các dòng thoại, video, dữ liệu.
2.8 Giao thức SIP
Giao thức khởi tạo phiên (Session Initiation Protocol - SIP) là giao thức điềukhiển báo hiệu thuộc lớp ứng dụng có chức năng thiết lập, duy trì và kết thúccác phiên multimedia hay các cuộc gọi qua mạng IP
Hình 2-6: Sơ đồ giao thức SIP
Thành phần SIP bao gồm: SIP terminal, SIP Server, SIP gateway:
Thiết bị đầu cuối SIP:
User Agent (UA): đóng vai trò là một UA Client khi nó gửi yêu cầu để khởi tạocuộc gọi và nhận hồi đáp Ngược lại, nó là UA server khi nó nhận yêu cầu và gửihồi đáp
SIP Server:
Có chức năng điều khiển, quản lý cuộc gọi, trạng thái người dùng
Proxy server: là trung gian để thực hiện các yêu cầu thay các đầu cuối khác, các yêucầu được thực hiện tại chỗ bởi proxy server nếu có thể Trong trường hợp proxyserver không đáp ứng yêu cầu thì sẽ chuyển sang thực hiện khâu chuyển đổi hoặcdịch sang khuôn dạng thích hợp trước khi chuyển đi
Location server: định vị thuê bao, cung cấp thông tin veef những vị trí có thể củaphía bị gọi cho các phần mềm proxy server và redirect server
Redirect server
Trang 18• Bản tin INVITE: thiết lập cuộc gọi bằng cách gửi bản tin mời đầu cuốitham gia.
• Bản tin ACK: xác nhận client đã nhận được bản tin INVITE
• Bản tin OPTION: UA sử dụng bản tin yêu cầu này để có thể truy vấn tớiserver về các khả năng của nó
• Bản tin BYE: bắt đầu kết thúc cuộc gọi
• Bản tin CANCEL: Cho phép máy client và server hủy một yêu cầu
• Bản tin REGISTER: thiết bị đầu cuối của SIP sử dụng bản tin này để đăng
kí với máy chủ
Respone (Bản tin đáp ứng): Server sẽ gửi bản tin SIP Response tới máy client đểcảnh báo về trạng thái của bản tin SIP Request mà máy client đã gửi lên trước đó.Các SIP Response đã được đánh số từ 100 đến 699, và được chia thành nhiều lớpđược nghĩa khác nhau
Các lớp Response Mã trả về Mô tả
Trang 19Thông tin 100 Kết nối đang được thực hiện
180 Đang đổ chuông
181 Cuộc gọi đang được chuyển tiếp
182 Được đặt vào hàng đợi
183 Phiên đang được xử lý
413 Yêu cầu quá dài
414 URL được yêu cầu quá lớn
415 Không hỗ trợ kiểu media
416 Không hỗ trợ URI
420 Phần mở rộng lỗi
Bảng 2-1: Ý nghĩa của SIP Respone
CHƯƠNG 3 ASTERISK
Trang 203.1 Giới thiệu chung
Asterisk ra đời năm 1999 được sáng lập bởi Mark Spender với mục đích hỗ trợ việcliên lạc đàm thoại của công ty mình, Asterisk được viết bằng ngôn ngữ C được thiết
kế và triển khai trên GNU/Linux nền x86 (Intel)
Asterisk biến một PC chạy Linux thành một hệ thống điện thoại doanh nghiệp mạnh
mẽ Hiện nay Asterisk đang trên đà phát triển nhanh, được các doanh nghiệp pháttriển thêm nhiều ứng dụng
Asterisk là phần mềm mã nguồn mở có chức năng như một tổng đài PBX Asteriskmang lại cho người dùng tất cả các chức năng và ứng dụng của một hệ thống tổngđài PBX và kể cả những chức năng mà tổng đài thông thường không có, đó là sự kếthợp giữa chuyển mạch VoIP và TDM, khả năng mở rộng đáp ứng nhu cầu cho từngứng dụng
Hình 3-1: Sơ đồ tổng đài Asterisk [1]
Asterisk tích hợp giao tiếp với mạng PSTN và mạng VoIP vừa có thể gọi nội bộ,vừa có thể gọi ra ngoài với bất cứ số điện thoại nào trên mạng PSTN Nó không chỉ
Trang 21giao tiếp, kết nối giữa các điện thoại với nhau mà còn mở rộng kết nối đén các tổngđài khác, với IP phone, nhiều dịch vụ như Softswitch, Media Gateway,….
3.2 Cấu trúc của Asterisk
Asterisk như một phần trung gian dùng kết nối internet và điện thoại Hỗ trợ mọikhả năng có thể có của công nghệ telephony, công nghệ này bao gồm VoIP, SIP,H.323, IAX, MGCP (cho điện thoại và gateway)
Quá trình khởi động của Asterisk:
• Khi khởi động, Dynamic module loader thực hiện nạp driver các thiết bị, các kênh giao tiếp, format, codec, ứng dụng, hàm API cũng được liên kết nạp vào hệ thống
Hình 3-2: Cấu trúc Aasterisk [1]
Trang 22• PBX Switch Core chuyển sang trạng thái sẵn sàng.
• Application Launchar rung chuông thuê bao, định hướng cuộc gọi, kết nố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 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
để liên lạc với nhau
Các chức năng chính của API:
• Asterisk translator API: đảm nhiệm thực thi nén và giải nén các chuẩn codec như G.711, GSM, G.729
• Asterisk channel API: kết nối các cuộc gọi tương thích
• Asterisk file format API: xử lý file âm thanh có dạng wav, gsm, mp3,…
• Asterisk aplication API: các ứng dụng trong asterisk voicemail, callerID, IVR, ACD,
Trang 233.3 Cấu trúc thư mục Asterisk
Chức năng của các thư mục trong Asterisk:
/etc/asterisk: thư mục này chứa tất cả các file cấu hình trừ file /etc/zaptel.conf./usr/lib/asterisk/modules: các module thời gian thực cho ứng dụng, điều khiển lệnh,nén và giải nén
/var/lib/asterisk: chứa biến được sử dụng bởi asterisk trong quá trình hoạt động./var/spool/asterisk: file chạy thời gian thực cho voicemail, các cuộc gọi ra ngoài./var/run: file PID và tên chương trình chạy thời gian thực
/var/log/asterisk: chứa tập tin nhật kí giúp việc giám sát dễ dàng hơn
Hình 3-3: Thư mục Asterisk