Đề tài Mobile Wireless và hệ thống dịch vụ giá trị gia tăng trên Web

Mục lục

 

Mục lục 1

Danh mục thuật ngữ và từ viết tắt sử dụng trong báo cáo tốt nghiệp 3

Danh mục các hình vẽ trong báo cáo tốt nghiệp 4

Danh mục các bảng trong đồ án tốt nghiệp 5

LỜI NÓI ĐẦU 6

CHƯƠNG 1 7

TỔNG QUAN 7

1.1. Dịch vụ giá trị gia tăng trên di động là gì? 7

1.2. Các loại hình dịch vụ giá trị gia tăng 7

1.2.1. Email di động 7

1.2.2. Quản lý thông tin cá nhân 8

1.2.3. Unified Messaging 9

1.2.4. Instant Messaging 10

1.2.5. Các dịch vụ thông tin (Information Services) 10

1.2.6. Mobile Commerce 12

1.2.7. Các dịch vụ giải trí trên WAP 13

1.2.8. Các dịch vụ đa phương tiện 14

1.2.9. Các dịch vụ thoại mở rộng 15

1.2.10. Các dịch vụ khác trên WAP 16

1.2.11. Dịch vụ cung cấp nhạc chuông, hình ảnh 17

1.2.12. Tình hình các dịch vụ giá trị gia tăng trên di động ở Việt nam 17

1.3. Nhiệm vụ của đồ án tốt nghiệp 17

CHƯƠNG 2 18

CƠ SỞ LÝ THUYẾT 18

2.1. Dịch vụ nhắn tin ngắn (SMS) 18

2.2. Giao thức SMPP 20

2.2.1. Định nghĩa 20

2.2.2. Phiên bản SMPP 21

2.2.3. Những công nghệ điện thoại di dộng được hỗ trợ bởi SMPP 21

2.3.4. Phiên giao dịch SMPP 21

2.3.5. Gửi nhận tin nhắn qua SMPP 24

2.3. SMS Gateway 28

2.3.1. Khái niệm 28

2.3.2. Kannel SMS Gateway 29

2.4. GSM Modem và các loại điện thoại chuẩn GSM 40

2.5. WAP 41

2.5.1. Cấu trúc WAP 42

2.5.2. Vật mang WAP 43

2.5.3. Bộ giao thức WAP (WAP Protocol Stack) 44

2.5.4. Môi trường ứng dụng WAP, WML và WMLScript 45

2.5.5. WAP Push 47

2.5.6. WTA (Wireless Telephony Applications) 48

CHƯƠNG 3 50

XÂY DỰNG HỆ THỐNG MVAS 50

3.1. Giới thiệu hệ thống 50

3.2. Thiết kế hệ thống 51

3.2.1. Mô hình hệ thống 51

3.2.2. Biểu đồ phân cấp chức năng 52

3.2.3. Chi tiết các chức năng 53

3.2.4. Thiết kế cơ sở dữ liệu 55

3.3. Xây dựng hệ thống MVAS 62

3.3.1. Xây dựng hệ MVAS-WEB 62

3.3.2. Xây dựng hệ MVAS-SMS 72

KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 80

TÀI LIỆU THAM KHẢO 81

 

 

docx81 trang | Chia sẻ: lethao | Ngày: 05/04/2013 | Lượt xem: 1634 | Lượt tải: 7download
Bạn đang xem nội dung tài liệu Đề tài Mobile Wireless và hệ thống dịch vụ giá trị gia tăng trên Web, để tải tài liệu về máy bạn click vào nút DOWNLOAD ở trên
đi sẽ được chia thành nhiều tin nhắn nhỏ nhưng đến khi điện thoại di động nhận được thì chúng sẽ tự động ghép lại thành một tin nhắn. Kỹ thuật này được thực hiện bởi hai phương pháp sau đây: GSM User data header SMPP parameter Phương pháp sử dụng GSM User data header Theo chuẩn GSM phần dữ liệu tin nhắn có một phần gọi là User Data Header (UDH). Để sử dụng trong việc ghép nối tin nhắn thì UDH cần chứa các thông tin sau: Nhóm của các tin nhắn ngắn (các tin nhắn của cùng một tin nhắn dài được tách ra được coi là thuộc một nhóm) Số lượng tin nhắn ngắn trong một nhóm Thứ tự của tin nhắn trong nhóm Những thông tin sau sẽ giúp cho việc ghép nối các tin nhắn lại với nhau theo đúng thứ tự bất cứ khi nào nhận đủ tất cả các tin nhắn trong cùng một nhóm. Để sử dụng tin nhắn dài thì User Data Header Indication (UDHI) phải được thiết lập trong tham số esm_class và phần UDHI phải được để trước phần dữ liệu. Giá trị tham số Esm_class Thiết lập UDH Bit 6 = 1 Có Bit 6 = 0 Không Bảng 2.2: Thiết lập sử dụng UDH Ví dụ trong trường hợp 2 tin nhắn UDH SM 1 : UDHL=05 IEI(1)=00 IEIDL(1)=03 IED(1)=64 IED(1)=02 IED(1)=01 DATA SM 1 : UDH SM 2 : UDHL=05 IEI(1)=00 IEIDL(1)=03 IED(1)=64 IED(1)=02 IED(1)=02 DATA SM 1 : User Data Header là một phần của dữ liệu điều đó có nghĩa khi sử dụng UDH thì dung lượng dữ liệu sẽ giảm đi. Dung lượng này phụ thuộc vào các mã hóa: Mã hóa Số lượng ký tự tối đa 8 bit 134 7 bit 153 16 bit 67 Bảng 2.3: Số lượng tối đa ký tự khi sử dụng UDH Phương pháp sử dụng SMPP parameter Giao thức SMPP hỗ trợ một trong các tham số tùy chọn sau đây trong việc thiết lập ghép nối tin nhắn. Sử dụng tham số của SMPP trong môi trường GSM là kết quả của việc sử dụng UDH được mô tả ở phần trên nhưng định dạng lại được qui định ở phía SMSC chứ không phải phía ứng dụng ESME. Nó làm dễ dàng hơn trong việc ghép nối tin nhắn. Sau đây là danh sách các tham số cần thiết lập trong mỗi tin nhắn ngắn: Loại tham số Giải thích Sar_msg_ref_num Số lượng đoạn được truyền song song Sar_total_segments Tổng số tin nhắn Sar_segements_seqnum Trình tự của mỗi tin nhắn Bảng 2.4: Tham số SMPP trong việc ghép nối tin nhắn Gửi dữ liệu nhị phân, nhạc chuông, logo Thao tác và tham số Có 2 thao tác và 2 trường được sử dụng để gửi tin nhắn dữ liệu nhị phân đến SMSC. Thao tác Một ứng dụng ESME có thể gửi tin nhắn nhị phân bằng 2 thao tác submit_sm và data_sm. Thao tác submit_sm chỉ được sử dụng bởi ESME để gửi mộ tin nhắn ngắn đến SMSC để chuyển tới một SME cụ thể. Thao tác data_sm sử dụng để truyền dữ liệu giữa SMSC và ESME, nghĩa là tin nhắn có thể được gửi từ ESME đến SMSC và ngược lại. Thao tác này là một thay thế cho 2 thao tác submit_sm và diliver_sm. Tham số Khi sử dụng thao tác submit_sm nội dung tin nhắn nhị phân cần được chèn vào một trong 2 tham số sau: short_message (bắt buộc) và message_payload (tùy chọn). Sử dụng cả hai tham số cùng một lúc là không được phép. Khi sử dụng tham số short_message thì trường sms_length là chiều dài của dữ liệu phải được thiết lập. Nếu tham số message_payload được dùng thì trường sms_length cũng được dùng và được thiết lập giá trị 0 để chỉ ra rằng tham số message_payload. Khi sử dụng thao tác data_sm thì dữ liệu tin nhắn nhị phân chỉ được chèn vào tham số message_payload còn tham số sms_length thì không hiện thị. Với 2 thao tác trên thì có 256 octec được chèn vào tham số short_message còn tham số message_payload có thể chứa tới 64K octec. Tuy nhiên chuẩn GSM chỉ hỗ trợ đến 140 octec chính vì thế thông thường SMSC sẽ không chấp nhận thao tác lớn hơn mà tham số chứa hơn 140 octec, trừ khi nó thiết lập kỹ thuật ghép nối tự động nghĩa là một tin nhắn dài được chia thành nhiều phần mà mỗi phần chứa tối đa 140 octec. Mã hóa Một ứng dụng ESME sử dụng mã nhị phân để gửi dữ liệu không phải dạng ký tự như nhạc chuông hay logo. Để làm được việc này thì tham số data_coding phải được thiết lập giá trị 0x04. UDH (User Data Header) Ở phần trước đã trình bày qua về UDH trong việc ghép nối tin nhắn trong trường hợp tin nhắn dài.Ngoài ra UDH cho phép người dùng gửi dữ liệu theo định dạng đặc biệt như nhạc chuông hay logo. Các thành phần của UDH UDHL User Date Header Length IEI Information Element Identifier IEIDL Information Element Identifier Data Length IED Information Element Data Sau đây là việc gửi nhạc chuông qua việc gửi 2 tin nhắn ngắn: UDH SM 1 : UDHL=0B IEI(1)=05 IEIDL(1)=04 IED(1)=15810000 IEI(2)=00 IEIDL(2)=03 IED(2)=010201 Data SM 1 : 024A3A5DA5D185B1A58… UDH SM 2 : UDHL=0B IEI(1)=05 IEIDL(1)=04 IED(1)=15810000 IEI(2)=00 IEIDL(2)=03 IED(2)=010202 Data SM 2 : B49C0920930AB12718A… Trong đó: 0B là tổng chiều dài của UDH 0504158100000 nghĩa là địa chỉ ứng dụng dưới dạng 16 bit với cổng đích là 1581 và cổng khởi tạo là 0000 0003010201 cho biết tin nhắn được tách làm 2 và đây là tin nhắn thứ nhất. Ví dụ: Khi gửi nhạc chuông Nokia thì UDH = 06050415831583 còn gửi logo Nokia thì UDH = 06050415821582. 2.3. SMS Gateway 2.3.1. Khái niệm SMS Gateway là một phần mềm cho phép kết nối để gửi và nhận tin nhắn từ máy tính đến một tổng đài SMSC hoặc một GSM Modem. Một tổng đài tin nhắn SMSC không chỉ hỗ trợ giao thức SMPP mà có thể hỗ trợ rất nhiều giao thức khác như HTTP, UCP/EMI, CIMD2,…Tuy nhiên SMPP là giao thức phổ biến. Song song với việc xây dựng giao thức SMPP thì các phần mềm SMS Gateway cũng ra đời dưới dạng cả phần mềm đóng và phần mềm mã nguồn mở. Hiện nay có rất nhiều sản phẩm SMS Gateway có bản quyền như Exomi SMS Gateway, NowSMS và phần mềm mã nguồn mở như Kannel chạy trên nền tảng hệ điều hành Linux. 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. 2.3.2. Kannel SMS Gateway Giới thiệu Kannel là một phần mềm mã nguồn mở được khởi tạo bởi Wapit Ltd vào tháng 6 năm 1999 và được tiếp tục phát triển cho đến nay bởi Kannel Group. Kannel hoạt động như là một SMS Gateway và WAP Gateway. Ngoài ra nó còn có thể hoạt động như một Push Proxy Gateway. Phiên bản mới nhất tính tới thời điểm hiện tại là 1.4.0. Tháng 7 năm 2001, Kannel là phần mềm đầu tiên được WAP Forum chứng nhận là WAP 1.1 gateway và đến tháng 10 năm 2004 thì WAP Forum chứng nhận là WAP 2.0 gateway. Một điều vô cùng quan trọng là Kannel hỗ trợ rất nhiều chuẩn kết nối tới SMS Center trong đó có SMPP – chuẩn giao thức kết nối được dùng bởi hầu hết các nhà cung cấp dịch vụ ở Việt Nam (Vinaphone, Mobiphone, Viettel mobile). Kannel được phát triển chính cho môi trường Linux và có thể khá dễ dàng chuyển sang dùng trên các hệ thống Unix. Để cài đặt và sử dụng Kannel cần phải có các phần mềm sau trong hệ thống: Trình biên dịch C và các thư viện phát triển phần mềm cùng các công cụ liên quan. Gnome-xml (khuyến cáo dùng libxml 2.2.5). GNU Make POSIX threads (pthread.h). Cài đặt Kannel Đầu tiên cần tải về mã nguồn của Kannel tại Sau đó chuyển tới thư mục mà bạn lưu file và thực hiện các lệnh sau: bzip2 -cd gateway-1.4.0.tar.bz2 | tar xf – cd gateway-1.4.0 ./configure --prefix=$install_dir --enable-start-stop-daemon make make install Với $install_dir là thư mục mà bạn sẽ cài kannel vào. Sau khi thực hiện thành công, trong thư mục $install_dir/sbin sẽ có các file sau: bearerbox, smsbox, wapbox …. File bearerbox là file thực thi chính cho hệ thống của Kannel, nó sẽ kết nối các thành phần khác của Kannel và phụ trách việc kết nối tới các SMS Center. File smsbox chính là file đảm nhiệm chức năng gửi nhận tin nhắn SMS. File wapbox đảm nhiệm chức năng của WAP Gateway. Sử dụng Kannel Để sử dụng Kannel, cần phải tạo ra file cấu hình cho hệ thống. File này thực ra là một file văn bản chứa các nhóm của các biến cấu hình của hệ thống. Các nhóm được chia ra bởi các dòng không có gì. Nhóm cấu hình sẽ được biểu lộ bởi biến group. Các dòng chú thích có thể đặt sau dấu # và các dòng này sẽ bị bỏ qua. Các dòng định nghĩa các biến cấu hình có tên của biến đó, dấu bằng ( = ) và giá trị tương ứng được gán cho biến đó. Tên của biến có thể chứa bất kỳ ký tự nào ngoại trừ dấu trắng và dấu bằng ( = ). Giá trị của biến là một xâu có thể có cặp dấu “” bao quanh chúng. Cặp dấu “” có tác dụng khi mà giá trị của biến đó có các dấu trắng ở đầu hay cuối (bình thường các dấu này sẽ bị bỏ đi). Sau đây là một ví dụ: # A do-nothing service. group = sms-service keyword = nop text = "You asked nothing and I did it!" # Default service. group = sms-service keyword = default text = "No services defined" Cũng có thể dùng include để ghép các file cấu hình nhỏ vào vị trí dùng include. Điều này giúp việc quản trị file cấu hình trong những hệ thống lớn dễ dàng và hiệu quả hơn. Chúng ta có thể ghép một file hay tất cả các file trong một thư mục. Ví dụ: #include one file include = "file.conf" #include one directory include = "conf_dir" Sau đây là cách thiết lập cấu hình cho các nhóm cần thiết để Kannel có thể hoạt động như một SMS Gateway và kết nối tới SMS Center thông qua giao thức SMPP phiên bản 3.4. Để đơn giản chúng ta sẽ chỉ nêu ra những thành phần cần thiết nhất, các thành phần còn lại có thể tham khảo thêm trong Nhóm core Đây là nhóm bắt buộc phải có và thường là nhóm đầu tiên trong tệp cấu hình. Nhóm này chứa các cấu hình chung cho hoạt động của toàn hệ thống. Sau đây là danh sách các biến cấu hình trong nhóm này và ý nghĩa của chúng: group: Bắt buộc phải là “core”. admin-port: Cổng mà bearerbox đợi các lệnh điều khiển thông qua giao thức HTTP. Các lệnh điều khiển này bao gồm các lệnh như tạm dừng hệ thống (suspend), cho hệ thống tiếp tục chạy (resume), khởi động lại hệ thống (restart), tắt hệ thống (shutdown), xem trạng thái của hệ thống (status) … admin-password: Mật khẩu cần khi thực hiện các lệnh điều khiển. smsbox-port: Đây là cổng mà bearerbox sẽ mở ra để đợi kết nối từ các smsbox. Tham số này giúp cho nhiều smsbox có thể kết nối tới một bearerbox và smsbox không nhất thiết phải chạy trên cùng một máy tính với bearerbox. Nếu không chỉ định tham số này thì bearerbox sẽ không mở cổng để đợi kết nối từ smsbox và vì vậy Kannel sẽ không xử lý bất kỳ một tin SMS nào. Trong trường hợp này các chức năng của SMS Gateway sẽ không được sử dụng. wapbox-port:Cũng giống như smsbox-port, nhưng là cho các kết nối từ wapbox. Trong trường hợp không chỉ định các chức năng của WAP Gateway sẽ không được sử dụng. box-deny-ip: Danh sách các địa chỉ IP không được phép kết nối tới bearerbox. Có thể dùng dấu ‘*’ để đại diện cho một số bất kỳ. Các địa chỉ được phân cách bởi dấu ‘;’. box-allow-ip: Danh sách các địa chỉ IP được phép kết nối tới bearerbox, ngay cả khi nó nằm trong danh sách box-deny-ip. access-log: Tên của tệp sẽ ghi lại các thông tin về việc gửi nhận tin nhắn SMS qua hệ thống. Nhóm smsc Nhóm này chứa các cấu hình cho việc kết nối tới SMS Center. Nó bao gồm một số các biến cấu hình chung cho tất cả các loại SMS Center và một số biến cấu hình đặc thù cho từng loại SMS Center. Các biến cấu hình chung: group: Bắt buộc phải là “smsc”. smsc: Là xâu chỉ định loại SMS Center. Với các SMS Center dùng giao thức SMPP thì nó là “smpp”. smsc-id: Là bí danh của SMS Center này. Khi gửi tin nhắn với tham số smsc trùng với bí danh của SMS Center nào thì tin nhắn sẽ được gửi tới SMS Center đó. Điều này giúp cho việc gửi tin nhắn hiệu quả hơn. Ví dụ khi cần gửi tới 1 thuê bao trong mạng Vinaphone thì việc gửi qua SMS Center của Vinaphone sẽ nhanh hơn nhiều so với việc gửi tin qua SMS Center của Viettel Mobile. denied-smsc-id: Nếu như không tìm thấy SMS Center có bí danh được chỉ định hay hiện tại không kết nối được tới SMS Center đó thì Kannel tiến hành quá trình chọn đường đi cho tin nhắn. Với những tin có smsc chỉ định nằm trong danh sách này sẽ không bao giờ được đi qua SMS Center này. Các phần tử được phân cách bởi dấu trắng. allowed-smsc-id: Chỉ các tin nhắn có smsc chỉ định nằm trong danh sách này mới đi qua được SMS Center này. allowed-prefix: Danh sách các tiền tố của số điện thoại nhận tin được cho phép qua SMS Center này. Ví dụ nếu là SMS Center của Vinaphone thì chúng ta có thể đặt biến này bằng “+8491;8491;091”. denied-prefix: Danh sách các tiền tố của số điện thoại nhận tin không cho phép qua SMS Center này. Ví dụ nếu là SMS Center của Vinaphone thì chúng ta có thể đặt biến này bằng “+8490;8490;090;+8498;8498;098”. reconnect-delay: Số lượng giây đợi giữa hai lần cố gắng tạo lại kết nối.Mặc định là 10s. Các biến cấu hình cho các SMS Center dùng giao thức SMPP phiên bản 3.4: host: Địa chỉ IP của máy đang thực thi SMS Center. port: Cổng dùng để kết nối tới SMS Center. transceiver-mode: Là giá trị logic, nếu là true thì sẽ cố gắng sử dụng chế độ TRANSCEIVER để kết nối tới SMS Center. Đây là tính năng mới của giao thức SMPP phiên bản 3.4. Các phiên bản trước sẽ không hỗ trợ tính năng này. Khi dùng nó thì việc gửi và nhận tin nhắn sẽ trên cùng một kết nối và sẽ không cần thiết phải đặt receive-port. receive-port: Cổng sẽ thực hiện các kết nối RECEIVER tới SMS Center. Các kết nối này phụ trách việc kiểm tra tin nhắn mới và lấy về. Nó có thể có cùng giá trị với port. smsc-username: Tài khoản mà nhà cung cấp dịch vụ cung cấp để kết nối tới SMS Center của họ. smsc-password: Mật khẩu tương ứng với tài khoản được cung cấp. system-type: Thường là VMA (viết tắt cho Voice Mail Activation). interface-version: Là phiên bản của giao thức SMPP được SMS Center dùng. Mặc định sẽ là “34” (phiên bản 3.4). Với phiên bản 3.3 sẽ là “33”. address-range: Là dải số mà nhà cung cấp dịch vụ cấp cho. Ví dụ với công ty VMG là 8xxx (8009 - 8709). source-addr-ton: Giá trị của TON (Type of number) của địa chỉ gửi tin. Bằng 0 cho Unknown (SMS Center sẽ tự xác định) hoặc bằng 1 cho mạng ISDN (Integrated Services Digital Network - mạng được dùng bởi điện thoại số). source-addr-npi: Giá trị của NPI (Numbering plan indicator). Ý nghĩa cũng giống như TON. Việc kết hợp hai giá trị TON và NPI sẽ lựa chọn ra kiểu của địa chỉ là chữ hay số, có phải là số điện thoại theo kiểu toàn cầu (có mã nước hay không), ….Thường thì các thông số này phụ thuộc vào SMS Center của nhà cung cấp dịch vụ. source-addr-autodetect: Nếu đặt bằng yes Kannel sẽ cố gắng thử các giá trị có thể của source-addr-ton và source-addr-npi. dest-addr-ton: Tương tự như trên nhưng là cho số điện thoại nhận tin. dest-addr-npi: Tương tự như trên nhưng là cho số điện thoại nhận tin. connection-timeout: Thời gian tối đa giữa hai lần có trao đổi với SMS Center, mặc định là 300s. Nếu vượt quá thời gian này Kannel sẽ coi rằng kết nối đó không còn hoạt động và sẽ tạo lại kết nối. Đặt bằng 0 để tắt chức năng này. Nhóm smsbox Nhóm này bắt buộc phải được thêm vào tệp cấu hình thì mới có thể sử dụng Kannel như một SMS Gateway. Nhóm này chứa các tham số cấu hình cho smsbox. Module smsbox khi được thực thi sẽ kết nối tới bearerbox và nhận các tin nhắn từ SMS Center đồng thời cung cấp một giao diện để gửi tin nhắn qua giao thức HTTP. Sau đây là các biến cấu hình cho nhóm này: group: Bắt buộc phải là “smsbox” bearerbox-host: Địa chỉ của máy chạy bearerbox sendsms-port: Cổng dùng để gửi tin nhắn thông qua giao thức HTTP. sendsms-url: Địa chỉ URL của dịch vụ gửi tin nhắn. Mặc định là /cgi-bin/sendsms global-sender: Nếu như được đặt thì tất cả các tin nhắn gửi ra ngoài sẽ được tự động đặt số điện thoại gửi tin là số này. access-log: Tên file ghi các thông tin về việc gửi nhận các tin thông qua smsbox này. reply-couldnotfetch: Tin nhắn trả về cho điện thoại nếu như không thể lấy được nội dung tin nhắn trả về. reply-couldnotrepresent: Tin nhắn trả về cho điện thoại nếu như không thể đóng gói kết quả trả về thành tin nhắn SMS. reply-requestfailed: Tin nhắn trả về cho điện thoại nếu như khi không thể kết nối đến dịch vụ HTTP. reply-emptymessage: Tin nhắn trả về khi nội dung trả về là rỗng. http-request-retry: Số lần cố gắng làm lại khi gọi yêu cầu HTTP bị lỗi. http-queue-delay: Thời gian dừng để đợi giữa hai lần làm lại. Nhóm sms-service Nhóm này sẽ cấu hình việc xử lý tin nhắn tới hệ thống. Mỗi khi có một tin nhắn tới Kannel sẽ truyền nội dung của tin nhắn tới thành phần khác để xử lý tin. Việc truyền này có thể là gọi trực tiếp tệp thực thi của thành phần đó hay một yêu cầu HTTP. Sau đây các biến cấu hình của nhóm này: group: Bắt buộc phải là “sms-service” keyword: Là một từ. Từ này sẽ được dùng để phân biệt giữa các dịch vụ với nhau. Một tin nhắn sẽ được phân tách bởi nhiều từ. Từ đầu tiên trong nội dung tin sẽ được coi là từ khoá. Tin nhắn nào có từ đầu tiên trùng với biến cấu hình này sẽ được xử lý bởi dịch vụ này. Ngoài ra việc chỉ định số tham số để truyền cho module xử lý tin nhắn cũng ảnh hưởng đến việc chọn dịch vụ sẽ xử lý tin. Nếu có nhiều nhóm sms-service có cùng từ khoá thì Kannel sẽ chọn dịch vụ có số tham số phù hợp đầu tiên với số từ trong tin nhắn đến. Nếu như không tìm thấy nó sẽ dùng dịch vụ có từ khoá là default. name: Tên để phân biệt dịch vụ trong tệp ghi nhật ký (log file). get-url: URL sẽ được Kannel gọi để xử lý tin nhắn cho dịch vụ này. Nó có thể bao gồm một danh sách các tham số (sẽ nói rõ về các tham số này ở phần sau). Phương thức gọi yêu cầu HTTP ở đây là phương thức GET. Nội dung trả về sẽ được coi là tin nhắn sẽ trả về cho người sử dụng. post-url: Tương tự như biến get-url nhưng phương thức gọi yêu cầu HTTP ở đây là phương thức POST. file: Đọc nội dung từ file này và coi đó là nội dung trả về. Tên file cũng có bao hàm các tham số giống như đối với get-url. text: Nội dung trả về định sẵn. Các tham số cũng có thể được sử dụng. exec: Gọi một lệnh shell để xử lý tin nhắn này và coi nội dung của stdout chính là nội dung trả về. Các tham số cũng có thể được dùng ở đây. Cách này không được khuyến cáo dùng do vấn đề bảo mật. accepted-smsc: Chỉ chấp nhận các tin nhắn tới từ smsc có số hiệu (smsc-id) nằm trong danh sách này. Các số hiệu cách nhau bởi dấu ‘;’. catch-all: Nếu được đặt bằng true thì sẽ xử lý tất cả các tin nhắn mà không quan tâm đến nội dung của tin. Thường chỉ được đặt bằng true với dịch vụ có từ khoá là default. max-messages: Nếu như tin nhắn trả về có nội dung vượt quá 160 ký tự thì tin nhắn đó sẽ phải được chia thành nhiều tin nhắn nhỏ. Tham số này sẽ quyết định số lượng tin nhắn tối đa có thể gửi trả lại cho người dùng dịch vụ. concatenation: Nếu được đặt bằng true thì khi gửi tin trả lại có nội dung dài hơn 160 ký tự, tin trả lại sẽ được chia thành nhiều tin nhỏ và các tin này sẽ được gửi đi như một tin nhắn dài. Với các loại điện thoại có hỗ trợ tin nhắn dài thì nó sẽ tự động ghép các tin nhắn ngắn lại và coi như là chỉ nhận được một tin nhắn. Hầu hết các loại điện thoại ngày này đều hỗ trợ tính năng này. accept-x-kannel-headers: Chấp nhận các Kannel header (sẽ mô tả chi tiết trong phần sau) trong nội dung trả về trong trường hợp dùng yêu cầu HTTP. assume-plain-text: Trong trường hợp dùng yêu cầu HTTP, nếu như module xử lý tin không đặt Content-Type cho nội dung trả về thì nó sẽ được xử lý như là dữ liệu nhị phân (kiểu application/octet-stream). Nếu đặt biến này bằng true thì trong trường hợp này dữ liệu trả về sẽ được coi là plain/text và được xử lý như là tin nhắn văn bản (text message). omit-empty: Nếu biến này được đặt bằng true thì khi nội dung trả về là rỗng Kannel sẽ không gửi trả người dùng tin nhắn có nội dung được đặt trong biến cấu hình reply-emptymessage của nhóm smsbox. Người dùng sẽ không được gửi trả bất cứ tin nhắn nào. Thường được dùng nếu hệ thống muốn tự gửi tin nhắn (thông qua giao diện gửi tin qua các yêu cầu HTTP của Kannel) trả lại sau khi đã xử lý mà không trả lại ngay để có thể đóng kết nối hiện tại. Sau đây là danh sách các tham số có thể truyền cho module xử lý tin nhắn: %k – Từ khoá trong tin nhắn SMS (là từ đầu tiên trong tin nhắn) %s – Từ tiếp theo trong tin nhắn SMS, bắt đầu từ từ thứ hai, mỗi lần dùng tham số này số thứ tự của từ trong tin sẽ được tăng thêm 1 (lần đầu tiên dùng tham số này là từ thứ 2, lần thứ 2 dùng tham số này sẽ là từ thứ 3 …). Đã xử lý vấn đề các ký tự không được cho phép khi sử dụng URL (URL encoded, ví dụ '+' trở thành '%2B'). %S – Giống như %s, nhưng '*' được chuyển thành '~' (có ích khi tự gõ URL). %r – Toàn bộ các từ chưa được dùng bởi các %s. %a – Tất cả các từ trong tin nhắn kể cả từ đầu tiên. Nếu có nhiều dấu trắng liên tiếp sẽ được chuyển thành còn 1 dấu trắng. %b – Nội dung của tin nhắn dưới dạng nhị phân. %t – Thời gian tin nhắn được gửi với cấu trúc "YYYY-MM-DD HH:MM", ví dụ "2006-04-20 14:00". %T – Thời gian tin nhắn được gửi theo định dạng UNIX epoch timestamp (là một số nguyên chính là số giây tính từ 00:00:00 01/01/1970 cho tới thời điểm hiện tại). %p – Số điện thoại của người đã gửi tin nhắn này. %P – Số điện thoại đã nhận tin nhắn này, thường được dùng để phân biệt xem người dùng đã gửi vào số dịch vụ nào trong dải số của mình để có những xử lý phù hợp. %q – Giống %p, nhưng nếu bắt đầu bằng ‘00’ sẽ được thay thế bằng ‘+’. %Q - Giống %P, nhưng nếu bắt đầu bằng ‘00’ sẽ được thay thế bằng ‘+’. %i - smsc-id của kết nối đã nhận tin nhắn này. %I - SMS ID của chính tin nhắn này (nằm ở trong cấu trúc của tin nhắn). %d – Giá trị của bản ghi thông tin truyền nhận (delivery report). Sẽ nói chi tiết hơn ở phần riêng cho Delivery Report. %n – Tên của sendsms-user hay sms-service. %c – Cách số hoá tin nhắn: 0 (mặc định, 7 bits), 1 (7 bits), 2 (8 bits) hay 3 (Unicode). %C – Bộ chữ cái của tin nhắn: cho các tin nhắn bình thường thì sẽ là: "GSM" (mã là 1), "binary" (mã là 2) or "UTF16-BE" (mã là 3). Nếu tin nhắn đã số hoá lại thành công từ Unicode bộ chữ sẽ là "ISO-8859-1". %u – udh (User Data Header) của tin nhắn đến. Nhóm sendsms-user Mỗi nhóm này tạo ra một tài khoản để gửi tin SMS bằng yêu cầu HTTP qua hệ thống của Kannel. Nó chứa các thuộc tính của tài khoản này. Sau đây là các biến cấu hình của nhóm này: group: Bắt buộc phải là “sendsms-user”. username: Tên sử dụng của tài khoản này. password: Mật khẩu tương ứng với tài khoản này. name: Tên được dùng để phân biệt khi ghi nhật ký (file log). user-deny-ip: Danh sách các ip không được gửi tin nhắn bằng tài khoản này. user-allow-ip: Danh sách các ip được phép gửi tin nhắn bằng tài khoản này. forced-smsc: Tin nhắn khi gửi bằng tài khoản này bắt buộc phải gửi qua SMSC có smsc-id trùng với biến này. default-smsc: Tin nhắn khi gửi bằng tài khoản này sẽ được gửi qua SMSC có smsc-id trùng với biến này đầu tiên. Nếu tại thời điểm gửi kết nối tới SMSC này bị ngắt thì Kannel sẽ thử với các SMSC khác. Biến này sẽ không có ý nghĩa nếu đặt biến forced-smsc. default-sender: Biến này sẽ được đặt là số điện thoại đã gửi tin này nếu như không được đặt bởi tham số dùng khi gửi tin. max-messages: Giống với trong nhóm sms-service nhưng là cho tài khoản này. concatenation: Giống với trong nhóm sms-service nhưng là cho tài khoản này. dlr-url: URL sẽ được gọi khi có thông tin về việc chuyển tin nhắn (delivery report) của hệ thống và tham số dlr-mask được đặt. Có thể xem kỹ hơn ở phần sau. split-chars: Ký tự dùng để phân cách các tin nhắn nếu như muốn gửi nhiều tin nhắn bằng cùng một yêu cầu HTTP. Cách gửi tin nhắn thông qua giao diện HTTP của Kannel Phần này sẽ trình bày cách để gửi tin nhắn thông qua giao diện HTTP của Kannel. Để gửi tin nhắn cần phải gửi tới một yêu cầu HTTP tới Kannel. URL đó sẽ bắt đầu bằng giá trị của biến sendsms-url trong nhóm smsbox. Sau đó là các tham số nếu dùng phương thức GET, hoặc phần HTTP header sẽ chứa các tham số dưới dạng X-Kannel-header nếu sử dụng phương thức POST. Sau đây là một ví dụ url gửi tin nhắn thông qua giao diện này: Sau đây là danh sách các tham số với X-Kannel-header tương ứng có thể được dùng để gửi tin nhắn: username hay user - X-Kannel-Username. password hay pass - X-Kannel-Password. from - X-Kannel-From. to - X-Kannel-To. text - Nội dung của yêu cầu HTTP. charset - Trùng với trường charset ở Header Content-Type của yêu cầu HTTP. udh - X-Kannel-UDH. smsc - X-Kannel-SMSC. dlr-mask - X-Kannel-DLR-Mask. dlr-url - X-Kannel-DLR-Url. Sau đây là ý nghĩa của các tham số trên: username hay user: Tên của tài khoản, tài khoản này phải được tạo ra bằng một nhóm sendsms-user. password hay pass: Mật khẩu tương ứng với tài khoản trên. from: Số điện thoại sẽ được coi là số điện thoại gửi tin nhắn này. Thường dùng để chọn số gửi trong dải số được cung cấp. to: Số điện thoại sẽ nhận tin. text: Nội dung của tin. Phải được chuẩn hoá cho việc sử dụng URL (URL encoded). charset: Bộ ký tự sử dụng. udh: User Data Header cho tin nhắn này. smsc: smsc-id của SMSC sẽ gửi tin này. dlr-mask: Yêu cầu có thông tin về trạng thái của việc gửi tin đi (delivery report). Giá trị của biến này là tổ hợp (tổng hay phép or) của các giá trị: 1-đã gửi tới điện thoại, 2-không gửi được tới điện thoại, 4-đã gửi tới SMSC và đang được xếp trong hàng đợi, 8-đã gửi tới SMSC, 16-không gửi được tới SMSC. Khi đặt giá trị của tham số này thì bắt buộc phải đặt tham số dlr-url khi gửi hay đặt giá trị của biến cấu hình dlr-url trong nhóm sendsms-user. dlr-url: Mỗi khi có trạng thái tương ứng với các bit đã được đặt tr

Các file đính kèm theo tài liệu này:

  • docxMobile Wireless và hệ thống dịch vụ giá trị gia tăng trên Web.docx