Download presentation
Presentation is loading. Please wait.
1
교육일 : 2009년 6월 11일 안드로이드 SMS 구조 분석
2
Mobile Switching Center
1 SMS 구조 1.1 SMS Protocol Stack MS SMSC Mobile Station Service Center SM-AL SM-AL Application layer Application layer 수신 메시지 보여줌 발신메시지 작성 수신 메시지 보여줌 발신메시지 작성 SM-TL SM-TL Transfer layer SMS-GMSC Transfer layer MSC TPDU를 구성 Gayeway MSC TPDU를 구성 SMS-IWMSC Mobile Switching Center Inter Working MSC SM-RL SM-RL SM-RL SM-RL Relay layer Relay layer Relay layer Relay layer TPDU Type 메시지 전달 TPDU Type 메시지 전달 TPDU Type 메시지 전달 TPDU Type 메시지 전달 SM-LL SM-LL SM-LL SM-LL Link layer Link layer Link layer Link layer 물리적인 메시지 전달 망구조와 관련 물리적인 메시지 전달 망구조와 관련 물리적인 메시지 전달 망구조와 관련 물리적인 메시지 전달 망구조와 관련
3
1 SM-AL SM-TL SMS 구조 1.2 MS SMSC Transactions 수신 메시지 보여줌 발신메시지 작성
Application layer 수신 메시지 보여줌 발신메시지 작성 AL이 TL에게 서비스를 받음 SM-TL Transfer layer TPDU를 구성 메시지 타입 전송 방향 설명 SMS-DELIVER SMSC MS 새로운 메시지를 받았을 경우 SMS-DELIVER-REPORT MS SMSC 새로운 메시지를 잘 받았다고 보내는 메시지 SMS-SUBMIT 메시지 발송의 경우 SMS-SUBMIT-REPORT 내가 보낸 메시지를 SC에서 잘 받았다고 보낸 수신 메시지 SMS-STATUS-REPORT 내가 보낸 메시지를 목적 단말에서 잘 받았다고 보낸 수신 메시지 SMS-COMMAND 어떤 목적으로 보내는 명령 메시지
4
1 MS SMSC SM-TL SM-RL SMS 구조 1.3 Short Message Relay Layer TPDU를 구성
Transfer layer TPDU를 구성 MS SMSC Mobile Station Service Center 메시지 발송 ( MO ) TL 이 RL 에게 서비스를 받음 메시지 수신 ( MT ) SM-RL Relay layer TPDU Type 메시지 전달
5
SM-RP 에서 구성되는 RP-Message 종류
1 SMS 구조 SM-RP 의 명령어 명령어 타입 전송 방향 전달 인자 SM-RL-DATA-Req SM-TL SM-RL MO TPUD RL은 상위 TL에서 받은 TPDU를 RP-DATA를 구성 하위로 전달 SM-RL-DATA-Ind SM-RL SM-TL MT TPUD RL은 하위에서 받은 RP-DATA를 파싱 TPDU로 TL에 전달 SM-RL-MA-Req RL은 TL로부터 메모리 정보를 전달하라고 요청 받을 때 사용 SM-RL-REPORT-Req RL은 TL로부터 RP-ACK나 RP-ERROR를 외부(네트워크)로 전달하라는 요청을 보낼 때 사용 SM-RL-REPORT-Ind RL은 하위에서 받은 RP-ACK나 RP-ERROR를 TL로 전달 SM-RP 에서 구성되는 RP-Message 종류 하위 메시지 타입 의미 RP-MO-DATA MS SMSC 로 TPDU 전달하기 위해 사용 RP-MT-DATA SMSC MS 로 TPDU 전달하기 위해 사용 RP-ACK MO,MT,SMMA에 대한 ACK RP-ERROR MO,MT,SMMA에 대한 에러 RP-ALERT-SC ??? RP-SMMA 메시지를 수신 받기 위한 메모리가 충분한지 유무
6
SM-RP 에서 구성되는 RP-Message 흐름도
1 SMS 구조 SM-RP 에서 구성되는 RP-Message 흐름도 SM-TL Transfer layer TPDU를 구성 SM-RL Relay layer TPDU Type 메시지 전달 SM-RL Relay layer TPDU Type 메시지 전달 SM-TL Transfer layer TPDU를 구성 CM CM SMS 발송 MO message SM-RL-DATA-Req RP-DATA SMS-SUBMIT SM-RL-DATA-Ind SMS-SUBMIT SM-RL-REPORT-Req RP-ACK SM-RL-REPORT-Ind SM-RL-DATA-Req SMS 수신 MT message RP-DATA SM-RL-DATA-Ind SMS-DELIVER SMS-DELIVER SM-RL-REPORT-Req RP-DATA SMS-DELIVER- REPORT SM-RL-REPORT-Ind SMS-DELIVER- REPORT SM-RL-MEMORY- AVAILABLE-Req SMMA message SM-RL-MEMORY- AVAILABLE-Ind RP-SMMA SM-RL-REPORT-Req RP-ACK / RP-ERROR SM-RL-REPORT-Ind
7
1 SMS 구조 모뎀단의 구성은 계속 작성할 예정
8
2 SMS-SUBMIT 1.1 메시지 발송 간략 구조 목적지 주소 : destinationAddress
서비스센터(SC) 주소 : scAddress 메시지 내용 : text (UCS타입의 string) SmsMessageSender SmsManager PDU Ril 발송
9
1 SMS-SUBMIT 1.2 발송 데이터 생성 (SMS-SUBMIT) MTI ● 1 octet 7 6 5 4 3 2 1 RP
Mandatory 즉 꼭 들어가야 할 필드 MTI ● 1 octet 7 6 5 4 3 2 1 RP UDHI SRR ● VPF ● RD ● MTI ● 사용자 헤더가 있는 경우 발송에 대한 응답 메시지 요청 설정 시 발송메시지 기본 셋팅
10
1 SMS-SUBMIT MTI Message Type Indicator SMSC
Message Service Center 서비스 단 MS Mobile Station 단말 단 MTI 란? ● 메시지의 타입을 말한다. 2 Bit 메시지 타입 전송 방향 설명 0 0 SMS-DELIVER SMSC MS 새로운 메시지를 받았을 경우 SMS-DELIVER-REPORT MS SMSC 새로운 메시지를 잘 받았다고 보내는 메시지 0 1 SMS-SUBMIT 메시지 발송의 경우 SMS-SUBMIT-REPORT 내가 보낸 메시지를 SC에서 잘 받았다고 보낸 수신 메시지 1 0 SMS-STATUS-REPORT 내가 보낸 메시지를 목적 단말에서 잘 받았다고 보낸 수신 메시지 SMS-COMMAND 어떤 목적으로 보내는 명령 메시지 1 1 예약 비트 안드로이드에서 발송 시 설정 값
11
1 SMS-SUBMIT 1 2 3 4 5 메시지의 수 발신 과정 발송 (MS) 서비스 (SC) 수신 (MS)
새로운 메시지 발송 2 SMS-SUBMIT- REPORT 잘 받았다 응답 3 SMS-DELIVER 새로운 메시지 수신 4 SMS-DELIVER -REPORT 잘 받았다 응답 5 SMS-STATUS -REPORT 잘 받았다 응답
12
1 SMS-SUBMIT A 1 A 3 5 A 6 A A 2 A 4 RD Reject Duplicates OA
Originating Address MR Message Reference DA Destination Address RD 란? ● 중복 메시지면 발송하지 않는다. 1 Bit 설명 중복 메시지라도 모두 수신 하라는 의미 1 중복 메시지라면 걸러내라는 의미 안드로이드에서 설정 값 서비스 (SC) 발송 (MS) 수신 (MS) A 1 A 3 5 A 6 A A 2 A 4 필터링 필터링 조건 : 같은 OA로부터 MR과 DA가 같은 경우 즉 발송주소와,메시지 ID, 목적지 주소가 같을 경우 !!! OA와 MR,DA는 뒤에서 설명
13
1 SMS-SUBMIT 2 1 3 VPF Validity Period Format 1.2.1.3 VPF 란? ●
MS에서 발송한 메시지를 SC에서 목적지 발송 유효기한 사용 여부. ( 사실상 재시도는 SC의 구현에 따라 달라진다. ) 2 Bit 포 멧 0 0 지원하지 않는다. 0 1 enhanced format (향상된 방식의 기간 표시 포멧) 1 0 relative format (상대기간) 1 1 absolute format (절대기간) 안드로이드에서 설정 값 본 필드를 설정하면 뒤에 추가적으로 Validity Period 항목이 존재한다. 위에 대한 상세 설명은 VP 항목에서 설명하겠다. 발송 (MS) 서비스 (SC) 실패 수신 (MS) 2 1 3 재시도 기간
14
1 SMS-SUBMIT 1 2 RP Reply Path 1.2.1.4 RP 란? ●
수신된 메시지에 대한 응답을 보내야 할 경우. 일반적으로 MS에서 발송하는 메시지가 아니라 특정 서버에서 특정 목적으로 이용된다. (설문 용) 1 Bit 설명 응답을 보내는 메시지가 아니다. 1 응답을 보내는 메시지다. 안드로이드에서 설정 값 남자면 1 여자면 2 서비스 (SC) 수신 (MS) 1 2 1 설문 관련 서버
15
1 SMS-SUBMIT UDHI User Data Header Indicator 1.2.1.5 UDHI 란?
User Data Header 관련 사항은 UD 파트에서 설정하겠다. 1 Bit 설명 UDH 가 존재하지 않는다. 1 UDH 가 존재한다.
16
1 SMS-SUBMIT SRR Status Report Request 1.2.1.6 SRR 이란?
내가 보내는 메시지에 대한 응답을 요청하는 플래그. 즉 SMS-STATUS-REPORT를 보내 달라는 의미 1 Bit 설명 받았다는 응답을 안 보내도 된다 1 받았다는 응답을 꼭 보내라.
17
1 SMS-SUBMIT 1 2 MTI ● 1 octet MR ● Integer Integer MR ● 1.2.2 MR 작성 ●
Message Reference 내가 발송하는 메시지에 대한 고유 ID 만일 고유한 ID가 없을 경우 메시지에 대한 중복 여부를 알 수 없을 뿐만 아니라 아래에 에서 보낸 메시지가 에서 응답이 왔을 때 어떤 메시지에 대한 응답인지 알 수 없다. 그러므로 해당 메시지의 ID는 꼭 필요하다. 1 2 MTI ● 1 octet MR ● Integer Integer MR ● 안드로이드에서는 0으로 셋팅 한다. 왜냐하면 발신할 때마다 SIM에 MR을 저장한다. 즉 SIM에는 초기 값이 있고 그 값에 1++을 하여 MR이 생성된다. 우리 단말 기준으로 RIL에서 만든다.
18
1 SMS-SUBMIT MTI ● 1 octet MR ● Integer DA ● 2-12 octet 7 6 5 4 3 2 1
Destination Address TOA Type Of Number + Numbering Plan Identification 목적지에 대한 주소 Type of number MTI ● 1 octet MR ● Integer DA ● 2-12 octet 7 6 5 4 3 2 1 주소의 크기 Type of number Numbering Plan Identification 국제 번호일 경우 (+가 붙을 때) 일반적인 전화번호일 때 주소 값 … n Numbering Plan Identification 주소 표현의 구조 ( 안드로이드의 TOA 셋팅 ) 본 표의 출처 : John Wiley & Sone Mobile Messaging Technologies and Services SMS,EMS and MMS
19
모두 0이란 의미는 일반적인 용도 즉 SME SMSC 간 메시지를 주고 받는 Protocol이란 뜻이다.
1 SMS-SUBMIT 1.2.4 PID 작성 ● PID Protocol IDentifier SME Short Message Entities SMSC Short Message Service Center 해당 Protocol의 용도에 해당한다. MTI ● 1 octet MR ● Integer DA ● 2-12 octet PID ● 7 6 5 4 3 2 1 안드로이드는 발송 시 모두 0으로 셋팅한다. 모두 0이란 의미는 일반적인 용도 즉 SME SMSC 간 메시지를 주고 받는 Protocol이란 뜻이다. Mobile Station Service Center
20
1 SMS-SUBMIT 본 표의 출처 : John Wiley & Sone Mobile Messaging Technologies and Services SMS,EMS and MMS
21
1 SMS-SUBMIT 본 표의 출처 : John Wiley & Sone Mobile Messaging Technologies and Services SMS,EMS and MMS
22
1 SMS-SUBMIT Service Type PID 내용 메시지에서 관리 SMS 0x00 일반 SMS O V2MN 0x48
음성/영상 메시지 Platform 0x4D Platform callback Browser 0x4E URL Callback LMS 0x4F LMS 서비스 LBS 0x51 LBS 서비스 LBS에서 관리 CBS 0x52 CBS 서비스(사용안함) 사용안함 0x53 Port address에 의한 서비스 확장용 PID ? OTA-DM 0x7D OTA-Device Management DM에서 관리 USIM 0x7F USIM UPDATE OTA 본 표의 출처 : John Wiley & Sone Mobile Messaging Technologies and Services SMS,EMS and MMS
23
1 SMS-SUBMIT MTI ● 1 octet MR ● Integer DA ● 2-12 octet PID ● DCS ● 7
Data Coding Scheme 데이터 코딩 방식을 의미한다. MTI ● 1 octet MR ● Integer DA ● 2-12 octet PID ● DCS ● 아래의 그룹비트에 설정된 비트마다 각각의 비트가 의미하는 내용이 달라진다. 7 6 5 4 3 2 1 그룹 비트 안드로이드는 그룹 비트를 모두 0으로 셋팅한다.
24
1 00xx SMS-SUBMIT 7 6 5 4 3 2 1 Coding group 5 4 3 2 1 text 압축 Class
Coding Group이 00xx 일때 하위 비트의 의미 00xx 사용되는 하위 비트 7 6 5 4 3 2 1 Coding group 안드로이드에서 발송 시 셋팅되는 그룹이다. 5 4 3 2 1 text 압축 Class Flag Character Set (문자 비트 수) Message Class 5 Bit 설명 Text 압축 사용 무 1 사용 메시지 처리 방식 2 Bit 설명 0 0 Class 0 화면에 즉시 출력만 0 1 Class 1 단말에 저장해라 1 0 Class 2 USIM에 저장 해라 1 1 Class 3 터미널에 저장 해라 2 Bit 설명 0 0 기본 알파벳 (GSM7Bit) 0 1 8비트 데이터 1 0 UCS2(16Bit) 1 1 예약 공간 5 Bit 설명 Message Class 필드 설정 내용 사용 안함 1 설정 내용 사용함
25
Class Flag가 0이므로 Message Class는 의미가 없다.
1 SMS-SUBMIT 00xx 안드로이드 설정 값 7 6 5 4 3 2 1 Coding group text 압축 Class Flag Character Set (문자 비트 수) Message Class GSM 7Bit 00xx 만일 UD 가 UCS2(16비트)로 구성되어 있는 경우 안드로이드 설정 값 7 6 5 4 3 2 1 Coding group text 압축 Class Flag Character Set (문자 비트 수) Message Class UCS2 16Bit Class Flag가 0이므로 Message Class는 의미가 없다. 00xx 만일 발송하는 메시지가 순수 SMS가 아닌 DATA 전달이 목적인 SMS인 경우 7 6 5 4 3 2 1 Coding group text 압축 Class Flag Character Set (문자 비트 수) Message Class 8Bit
26
GSM7Bit 기본 Alphabet extension table
1 SMS-SUBMIT GSM7Bit 기본 Alphabet GSM7Bit 기본 Alphabet extension table 본 표의 출처 : 3G TS V3.36.0
27
MS에서 발송한 메시지를 SC에서 목적지 발송 유효기한의 값을 설정
1 SMS-SUBMIT 1.2.6 VP 작성 VPF Validity Period MS에서 발송한 메시지를 SC에서 목적지 발송 유효기한의 값을 설정 VPF MTI ● 1 octet MR ● Integer DA ● 2-12 octet PID ● DCS ● VP 1/7 octet VPF 필드 유효기간 정보 포멧을 알아낸 뒤 VP 필드의 유효시간 값을 참조한다. 하지만 VPF가 00으로 셋팅 되었다면 유효기간의 기능을 사용하지 않는다는 의미이므로 VP필드 자체가 존재하지 않는다. 안드로이드에서는 VPF 값이 00으로 셋팅 된다. 그러므로 VP 필드 자체가 없다. 발송 (MS) 서비스 (SC) 실패 수신 (MS) 2 1 3 재시도 기간
28
1 SMS-SUBMIT 7 6 5 4 3 2 1 Enhanced Format 방식의 VP 값 확장비트 배달타입 예약 비트
확장비트 배달타입 예약 비트 유효기간 값
29
1 SMS-SUBMIT Relative Format 방식의 VP 값 7 6 5 4 3 2 1 1 octet
1 octet (integer) 값이 0부터 143까지의 값이 의미하는 것 예) 5일 경우 ( ) * 5분 30분 후까지 발송되지 않으면 지워라 값이 144부터 167까지의 값이 의미하는 것 예) 145일 경우 12 시간 + ( ( 145 – 143 ) * 30 분 ) 13시 후까지 발송되지 않으면 지워라 값이 168부터 196까지의 값이 의미하는 것 예) 170일 경우 ( 170 – 166 ) * 1 일 4시 후까지 발송되지 않으면 지워라 값이 197부터 255까지의 값이 의미하는 것 예) 200일 경우 ( 200 – 192 ) * 1 주 8주 동안 발송되지 안으면 지워라
30
1 SMS-SUBMIT 1909년 12월 23일 9시 53분 42초 GMT +4 시간
Absolute Format 방식의 VP 값 아래의 예) 1909년 12월 23일 9시 53분 42초 GMT +4 까지 발송되지 않으면 지워라. 7 6 5 4 3 2 1 Octet 1 년도 (0~9자리) 년도 (00 ~ 90자리) Octet 2 월 (0~9자리) 월 (00 ~ 90자리) Octet 3 일 (0~9자리) 일 (00 ~ 90자리) Octet 4 시 (0~9자리) 시 (00 ~ 90자리) Octet 5 분 (0~9자리) 분 (00 ~ 90자리) Octet 6 초 (0~9자리) 초 (00 ~ 90자리) Octet 7 TimeZon (0~9자리) TZ + = 0 - = 1 (00~10자리) 1909년 12월 23일 9시 53분 42초 GMT +4 시간
31
1 SMS-SUBMIT MTI ● 1 octet MR ● Integer DA ● 2-12 octet PID ● DCS ● VP
1.2.6 UDL 작성 ● UDL User Data Length User Data 실질적인 메시지 내용의 글자수 정보이다. MTI ● 1 octet MR ● Integer DA ● 2-12 octet PID ● DCS ● VP 1/7 octet UDL ● 실질적인 메시지의 최대 크기 안드로이드 크기 제한 정의 Character Set 설명 GSM 7Bit (Septets) 실질적인 메시지(UserData) 크기가 160자를 초과하면 에러 메시지 발송 안됨 UCS2 16Bit 140자를 는 초과하면 에러 MTI MR DA PID DCS VP UDL UD UD의 Octets 수를 말한다. UD에 쓸수 있는 최대 사이즈가 140 octet이다. 즉 140byte 총 1120 bit이다. GSM 7Bit 경우 : 최대 / 7 = 160자까지 가능 UCS 2 16Bit 경우 : 최대 1120 / 8 = 140자에서 최소 1120 / 16 = 70자 이다. 8Bit 경우 : 최대 1120 / 8 = 140자 이다.
32
1 SMS-SUBMIT MTI ● 1 octet MR ● Integer DA ● 2-12 octet PID ● DCS ● VP
1.2.7 UD 작성 UDL User Data 실질적인 메시지 내용이다. MTI ● 1 octet MR ● Integer DA ● 2-12 octet PID ● DCS ● VP 1/7 octet UDL ● UD GSM 7Bit 최대 글자수 160 UCS2 16Bit 최대 글자수 140 MTI MR DA PID DCS VP UDL UD
33
1 SMS-SUBMIT MTI ● 1 octet MR ● Integer DA ● 2-12 octet PID ● DCS ● VP
1.2.8 User Data Header 가 포함된 UD 작성 UDL User Data UD에 메시지 내용의 헤더를 말한다. 헤더를 통해서 여러 가지 기능을 수행 할 수 있고 메시지의 특성을 변경할 수 있다. MTI ● 1 octet MR ● Integer DA ● 2-12 octet PID ● DCS ● VP 1/7 octet UDL ● UD GSM 7Bit 최대 글자수 160 UCS2 16Bit 최대 글자수 140 UDHI 비트가 설정되어 있다면 User Header 정보가 UD에 포함되어 있다는 뜻이다. UD UDHL IEI IEIDL IED … Fill data Short Message (7Bit or 8Bit or 16Bit) 여기까지가 UDH 이다.
34
1 SMS-SUBMIT UD UD 1.2.8.1 User Data Header Element UDL User Data UDHL
User Data Header Length IEI Information Element Identifier IEIDL Information Element Data Length IED Information Element Data SM ? UD에는 여러 개의 Element가 들어 간다. 각 Element는 특정 의미를 가지고 정보를 포함한다. UD UDHL IEI IEIDL IED … Fill data SM (7Bit or 8Bit or 16Bit) 하나의 Element ( 1 ) UDHL 이란? UDH의 전체 Octet수를 말한다. UD UDHL 1 octet IEI IEIDL IED … Fill data SM (7Bit or 8Bit or 16Bit) 전체의 octet 수
35
0x05 : Application port addressing scheme, 16 bit address
SMS-SUBMIT ( 2 ) IEI 란? 여러 가지 용도로 사용 된다. IEI 비트가 의미하는 여러 가지 용도가 있다. IEI IEIDL IED 안드로이드에서 발송 시 사용하는 IEI 비트 7 6 5 4 3 2 1 1 octet 0x05 : Application port addressing scheme, 16 bit address 이 값에 대한 설명은 IED 부분에서 설명한다.
36
1 SMS-SUBMIT IEI 의 종류 본 표의 출처 : John Wiley & Sone Mobile Messaging Technologies and Services SMS,EMS and MMS
37
1 SMS-SUBMIT 본 표의 출처 : John Wiley & Sone Mobile Messaging Technologies and Services SMS,EMS and MMS
38
1 SMS-SUBMIT KTFT 스팩의 IEI 의 종류 NO IEI Length 내용 1 0x01(Special)
2 octet VMS Noti, Store 메시지_ID + 총 메시지 개수 2 0x05 4 octet Application port addressing scheme, 16 Bit address 3 0x22 가변 회신번호 식별자(Reply Address Element) 4 0x40 5 octet LMS 응용서비스 식별자 5 0x41 8 octet LMS 인증 정보 6 0x42 LMS 데이터 크기 7 0x43 1 octet Pull 지시자 8 0x44 읽음 확인 식별자 9 0x70 0 octet UICC Security Header ( Command Packet Identifier ) 10 0x71 UICC Security Header ( Response Packet Identifier )
39
회신번호 식별자(Reply Address Element)
1 SMS-SUBMIT 스팩의 IEI 0x22 에 대해서 IEI Length 내용 0x22 가변 회신번호 식별자(Reply Address Element) IEI 7 6 5 4 3 2 1 IEIDL 2-12 octets 을 사용해야 한다. IED 2 octet ~ 12 octet 회신번호
40
1 SMS-SUBMIT IED 2 octet ~ 12 octet 회신번호 USIM : MSISDN 참조 (회신번호)
41
1 IEI IEIDL IED SMS-SUBMIT 7 6 5 4 3 2 1 0으로 셋팅 2 octet ~ 12 octet 비움
회신 번호가 없는 경우 IEI 7 6 5 4 3 2 1 IEIDL 0으로 셋팅 IED 2 octet ~ 12 octet 비움
42
1 SMS-SUBMIT UD ( 3 ) IEDL 이란? IED의 octet의 수를 나타낸다. IED octet의 수 IEI
IEIDL IED UD UDHL IEI IEI이 1 octet IED … IEIDL Fill data SM (7Bit or 8Bit or 16Bit) IED octet의 수
43
1 0x05 : Application port addressing scheme, 16 bit address SMS-SUBMIT
( 4 ) IED 란? IEI 타입의 필요한 데이터가 들어 간다. IEI IEIDL IED IEI 타입이 아래와 같은 경우 IEI IEIDL IED 안드로이드에서 발송 시 사용하는 IEI 비트 7 6 5 4 3 2 1 1 octet 0x05 : Application port addressing scheme, 16 bit address 본 타입은 일반 SMS메시지가 아니라 특정 Data를 특정 서비스하는 곳에 전송하는 SMS 이다. 서비스에 접속을 위한 포트 설정이 필요. IEIDL 이 아래와 같은 경우 IEI IEIDL IED 안드로이드에서 발송 시 사용하는 IEIDL 비트 7 6 5 4 3 2 1 1 octet 아래에서 2가지 포트 번호를 넣기 위해 IED가 총 4octet이 사용된다. 포트번호 하나가 16Bit이다. IED 이 아래와 같은 경우 IEI IEIDL IED 안드로이드에서 발송 시 사용하는 IED 비트 7 6 5 4 3 2 1 포트 번호 1 octet 목적지 포트번호 : 서비스 포트 번호의 상위 비트 설정 (MSB) 2 octet 목적지 포트번호: 서비스 포트 번호의 하위 비트 설정 3 octet 출발지 포트번호: 출발지 포트의 상위 비트 설정 4 octet 출발지 포트번호: 출발지 포트의 하위 비트 설정 포트번호 확인
44
octet(8Bit) 단위 크기 : 예) 만일 124Bit인 경우
SMS-SUBMIT ( 5 ) Fill data 란? UDH는 정확히 octet단위로 Align이 맞아야 한다. 하지만 IED character set이 7Bit인 경우 8Bit 단위의 octet에 정확히 맞아 떨어지지 않을 수 있다. 이런 경우 Fill Data에 빈 데이터를 더 추가하여 8bit Align을 맞춘다. UD UDHL IEI IEIDL IED … Fill data SM (7Bit or 8Bit or 16Bit) octet(8Bit) 단위 크기 : 예) 만일 124Bit인 경우 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 1 15 octets 2 4 bit가 남음 3 4 bit +4 bit 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 4 정확히 16 octets
45
1 SMS-SUBMIT UD ( 6 ) SM 란? 실재 User Data가 들어 간다. UDHL IEI IEIDL IED …
Fill data SM (7Bit or 8Bit or 16Bit)
46
Reply Address Element IEI
1 SMS-SUBMIT 1.2.9 KTF 규격 발송 PDU 7 6 5 4 3 2 1 Type KTF RP UDHI SRR VPF RD MTI M TP-MR Address Length DA : 수신 번호 Type of Address Value TP-PID 0x00 TP-DCS 0x00/0x84 TP-VP O VPF=00 이면 필드 생략 TP-UDL TP-UDHL Reply Address Element IEI Indication : 0x22 IEIDL Address-Length 회신 번호 TP-UD
47
2 SMS-SUBMIT-REPORT 2.1 수신 데이타 파싱 2.1.1 SMS-SUBMIT-REPORT PDU 구조
48
2 SMS-SUBMIT-REPORT MTI ● 1 octet FCS ● PI ● SCTS ● 7 octets PID DCS
Message Type Indicator UDHI User Data Header Indicator FCS Failure CauSe PI Parameter Indicator SCTS Service Center Time Stamp PID Protocol Identifier DCS Data Coding Scheme UDL User Data Length UD User Data MTI ● 1 octet FCS ● PI ● SCTS ● 7 octets PID DCS UDL Integer UD GSM 7Bit 최대 글자수 160 UCS2 16Bit 최대 글자수 140 negative 시
49
RIL Class 3 SMS-DELIVERY 3.1 메시지 수신 간략 구조
ReceiverThread (RIL Receiver) Run() RIL Class 요청에 의한 응답 Response solicited 1 요청하지 않은 응답 Response Unsolicited sendBroadcast() 새로운 메시지가 도착 했다는 상수 해당 메시지를 Broadcast 한다. 2 RIL_UNSOL_RESPONSE_NEW_SMS 7 ACTION : Intents.SMS_RECEIVED_ACTION Extra : PDU 데이타 3 4 !!! 6번 전에서 고려해야 할 사항 !!! DELIVERY REPORT 를 발송하기 전에 현재 단말에 여유공간이 존재하는지 확인해야 한다. 만일 부족 시에는 에러를 리턴 해야 한다. 안드로이드에서는 고려하지 않고 있다. string 형 데이타 파싱 SmsMessage Data SMSDispatcher : EVENT_NEW_SMS 실행 Handler 5 acknowledgeLastIncomingSMS() 발신측에 메시지를 잘 받았다는 SMS 발송 6 SMS DELIVERY REPORT
50
3 SMS-DELIVERY 3.2 수신 데이터 파싱 3.2.1 SMS-DELIVERY PDU 구조
51
3 SMS-DELIVERY SCA 2-12 octets MTI ● 1 octet OA ● PID ● DCS ● SCTS ●
Service Center Address MTI Message Type Indicator RP Reply Path UDHI User Data Header Indicator SRI Status Report Indication MMS More Messages to Send OA Originating Address PID Protocol IDentifier DCS Data Coding Scheme SCTS Service Center Time Stamp UDL User Data Length UD User Data SCA 2-12 octets MTI ● 1 octet OA ● PID ● DCS ● SCTS ● 7 octets UDL Integer UD GSM 7Bit 최대 글자수 160 UCS2 16Bit 최대 글자수 140
52
3 SMS-DELIVERY SCA 2-12 octets MTI ● 1 octet OA ● PID ● DCS ● SCTS ●
메시지를 전달해준 서비스 센터의 주소가 이다. 주소 정보에 대한 설명은 앞장 Destination Address 파트 에서 상세히 설명 하였다. (참조바람) SCA 2-12 octets MTI ● 1 octet OA ● PID ● DCS ● SCTS ● 7 octets UDL Integer UD GSM 7Bit 최대 글자수 160 UCS2 16Bit 최대 글자수 140
53
3 SMS-DELIVERY SCA 2-12 octets MTI ● 1 octet OA ● PID ● DCS ● SCTS ●
UDL Integer UD GSM 7Bit 최대 글자수 160 UCS2 16Bit 최대 글자수 140 7 6 5 4 3 2 1 RP● UDHI SRI 사용 안함 MMS ● MTI ●
54
3 SMS-DELIVERY 7 6 5 4 3 2 1 RP● UDHI SRI MMS ● MTI ● 3.2.3.1 MTI 파싱 ●
Message Type Indicator SMSC Message Service Center 서비스 단 MS Mobile Station 단말 단 메시지의 타입을 말한다. 상세한 내용은 앞장 참조. 7 6 5 4 3 2 1 RP● UDHI SRI 사용 안함 MMS ● MTI ● 안드로이드에서 설정 값 2 Bit 메시지 타입 전송 방향 설명 0 0 SMS-DELIVER SMSC MS 새로운 메시지를 받았을 경우 1 0 SMS-STATUS-REPORT 내가 보낸 메시지를 목적 단말에서 잘 받았다고 보낸 수신 메시지
55
3 SMS-DELIVERY 7 6 5 4 3 2 1 RP● UDHI SRI MMS ● MTI ● 3.2.3.2 RP 파싱 ●
Reply Path 수신된 메시지에 대한 응답을 보내야 할 경우. 일반적으로 MS에서 발송하는 메시지가 아니라 특정 서버에서 특정 목적으로 이용된다. (설문 용) 앞장 Reply Path에서 상세히 설명 하였다. (참조 바람) 7 6 5 4 3 2 1 RP● UDHI SRI 사용 안함 MMS ● MTI ● 1 Bit 설명 응답을 보내는 메시지가 아니다. 1 응답을 보내는 메시지다.
56
3 SMS-DELIVERY 7 6 5 4 3 2 1 RP● UDHI SRI MMS ● MTI ● 3.2.3.3 UDHI 파싱
User Data Header Indicator User Data Header가 포함 되어 있는지 여부 앞장의 상세 설명 참조 7 6 5 4 3 2 1 RP● UDHI SRI 사용 안함 MMS ● MTI ● 1 Bit 설명 UDH 가 존재하지 않는다. 1 UDH 가 존재한다.
57
3 SMS-DELIVERY 7 6 5 4 3 2 1 RP● UDHI SRI MMS ● MTI ● 3.2.3.4 SRI 파싱
Status Report Indication 발신측에서 SMS에 대한 수신여부 응답을 요청했다면 이 비트가 셋팅되어 있다. 7 6 5 4 3 2 1 RP● UDHI SRI 사용 안함 MMS ● MTI ● 안드로이드에서는 전혀 파싱하지 않음 1 Bit 설명 Status Report 요청 안함 1 Status Report 요청함
58
3 SMS-DELIVERY 7 6 5 4 3 2 1 RP● UDHI SRI MMS ● MTI ● 3.2.3.5 MMS 파싱
More Messages to Send 망에서(서비스센터) 더 이어서 더 보낼 메시지가 있는 경우 셋팅 된다. 7 6 5 4 3 2 1 RP● UDHI SRI 사용 안함 MMS ● MTI ● 안드로이드에서는 전혀 파싱하지 않음 1 Bit 설명 망에서 더 보낼 메시지가 없다. 1 망에서 더 보낼 메시지가 있다.
59
3 SMS-DELIVERY SCA 2-12 octets MTI ● 1 octet OA ● PID ● DCS ● SCTS ●
Originating Address 메시지를 발신한 MS의 주소가 이다. 주소 정보에 대한 설명은 앞장 Destination Address 파트에서 상세히 설명 하였다. (참조바람) SCA 2-12 octets MTI ● 1 octet OA ● PID ● DCS ● SCTS ● 7 octets UDL Integer UD GSM 7Bit 최대 글자수 160 UCS2 16Bit 최대 글자수 140
60
3 SMS-DELIVERY SCA 2-12 octets MTI ● 1 octet OA ● PID ● DCS ● SCTS ●
Protocol IDentifier 해당 Protocol의 용도에 해당한다. SCA 2-12 octets MTI ● 1 octet OA ● PID ● DCS ● SCTS ● 7 octets UDL Integer UD GSM 7Bit 최대 글자수 160 UCS2 16Bit 최대 글자수 140
61
3 SMS-DELIVERY Service Type PID 내용 메시지에서 관리 SMS 0x00 일반 SMS O V2MN
음성/영상 메시지 Platform 0x4D Platform callback Browser 0x4E URL Callback LMS 0x4F LMS 서비스 LBS 0x51 LBS 서비스 LBS에서 관리 CBS 0x52 CBS 서비스(사용안함) 사용안함 0x53 Port address에 의한 서비스 확장용 PID ? OTA-DM 0x7D OTA-Device Management DM에서 관리 USIM 0x7F USIM UPDATE OTA
62
3 SMS-DELIVERY SCA 2-12 octets MTI ● 1 octet OA ● PID ● DCS ● SCTS ●
Data Coding Scheme 데이터 코딩 방식을 의미한다. 앞장에 상세 설명을 참조 바람. SCA 2-12 octets MTI ● 1 octet OA ● PID ● DCS ● SCTS ● 7 octets UDL Integer UD GSM 7Bit 최대 글자수 160 UCS2 16Bit 최대 글자수 140
63
3 00xx SMS-DELIVERY 7 6 5 4 3 2 1 Coding group text 압축 Class Flag
안드로이드에서는 수신 받은 메시지 관련해서 5가지 그룹만을 지원한다. (1) 00XX 그룹은 앞장에서 상세 설명 하였다. 00xx 7 6 5 4 3 2 1 Coding group text 압축 Class Flag Character Set (문자 비트 수) Message Class
64
3 1111 SMS-DELIVERY 7 6 5 4 3 2 1 Coding group (2) 1111 그룹 사용무
(2) 그룹 1111 7 6 5 4 3 2 1 Coding group 사용무 Character Set (문자 비트 수) Message Class 즉, 기본 전제 조건은 1) text 압축은 사용하지 않는다. 2) Message Class 를 무조건 참조한다. 3) 자동 삭제를 하지 않는다. class 에 상관없이 무조건 단말 저장 1 Bit 설명 기본 알파벳 (GSM7Bit) 1 8비트 데이터 2 Bit 설명 0 0 Class 0 화면에 즉시 출력만 0 1 Class 1 단말에 저장해라 1 0 Class 2 USIM에 저장 해라 1 1 Class 3 터미널에 저장 해라
65
3 1101 SMS-DELIVERY 7 6 5 4 3 2 1 Coding group MWI
Message Waiting Indication (3) / 1101 / 1110 그룹 1101 7 6 5 4 3 2 1 Coding group Active 사용무 메시지 종류 즉, 기본 전제 조건은 1) GSM 7Bit 문자셋을 사용 2) 메시지를 저장한다. 3) 기본으로 메시지 압축 안함 1 Bit 설명 설정 표시 비활성 1 설정 표시 활성 2 Bit 설명 0 0 음성 메일 메시지를 기다리는 중 0 1 팩스 메시지를 1 0 전자 메일 메시지를 1 1 다른 메시지가 대기 안드로이드에서는 본 MWI 항목만 사용 Active, MWI와의 관계 MWI 는 Message Waiting Indication의 약자로 서버 도착한 메시지가 있다는 메시지이다. 예를 들어 MWI 종류가 00(음성메일)일 경우 서버에 도착한 음성메시지가 있다는 뜻이다. Active는 화면에 서버에 도착한 메시지를 사용자에게 알려 주어라는 것이다.
66
3 1100 SMS-DELIVERY 7 6 5 4 3 2 1 Coding group Active 사용무 메시지 종류
Coding group Active 사용무 메시지 종류 즉, 기본 전제 조건은 1) GSM 7Bit 문자셋을 사용 2) 메시지를 저장하지 않는다. 3) 기본으로 메시지 압축 안함 1 Bit 설명 설정 표시 비활성 1 설정 표시 활성 2 Bit 설명 0 0 음성 메일 메시지를 기다리는 중 0 1 팩스 메시지를 1 0 전자 메일 메시지를 1 1 다른 메시지가 대기 안드로이드에서는 본 MWI 항목만 사용 Active, MWI와의 관계 MWI 는 Message Waiting Indication의 약자로 서버 도착한 메시지가 있다는 메시지이다. 예를 들어 MWI 종류가 00(음성메일)일 경우 서버에 도착한 음성메시지가 있다는 뜻이다. Active는 화면에 서버에 도착한 메시지를 사용자에게 알려 주어라는 것이다.
67
3 1110 SMS-DELIVERY 7 6 5 4 3 2 1 Coding group Active 사용무 메시지 종류
Coding group Active 사용무 메시지 종류 즉, 기본 전제 조건은 1) UCS2 16Bit 문자셋을 사용 2) 메시지를 저장한다. 3) 기본으로 메시지 압축 안함 1 Bit 설명 설정 표시 비활성 1 설정 표시 활성 2 Bit 설명 0 0 음성 메일 메시지를 기다리는 중 0 1 팩스 메시지를 1 0 전자 메일 메시지를 1 1 다른 메시지가 대기 안드로이드에서는 본 MWI 항목만 사용 Active, MWI와의 관계 MWI 는 Message Waiting Indication의 약자로 서버 도착한 메시지가 있다는 메시지이다. 예를 들어 MWI 종류가 00(음성메일)일 경우 서버에 도착한 음성메시지가 있다는 뜻이다. Active는 화면에 서버에 도착한 메시지를 사용자에게 알려 주어라는 것이다.
68
3 10xx KTF/SKT에서 사용함 추가 필요 두 비트만 참조 그리고 0 1 만 사용 SMS-DELIVERY 7 6 5 4
2 1 Coding group text 압축 Class Flag Character Set (문자 비트 수) Message Class x KTF/SKT에서 사용함 추가 필요 두 비트만 참조 그리고 0 1 만 사용
69
3 SMS-DELIVERY SCA 2-12 octets MTI ● 1 octet OA ● PID ● DCS ● SCTS ●
Service Center Time Stamp MS 에서 메시지 발신 SMS-SUBMIT시 SC에 저장된 시간을 의미한다. SC에 도착한 시간 남김 SCA 2-12 octets MTI ● 1 octet OA ● PID ● DCS ● SCTS ● 7 octets UDL Integer UD GSM 7Bit 최대 글자수 160 UCS2 16Bit 최대 글자수 140
70
3 SMS-DELIVERY SCA 2-12 octets MTI ● 1 octet OA ● PID ● DCS ● SCTS ●
3.2.8 UDL 파트 파싱 UDL User Data Length 실질적인 메시지 내용의 글자수 정보이다. 앞장에 상세 설명 참조. SCA 2-12 octets MTI ● 1 octet OA ● PID ● DCS ● SCTS ● 7 octets UDL Integer UD GSM 7Bit 최대 글자수 160 UCS2 16Bit 최대 글자수 140
71
3 SMS-DELIVERY SCA 2-12 octets MTI ● 1 octet OA ● PID ● DCS ● SCTS ●
3.2.9 UD 파트 파싱 UD User Data 실질적인 메시지 내용이다. 앞장에서 설명 하였듯이 UD 내에는 User Data Header가 존재 할 수 있다. SCA 2-12 octets MTI ● 1 octet OA ● PID ● DCS ● SCTS ● 7 octets UDL Integer UD GSM 7Bit 최대 글자수 160 UCS2 16Bit 최대 글자수 140
72
3 SMS-DELIVERY 3.2.10 User Data Header 파싱 UDH User Data Header
앞장에 간략 설명을 참조바람. IEI 의 종류 안드로이드에서는 수신 시 3가지 용도를 지원한다. 본 표의 출처 : John Wiley & Sone Mobile Messaging Technologies and Services SMS,EMS and MMS
73
3 IEI IEIDL IED SMS-DELIVERY 7 6 5 4 3 2 1 3 octet을 사용해야 한다. 1 octet
(1) 8-Bit Reference Number 본 항목의 목적은 SMS 메시지가 긴 것은 짤라서 보낼 수 있다라는 방법이다. IEI 7 6 5 4 3 2 1 IEIDL 3 octet을 사용해야 한다. IED 1 octet 2 octet 3 octet 메시지 그룹의 8Bit ID 총 메시지 개수 현재 메시지 index 본 표의 출처 : John Wiley & Sone Mobile Messaging Technologies and Services SMS,EMS and MMS
74
3 IEI IEIDL IED SMS-DELIVERY 7 6 5 4 3 2 1 3 octet을 사용해야 한다. 1 octet
(2) 16-Bit Reference Number 본 항목의 목적은 SMS 메시지가 긴 것은 짤라서 보낼 수 있다라는 방법이다. 바로 앞장 (1)과 의미는 같다. IEI 7 6 5 4 3 2 1 IEIDL 3 octet을 사용해야 한다. IED 1 octet 2 octet 3 octet 메시지 그룹의 16Bit ID 메시지 섞임 방지 16Bit기 때문에 유일한 ID의 범위가 커진다. 총 메시지 개수 현재 메시지 index 본 표의 출처 : John Wiley & Sone Mobile Messaging Technologies and Services SMS,EMS and MMS
75
3 IEI IEIDL IED SMS-DELIVERY 7 6 5 4 3 2 1 2 octet을 사용해야 한다. 1 octet
(3) Application port 16bit addressing IEI 7 6 5 4 3 2 1 IEIDL 2 octet을 사용해야 한다. IED 1 octet 2 octet 상위 비트 포트번호 하위 비트 포트번호 본 표의 출처 : John Wiley & Sone Mobile Messaging Technologies and Services SMS,EMS and MMS
76
3 SMS-DELIVERY NO IEI Length 내용 1 0x01(Special) 2 octet
VMS Noti, Store 메시지_ID + 총 메시지 개수 2 0x05 4 octet Application port addressing scheme, 16 Bit address 3 0x22 가변 회신번호 식별자(Reply Address Element) 4 0x40 5 octet LMS 응용서비스 식별자 5 0x41 8 octet LMS 인증 정보 6 0x42 LMS 데이터 크기 7 0x43 1 octet Pull 지시자 8 0x44 읽음 확인 식별자 9 0x70 0 octet UICC Security Header ( Command Packet Identifier ) 10 0x71 UICC Security Header ( Response Packet Identifier )
77
Reply Address Element IEI
3 SMS-DELIVERY KTF 규격 수신 PDU 7 6 5 4 3 2 1 Type KTF RP UDHI SRI 00 MMS MTI M Address Length OA : 수신 번호 Type of Address Value TP-PID 0x00 TP-DCS 0x00/0x84 TP-SCTS Time Stamp TP-U이 TP-UDHL Reply Address Element IEI O Identifier : 0x22 IEIDL Address-Length 회신 번호 TP-UD
78
3 SMS-DELIVERY 3.2.11 KTF 사서함 착신 알림 메시지 PDU 7 6 5 4 3 2 1 Type KTF RP
Type KTF RP UDHI SRI 00 MMS MTI M Address Length OA : 수신 번호 Type of Address Value TP-PID 0x00 / 0x48 / 0x5F TP-DCS 0x0C TP-SCTS Time Stamp TP-UDL 0x06 / 0x07+Reply Address TP-UDHL UDH 길이 : 0x04 + Reply Address IEI (Special SMS message indication) Indication : 0x01 IEI이 데이터 길이 : 0x02 IED Message Indication type and Storage VMS : 0x80 /0x00 영상메일 : 0x07 / 0x83 / 0x87 Message Count 총 메시지 수 (Binary 값) IEI ( Reply Address Element ) O Indication : 0x22 IEIDL Address-Length 회신 번호 TP-UD 신규 메시지 수(binary 값) (투폰 서비스:신규 메시지 수 앞에 0x0F의 구분자가 올수 있음)
79
RIL Class 4 SMS-DELIVERY-REPORT 4.1 메시지 수신에 대한 발송 리포트 구조
ReceiverThread (RIL Receiver) Run() RIL Class 요청에 의한 응답 Response solicited 1 요청하지 않은 응답 Response Unsolicited sendBroadcast() 새로운 메시지가 도착 했다는 상수 해당 메시지를 Broadcast 한다. 2 RIL_UNSOL_RESPONSE_NEW_SMS 7 ACTION : Intents.SMS_RECEIVED_ACTION Extra : PDU 데이타 3 4 !!! 6번 전에서 고려해야 할 사항 !!! DELIVERY REPORT 를 발송하기 전에 현재 단말에 여유공간이 존재하는지 확인해야 한다. 만일 부족 시에는 에러를 리턴 해야 한다. 안드로이드에서는 고려하지 않고 있다. string 형 데이타 파싱 SmsMessage Data SMSDispatcher : EVENT_NEW_SMS 실행 Handler 5 acknowledgeLastIncomingSMS() 발신측에 메시지를 잘 받았다는 SMS 발송 6 SMS DELIVERY REPORT
80
4 Modem RIL SMS-DELIVERY-REPORT 4.1 메시지 수신에 대한 발송 리포트 구조 6
안드로이드에서는 Modem AT CMD Local Socket AT CMD RIL 6 RIL_REQUEST_SMS_ACKNOWLEDGE SMS-DELIVERY-REPORT 발송
81
4 SMS-DELIVERY-REPORT Qualcomm에서는
82
4 SMS-DELIVERY-REPORT 4.2 발신 데이타 생성 4.2.1 SMS-DELIVERY-REPORT PDU 구조
83
4 SMS-DELIVERY-REPORT MTI ● 1 octet FCS ● PI ● PID DCS UDL Integer
Message Type Indicator UDHI User Data Header Indicator FCS Failure CauSe PI Parameter Indicator PID Protocol Identifier DCS Data Coding Scheme UDL User Data Length UD User Data MTI ● 1 octet FCS ● PI ● PID DCS UDL Integer UD GSM 7Bit 최대 글자수 160 UCS2 16Bit 최대 글자수 140 negative 시
84
5 SMS-STATUS-REPORT 5.1 수신 데이타 파싱 5.1.1 SMS-STATUS PDU 구조
85
5 SMS-STATUS-REPORT SCA 2-12 octets MTI ● 1 octet MR ● RA ● SCTS ●
Service Center Address MTI Message Type Indicator UDHI User Data Header Indicator SRQ Status Report Qualifier MMS More Messages to Send MR Message Reference RA Recipient Address SCTS Service Center Time Stamp DT Discharge Time ST STatus PI Parameter Indicator PID Protocol Identifier DCS Data Coding Scheme UDL User Data Length UD User Data SCA 2-12 octets MTI ● 1 octet MR ● RA ● SCTS ● 7 octets DT ● ST PI PID DCS UDL Integer UD GSM 7Bit 최대 글자수 160 UCS2 16Bit 최대 글자수 140
86
5 SMS-STATUS-REPORT SCA 2-12 octets MTI ● 1 octet MR ● RA ● SCTS ●
메시지를 전달해준 서비스 센터의 주소가 이다 주소 정보에 대한 설명은 앞장 Destination Address 파트 에서 상세히 설명 하였다. (참조바람) SCA 2-12 octets MTI ● 1 octet MR ● RA ● SCTS ● 7 octets DT ● ST PI PID DCS UDL Integer UD GSM 7Bit 최대 글자수 160 UCS2 16Bit 최대 글자수 140
87
5 SMS-STATUS-REPORT SCA 2-12 octets MTI ● 1 octet MR ● RA ● SCTS ●
DT ● ST PI PID DCS UDL Integer UD GSM 7Bit 최대 글자수 160 UCS2 16Bit 최대 글자수 140 7 6 5 4 3 2 1 사용 안함 UDHI SRQ ● MMS ● MTI ●
88
5 SMS-STATUS-REPORT 7 6 5 4 3 2 1 SRQ ● MMS ● MTI ● 5.1.3.1 MTI 항목 파싱
Message Type Indicator 메시지의 타입을 말한다. 상세한 내용은 앞장 참조. 7 6 5 4 3 2 1 사용 안함 UDHI SRQ ● MMS ● MTI ● 안드로이드에서 설정 값 2 Bit 메시지 타입 전송 방향 설명 0 0 SMS-DELIVER SMSC MS 새로운 메시지를 받았을 경우 1 0 SMS-STATUS-REPORT 내가 보낸 메시지를 목적 단말에서 잘 받았다고 보낸 수신 메시지
89
5 SMS-STATUS-REPORT 7 6 5 4 3 2 1 SRQ ● MMS ● MTI ● 5.1.3.2 UDHI 파싱
User Data Header Indicator User Data Header가 포함 되어 있는지 여부 앞장의 상세 설명 참조 7 6 5 4 3 2 1 사용 안함 UDHI SRQ ● MMS ● MTI ● 1 Bit 설명 UDH 가 존재하지 않는다. 1 UDH 가 존재한다.
90
5 정확한 의미 분석 필요 SMS-STATUS-REPORT 7 6 5 4 3 2 1 SRQ ● MMS ● MTI ●
Status Report Qualifier 내가 보낸 메시지 (SMS-SUBMIT) 에 대한 응답 체크 7 6 5 4 3 2 1 사용 안함 UDHI SRQ ● MMS ● MTI ● 안드로이드에서 설정 값 1 Bit 의미 내가 보낸 메시지를 목적지에서 잘 받았다는 의미로 0을 셋팅한다. 즉 SMS-SUBMIT을 위한 것이다. 1 예) 보낸것이 완료되지 않았다. 정확한 의미 분석 필요
91
5 SMS-STATUS-REPORT 7 6 5 4 3 2 1 SRQ ● MMS ● MTI ● 5.1.3.4 MMS 파싱 MMS
More Messages to Send 망에서(서비스센터) 더 이어서 더 보낼 메시지가 있는 경우 셋팅 된다. 7 6 5 4 3 2 1 사용 안함 UDHI SRQ ● MMS ● MTI ● 안드로이드에서 설정 값 1 Bit 설명 망에서 더 보낼 메시지가 없다. 1 망에서 더 보낼 메시지가 있다.
92
5 SMS-STATUS-REPORT SCA 2-12 octets MTI ● 1 octet MR ● RA ● SCTS ●
Message Reference 내가 발송했던 SMS-SUBMIT에 대한 응답 메시지 인지 확인하는 메시지에 대한 ID 값이다. SCA 2-12 octets MTI ● 1 octet MR ● RA ● SCTS ● 7 octets DT ● ST PI PID DCS UDL Integer UD GSM 7Bit 최대 글자수 160 UCS2 16Bit 최대 글자수 140
93
5 MR:0x0001 MR:0x0001 SMS-STATUS-REPORT 1 2 2 1
94
5 SMS-STATUS-REPORT SCA 2-12 octets MTI ● 1 octet MR ● RA ● SCTS ●
Recipient Address 수령인 주소 정보를 말한다. 즉 처음 내가 보낸 SMS-SUBMIT에서 목적지 주소에 해당한다. SCA 2-12 octets MTI ● 1 octet MR ● RA ● SCTS ● 7 octets DT ● ST PI PID DCS UDL Integer UD GSM 7Bit 최대 글자수 160 UCS2 16Bit 최대 글자수 140
95
5 SMS-STATUS-REPORT 수신(MS)의 주소가 RA에 들어간다.
96
5 SMS-STATUS-REPORT SCA 2-12 octets MTI ● 1 octet MR ● RA ● SCTS ●
Service Center Time Stamp SC단에서 SMS-STATUS-REPORT 를 보내기 전 SC단에서 메시지 발송 시간을 남긴다. SCA 2-12 octets MTI ● 1 octet MR ● RA ● SCTS ● 7 octets DT ● ST PI PID DCS UDL Integer UD GSM 7Bit 최대 글자수 160 UCS2 16Bit 최대 글자수 140 SC에 도착한 시간 남김
97
5 SMS-STATUS-REPORT SCA 2-12 octets MTI ● 1 octet MR ● RA ● SCTS ●
5.1.7 DT 항목 파싱 DT Discharge Time 처음에 보낸 SMS-SUBMIT 메시지가 목적지에 도달한 시간정보 이다. SCA 2-12 octets MTI ● 1 octet MR ● RA ● SCTS ● 7 octets DT ● ST PI PID DCS UDL Integer UD GSM 7Bit 최대 글자수 160 UCS2 16Bit 최대 글자수 140 도착한 시간 남김
98
5 SMS-STATUS-REPORT SCA 2-12 octets MTI ● 1 octet MR ● RA ● SCTS ●
뭘까요? (전달 되었다. 전달되는 중이다. 기타 목적지의 상태 정보 가 아닐까?) SCA 2-12 octets MTI ● 1 octet MR ● RA ● SCTS ● 7 octets DT ● ST PI PID DCS UDL Integer UD GSM 7Bit 최대 글자수 160 UCS2 16Bit 최대 글자수 140
99
5 SMS-STATUS-REPORT SCA 2-12 octets MTI ● 1 octet MR ● RA ● SCTS ●
5.1.9 PI 항목 파싱 PI Parameter Indicator 본 정보는 PI 다음에 오는 PID/DCS/UDL 정보가 존재 하는지에 대한 정보를 나타낸다. SCA 2-12 octets MTI ● 1 octet MR ● RA ● SCTS ● 7 octets DT ● ST PI PID DCS UDL Integer UD GSM 7Bit 최대 글자수 160 UCS2 16Bit 최대 글자수 140
100
5 SMS-STATUS-REPORT 7 6 5 4 3 2 1 SCA 2-12 octets MTI ● 1 octet MR ●
? 예약 비트 UDL 유무 DCS 유무 PID 유무 SCA 2-12 octets MTI ● 1 octet MR ● RA ● SCTS ● 7 octets DT ● ST PI PID DCS UDL Integer UD GSM 7Bit 최대 글자수 160 UCS2 16Bit 최대 글자수 140 1 Bit UDL 정보 미존재 1 존재 1 Bit DCS 정보 미존재 1 존재 1 Bit PID 정보 미존재 1 존재 본 표의 출처 : John Wiley & Sone Mobile Messaging Technologies and Services SMS,EMS and MMS
101
5 SMS-STATUS-REPORT SCA 2-12 octets MTI ● 1 octet MR ● RA ● SCTS ●
PID 항목 파싱 PID Protocol Identifier 해당 Protocol의 용도에 해당한다. SCA 2-12 octets MTI ● 1 octet MR ● RA ● SCTS ● 7 octets DT ● ST PI PID DCS UDL Integer UD GSM 7Bit 최대 글자수 160 UCS2 16Bit 최대 글자수 140 본 표의 출처 : John Wiley & Sone Mobile Messaging Technologies and Services SMS,EMS and MMS
102
5 SMS-STATUS-REPORT SCA 2-12 octets MTI ● 1 octet MR ● RA ● SCTS ●
DCS 항목 파싱 DCS Data Coding Scheme 데이터 코딩 방식을 의미한다. 앞장에 상세 설명을 참조 바람. SCA 2-12 octets MTI ● 1 octet MR ● RA ● SCTS ● 7 octets DT ● ST PI PID DCS UDL Integer UD GSM 7Bit 최대 글자수 160 UCS2 16Bit 최대 글자수 140
103
5 SMS-STATUS-REPORT SCA 2-12 octets MTI ● 1 octet MR ● RA ● SCTS ●
UDL 항목 파싱 UDL User Data Length 실질적인 메시지 내용의 글자수 정보이다. 앞장에 상세 설명 참조. SCA 2-12 octets MTI ● 1 octet MR ● RA ● SCTS ● 7 octets DT ● ST PI PID DCS UDL Integer UD GSM 7Bit 최대 글자수 160 UCS2 16Bit 최대 글자수 140
104
5 SMS-STATUS-REPORT SCA 2-12 octets MTI ● 1 octet MR ● RA ● SCTS ●
UD 파트 파싱 UD User Data 실질적인 메시지 내용이다. 앞장에서 설명 하였듯이 UD 내에는 User Data Header가 존재 할 수 있다. SCA 2-12 octets MTI ● 1 octet MR ● RA ● SCTS ● 7 octets DT ● ST PI PID DCS UDL Integer UD GSM 7Bit 최대 글자수 160 UCS2 16Bit 최대 글자수 140
105
6 SMS-COMMAND 6.1 발신 데이타 생성 6.1.1 SMS-COMMAND PDU 구조
106
7 SMS 수신 확인 7.1 발신 수신 확인 MTI ● MR ● DA ● PID ● DCS ● VP UDL ●
7.1.1 PDU 정보 작성 MTI ● 1 octet MR ● Integer DA ● 2-12 octet 보안 PID ● DCS ● VP 1/7 octet UDL ● UD
107
7 SMS 수신 확인 7.2 수신 수신 확인 수신확인에 대한 수신 메시지는 일반 메시지로 받는다. 그러므로 특별히 고려하지 않아도 된다.
108
8 SMS 읽음 확인 8.1 발신 읽음 확인 MTI ● MR ● DA ● PID ● DCS ● VP UDL ●
8.1.1 PDU 정보 작성 MTI ● 1 octet MR ● Integer DA ● 2-12 octet 보안 PID ● DCS ● VP 1/7 octet UDL ● UD
109
8 IEI (0x44) IEIDL IED SMS 읽음 확인 8.2 수신 읽음 확인 SCA MTI ● OA ● PID ●
8.2.1 PDU 정보 파싱 SCA 2-12 octets MTI ● 1 octet OA ● PID ● 0x00 DCS ● SCTS ● 7 octets UDL Integer UD IEI 식별자 IEI (0x44) 7 6 5 4 3 2 1 IEIDL 1 octet을 사용해야 한다. IED 7 6 5 4 3 2 1 SMSC에서 관리되는 ID 값이다. 메시지 내용이 GSM7Bit인 경우 DCS를 0x00으로 셋팅 하고 KSC !!! 읽음 확인에 대한 응답 : 발신번호 앞에 “ ##431 “ 을 추가한다.
Similar presentations