Call center là khái niệm chỉ trung tâm hỗ trợ khách hàng qua điện thoại. Call Center đang dần trở thành một công cụ hữu hiệu của doanh nghiệp trong việc chăm sóc khách hàng, thúc đẩy hoạt động kinh doanh, nâng cao tính cạnh tranh của doanh nghiệp trong bối cảnh hội nhập với thế giới.
102
Call center ngày nay mang nghĩa rộng hơn trước. Đó không chỉ là trung tâm
để liên lạc qua điện thoại mà là "Trung tâm chăm sóc khách hàng từ xa" của các công ty, đặc biệt là các công ty đa quốc gia. Thường đây là các doanh nghiệp trong lĩnh vực thương mại điện tử, tiếp thị từ xa, cung cấp sản phẩm máy tính, công nghệ
thông tin, ngân hàng, dịch vụ tài chính, tín dụng, bảo hiểm, vận tải và đại lý vận chuyển, khách sạn. Họ phải sử dụng Call Center trong cung cấp dịch vụ vì phải giao dịch trực tuyến với đông đảo khách hàng, cùng một lúc. Call Center đang dần trở
thành một công cụ hữu hiệu của doanh nghiệp trong việc chăm sóc khách hàng, thúc đẩy hoạt động kinh doanh, nâng cao tính cạnh tranh của doanh nghiệp trong bối cảnh hội nhập với thế giới.
103 Đối với doanh nghiệp là một Nhà cung cấp dịch vụ viễn thông, Call Center là một bộ phận rất quan trọng. Chức năng chính của nó là thực hiện các công tác hỗ
trợ và chăm sóc khách hàng thông qua cuộc gọi. Ngoài ra, Hệ thống Call Center còn có thể tham gia phát triển các dịch vụ giá trị gia tăng (Value Added Services), hỗ trợ
các nghiệp vụ nội bộ của Nhà cung cấp.
5.2.1 Kịch bản dịch vụ và mô hình kết nối:
a. Kịch bản dịch vụ:
+ Bộ phận chăm sóc khách hàng của Trung tâm dịch vụ Giá trị Gia tăng - Công ty Thông tin Di động (VMS-mobifone) gồm nhiều tổ chia theo các loại hình dịch vụ
mà TT cung cấp: SMS, FunRing, MCA, Chuyển vùng quốc tế, LiveInfo, LBS, Call Barring, BGMS, …
+ Khi khách hàng gọi đến số CSKH của trung tâm để hỏi hoặc khiếu nại về các dịch vụ GTGT, khách hàng quay số 205.
+ Khi gọi đến số 205, khách hàng sẽ được nghe hướng dẫn để được trợ giúp
đúng dịch vụ mà khách hàng quan tâm.
+ Khi khách hàng nhấn phím để chọn dịch vụ, tổng đài sẽ chuyển hướng cuộc gọi đến line của giao dịch viên thuộc dịch vụ mà khách hàng muốn khiếu nai.
+ Trong trường hợp các line thuộc dịch vụ khách hàng quan tâm đều bận, khách hàng sẽđược thông báo và chờ trong một khoảng thời gian.
+ Nếu khách hàng bấm sai số dịch vụ (số không được gán cho các dịch vụ), khách hàng sẽđược nghe lại hướng dẫn.
+ Giao dịch viên khi tiếp nhận phản ánh, có thể ghi lại thông tin phản ánh từ
IMS Client. Ngoài ra có thể xem lại nội dung, ngày giờ các phản ánh thông qua log file được lưu trữ lại.
104 Gateway OpenSer OpenIMSCore DV SMS Các DV khác PBX SIP Subscribers PSTN ims.vms.vn DV FunRing DV CVQT
Hình 5-2: Mô hình hệ thống Call Center trên nền IMS
Mô hình hệ thống gồm:
• Tổng đài PBX (Asterisk): Nơi đăng ký của các thuê bao SIP. Các cuộc gọi từ
khách hàng sẽđược tiếp nhận tại đây. Khi khách hàng gọi đến số 205, tổng đài sẽ tự động trả lời và hướng dẫn khách hàng các thao tác tiếp theo để gặp giao dịch viên tư
vấn dịch vụ.
• OpenIMSCore (tổng đài IMS): Nơi đăng ký của các thuê bao IMS. Các giao dịch viên thuộc các bộ phận sẽ được trang bị máy tính chạy client IMS. Toàn bộ
mạng nội bộ của bộ phân CSKH chạy trên nền IMS.
• Gateway OpenSer: Nhưđã nói ở trên, do tổng đài IMS và tổng đài PBX không có khả năng xử lý các bản tin sip do đó nếu tổng đài PBX và tổng đài IMS nằm trên 2 domain khác nhau sẽ không có khả năng giao tiếp với nhau. Tổng đài OpenSer
được dùng như 1 gateway dùng để chỉnh sửa bản tin SIP gửi đến từ tổng đài PBX và định tuyến tiếp cuộc gọi đến đúng giao dịch viên mà khách hàng cần khiếu nại về
105 • IMS Client: Là các phần mềm chạy trên nền IMS và được cài đặt trên các máy của giao dịch viên. Trong luận văn này, tôi sử dụng lại client là kết quả nghiên cứu và phát triển của nhóm tôi khi thực hiện đồ án tốt nghiệp đại học năm 2009-Phần mềm IMSCommunicator. Tuy nhiên, tôi đã phát triển thêm tính năng giúp giao dịch viên có thể nhập vào thông tin khiếu nại khi có cuộc gọi đến, lưu thông tin và xem lại thông tin. Tính năng này giúp giao dịch viên dễ dàng trong việc quản lý các khiếu nại đến. Chi tiết của tính năng được trình bày trong mục 5.2.2.3.
5.2.2 Các thủ tục xử lý trong dịch vụ Call Center trên nền IMS:
5.2.2.1 Quá trình đăng ký:
Các thủ tục đăng ký IMS:
• UE xác định địa chỉ của P-CSCF, P-CSCF sử dụng như một proxy biên SIP trong suốt quá trình đăng ký và cho tất cả các báo hiệu SIP khác trong khi nó đã được đăng ký.
• UE gửi bản tin REGISTER tới mạng chủ của tobias để thực hiện
đăng ký SIP cho nhận dạng người dùng công cộng của tobias. • I-CSCF lựa chọn S-CSCF phục vụ người dùng khi nó đã đăng ký. • S-CSCF tải các dữ liệu xác thực người dùng từ HSS.
106 • UE và mạng S-CSCF xác thực mỗi dữ liệu đó.
• Các chức năng bảo mật IP (IP sec) giữa UE và P-CSCF được thiết lập. • UE học đường đến S-CSCF. • S-CSCF học đường đến UE. Hình 5-3: Quá trình đăng nhập hệ thống Quá trình đăng ký tiếp tục với các thủ tục: • S-CSCF tải về hồ sơ người dùng từ HSS.
107 • S-CSCF đăng ký nhận dạng người dùng công cộng mặc định của
người dùng.
• S-CSCF có thể dựa trên hồ sơ người dùng để đăng ký nhận dạng người dùng công cộng khác.
• UE biết về tất các nhận dạng người dùng công cộng đã được gán cho tobias và trạng thái đăng ký hiện tại của anh ta.
• P-CSCF biết tất cả các nhận dang công cộng được gán cho tobias và trạng thái đăng ký hiện tại của anh ta.
108
109
5.2.2.2 Quá trình thực hiện cuộc gọi:
Hình 5-5: Quá trình thực hiện cuộc gọi
Quá trình thực hiện cuộc gọi diễn ra như sau:
• Khách hàng quay số 205 gọi đến tổng đài CSKH của mobifone, sipclient của khách hàng sẽ gửi bản tin 205@192.168.1.4 đến tổng đài Asterisk.
• Tại tổng đài Asterisk, sau khi nhận được cuộc gọi từ khách hàng, tổng đài sẽ
tựđộng trả lời khách hàng và hướng dẫn khách hàng quay số máy lẻ để gặp giao dịch viên. Chức năng IVR được config trong file extensions.conf của tổng đài Asterisk nhưđoạn chương trình dưới.
[ivr_main]
; answer and play announcement
exten => s,1,Set(TIMEOUT(response)=2) exten => s,2,Set(TIMEOUT(digit)=2) exten => s,3,BackGround(test/welcome)
110
exten => s,4,WaitExten(2) exten => s,5,GoTo(s|3) ; handle key presses
exten => 0,1,Playback(good-bye) exten => 0,2,Playback(beep) exten => 0,3,Hangup() exten => 1,1,Dial(SIP/sms@192.168.1.100,15,t) exten => 2,1,Dial(SIP/funring@192.168.1.100,20,t) exten => 3,1,Dial(SIP/roaming@192.168.1.100,20,m,t) exten => 0,1,Dial(SIP/helps@192.168.1.100,20,m,t) ; handle invalid key presses
exten => i,1,Playback(pbx-invalid) exten => i,2,GoTo(s|3)
; handle time out (user did not make a selection) exten => t,1,GoTo(0|1) ; go to Hangup :-)
• Khi khách hàng thực hiện bấm số theo như hướng dẫn, ví dụ khách hàng bấm số 1 trên bàm phím, cuộc gọi sẽ tiếp tục được xử lý như trong kịch bản
được config trong file extensions.conf ở trên. Tức là cuộc gọi sẽ được route
đến giao dịch viên hỗ trợ dịch vụ SMS. Tổng đài Asterisk sẽ gửi bản tin sip:sms@192.168.1.100 tới OpenSer. Tại đây, dựa vào kịch bản đã khai báo là cứ có bản tin invite với uri = xxx@192.168.1.100 gửi đến thì sẽ sửa lại thành xxx@ims.vms.com và chuyển tiếp bản tin này tới OpenIMSCore. Trên OpenSer ta sẽ sửa file openser.cfg như dưới đây:
# account only INVITEs if (is_method("INVITE")) {
setflag(1); # do accouting
if(src_ip == 192.168.1.4) #tu asterisk den ims {
route(20); }
if(src_ip == 192.168.1.20) # tu ims den asterisk {
route(30); }
111 } …… route[20] { rewritehostport("ims.hut.vn"); t_relay(); exit; } route[30] { rewritehostport("192.168.1.4"); t_relay("192.168.1.4"); exit; }
• Sau khi OpenIMSCore nhận được bản tin invite yêu cầu gọi đến giao dịch viên hỗ trợ SMS nó sẽ chuyển bản tin invite tới user: sms@ims.vms.vn .
5.2.2.3 Xây dựng một số module mới trên IMS Client:
Như đã trình bày ở trên, trong phần mô phỏng của luận văn, tôi sử dụng lại client đã được chúng tôi phát triển trong quá trình làm đồ án đại học. Tuy nhiên, phần mềm này đã được phát triển thêm một số tính năng để phù hợp và tạo sự tiện lợi cho các giao dịch viên CSKH. Cụ thể, tôi đã phát triển thêm module cho phép giao dịch viên có thể nhập vào nội dung của khiếu nại trong quá trình nghe phản ánh của khách hàng qua phone. Ngoài ra, còn có thêm tính năng cho phép lưu trữ và tra cứu các thông tin này khi cần thiết.
a. Chức năng ghi nhận phản hồi.
Cơ chế của chức năng ghi phản hồi như sau:
+ Khi có 1 cuộc gọi mới đến hệ thống, hệ thống sẽ thực hiện tất cả các nhiệm vụ phát sinh thông qua phương thức public void callReceived(CallEvent evt) thuộc lớp SipCommunicator.
112 Vì việc mở cửa sổ ghi phản hồi gắn chặt với sự kiện có cuộc gọi đến nên hành động yêu cầu hệ thống mở cửa sổ ghi phản hồi cũng sẽ được thực hiện trong phương thức nêu trên:
guiManager.call_alert(call.getRemoteName());
Trong đó GUIManager là 1 lớp có nhiệm vụ quản lý tất cả các tác vụ liên quan đến hiển thị. Phương thức call_alert của lớp này sẽ mở ra cửa sổ ghi phản hồi
được xây dựng trong lớp newcall_alert là lớp mà chúng ta cần phải xây dựng thêm. Tham số truyền vào của phương thức call_alert là tên của người thực hiện cuộc gọi. Tham số này sẽđược sử dụng cho mục đích ghi dữ liệu sau này.
Cấu trúc của lớp newcall_alert gồm có 3 phương thức chính: - Phương thức khởi tạo: Khởi tạo giao diện cửa sổ.
- Phương thức display_alert: Cập nhật những thông tin về cuộc gọi lên trên giao diện: tên, thời điểm diễn ra cuộc gọi.
public void display_alert(String name) {
txt_comment.setText(""); client_name.setText(name);
DateFormat dateFormat = new SimpleDateFormat("HH:mm:ss dd-MM- yyyy");
Date date = new Date(); date_name.setText((new
StringBuilder(String.valueOf(dateFormat.format(date)))).toString()); setVisible(true);
}
- Phương thức write_data: ghi dữ liệu phản hồi vào trong file log.
public void write_data()
{
DateFormat dateFormat = new SimpleDateFormat("ddMMyyyy"); Date date = new Date();
String file_name = dateFormat.format(date); try
{
File file = new File((new
StringBuilder("./log_data/")).append(file_name).append(".txt").toStri ng());
if(!file.exists())
file.createNewFile();
FileWriter fw = new FileWriter(file, true); BufferedWriter bw = new BufferedWriter(fw); String str = new String("");
113 str = (new StringBuilder("$#")).append(client_name.getText()).append("++++").app end(date_name.getText()).append("++++").append(txt_comment.getText()) .append("\r\n").toString(); bw.write(str);
System.out.print("write data ok"); bw.close();
}
catch(IOException ex) {
System.out.println("Khong the mo file."); return;
} }
+ Phương thức tổ chức lưu trức dữ liệu: Lựa chọn hình thức lưu trữ theo File thay vì lưu trữ vào CSDL. Mục đích nhằm đơn giản hóa việc triển khai ứng dụng xuống các máy tính khác.
+ Dữ liệu sẽđược quản lí theo thời gian: mỗi ngày hệ thống tự phát sinh ra 1 file ghi dữ liệu mới. Cơ chế đặt tên như sau : yyyy+mm+dd+”.txt”. Cơ chế đặt tên này đảm bảo tính duy nhất và không trùng lặp của các tệp dữ liệu.
+ Toàn bộ các tệp này sẽđược lưu trữ trong thư mục log_data đồng cấp với nơi cài đặt ứng dụng.
Giao diện ghi nhận phản hồi.
114
b. Chức năng tìm kiếm, tra cứu thông tin phản hồi của khách hàng.
Giao dịch viên có thể tiến hành tìm kiếm tra cứu thông tin từ giao diện chính của ứng dụng.
- Khi nhận được yêu cầu tra cứu, 1 cửa sổ mới sẽ bật lên. Tại cửa sổ này, giao dịch viên có thể thực hiện các chức năng như theo dõi thông tin phản hồi trong ngày, tìm kiếm thông tin phản hồi của 1 ngày trong quá khứ.
Chức năng này được đảm nhận bởi lớp Log_table. Lớp Log_table có 2 phương thức chính:
- Phương thức khởi tạo: Khởi tạo giao diện người dung.
- Phương thức getlogData: Tìm kiếm thông tin phản hồi trong thư mục lưu trữ dữ liệu. Dựa theo các thông số từ người dùng về ngày cần tìm kiếm dữ liệu, phương thức này tìm đến tệp dữ liệu cho ngày hôm đó, đọc, bóc tách và hiển thị lên cho người dùng.
public void getLogData(String file_name) {
115
current_search = file_name; System.out.println(file_name);
for(; model.getRowCount() > 0; model.removeRow(0)); try
{
File file = new File((new
StringBuilder("./log_data/")).append(file_name).append(".txt").toStri ng());
if(!file.exists()) {
System.out.println("No log data for this day"); } else
{
FileReader fr = new FileReader(file);
BufferedReader br = new BufferedReader(fr); String name = new String("");
String date = new String(""); String comment = new String(""); String s;
while((s = br.readLine()) != null) if(s.indexOf("$#") == 0)
{
Vector rowdata = new Vector(); if(!name.equalsIgnoreCase("")) { rowdata.add(name); rowdata.add(date); rowdata.add(comment); model.addRow(rowdata); } s = s.substring(2);
String arrstr[] = s.split("\\+\\+\\+\\+"); name = arrstr[0]; date = arrstr[1]; if(arrstr.length > 2) comment = arrstr[2]; else comment = ""; } else { comment = (new StringBuilder(String.valueOf(comment))).append(s).toString(); }
Vector rowdatas = new Vector(); if(!name.equalsIgnoreCase("")) { rowdatas.add(name); rowdatas.add(date); rowdatas.add(comment); model.addRow(rowdatas); } setVisible(true); } } catch(Exception ix)
116
{
System.out.println(ix.toString()); }
}
Giao diện thu được
117
KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN CỦA
ĐỀ TÀI
1. Kết luận
Hiện nay, dịch vụ 3G đang được triển khai tại các nhà mạng ở nước ta, đã có những dịch vụ bước đầu được triển khai dựa trên nền 3G nhưng số lượng chưa nhiều, tương lai sẽ hứa hẹn một sự bùng nổ về các giá trị gia tăng và các nhà mạng sẽ dựa vào các dịch vụ GTGT để phát triển khi mà các dịch vụ cơ bản đã bão hòa. Vì vậy, giải pháp kết hợp mạng điện thoại di động truyền thống và mạng internet sẽ đem lại nhiều lợi ích và các dịch vụ có giá trị hơn, tiện ích hơn cho người dùng và nhà cung cấp dịch vụ.
Trong luận văn này tôi đã đưa ra được giải pháp mới cho việc kết hợp OpenIMSCore với Asterisk và đã triển khai được dịch vụ Call Center chạy trên nền IMS. Ngoài ra còn phát triển thêm một số module cho phần mềm IMS Client hỗ trợ
hiệu quả cho giao dịch viên khi tiếp nhận cũng như hậu xử lý khiếu nại. Giải pháp
đưa ra hoàn toàn mang tính ứng dụng cao và hoàn toàn có thể triển khai trong thực tế. Tuy nhiên bên cạnh những mặt thuận lợi và những gì đã đạt được là những khó khăn, những nhược điểm :
• Đó là sự thiếu kinh nghiệm trong lập trình dẫn đến việc phát triển nâng cao hệ thống còn nhiều hạn chế.
• Vấn đề bảo mật chưa được quan tâm nhiều.
• Số mẫu thử với trường hợp nhiều cuộc gọi đến tổng đài, nhiều cuộc gọi đến cùng 1 line chưa thực hiện được do hạn chế về thiết bị mô phỏng.
• Do hạn chế về mặt thời gian làm luận văn nên kịch bản cho IVR tổng
đài Asterisk chưa được phong phú.
Tuy nhiên, với sự nỗ lực hết mình của cá nhân tôi và sự giúp đỡ nhiệt tình của PGS. TS. Nguyễn Hữu Thanh tin rằng trong thời gian tới sẽ có thể tiếp tục
118 nghiên cứu và phát triển dịch vụ hoàn thiện hơn. Đồng thời tiến tới xây dựng được nhiều dịch vụ ứng dụng phục vụ cho người sử dụng và đem lại nhiều lợi ích cho chính cơ quan nơi tôi đang công tác..
2. Hướng phát triển của đề tài
Luận văn đã đưa ra giải pháp kết hợp hiệu quả giữa IMS và VoIP. Vì vậy ngoài dịch vụ Call Center ra, luận văn còn có thể tích hợp và phát triển thêm nhiều dịch vụ giá trị gia tăng khác ví dụ như kết hợp IMSCore và mạng PSTN…
Tôi định hướng sẽ thử nghiệm và ứng dụng dịch vụ tại đơn vị công tác của mình tại TT DV GTGT - Công ty Thông tin di đông (mobifone) để kiểm tra hiệu quả của dịch vụ khi đi vào thực tế. Đồng thời, nghiên cứu và tích hợp dịch vụ trên nền IMSCore của công ty tôi đang phát triển.
119
TÀI LIỆU THAM KHẢO
[1] Gonzalo Camarillo & Miguel A.Garcia-Martin, The 3G IP Multimedia
Subsystem Merging The Internet And The Cellular Worlds, Second Edition, John