1 SMS 1 1 SMS Protocol Stack MS













































































































- Slides: 109


1 SMS 구조 1. 1 SMS Protocol Stack MS SMSC Mobile Station Service Center SM-AL Application layer 수신 메시지 보여줌 발신메시지 작성 SM-TL Transfer layer TPDU를 구성 SMS-GMSC Gayeway MSC SMS-IWMSC Mobile Switching Center TPDU를 구성 Inter Working MSC SM-RL Relay layer TPDU Type 메시지 전달 SM-LL Link layer 물리적인 메시지 전달 망구조와 관련 박 성 근(010 -9985 -2539) 무단 도용을 금합니다. (^^; ) 2


1 SMS 구조 1. 3 Short Message Relay Layer SM-TL Transfer layer TPDU를 구성 MS SMSC Mobile Station TL 이 RL 에게 서비스를 받음 Service Center 메시지 발송 ( MO ) 메시지 수신 ( MT ) SM-RL Relay layer TPDU Type 메시지 전달 박 성 근(010 -9985 -2539) 무단 도용을 금합니다. (^^; ) 4


1 SMS 구조 SM-RP 에서 구성되는 RP-Message 흐름도 SM-TL SM-RL SM-TL Transfer layer Relay layer Transfer layer TPDU를 구성 TPDU Type TPDU를 구성 메시지 전달 SMS 발송 SM-RL-DATA-Req MO SM-RL-REPORT-Ind CM SMS-SUBMIT CM RP-DATA RP-ACK 메시지 전달 SM-RL-DATA-Ind SMS-SUBMIT SM-RL-REPORT-Req message SM-RL-DATA-Req SMS 수신 SM-RL-DATA-Ind RP-DATA SMS-DELIVER SM-RL-REPORT-Req MT message SMS-DELIVERREPORT SMMA SM-RL-MEMORYAVAILABLE-Req message RP-DATA SM-RL-REPORT-Ind SMS-DELIVERREPORT RP-SMMA SM-RL-MEMORYAVAILABLE-Ind SM-RL-REPORT-Req SM-RL-REPORT-Ind 박 성 근(010 -9985 -2539) 무단 도용을 금합니다. (^^; ) RP-ACK / RP-ERROR 6


2 SMS-SUBMIT 1. 1 메시지 발송 간략 구조 목적지 주소 : destination. Address 서비스센터(SC) 주소 : sc. Address 메시지 내용 : text (UCS타입의 string) Sms. Message. Sender Sms. Manager PDU Ril 발송 박 성 근(010 -9985 -2539) 무단 도용을 금합니다. (^^; ) 8










1 SMS-SUBMIT 1. 2. 3 DA 작성 ● DA Destination Address TOA Type Of Number + Numbering Plan Identification 목적지에 대한 주소 Type of number MTI ● 1 octet MR ● Integer DA ● 2 -12 octet 7 6 5 1 4 3 2 1 0 주소의 크기 Type of number Numbering Plan Identification 국제 번호일 경우 (+가 붙을 때) 2 1 0 0 Numbering Plan Identification 0 1 일반적인 전화번호일 때 0 0 0 3 … 주소 값 n 주소 표현의 구조 ( 안드로이드의 TOA 셋팅 ) 본 표의 출처 : John Wiley & Sone Mobile Messaging Technologies and Services SMS, EMS and MMS 박 성 근(010 -9985 -2539) 무단 도용을 금합니다. (^^; ) 18

1 SMS-SUBMIT 1. 2. 4 PID 작성 ● 해당 Protocol의 용도에 해당한다. MTI ● 1 octet MR ● Integer DA ● 2 -12 octet PID ● 1 octet PID Protocol IDentifier SME Short Message Entities SMSC Short Message Service Center 7 6 5 4 3 2 1 0 0 0 0 0 안드로이드는 발송 시 모두 0으로 셋팅한다. 모두 0이란 의미는 일반적인 용도 즉 SME SMSC 간 메시지를 주고 받는 Protocol이란 뜻이다. Mobile Station 박 성 근(010 -9985 -2539) 무단 도용을 금합니다. (^^; ) Service Center 19

1 SMS-SUBMIT 본 표의 출처 : John Wiley & Sone Mobile Messaging Technologies and Services SMS, EMS and MMS 박 성 근(010 -9985 -2539) 무단 도용을 금합니다. (^^; ) 20

1 SMS-SUBMIT 본 표의 출처 : John Wiley & Sone Mobile Messaging Technologies and Services SMS, EMS and MMS 박 성 근(010 -9985 -2539) 무단 도용을 금합니다. (^^; ) 21

1 SMS-SUBMIT Service Type PID 내용 메시지에서 관리 SMS 0 x 00 일반 SMS O V 2 MN 0 x 48 음성/영상 메시지 O Platform 0 x 4 D Platform callback O Browser 0 x 4 E URL Callback O LMS 0 x 4 F LMS 서비스 O LBS 0 x 51 LBS 서비스 LBS에서 관리 CBS 0 x 52 CBS 서비스(사용안함) 0 x 53 Port address에 의한 서비스 확장용 PID OTA-DM 0 x 7 D OTA-Device Management USIM 0 x 7 F USIM UPDATE 사용안함 ? DM에서 관리 OTA 본 표의 출처 : John Wiley & Sone Mobile Messaging Technologies and Services SMS, EMS and MMS 박 성 근(010 -9985 -2539) 무단 도용을 금합니다. (^^; ) 22



1 SMS-SUBMIT 00 xx 7 안드로이드 설정 값 6 Coding group 0 0 5 4 text 압축 Class Flag 0 0 3 2 Character Set (문자 비트 수) 0 0 1 0 Message Class 0 0 1 0 GSM 7 Bit 00 xx 7 만일 UD 가 UCS 2(16비트)로 구성되어 있는 경우 안드로이드 설정 값 6 Coding group 0 0 5 4 text 압축 Class Flag 0 0 3 2 Character Set (문자 비트 수) 1 0 Message Class 1 1 UCS 2 16 Bit Class Flag가 0이므로 Message Class는 의미가 없다. 00 xx 7 만일 발송하는 메시지가 순수 SMS가 아닌 DATA 전달이 목적인 SMS인 경우 6 Coding group 0 0 5 4 text 압축 Class Flag 0 0 3 2 Character Set (문자 비트 수) 0 1 1 0 Message Class 0 0 8 Bit 박 성 근(010 -9985 -2539) 무단 도용을 금합니다. (^^; ) 25

1 SMS-SUBMIT GSM 7 Bit 기본 Alphabet extension table 본 표의 출처 : 3 G TS 23. 038 V 3. 36. 0 박 성 근(010 -9985 -2539) 무단 도용을 금합니다. (^^; ) 26




1 SMS-SUBMIT Absolute Format 방식의 VP 값 아래의 예) 1909년 12월 23일 9시 53분 42초 GMT +4 까지 발송되지 않으면 지워라. 7 Octet 1 Octet 2 Octet 3 Octet 4 Octet 5 Octet 6 6 5 4 3 년도 (0~9자리) 0 0 0 2 0 1 1 0 0 0 0 1 1 0 0 0 1 23일 0 9시 0 0 0 53분 0 1 42초 초 (00 ~ 90자리) 0 0 1 TZ Time. Zon (0~9자리) Octet 7 12월 분 (00 ~ 90자리) 초 (0~9자리) 0 0 시 (00 ~ 90자리) 분 (0~9자리) 0 0 일 (00 ~ 90자리) 시 (0~9자리) 1 0 1909년 월 (00 ~ 90자리) 일 (0~9자리) 0 0 년도 (00 ~ 90자리) 월 (0~9자리) 0 1 박 성 근(010 -9985 -2539) 무단 도용을 금합니다. (^^; ) 0 0 GMT +4 시간 Time. Zon (00~10자리) +=0 -=1 0 0 0 30


1 SMS-SUBMIT 1. 2. 7 UD 작성 UDL User Data 실질적인 메시지 내용이다. MTI ● 1 octet MR ● Integer DA ● 2 -12 octet PID ● 1 octet DCS ● 1 octet VP 1/7 octet UDL ● Integer GSM 7 Bit 최대 글자수 160 UD UCS 2 16 Bit 최대 글자수 140 UD MTI MR DA PID DCS 박 성 근(010 -9985 -2539) 무단 도용을 금합니다. (^^; ) VP UDL 32

1 SMS-SUBMIT 1. 2. 8 User Data Header 가 포함된 UD 작성 UDL User Data UD에 메시지 내용의 헤더를 말한다. 헤더를 통해서 여러 가지 기능을 수행 할 수 있고 메시지의 특성을 변경할 수 있다. 1 octet MTI ● UDHI 비트가 설정되어 있다면 MR ● Integer DA ● 2 -12 octet PID ● 1 octet DCS ● 1 octet VP 1/7 octet UDL ● Integer User Header 정보가 UD에 포함되어 있다는 뜻이다. GSM 7 Bit 최대 글자수 160 UD UCS 2 16 Bit 최대 글자수 140 UD UDHL IEIDL IED … UDHL IEIDL IED Fill data Short Message (7 Bit or 8 Bit or 16 Bit) 여기까지가 UDH 이다. 박 성 근(010 -9985 -2539) 무단 도용을 금합니다. (^^; ) 33

1 SMS-SUBMIT 1. 2. 8. 1 User Data Header Element UD에는 여러 개의 Element가 들어 간다. 각 Element는 특정 의미를 가지고 정보를 포함한다. UDL User Data UDHL User Data Header Length IEI Information Element Identifier IEIDL Information Element Data Length IED Information Element Data SM ? IEIDL IED UD UDHL IEIDL IED … IEI Fill data SM (7 Bit or 8 Bit or 16 Bit) 하나의 Element ( 1 ) UDHL 이란? UDH의 전체 Octet수를 말한다. UD UDHL 1 octet IEIDL IED … IEIDL IED Fill data SM (7 Bit or 8 Bit or 16 Bit) 전체의 octet 수 박 성 근(010 -9985 -2539) 무단 도용을 금합니다. (^^; ) 34


1 SMS-SUBMIT IEI 의 종류 본 표의 출처 : John Wiley & Sone Mobile Messaging Technologies and Services SMS, EMS and MMS 박 성 근(010 -9985 -2539) 무단 도용을 금합니다. (^^; ) 36

1 SMS-SUBMIT 본 표의 출처 : John Wiley & Sone Mobile Messaging Technologies and Services SMS, EMS and MMS 박 성 근(010 -9985 -2539) 무단 도용을 금합니다. (^^; ) 37

1 SMS-SUBMIT KTFT 스팩의 IEI 의 종류 NO IEI Length 내용 1 0 x 01(Special) 2 octet VMS Noti, Store 메시지_ID + 총 메시지 개수 2 0 x 05 4 octet Application port addressing scheme, 16 Bit address 3 0 x 22 가변 4 0 x 40 5 octet LMS 응용서비스 식별자 5 0 x 41 8 octet LMS 인증 정보 6 0 x 42 2 octet LMS 데이터 크기 7 0 x 43 1 octet Pull 지시자 8 0 x 44 1 octet 읽음 확인 식별자 9 0 x 70 0 octet UICC Security Header ( Command Packet Identifier ) 10 0 x 71 0 octet UICC Security Header ( Response Packet Identifier ) 박 성 근(010 -9985 -2539) 무단 도용을 금합니다. (^^; ) 회신번호 식별자(Reply Address Element) 38

1 SMS-SUBMIT 스팩의 IEI 0 x 22 에 대해서 IEI 0 x 22 Length 내용 가변 회신번호 식별자(Reply Address Element) IEI 7 6 5 4 3 2 1 0 0 0 1 0 IEIDL 2 -12 octets 을 사용해야 한다. IED 2 octet ~ 12 octet 회신번호 박 성 근(010 -9985 -2539) 무단 도용을 금합니다. (^^; ) 39

1 SMS-SUBMIT IED 2 octet ~ 12 octet 회신번호 USIM : MSISDN 참조 (회신번호) 박 성 근(010 -9985 -2539) 무단 도용을 금합니다. (^^; ) 40


1 SMS-SUBMIT ( 3 ) IEDL 이란? IEIDL IED의 octet의 수를 나타낸다. UD UDHL IEI이 1 octet IED … IEIDL IED Fill data SM (7 Bit or 8 Bit or 16 Bit) IED octet의 수 박 성 근(010 -9985 -2539) 무단 도용을 금합니다. (^^; ) 42


1 SMS-SUBMIT ( 5 ) Fill data 란? UDH는 정확히 octet단위로 Align이 맞아야 한다. 하지만 IED character set이 7 Bit인 경우 8 Bit 단위의 octet에 정확히 맞아 떨어지지 않을 수 있다. 이런 경우 Fill Data에 빈 데이터를 더 추가하여 8 bit Align을 맞춘다. UD UDHL IEIDL IED … IEIDL Fill data IED SM (7 Bit or 8 Bit or 16 Bit) octet(8 Bit) 단위 크기 : 예) 만일 124 Bit인 경우 1 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 15 octets 2 4 bit가 남음 3 4 bit +4 bit 4 1 2 3 4 5 6 7 8 박 성 근(010 -9985 -2539) 무단 도용을 금합니다. (^^; ) 9 10 11 12 13 14 15 16 정확히 16 octets 44

1 SMS-SUBMIT ( 6 ) SM 란? 실재 User Data가 들어 간다. UD UDHL IEIDL IED 박 성 근(010 -9985 -2539) 무단 도용을 금합니다. (^^; ) … IEIDL IED Fill data SM (7 Bit or 8 Bit or 16 Bit) 45

1 SMS-SUBMIT 1. 2. 9 KTF 규격 발송 PDU 7 6 5 4 RP UDHI SRR 3 VPF 2 RD 1 0 MTI Type KTF M TP-MR M Address Length M Type of Address M Value M TP-PID M 0 x 00 TP-DCS M 0 x 00/0 x 84 TP-VP O VPF=00 이면 필드 생략 TP-UDL M TP-UDHL M Reply Address Element IEI M IEIDL M Address-Length M Type of Address M Value O TP-UD O 박 성 근(010 -9985 -2539) 무단 도용을 금합니다. (^^; ) DA : 수신 번호 Indication : 0 x 22 회신 번호 46

2 SMS-SUBMIT-REPORT 2. 1 수신 데이타 파싱 2. 1. 1 SMS-SUBMIT-REPORT PDU 구조 박 성 근(010 -9985 -2539) 무단 도용을 금합니다. (^^; ) 47

2 SMS-SUBMIT-REPORT MTI ● 1 octet FCS ● 1 octet PI ● 1 octet SCTS ● 7 octets PID 1 octet DCS 1 octet UDL Integer UD negative 시 MTI Message Type Indicator UDHI User Data Header Indicator FCS Failure Cau. Se PI Parameter Indicator SCTS Service Center Time Stamp PID Protocol Identifier DCS Data Coding Scheme UDL User Data Length UD User Data GSM 7 Bit 최대 글자수 160 UCS 2 16 Bit 최대 글자수 140 박 성 근(010 -9985 -2539) 무단 도용을 금합니다. (^^; ) 48

3 SMS-DELIVERY 3. 1 메시지 수신 간략 구조 Receiver. Thread (RIL Receiver) RIL Class Run() 요청에 의한 응답 Response solicited 요청하지 않은 응답 1 Response Unsolicited send. Broadcast() 새로운 메시지가 도착 했다는 상수 2 RIL_UNSOL_RESPONSE_NEW_SMS 7 해당 메시지를 Broadcast 한다. ACTION : Intents. SMS_RECEIVED_ACTION Extra : PDU 데이타 3 string 형 데이타 4 파싱 Sms. Message Data SMSDispatcher : EVENT_NEW_SMS Handler 실행 5 !!! 6번 전에서 고려해야 할 사항 !!! DELIVERY REPORT 를 발송하기 전에 현재 단말에 여유공간이 존재하는지 확인해야 한다. 만일 부족 시에는 에러를 리턴 해야 한다. 안드로이드에서는 고려하지 않고 있다. acknowledge. Last. Incoming. SMS() 6 발신측에 메시지를 잘 받았다는 SMS 발송 SMS DELIVERY REPORT 박 성 근(010 -9985 -2539) 무단 도용을 금합니다. (^^; ) 49


3 SMS-DELIVERY SCA 2 -12 octets MTI ● 1 octet SCA 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 OA ● 2 -12 octets PID ● 1 octet DCS ● 1 octet SCTS ● 7 octets DCS Data Coding Scheme UDL Integer SCTS Service Center Time Stamp GSM 7 Bit 최대 글자수 160 UDL User Data Length UD User Data UD UCS 2 16 Bit 최대 글자수 140 박 성 근(010 -9985 -2539) 무단 도용을 금합니다. (^^; ) 51


3 SMS-DELIVERY 3. 2. 3 MTI 항목 파싱 SCA 2 -12 octets MTI ● 1 octet OA ● 2 -12 octets PID ● 1 octet DCS ● 1 octet SCTS ● 7 octets UDL Integer GSM 7 Bit 최대 글자수 160 UD UCS 2 16 Bit 최대 글자수 140 7 6 5 RP● UDHI SRI 0 1 1 박 성 근(010 -9985 -2539) 무단 도용을 금합니다. (^^; ) 4 3 1 MMS ● 사용 안함 0 2 0 0 0 MTI ● 0 1 53



3 SMS-DELIVERY 3. 2. 3. 3 UDHI 파싱 UDHI User Data Header Indicator User Data Header가 포함 되어 있는지 여부 앞장의 상세 설명 참조 7 6 5 RP● UDHI SRI 0 0 0 1 Bit 4 3 1 MMS ● 사용 안함 0 2 0 0 0 MTI ● 0 0 설명 0 UDH 가 존재하지 않는다. 1 UDH 가 존재한다. 박 성 근(010 -9985 -2539) 무단 도용을 금합니다. (^^; ) 56



3 SMS-DELIVERY 3. 2. 4 OA 파트 파싱 OA Originating Address 메시지를 발신한 MS의 주소가 이다. 주소 정보에 대한 설명은 앞장 Destination Address 파트에서 상세히 설명 하였다. (참조바람) SCA 2 -12 octets MTI ● 1 octet OA ● 2 -12 octets PID ● 1 octet DCS ● 1 octet SCTS ● 7 octets UDL Integer UD GSM 7 Bit 최대 글자수 160 UCS 2 16 Bit 최대 글자수 140 박 성 근(010 -9985 -2539) 무단 도용을 금합니다. (^^; ) 59

3 SMS-DELIVERY 3. 2. 5 PID 파트 파싱 PID Protocol IDentifier 해당 Protocol의 용도에 해당한다. SCA 2 -12 octets MTI ● 1 octet OA ● 2 -12 octets PID ● 1 octet DCS ● 1 octet SCTS ● 7 octets UDL Integer UD GSM 7 Bit 최대 글자수 160 UCS 2 16 Bit 최대 글자수 140 박 성 근(010 -9985 -2539) 무단 도용을 금합니다. (^^; ) 60

3 SMS-DELIVERY Service Type PID 내용 메시지에서 관리 SMS 0 x 00 일반 SMS O V 2 MN 0 x 48 음성/영상 메시지 O Platform 0 x 4 D Platform callback O Browser 0 x 4 E URL Callback O LMS 0 x 4 F LMS 서비스 O LBS 0 x 51 LBS 서비스 LBS에서 관리 CBS 0 x 52 CBS 서비스(사용안함) 0 x 53 Port address에 의한 서비스 확장용 PID OTA-DM 0 x 7 D OTA-Device Management USIM 0 x 7 F USIM UPDATE 박 성 근(010 -9985 -2539) 무단 도용을 금합니다. (^^; ) 사용안함 ? DM에서 관리 OTA 61

3 SMS-DELIVERY 3. 2. 6 DCS 파트 파싱 DCS Data Coding Scheme 데이터 코딩 방식을 의미한다. 앞장에 상세 설명을 참조 바람. SCA 2 -12 octets MTI ● 1 octet OA ● 2 -12 octets PID ● 1 octet DCS ● 1 octet SCTS ● 7 octets UDL Integer UD GSM 7 Bit 최대 글자수 160 UCS 2 16 Bit 최대 글자수 140 박 성 근(010 -9985 -2539) 무단 도용을 금합니다. (^^; ) 62







3 SMS-DELIVERY 3. 2. 7 SCTS 파트 파싱 SCTS Service Center Time Stamp MS 에서 메시지 발신 SMS-SUBMIT시 SC에 저장된 시간을 의미한다. SC에 도착한 시간 남김 SCA 2 -12 octets MTI ● 1 octet OA ● 2 -12 octets PID ● 1 octet DCS ● 1 octet SCTS ● 7 octets UDL Integer UD GSM 7 Bit 최대 글자수 160 UCS 2 16 Bit 최대 글자수 140 박 성 근(010 -9985 -2539) 무단 도용을 금합니다. (^^; ) 69

3 SMS-DELIVERY 3. 2. 8 UDL 파트 파싱 UDL User Data Length 실질적인 메시지 내용의 글자수 정보이다. 앞장에 상세 설명 참조. SCA 2 -12 octets MTI ● 1 octet OA ● 2 -12 octets PID ● 1 octet DCS ● 1 octet SCTS ● 7 octets UDL Integer UD GSM 7 Bit 최대 글자수 160 UCS 2 16 Bit 최대 글자수 140 박 성 근(010 -9985 -2539) 무단 도용을 금합니다. (^^; ) 70

3 SMS-DELIVERY 3. 2. 9 UD 파트 파싱 UD User Data 실질적인 메시지 내용이다. 앞장에서 설명 하였듯이 UD 내에는 User Data Header가 존재 할 수 있다. SCA 2 -12 octets MTI ● 1 octet OA ● 2 -12 octets PID ● 1 octet DCS ● 1 octet SCTS ● 7 octets UDL Integer UD GSM 7 Bit 최대 글자수 160 UCS 2 16 Bit 최대 글자수 140 박 성 근(010 -9985 -2539) 무단 도용을 금합니다. (^^; ) 71

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 박 성 근(010 -9985 -2539) 무단 도용을 금합니다. (^^; ) 72

3 SMS-DELIVERY (1) 8 -Bit Reference Number 본 항목의 목적은 SMS 메시지가 긴 것은 짤라서 보낼 수 있다라는 방법이다. IEI 7 6 5 4 3 2 1 0 0 0 0 0 IEIDL 3 octet을 사용해야 한다. IED 1 octet 2 octet 3 octet 메시지 그 룹의 8 Bit ID 총 메시지 개수 현재 메시 지 index 본 표의 출처 : John Wiley & Sone Mobile Messaging Technologies and Services SMS, EMS and MMS 박 성 근(010 -9985 -2539) 무단 도용을 금합니다. (^^; ) 73


3 SMS-DELIVERY (3) Application port 16 bit addressing IEI 7 6 5 4 3 2 1 0 0 0 1 0 1 IEIDL 2 octet을 사용해야 한다. IED 1 octet 2 octet 상위 비트 포트번호 하위 비트 포트번호 본 표의 출처 : John Wiley & Sone Mobile Messaging Technologies and Services SMS, EMS and MMS 박 성 근(010 -9985 -2539) 무단 도용을 금합니다. (^^; ) 75

3 SMS-DELIVERY NO IEI Length 내용 1 0 x 01(Special) 2 octet VMS Noti, Store 메시지_ID + 총 메시지 개수 2 0 x 05 4 octet Application port addressing scheme, 16 Bit address 3 0 x 22 가변 4 0 x 40 5 octet LMS 응용서비스 식별자 5 0 x 41 8 octet LMS 인증 정보 6 0 x 42 2 octet LMS 데이터 크기 7 0 x 43 1 octet Pull 지시자 8 0 x 44 1 octet 읽음 확인 식별자 9 0 x 70 0 octet UICC Security Header ( Command Packet Identifier ) 10 0 x 71 0 octet UICC Security Header ( Response Packet Identifier ) 회신번호 식별자(Reply Address Element) 박 성 근(010 -9985 -2539) 무단 도용을 금합니다. (^^; ) 76

3 SMS-DELIVERY 3. 2. 10 KTF 규격 수신 PDU 7 6 5 4 RP UDHI SRI 3 00 2 MMS 1 0 MTI Type KTF M Address Length M Type of Address M Value M TP-PID M 0 x 00 TP-DCS M 0 x 00/0 x 84 TP-SCTS M TP-U이 M TP-UDHL M Reply Address Element IEI O IEIDL O Address-Length O Type of Address O Value O TP-UD M 박 성 근(010 -9985 -2539) 무단 도용을 금합니다. (^^; ) OA : 수신 번호 Time Stamp Identifier : 0 x 22 회신 번호 77

3 SMS-DELIVERY 3. 2. 11 KTF 사서함 착신 알림 메시지 PDU 7 6 5 4 RP UDHI SRI 3 00 2 MMS 1 0 MTI Type KTF M Address Length M OA : 수신 번호 Type of Address M Value M TP-PID M 0 x 00 / 0 x 48 / 0 x 5 F TP-DCS M 0 x 0 C TP-SCTS M Time Stamp TP-UDL M 0 x 06 / 0 x 07+Reply Address TP-UDHL M UDH 길이 : 0 x 04 + Reply Address IEI (Special SMS message indication) M IEI이 M Indication : 0 x 01 데이터 길이 : 0 x 02 Message Indication type and Storage M VMS : 0 x 80 /0 x 00 영상메일 : 0 x 07 / 0 x 83 / 0 x 87 Message Count M 총 메시지 수 (Binary 값) IEI ( Reply Address Element ) O Indication : 0 x 22 IEIDL O Address-Length O Type of Address O Value O TP-UD M IED 박 성 근(010 -9985 -2539) 무단 도용을 금합니다. (^^; ) 회신 번호 신규 메시지 수(binary 값) (투폰 서비스: 신규 메시지 수 앞에 0 x 0 F의 구분자가 올수 있음) 78

4 SMS-DELIVERY-REPORT 4. 1 메시지 수신에 대한 발송 리포트 구조 Receiver. Thread (RIL Receiver) RIL Class Run() 요청에 의한 응답 Response solicited 요청하지 않은 응답 1 Response Unsolicited send. Broadcast() 새로운 메시지가 도착 했다는 상수 2 RIL_UNSOL_RESPONSE_NEW_SMS 7 해당 메시지를 Broadcast 한다. ACTION : Intents. SMS_RECEIVED_ACTION Extra : PDU 데이타 3 string 형 데이타 4 파싱 Sms. Message Data SMSDispatcher : EVENT_NEW_SMS Handler 실행 5 !!! 6번 전에서 고려해야 할 사항 !!! DELIVERY REPORT 를 발송하기 전에 현재 단말에 여유공간이 존재하는지 확인해야 한다. 만일 부족 시에는 에러를 리턴 해야 한다. 안드로이드에서는 고려하지 않고 있다. acknowledge. Last. Incoming. SMS() 6 발신측에 메시지를 잘 받았다는 SMS 발송 SMS DELIVERY REPORT 박 성 근(010 -9985 -2539) 무단 도용을 금합니다. (^^; ) 79

4 SMS-DELIVERY-REPORT 발송 4. 1 메시지 수신에 대한 발송 리포트 구조 안드로이드에서는 Modem AT CMD Local Socket AT CMD RIL 6 RIL_REQUEST_SMS_ACKNOWLEDGE SMS-DELIVERY-REPORT 발송 박 성 근(010 -9985 -2539) 무단 도용을 금합니다. (^^; ) 80

4 SMS-DELIVERY-REPORT Qualcomm에서는 박 성 근(010 -9985 -2539) 무단 도용을 금합니다. (^^; ) 81

4 SMS-DELIVERY-REPORT 4. 2 발신 데이타 생성 4. 2. 1 SMS-DELIVERY-REPORT PDU 구조 박 성 근(010 -9985 -2539) 무단 도용을 금합니다. (^^; ) 82

4 SMS-DELIVERY-REPORT MTI ● 1 octet FCS ● 1 octet PID 1 octet DCS 1 octet UDL Integer UD negative 시 MTI Message Type Indicator UDHI User Data Header Indicator FCS Failure Cau. Se PI Parameter Indicator PID Protocol Identifier DCS Data Coding Scheme UDL User Data Length UD User Data GSM 7 Bit 최대 글자수 160 UCS 2 16 Bit 최대 글자수 140 박 성 근(010 -9985 -2539) 무단 도용을 금합니다. (^^; ) 83


5 SMS-STATUS-REPORT SCA 2 -12 octets MTI ● 1 octet SCA 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 MR ● 1 octet RA ● 2 -12 octets SCTS ● 7 octets DT Discharge Time ST 1 octet ST STatus PI 1 octet PI Parameter Indicator PID 1 octet PID Protocol Identifier DCS 1 octet DCS Data Coding Scheme UDL Integer UDL User Data Length UD User Data UD GSM 7 Bit 최대 글자수 160 UCS 2 16 Bit 최대 글자수 140 박 성 근(010 -9985 -2539) 무단 도용을 금합니다. (^^; ) 85

5 SMS-STATUS-REPORT 5. 1. 2 SCA 항목 파싱 메시지를 전달해준 서비스 센터의 주소가 이다. 주소 정보에 대한 설명은 앞장 Destination Address 파트 에서 상세히 설명 하였다. (참조바람) SCA 2 -12 octets MTI ● 1 octet MR ● 1 octet RA ● 2 -12 octets SCTS ● 7 octets DT ● 7 octets ST 1 octet PID 1 octet DCS 1 octet UDL Integer UD GSM 7 Bit 최대 글자수 160 UCS 2 16 Bit 최대 글자수 140 박 성 근(010 -9985 -2539) 무단 도용을 금합니다. (^^; ) 86

5 SMS-STATUS-REPORT 5. 1. 3 MTI 항목 파싱 SCA 2 -12 octets MTI ● 1 octet MR ● 1 octet RA ● 2 -12 octets SCTS ● 7 octets DT ● 7 octets ST 1 octet PID 1 octet DCS 1 octet UDL Integer GSM 7 Bit 최대 글자수 160 UD UCS 2 16 Bit 최대 글자수 140 7 6 5 사용 안함 UDHI SRQ ● 0 1 1 박 성 근(010 -9985 -2539) 무단 도용을 금합니다. (^^; ) 4 3 1 MMS ● 사용 안함 0 2 0 0 0 MTI ● 0 1 87





5 SMS-STATUS-REPORT 5. 1. 4 MR 파싱 MR Message Reference 내가 발송했던 SMS-SUBMIT에 대한 응답 메시지 인지 확인하는 메시지에 대한 ID 값이다. SCA 2 -12 octets MTI ● 1 octet MR ● 1 octet RA ● 2 -12 octets SCTS ● 7 octets DT ● 7 octets ST 1 octet PID 1 octet DCS 1 octet UDL Integer UD GSM 7 Bit 최대 글자수 160 UCS 2 16 Bit 최대 글자수 140 박 성 근(010 -9985 -2539) 무단 도용을 금합니다. (^^; ) 92


5 SMS-STATUS-REPORT 5. 1. 5 RA 항목 파싱 RA Recipient Address 수령인 주소 정보를 말한다. 즉 처음 내가 보낸 SMS-SUBMIT에서 목적지 주소에 해당한다. SCA 2 -12 octets MTI ● 1 octet MR ● 1 octet RA ● 2 -12 octets SCTS ● 7 octets DT ● 7 octets ST 1 octet PID 1 octet DCS 1 octet UDL Integer UD GSM 7 Bit 최대 글자수 160 UCS 2 16 Bit 최대 글자수 140 박 성 근(010 -9985 -2539) 무단 도용을 금합니다. (^^; ) 94


5 SMS-STATUS-REPORT 5. 1. 6 SCTS 항목 파싱 SCTS Service Center Time Stamp SC단에서 SMS-STATUS-REPORT 를 보내기 전 SC단에서 메시지 발송 시간을 남긴다. SCA 2 -12 octets MTI ● 1 octet MR ● 1 octet RA ● 2 -12 octets SCTS ● 7 octets DT ● 7 octets ST 1 octet PID 1 octet DCS 1 octet UDL Integer UD SC에 도착한 시간 남김 GSM 7 Bit 최대 글자수 160 UCS 2 16 Bit 최대 글자수 140 박 성 근(010 -9985 -2539) 무단 도용을 금합니다. (^^; ) 96

5 SMS-STATUS-REPORT 5. 1. 7 DT 항목 파싱 DT Discharge Time 처음에 보낸 SMS-SUBMIT 메시지가 목적지에 도달한 시간정보 이다. SCA 2 -12 octets MTI ● 1 octet MR ● 1 octet RA ● 2 -12 octets SCTS ● 7 octets DT ● 7 octets ST 1 octet PID 1 octet DCS 1 octet UDL Integer UD 도착한 시간 남김 GSM 7 Bit 최대 글자수 160 UCS 2 16 Bit 최대 글자수 140 박 성 근(010 -9985 -2539) 무단 도용을 금합니다. (^^; ) 97

5 SMS-STATUS-REPORT 5. 1. 8 ST 항목 파싱 ST STatus 뭘까요? (전달 되었다. 전달되는 중이다. 기타 목적지의 상태 정보 가 아닐까? ) SCA 2 -12 octets MTI ● 1 octet MR ● 1 octet RA ● 2 -12 octets SCTS ● 7 octets DT ● 7 octets ST 1 octet PID 1 octet DCS 1 octet UDL Integer UD GSM 7 Bit 최대 글자수 160 UCS 2 16 Bit 최대 글자수 140 박 성 근(010 -9985 -2539) 무단 도용을 금합니다. (^^; ) 98

5 SMS-STATUS-REPORT 5. 1. 9 PI 항목 파싱 PI Parameter Indicator 본 정보는 PI 다음에 오는 PID/DCS/UDL 정보가 존재 하는지에 대한 정보를 나타낸다. SCA 2 -12 octets MTI ● 1 octet MR ● 1 octet RA ● 2 -12 octets SCTS ● 7 octets DT ● 7 octets ST 1 octet PID 1 octet DCS 1 octet UDL Integer UD GSM 7 Bit 최대 글자수 160 UCS 2 16 Bit 최대 글자수 140 박 성 근(010 -9985 -2539) 무단 도용을 금합니다. (^^; ) 99

5 SMS-STATUS-REPORT 7 6 5 ? 4 3 예약 비트 0 0 0 2 1 0 UDL 유무 DCS 유무 PID 유무 1 1 1 0 SCA 2 -12 octets MTI ● 1 octet 1 Bit UDL 정보 1 Bit DCS 정보 1 Bit PID 정 보 MR ● 1 octet 0 미존재 RA ● 2 -12 octets 1 존재 SCTS ● 7 octets DT ● 7 octets ST 1 octet PID 1 octet DCS 1 octet UDL Integer UD GSM 7 Bit 최대 글자수 160 UCS 2 16 Bit 최대 글자수 140 본 표의 출처 : John Wiley & Sone Mobile Messaging Technologies and Services SMS, EMS and MMS 박 성 근(010 -9985 -2539) 무단 도용을 금합니다. (^^; ) 100

5 SMS-STATUS-REPORT 5. 1. 10 PID 항목 파싱 PID Protocol Identifier 해당 Protocol의 용도에 해당한다. SCA 2 -12 octets MTI ● 1 octet MR ● 1 octet RA ● 2 -12 octets SCTS ● 7 octets DT ● 7 octets ST 1 octet PID 1 octet DCS 1 octet UDL Integer UD GSM 7 Bit 최대 글자수 160 UCS 2 16 Bit 최대 글자수 140 본 표의 출처 : John Wiley & Sone Mobile Messaging Technologies and Services SMS, EMS and MMS 박 성 근(010 -9985 -2539) 무단 도용을 금합니다. (^^; ) 101

5 SMS-STATUS-REPORT 5. 1. 11 DCS 항목 파싱 DCS 데이터 코딩 방식을 의미한다. 앞장에 상세 설명을 참조 바람. SCA 2 -12 octets MTI ● 1 octet MR ● 1 octet RA ● 2 -12 octets SCTS ● 7 octets DT ● 7 octets ST 1 octet PID 1 octet DCS 1 octet UDL Integer UD Data Coding Scheme GSM 7 Bit 최대 글자수 160 UCS 2 16 Bit 최대 글자수 140 박 성 근(010 -9985 -2539) 무단 도용을 금합니다. (^^; ) 102

5 SMS-STATUS-REPORT 5. 1. 12 UDL 항목 파싱 UDL User Data Length 실질적인 메시지 내용의 글자수 정보이다. 앞장에 상세 설명 참조. SCA 2 -12 octets MTI ● 1 octet MR ● 1 octet RA ● 2 -12 octets SCTS ● 7 octets DT ● 7 octets ST 1 octet PID 1 octet DCS 1 octet UDL Integer UD GSM 7 Bit 최대 글자수 160 UCS 2 16 Bit 최대 글자수 140 박 성 근(010 -9985 -2539) 무단 도용을 금합니다. (^^; ) 103

5 SMS-STATUS-REPORT 5. 1. 13 UD 파트 파싱 UD User Data 실질적인 메시지 내용이다. 앞장에서 설명 하였듯이 UD 내에는 User Data Header가 존재 할 수 있다. SCA 2 -12 octets MTI ● 1 octet MR ● 1 octet RA ● 2 -12 octets SCTS ● 7 octets DT ● 7 octets ST 1 octet PID 1 octet DCS 1 octet UDL Integer UD GSM 7 Bit 최대 글자수 160 UCS 2 16 Bit 최대 글자수 140 박 성 근(010 -9985 -2539) 무단 도용을 금합니다. (^^; ) 104


7 SMS 수신 확인 7. 1 발신 수신 확인 7. 1. 1 PDU 정보 작성 MTI ● 1 octet MR ● Integer DA ● 2 -12 octet PID ● 1 octet DCS ● 1 octet VP 1/7 octet UDL ● Integer 보안 UD 박 성 근(010 -9985 -2539) 무단 도용을 금합니다. (^^; ) 106


8 SMS 읽음 확인 8. 1 발신 읽음 확인 8. 1. 1 PDU 정보 작성 MTI ● 1 octet MR ● Integer DA ● 2 -12 octet PID ● 1 octet DCS ● 1 octet VP 1/7 octet UDL ● Integer 보안 UD 박 성 근(010 -9985 -2539) 무단 도용을 금합니다. (^^; ) 108

Sms protocol stack
Stack smashing vs buffer overflow
Stack and stack pointer
Stack 6
Php bramka sms
Sms based poll monitoring system
Protocol
Ranap protocol stack
Bluetooth protocol
Randy marchany
Dsrc protocol stack
Wap protocol stack
Gsm protocol stack
Ssh protocol stack
Tr069 protocol stack
Ssh protocol stack
Restconf protocol stack
Bluetooth protocol stack
Ppp protocol stack
Stacks and queues in python
Radvision sip stack
Ros global planner
Opensource mano
Rootisharraystack
The stack frame inside a procedure is also known as the
What is stack adt
Stack queue python
Treiber stack
Goal stack planning
Konsep stack dan queue
Contoh program stack pascal
Eurocircuit design rules
Berkeley data analytics stack
Cisco 3750 stacking
Exercises on stacks and queues
Openstack octavia
Reticulum network stack
The stack ed targett
Stack discipline
Mpmd load stack
Internet stack helper ns3
Example of infix
Hpe azure stack
Stack pointer nedir
Smashing the stack for fun and profit phrack
Brk segment overflow in thread #1: can't grow to
Semantic web
5g stack
Outline formula stack
Single stack partially ventilated system
Second generation of computer
Stack based cpu
Fffcd
Irs ge 1
Which organelle looks like a stack of pancakes
Scp stack overflow
Stack grows downwards
Fidelity advice value stack
Contoh stack dalam kehidupan sehari-hari
Logostack
Downstream centrifuge
Scp stack overflow
A person of weight 480 n stands
Stack overflow
Non executable stack buffer overflow
Data structure stack
Q stack
What is stack card in warehouse
Nimble stack
Ddo split stack
Stack smashing
Bil2bil
Stack measurement of ballast
Dynamic set
Flip shape visio
Beam stack search algorithm
What is control abstraction
Anomaly: instruction "lea" is modifying the stack
Stack dan queue
Push and pop in stack
50mm waste pipe
Overflow 1
Microsoft power bi stack
Stack
Elk stack for monitoring
Pevn stack
Erase pro side effects
Netflix microservices diagram
Return address stack
Palette de tony cragg
Grc stack
Ndn
Pemanfaatan stack
Prototaksik
Stack
Advantages and disadvantages of stack
Paalindrome
Goal stack planning with example
Double stack
Elk stack demo
Cloud federation stack
Smashing magazine stack
Role canvas model
Which organelle looks like a stack of fluffy pancakes?
Universal animal stak opinie
Java stack frame
Dale carnegie conversation stack
Computing spans with a stack
Push(stack,l)
Preorder traversal with stack