行为假设
在方便解释此示例,假设需要以下性能:
定址到
sms-id@sms.domain.com
的电子邮件消息要发送到 SMS 地址
sms-id
并给定唯一的 SMS 源地址,范围为 000nnnnnnnnnn。
定址至 SMS 地址 000 的移动设备 SMS 消息将通过网关发送至电子邮件(带有从 SMS 消息文本开始处提取的电子邮件地址)。
例如,如果 SMS 消息文本为:
jdoe@domain.com Interested in a movie?
则消息 "Interested in a movie?" 将被发送至 jdoe@domain.com。
发送至 000nnnnnnnnnn 的 SMS 通知将通过网关发送至电子邮件,并定向至接收该消息的创始者。
为了实现此性能,需要进行如下假设和指定
进一步假设和指定
MTA 的 SMS 通道使用域名 sms.domain.com。
SMS Gateway Server 在主机 gateway.domain.com 上运行并将:
TCP 端口 503 用于其 SMPP 中继
TCP 端口 504 用于其 SMPP 服务器
远程 SMSC 的 SMPP 服务器在主机 smpp.domain.com 上运行并侦听 TCP 端口 377。
远程 SMSC 的默认字符集为 UCS2(也可为 UTF-16)。
SMS 通道配置
要使上述行为生效,可以在 imta.cnf 文件中使用以下 SMS 通道配置(将这些行添加至文件底部):
(blank line) sms sms.domain.com
SMS 通道选项文件
然后,通道的选项文件 sms_option 将包含以下设置:
SMPP_SERVER=gateway.domain.com SMPP_PORT=503 USE_HEADER_FROM=0 DEFAULT_SOURCE_ADDRESS=000 GATEWAY_PROFILE=sms1 SMSC_DEFAULT_CHARSET=UCS2
SMS Gateway Server 配置
最后,Gateway Server 配置文件 sms_gateway.cnf 应包含类似以下内容:
HISTORY_FILE_DIRECTORY=/sms_gateway_cache/ [SMPP_RELAY=relay1] LISTEN_PORT=503SERVER_HOST=smpp.domain.com SERVER_PORT=377 [SMPP_SERVER=server1] LISTEN_PORT=504 [GATEWAY_PROFILE=sms1] SELECT_RE=000([0-9]{10,10}){0,1} SMSC_DEFAULT_CHARSET=UCS2 |
测试此配置
如果没有可用于测试的 SMSC,您可能需要执行某些回送测试。使用 sms_option 文件中的某些附加设置,可对上述配置执行某些简单的回送测试。
sms_option 文件的附加设置包括:
! So that we don’t add text to the body of the SMS message FROM_FORMAT= SUBJECT_FORMAT= CONTENT_PREFIX=
没有这些设置,包含以下内容:
user@domain.com (Sample subject) Sample text
的电子邮件就会转换成 SMS 消息:
From:user@domain.com Subject:Sample Subject Msg:Sample text
反过来,这将不会是移动设备到电子邮件代码所期望看到的格式:
user@domain.com (Sample subject) Sample text
因此,需要(针对回送测试)为 FROM_FORMAT、SUBJECT_FORMAT 和 CONTENT_PREFIX 选项指定空字符串。
发送定址至 000@sms.domain.com 的测试电子邮件消息,例如:
user@domain.com (Test message) This is a test message which should loop back
结果是此电子邮件消息应路由回电子邮件收件人 user@domain.com。请确保已将 sms.domain.com 添加至您的 DNS 或主机表中,以进行测试。