Kiến trúc OpenSER

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 92)

92 File cấu hình openser.cfg:

93 OpenSER được xây dựng ở phần đầu của một core đảm nhiệm chức năng cơ

bản và điều khiển các bản tin SIP. Các module đảm nhiệm phần lớn các chức năng của OpenSER. Các module OpenSER thể hiện các chức năng của nó trong OpenSER với các câu lệnh và các tham số mới được sử dụng trong các kịch bản. OpenSER được cấu hình trong một file được gọi là openser.cfg. File cấu hình này

điều khiển module nào được load và các tham số tương ứng của nó. Tất cả các luồng SIP cũng được điều khiển trong một vài khối định tuyến (routing block) được

định nghĩa trong file. File openser.cfg là file cấu hình chính của OpenSER.

¾ Các phần của file openser.cfg: File openser.cfg có 7 phần logic chính.

Phần các định nghĩa chung: Phần này thường chứa địa chỉ IP và port để lắng nghe, mức debug, vv. Thiết lập trong phần này ảnh hưởng đến deamon SER. • Phần các module: Phần này chứa một danh sách các thư viện bên ngoài cần

thiết để cung cấp các chức năng không được cung cấp bởi core nhưđược lưu ý ở trên. Các module này các file đối tượng chia sẽ (đuôi .so - shared object) và được tải với câu lệnh load-module.

Phần cấu hình module: Nhiều thư viện bên ngoài được chỉ định trong phần các module (ở trên) cần có thiết lập tham số cho các module hoạt động hợp lý. Những tham số module này được thiết lập bằng lệnh modpram, có dạng

modparam(module_name, module_parameter, parameter_value).

Khối định tuyến chính (Main Route Block): Khối định tuyến chính tương tự

như hàm main trong lập trình C. Đây là điểm vào để xử lý một bản tin SIP và

điều khiển cách mà mỗi bản tin nhận được được xử lý.

Các khối định tuyến phụ (Secondary Route Blocks): Ngoài khối định tuyến chính, openser.cfg có thể chứa các khối định tuyến phụ có thể được gọi từ

khối định tuyến chính hay từ các khối định tuyến phụ khác. Một khối định tuyến phụ tương tự như một chương trình con.

Các khối định tuyến trả lời (Reply Route Blocks): Các khối định tuyến trả lời có thể được sử dụng đểđiều khiển trả lời đến các bản tin SIP. Thường là các bản tin 200 OK.

94 • Các khối định tuyến thất bại (Failure Route Blocks): Các khối định tuyến thất bại tùy chọn có thể được sử dụng khi xử lý đặc biệt là cần thiết để điều khiển trong các điều kiện không thành công như bận hay timeout.

¾ Các giao dịch (Transactions), hội thoại (Dialogs), và phiên (Sessions)

Để hiểu openser.cfg một cách đúng đắn, chúng ta cần hiểu 3 khái niệm SIP:

• Giao dịch SIP (Transaction): Một bản tin SIP (kể cả gửi lại) và đáp ứng trực tiếp (thông thường là trực tiếp) của nó (ví dụ User agent gửi REGISTER đến SER và nhận OK).

• Hội thoại SIP (SIP Dialog): Một quan hệ giữa (ít nhất) hai SIP phone tồn tại trong một thời gian nào đó (ví dụ hội thoại được thiết lập với một bản tin INVITE và được kết thúc bởi một bản tin BYE).

• Phiên (Session): Một luồng thoại thực sự giữa các SIP phone.

¾ Quá trình xử lý bản tin

Openser.cfg là một kịch bản được thực hiện cho mỗi bản tin SIP nhận được. Ví dụ, nêu user A muốn nói chuyện với user B, nó gửi một bản tin INVITE. Bản tin này được xử lý trong khối định tuyến chính. Quá trình xử lý tiếp tục cho đến khi nó tìm thấy lệnh t_reply() (forward bản tin) hay sl_send_reply (gửi một bản tin báo lỗi) hay rốt cuộc là hủy bỏ bản tin ở cuối khối định tuyến sử dụng lệnh exit.

b. SIP proxy – cách thức hoạt động mong đợi

Sẽ rất quan trọng để hiểu quá trình xử lý cơ bản của một SIP proxy theo chuẩn RFC3261. Nếu không hiểu điều này sẽ rất khó khăn để cấu hình một máy chủ

uỷ quyền.

Mỗi proxy sẽ đưa ra các quyết định định tuyến, chỉnh sửa các request trước khi gửi nó đến thành phần tiếp theo. Các đáp ứng sẽđược định tuyến qua cùng một tập các proxy mà request ban đầu đi qua nhưng theo thứ tụđảo ngược.

Một SIP proxy có thể hoạt động trong chếđộ stateless hay stateful. Khi một SIP proxy làm việc như là một máy chuyển tiếp gói SIP đơn giản, nó chuyển tiếp các gói đến các thành phần đơn được xác định bởi các request. Một proxy làm việc

95 trong chế độ stateless loại bỏ bất kỳ thông tin nào về bản tin sau khi bản tin đó vừa

được gửi. Đặc tính này làm giới hạn đến các chức năng như xử lý lỗi và tính cước. Khi OpenSER biết rằng bản tin 200 OK là tương ứng với một bản tin INVITE nào đó (trước đó), chúng ta nói rằng nó đang làm việc trong chế độ

stateful. Điều này đơn giản có nghĩa là bạn có thể quản lý các đáp ứng trong khối

định tuyến onreply_route(). Với xứ lý stateless mỗi bản tin được điều khiển không theo ngữ cảnh. Xứ lý stateless được sử dụng trong các ứng dụng như cân bằng tải; nó sử dụng câu lệnh forward() trong script.

Khi chúng ta cần các chức năng phức tạp hơn như tính cước, chuyển tiếp cuộc gọi, và voicemail, thì cần phải sử dụng xử lý stateful. Mỗi giao dịch sẽ được duy trì trong bộ nhớ và các lỗi, các đáp ứng, và việc gửi lại sẽđược kết hợp với một giao dịch nhất định. Các giao dịch stateful được điều khiển bởi module TM (Transaction Module) và thường sử dụng câu lệnh t_relay().

Một khái niệm thường nhầm lẫn là qua trình xử lý stateful là theo từng phiên chứ không phải theo từng hội thoại. Vì thế, quá trình xử lý stateful ví dụ là từ

request INVITE đến response OK (một giao dịch) chứ không phải từ request INVITE đến request BYE (của một hội thoại).

96 Hình trên là một mô tả đơn giản một hoạt động trong chế độ stateful. Trong

đó có sự tương đồng giữa các phần trong file openser.cfg với các phần ở trên. Khi hoạt động trong chế độ stateful, một proxy đơn giản chỉ là một bộ xử lý giao dịch SIP và tất cả các bước xử lý sau được yêu cầu:

• Phê chuẩn các request

• Tiền xử lý thông tin định tuyến • Xác định đích của request • Chuyển tiếp request đến đích • Xử lý tất cả các response

Một stateful proxy tạo ra một giao dịch server mới cho mỗi request mới nhận

được. Bất kỳ sự truyền lại nào của request sau đó sẽđược điều khiển bởi giao dịch server đó.

Ví dụ: Đối với mỗi request đang truyền qua SIP proxy của chúng ta, chúng ta sẽ:

Bước 1: Phê chuẩn các request

• Kiểm tra kích thước bản tin để tránh tràn bộđệm • Kiểm tra tiêu đề Max-forward để tìm các vòng lặp

Bước 2: Tiền xử lý thông tin định tuyến • Nếu có tiêu đề record-route thì xử lý nó Bước 3: Xác định đích của request

• Xem nó có thuộc trong database (là các user đã được đăng ký) không ? • Có một tuyến đến đích không (các gateway destination) ?

• Nó có được điều khiển đến các domain bên ngoài không (các external address)

Bước 4: Chuyển tiếp request đến đích

• Gọi chức năng t_relay() và OpenSER sẽ làm tất những công việc cho bạn một cách stateful.

Bước 5: Xử lý tất cả các response

• Thông thường công việc này được hoàn thành một cách tự động bởi OpenSER. Thỉnh thoảng chúng ta có thể sử dụng phần onreply_route[] để

97

điều khiển một vài response. Ví dụ: trong trường hợp “chuyển tiếp cuộc gọi khi bận”, chúng ta có thể sử dụng đáp ứng 486 (Busy) đểđiều khiển cuộc gọi

98

CHƯƠNG 5. GII PHÁP KT NI VÀ TRIN KHAI

DCH V CALL CENTER TRÊN NN IMS

5.1 Giải pháp kết nối:

Trong thực tế chúng ta dễ dàng nhận ra sự hạn chế của các thiết bị đầu cuối, ví dụ, ta có thể dễ dàng thiết lập cuộc gọi giữa sipclient-sipclient hay imsclient- imsclient, tuy nhiên để 2 thiết bị sipclient và imsclient có thể nói chuyện cho nhau là điều hoàn toàn không dễ dàng. Do những thiết bị chỉ hỗ trợ sip và có những thiết bị chỉ hỗ trợ ims. Chính vì lý do đó mà chúng ta cần tìm ra một giải pháp để có thể

kết hợp được giữa SIP và IMS.

Có một số giải pháp được đề cập đến như: giải pháp sử dụng 2 S-CSCF, giải pháp “di cư” sang IMS, Forking, Presence based solution, link registration. Tuy nhiên các giải pháp trên đều có nhược điểm như: không ổn định, tựđộng thoát khỏi cuộc gọi một cách tựđộng, tốn thời gian duy trì danh sách phân nhánh, phức tạp, … Vì vậy, tác giả sử dụng 1 giải pháp đơn giản và hiệu quả hơn là sử dụng OpenSer để

chỉnh sửa bản tin SIP. Cụ thể như mô hình bên dưới:

99 Gateway OpenSer OpenIMSCore IMS client IMS client PBX Sip client PSTN ims.vms.vn

Trong mô hình trên chúng ta đã có thể kết hợp được mạng IMS, mạng SIP VoIP và mạng PSTN.

+ Lý thuyết:

Như ta đã biết, các thiết bị sip phone bình thường không thể đăng kí trực tiếp lên openimscore được. Do các thiết bị sipphone dùng cơ chế xác thức là MD5 trong khi openIMSCore thì dùng cơ chế xác thực là AKAv1-MD5. Do đó không thể dùng theo cách thông thường để thực hiện cuộc gọi giữa 2 client là imsclient và sipclient

được. Chính vì vậy để thực hiện cuộc gọi từ imsclient ra sipclient và ngược lại ta cần phải kết nối được tổng đài PBX (nơi đăng kí của các thuê bao sip) và tổng đài IMS (nơi đăng kí của các thuê bao ims). Tuy nhiê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, chính vì lý do đó chúng ta cần xây dựng thêm một cái gateway giữa OpenIMSCore và tổng đài PBX. Nhiệm vụ của cái openSer là vừa đảm nhiệm chỉnh sửa gói tin sip khi gửi đến nó vừa có thể chuyển tiếp các cuộc gọi đến nơi yêu cầu.

100

5.1.2 Nhng ưu đim ca gii pháp:

5.1.2.1 Kết hợp được IMS và Asterisk:

Thực hiện cuộc gọi từ imsclient (đăng kí lên openimscore) đến sipclient đăng kí lên asterisk và ngược lại.

5.1.2.2 Sử dụng các dịch vụ có sẵn trên Asterisk :

™ Thực hiện cuộc gọi giữa các imsclient đăng kí lên openimscore thông qua tổng đài Asterisk. Qua đó tận dụng các dịch vụ có sẵn trên Asterisk như call forwading, voicemail, conference, ringtone,….

Gateway OpenSer OpenIMSCore IMS client 1 PBX ims.vms.vn IMS client 2

101

5.1.2.3 Kết nối được với mạng PSTN:

Thực hiện cuộc gọi từ imsclient ra mạng PSTN và ngược lại Gateway OpenSer OpenIMSCore IMS client PBX PSTN ims.vms.vn

Do hạn chế về mặt trang thiết bị nên luận văn sẽ chỉ dừng lại mức mô hình và đây là một hướng phát triển tiếp theo của đề tài.

5.1.2.4 Sử dụng dịch vụ presence:

Khi kết hợp OpenIMSCore với OpenSer ta có thể tận dụng được dịch vụ

presence ở trên OpenSer. Đây là một dịch vụ rất giống trên yahoo. Kịch bản như

sau: khi alice và bob đăng kí dịch vụ presence và thiết bị của họ cũng hỗ trợ dịch vụ

này (ví dụ như uctimsclient) thì khi alice đăng kí và để chế độ available thì bob sẽ

thấy trạng thái của alice là available (tức là đang online) và alice để status là gì thì bob cũng thấy được cái status của alice (giống hệt như trong yahoo).

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

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.

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 92)

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

(120 trang)