SMPP(Short Message Peer-to-Peer)는 국제 표준으로 이용되는 메시지 전송 프로토콜로서 당사의 메시지 서버와 고객사의 서버를 직접 연결하는 방식입니다. 서버간 통신으로 전송을 위한 접속 시간을 최소화하기 때문에 대량의 메시지를 전송하기 적합합니다.
현재 SMPP Version 3.4를 채택한 프로토콜을 제공하고 있으며, 기본적인 SMPP 표준 규격을 이해하고 있는 경우 손쉽게 연동하실 수 있습니다.
SMPP 연동에 대한 자세한 내용은 아래에서 확인하실 수 있으며, 연동 테스트 신청 및 서비스 이용 상담은 ‘상담신청’ 메뉴에서 신청해 주세요.
SMPP API 서버 접속 정보
SMPP API 서버 접속 정보
Host |
Port |
Description |
smpp.supersms.co |
8214 |
|
인포뱅크 SMPP API 서버는 아래의 PDU를 지원 합니다.
SMPP API PDU 지원
Client to Server |
Server to Client |
BIND_TRANSCEIVER |
BIND_TRANSCEIVER_RESP |
SUBMIT_SM |
SUBMIT_SM_RESP |
DELIVER_SM |
DELIVER_SM_RESP |
UNBIND |
UNBIND_RESP |
ENQUIRE_LINK |
ENQUIRE_LINK_RESP |
1단계 – Bind Process
- 제공 받은 접속 정보(IP, Port, username, password) 를 이용하여 인포뱅크 SMPP 서버에 접속하여 메시지 발송을 위한 세션을 생성하는 과정입니다.
- Session Type 제약 : SMPP Session Type 중 Transceiver만 지원하며, Transmitter, Receiver는 지원하지 않습니다. 만약 Transceiver 외의 접속 시 Session은 자동으로 종료됩니다.
- SMPP protocol version 3.4 만 지원합니다.
Bind Process
Field Name |
Description |
Restriction |
Example |
System_id |
Your Infobank SMPP API account username |
최대 15자리 SMPP 스펙 문서 참조 |
infobank |
Password |
Your Infobank SMPP API account password |
최대 8자리 SMPP 스펙 문서 참조 |
password |
interface_version |
SMPP Protocol Version |
3.4 버전만 지원 |
0x52 |
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 로 설정합니다.
- 그 외 SMS 전송에 필요한 정보는 SMPP protocol version 3.4 문서 참고.
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단계 – Enquire Link
세션 유지를 위해 Enquire_link PDU를 30초 주기로 전송해야 합니다.
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 |
originCID |
origin_cid |
(한국 발송 전용) 최초 발신사업자 식별코드
| 9byte |
0x1405 C-Octet String |
Title |
title |
(한국 발송 전용) LMS/MMS 전송 시 메시지 제목
| 40byte |
0x1406 C-Octet String |
Error Code
아래 목록은 SMPP protocol version 3.4의 command_status 필드에 추가되는 인포뱅크 고유의 에러코드입니다. 그 외 결과코드는 SMPP protocol version 3.4 문서를 참고합니다.
Error Code
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 |
0x0000406 |
발신번호 사전등록제 관련 미등록 발신 번호 사용 |
SMPP_ESME_INVALID_SND_ID |
0x0000407 |
발신번호 형식 오류 (발신번호 변작 방지 세칙 위반) |
SMPP_ESME_MSG_ESM_ERROR |
0x0000408 |
charset conversion error |
SMPP_ESME_RINVPASWD |
0x0000000E |
잘못된 비밀번호 |
SMPP_ESME_RINVSYSID |
0x0000000F |
잘못된 시스템ID |
Message Statuses
아래 목록은 인포뱅크의 DLR 결과코드입니다.
Message Statuses
Status of Message |
CODE |
Description |
DELIVRD |
1000 |
성공 |
UNDELIV |
2000 |
전송 시간 초과 |
UNDELIV |
2001 |
전송 실패 (무선망단) |
UNDELIV |
2002 |
전송 실패 (무선망 -> 단말기단) |
UNDELIV |
2003 |
단말기 전원 꺼짐 |
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 미래부에서 모든 고객사에 대하여 차단 처리 요청된 번호를 발신 번호로 사용하는 경우 |
기술지원 상담