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

SMS 채널 작동 원리

SMS 채널은 대기 중인 전자 메일을 SMS 메일로 변환한 다음 전달을 위해 SMSC에 전송하는 멀티스레드 채널입니다.

이 절은 다음과 같은 채널 작업 항목으로 구성되어 있습니다.

전자 메일을 채널로 전송

SMS 채널 구성으로 SMS 채널이 구성되면 하나 이상의 호스트 이름이 해당 채널과 연관됩니다. 여기서는 설명을 위해 호스트 이름 sms.siroe.com을 채널과 연관된 호스트 이름으로 가정합니다. 이 경우 전자 메일은 다음 형식의 주소를 가진 채널로 전송됩니다.

local-part@sms.siroe.com

여기서 local-part는 SMS 대상 주소(예: 휴대폰 번호, 호출기 아이디 등) 또는 다음 형식의 속성 값 쌍 목록입니다.

/attribute1=value1/attribute2=value2/.../@sms.siroe.com

인식되는 속성 이름과 그 사용법은 표 D–1에 나와 있습니다. 이러한 속성은 일부 채널 옵션에 대한 수신자별 제어를 허용합니다.

표 D–1 SMS 속성

속성 이름 

속성 값 및 사용법 

ID

SMS 메일을 전송할 SMS 대상 주소(예: 휴대폰 번호, 호출기 아이디 등)입니다. 이 속성과 관련 값은 반드시 존재해야 합니다.  

FROM

SMS 소스 주소입니다. 옵션 USE_HEADER_FROM=0일 경우 무시됩니다.

FROM_NPI

지정된 NPI 값을 사용합니다. 옵션 USE_HEADER_FROM=0일 경우 무시됩니다.

FROM_TON

지정된 TON 값을 사용합니다. 옵션 USE_HEADER_FROM=0일 경우 무시됩니다.

MAXLEN

해당 수신자에 대해 생성된 SMS 메일에 포함할 최대 총 바이트(즉, 8비트 바이트)입니다. MAXLEN MAX_MESSAGE_SIZE 채널 옵션에 지정된 값 중에서 작은 값이 사용됩니다.

MAXPAGES

해당 수신자에 대해 전자 메일을 분할할 최대 SMS 메일 수입니다. MAXPAGES MAX_PAGES_PER_MESSAGE 채널 옵션에 지정된 값 중에서 작은 값이 사용됩니다.

NPI

ID 속성으로 지정된 대상 SMS 주소에 대한 NPI(Numeric Plan Indicator) 값을 지정합니다. 이 속성에 허용되는 값에 대한 자세한 내용은 DEFAULT_DESTINATION_NPI 채널 옵션의 설명을 참조하십시오. 이 속성을 사용할 경우 이 속성 값은 DEFAULT_DESTINATION_NPI 채널 옵션이 제공한 값보다 우선합니다.

PAGELEN

해당 수신자에 대해 단일 SMS 메일에 포함할 최대 바이트 수입니다. 이 값과 MAX_PAGE_SIZE 채널 옵션에 지정된 값 중에서 최소값이 사용됩니다.

TO

ID의 동의어입니다.  

TO_NPI

NPI의 동의어입니다.  

TO_TON

TON의 동의어입니다.  

TON

ID 속성으로 지정된 대상 SMS 주소에 대한 TON(Type of Number) 값을 지정합니다. 이 속성에 허용되는 값에 대한 자세한 내용은 DEFAULT_DESTINATION_TON 채널 옵션의 설명을 참조하십시오. 이 속성을 사용할 경우 이 속성 값은 DEFAULT_DESTINATION_TON 채널 옵션이 제공한 값보다 우선합니다.

다음은 몇 가지 주소 예입니다.


123456@sms.siroe.com
/id=123456/@sms.siroe.com
/id=123456/maxlen=100/@sms.siroe.com
/id=123456/maxpages=1/@sms.siroe.com

전자 메일 주소의 SMS 대상 주소 부분에 대해 변환, 유효성 검사 및 기타 작업을 수행하는 방법은 사이트 정의 주소 유효성 검사 및 변환을 참조하십시오.

전자 메일에서 SMS로의 변환 프로세스

전자 메일을 원격 사이트로 보내려면 전자 메일을 원격 SMSC가 이해할 수 있는 SMS 메일로 변환해야 합니다. 이 절에서는 SMS 채널의 대기열에 포함된 전자 메일을 하나 이상의 SMS 메일로 변환하는 과정에 대해 설명합니다. 아래에 설명된 것처럼 옵션을 사용하여 생성되는 SMS 메일의 최대 개수, 이러한 SMS 메일의 최대 총 길이, 모든 단일 SMS 메일의 최대 크기를 제어할 수 있습니다. 전자 메일의 텍스트 부분(즉, MIME 텍스트 컨텐트 유형)만 사용되며 변환되는 부분의 최대 개수를 제어할 수도 있습니다.

전자 메일의 헤더 행과 텍스트 부분에 사용된 문자 세트는 모두 유니코드로 변환된 다음 적절한 SMS 문자 세트로 변환됩니다.

SMS_TEXT 매핑 테이블( 사이트 정의 텍스트 변환 참조)이 없을 경우 SMS 채널의 대기열에 포함된 전자 메일은 그림 D–2에 설명된 처리를 거칩니다.

그림 D–2 SMS 채널 전자 메일 처리

이 순서도는 SMS 채널 전자 메일 처리를 보여 줍니다.

그림 D–3 SMS 채널 전자 메일 처리(계속)

이 순서도는 SMS 채널 전자 메일 처리를 보여 줍니다(계속).

다음 단계는 번호가 매겨진 그림 D–2의 상자에 해당합니다.

  1. 빈 출력 버퍼가 시작됩니다. 버퍼에 사용되는 문자 세트는 유니코드입니다.

  2. 전자 메일 발송자 주소를 선호하는 순서로 내림차순으로 나열한 다음 5개의 소스 중 하나에서 가져옵니다.


    1. Resent-from:
    2. From:
    3. Resent-sender:
    4. Sender:
    5. Envelope From:
    

    메일 발송자 주소가 빈 문자열일 경우 FROM_NONE 채널 옵션 값이 대신 버퍼에 추가됩니다.

    그러나 메일 발송자 주소가 빈 문자열이 아닐 경우 FROM_FORMAT 채널 옵션의 처리 결과와 LINE_STOP 채널 옵션 값이 출력 버퍼에 추가됩니다.

    Resent-from:Resent-sender: 헤더 행은 USE_HEADER_RESENT 옵션 값이 1인 경우에만 고려됩니다. 그렇지 않으면 Resent- 헤더 행은 무시됩니다.

  3. Subject: 헤더 행이 존재하지 않거나 비어 있을 경우 SUBJECT_NONE 옵션 값이 출력 버퍼에 추가됩니다.

    그렇지 않을 경우 SUBJECT_FORMAT 옵션의 처리 결과와 LINE_STOP 채널 옵션 값이 출력 버퍼에 추가됩니다.

  4. 텍스트 메일 부분이 없을 경우 NO_MESSAGE 채널 옵션 값이 출력 버퍼에 추가됩니다.

    텍스트 메일 부분이 없을 경우 CONTENT_PREFIX 채널 옵션 값이 출력 버퍼에 추가됩니다.

    텍스트 메일 부분이 아닌 부분은 무시됩니다.

  5. 각 텍스트 부분에 대해 MAX_MESSAGE_PARTS 한도에 도달하지 않은 동안에 텍스트 부분은 유니코드로 디코딩되고 LINE_STOP 채널 옵션 값과 함께 버퍼에 추가됩니다.

  6. 그런 다음 결과 출력 버퍼는 유니코드에서 SMSC의 기본 문자 세트 또는 UCS2(UTF-16)로 변환됩니다. SMSC의 기본 문자 세트는 SMSC_DEFAULT_CHARSET로 변환 옵션으로 지정합니다.

  7. 변환된 문자열은 MAX_MESSAGE_SIZE 바이트를 초과하지 않도록 잘립니다.

  8. 전자 메일에서 SMS로의 변환 프로세스에서 변환된 문자열은 하나 이상의 SMS 메일로 나뉘며 하나의 SMS 메일은 MAX_PAGE_SIZE 바이트를 초과하지 않습니다. 최대한 MAX_PAGES_PER_MESSAGE에 지정된 수만큼 SMS 메일이 생성됩니다.


    주 –

    전자 메일이 여러 수신자를 가질 수 있으므로 4페이지의 "전자 메일을 채널로 전송"에 설명된 MAXLEN, MAXPAGES 또는 PAGELEN 속성을 사용하는 각 수신자 주소에 대해 단계 6에서 단계 8까지 수행해야 할 수 있습니다.


샘플 전자 메일 처리

예를 들어, 채널의 기본 설정을 가진 전자 메일은 다음과 같습니다.


From: John Doe 
To: 1234567@sms.siroe.com
Subject: Today’s meeting
Date: Fri, 26 March 2001 08:17

The staff meeting is at 14:30 today in the big conference room.

다음 SMS 메일로 변환됩니다.

jdoe@siroe.com (Today’s meeting) The staff meeting is at 14:30 today in the big conference room.

다음과 같이 일련의 옵션 집합 설정이 다른 경우에는


CONTENT_PREFIX=Msg:
FROM_FORMAT=From:${pa}
SUBJECT_FORMAT=Subj:$s

다음 결과가 생성됩니다.

From:John Doe Subj:Today’s meeting Msg:The staff meeting is at 14:30 today in the big conference room.

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)을 기다립니다.

사이트 정의 주소 유효성 검사 및 변환

사이트는 전자 메일을 채널로 전송에 설명된 수신자 전자 메일 주소로 인코딩되는 SMS 대상 주소에 유효성 검사 또는 변환을 적용할 수 있습니다. 예를 들어, 사이트에서 다음을 수행할 수 있습니다.

처음 두 개의 작업은 특히 DESTINATION_ADDRESS_NUMERIC DESTINATION_ADDRESS_PREFIX 채널 옵션으로 수행할 수 있습니다. 일반적으로 이 세 작업 및 기타 작업은 매핑테이블(다시 쓰기 규칙의 매핑 테이블 콜아웃 또는 FORWARD 매핑 테이블)을 사용하여 구현할 수 있습니다. 다시 쓰기 규칙의 매핑 테이블 콜아웃을 사용하면 사이트 정의 오류 응답으로 주소를 거부하는 기능을 비롯하여 가장 뛰어난 유연성이 제공됩니다. 이 절의 나머지 부분에서는 다시 쓰기 규칙의 매핑 테이블 콜아웃을 사용하는 이러한 방식에 대해 설명합니다.

대상 주소가 10 또는 11자리의 숫자로만 되고 문자열 "+1"을 접두어로 붙여야 하는 것으로 가정합니다. 이는 다음 다시 쓰기 규칙을 사용하여 수행할 수 있습니다.

sms.siroe.com      ${X-REWRITE-SMS-ADDRESS,$U}@sms.siroe.com
sms.siroe.com       $?Invalid SMS address

위에서 첫 번째 다시 쓰기 규칙은 X-REWRITE-SMS-ADDRESS라는 사이트 정의 매핑 테이블로 콜아웃됩니다. 검사를 위해 전자 메일 주소의 로컬 부분이 이 매핑 테이블로 전달됩니다. 매핑 프로세스에서 로컬 부분을 허용할 경우에는 주소가 수락되어 SMS 채널에 다시 기록됩니다. 매핑 프로세스가 로컬 부분을 허용하지 않을 경우에는 다음 다시 쓰기 규칙이 적용됩니다. 다음 다시 쓰기 규칙이 $? 다시 쓰기 규칙이므로 "Invalid SMS address"라는 오류 텍스트와 함께 주소가 거부됩니다.

아래에는 X-REWRITE-SMS-ADDRESS 매핑 테이블이 나와 있습니다. 이 매핑 테이블은 속성값 쌍 목록 형식이나 단순히 원시 SMS 대상 주소로 되어 있는 로컬 부분에 대한 필수 검증 단계를 수행합니다.

X-VALIDATE-SMS-ADDRESS

! Iteratively strip any non-numeric characters 
   $_*$[$ -/:-~]%*  $0$2$R
! Accept the address if it is of the form 1nnnnnnnnnn or nnnnnnnnnn
! In accepting it, ensure that we output +1nnnnnnnnnn
   1%%%%%%%%%%      +1$0$1$2$3$4$5$6$7$8$9$Y
   %%%%%%%%%%       +1$0$1$2$3$4$5$6$7$8$9$Y
! We didn’t accept it and consequently it’s invalid
   *                $N

X-REWRITE-SMS-ADDRESS
    */id=$_*/*       $C$0/id=$|X-VALIDATE-SMS-ADDRESS;$1|/$2$Y$E
    */id=$_*/*       $N
    *                $C$|X-VALIDATE-SMS-ADDRESS;$0|$Y$E
    *                $N

위와 같이 설정된 경우 DESTINATION_ADDRESS_NUMERIC 옵션 값이 0(기본값)인지 확인합니다. 그렇지 않을 경우 "+"가 SMS 대상 주소에서 제거됩니다.

사이트 정의 텍스트 변환

사이트는 변환 규칙 테이블을 사용하여 전자 메일에서 SMS로의 변환 프로세스에 설명된 단계 1- 6을 사용자 정의할 수 있습니다. 이러한 규칙은 MTA 매핑 파일의 매핑 테이블을 통해 지정됩니다.

매핑 테이블 이름은 SMS_Channel_TEXT여야 하며 여기에서 SMS_Channel은 SMS 채널의 이름입니다(예: 채널 이름이 sms인 경우 SMS_TEXT 또는 채널 이름이 sms_mway인 경우 SMS_MWAY_TEXT).

이 매핑 테이블에서 두 가지 유형의 항목을 만들 수 있습니다. 그러나 이러한 항목의 형식을 설명하기 전에 매핑 파일의 사용 방법을 이해하는 것이 중요합니다. 매핑 파일의 사용 방법을 아는 것은 이러한 항목을 생성 및 사용하는 방법을 이해하는 데 있어 필수적입니다. 이러한 두 유형의 항목이 설명된 후에는 매핑 테이블 예가 제공됩니다.

두 가지 유형의 항목은 다음과 같습니다.

메일 헤더 항목

이러한 항목은 SMS 메일에 포함해야 하는 메일 헤더 행과 이러한 메일 헤더 행을 축약 또는 변환하는 방법을 지정합니다. 헤더 행은 이러한 항목 중 하나에 의해 길이가 0이 아닌 문자열로 성공적으로 매핑된 경우에만 생성할 SMS 메일에 포함됩니다. 각 항목은 다음 형식을 가집니다.

H|pattern replacement-text

메일 헤더 행은 패턴과 일치할 경우 매핑 파일의 패턴 일치 및 문자열 교체 기능을 사용하여 교체 텍스트 replacement-text로 교체됩니다. 그런 다음 메타 문자 $Y가 교체 텍스트에 지정된 경우 헤더 행 매핑의 최종 결과는 SMS 메일에 포함됩니다. 헤더 행이 패턴 문자열과 일치하지 않거나 길이가 0인 문자열에 매핑되거나 교체 텍스트에 $Y 메타 문자가 지정되지 않은 경우 SMS 메일에서 헤더 행이 생략됩니다. 다음 두 항목은


H|From:* F:$0$Y 
H|Subject:* S:$0$Y

From:Subject: 헤더 행을 SMS 메일에 From:Subject:의 약어 F:S:로 포함시킵니다. 다음 항목은


H|Date:* H|D:$0$R$Y 
H|D:*,*%19%%*:*:* H|D:$0$ $5:$6$R$Y

Date: 헤더 행을 허용 및 매핑되도록 합니다. 예를 들어, 다음 헤더 행은

Date: Wed, 16 Dec 1992 16:13:27 -0700 (PDT)

다음과 같이 변환됩니다.

D: Wed 16:13

매우 복잡한 반복 매핑을 작성할 수 있습니다. 사용자 정의 필터를 설정하려는 사이트는 우선 매핑 파일의 작동 방법을 이해해야 할 수 있습니다. 항목의 오른쪽에 있는 H|는 원할 경우 생략할 수 있습니다. 반복 매핑 집합에 필요한 테이블 항목 수를 줄이기 위해 오른쪽에 H|가 허용됩니다.

메일 본문 항목

이러한 항목은 메일 본문의 각 행에 적용할 매핑을 설정합니다. 메일 본문의 각 행은 작성될 SMS 메일에 통합되기 전에 이러한 매핑을 통해 전달됩니다. 이러한 항목은 다음 형식을 가집니다.

B|pattern B| replacement-text

메일 본문의 행은 pattern 패턴과 일치할 경우 교체 텍스트 replacement-text로 교체됩니다. 마찬가지로 이 기능을 사용하여 매우 복잡한 반복 매핑을 생성할 수 있습니다. 항목의 오른쪽에 있는 B|는 원할 경우 생략할 수 있습니다.

SMS 매핑 테이블 예

예 D–1에는 SMS_TEXT 매핑 테이블 예가 나와 있습니다. 각 행의 끝에 있는 괄호 안의 숫자는 바로 뒤에 오는 설명 텍스트 절의 항목 번호에 해당합니다.


예 D–1 SMS_TEXT 매핑 테이블 예


SMS_TEXT

   H|From:*        H|F:$0$R$Y       (1)
   H|Subject:*     H|S:$0$R$Y       (1)
   H|F:*<*>*       H|F:$1$R$Y       ()
   H|F:*(*)*       H|F:$0$2$R$Y     (2)
   H|F:*"*"*       H|F:$0$2$R$Y     (3)
   H|F:*@*         H|F:$0$R$Y       (4)
   H|%:$ *         H|$0:$1$R$Y      (5)
   H|%:*$          H|$0:$1$R$Y      (5)
   H|%:*$ $ *      H|$0:$1$ $2$R$Y  (6)
   B|*--*          B|$0-$1$R        (7)
   B|*..*          B|$0.$1$R        (7)
   B|*!!*          B|$0!$1$R        (7)
   B|*??*          B|$0?$1$R        (7)
   B|*$ $ *        B|$0$ $1$R       (6)
   B|$ *           B|$0$R           (5)
   B|*$            B|$0$R           (5)

               

설명 텍스트

이 절에서는 위의 SMS_TEXT 매핑 테이블 예에 포함된 항목에 대해 설명합니다.

위 예에서는 매핑의 반복 적용을 구현 및 제어하기 위해 메타 문자 $R이 사용됩니다. 이러한 매핑을 반복함으로써 강력한 필터링이 수행됩니다. 예를 들어, 단일 선행 또는 후행 공백을 제거하거나(6) 두 개의 공백을 하나의 공백으로 줄이는(7) 간단한 매핑은 서로 결합되어 모든 선행 및 후행 공백을 스트라이프하고 연속된 여러 공백을 모두 하나의 공백으로 줄이는 필터가 됩니다. 이러한 필터링은 각 SMS 메일의 크기를 줄이는 데 도움이 됩니다.

  1. 이 두 항목은 From:Subject: 헤더 행을 SMS 메일에 포함시킵니다. From:Subject:는 각각 약어 F:S:로 표시됩니다. 일부 다른 항목이 From:Subject: 헤더 행에 영향을 줄 수 있습니다.

    이 항목은 <...> 패턴을 포함하는 From: 헤더 행을 대괄호 안의 텍스트만으로 줄입니다. 예를 들면 다음과 같습니다.

    F: "John C. Doe" <jdoe@siroe.com> (Hello)

    다음 행으로 교체됩니다.

    F: jdoe@siroe.com

  2. 이 항목은 From: 헤더 행의 (...) 패턴을 포함하여 그 안에 있는 모든 것을 제거합니다. 예를 들면 다음과 같습니다.

    F: "John C. Doe" <jdoe@siroe.com> (Hello)

    다음 행으로 교체됩니다.

    F: "John C. Doe" <jdoe@siroe.com>

  3. 이 항목은From: 헤더 행의 “...” 패턴을 포함하여 그 안에 있는 모든 것을 제거합니다. 예를 들면 다음과 같습니다.

    F: "John C. Doe" <jdoe@siroe.com> (Hello)

    다음 행으로 교체됩니다.

    F: <jdoe@siroe.com> (Hello)

  4. 이 항목은 From: 헤더 행의 at 기호(@)를 포함하여 그 오른쪽에 있는 모든 것을 제거합니다. 예를 들면 다음과 같습니다.

    F: "John C. Doe" <jdoe@siroe.com> (Hello)

    다음 행으로 교체됩니다.

    F: "John C. Doe" <jdoe@

  5. 이러한 네 개의 항목은 메일 헤더와 본문의 행에서 선행 및 후행 공백을 제거합니다.

  6. 이러한 두 개의 항목은 메일 헤더와 본문의 행에서 두 개의 공백을 하나의 공백으로 줄입니다.

  7. 이러한 네 개의 항목은 이중 대시, 마침표, 느낌표 및 물음표를 일치하는 문자 하나로 줄입니다. 마찬가지로 이것은 SMS 메일의 바이트를 줄이는 데 도움이 됩니다.

항목의 순서는 매우 중요합니다. 예를 들어, 순서가 정해진 메일에서 메일의 본문은 From: 헤더 행입니다.

From: "John C. Doe" (Hello)

다음과 같이 줄어듭니다.

jdoe

이 작업은 다음과 같은 단계로 수행됩니다.

  1. 다음과 같이 From: 헤더 행에서 시작합니다.

    From: "John C. Doe" (Hello)

    첫 번째 매핑 항목의 패턴이 일치하여 다음 결과를 생성합니다.

    F: "John C. Doe" (Hello)

    결과 문자열의 $R 메타 문자로 인해 결과 문자열이 다시 매핑됩니다.

  2. 마지막 단계의 결과 문자열에 매핑이 적용되어다음을 생성합니다.

    F: jdoe@siroe.com

    매핑의 $R로 인해 전체 매핑 세트가 이 단계의 결과에 다시 적용됩니다.

  3. 다음으로 매핑이 적용되어 다음이 생성됩니다.

    F: jdoe

    매핑의 $R로 인해 전체 매핑 세트가 이 단계의 결과에 다시 적용됩니다.

  4. 다음으로 매핑이 적용되어 다음이 생성됩니다.

    F:jdoe

    매핑의 $R로 인해 전체 매핑 세트가 이 단계의 결과에 다시 적용됩니다.

  5. 일치하는 다른 항목이 없으므로 다음 최종 결과 문자열이

    F:jdoe

    SMS 메일에 통합됩니다.


    주 –

    imsimta 테스트 매핑 유틸리티를 사용하여 매핑 테이블을 테스트할 수 있습니다. 예를 들면 다음과 같습니다.


    # imsimta test -mapping -noimage_file -mapping_file=test.txt
    Enter table name: SMS_TEXT
    Input string: H|From: "John C. Doe"  (Hello)
    Output string: H|F:jdoe
    Output flags: [0,1,2,89]
    Input string: ^D
    #

    imsimta test 유틸리티에 대한 자세한 내용은 Sun Java System Messaging Server 6 2005Q4 Administration Referenceimsimta test를 참조하십시오.