ส่วนนี้แบ่งออกเป็น 2 ส่วน ดังนี้
- เนื้อหา - เนื้อหาของข้อความ ELS
- รูปแบบ - วิธีส่งข้อความเหล่านั้นและวิธีถอดรหัส (หากจำเป็น)
เนื้อหา
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 ปกติ ซึ่งมีลักษณะดังนี้
- มีการตั้งค่าสถานะ User-Data-Header-Indicator ไว้ในส่วนหัว SMS (บิตที่ 6 ของ อ็อกเท็ตแรกของข้อความ GSM 03.40 หรือ 3GPP 23.040)
- มีส่วนหัวข้อมูลผู้ใช้ภายในข้อมูลผู้ใช้ของ SMS
- 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 ที่เผยแพร่ต่อสาธารณะส่วนใหญ่ ซอฟต์แวร์