Xây dựng dịch vụ Call Center chạy trên nền IMS

Một phần của tài liệu Phát triển một số dịch vụ giá trị gia tăng sử dụng công nghệ IMS1 (Trang 102)

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 Kch bn dch v và mô hình kết ni:

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 tc x lý trong dch v Call Center trên nn 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 din ghi nhn phn hi.

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 din thu được

117

KT LUN VÀ HƯỚNG PHÁT TRIN CA

ĐỀ TÀI

1. Kết lun

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 trin ca đề 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 LIU THAM KHO

[1] Gonzalo Camarillo & Miguel A.Garcia-Martin, The 3G IP Multimedia

Subsystem Merging The Internet And The Cellular Worlds, Second Edition, John

Một phần của tài liệu Phát triển một số dịch vụ giá trị gia tăng sử dụng công nghệ IMS1 (Trang 102)

Tải bản đầy đủ (PDF)

(120 trang)