SMPP API - 메시지 전송을 위한 국제 표준 프로토콜 SMPP로 국내 및 국제 메시지를 전송하세요.

기술정보센터

국제 표준 메시지 프로토콜 SMPP

SMPP(Short Message Peer-to-Peer)는 국제 표준으로 이용되는 메시지 전송 프로토콜로서 당사의 메시지 서버와 고객사의 서버를 직접 연결하는 방식입니다. 서버간 통신으로 전송을 위한 접속 시간을 최소화하기 때문에 대량의 메시지를 전송하기 적합합니다.

현재 SMPP Version 3.4를 채택한 프로토콜을 제공하고 있으며, 기본적인 SMPP 표준 규격을 이해하고 있는 경우 손쉽게 연동하실 수 있습니다.

SMPP 연동에 대한 자세한 내용은 아래에서 확인하실 수 있으며, 연동 테스트 신청 및 서비스 이용 상담은 ‘상담신청’ 메뉴에서 신청해 주세요.

SMPP 메뉴얼 다운로드

접속 서버 정보

SMPP API 서버 접속 정보

SMPP API 서버 접속 정보
Host Port Description
smpp.supersms.co 8214

지원 가능 PDU(Protocol Description Units) 종류

인포뱅크 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

메시지 전송 절차(Getting Started)

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

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

Appendix

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 미래부에서 모든 고객사에 대하여 차단 처리 요청된 번호를 발신 번호로 사용하는 경우

기술지원 상담

iMessage 서버개발팀

Email svrdev@infobank.net

Back to top
  • 상담요청하기
  • CONTACT US
  • FAQ
  • 상담 게시판