2. Yêu cầu chức năng hệ thống
2.3 Yêu cầu tích hợp hệ thống
2.3.1 Quản lý người dùng truy cập hệ thống
• Áp dụng cho quản lý hệ thống Core Biz và Core Admin • Tích hợp với Inside 2.0
2.3.2 Quản lý nhóm vai trò và phân quyền chức năng sử dụng
• Tích hợp với Inside 2.0
• Áp dụng cho quản lý hệ thống Core Biz và Core Admin 2.4 Yêu cầu chức năng nghiệp vụ gửi/nhận SMS
• Yêu cầu này dự trên quy trình gửi nhận tin đang hoạt động của hệ thống
2.4.1.1.1 YC_001_01: Xử lý nhận tin MO đến từ SMSC (Telco) – Core Gateway
• Tin nhắn từ Telco nhận về lấy theo số lượng tin nhắn nhất định • Tin nhắn về phải được lưu trữ trong queue.
• Có cơ chế phân biệt tin nhắn MO và tin nhắn xác nhận gửi MT thành công • Đọc một số lượng tin nhắn đồng thời từ Telco vào queue
2.4.1.2 YC_001_02: Xử lý ghi nhận tin MO vào hệ thống – Core Gateway
• Đọc tin nhắn từ queue. Những tin nào là MO thì insert vào DB MO và xóa khỏi queue lưu trữ MO • Những tin nào là phản hồi tin gửi MT thành công thì xóa khỏi queue lưu trữ nhận MO và queue lưu trữ gửi MT
2.4.1.3 YC_001_03: Xử lý đọc và kiểm tra tin MO hợp lệ – Core Biz 2.4.1.3.1 Xử lý đọc tin MO
• Lấy dữ liệu trong DB MO những tin nào mà có ID lớn hơn số ID mốc được lưu trữ trong DB MSG_status
• Xử lý kiểm tra spam và cú pháp dịch vụ.
• Sau khi kiểm tra cú pháp dịch vụ sẽ cập nhật thông tin MO của đối tác nào sở hữu dịch vụ. Mục đích cho việc truy xuất báo cáo sau này
• Sau khi xử lý, sẽ cập nhật ID cuối cùng (có STT tăng cao nhất) vào DB MSG_Status làm mốc. Mục đích để hệ thống nhận biết được ID nào đã xử lý rồi, ID nào chưa xử lý
2.4.1.3.2 Kiểm tra spam
• Kiểm tra tin nhắn có phải là tin spam hay không. Có 2 kiểu spam: spam do ngừoi dùng và spam do hệ thống telco
• Nếu là spam thì ghi nhận vào DB MSG_Error_log với tình trạng là spam do người dùng hay spam do hệ thống telco
• Nếu không là spam thì gửi chuyển đến kiểm tra cú pháp • Luật spam kế thừa từ hệ thống cũ. Xem chi tiết trong phụ lục
2.4.1.3.3 Kiểm tra cú pháp dịch vụ
• Mỗi dịch vụ SMS sẽ có một cú pháp tương ứng
• Kiểm tra cú pháp có được định nghĩa trong hệ thống hay chưa.
• Nếu chưa có hay sai thì ghi nhận vào DB MSG_Error_log với tình trạng là sai cú pháp dịch vụ. Ngược lại thì sẽ đưa vào queue đợi tiến hành truy xuất nội dung SMS
2.4.1.4 YC_001_04: Xử lý truy xuất nội dung SMS – Core Biz 2.4.1.4.1 Xử lý đọc tin MO và nhận nội dung trả về
• Đọc tin MO từ queue
• Gửi đến server dịch vụ đối tác tương ứng để trả về nội dung. Có thể qua Web Services hay DB Provider tùy vào loại đối tác và môi trường kết nối
• Khi server đối tác trả về nội dung, sẽ xóa dữ liệu trong queue và insert vào DB MT tin MT trả về, DB CDR tin sẽ tính cước .
2.4.1.4.2 Xử lý lỗi khi truy xuất dữ liệu
• Khi có lỗi, sẽ tiến hành xử lý các lỗi theo nội dung lỗi tương ứng:
o Lỗi sai cú pháp con trả về tiến hành ghi nhận lỗi trong DB MSG_Error_Log với tình trạng sai cú pháp con. Sau đó sẽ ghi thông tin MT và CDR vào bảng tương ứng. Sau đó xóa dữ liệu ra khỏi queue
o Lỗi không tìm được nội dung từ đối tác tiến hành ghi nhận lỗi với tình trạng timeout trong DB MSG_Error_Log. Sau đó sẽ ghi thông tin MT và CDR vào bảng tương ứng. Sau đó xóa dữ liệu ra khỏi queue
o Lỗi timeout (đối tác đã xử lý nhưng không trả về thông tin, chỉ cập nhật nơi đối tác):
Hệ thống tiến hành yêu cầu gửi lại theo các khoảng thời gian đã cấu hình trước (15s, 30s, 1h, 3h, 5h)
Sau lần yêu cầu cuối cùng mà vẫn bị timeout, tiến hành ghi nhận lỗi với tình trạng timeout trong DB MSG_Error_Log. Sau đó xóa dữ liệu ra khỏi queue
Ghi nhận thông tin đối soát
- Khi đối soát với đối tác, có sẽ chênh lệch phía đối tác nhiều hơn nhưng dựa vào status lỗi là timeout sẽ bù trừ lại
Chú ý tin nhắn timeout không gửi cho khách hàng nên không ghi nhận MT và CDR mà chỉ ghi nhận log lỗi
o Lỗi không kết nối được với đối tác
Hệ thống tiến hành yêu cầu gửi lại theo các khoảng thời gian đã cấu hình trước (15s, 30s, 1h, 3h, 5h)
Sau lần yêu cầu cuối cùng mà vẫn không kết nối được, tiến hành ghi nhận lỗi với tình trạng không thể kết nối trong DB MSG_Error_Log. Sau đó xóa dữ liệu ra khỏi queue
Chú ý tin nhắn timeout không gửi cho khách hàng nên không ghi nhận MT và CDR mà chỉ ghi nhận log lỗi
2.4.1.5 YC_001_05: Xử lý tin MT và CDR đã ghi vào hệ thống – Core Gateway 2.4.1.5.1 Xử lý đọc tin MT và gửi ra queue chờ gửi
• Lấy dữ liệu trong DB MT những tin nào mà có ID lớn hơn số ID mốc được lưu trữ trong DB MSG_status
• Tiến hành ghi vào queue chờ gửi đến nhà mạng
• Sau khi gửi đến queue, sẽ cập nhật ID MT cuối cùng (có STT tăng cao nhất) vào DB MSG_Status làm mốc. Mục đích để hệ thống nhận biết được ID MT nào đã xử lý rồi, ID MT nào chưa xử lý
2.4.1.5.2 Xử lý đọc tin CDR, ghi file CDR tương ứng và gửi đến telco
• Lấy dữ liệu trong DB CDR những tin nào mà có ID lớn hơn số ID mốc được lưu trữ trong DB MSG_status
• Tiến hành tạo file CDR
• Cập nhật ID CDR cuối cùng (có STT tăng cao nhất) vào DB MSG_Status làm mốc. Mục đích để hệ thống nhận biết được ID CDR nào đã xử lý rồi, ID CDR nào chưa xử lý
• Tiến hành Upload vào server FTP của telco theo khoảng thời gian cho trước. Mặc định là 5p/lần
2.4.1.6 YC_001_06: Xử lý gửi MT đến SMSC (Telco) - Core Gateway
• Đồng thời sẽ gửi đến 1 queue theo dõi. Mục đích là khi nhà mạng gửi tin phản hồi gửi thành công, thì sẽ xóa khỏi queue này.
• Nếu dữ liệu gửi không thành công, sẽ không xóa ra khỏi queue này và cuối tháng sẽ export để theo dõi và đối soát với Telco
2.4.2 YC_002: Gửi tin nhắn chủ động, quảng cáo
2.4.2.1 YC_002_01: Nhận tin nhắn chủ động MT và chuyển vào hệ thống – Core Biz
• Mô tả:
o Phía Partner sẽ gửi yêu cầu gửi tin nhắn MT với các thông số sau:
Key Partner
Service
Message
SendingTime
MSG_Type
Key Signature
o Web Service nhận thông tin từ chuyển đến từ phía Partner
o Web Service kiểm tra thông tin có hợp lệ không bao gồm:
Kiểm tra Key Partner
Kiểm tra Key Signature
Kiểm tra Service
Kiểm tra Phone
o Trường hợp hợp lệ, WebService sẽ thực thi ghi nhận vào Core DB và phản hồi thành công cho phía Partner
o Trường hợp không hợp lệ: WebService sẽ phản hồi thông báo không hợp lệ.
2.4.2.2 YC_002_02: Đọc tin nhắn chủ động MT và gửi đến Telco – Core Gateway
• Mô tả:
o Core Gateway sẽ gửi yêu cầu danh sách tin nhắn MT cần gửi đến Core DB với thông số sau:
Tên Telco SMPP kết nối
Hệ thống đầu số 8x00 hay 8x13
o Core DB sau khi nhận được yêu cầu sẽ kiểm tra các thông số yêu cầu.
o Trường hợp các yêu cầu đúng:
Core DB sẽ lấy danh sách các tin nhắn cần gửi với các yêu cầu sau: - Tên Telco
- Hệ thống đầu số
- Có thời gian gửi nhỏ hơn hoặc bằng thời gian hiện tại
Sau khi lấy xong danh sách các tin nhắn cần gửi, Core DB sẽ phản hồi danh sách này cho Core Gateway
o Trừơng hợp lỗi: Core DB phản hồi lại lỗi cho phía Core Gateway mà không cần lấy danh sách tin nhắn.
o Sau khi Core Gateway có danh sách tin nhắn cần gửi, Core Gateway thực thi tiếp, gửi các tin nhắn cần gửi này đến phía Telco.
2.5 Yêu cầu cho hệ thống Core SMS
2.5.1 YC_003: Yêu cầu kỹ thuật cho hệ thống Core Gateway
2.5.1.1 YC_003_01: Kết nối với Telco – Core Gateway
• Có nhiều cách kết nối đến SMSC tùy theo hạ tầng kỹ thuật 2 bên cho phép:
o Kết nối để nhận tin MO và gửi tin MT chung 1 đường, 1 account
o Kết nối nhận tin MO bằng 1 đường riêng, thông qua 1 account hay nhiều account
o Kết nối nhận tin MT bằng 1 đường riêng, thông qua 1 account hay nhiều account
2.5.1.2 YC_003_02: Giao tiếp với Core Biz và Core DB
• Core Gateway không giao tiếp với Core DB thông qua Core Biz như mô hình hệ thống cũ mà trực tiếp với Core DB thông qua cơ chế DB Provider hay Web Services
• Đối với những SMS Gateway chung hạ tầng mạng với Core Biz và Core DB, kết nối thông qua cơ chế DB Provider hay DNS….
• Đối với những SMS Gateway không chung hạ tầng mạng với Core BIZ và core DB, kết nối thông qua cơ chế Web Services
2.5.1.3 YC_003_03: Yêu cầu Queue và giao tiếp với queue 2.5.1.3.1 Đưa tin vào Queue
• N/A
2.5.1.3.2 Lấy tin khỏi Queue
2.5.1.3.3 Quản lý và cập nhật tin nhắn trong Queue
• N/A
2.5.1.4 YC_003_04: Gửi/ nhận tin nhắn
• Tham khảo YC_001 các mục gửi nhận tin nhắn thông qua Core Gateway
2.5.2 YC_004: Yêu cầu hệ thống Core Biz
2.5.2.1 YC_004_01: Xử lý nhận và kiểm tra tính hợp lệ tin MO 2.5.2.1.1 Kiểm tra tin nhắn spam
• Kiểm tra thời gian tin nhắn này cách thời gian bản tin trứơc có cùng số điện thoại, đầu số và nội dung bản tin nhắn cách nhau bao nhiêu. Nếu có thời gian nhỏ hơn hoặc bằng 5s thì bản tin bị tính spam
• Kiểm tra telco của số điện thoại khách hàng:
o Mobifone:
Khách hàng không được sử dụng các dịch vụ nội dung của một nhà cung cấp quá 150.000 đồng (đã bao gồm thuế GTGT) trong ngày (từ 0h00:00 đến 23h59:59).
o Viettel
Đối với các bản tin SMS có mức cước từ 10.000 đồng trở xuống:
- Khách hàng không được gửi quá 3 tin nhắn có cùng nội dung từ một số điện thoại trong thời gian 5 phút.
- Khách hàng không được gửi quá 10 tin nhắn có cùng nội dung từ một số điện thoại trong thời gian 1 giờ.
- Khách hàng không được gửi quá 100 tin nhắn trong vòng 24 giờ.
Đối với các bản tin SMS có mức cước lớn hơn 10.000 đồng
- Khách hàng không được gửi quá 3 tin nhắn có cùng nội dung từ một số điện thoại trong thời gian 30 phút.
- Khách hàng không được gửi quá 10 tin nhắn có cùng nội dung từ một số điện thoại trong thời gian 24 giờ.
o Sfone:
Khách hàng không được gửi quá 3 tin nhắn có cùng nội dung từ một số điện thoại trong thời gian 5 phút.
Khách hàng không được gửi quá 5 tin nhắn có cùng nội dung từ một số điện thoại trong thời gian 10 phút.
Khách hàng không được gửi quá 30 tin nhắn trong vòng 1 giờ.
Khách hàng không được gửi quá 300 tin nhắn trong vòng 24 giờ.
o Vina:
Khách hàng không được gửi quá 3 tin nhắn có cùng nội dung từ một số điện thoại trong thời gian 5 phút.
Khách hàng không được gửi quá 5 tin nhắn có cùng nội dung từ một số điện thoại trong thời gian 10 phút.
Khách hàng không được gửi quá 30 tin nhắn trong vòng 1 giờ.
Khách hàng không được gửi quá 300 tin nhắn trong vòng 24 giờ
2.5.2.1.2 Kiểm tra cú pháp
• Đối với bản tin nhắn SMS, cú pháp được tính như sau:
o Trường hợp bản tin không có khoảng trắng. Thì toàn bộ nội dung tin nhắn sẽ được coi là cú pháp
o Trường hợp bản tin có khoảng trắng. Cú pháp sẽ được tính từ ký tự đầu tiên cho đến ký tự đứng trước khoảng trắng ( tức là lấy ký tự khoảng trắng – 1)
• Kiểm tra cú pháp luôn đi kèm với đầu số dịch vụ. Trường hợp đúng cú pháp nhưng sai đầu số thì vẫn bị coi là tin nhắn không đúng cú pháp.
• Tham khảo mục 3.5
• Tất cả các cú pháp dịch vụ đều lưu trữ trong hệ thống SMS Core.
• Khi kiểm tra cú pháp, kiểm tra với những cú pháp cha để xác nhận tính hợp lệ và xác nhận đối tác đã cung cấp dịch vụ
• Đối với hệ thống dịch vụ nội bộ do ISC phát triển để cung cấp dịch vụ, khi kiểm tra cú pháp, sẽ kiểm tra cú pháp cha và cú pháp con
• Khi không đúng cú pháp sẽ thông báo sai cú pháp và trả về cho SMS Gateway câu thông báo sai cú pháp
• Tham khảo thêm mục 3.5
2.5.2.2 YC_004_02: Yêu cầu queue và giao tiếp với queue
• Tương tự như cách giao tiếp với queue của Core Gateway • Tham khảo YC_003_03
• Tùng bổ sung nếu cần thiết
2.5.2.3 YC_004_03: Yêu cầu giao tiếp với Core DB và Core Gateway
• Tương tự như cách giao tiếp với queue của Core Gateway • Tham khảo YC_003_02
• Tùng bổ sung nếu cần thiết
2.5.2.4 YC_004_04: Xử lý ghi thông tin CDR
• Tham khảo YC_001
2.5.2.5 YC_004_05: Xử lý ghi thông tin MT
• Tham khảo YC_001
2.5.2.6 YC_004_06: Xử lý thông tin lỗi
• Tham khảo YC_001
2.5.3.1 YC_005_01: Yêu cầu lưu trữ
• Core DB lưu trữ tất cả dữ liệu liên quan đến gửi nhận và quản lý tin nhắn SMS • Các thông tin yêu cầu lưu trữ chính:
Tin nhắn MO
Tin nhắn MT
Tin nhắn lỗi
Tin tính cước CDR
Thông tin tình trạng xử lý của các loại tin
2.5.3.2 YC_005_02: Yêu cầu chức năng cho Core DB
• Core DB phải thực hiện các tác vụ:
o Cung cấp Web Service cho các giao tiếp không thông qua DB Provider
o Truy xuất dữ liệu ngầm giữ các DB không thông qua các lớp trên gọi, mục đích cho xử lý nghiệp vụ tương ứng
2.5.4 YC_006: Yêu cầu cho hệ thống Core Admin
• Các yêu cầu này sẽ phát triển sau khi hoàn thành Core Gateway, Core DB và Core
2.5.4.1 YC_006_01: Quản lý Telco
• Các Telco còn gọi là các SMSC
• Các Telco cung cấp hạ tầng nhắn tin viển thông, hợp tác với các đối tác quản lý đầu số để thông qua đó, cung cấp dịch vụ tin nhắn SMS cho khách hàng
• Các thông tin cần quản lý:
o Quản lý thông tin chung Telco
o Quản lý thông số kết nối
2.5.4.1.1 Quản lý thông tin chung
• Mã Telco • Tên Telco, • Địa chỉ
• Số điện thoại liên lạc
• Thông tin vắn tắt người đại diện
• Thông tin về hợp đồng, phụ lục hợp đồng (quản lý dạng File)
2.5.4.1.2 Quản lý thông số kết nối
• Các thông số cần thiết để thiết lập kết nối với Telco
o System ID (Username)
o Password
o Connection type (Revceive, tranmitter, tranceiver)
o Port
o FTP server (IP, port, username/password)
o SMPP server (IP, port)
2.5.4.2
2.5.4.3 YC_006_02: Quản lý đối tác và cú pháp dịch vụ 2.5.4.3.1 Quản lý đối tác
• Mô tả yêu cầu
o Mỗi đối tác phải được tạo và kích hoạt trước khi đưa vào hoạt động
o Đối tác phải có thông tin người liên hệ để bảo đảm contact khi có sự cố
o Yêu cầu chức năng chi tiết
Yêu cầu tìm kiếm
- Tìm kiếm theo mã , tên - Ngành nghề hoạt động - Nhóm theo chữ cái đầu
Không được xóa đối tác khi đối tác đã tạo mã cú pháp dịch vụ và đang hoạt động
Kết hợp tạo cú pháp dịch vụ sau khi tạo đối tác • Quản lý thông tin chung đối tác
o Mã đối tác o Tên đối tác o Ngành nghê hoạt động o Ngày ký hợp đồng o Ngày tạm ngưng hợp tác o Ghi chú
• Quản lý thông tin người liên hệ
o Tham khảo quản lý contact point YC_006_02
2.5.4.3.2 Quản lý dịch vụ
• Mô tả yêu cầu
o Một công ty khai thác dịch vụ sẽ sở hữu nhiều loại dịch vụ khác nhau. Dịch vụ này sẽ được truy xuất