Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 136 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
136
Dung lượng
3,09 MB
Nội dung
BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƢỜNG ĐẠI HỌC SƢ PHẠM KỸ THUẬT TP.HCM KHOA ĐIỆN - ĐIỆN TỬ BỘ MÔN ĐIỆN TỬ VIỄN THÔNG ĐỒ ÁN TỐT NGHIỆP NGÀNH: ĐIỆN TỬ VIỄN THÔNG ĐỀ TÀI: XÂY DỰNG HỆ THỐNG IP CALL CENTER DỰA TRÊN MÃ NGUỒN MỞ ASTERISK GVHD: TRƢƠNG NGỌC THÀNH SVTH: PHAN QUỐC KHANH-06117031 SVTH: NGUYỄN MỸ NGÂN -06117046 Tp.HCM, tháng 01 năm 2011 Xây dựng hệ thống IP Callcenter dựa Asterisk Trang iii LỜI CẢM ƠN Qua thời gian học tập trƣờng Đại học Sƣ phạm Kỹ thuật TPHCM, nhóm thực đề tài đƣợc học hỏi tiếp thu nhiều kiến thức từ bảo tận tình q Thầy Cơ giúp đỡ bạn bè Đây khoảng thời gian đầy ý nghĩa nhóm Để hồn thành đồ án tốt nghiệp này, nhóm thực đề tài trƣớc hết gửi lời cảm ơn chân thành, sâu sắc đến cha mẹ Cảm ơn cha mẹ sinh nuôi dạy nên ngƣời Cảm ơn giọt mồ hôi thấm đẫm rơi rớt suốt chặng đƣờng mà ta khôn lớn, cảm ơn đòn roi lời răn dạy mắc phải sai lầm cảm ơn niềm tin, động viên nguồn cổ vũ tinh thần lớn lao mà ngƣời thực đề tài nhận đƣợc suốt tháng ngày học tập xa nhà Kế đến, nhóm thực đề tài xin gửi lời cảm ơn tri ân đến toàn thể quý thầy cô trƣờng Đại học Sƣ phạm Kỹ thuật TPHCM, cảm ơn thầy Trƣơng Ngọc Thành tận tình hƣớng dẫn, lối, tạo hƣớng để nhóm hoàn thành tốt nhiệm vụ đƣợc giao Bên cạnh đó, nhóm thực đề tài gửi lời cảm ơn đến tồn thể lớp 06117 ln ln bên cạnh giúp đỡ chia kinh nghiệm kiến thức, động viên khích lệ nhóm làm tốt cơng việc suốt tiến trình thực đề tài Cảm ơn anh Lê Quốc Toàn, anh Nguyễn Trần Bảo, toàn thể thành viên diễn đàn baonguyen.vn, diễn đàn 04hcb.vn nhiều cộng đồng mã nguồn mở nƣớc giới, ngƣời tiên phong muốn làm cho giới hồn thiện cơng nghệ kĩ thuật kịp thời giải đáp, không ngần ngại chia kiến thức nhƣ kinh nghiệm cho ngƣời sau Tuy nhiên, thời gian kiến thức có hạn nên đồ án chắn khơng thể tránh khỏi thiếu sót, nhóm thực đề tài mong đƣợc đóng góp ý kiến thầy, tồn thể bạn Một lần xin cảm ơn tất ngƣời với lòng biết ơn chân thành sâu sắc nhất! Tp.HCM, ngày … tháng … năm … Phần A: Giới thiệu Bộ Giáo dục Đào tạo Trƣờng ĐH Sƣ phạm Kỹ thuật Cộng hòa Xã hội Chủ nghĩa Việt Nam Độc lập-Tự do-Hạnh phúc Tp.Hồ Chí Minh QUYẾT ĐỊNH GIAO ĐỀ TÀI Họ tên sinh viên: Ngành: Phan Quốc Khanh MSSV: 06117031 Nguyễn Mỹ Ngân MSSV: 06117046 Công nghệ Điện tử - Viễn thông Tên đề tài: Xây dựng hệ thống IP Callcenter dựa mã nguồn mở Asterisk 1) Cơ sở ban đầu: Trƣớc thực đề tài này, nhóm thực đề tài đƣợc làm quen với hệ điều hành Linux qua môn học chuyên đề Điện Tử, nắm đƣợc kiến thức mạng máy tính mơn học Mạng Máy Tính, kiến thức tảng truyền liệu kiến thức tổng đài Bên cạnh đó, nhóm thực đề tài có hội đƣợc tìm hiểu nghiên cứu giao thức SIP IAX thực tập tốt nghiệp VnPro Đã có thời gian nghiên cứu Asterisk đồ án môn học Thiết nghĩ với kiến thức tảng nhƣ điều kiện thuận lợi để hoàn thành tốt nhiệm vụ đƣợc giao đồ án tốt nghiệp Nội dung phần thuyết minh tính toán: 2) Các vẽ: Lƣu đồ cho kế hoạch quay số từ FX106 vào IP Call Center bao gồm lƣu đồ cho menu ngữ cảnh phụ Hình vẽ cho demo cho hệ thống với chức tổng đài nội chức Call Center Giáo viên hƣớng dẫn: 3) Ngày giao nhiệm vụ: 4) Ngày hoàn thành nhiệm vụ: Giáo viên hƣớng dẫn Ngày tháng năm 20… Chủ nhiệm môn Xây dựng hệ thống IP Callcenter dựa Asterisk Trang v NHẬN XÉT CỦA GIÁO VIÊN HƢỚNG DẪN NHẬN XÉT CỦA HỘI ĐỒNG PHẢN BIỆN Phần A: Giới thiệu Xây dựng hệ thống IP Callcenter dựa Asterisk Trang vi LỜI NÓI ĐẦU Nhƣ biết, diễn cách mạng công nghệ mạng điện thoại công cộng (PSTN) Cuộc cách mạng công nghệ mong ƣớc dùng máy tính cá nhân để truyền gói chứa tiếng nói qua mạng chuyển mạch gói (Packet Switching Network) Đây ý tƣởng đột phá dẫn đến truyền thoại qua giao thức Internet (IP), đƣợc gọi Voice over IP (VoIP) Sự hội tụ hệ thống thoại mạng liệu tạo nên mạng hệ (Next Genaration Network) Trên khắp giới, tổ chức doanh nghiệp tạo nên chuyển tiếp để đạt đến giải pháp cho phép họ tận dụng mạng liệu có sẵn cho việc giao tiếp thoại Các nhà quản trị mạng tăng dần khả vận chuyển gọi thoại nội doanh nghiệp họ IP mà không cần tham gia mạng PSTN Với ƣu điểm mềm dẻo hiệu suất, mạng chuyển mạch gói thay cho cho mạng chuyển mạch kênh truyền thống Sự đời điện thoại IP vài năm gần khẳng định thêm xu hƣớng Theo thống kê 70% lƣu lƣợng thoại công ty cỡ vừa lớn gọi nội Đây nguyên nhân dẫn đến đời tổng đài nội - PBX (Private Branch Exchange) Tổng đài PBX tự định tuyến gọi nội với Cùng với phát triển mạnh mẽ mạng số liệu vài thập kỷ gần đây, doanh nghiệp lại hình thành thêm hệ thống mạng mới, mạng chuyển mạch gói LAN Mạng LAN đƣợc kết nối với mạng Internet, cho phép ngƣời sử dụng doanh nghiệp truy cập ngồi thơng qua kết nối Internet Với đời chuẩn giao thức, chi phí dành cho cơng nghệ hợp lí, thoại qua IP lựa chọn hàng đầu cho giải pháp: tích hợp đƣợc ứng dụng thoại liệu tảng mạng Kết tổng đài IP-PBX đƣợc đời, đáp ứng hầu hết nhu cầu đặt doanh nghiệp Bên cạnh đó, việc ứng dụng ngày rộng rãi thƣơng mại điện tử ứng dụng đa phƣơng tiện (multimedia) làm cho nhu cầu trao đổi thông tin cách suốt (transparent) khách hàng với sở liệu (data base) ngày tăng Điều dẫn đến đời hệ thống Call center Mặt khác, phát triển doanh nghiệp kéo theo nhu cầu trao đổi thông tin nội bên ngày tăng Một câu hỏi đặt làm để vừa giảm chi phí sử dụng gọi từ bên nội doanh nghiệp bên PSTN vừa tận dụng đƣợc sở hạ tầng có sẵn mạng IP? Một giải pháp đƣợc sử dụng hầu hết doanh nghiệp nhỏ vừa sử dụng phần mềm mã nguồn mở Asterisk nhƣ tổng đài IP PBX với đầy đủ chức PBX Nhận thức đƣợc khả phát triển công nghệ điện thoại dựa IP có sẵn yêu cầu cấp thiết nhà doanh nghiệp, nhƣ ƣu Phần A: Giới thiệu Xây dựng hệ thống IP Callcenter dựa Asterisk Trang vii Asterisk, nhóm thực đề tài định “Nghiên cứu xây dựng hệ thống IP Call Center dựa mã nguồn mở Asterisk” , mà cụ thể luận văn ứng dụng trƣờng Đại Học Sƣ phạm Kỹ thuật vào việc tra cứu thơng tin học phí, điểm trung bình, thơng tin lịch học vụ nhƣ xác nhận lịch cứng trực tiếp qua điện thoại hay nói chuyện trực tiếp với nhân viên tƣ vấn Phần A: Giới thiệu Xây dựng hệ thống IP Callcenter dựa Asterisk Trang viii MỤC LỤC PHẦN A i LỜI CẢM ƠN iii QUYẾT ĐỊNH GIAO ĐỀ TÀI iv NHẬN XÉT CỦA GIÁO VIÊN HƢỚNG DẪN v NHẬN XÉT CỦA HỘI ĐỒNG PHẢN BIỆN v LỜI NÓI ĐẦU vi MỤC LỤC viii LIỆT KÊ BẢNG xi LIỆT KÊ HÌNH xi PHẦN B CHƢƠNG I:MỤC TIÊU, YÊU CẦU VÀ HƢỚNG GIẢI QUYẾT ĐỀ TÀI 1.1 Mục tiêu đề tài 1.2 Yêu cầu 1.3 Hƣớng giải đề tài CHƢƠNG II: TỔNG QUAN VỀ ASTERISK 2.1 Giới thiệu khái quát Asterisk 2.2 Kiến trúc Asterisk 2.3 Một số tính CHƢƠNG III:HỆ THỐNG CALL CENTER 14 3.1 Tổng quan Callcenter 14 3.2 Phân biệt Callcenter Contact center 16 3.3 Các tính hệ thống Callcenter 17 3.3.1 Nhận phân phối gọi đến 17 3.3.2 Quản lý gọi 18 3.3.3 Cung cấp thông tin tự động (Auto Attendant, IVR) 19 3.3.5 Hộp thƣ thoại(Voicemail) 20 3.3.6 Ghi âm gọi – ghi âm để lại lời nhắn 21 3.3.7 Khai thác gọi 21 3.3.8 Chi tiết gọi (Call Detail Recording) 21 3.3.9 Hệ thống Callcenter thực tế 21 CHƢƠNG VI:MỘT SỐ KHÁI NIỆM TRONG HỆ THỐNG ASTERISK 28 4.1 VoIP-Voice over Internet Protocol 28 Phần A: Giới thiệu Xây dựng hệ thống IP Callcenter dựa Asterisk Trang ix 4.2 FXO FXS 29 4.3 Báo hiệu Analog đầu cuối tổng đài 30 4.4 Báo hiệu tổng đài 30 4.4 Các giao thức báo hiệu Asterisk 30 4.4.1Giao thức báo hiệu SIP 31 4.3.2 Giao thức IAX(Inter-Asterisk-eXchange) 40 4.3.3 RTP (Real Time Protocol) 43 4.3.4 RTCP (Real-time Transport Control Protocol) 44 4.4 QoS - Quality of Service 44 4.4.1 Độ trễ 45 4.4.2 Độ trƣợt 45 4.4.3 Mất gói 46 CHƢƠNG V:CÀI ĐẶT VÀ CẤU HÌNH ASTERISK 48 5.1 Yêu cầu cấu hình phần cứng 48 5.2 Yêu cầu phần mềm 48 5.3 Download giải nén 48 5.3.1 Download 48 5.3.2 Giải nén 49 5.4 Cài đặt Asterisk 49 5.4.1 Cài gói zaptel 50 5.4.2 Cài gói libpri 50 5.4.3 Biên dịch cài đặt Asterisk 50 5.4.4 Biên dịch cài đặt Asterisk-addons 51 5.5 Cài đặt PhpMyAdmin 51 5.5.1 Giới thiệu phpmyadmin 51 5.5.2 Các chức PhpMyAdmin 51 5.5.3 Cài đặt 52 5.5.4 Sử dụng PhpMyAdmin 53 5.6 Tổ Chức Thƣ Mục Asterisk 55 5.6.1 /etc/asterisk/ 55 5.6.2 /usr/lib/asterisk/modules/ 55 5.6.3 /var/lib/asterisk 56 5.6.4 /var/spool/asterisk/ 56 5.6.5 /var/run/ 57 5.6.6 /var/log/asterisk/ 57 5.6.7 /var/log/asterisk/cdr-csv 57 5.7 Một số lệnh thao tác hệ thống asterisk 57 Phần A: Giới thiệu Xây dựng hệ thống IP Callcenter dựa Asterisk Trang x 5.8 Tập tin cấu hình 58 5.9 Giới Thiệu DialPlan 59 5.9.1 Extentions 60 5.9.2 Priorities - Thứ tự thực 61 5.9.3 Aplications - Các hàm ứng dụng 61 5.9.4 Contexts - Ngữ cảnh 63 5.9.5 Chỉ định Pattern 64 5.9.6 Cách sử dụng biến 65 5.9.7 Include 66 5.9.8 Sử dụng Database Asterisk 67 5.9.9 Các biểu thức 68 5.9.10 Cách sử dụng Macro 70 5.10 Asterisk Gateway Interface 72 5.10.1 Sử dụng AGI 72 5.10.2 Ví Dụ minh họa 72 CHƢƠNG VI:XÂY D NG HỆ THỐNG IP CALLCENTER D A TRÊN NỀN ASTERISK 75 6.1 Mô hình triển khai hệ thống 75 6.2 Các thiết bị phần cứng phần mềm sử dụng 75 6.2.1 Phần cứng 75 6.2.2 Phần mềm 76 6.3 Một số chức 76 6.5 Cấu hình hệ thống IP CallCenter 78 6.5.1 Cấu hình Card X100P giao tiếp với tổng đài FX106 78 6.5.2 Khai báo kênh SIP 79 6.5.3 Xây dựng dịch vụ 79 6.5.4 CDR (Call Detail Record) 90 CHƢƠNG VII:KẾT LUẬN VÀ HƢỚNG PHÁT TRIỂN ĐỀ TÀI 92 7.1 Kết luận 92 7.2 Hƣớng phát triển đề tài 94 PHẦN C 98 PHỤ LỤC VÀ TÀI LIỆU THAM KHẢO 98 Phụ Lục I: Lƣu đồ chƣơng trình 99 Phần A: Giới thiệu Xây dựng hệ thống IP Callcenter dựa Asterisk Trang xi Phụ Lục II: Mã nguồn chƣơng trình 103 Phụ Lục III: Tài liệu tham khảo 124 LIỆT KÊ BẢNG Bảng 4.1 Các loại Frame giao thức IAX 43 Bảng 5.1 Yêu cầu phần cứng tổng đài Asterisk 48 Bảnh 6.1 Các chức Callcenter 76 Bảng 6.2 Các chức nội 77 LIỆT KÊ HÌNH Hình 1.1 Mơ hình hệ thống IP Call center Hình 2.1 Khả giao tiếp tổng đài Asterisk Hình 2.2 Kiến trúc Asterisk Hình 2.3 : Gọi nội Asterisk Hình 2.5 Tổng đài VoIP-PBX 11 Hình 2.6 Kết nối IP-PBX PBX 12 Hình 2.7 Kết nối server Asterisk 12 Hình 2.8 Asterisk với IVR, Conference, Voice mail 13 Hình 2.9 Phân phối gọi ACD 13 Hình 3.1 Mơ hình hệ thống Call center 18 Hình 3.2 Kịch xử lí gọi vào 18 Hình 3.3 Hệ thống cung cấp thơng tin tự động 20 Hình 3.4 Mơ hình hệ thống IP Callcenter 23 Hình 3.5 Một sơ đồ thực tế Call Center công ty chứng khống 26 Hình 4.1 a) Máy điện thoại vai trò FXO kết nối với FXS (PSTN), Hình b) PBXkết nối với FXO FXS, Hình c) ATA đóng vai trò nhƣ FXS để kết nối với máy điện thoại vai trò FXO 30 Hình 4.2 Vị trí SIP mơ hình OSI 31 Hình 4.3 Các thành phần mạng SIP 32 Hình 4.4 mơ hình B2BUA 34 Hình 4.5 Cấu hình Asterisk với canreinvite 35 Hình 4.6 Mơ hình Peer to Peer 35 Hình 4.7 chế hoạt động SIP thông qua Proxy server 36 Hình 4.8 Mơ hình SIP thơng qua Proxy 37 Hình 4.9 Cuộc gọi SIP thơng qua Redirect Server 38 Hình 4.10 Quá trình đăng kí User 39 Hình 4.11 Các bƣớc đăng kí lên Registrar Server 39 Hình 4.12 Cuộc gọi SIP qua B2BUA 40 Hình 4.13 Giao thức IAX 41 Phần A: Giới thiệu Xây dựng hệ thống IP Callcenter dựa Asterisk Trang 111 thue bao IAX exten => _2xx,n,Goto(exithandling,s-${DIALSTATUS},1) exten => _2xx,n(CS2),Dial(SIP/${TEMP},20,tT) exten => _2xx,n,Goto(exithandling,s-${DIALSTATUS},1) exten => _2xx,n(NIM1),NoOp("Khong chuyen tuc thoi, thuc hien binh thuong") exten => _2xx,n(NIM1),Dial(SIP/${EXTEN},10,rtT) exten => _2xx,n(NIM1),Dial(SIP/${EXTEN},10,TtK) exten => _2xx,n,Goto(exithandling,s-${DIALSTATUS},1) exten => _2xx,n(NBSY2),goto(exithandling1,s-BUSY,1) ;blacklist exten => blocked,1,Playback(privacy-you-are-blacklisted) exten => blocked,n,Playback(vm-goodbye) exten => blocked,n,Hangup() [exithandling] ; this is just my exit handler the important thing is in queue-to-agent context exten => s-NOANSWER,1,NoOP(There was no answer to call from ${CALLERID(num)}) exten => s-NOANSWER,n,Set(TEMP=${DB(CFAS/${COUNT1})}) exten => s-NOANSWER,n,GotoIf(${TEMP}?AS:NAS) exten => s-NOANSWER,n(AS),gotoIf($[${TEMP} < 201]?CS2:CS1) exten => s-NOANSWER,n(CS1),Dial(IAX2/${TEMP}/@${TEMP},30,tT) ; Chuy nt c th i) exten => s-NOANSWER,n,Goto(exithandling1,s-${DIALSTATUS},1) exten => s-NOANSWER,n(CS2),Dial(SIP/${TEMP},30,tT) exten => s-NOANSWER,n,Goto(exithandling1,s-${DIALSTATUS},1) exten => s-NOANSWER,n(NAS),VoiceMail(${COUNT1}@hopthu) exten => s-NOANSWER,n,playback(vm-goodbye) exten => s-NOANSWER,n,Wait(2) exten => s-NOANSWER,n,Hangup() Phần C: Phụ lục tài liệu tham khảo Xây dựng hệ thống IP Callcenter dựa Asterisk Trang 112 exten => s-BUSY,1,NoOP(There was no answer to call from ${CALLERID(num)}) exten => s-BUSY,n,Set(TEMP=${DB(CFBS/${COUNT1})}) exten => s-BUSY,n,GotoIf(${TEMP}?BS2:NBS2) exten => s-BUSY,n(BS2),gotoIf($[${TEMP} < 201]?CS2:CS1) exten => s-BUSY,n(CS1),Dial(IAX2/${TEMP}/@${TEMP},30,tT) exten => s-BUSY,n,Goto(exithandling1,s-${DIALSTATUS},1) exten => s-BUSY,n(CS2),Dial(SIP/${TEMP},30,tT) exten => s-BUSY,n,Goto(exithandling1,s-${DIALSTATUS},1) exten => s-BUSY,n(NBS2),VoiceMail(${COUNT1}@hopthu) exten => s-BUSY,n,playback(vm-goodbye) exten => s-BUSY,n,Wait(2) exten => s-BUSY,n,Hangup() exten => s-CHANUNAVAIL,1,NoOP(Channel navailable, call from ${CALLERID(num)}) exten => s-CHANUNAVAIL,2,goto(exithandling,s-BUSY,1) exten => s-CONGESTION,1,NoOP(Congestion, call from ${CALLERID(num)}) exten => s-CONGESTION,2,Hangup exten => s-ANSWER,1,NoOP(Answered and completed call from ${CALLERID(num)}) exten => s-ANSWER,2,Hangup [exithandling1] ; this is just my exit handler the important thing is in queue-to-agent context exten => s-NOANSWER,1,NoOP(There was no answer to call from ${CALLERID(num)}) exten => s-NOANSWER,n(NAS),VoiceMail(${COUNT1}@hopthu) exten => s-NOANSWER,n,playback(vm-goodbye) exten => s-NOANSWER,n,Wait(2) exten => s-NOANSWER,n,Hangup() exten => s-BUSY,1,NoOP(Extension busy, call from ${CALLERID(num)}) exten => s-BUSY,n(NBS2),VoiceMail(${COUNT1}@hopthu) exten => s-BUSY,n,playback(vm-goodbye) Phần C: Phụ lục tài liệu tham khảo Xây dựng hệ thống IP Callcenter dựa Asterisk exten => s-BUSY,n,Wait(2) exten => s-BUSY,n,Hangup() exten => s-CHANUNAVAIL,1,NoOP(Channel navailable, call from ${CALLERID(num)}) exten => s-CHANUNAVAIL,2,goto(exithandling,s-BUSY,1) exten => s-ANSWER,1,NoOP(Answered and completed call from ${CALLERID(num)}) exten => s-ANSWER,2,Hangup ;monitor agents with ChanSpy [chanspy] exten =>1986,1,Chanspy('all'|qv(0)) ;exten =>1986XXXX,1,Chanspy(SIP/${EXTEN}:4|b) [default] include=>parkedcalls include=>DND include=>Parked include=>Meetme include=>meetme-all include=>pickup include=>mailbox include=>F_INM include=>F_BSY include=>F_NSWR include=>local_analog include=>local_IAX include=>local_SIP include=>agent include=>chanspy Phần C: Phụ lục tài liệu tham khảo Trang 113 Xây dựng hệ thống IP Callcenter dựa Asterisk Trang 114 [Parked] exten=>700,1,Park() exten=>701,hint,park:701@parkedcalls exten=>701,1,Wait(1) exten=>701,2,ParkedCall(701) exten=>702,hint,park:702@parkedcalls exten=>702,1,Wait(1) exten=>702,2,ParkedCall(702) II.3 Code PHP Hoc_phi.php #!/usr/bin/php -q Learning_schedual.php #!/usr/bin/php -q