Sun Java System Messaging Server 6 2005Q4 관리 설명서

SMS 메일 전송 프로세스

전자 메일이 하나 이상의 SMS 메일로 변환된 후(각 수신자에 대해 다른 집합을 가질 수 있음) SMS 메일은 대상 SMSC로 전송됩니다. 이러한 전송은 TCP/IP를 통한 SMPP V3.4를 사용하여 수행됩니다. SMS 채널과 연관된 공식 호스트 이름으로 사용하기 위해 SMPP 서버의 호스트 이름(SMPP_SERVER)을 가져오며 사용할 TCP 포트(SMPP_PORT)가 port 채널 키워드를 통해 지정됩니다.

처리할 메일이 있으면 채널이 시작됩니다. 채널은 송신기로서 SMPP 서버에 바인드하여 SMPP 옵션에 설명된 ESME_ 채널 옵션으로 지정한 자격 증명을 제공합니다. 표 D–2에는 BIND_TRANSMITTER PDU(Protocol Data Unit)에서 설정되는 필드와 해당 값이 나열되어 있습니다.

표 D–2 BIND_TRANSMITTER PDU에서 생성되는 필드

필드 

값 

system_id

ESME_SYSTEM_ID 채널 옵션이며 기본값은 빈 문자열입니다.

password

ESME_PASSWORD 채널 옵션이며 기본값은 빈 문자열입니다.

system_type

ESME_SYSTEM_TYPE 채널 옵션이며 기본값은 빈 문자열입니다.

interface_version

SMPP V3.4를 나타내는 0x34입니다. 

addr_ton

ESME_ADDRESS_TON이며 기본값은 알 수 없는 TON을 나타내는 0x00입니다.

addr_npi

ESME_ADDRESS_NPI이며 기본값은 알 수 없는 NPI를 나타내는 0x00입니다.

addr_range

ESME_IP_ADDRESS 채널 옵션이며 기본값은 빈 문자열입니다.

채널이 다중 스레드되는 점에 주의하십시오. 보낼 메일의 수에 따라 대기열에서 제외 스레드가 채널에서 여러 개 실행 중일 수 있습니다(여러 채널 프로세스가 실행 중일 수도 있습니다). 각 스레드는 BIND_TRANSMITTER를 수행한 후 해당 TCP/IP 연결에서 전송해야 할 모든 SMS 메일을 보낸 다음 UNBIND를 보내고 연결을 닫습니다. 잠재적 재사용을 위해 유휴 기간 동안 연결을 열어두려는 시도는 수행되지 않습니다. 원격 SMPP 서버가 스로틀(throttle) 오류를 되돌려 보낼 경우 UNBIND가 실행되고 TCP/IP 연결이 닫힌 후에 새 연결과 BIND가 설정됩니다. 원격 SMPP 서버가 SMS 메일 전송이 끝나기 전에 UNBIND를 보낼 경우에도 비슷한 동작이 발생합니다.

그런 다음 SMPP SUBMIT_SM PDU가 사용되어 SMS 메일을 제출합니다. 영구 오류(예: ESME_RINVDSTADR)가 반환될 경우 전자 메일은 전달할 수 없는 것으로 반환됩니다. 임시 오류가 반환될 경우 전자 메일은 나중에 전달을 시도하기 위해 다시 대기열에 포함됩니다. 영구 오류는 SMS 대상 주소가 잘못된 경우처럼 특정 조건이 무한정 존재하며 반복된 전달 시도가 실제적인 효과가 없는 오류를 말합니다. 이와 달리 임시 오류는 서버 다운이나 서버 정체와 같이 특정 조건이 머지 않아 없어질 것으로 보이는 오류입니다.

USE_HEADER_FROM 옵션 값이 1일 경우 제출된 SMS 메일의 소스 주소가 설정됩니다. 사용되는 값은 원본 전자 메일에서 파생되며 모든 응답을 전송해야 할 가장 가능성 있는 (전자 메일) 주소가 선택됩니다. 이에 따라 선호하는 순서로 내림차순으로 나열한 다음 7개의 소스 중 하나에서 소스 주소를 가져옵니다.


1. Resent-reply-to:
2. Resent-from:
3. Reply-to:
4. From:
5. Resent-sender:
6. Sender:
7. Envelope From:

Resent-reply-to:Reply-to: 헤더 행은 USE_HEADER_REPLY_TO 옵션 값이 1인 경우에만 고려됩니다. Resent-reply-to:, Resent-from:Resent-sender: 헤더 행은 USE_HEADER_RESENT 옵션 값이 1인 경우에만 고려됩니다. 이것은 모든 옵션 값이 1이어야 Resent-reply-to: 헤더 행이 고려된다는 의미입니다.이러한 두 옵션의 기본값은 모두 0입니다. 따라서 4, 6 및 7 항목만 기본 구성에서 고려됩니다. 마지막으로 SMS 메일의 소스 주소가 20바이트로 제한되므로 선택된 소스 주소는 이 제한을 초과할 경우 잘립니다.

표 D–3SUBMIT_SM PDU에서 설정되는 필수 필드를 보여 줍니다.

표 D–3 SUBMIT_SM PDU에서 생성되는 필수 필드

필드 

값 

service_type

DEFAULT_SERVICE_TYPE채널 옵션이며 기본값은 빈 문자열입니다.

source_addr_ton

DEFAULT_SOURCE_TON 채널 옵션이며 USE_HEADER_FROM=1일 경우 이 필드는 일반적으로 영숫자 TON을 나타내는 값 0x05를 가집니다. 그렇지 않을 경우에는 국가별 TON을 나타내는 기본값 0x01이 사용됩니다.

source_addr_npi

DEFAULT_SOURCE_NPI 채널 옵션이며 기본값은 0x00입니다.

source_addr

USE_HEADER_FROM=0일 경우 DEFAULT_SOURCE_ADDRESS 채널 옵션입니다. 그렇지 않을 경우에는 전자 메일 발송자를 나타내는 영숫자 문자열입니다.

dest_addr_ton

TON 주소 지정 속성 또는 DEFAULT_DESTINATION_TON 채널 옵션입니다. 기본값은 국가별 TON을 나타내는 0x01입니다.

dest_addr_npi

NPI 주소 지정 속성 또는 DEFAULT_SOURCE_NPI 채널 옵션입니다. 기본값은 알 수 없는 NPI를 나타내는 0x00입니다.

dest_addr

전자 메일 봉투 To: 주소의 로컬 부분에서 파생된 대상 SMS 주소입니다. 전자 메일을 채널로 전송을 참조하십시오.

esm_class

단방향 SMS의 경우 기본 SMSC 메일 유형인 저장 및 전달 모드를 나타내는 0x03으로 설정되며 응답 경로를 설정하지 않습니다. 양방향 SMS 메일의 경우 0x83으로 설정됩니다. 

protocol_id

0x00이며 CDMA 및 TDMA에 사용되지 않습니다. GSM의 경우 0x00은 인터넷은 연결되어 있지 않지만 SME 간 프로토콜이 있음을 나타냅니다. 

priority_flag

GSM 및 CDMA의 경우 0x00이고 TDMA의 경우 0x01입니다. 모두 일반 우선 순위를 나타냅니다. DEFAULT_PRIORITY 채널 옵션에 대한 설명을 참조하십시오.

schedule_delivery_time

즉시 전달을 나타내는 빈 문자열입니다. 

validity_period

DEFAULT_VALIDITY_PERIOD 채널 옵션이며 기본값은 SMSC의 기본값을 사용해야 한다는 것을 나타내는 빈 문자열입니다.

registered_delivery

등록된 전달이 없음을 나타내는 0x00입니다. 

replace_if_present_flag

모든 이전 SMS 메일을 대체해야 한다는 것을 나타내는 0x00입니다. 

data_coding

SMSC 기본 문자 세트의 경우 0x00이며 UCS2 문자 세트의 경우 0x08입니다. 

sm_default_msg_id

미리 정의된 메일을 사용하지 않는다는 것을 나타내는 0x00입니다. 

sm_length

SMS 메일의 길이와 내용입니다. 자세한 내용은 전자 메일에서 SMS로의 변환 프로세스를 참조하십시오.

short_message

SMS 메일의 길이와 내용입니다. 자세한 내용은 전자 메일에서 SMS로의 변환 프로세스를 참조하십시오.

표 D–4SUBMIT_SM PDU의 선택적 필드를 보여 줍니다.

표 D–4 SUBMIT_SM PDU에서 생성되는 선택적 필드

필드 

값 

privacy

DEFAULT_PRIVACY 채널 키워드에 대한 설명을 참조하십시오. 기본값은 전자 메일에 Sensitivity: 헤더 행 값이 없으면 이러한 필드를 제공하지 않는 것입니다.

sar_refnum

USE_SAR 채널 키워드에 대한 설명을 참조하십시오. 기본값은 이러한 필드를 제공하지 않는 것입니다.

sar_total

위의 sar_refnum을 참조하십시오.

sar_seqnum

위의 sar_refnum을 참조하십시오.

전송할 SMS 메일이 더 이상 없거나(메일 대기열이 비어 있거나) MAX_PAGES_PER_BIND를 초과할 때까지 채널은 SMPP 서버에 바인드되어 있습니다. 후자의 경우 전송할 추가 SMS 메일이 남아 있으면 새 연결이 설정되고 바인드 작업이 수행됩니다.

SMS 채널이 다중 스레드되는 점에 주의하십시오. 채널의 각 처리 스레드는 SMPP 서버와의 고유한 TCP 연결을 유지 관리합니다. 예를 들어, 각각 전송할 SMS 메일을 가진 세 개의 처리 스레드가 있을 경우 채널은 SMPP 서버에 대한 세 개의 열린 TCP 연결을 가집니다. 각 연결은 송신기로 SMPP 서버에 바인드합니다. 또한 지정된 모든 처리 스레드는 미해결 SMS 전송을 한 번에 하나씩만 가집니다. 즉, 지정된 스레드는 SMS 메일을 전송한 다음 다른 SMS 메일을 전송하기 전에 전송 응답(즉, SUBMIT_SM_RESP PDU)을 기다립니다.