ข้อกําหนด SMS

ส่วนนี้แบ่งออกเป็น 2 ส่วน ดังนี้

  1. เนื้อหา - เนื้อหาของข้อความ ELS
  2. รูปแบบ - วิธีส่งข้อความเหล่านั้นและวิธีถอดรหัส (หากจำเป็น)

เนื้อหา

ELS V1

โดยข้อความ ELS ที่ส่งผ่าน SMS จะเป็นไปตามข้อกำหนดเฉพาะของ ETSI AML ล่าสุด ช่วงเวลานี้ หรือที่เรียกว่า ELS V1 และเป็นวิธีการที่พาร์ทเนอร์ ELS เลือกใช้มากที่สุด ส่วนที่เกี่ยวข้องมากที่สุดมีดังนี้

ชื่อคีย์ ค่า หน่วย ตัวอย่าง
A"ML เวอร์ชัน - 1
lt ละติจูด องศา +37.42175
lg ลองจิจูด องศา -122.08461
top การประทับเวลาของสถานที่ yyyyMMddHHmmss ในเวลา UTC 20150613010948
rd ความแม่นยำของตำแหน่ง เมตร 20.0
lc ความเชื่อมั่นของตำแหน่ง เปอร์เซ็นต์ความเชื่อมั่น 68
pm วิธีระบุตำแหน่ง (Wi-Fi, GPS, เซลล์, ค่า Null) 'W', 'G', 'C', 'N' W
si IMSI (มีเฉพาะตัวเลข 6 หลักแรกของ IMSI ดั้งเดิม ตัวเลขที่เหลือ จะถูกแทนที่ด้วย 0) - 123456000000000
ei IMEI - 355458061005220
mcc MCC ของเครือข่าย - 310
mnc MNC ของเครือข่าย - 260
ml ความยาวของข้อความ (รวมความยาวของข้อความและส่วนหัว) - 123

วิธีกำหนดตำแหน่ง

ตำแหน่งค่าว่าง

ตัวอย่าง

ไม่มีข้อมูลสถานที่:

A"ML=1;lt=+00.00000;lg=+000.00000;rd=N;top=20220131173734;lc=0;pm=N;si=234159000000000;ei=123456789012345;mcc=234;mnc=15;ml=127

ตำแหน่งที่คำนวณ:

A"ML=1;lt=+51.53321;lg=-0.12601;rd=14;top=20220131171748;lc=68;pm=W;si=234159000000000;ei=123456789012345;mcc=234;mnc=15;ml=126

ELS เบต้า

รูปแบบทดลองที่พาร์ทเนอร์บางรายใช้คือ ELS เบต้า ซึ่งเป็นเวอร์ชันทดลองของเรา เนื้อหาที่ให้โอกาสพาร์ทเนอร์ได้ลองใช้ช่องต่างๆ

ส่วนต่อไปนี้คือส่วนที่เกี่ยวข้องมากที่สุด

ชื่อคีย์ ค่า หน่วย ตัวอย่าง
A"ML เวอร์ชัน - 2
en หมายเลขฉุกเฉิน - 911
et การประทับเวลาของการโทรหาหมายเลขฉุกเฉิน เวลา UNIX Epoch ในหน่วยวินาที (จำนวนเต็ม) 1593187189
lo ตำแหน่ง (ละติจูด, ลองจิจูด, ความถูกต้อง) - ละติจูดและลองจิจูดต้อง จะถูกตัดให้เหลือ 5 จุด, ความแม่นยำเป็น 1 จุดทศนิยม - ความแม่นยำ 0 หมายถึงไม่ทราบ องศา (ลอย), องศา (ลอย), เมตร (ลอย) 37.42175,-122.08461,20.1
lt เวลาของตําแหน่ง (สัมพันธ์กับเวลาฉุกเฉิน) - ระบบอาจไม่สนใจช่องนี้ หากไม่มีช่องตำแหน่ง ('lo') หรือไม่มีช่องการประทับเวลา ('et') ปัจจุบัน วินาที (จำนวนเต็ม) 5
lc ความเชื่อมั่นของตำแหน่ง เปอร์เซ็นต์ความเชื่อมั่น (จำนวนเต็ม) 68
lz ตำแหน่งแนวตั้ง (ระดับความสูง ความแม่นยำแนวตั้ง) - ฟิลด์นี้อาจ ละเว้นหากไม่มีช่องตำแหน่ง ('lo') - ทุกช่องจะถูกตัดให้เหลือจุดทศนิยม 1 ตำแหน่ง - ความแม่นยำ 0 หมายถึงไม่ทราบ เมตร (ลอย), เมตร (ลอย) -10.1,10.1
ls ที่มาของตำแหน่ง (Wi-Fi, เซลล์, GPS, Fused, ไม่ทราบ) - ฟิลด์นี้อาจ ละเว้นหากไม่มีช่องตำแหน่ง ("lo") "W", "G", "C", "F", "U" W
ei IMEI - 355458061005220
nc MCC/MNC ของเครือข่าย - 310260
hc MNC/MNC ที่บ้าน - 310260
lg แท็กภาษา IETF BCP 47 en-US

ระดับความมั่นใจ

ระดับความสูง (แกน Z)

ELS จะรายงานตำแหน่งแนวตั้งและความแม่นยำในข้อความ ELS เบต้า ระดับความสูง lz มีการรายงานเป็นเมตรเหนือจุดอ้างอิง WGS84 (WGS เป็นจุดอ้างอิง) ระบบภูมิศาสตร์โลกที่ GPS ใช้) และความแม่นยำเป็นหน่วยเมตร (ระดับความสูง แนวตั้ง ความถูกต้อง) ระบบอาจไม่สนใจช่องนี้หากไม่มีช่องตำแหน่ง (lo) ทั้งหมด ฟิลด์ถูกตัดให้เหลือจุดทศนิยม 1 ตำแหน่ง และความแม่นยำ 0.0 แสดงถึง unknown ความแม่นยําของแนวดิ่งจะเหมือนกับความแม่นยําของตําแหน่งและ พาร์ทเนอร์จะเป็นผู้กำหนดเปอร์เซ็นไทล์ของความเชื่อมั่น ค่าเริ่มต้นจะตั้งไว้ที่ 68% ความเชื่อมั่น ดูข้อมูลเพิ่มเติมได้ในเอกสาร Android สำหรับ getVerticalAccuracyMeters()

ตัวอย่าง

กรณีที่ยังไม่ได้คำนวณตำแหน่ง:

A"ML=2;en=911;et=1643816841;ei=123456789012345;nc=23415;hc=23415

คำนวณตำแหน่งกรณีสำเร็จ:

A"ML=2;en=911;et=1643816929;lo=51.53321,-0.12601,14.7;lt=6;lc=68;lz=77.6,1.0;ls=W;ei=123456789012345;nc=23415;hc=23415

รูปแบบ

คุณสามารถส่งข้อความ ELS ผ่าน SMS โดยใช้รูปแบบต่อไปนี้

  • ส่งข้อความ SMS: SMS ปกติทั่วไป รูปแบบนี้รองรับตั้งแต่ Android P
  • SMS ข้อมูล: เนื้อหาข้อความเหมือนกับ SMS ทุกประการ แต่ แต่มีการเข้ารหัส (ดูรายละเอียดเพิ่มเติมด้านล่าง) รูปแบบนี้รองรับโดย อุปกรณ์ที่ใช้ Android ใช้ร่วมกับ ELS ได้

ส่งข้อความ SMS

การอ่านและแยกวิเคราะห์ SMS เป็นข้อความค่อนข้างตรงไปตรงมา อุปกรณ์เคลื่อนที่จำนวนมาก ผู้ให้บริการเครือข่ายนำเสนอบริการนี้และสามารถพุชหรือพุล API เพื่อรับ เนื้อหาของข้อความที่ส่งไปยังหมายเลขโทรศัพท์มาตรฐาน

SMS ข้อมูล

เริ่มรองรับรูปแบบ SMS แบบข้อความปกติตั้งแต่ Android P เก่ากว่า อุปกรณ์จะส่งข้อความ ELS โดยใช้ Data SMS ที่ต้องถอดรหัส ข้อมูล ELS ข้อความ SMS จะเข้ารหัสด้วยชุดอักขระเริ่มต้น GSM 03.38 แบบ 7 บิต จากนั้น ตั้งเป็นเพย์โหลดไบนารีของ Data SMS

เราจะกล่าวถึงคำจำกัดความที่แน่นอนของ SMS ข้อมูลแทน SMS ปกติในภายหลัง ดูคำจำกัดความที่แน่นอนของการเข้ารหัส 7 บิตของ GSM 03.38 ได้ใน 3GPP 23.038 (ดูหัวข้อ 6.1.2.1.1 โดยเฉพาะ)

ถอดรหัส SMS ข้อมูล

สำหรับการใช้งาน SMS สำหรับ ELS ของ Google นั้น ELS จะเกี่ยวข้องกับ SMS จากเครื่องไปยังศูนย์บริการโทรศัพท์มือถือ (SMSC) - ประเภท SMS-ส่ง ข้อความ SMSC ควรจะได้รับข้อความเหล่านี้โดยไม่มีปัญหาอย่าง เป็นส่วนหนึ่งของมาตรฐาน SMS ปกติ (แต่ในทางปฏิบัติเราสังเกต ปัญหากับ MNO ต่างๆ ตั้งแต่การตั้งค่าโครงสร้างพื้นฐานและนโยบาย ปัญหาในการถอดรหัส SMS ของข้อมูลอย่างถูกต้อง) ในเรื่องต่อไปนี้ ELS จะพิจารณาว่า SMS-SUBMIT จากโทรศัพท์มือถือไปยัง SMSC ซึ่งจะเป็นไปตาม SMS ปกติ (GSM 3.40) ELS ถือว่า SMS ข้อมูลเป็นชุดย่อยของ SMS ปกติ ซึ่งมีลักษณะดังนี้

  1. มีการตั้งค่าสถานะ User-Data-Header-Indicator ไว้ในส่วนหัว SMS (บิตที่ 6 ของ อ็อกเท็ตแรกของข้อความ GSM 03.40 หรือ 3GPP 23.040)
  2. มีส่วนหัวข้อมูลผู้ใช้ภายในข้อมูลผู้ใช้ของ SMS
  3. User-Data-Header มีที่อยู่พอร์ตของแอปพลิเคชัน ข้อมูล-ตัวระบุองค์ประกอบของข้อมูล (IEI)

ELS จำเป็นต้องส่ง SMS ในลักษณะนี้แทนการส่ง SMS ทั่วไป เพื่อให้มั่นใจว่าข้อความ SMS ของข้อมูล ELS จะไม่ปรากฏในอุปกรณ์ Android สำหรับแอปรับส่งข้อความ ตัวอย่าง SMS ที่เข้ารหัสจะแสดงภายหลังเพื่ออธิบายเรื่องนี้ให้ดีขึ้น

โปรดทราบว่าเราไม่ได้ระบุ Data-Coding-Scheme (DCS) ที่เฉพาะเจาะจงที่นี่ DCS ใช้เพื่อระบุการเข้ารหัสภายในกลุ่มเป้าหมายตามข้อมูลผู้ใช้ อย่างไรก็ตาม สำหรับ ในอนาคตที่คาดการณ์ได้ Data-Coding-Scheme จะกำหนดค่าข้อมูลแบบ 8 บิตเสมอเพื่อ มีความยืดหยุ่นสูงสุด และข้อมูลจริงจะเข้ารหัสด้วย GSM 03.38 ตัวอักษรเริ่มต้น 7 บิต องค์ประกอบที่เข้ารหัส 7 บิตแต่ละรายการจะ ใช้งานเพียง 7 บิต ไม่ใช่ 8 บิต

กลุ่มข้อมูลผู้ใช้มีขนาดสูงสุด 140 ไบต์ และฟังก์ชัน ขนาดต่ำสุดของ User-Data-Header ที่มีข้อมูลพอร์ตคือ 7 ไบต์ ทำให้สามารถเข้ารหัสได้สูงสุด 133 ไบต์ (152 องค์ประกอบที่เข้ารหัสแบบ 7 บิต) ข้อความฉุกเฉินจริงๆ ระบบอาจถอดรหัสไบต์เหล่านี้เพื่อแสดง SMS ของข้อมูล ELS ข้อความที่กำลังส่ง

ตัวอย่าง

ดังนั้น หลังจากถอดรหัส SMS ข้อมูลตัวอย่างนี้ เราจึงเหลือข้อมูลผู้ใช้ไบนารี ของสตริงฐานสิบหกนี้

415193D98BEDD8F4DEECE6A2C962B7DA8E7DEEB56232990B86A3D9623B39B92783EDE86F784F068BD560B6D80C1683E568B81D7BDCB3E176F076EFB89BA77B39DCCD56A3C966B15D39DD9BD570B2590E56CBC168B21A4DB66B8FC7BD590CB66BBBC73D990DB66BB37B31D94CC12CBBCF74B40E1493CD1A

ถอดรหัส GSM 03.38

ตัวอย่างต่อไปนี้จะถอดรหัสอ็อกเท็ตคู่แรก ส่วนที่เหลือจะอยู่ในรูปแบบ กับผู้อ่าน เราขอแนะนำให้อ้างอิง 3GPP 23.038 และใช้ เครื่องมือออนไลน์ที่มีประโยชน์ (เช่น http://smstools3.kekekasvi.com/topic.php?id=288). ในคอลัมน์ Octets ส่วนที่ไฮไลต์สีเหลืองแสดงถึงบิตที่ไม่ได้ใช้ เซสชันปัจจุบันและเก็บไว้สำหรับเซสชันถัดไป ภายในถังแคปซูล ส่วนที่ไฮไลต์สีเหลืองจะแสดงบิตจาก อ็อกเท็ต

เลขฐานสิบหก อ็อกเท็ต เกราะกันซึม อักขระ (เลขฐานสิบหก)
41 01000001 1000001 A (41)
51 01010001 0100010 " (22)
93 10010011 1001101 M (4D)
D9 11011001 1001100 L (4C)
8B 10001011 0111101 = (3D)
ED 11101101 0110001 1 (31)
D8 11011000 0111011 ; (3B)
1101100 l (6C)
F4 11110100 1110100 t (74)
DE 11011110 0111101 = (3D)

ผลลัพธ์สุดท้ายก็คือข้อความก่อนหน้าอาจได้รับการถอดรหัสเป็น สตริงต่อไปนี้:

A"ML=1;lt=37.42175;lg=-122.08461;rd=20;top=20150613010948;lc=68;pm=G;si=987654231;ei=358239059042542;mcc=310;mnc=260;ml=123

SMS เหล่านี้ควรสามารถถอดรหัสได้ด้วย SMS ที่เผยแพร่ต่อสาธารณะส่วนใหญ่ ซอฟต์แวร์