Cấu trúc PDU SMS-DELIVER

Một phần của tài liệu công nghệ SMS và xây dựng hệ thống tra cứu điểm qua mạng điện thoại di động (Trang 130 - 138)

Octet 1

Cho biết chiều dài của phần thông tin về SMSC. Ví dụ nếu Octet 1 = 07 (dạng Hex) thì có nghĩa là phần thông tin về SMSC sẽ dài 7 Octet.

Octet 2

Cho biết kiểu địa chỉ của SMSC. Giá trị thường dùng nhất của Octet này là 91 (dạng Hex) cho biết kiểu địa chỉ là kiểu quốc tế. Địa chỉ kiểu quốc tế thì giống như sau: “84919037951” (trong đó “84” là mã quốc gia, “919037951” là số điện thoại). Theo kiểu quốc gia (hoặc kiểu không xác định) thì giống như sau: “0919037951”. Kiểu quốc tế thì phổ biến hơn, và còn được chấp nhận ngay cả khi tin nhắn được gửi đến người nhận trong cùng quốc gia. Cấu trúc của nó như sau:

Bit 7 6 5 4 3 2 1 0

Tên Luôn = 1 Kiểu số điện thoại Mã nhận dạng vùng - Kiểu số điện thoại:

Các Bit

6 5 4 Ý nghĩa

0 0 0 Kiểu không xác định. Kiểu này được dùng khi người dùng hoặc mạng không có một thông tin ưu tiên về mã nhận dạng vùng.

0 0 1 Kiểu quốc tế. 0 1 0 Kiểu quốc gia.

- Mã nhận dạng vùng: được áp dụng cho các kiểu số điện thoại bằng 000,001 và 010. Với kiểu số điện thoại bằng 101 thì các bit 3,2,1,0 sẽ được chuyển thành 0000. Chú ý với bất kỳ địa chỉ của các thực thể SC, MSC, SGSN hoặc MS, mã nhận dạng vùng bằng 0001 sẽ luôn được dùng. Tuy nhiên với địa chỉ của SME, bất kỳ giá trị mã nhận dạng vùng đã được chỉ ra đều có thể được dùng. Các Bit 3 2 1 0 Ý nghĩa 0 0 0 0 Không xác định. 0 0 0 1 Mã nhận dạng ISDN/telephone. 0 0 1 1 Mã nhận dạng Data. 0 1 0 0 Mã nhận dạng Telex. 1 0 0 0 Mã nhận dạng National. 1 0 0 1 Mã nhận dạng riêng. 1 0 1 0 Mã nhận dạng ERMES. 1 1 1 1 Dự trữ cho mở rộng. Ví D

Một số điện thoại có kiểu địa chỉ = 81 (dạng hex) có cấu trúc và ý nghĩa như sau:

Bit Số 7 6 5 4 3 2 1 0

Giá Trị 1 0 0 0 0 0 0 1 Có nghĩa là kiểu địa chỉ của số điện thoại này là kiểu không xác định.

Octet 3->8

Cho biết địa chỉ (số điện thoại) của SMSC. Nếu chiều dài của địa chỉ là lẻ thì F sẽ được thêm vào. Để tìm số điện thoại của SMSC từ Octet này ta chỉ việc đảo ngược các cặp số.Ví dụ: 72 83 01 00 10 F5 cho biết số điện thoại của SMSC là "+27381000015".

Octet 9

Là Octet đầu tiên của tin nhắn SMS-DELIVER. Nó có cấu trúc như sau:

Bit Số 7 6 5 4 3 2 1 0 Tên TP- RP TP- UDHI TP- SRI Không dùng Không dùng TP- MMS TP- MTI TP- MTI

Ý nghĩa của các trường trong cấu trúc:

Tên Ý Nghĩa

TP-RP Đường dẫn phản hồi. Trường này cho biết đường dẫn phản hồi có tồn tại hay không.

TP- UDHI

Phần đầu dữ liệu người dùng. Bit này bằng 1 nếu phần User Data bắt đầu với một phần đầu dữ liệu người dùng.

TP-SRI Báo cáo trạng thái. Bit này bằng 1 nếu một báo cáo trạng thái sẽ được trả về SME.

nhắn được gửi.

TP-MTI Kiểu tin nhắn. Các bit số 1 và 0 đều bằng 0 cho biết PDU này là một SMS-DELIVER.

Ví D

Octet này có giá trị = 04 (hex) thì các bit tương ứng như sau:

Bit Số 7 6 5 4 3 2 1 0 Tên TP-RP TP- UDHI TP- SRI Không dùng Không dung TP- MMS TP- MTI TP-MTI Giá Trị 0 0 0 0 0 1 0 0

Cho biết không tồn tại đường dẫn phản hồi, trường User Data sẽ không bắt đầu bằng Header, không có 1 báo cáo trạng thái được trả về SME, chỉ có một tin nhắn được gửi và đây là một PDU SMS-DELIVER.

Octet 10

Cho biết chiều dài địa chỉ của người gửi. Ví dụ Octet 10 = 0B (dạng hex) có nghĩa chiều dài số điện thoại của người gửi là 11.

Octet 11

Cho biết kiểu địa chỉ của người gửi. Tương tự như kiểu địa chỉ của SMSC (xem phần Octet 2)..

Cho biết địa chỉ (số điện thoại) của người gửi. Nếu chiều dài của địa chỉ là lẻ thì F sẽ được thêm vào. Để tìm số điện thoại của người gửi từ Octet này ta chỉ việc đảo ngược các cặp số.Ví dụ: 48 19 09 73 59 F1 cho biết số điện thoại của người gửi là "+84919037951".

Octet 18

Mã nhận dạng giao thức (TP-PID). Octet này được xử lý như sau: MS sẽ phiên dịch các giá trị dự trữ hoặc không được hỗ trợ thành 00000000 nhưng sẽ chứa chúng đúng như khi nhận. SC có thể loại bỏ các thông điệp với TP-PID chứa các giá trị dự trữ hoặc các giá trị không được hỗ trợ. Ta chỉ xét trường hợp bit 7 và 6 đều bằng 0, lúc đó các bit 5..0 được dùng như sau:

Bit 5 Mô T

0 Truyền thông giữa các thiết bị có khả năng gửi nhận SMS với nhau. 1 Truyền thông giữa các thiết bị có khả năng gửi nhận SMS với các

thiết bị telematic (thiết bị tin học viễn thông).

Nếu bit 5 có giá trị là 1 trong một PDU SMS-SUBMIT, có nghĩa rằng SME là một thiết bị telematic có kiểu được chỉ rõ trong các bit 4..0, và yêu cầu SC chuyển đổi tin nhắn thành một dạng thích hợp với kiểu thiết bị. Nếu mạng đích là ISDN, SC còn phải lựa chọn dịch vụ riêng cho kết nối đến thiết bị có kiểu đó.

Nếu bit 5 có giá trị là 1 trong một PDU SMS-DELIVER, có nghĩa rằng SME là một thiết bị telematic có kiểu được chỉ rõ trong các bit 4..0.

Nếu bit 5 có giá trị là 0 trong một PDU SMS-DELIVER, giá trị trong các bit 4..0 cho biết giao thức SM-AL đang được dùng giữa SME và MS.

Chú ý trong trường hợp đơn giản là truyền tin nhắn từ MS đến SC, Octet này sẽ được thiết lập bằng 0.

Octet 19

Lược đồ mã hóa dữ liệu (Data Coding Scheme - TP-DCS). Trường TP- DCS được định nghĩa trong GSM 03.04 cho biết lược đồ mã hóa dữ liệu của trường TP-UD, và có thể cho biết cả lớp của tin nhắn. Bất kỳ cách thức mã hóa dự trữ nào cũng sẽ được giả sử là bộ ký tự mặc định GSM 7 bit (giá trị là 00000000) bởi một thực thể nhận.

Octet này được dùng dựa theo các nhóm mã hóa, các nhóm mã hóa đó được chỉ rõ bởi các bit 7..4. Ở đây chúng ta chỉ xét trường hợp nhóm mã hóa dữ liệu tổng quát, khi đó các bit 7 và 6 đều có giá trị bằng 0. Các bit còn lại có ý nghĩa như sau:

Bit 5 Mô T

0 Văn bản không được nén. 1 Văn bản được nén.

Bit 4 Mô Tả

0 Các bit 1 và 0 được dự trữ và không mang ý nghĩa lớp tin nhắn.

1 Các bit 1 và 0 mang ý nghĩa lớp tin nhắn.

Bit 3 Bit 2 B Ký TựĐược Dùng

0 0 Bộ ký tự mặc định (GSM 7 bit). 0 1 8 bit dữ liệu.

1 0 Bộ ký tự Unicode (UCS2 16 bit dữ liệu). 1 1 Dự trữ.

Bit 1 Bit 0 Lp tin nhn Mô T

0 0 Lớp 0 Hiển thị ngay lập tức.

0 1 Lớp 1 Đặc trưng ME.

1 0 Lớp 2 Đặc trưng SIM

1 1 Lớp 3 Đặc trưng TE.

Chú ý: trường hợp đặc biệt của các bit 7..0 là 00000000 cho biết bộ ký tự

mặc định GSM 7 bit giai đoạn 2 được dùng.

Bộ ký tự mặc định GSM 7 bit được đặc tả trong GSM 03.38, có thể tham khảo bộ ký tự này trong trang web www.dreamfabric.com

Octet 20..26

Dấu thời gian trung tâm dịch vụ (Service Centre Time Stamp - TP-SCTS) là thời gian tin nhắn được gửi đến SC. Các Octet này được cho dưới dạng các Octet decimal-semi, và cho biết thời gian theo cách sau:

Trường S Octet Năm 1 Tháng 1 Ngày 1 Giờ 1 Phút 1 Giây 1 Múi giờ 1

Tất cả đều được mã hóa bằnh cách đảo ngược cặp ký số. Hoán đổi 2 ký số trong mỗi Octet sẽ cho giá trị thời gian tương ứng. Riêng múi giờ được tính theo giờ GMT, mỗi đơn vị tương ứng 15 phút.

Ví dụ: 99 20 21 50 75 03 21 sau khi hoán đổi có nghĩa là: Ngày 12 Tháng 2 Năm 1999 05 Giờ 57 Phút 30 Giây GMT+3.

Octet 27

Chiều dài User Data của thông điệp (chiều dài của tin nhắn). Nếu Octet TP-DCS cho biết dữ liệu ở dạng 7 bit thì chiều dài ở đây là số Septet (một Septet bao gồm 7 bit). Nếu Octet TP-DCS cho biết dữ liệu ở dạng 8 bit hoặc ở dạng Unicode thì chiều dài sẽ là con số của Octet.

Octet 28 trởđi

TP-UD (Dữ liệu người dùng). Nếu 7 bit dữ liệu được dùng ta phải thay thế chúng bằng 8 bit dữ liệu bởi vì mỗi Octet trong chuỗi PDU bao gồm 8 bit. Ta cần phải chuyển đổi dữ liệu từ 7 bit dữ liệu (Septet) thành 8 bit dữ liệu (Octet). Cách chuyển đổi sẽ được miêu tả dưới đây.

Để dễ hiểu cách chuyển đổi chúng ta sẽ lấy thông điệp “hellohello” làm ví dụ, nó bao gồm 10 ký tự, mỗi ký tự là một Septet. Những Septet này cần phải được chuyển đổi thành các Octet để có thể truyền đi.

h e l l o h e l l o

104 101 108 108 111 104 101 108 108 111 1101000 1100101 1101100 1101100 1101111 1101000 1100101 1101100 1101100 1101111 1101000 1100101 1101100 1101100 1101111 1101000 1100101 1101100 1101100 1101111

Hình D.1. Minh ha cách chuyn đổi t các Septet sang các Octet

11101000 00110010 10011011 11111101 01000110 10010111 11011001 11101100 110111

Septet đầu tiên (ký tự ‘h’) được chuyển thành một Octet bằng cách thêm bit bên phải nhất của Septet thứ 2. Bit này được thêm vào bên trái Septet đầu tiên: 1 + 1101000 = 11101000 (ta được mã của ký tự ở dạng hex ‘E8’), đồng thời nó bị loại bỏ khỏi Septet thứ 2. Do bit bên phải nhất của Septet thứ 2 đã bị lấy mất nên cần phải lấy 2 bit của Septet thứ 3 thêm vào nó để tạo thành một Octet 8 bit. Quá trình này tiếp tục được lặp lại như hình trên. Kết qủa cuối cùng ta được 9 Octet từ 10 Septet (“hellohello”) là E8 32 9B FD 46 97 D9 EC 37.

Một phần của tài liệu công nghệ SMS và xây dựng hệ thống tra cứu điểm qua mạng điện thoại di động (Trang 130 - 138)

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

(154 trang)