사이트는 전자 메일을 채널로 전송에 설명된 수신자 전자 메일 주소로 인코딩되는 SMS 대상 주소에 유효성 검사 또는 변환을 적용할 수 있습니다. 예를 들어, 사이트에서 다음을 수행할 수 있습니다.
숫자가 아닌 문자 스트라이프(예: 800.555.1212를 8005551212로 변환)
접두어 추가(예: 8005551212를 +18005551212로 변환)
정확성 검증(예: 123은 너무 짧음)
처음 두 개의 작업은 특히 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 대상 주소에서 제거됩니다.