Messaging Service SMPP API Specification V1.0.3 Last Modified: 23.July, 2019 1
변경이력 버전 일자 내용 작성자 1.0.0 2016-05-26 최초작성 남궁희이정해 1.0.1 2016-10-07 submit_sm의 validity_period 절대시간지원추가 남궁희 1.0.2 2017-11-20 에러코드 3007 삭제 이정해 1.0.3 2019-07-23 6.1. Error Code 설명추가 - SMPP_ ESME_RINVPASWD (0x0000000E) - SMPP_ ESME_RINVSYSID (0x0000000F) 이재희 2 / 8
목차 1. 소개... 4 2. 접속서버정보... 4 2.1. SMPP API 서버접속정보... 4 3. 지원가능 PDU(PROTOCOL DESCRIPTION UNITS) 종류... 4 4. 메시지전송절차 (GETTING STARTED)... 5 4.1. 1단계 BIND PROCESS... 5 4.2. 2단계 SUBMIT SHORT MESSAGE TO THE INFOBANK PROCESS... 5 4.3. 3단계 - DELIVERY RECEIPT(DLR) PROCESS... 6 4.4. 4단계 ENQUIRE LINK... 6 5. CUSTOM MESSAGE FIELD... 6 6. APPENDIX... 7 6.1. ERROR CODE... 7 6.2. MESSAGE STATUSES... 7 7. CONTACT INFORMATION... 8 3 / 8
1. 소개 본문서는인포뱅크 의메시지서비스를이용하기위해 SMPP 프로토콜을이용한연동규격을설명하는문서이다. SMPP API는메시지 G/W 에직접접속하여대량의메시지를전송하기적합한 API이다. 인포뱅크 G/W 는표준 SMPP 프로토콜 (SMPP protocol version 3.4) 을준수하며공개용 SMPP 소프트웨어를이용하여메시지를전송할수있다. 본서비스를이용하기위해서는인포뱅크로부터접속정보를제공받아야한다. 2. 접속서버정보 2.1. SMPP API 서버접속정보 Version 1.0.0~1.0.1 에서 SSL 은제공안됩니다. Host Port Description smpp.supersms.co 8214 Source 가 Any 로오픈되어있음. 별도방화벽허용필요없음. 3. 지원가능 PDU(Protocol Description Units) 종류 인포뱅크 SMPP API 서버는아래의 PDU 를지원한다. Client to Server BIND_TRANSCEIVER SUBMIT_SM DELIVER_SM UNBIND ENQUIRE_LINK Server to Client BIND_TRANSCEIVER_RESP SUBMIT_SM_RESP DELIVER_SM_RESP UNBIND_RESP ENQUIRE_LINK_RESP 4 / 8
4. 메시지전송절차 (Getting Started) 4.1. 1 단계 Bind Process 제공받은접속정보 (IP, Port, username, password) 를이용하여인포뱅크 SMPP 서버에접속하여메시지발송을위한세션을생성하는과정이다. Session Type 제약 : SMPP Session Type 중 Transceiver만지원하며, Transmitter, Receiver는지원하지않는다. 만약 Transceiver 외의접속시 Session은자동으로종료된다. SMPP protocol version 3.4 만지원한다. Field Name Description Restriction Example System_id Your Infobank SMPP API 최대 15자리 infobank account username SMPP 스펙문서참조 Password Your Infobank SMPP API 최대 8자리 password account password SMPP 스펙문서참조 interface_version SMPP Protocol Version 3.4 버전만지원 0x52 4.2. 2 단계 Submit Short message to the INFOBANK Process SMPP API 서버에 Bind 후메시지전송을위해서는 submit_sm PDU를이용하여메시지전송을요청해야한다. 지원하는 Charset 인코딩범위 : 유니코드 (UTF-16), Latin TON and NPI : TON=1, NPI=1 로지정해서보내야한다. SOURCE_ADDR : submit_sm 의 source_addr 필드를사용한다. Alphanumeric Sender ID 형식도지원한다. DESTIONATION_ADDR : sumbit_sm 의 destination_addr 필드를사용한다. International Format 형식만지원하며, International Format이아닌경우실패처리한다. ( 예제 : +821012345647, +82012345678, 821012345647, 82012345678) Concatenated message : 인포뱅크 SMPP API는장문의메시지전송도가능하다. short message 필드의길이 (255byte) 를초과하는메시지를전송할때는 short message 필드대신에 message_payload 필드를사용하며, sm_length 필드는 0x00 값으로설정해야한다. 판단기준은 Latin 기준 153자, Unicode 기준 67 자를초과할경우에는 message_payload 필드를사용한다. Schedule_deliver_time : 예약발송필드는현재버전 (IB SMPP API V1.0.1) 에서지원하지않는다. Validity_period : SMPP 표준스펙에명시된상대시간 / 절대시간포맷모두지원한다. ( 예제 : 상대시간 020610233429000R, 절대시간 020610233429032+) registered_delivery : DLR 수신을원할경우 0x01 로설정한다. 5 / 8
그외 SMS 전송에필요한정보는 SMPP protocol version 3.4 문서를참고한다. 4.3. 3 단계 - Delivery receipt(dlr) Process SMPP API 서버에메시지전송후전송결과를 deliver_sm PDU 를이용하여수신할수있다. ( 선택사항 ) 지원하는 Charset 인코딩범위 : UTF-8 DLR의 Data_Coding 필드는 UTF-8을사용하며, 값은 0x0F를사용한다. DLR은 Deliver_SM PDU 의 short_message 필드를사용한다. DLR Example : id:fb88df9c-9bc4-4372-9311-e16273aeb751 sub:001 dlvrd:000 submit date:yymmddhhmm done date:yymmddhhmm stat:rejectd err:3015 text:testmessage DLR의 submit_date, done_date 기준은 UTC 시간을사용한다. 수신후 DELIVER_SM_RESP를반드시보내야하며, SMPP API서버가 DELIVER_SM_RESP를수신하지못할경우재발송처리한다. SMPP protocol version 3.4-Appendix B 참고한다. 4.4. 4 단계 Enquire Link 세션유지를위해 Enquire_link PDU 를 30 초주기로전송해야한다. 5. Custom Message Field Name Field Name Description Restriction Code and Type Sub id client_sub_id Sender ID, 메시지서명을복수로지정하기위한구분자 20byte 0x1401 C-Octet String Payment code payment_code 정산부서코드 20byte 0x1402 C-Octet String Client message key client_msg_key 전송메시지키 ( 고객사에서정의된메시지키 ) 최대 99byte 0x1403 C-Octet String Report Type report_type 최종발송메시지유형 1001: SMS MT 1003: LMS MT 4byte 0x1404 C-Octet String 6 / 8
6. Appendix 6.1. Error Code 아래목록은 SMPP protocol version 3.4 의 command_status 필드에추가되는인포뱅크고유의에러 코드이다. 그외결과코드는 SMPP protocol version 3.4 문서를참고한다. SMPP Error Code Hex Value Description SMPP_ESME_SYSERR 0x0000400 인증실패 SMPP_ESME_TOO_FAST 0x0000402 서버 Capacity 초과 SMPP_ESME_SPAM 0x0000401 SPAM SMPP_ESME_NOT_ALLOW_SVC 0x0000403 전송권한없음 SMPP_ESME_EXCEED_CRDT 0x0000405 사용건수초과 SMPP_ESME_NOT_REG_SND_ID SMPP_ESME_INVALID_SND_ID 0x0000406 0x0000407 발신번호사전등록제관련미등록발신번호사용발신번호형식오류 ( 발신번호변작방지세칙위반 ) SMPP_ESME_MSG_ESM_ERROR 0x0000408 charset conversion error SMPP_ESME_RINVPASWD 0x0000000E 잘못된비밀번호 SMPP_ESME_RINVSYSID 0x0000000F 잘못된시스템 ID 6.2. Message Statuses 아래목록은인포뱅크의 DLR 결과코드이다. Status of Message CODE Description DELIVRD 1000 성공 UNDELIV 2000 전송시간초과 UNDELIV 2001 전송실패 ( 무선망단 ) UNDELIV 2002 전송실패 ( 무선망 -> 단말기단 ) UNDELIV 2003 단말기전원꺼짐 7 / 8
UNDELIV 2004 단말기메시지버퍼풀 UNDELIV 2005 음영지역 UNDELIV 2006 메시지삭제됨 UNDELIV 2007 일시적인단말문제 REJECTD 3000 전송할수없음 REJECTD 3001 가입자없음 REJECTD 3002 성인인증실패 REJECTD 3003 수신번호형식오류 REJECTD 3004 단말기서비스일시정지 REJECTD 3005 단말기호처리상태 REJECTD 3006 착신거절 REJECTD 3008 기타단말기문제 REJECTD 3009 메시지형식오류 REJECTD 3010 MMS 미지원단말 REJECTD 3011 서버오류 REJECTD 3012 스팸 REJECTD 3013 서비스거부 REJECTD 3014 기타 REJECTD 3015 전송경로없음 REJECTD 3016 첨부파일사이즈제한실패 INVALID 3018 INVALID 3019 휴대폰가입이동통신사를통해발신번호변작방지부가서비스에가입된번호를발신번호로사용하는경우 KISA or 미래부에서모든고객사에대하여차단처리요청된번호를발신번호로사용하는경우 7. Contact Information 본문서와관련된기술문의는아래메일주소로연락주시면됩니다. Email : support@infobank.net 8 / 8