d
ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ
HOÀNG THỊ PHƯƠNG THẢO
XÂY DỰNG GIẢI PHÁP KẾT NỐI SMS GATEWAY
CHO DỊCH VỤ CUNG CẤP THÔNG TIN
QUA TIN NHẮN
LUẬN VĂN THẠC SĨ CÔNG NGHỆ THÔNG TIN
Hà Nội - 2013
Trang phụ bìa
ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ
HOÀNG THỊ PHƯƠNG THẢO
XÂY DỰNG GIẢI PHÁP KẾT NỐI SMS GATEWAY
CHO DỊCH VỤ CUNG CẤP THÔNG TIN
QUA TIN NHẮN
Ngành: Công nghệ thông tin
Chuyên ngành: Hệ thống thông tin
Mã số: 60 48 05
LUẬN VĂN THẠC SĨ CÔNG NGHỆ THÔNG TIN
NGƯỜI HƯỚNG DẪN KHOA HỌC: PGS.TS.Nguyễn Hải Châu
Hà Nội - 2013
1
MỤC LỤC
Lời cam đoan................................................................................................................ 4
Danh mục các ký hiệu và chữ viết tắt ........................................................................ 3
Danh mục hình ảnh ..................................................................................................... 4
MỞ ĐẦU....................................................................................................................... 5
Chương 1. TỔNG QUAN SMS .................................................................................. 6
1.1 Giới thiệu về SMS ........................................................................................... 6
1.1.1 Khái niệm SMS .......................................................................................... 6
1.1.2 Luồng gửi tin nhắn .................................................................................... 7
1.1.3 Cơ chế gửi tin nhắn ................................................................................. 10
1.1.4 Một số ứng dụng ...................................................................................... 12
1.2 SMSC ............................................................................................................. 13
1.3 SMS Gateway................................................................................................ 13
1.4 Các giao thức của SMS Gateway ................................................................ 16
Chương 2. Kannel và giải pháp kết nối SMS Gateway .......................................... 19
2.1
2.2
2.3
2.4
2.5
Giải pháp kết nối tới SMS Gateway............................................................... 19
Giới thiệu chung về Kannel............................................................................ 19
Kiến trúc Kannel ............................................................................................ 20
Cài đặt Kannel và cấu hình Kannel ................................................................ 21
Giải pháp kết nối Kannel............................................................................... 29
Chương 3. Xây dựng và mô phỏng ứng dụng cung cấp nội dung ......................... 31
3.1 Động lực phát triển và phạm vi hệ thống ....................................................... 31
3.2 Kiến trúc hệ thống ứng dụng sử dụng Kannel................................................ 32
3.3 Xây dựng ứng dụng SMS hỗ trợ tìm kiếm, thuê xe du lịch ........................... 33
3.3.1 Phát biểu bài toán ................................................................................... 33
3.3.2 Yêu cầu chức năng đối với từng thành phần tham gia ............................ 34
3.3.3 Các quy tắc logic phục vụ quá trình suy diễn.......................................... 37
3.3.4 Các chức năng hệ thống .......................................................................... 38
3.3.5 Thiết kế cơ sở dữ liệu ............................................................................... 40
Chương 4. Thực nghiệm và đánh giá ....................................................................... 41
4.1
4.2
4.3
4.4
4.5
Môi trường và các công cụ sử dụng thực nghiệm .......................................... 41
Dựng cơ sở dữ liệu và xây dựng tập dữ liệu .................................................. 41
Cấu hình SMPPSim........................................................................................ 41
Cấu hình Kannel ............................................................................................. 42
Mô phỏng ứng dụng ....................................................................................... 43
KẾT LUẬN ................................................................................................................ 44
TÀI LIỆU THAM KHẢO......................................................................................... 45
PHỤ LỤC ................................................................................................................... 46
2
1.
2.
3.
Danh mục các bảng dữ liêu ............................................................................ 46
File cấu hình của SMPPSim .......................................................................... 48
File cấu hình của Kannel ................................................................................ 50
3
Danh mục các ký hiệu và chữ viết tắt
Thuật ngữ
Định nghĩa
Ghi chú
CDMA
Code Division Multiple Access
ESME
External Short Messaging Entities
EMS
Enhanced Messaging Service
ETSI
European Telecommunications
Standards Institute
GSM
Global System For Mobile
Communications
GPRS
General Packet Radio Services
HTML
Hypertext Markup Language
HTTP
Hypertext Transfer Protocol
MSC
Mobile Service Switching
Trung tâm
chuyển mạch
di động.
MMS
Multimedia Message Service
Dịch vụ tin
nhắn đa
phương tiện
RE
Routing Entities
SME
Short Messaging Entities
SMPP
Short Message Peer to Peer Protocol
SMS
Short Message Service
SMSC
Short Message Service Centrer
URL
Uniform Resource Locator
VASP
Value Added Service Provider
WAP
Wireless Application Protocol
WML
Wireless Markup Language
Viện tiêu
chuẩn viễn
thông Châu
Âu.
4
Danh mục hình ảnh
Hình 1.1: Luồng gửi tin nhắn tới điện thoại.............................................................. 7
Hình 1.2: Luồng gửi tin nhắn từ điện thoại .............................................................. 8
Hình 1.3: Luồng SMS cơ bản .................................................................................... 9
Hình 1.4: Luồng SMS gửi giữa các điện thoại cùng nhà mạng ............................... 9
Hình 1.5: Luồng SMS gửi giữa các điện thoại cùng nhà mạng ............................... 9
Hình 1.6: Luồng SMS giữa điện thoại và các ứng dụng .......................................... 9
Hình 1.7: Luồng SMS từ ứng dụng tới điện thoại ................................................. 10
Hình 1.8: Luồng gửi tin nhắn thông thường ........................................................... 10
Hình 1.9: Luồng gửi tin nhắn khi hai nhà mạng cùng công nghệ SMSC ............. 11
Hình 1.10: Luồng gửi tin nhắn khi hai nhà mạng khác công nghệ SMSC ........... 11
Hình 1.11: Ứng dụng Person-to-person text messaging ......................................... 12
Hình 1.12: Một ứng dụng gửi tin nhắn văn bản SMS kết nối với nhiều SMSC mà không
có SMS gateway ......................................................................................................... 14
Hình 1.13: Một SMS Gateway hoạt động như một rơ le giữa 2 SMSC ............... 14
Hình 1.14: Ứng dụng gửi tin nhắn văn bản có thể kết nối với nhiều SMSC thông qua
SMS gateway .............................................................................................................. 15
Hình 1.15: Một ứng dụng nhắn tin văn bản kết nối tới nhiều điện thoại hoặc modem
GSM/GPRS thông qua 1 SMS gateway ................................................................... 15
Hình 1.16: Mô hình giao tiếp giữa ESME và SMSC qua SMPP ........................... 17
Hình 2.1: Kiến trúc Kannel ...................................................................................... 21
Hình 3.1: Kiến trúc ứng dụng cung cấp thông tin qua SMS sử dụng Kannel ..... 32
Hình 4.1: Giao diện của web quản lý SMPP Sim ................................................... 41
Hình 4.2: Giao diện gửi tin nhắn của web quản lý SMPP Sim ............................. 42
5
MỞ ĐẦU
Viễn thông là một trong số ít những nghành vẫn giữ được đà tăng trưởng khi nền
kinh tế suy thoái. Sự ra đời của hàng loạt các nhà cung cấp dịch vụ mạng điện thoại di
động, số lượng thuê bao không ngừng tăng lên càng khẳng định vị trí quan trọng của
viễn thông. Trong khi điện thoại cố định đang phát triển cầm chừng thì các dịch vụ di
động và dữ liệu ngày càng phát triển mạnh mẽ. Trong số đó, dịch vụ nhắn tin (SMS Short Message Service) được xem như là một dịch vụ mang lại doanh thu tương đối ổn
định. Ngoài việc cung cấp dịch vụ nhắn tin giữa các thuê bao trong và ngoài mạng, các
nhà mạng tận dụng tối đa sự tiện dụng của SMS để phát triển các dịch vụ giá trị gia
tăng hay nhiều loại hình dịch vụ khác qua các tổng đài tin nhắn. Một số dịch vụ giá trị
gia tăng điển hình: dịch vụ thông báo cuộc gọi nhỡ, dịch vụ chuyển tiền, dịch vụ ứng
tiền, dịch vụ nhạc chờ…
Mặt khác, các nhà cung cấp nội dung cũng dựa trên kênh SMS của các nhà mạng
để xây dựng các dịch vụ giá trị gia tăng để thu lợi nhuận. Các dịch vụ thường thấy bao
gồm: dịch vụ tải game, dịch vụ tải nhạc chuông, dịch vụ tra cứu điểm thi…
Ngoài ra, SMS là một kênh quan trọng trong các hệ thống lớn hiện nay. Có thể
kể đến dịch MobileBanking, Bankplus trong ngân hàng, hoặc kênh thông báo nội bộ
các cơ quan… SMS đã trở thành một phần quan trọng, không thể thiếu trong cuộc
sống.
Thời gian gần đây, sự phát triển của các dịch vụ SMS đã trở lên bão hòa, nhưng
vai trò của SMS thì không thể phủ nhận.
Với mục tiêu hiểu được quá trình hoạt động của một dịch vụ SMS, đưa ra giải
pháp kết nối SMS Gateway cho dịch vụ cung cấp nội dung, tôi đã lựa chọn đề tài “Xây
dựng giải pháp kết nối SMS Gateway cho dịch vụ cung cấp thông tin qua tin nhắn”.
6
Chương 1. TỔNG QUAN SMS
1.1
Giới thiệu về SMS
1.1.1 Khái niệm SMS
SMS (Short message Service) là một công nghệ cho phép gửi và nhận tin nhắn
giữa các điện thoại. SMS xuất hiện đầu tiên ở Châu Âu vào năm 1992, thuộc tiêu
chuẩn GSM (Global System for Mobile Communications). Sau đó, SMS chuyển sang
lĩnh vực công nghệ không dây giống như CDMA(Code Division Multiple Access) và
TDMA(Time Division Multiple Access. Các tiêu chuẩn GSM và SMS được phát triển
đầu tiên bởi ETSI (European Telecomucations Standards Institute). Hiện tại 3GPP
(Third Generation PartnerShip Project) chịu trách nhiệm phát triển và bảo trì các tiêu
chuẩn GSM và SMS.
Dữ liệu được trong tin nhắn SMS bị giới hạn: mỗi tin nhắn SMS có thể chứa
nhiều nhất 140 bytes (1120bit) dữ liệu, bởi vậy mỗi tin nhắn SMS có thể chứa:
- 160 ký tự mã hóa 7 bit (mã hóa 7 bit phù hợp cho các ký tự Latin – tiếng anh).
- 70 ký tự mã hóa theo kiểu 16bit Unicode UCS2 (các ký tự không phải ký tự
Latin, ví dụ chữ Trung Quốc).
Tin nhắn văn bản SMS hỗ trợ ngôn ngữ quốc tế, cụ thể là tất cả các ngôn ngữ
được hỗ trợ bởi Unicode. Ngoài dữ liệu văn bản, các tin nhắn SMS cũng có thể chứa
các dữ liệu nhị phân - nhạc chờ, hình ảnh, logo nhà điều hành, hình động,….
Ưu điểm chính của SMS:
- Các tin nhắn SMS có thể được gửi và nhận bất cứ lúc nào.
- Các tin nhắn có thể gứi tới điện thoai đang tắt máy hoặc không liên lạc được
- SMS ít phiền phức.
- Các tin nhắn SMS có thể được hỗ trợ bởi 100% các điện thoại GSM và chúng
có thể trao đổi với các thiết bị không dây khác.
- SMS là một công nghệ phù hợp với các ứng dụng không dây.
Hạn chế của công nghệ SMS và cách khắc phục:
- Mỗi tin nhắn SMS chỉ có thể chứa một lượng giới hạn dữ liệu. Để có thể khắc
phục nhược điểm này, một tin nhắn văn bản “ghép” có thể chứa nhiều hơn 160
ký tư tiếng Anh. Tin nhắn ghép làm việc như sau: Điện thoại – bên gửi sẽ chia
một tin nhắn dài thành các phần nhỏ hơn và gửi chúng như những tin nhắn SMS
đơn. Khi các tin nhắn SMS này tới đích, điện thoại bên nhận sẽ liên kết chúng
lại thành một tin nhắn dài.
- Mỗi tin nhắn SMS không thể chứa nội dung “giàu phương tiện” như ảnh, ảnh
động và giai điệu. EMS (Enhanced Messaging Service) được phát triển cũng vì
lý do này. Một tin nhắn EMS có thể dễ thay đổi. Ví dụ, bên gửi tin nhắn có thể
chỉ rõ xem đoạn văn bản trong một tin nhắn EMS nên được hiển thị là chữ đậm
hay chữ nghiêng với phông lớn hay nhỏ. Nhược điểm của EMS là được hỗ trợ ít
rộng rãi trên các thiêt bị không dây. Nhiều thiết bị không dây hỗ trợ EMS cũng
7
chỉ hỗ trợ một tập nhỏ các đặc điểm được đưa ra trong đặc tả EMS. Và một điều
chắc chắn là EMS có thể hỗ trợ trên thiết bị này nhưng lại không hỗ trợ trên
thiết bị khác.
SMS được gửi thông qua trung tâm dịch vụ tin nhắn ngắn (Short Message
Service Center - SMSC). Tại đây, các tin nhắn sẽ được lưu trữ và sau đó chuyển tiếp
đến máy di động đích. Trên mạng của các nhà cung cấp dịch vụ di động thường có
nhiều trung tâm dịch vụ tin nhắn. Ngoài ra, các trung tâm cung cấp các dịch vụ giá
trị gia tăng (Value Added Service Provider - VASP) ra đời để đáp ứng nhu cầu ngày
càng tăng về các dịch vụ thông tin khác dựa trên nền SMS. Để VASP có thể cung
cấp các dịch vụ gia tăng cả hai chiều trên toàn mạng di động, VASP phải kết nối đến
các SMSC của tất cả các mạng. Tuy nhiên các SMSC được phát triển bởi các công ty
khác nhau, sử dụng các giao thức khác nhau, vì vậy cần có SMS Gateway nhằm kết
nối SMSC giữa các nhà mạng khác nhau. Giao thức chủ yếu trong nền SMS là SMPP
(Short Message Peer to Peer Protocol). Các thành phần chính trong mạng viễn thông
liên quan tới SMS sẽ được làm rõ ở các mục sau.
1.1.2 Luồng gửi tin nhắn
SMS bao gồm 2 dịch vụ cơ bản:
- MO–SM (Mobile-originated short message): Chiều tin nhắn gửi đi từ điện
thoại. Xem hình 1.2.
- MT-SM (Mobile-terminated short message): Chiều tin nhắn tới điện thoại. Xem
hình 1.1
Hình 1.1: Luồng gửi tin nhắn tới điện thoại
Các bước trong luồng tin nhắn tới điện thoại:
8
1. Tin nhắn được gửi đi từ các SME (Short message entity – thực thể gửi tin
nhắn) tới SMSC (SMS Center).
2. Sau khi thực hiện các xử lý bên trong, SMSC lấy các thông tin về thuê bao
nhận tin nhắn trên HLR (Home Location Register – bộ định vị thường trú của
thuê bao).
3. SMSC gửi tin nhắn tới MSC (Mobile Switching Center – Trung tâm chuyển
mạch dịch vụ)
4. MSC lấy thông tin về thuê bao ở VLR (Visitor location register - bộ định vị
tạm trú của thuê bao).
5. MSC chuyển tin nhắn tới điện thoại
6. MSC sẽ gửi lại SMSC kết quả của thao tác gửi tin nhắn.
7. SMSC sẽ gửi thông tin về kết quả cho SME trong trường hợp SME yêu cầu.
Hình 1.2: Luồng gửi tin nhắn từ điện thoại
Các bước trong luồng gửi tin nhắn từ điện thoại:
1. Tin nhắn được gửi từ điện thoại lên MSC
2. MSC lấy thông tin từ VLR để xác thực thuê bao.
3. MSC gửi thông tin lên SMSC
4. SMSC sẽ chuyển tin nhắn tới SME
Trong luồng thực tế, trước khi chuyển tin nhắn tới SME, SMSC sẽ gửi thông tin
lên SCP (Service Control Point) để kiểm tra xem tài khoản của khách hàng có đủ thực
hiện thao tác gửi tin nhắn hay không.
Tin nhắn có thể được gửi giữa các điện thoại với nhau trong cùng một mạng hoặc
9
khác mạng, cũng có thể được gửi từ điện thoại tới một nhà cung cấp dịch vụ hoặc từ
nhà cung cấp dịch vụ gửi tin nhắn về điện thoại. Hình 1.3, 1.4, 1.5, 1.6. 1.7 lần lượt là
các luồng gửi nhận tin nhắn trong các trường hợp thực tế.
Hình 1.3: Luồng SMS cơ bản
Hình 1.4: Luồng SMS gửi giữa các điện thoại cùng nhà mạng
Hình 1.5: Luồng SMS gửi giữa các điện thoại cùng nhà mạng
Hình 1.6: Luồng SMS giữa điện thoại và các ứng dụng
10
Hình 1.7: Luồng SMS từ ứng dụng tới điện thoại
1.1.3 Cơ chế gửi tin nhắn
1.1.3.1 Tin nhắn nội mạng
Là tin nhắn giữa các thuê bao của cùng một nhà điều hành mạng. Thông thường,
phí gửi tin nhắn nội mạng thì thấp hơn so với các tin nhắn ngoại khác, thậm chí một số
nhà mạng còn cho phép 1 số thuê bao gửi tin nhắn nội mạng không giới hạn và cũng
không bị tính phí.
Việc truyền tin nhắn nội mạng đồng nghĩa là chỉ có 1 SMSC, sau khi rời khỏi
máy gửi tin, tin nhắn nội mạng tới SMSC. SMSC sau đó gửi tin nhắn tới điện thoại
bên nhận. Nếu điện thoại bên nhận đang không hoạt động, SMSC sẽ lưu các tin nhắn
này. Nó sẽ chuyển giao tin nhắn này khi điện thoại bên nhận hoạt động, Nếu như thời
gian lưu trữ tin nhắn đã hết mà điện thoại bên nhận vẫn không hoạt động thì SMSC sẽ
xóa tin nhắn này.
Khi SMSC nhận tin nhắn thông báo (Delivery report message) từ phía điện thoại
bên nhận hoặc xóa tin nhắn (trong trường hợp vượt quá thời gian hiệu lực của tin
nhắn) thì nó sẽ gửi thông báo trạng thái (status report) tới bên gửi nếu bên gửi có yêu
cầu trước đó.
Hình 1.8: Luồng gửi tin nhắn thông thường
1.1.3.2 Tin nhắn ngoại mạng
Là tin nhắn giữa các thuê bao của các nhà mạng khác nhau. Thông thường, có hai
cách khác nhau để truyền các tin nhắn ngoại mạng.
- Chuyển giao tin nhắn trực tiếp trong trường hợp hai nhà mạng sử dụng cùng
một công nghệ.
11
Hình 1.9: Luồng gửi tin nhắn khi hai nhà mạng cùng công nghệ SMSC
- Chuyển giao tin nhắn qua SMS Gateway hoặc một giao thức kết nối được hỗ
trợ bởi cả hai SMSC.
Hình 1.10: Luồng gửi tin nhắn khi hai nhà mạng khác công nghệ SMSC
1.1.3.3 Tin nhắn quốc tế
Về bản chất, tin nhắn ngoại mạng có thể chia làm 2 loại: tin nhắn trong nước và
tin nhắn quốc tế. Tin nhắn trong nước (ngoại mạng) là một tin nhắn được gửi từ nhà
mạng này tới nhà mạng khác trong cùng một nước, còn tin nhắn quốc tế là tin nhắn
được gửi từ một nhà mạng của nước này tới một nhà mạng ở nước khác.
Thông thường, phí gửi tin nhắn quốc tế thì cao hơn phí tin nhắn trong nước. Do
đó phí gửi tin nhắn nội mạng <= phí gửi tin nhắn ngoại mạng trong nước <= phí gửi
tin nhắn quốc tế.
Sự tương thích tin nhắn SMS giữa hai mạng trong nước và thậm chí quốc tế
chắc chắn là nhân tố chính xây dựng sự thành công của thế giới SMS.
12
1.1.4 Một số ứng dụng
Công nghệ SMS có thể được sử dụng cho nhiều ứng dụng khác nhau, ví dụ:
- Person – to – person text messaging: là ứng dụng SMS phổ biến nhất. Trong
loại ứng dụng tin nhắn văn bản này, người sử dụng điện thoại có thể gõ nội
dung tin nhắn văn bản sử dụng bàn phím trên điện thoại của họ, sau đó họ sẽ
nhập số điện thoại của người nhận và ấn tùy chọn “Send” hoặc “OK” trên màn
hình để gửi tin nhắn đi. Điện thoại bên nhận khi nhận được tin nhắn sẽ thông
báo cho người sử dụng thông qua âm thanh hoặc rung. Người sử dụng có thể
đọc nội dung tin nhắn SMS ngay lập tức hoặc đọc sau và có thể gửi tin nhắn
phản hồi nếu như họ muốn.
Một ứng dụng chat là một loại khác của ứng dụng person – to – person text
messaging, cho phép một nhóm người có thể trao đổi các tin nhắn văn bản
SMS. Trong một ứng dụng chat, tất cả các tin nhắn văn bản SMS gửi và nhận
đều được hiển thị trên màn hình điện thoại theo thứ tự thời gian. Các tin nhắn
văn bản SMS được biết bởi những người sử dụng điện thoại khác nhau có thể
được hiển thị bởi các màu khác nhau cho dễ đọc. Ví dụ:
Hình 1.11: Ứng dụng Person-to-person text messaging
- Cung cấp thông tin: sử dụng tin nhắn văn bản SMS để gửi thông tin như tin
tức, thông báo thời tiết, tài chính… các thuê bao. Những dịch vụ cung cấp
thông tin này thường tính phí.
- Downloading: Các tin nhắn SMS có thể mang các dữ liệu nhị phân và SMS
cũng được sử dụng như là một phương tiện vận chuyển trong việc tải dữ liệu
không dây. Các đối tượng như nhạc chuông, ảnh nền, các ảnh và các logo của
nhà mạng có thể được mã hóa trong một hoặc nhiều tin nhắn SMS phụ thuộc
vào kích cỡ của đối tượng. Cũng giống như các dịch vụ thông tin, dịch vụ
download cũng được tính phí. Các đối tượng được download thì được mã hóa
trong một hoặc nhiều tin nhắn SMS có tính phí.
- Thông báo, cảnh báo: SMS là một công nghệ phù hợp cho việc phân phát các
13
thông báo về các sự kiện quan trọng. Có 2 lý do:
o Điện thoại là thiết bị mà hầu hết người sử dụng luôn mang theo. Bất cứ
khi nào có một tin nhắn văn bản được chuyển tới, điện thoại sẽ thông báo
cho bạn qua âm thanh hoặc rung. Bạn có thể kiểm tra nội dung của tin
nhắn ngay lập tức.
o Công nghệ SMS cho phép đẩy thông tin, luôn có một thiết bị kết nối với
server thường xuyên để kiểm tra xem có thông tin gì mới không.
o Một số ví dụ: Email, fax, và voice message notification, thương mại điện
tử, thông báo các giao dịch về thẻ tín dụng,…
Từ các thông tin về các luồng gửi tin nhắn cũng như cơ chế gửi tin nhắn, có thể
thấy rằng, SMSC và SMS Gateway là hai thành phần cơ bản nhất trong hệ thống SMS.
Ngoài ra, giao thức giữa SMSC và SMS Gateway cũng chính là một bài toán trong vấn
đề xây dựng giải pháp kết nối tới SMS Gateway trong ứng dụng cung cấp thông tin
qua tin nhắn.
1.2
SMSC
SMSC (Short Message Service Centrer) là trung tâm dịch vụ nhắn tin ngắn.
SMSC là sự kết hợp giữa phần cứng và phần mềm. SMSC chịu trách nhiệm xử lý các
thao tác SMS trong một mạng không dây. Một tin nhắn SMS được gửi từ điện thoại sẽ
tới SMSC đầu tiên. Sau đó SMSC sẽ chuyển tiếp các tin nhắn này tới đích. Một tin
nhắn SMS cần phải đi qua nhiều thực thể mạng (SMSC và SMS gateway) trước khi tới
đích. Nhiệm vụ chính của một SMSC là định tuyến các tin nhắn SMS, điều chỉnh quá
trình chuyển tin nhắn. Nếu như bên nhận không thể nhận tin nhắn (điện thoại tắt máy,
ngoài vùng phủ sóng) thì SMSC sẽ lưu trữ các tin nhắn này trong một khoảng thời
gian được cấu hình trước và chuyển các tin nhắn này khi bên nhận sẵn sàng.
Ngoài ra SMSC còn có vai trò trong việc tính cước. SMSC còn hỗ trợ rất nhiều
giao thức kết nối mà hay dùng nhất là giao thức SMPP. Chính vì thế sẽ có rất nhiều
ứng dụng được xây dựng dựa trên các giao thức đó.
Một SMSC cũng chịu trách nhiệm xử lý tải SMS trong một mạng không dây.
Thông thường, các nhà mạng tự quản lý các SMSC của họ và định vị chúng bên trong
hệ thống mạng. Tuy nhiên, một nhà điều hành mạng có thể sử dụng SMSC của bên thứ
ba – định vị ngoài hệ thống mạng.
Để sử dụng nhắn tin trên điện thoại, bạn cần biết địa chỉ của SMSC của nhà điều
hành mạng. Địa chỉ của SMSC là một số có sẵn theo định dạng quốc tế. Một điện thoại
nên có tùy chọn menu để cấu hình địa chỉ SMSC. Thông thường, một SMSC được
thiết lập trước trong thẻ SIM bởi nhà điều hành mạng, điều đó có nghĩa là bạn không
cần làm bất cứ thay đổi nào với nó cả.
1.3
SMS Gateway
Một vấn đề trong công nghệ gửi tin nhắn đó là các SMSC được phát triển bởi các
công ty khác nhau, các công ty này sử dụng các giao thức của họ và hầu hết các giao
14
thức này là độc quyền. Ví dụ, Nokia có một giao thức SMSC gọi là CIMD khác với
các nhà cung cấp khác – CMG có giao thức SMSC gọi là EMI. Chúng ta không thể kết
nối hai SMSC nếu chúng không hỗ trợ một giao thức SMSC chung. Để xử lý vấn đề
này, một SMS Gateway được đặt giữa 2 SMSC. SMS Gateway hoạt động như một
rơle giữa 2 SMSC. Nó sẽ chuyển một giao thức SMSC sang một giao thức SMSC
khác. Cách này được sử dụng nhằm kết nối các SMSC của hai nhà mạng khác nhau.
Mặt khác, SMS Gateway cũng chính là cầu nối giữa các ứng dụng gửi tin nhắn
tới các SMSC. Giả sử bạn là người phát triển một ứng dụng gửi tin nhắn văn bản SMS.
Để gửi và nhận các tin nhắn văn bản SMS thì bạn cần kết nối với SMSC của nhà
mạng. Các nhà mạng khác nhau có thể sử dụng các SMSC từ các nhà cung cấp khác
nhau, điều đó có nghĩa là ứng dụng gửi tin nhắn văn bản SMS của bạn cần phải hỗ trợ
nhiều giao thức SMSC Điều đó dẫn đến sự phức tạp và tăng thời gian phát triển của
các ứng dụng gửi tin nhắn văn bản (hình 2.1).
Hình 1.12: Một ứng dụng gửi tin nhắn văn bản SMS kết nối với nhiều SMSC mà không
có SMS gateway
Để giải quyết tất cả những vấn đề trên, một SMS Gateway có thể được thiết lập
để xử lý các kết nối với SMSC. Như vậy, một ứng dụng gửi tin nhắn văn bản SMS chỉ
cần biết cách kết nối tới SMS gateway. Để hỗ trợ nhiều SMSC, cần phải thay đổi phần
cài đặt SMS gateway, không phải thay đổi source code của ứng dụng. Việc sử dụng
SMS Gateway có thể rút ngắn thời gian phát triển của ứng dụng gửi tin nhắn văn bản
SMS.
Hình 1.13: Một SMS Gateway hoạt động như một rơ le giữa 2 SMSC
15
Hình 1.14: Ứng dụng gửi tin nhắn văn bản có thể kết nối với nhiều SMSC thông qua
SMS gateway
Hình 1.15: Một ứng dụng nhắn tin văn bản kết nối tới nhiều điện thoại hoặc modem
GSM/GPRS thông qua 1 SMS gateway
Nhiều hệ thống SMS Gateway ra đời dưới dạng cả phần mềm đóng và phần mềm
mã nguồn mở phục vu cho các nhu cầu khác nhau, một số SMS Gateway điển hình
như:
- WinSMS
- Ozeki
- NowSMS
- Kannel: mã nguồn mở
- SMS Server Tools: mã nguồn mở
- Gnokii.org: mã nguồn mở
Các sản phẩm này cho phép người ta xây dựng các hệ thống giá trị gia tăng trên
điện thoại di động mà không cần phải quá quan tâm đến chi tiết của các giao thức gửi
nhận tin nhắn mà họ sử dụng.
Bên cạnh việc kết nối trực tiếp tới SMSC, một cách khác để gửi và nhận một tin
nhắn văn bản trên một máy tính là sử dụng một điện thoại hoặc một modem
GSM/GPRS. Để thực hiện việc này, các ứng dụng gửi tin nhắn văn bản của bạn phải
biết cách kết nối tới điện thoại hoặc modem GSM/GPRS sử dụng các lệnh AT.
16
Một số SMS Gateway có thể xử lý kết nối tới các điện thoại và GSM/GPRS. Để
gửi và nhận các tin nhắn văn bản với một điện thoại hoặc modem GSM/GPRS, các
ứng dụng gửi tin nhắn văn bản chỉ cần biết cách nói chuyện với SMS Gateway mà
không cần biết bất cứ lệnh AT nào.
Như vậy, một SMS Gateway đảm nhiệm rất nhiều vai trò trong hệ thống SMS.
Có một số phần mềm SMS Gateway miễn phí, trong đó có Kannel – được viết bằng
ngôn ngữ lập trình C. Kannel có thể xử lý các kết nối tới SMSC, điện thoại và modem
GSM/GPRS.
1.4
Các giao thức của SMS Gateway
Với vai trò làm cầu nối cho các SMSC, SMS Gateway phải hỗ trợ rất nhiều giao
thức khác nhau. Một số giao thức của SMS Gateway:
- SMPP: giao thức phổ biến nhất
- HTTP/S API: được sử dụng trong việc truyền các yêu cầu dạng HTTP
- SMTP [E-mail to SMS]: cho phép tin nhắn được gửi thông qua email được
chuyển đổi thành SMS. Một ứng dụng có thể gửi email trực tiếp tới SMS
Gateway thông qua SMTP. SMS Gateway có thể đọc các trường “to”, “from”,
“subject” và “body” của email và dựa trên thông tin các số điện thoại đính kèm,
các nhóm đích để chuyển nội dung từ email thành tin nhắn.
- XML: Một ứng dụng có thể gửi văn bản định dạng XML chứa danh sách các địa
chỉ đích (là các số điện thoại) cùng văn bản tin nhắn. SMS Gateway có thể
truyền nội dung tin nhắn tới điện thoại thông qua các GSM modem.
- FTP: phù hợp cho việc chuyển những tin nhắn có dung lượng lớn
- COM Object API: được sử dụng phổ biến cho những người phát triển ứng dụng
trên môi trường window, tích hợp việc gửi tin nhắn trong ứng dụng của mình.
Trong các giao thức thì SMPP (Short Message Peer to Peer) là giao thức phổ
biến nhất. SMPP là một giao thức mở và là chuẩn công nghiệp được sử dụng trong
việc truyền nhận dữ liệu dưới dạng tin nhắn giữa các ESME (External Short Message
Entities), Routing Entities (RE) và Message Centres(MC). MC là cách gọi chung nhất
cho các tổng đài tin nhắn SMSC. Giao thức SMPP hỗ trợ cho các công nghệ mạng
Digital Cellular gồm có: GSM, CDMA, IDMA, iDEN.
Giao thức SMPP cho phép một ESME có thể khởi tạo kết nối tại tầng ứng dụng
với một SMSC qua mạng TCP/IP hoặc X.25 để gửi và nhận tin ngắn với một SMSC
đó. ESME cũng có thể sử dụng SMPP để truy vấn, bỏ qua hoặc thay thế các tin ngắn.
Giao thức SMPP hỗ trợ:
- Truyền tin từ một ESME tới một hoặc nhiều đích bằng SMSC
- Một ESME cũng có thể nhận tin bằng SMSC từ các SME khác (ví dụ: các
mobile station)
- Truy vấn trạng thái của một tin ngắn được lưu trong SMSC; Bỏ qua hay thay
thế một tin ngắn được lưu trong SMSC.
- Gửi các báo báo
17
- Lên lịch gửi tin theo ngày tháng
- Lựa chọn chế độ của tin, ví dụ: đóng gói hoặc lưu trữ và chuyển tiếp; Thiết lập
mức độ ưu tiên cho tin ngắn
- Định nghĩa kiểu định dạng dữ liệu cho tin ngắn; Thiết lập khoảng thời gian hợp
lệ cho tin ngắn
- Kết hợp một kiểu dịch vụ với từng tin ngắn, ví dụ: voice mail notification
Hình 1.16: Mô hình giao tiếp giữa ESME và SMSC qua SMPP
Một SMPP Session giữa một SMSC và một ESME được khởi tạo bởi ESME
trước khi thiết lập một kết nối mạng với SMSC và khi đó sẽ tạo ra một yêu cầu SMPP
Bind để mở một SMPP Session. Một ESME mong muốn gửi và nhận các tin được yêu
cầu để thiếp lập hai kết nối mạng (TCP/IP hoặc X.25) và hai SMPP Session
(Transmitter và Receiver). Trong phiên bản hiện tại của giao thức SMPP, một ESME
có thể thiết lạp một SMPP Transceiver Session qua một kết nối mạng đơn. Trong một
SMPP Session, một ESME có thể phát ra một loạt các yêu cầu tới một SMSC và nhận
các phản hồi tương ứng với các yêu cầu từ SMSC. Tương tự như vậy, SMSC có phát
ra các yêu cầu tới ESME và nhận các phản hồi tương ứng. Một SMPP Session có thể
có các trạng thái sau:
- OPEN (Đã kết nối nhưng chưa Bind): Một ESME đã thiết lập một kết nối mạng
với SMSC nhưng chưa phát yêu cầu Bind.
- BOUND_TX: ESME đã yêu cầu bind như một ESME Transmitter (phát ra PDU
bind_transmitter) và đã nhận một phản hồi từ SMSC cho phép bind. Một ESME
được bind như như một transmitter có thể gửi SMS cho một SMSC để truyền
tới một MS hoặc một ESME khác. ESME cũng có thể thay thế, truy vấn hoặc
bỏ qua một tin ngắn được đệ trình trước đó.
- BOUND_RX: ESME đã yêu cầu bind như một ESME Receiver (phát ra PDU
bind_receiver) và đã nhận một phản hồi từ SMSC cho phép bind. Một ESME
được bind như một receiver có thể nhận tin ngắn từ một SMSC được gửi từ một
MS, một ESME khác hoặc bởi chính SMSC (ví dụ: một SMSC gửi báo cáo).
- BOUND_TRX: ESME đã yêu cầu bind như một ESME Transceiver (phát ra
PDU bind_transceiver) and đã nhận một phản hồi từ SMSC cho phép bind. Một
18
ESME được bind như như Transceiver hỗ trợ các tất cả các lệnh được hỗ trợ
bởi một Transmitter ESME và một Receiver ESME. Như vây, một ESME được
bind như một Transceiver có thể gửi các tin ngắn tới một SMSC để truyền tới
MS hoặc tới một ESME khác. ESME cũng có thể nhận các tin ngắn từ một
SMSC mà có nguồn gốc từ một MS, từ ESME khác hoặc chính SMSC (ví dụ:
SMSC gửi báo cáo).
- CLOSE (Đã thôi bind và ngắt kết nối): Một ESME đã thôi bind khỏi một SMSC
và đã ngắt kết nối mạng. SMSC có thể thôi bind khỏi ESME.
Một trong những ứng dụng của giao thức SMPP đó là áp dụng vào việc kết nối từ
gateway đến SMSC và từ đó phát triển các dịch vụ liên quan đến SMS ví dụ như
quảng cáo qua SMS, gửi tin nhắn, dịch vụ nhắn tin chủ động.
Để có thể triển khai dịch vụ về SMS, trước tiên, các nhà cung cấp nội dung phải
có đấu nối đến các nhà cung cấp mạng viễn thông, giao thức SMPP được lựa chọn để
thực hiện việc đấu nối này, sau đó nhà cung cấp nội dung đăng kí với nhà cung cấp
mạng viễn thông các đầu số theo một dải số ví dụ 8x55 (x=0,1,2,3,4,5,6,7) với các giá
cước theo quy định, đăng kí các tên theo yêu cầu của khách hàng. Việc tiếp theo các
nhà cung cấp nội dung phải làm đó là xây kịch bản xử lý bản tin khi có yêu cầu tra cứu
từ phía khách hàng. Và cuối cùng là xây dựng các công cụ quản trị, đối soát phục vụ
cho việc phát triển dịch vụ.
Một số dịch vụ phổ biến:
- Dịch vụ nhắn tin qua đầu số để nhận thông tin từ các nhà cung cấp nội dung:
Dịch vụ này đã rất quen thuộc với chúng ta, để sử dụng dịch vụ, khách hàng sẽ
nhắn tin theo cú pháp và gửi tới đầu số ngắn sau đó các CP sẽ trả nội dung về
cho khách hàng. Ví dụ : Để lấy kết quả xổ số miền bắc khách hàng có thể soạn
tin: SXMB gửi 8x55 ….
- Dịch vụ nhắn tin chủ động qua đầu số ngắn: Đây là dịch vụ nhắn tin chủ động,
tức là các nội dung sẽ được gửi tới khách hàng sau khi được kiểm duyệt mà
không cần phải có yêu cầu từ phía khách hàng. Với dịch vụ này, các nhà cung
cấp nội dung hay các tổ chức viễn thông sẽ thực hiện nhắn tin đến khách hàng
thông qua các đầu số ngắn. Dịch vụ này được áp dụng cho các viễn thông tỉnh
thực hiện nhắn tin thông báo cước cho khách hàng, hay các công ty, các doanh
nghiệp nhắn tin thông báo, chúc mừng…
- Xem thêm -