Hệ thống Media server phải cú khả năng đỏp ứng tối thiểu 300 cuộc gọi đồng thời (tương đương 10E1) với cỏc tớnh năng cơ bản về xử lý media.
Việc xử lý cỏc chức năng liờn quan với Voice với dung lượng lớn là rất khú và đắt. Trong quỏ trỡnh nghiờn cứu đề tài, đó tiếp cận với 2 hướng phỏt triển Media server:
Học viờn: Phan Văn Đức Cao học ĐTVT khúa 2005-2007 đú là dựng phần cứng và phần mềm (HMP) của Intel Dialogic (Chit tiết mụ hỡnh lập trỡnh, tài liệu cú thể tham khảo tại địa chỉhttp://www.dialogic.com/default.htm.
3.3 IP Call Center
Module IP Call Center đúng vai trũ trung tõm định tuyến và điều khiển cỏc phiờn truyền thụng giữa cỏc thành phần trong hệ thống Call Center. Tiếp nhận thụng tin bỏo hiệu cuộc gọi từ cỏc hướng (với hướng từ TDM qua TDM gateway, với hướng IP qua giao thức SIP với mạng NGN hoặc mạng SIP khỏc).
3.3.1 Yờu cầu
- Quản lý cỏc SIP endpoint, bao gồm cỏc cỏc gateway, cỏc SIP phone, SIP application server, SIP media server…
- Hỗ trợ khả năng định tuyến linh hoạt đến cỏc endpoint trong hệ thống IP Call Center.
- Xõy dựng dựa trờn mụ hỡnh B2BUA để hệ thống cú khả năng điều khiển linh hoạt cỏc phiờn truyền thụng giữa cỏc thành phần trong hệ thống.
- Hỗ trợ khả năng định tuyến theo tờn (SIP URI) và theo số. - Hỗ trợđịnh tuyến theo mụ hỡnh Third Party Call Control.
3.3.2 Mụ hỡnh
Về cơ bản đó IP Call Center chớnh là SIP server cú tớch hợp chức năng early media (bỏo hiệu cuộc gọi dựng SDP giả), INCALL processing (xử lý cỏc bản tin liờn quan đến cuộc gọi đang thực hiện). Tớch hợp phần Location Service vào trong hệ thống để cú khả năng định tuyến linh hoạt đến cỏc thành phần trong hệ thống IP Call Center. Hệ thống Sip server sẽ thực hiện phần tiền phõn tớch số rồi định tuyến đến cỏc node dịch vụ phự hợp. Vớ dụ điển hỡnh: Thuờ bao A đăng ký dịch vụ VIP (khi thuờ bao này gọi sẽ định tuyến trực tiếp đến điện thoại viờn). Khi thuờ bao A gọi vào hệ thống, module IP Call Center dựa vào số chủ gọi, bị gọi để truy vấn trong CSDL cỏc thụng tin về cuộc gọi đú, khi tỡm thấy thụng tin, SIP server sẽđịnh tuyến trực tiếp đến cỏc ACD Service trong khi cỏc cuộc gọi khỏc được định tuyến đến IVR phỏt ra cỏc thụng bỏo cho khỏch hàng lựa chọn.
Dữ liệu được tổ chức như hỡnh 3.3:
Call module bao gồm nhiều Call object. Mỗi Call Object cú 4 Call Leg: Incall, media, 2 outcall (hoặc cú thể nhiều hơn). Call Leg là một thực thể SIP invite dialog.
Học viờn: Phan Văn Đức Cao học ĐTVT khúa 2005-2007 - Media Leg: thực hiện chức năng giao tiếp với media server
- Outcall Leg: thực hiện chức năng giao tiếp với cỏc SIP endpoint khỏc trong mạng SIP, tức là thực hiện cỏc cuộc gọi ra.
Hỡnh 3.2 Kịch bản bỏo hiệu theo mụ hỡnh Third Party Call Control
Học viờn: Phan Văn Đức Cao học ĐTVT khúa 2005-2007 Giao diện API #define INCALL 0x00000000 #define OUTCALL 0x00000001 #define MEDIACALL 0x00000002 #define TMPCALL 0x00000003
#define ALLCALL 0xFFFFFFFF //only use for function appDropCall
typedef int (*SERVICEDISPATCH)(char *caller, char *callee);
typedef struct {
int (*FIRESTART)(int hCall, char *caller, char *callee); int (*FIRECONNECTED)(int param, int calltype);
int (*FIRERELEASE)(int param, int calltype);
int (*FIREPROCESS)(int param, void *data, int datalen); }CALLFUNC;
int appMakeCall(int hCall, char *szCallee, ADDR *addr, int calldir); int appAcceptCall(int hCall, int earlymeida);//only use for Incoming call int appAnswerCall(int hCall); // only use for Incoming call int appUpdateCall(int hCall, int calldir);
int appDropCall(int hCall, int calldir); int appSetParam(int hCall, int param);
int CreateCallObject(CALLFUNC *callback);//return hCall
int Init3pcc(char *tsp, char *domain, char *server, SERVICEDISPATCH dispatch);
int mediaCommand(int hCall, char *command, int cmdlen, int calldir);
í nghĩa về cỏc hàm API như sau:
AppMakeCall:
Chức năng: Tạo một cuộc gọi SIP
int appMakeCall(int hCall, char *szCaller, char *szCallee, int calldir);
- hCall: call object handler
Học viờn: Phan Văn Đức Cao học ĐTVT khúa 2005-2007 - szCallee: số bị gọi. VD: “1234567”, “acdserver”,…
- calldir: INCALL, MEDIACALL, OUTCALL, TMPCALL
Result: nếu thành cụng hàm trả về giỏ trị >= 0; nếu lỗi hàm trả giỏ trị < 0.
appAcceptCall
Chức năng: Chấp nhận cuộc gọi trờn hướng vào Incomming call
int appAcceptCall(int hCall, int earlymeida);//only use for Incoming call
- hCall: call object handler
- earlymedia: cờ cho phộp tạo phiờn media trước khi kết nối
Result: nếu thành cụng hàm trả về giỏ trị >= 0; nếu lỗi hàm trả giỏ trị < 0.
appAnswerCall
Chức năng: Kết nối cuộc gọi trờn hướng vào Incomming call
int appAnswerCall(int hCall);//only use for Incoming call
- hCall: call object handler
Result: nếu thành cụng hàm trả về giỏ trị >= 0; nếu lỗi hàm trả giỏ trị < 0.
appUpdateCall
Chức năng: update thụng tin về cỏc phiờn media (update cỏc bản tin SDP).
int appUpdateCall(int hCall, int calldir);
- hCall: call object handler
- calldir: INCALL, MEDIACALL, OUTCALL, TMPCALL
Result: nếu thành cụng hàm trả về giỏ trị >= 0; nếu lỗi hàm trả giỏ trị < 0.
appDropCall
Chức năng: Kết thỳc cỏc cuộc gọi với cỏc SIP endpoint
int appDropCall(int hCall, int calldir);
- hCall: call object handler
- calldir: INCALL, MEDIACALL, OUTCALL, TMPCALL, ALLCALL(tất cả cỏc call leg)
Result: nếu thành cụng hàm trả về giỏ trị >= 0; nếu lỗi hàm trả giỏ trị < 0.
Học viờn: Phan Văn Đức Cao học ĐTVT khúa 2005-2007 Chức năng: Set application parameter. Mỗi khi call module gửi thụng tin lờn trong cỏc hàm callback, nú sẽđưa giỏ trị param này vào tham sốđầu vào.
int appSetParam(int hCall, int param);
- hCall: call object handler - param: parameter
Result: nếu thành cụng hàm trả về giỏ trị >= 0; nếu lỗi hàm trả giỏ trị < 0
CreateCallObject
Chức năng: Khởi tạo một callobject.
int CreateCallObject(CALLFUNC *callback);//return hCall
- callback: là hàm cỏc hàm callback phục vụ cuộc gọi
Result: nếu thành cụng hàm trả về giỏ trị call object handler (hCall); nếu lỗi hàm trả giỏ trị < 0.
Init3pcc
Chức năng: Khởi tạo call moudle. Hàm này được gọi một lần duy nhất khi bắt đầu khởi tạo chương trỡnh yờu cầu cú call module.
int Init3pcc(char *tsp, char *domain, char *server, SERVICEDISPATCH dispatch);
- tsp: mụ tả transport. Định dạng như sau: “<type> <địa chỉ ip>:<port>”. Vớ dụ: “UDP4 10.252.12.174:5060”.
- domain: SIP domain. Vớ dụ: “callcenter.neo.com.vn”
- server: SIP server address. Định dạng: “<địa chỉ ip>:<port>”. Vớ dụ: “10.252.12.250:5060”.
- dispatch: hàm SERVICEDISPATCH. Hàm này được gọi mỗi khi nhận được một Incomming call. Trong hàm này phải hàm createcallobject và trả lại giỏ trị hCall nhận được cho hàm callback
Result: nếu thành cụng hàm trả về giỏ trị >= 0; nếu lỗi hàm trả giỏ trị < 0.
mediaCommand
Chức năng: Gửi cỏc lệnh media command xuống media call leg. Lệnh này chỉ thực hiện khi đó tạo call trờn kết nối mediacall.
Học viờn: Phan Văn Đức Cao học ĐTVT khúa 2005-2007 - hCall: call object handler
- command: lệnh media
- cmdlen: độ dài lệnh
- calldir: chưa sử dụng (dự phũng).
3.4 ACD service 3.4.1 Yờu cầu
ACD service là những node dịch vụ của hệ thống IP Call Center cung cấp đầy đủ cỏc tớnh năng của một tổng đài ACD cho hệ thống như: tiếp nhận thụng tin, định tuyến, xử lý quỏ tải…
Tất cả cỏc cuộc gọi đến khụng phõn biệt bản chất đầu cuối IP hay TDM đều được xếp vào cựng một hàng chờ và được định tuyến đến cỏc Call Center ảo (VCC) hoặc agent phự hợp, độc lập với nhau về mặt địa lý. Mỗi một node dịch vụ này cú thể quản lý một hoặc một vài điểm VCC. ACD service sẽ được xõy dựng dựa trờn mụ hỡnh 3PCC (third party call control), ra lệnh đến cỏc thành phần khỏc trong hệ thống thụng qua SIP server.
ACD service sẽđược chia làm hai loại:
- Common ACD service: là những node dịch vụ ACD phục vụ cho hệ thống IP Call Center. Cỏc node dịch vụ này chỉ cú kịch bản xử lý cuộc gọi kiểu ACD. Hệ thống này hoạt động cựng với sự tương tỏc với IVR service. Cỏc node này thụng thường xử lý với lưu lượng lớn.
- Advance ACD service: Là một node dịch vụ ACD được tớch hợp thờm 1 phần khả năng xử lý media. Với những node ACD kiểu này cỏc nhà khai thỏc cú khả năng cung cấp cỏc gúi “dịch vụ Call Center” cho cỏc doanh nghiệp.
3.4.2 Mụ hỡnh
SIP endpoint: Thành phần đúng vai trũ là một SIP client đối với IP Call Center. SIP proxy: Quản lý cỏc Agent, cỏc nhúm Call Center ảo (VCC). Đối với cỏc Agent ACD Service sẽđúng vai trũ là một SIP proxy, quản lý, định tuyến cỏc cuộc gọi đến Agent. Cỏc Agent trong một nhúm cú thể gọi cho nhau thụng quan ACD Service
Học viờn: Phan Văn Đức Cao học ĐTVT khúa 2005-2007 Interface to Media server: Phục vụ cỏc chức năng liờn quan tới MOH, cung cấp nhạc chờ trong trường hợp cuộc gọi chưa được xử lý ngay…
Hỡnh 3.4 Cỏc component của ACD Service
Dispatcher: Tiền phõn tớch cỏc bản tin, rồi chuyển lờn cỏc module khỏc phự hợp. RealTime MMI: Giao diện cấu hỡnh cỏc tham số realtime, sau khi thực hiện cấu hỡnh cú thể dựng lệnh reload lại để hệ thống hoạt động với cỏc tham số mới.
Queue Manager: Thực hiện cỏc tớnh năng quản lý hàng đợi, ACD nhận cỏc cuộc gọi đến qua giao diện SIP endpoint, cỏc cuộc gọi sẽ được cho vào hàng đợi hoặc định tuyến đến cỏc Agent ngay lập tức tựy thuộc vào trạng thỏi hiện tại của queue và agent. Trong một ACD Service cú thể cú nhiều queue tương ứng với cỏc tham số khỏc nhau.
Agent Manager: Thực hiện cỏc chức năng quản lý trạng thỏi của Agent, nhận và gửi cỏc lệnh liờn quan đến trạng thỏi của Agent.
SIP endpoint SIP proxy Agent Mngt Interface to Media server RealTime MMI response CDR AgentDB Call queues ~ ACD groups Queue Mngt Agent queues Dispatcher
Học viờn: Phan Văn Đức Cao học ĐTVT khúa 2005-2007 Hỡnh 3.5 ACD Service
3.4.3 Tổ chức dữ liệu
Bảng dữ liệu liờn quan đến quản lý cỏc nỳt dịch vụ (Node Service)
• ACD service management
Tờn bảng: ACDServiceMan
Tờn trường Mụ tả Kiểu dữ liệu
ServiceNodeId 1,2,3 Number(4) NOT NULL SipTsp UDP4 10.252.12.127:5060 Varchar2(64) NOT NULL
MediaServer media@icc.neo.com.vn Varchar2(64) NOT NULL SipServerUri sipserver@icc.neo.com.vn Varchar2(64) NOT NULL SipServerAddress 10.252.12.250:5060 Varchar2(32) NOT NULL
Bảng 1.Bảng dữ liệu quản lý cỏc nỳt dịch vụ
Bảng dữ liệu liờn quan đến cỏc nhúm ACD
• ACD service group management
Học viờn: Phan Văn Đức Cao học ĐTVT khúa 2005-2007
Tờn trường Mụ tả Kiểu dữ liệu
ServiceNodeId 1,2,3 Number(4) NOT NULL
Groupid Varchar2(16)Not Null
Description Varchar2(256)
Bảng 2.Bảng dữ liệu liờn quan đến quản lý cỏc nhúm (Group) • ACDGroup
Tờn bảng : ACDGroup
Tờn trường Mụ tả Kiểu dữ liệu
GroupId Số nhận dạng nhúm, cú thể theo thứ
tự nhúm (Group Order Number): số
này cú thểđược cấp phỏt tựđộng theo thứ tự 1, 2, 3,..
Varchar2(16)Not Null
GroupName Tờn nhúm (Group Name): tờn dễ nhớ, dễ gọi của nhúm, vớ dụ: Nhúm bỏn hàng,..
Varchar2(256)
Servicenumber Số gọi nội bộ của nhúm (Group Extenstion): Sốđiện thoại nội bộ tham chiếu cho nhúm (là sốđịnh danh, khụng được dựng riờng cho extension nào)
Varchar2(32)
Status 0: Deactive; 1: Active Number(2)
GroupType Kiểu lựa chọn điện thoại viờn trong nhúm:
- Tuyến tớnh, (1) - Quay vũng, (2) - Phõn phối đều,(3)
- Cho người rỗi nhất (Thời gian trả lời ngắn nhất, số cuộc trả lời ớt nhất, thời gian nghỉ nhiều nhất,... kể từ lỳc login), (4)
- Theo mức ưu tiờn,…(5)
Number(4)
MaxMemberAllowed Tổng số thành viờn cho phộp (nhỏ
nhất bằng một, lớn nhất phụ thuộc vào license)
Học viờn: Phan Văn Đức Cao học ĐTVT khúa 2005-2007
MaxSupervisorAllowed Số thành viờn quản lý cho phộp (nhỏ
nhất bằng 1, lớn nhất phụ thuộc vào license). Number(4) MaxQueueLength Độ dài hàng đợi: số cuộc gọi lớn nhất cú thể trong hàng đợi. Vớ dụ là 10 Number(4) MaxQueueLengthAlarm Ngưỡng cảnh bỏo cuộc gọi: mức
ngưỡng cuộc gọi trong hàng đợi mà sau mức đú hệ thống bắt đầu phỏt tớn hiệu cảnh bỏo. Vớ dụ là 5. (Tớn hiệu này cú thể hiển thị trờn màn hỡnh điện thoại viờn của nhúm) Number(4)
MaxCallWaitTimeAlarm Ngưỡng cảnh bỏo thời gian chờ của một cuộc gọi: mức ngưỡng thời gian chờ trong hàng đợi của một cuộc gọi mà sau mức đú hệ thống bắt đầu phỏt tớn hiệu cảnh bỏo. Vớ dụ là 30s.
Number(4)
MaxCallWaitTimeReject Ngưỡng tràn hàng đợi: Sau khi đạt đến mức ngưỡng này, cuộc gọi sẽđược
định tuyến sang hàng đợi khỏc hoặc bị
từ chối
Number(4)
QueueType Kiểu xếp hàng cuộc gọi vào hàng đợi (queue type):
- Mặc định là theo FIFO (first-in first- out) (1)
- Theo mức ưu tiờn (2)
Number(4)
QueueAnnouncement Một cuộc gọi vào một hàng đợi sẽđược nghe hồi õm chuụng cho đến khi cuộc gọi được kết nối đến một điện thoại viờn hoặc một thụng bỏo. Phụ thuộc vào cỏch cấu hỡnh hàng đợi, người gọi cú thểđược nghe một hoặc hai thụng bỏo, nhạc, hoặc cỏc khoảng lặng. Một thụng bỏo là một bản tin được ghi lại, cung cấp cỏc thụng tin như là đớch cuộc gọi, quảng cỏo cụng ty hoặc thuyết phục khỏch hàng giữ mỏy chờ đợi,.. Đường dẫn chỉđến file welcomegroup.wav Varchar2(256)
Học viờn: Phan Văn Đức Cao học ĐTVT khúa 2005-2007
QueueAnnDelay Thời gian trễ là khoảng thời gian cuộc gọi xếp trong hàng đợi trước khi nhận
được một thụng bỏo. Nếu cuộc gọi
được kết nối đến một điện thoại viờn trước khi thời gian trễ kết thỳc, người gọi sẽ khụng nghe thấy thụng bỏo. Sau khi thụng bỏo thứ nhất kết thỳc, người gọi sẽ tiếp tục nghe nhạc, hoặc khoảng lặng trước khi nghe thụng bỏo thứ hai, hoặc được kết nối đến điện thoại viờn. Thời gian trễ cú thể từ 0
đến 99 giõy. Thời gian trễ bằng 0 tức là người gọi sẽ phải nghe toàn bộ
thụng bỏo thứ nhất bất kể cú điện thoại viờn rỗi hay khụng.
Số lần phỏt annoucement Number(4) Description Một số mụ tả (nếu cú) Varchar2(256) Bảng 3.Bảng dữ liệu quản lý cỏc nhúm ACD • Bảng dữ liệu quản lý cỏc Agent Tờn bảng: ACDAgent Tờn trường Mụ tả Kiểu dữ liệu
AgentUserName Username cua agent Varchar2(32)Not Null
FullName Varchar2(128)
AgentPassword Varchar2(64)
SipUri Varchar2(64)
ScheduleID Number(4)
Description Varchar2(256)
AgentType Common(1), supervisor (2) NUMBER(2)
Bảng 4.Bảng dữ liệu liờn quan đến việc quản lý cỏc Agent
• Bảng dữ liệu quản lý nhúm mà Agent cú thể login vào (chỳ ý một Agent cú thể login vào nhiều nhúm)
Học viờn: Phan Văn Đức Cao học ĐTVT khúa 2005-2007
Tờn trường Mụ tả Kiểu dữ liệu
AgentUserName Username cua agent Varchar2(32)Not Null
Groupid Varchar2(16)Not Null
Priority 1, 2, 3 Number(4)
Bảng 5.Bảng dữ liệu quản lý nhúm của Agent • Bảng dữ liệu phục vụ cho chức năng thống kờ, đối soỏt:
Tờn bảng: ACDCallRecord
Tờn trường Mụ tả Kiểu dữ liệu
AgentUserName Username cua agent Varchar2(32)Not Null
Groupid Varchar2(16)Not Null
BeginTime datetime
NOT NULL
Học viờn: Phan Văn Đức Cao học ĐTVT khúa 2005-2007
Tờn trường Mụ tả Kiểu dữ liệu
CallError Diễn tả tại sao cuộc gọi kết thỳc:
1 = Abandoned in Network, 2 = Abandoned in Local Queue, 3 = Abandoned Ring,
4 = Abandoned Delay, 5 = Abandoned Interflow, 6 = Abandoned Agent Terminal, 7 = Short, 8 = Busy, 9 = Forced Busy, 10 = Disconnect/drop no answer, 11 = Disconnect/drop busy, 12 = Disconnect/drop reorder, 13 = Disconnect/drop handled primary route, 14 =
Disconnect/drop handled other, 15 = Redirected, 16 = Cut Through,
17 = Intraflow, 18 = Interflow, 19 = Ring No Answer, 20 = Intercept reorder, 21 = Intercept denial, 22 = Time Out,
23 = Voice Energy, 24 = Nonclassified Energy Detected,
25 = No Cut Through, 26 = U-Abort,
27 = Failed Software, 28 = Blind Transfer, 29 = Announced Transfer, 30 = Conferenced, 31 = Duplicate Transfer, 32 = Unmonitored Device, 33 = Answering Machine, 34 = Network Blind Transfer
Number(4) NOT NULL
RingTime Thời gian cuộc gọi đổ chuụng tại thiết bị của điện thoại viờn cho đến khi điện thoại viờn trả
lời
Học viờn: Phan Văn Đức Cao học ĐTVT khúa 2005-2007
Tờn trường Mụ tả Kiểu dữ liệu
DelayTime DelayTime bao gồm mọi khoảng thời gian người gọi nghe cỏc announcement trước khi chọn được nhúm ACD, trước khi được xếp vào hàng
đợi,...
Number(4)
TalkTime Tổng thời gian đàm thoại(theo giõy)
Number(12) WorkAfterCallTime Thời gian làm việc sau cuộc
gọi của điện thoại viờn.
Number(12) ConferenceTime Tổng thời gian cuộc gọi tham
gia hội nghị
Number(12)
Called Số bị gọi Varchar2(32)
Caller Số chủ gọi Varchar2(32)
TransferNumber Số dịch vụ forward Varchar2(32)
Bảng 6.Bảng dữ liệu phục vụ quỏ trỡnh thống kờ, đối soỏt cước
3.5 VCC
VCC thực chất là một Advance ACD service (là một node dịch vụ ACD được tớch hợp thờm 1 phần khả năng xử lý media, với những node ACD kiểu này cỏc nhà khai thỏc cú khả năng cung cấp cỏc gúi “dịch vụ Call Center” cho cỏc doanh nghiệp).