本节介绍如何为单向(电子邮件到移动设备)和双向(电子邮件到移动设备和移动设备到电子邮件)功能设置 SMS 通道。除了几种例外情况外,对于单向和双向功能,SMS 通道的设置均相同。这些例外情况将在为双向 SMS 配置 SMS 通道主题中说明。
本节包含以下主题:
将 SMS 通道添加至 Messaging Server 配置需要两个步骤:
如果没有在各种情况下均必须设置的通道选项,可能需要设置以下一个或多个选项:ESME_PASSWORD、ESME_SYSTEM_ID、MAX_PAGE_SIZE、DEFAULT_SOURCE_TON 和 DEFAULT_DESTINATION_TON。而且,如上所述,SMPP 服务器的主机名或 IP 地址和 TCP 端口必须通过 imta.cnf 文件中的通道定义或通道选项文件进行设置。
您可配置多个 SMS 通道,并为不同 SMS 通道赋予不同的特征。有关使用多个 SMS 通道的更多信息,请参见添加附加 SMS 通道。
请注意以下说明:如果更改了 imta.cnf 文件,则必须重新编译。如果仅更改了通道选项文件,则不需要重新编译。
还请注意,通道更改生效前的时间因更改内容的不同而不同。许多通道选项更改在作了更改启动的所有通道中都有效,而由于作业控制器通常会启动新通道,所以看起来几乎是即刻发生的。某些更改要在重新编译并重新启动 SMTP 服务器后才会生效。这些选项是在消息排入通道后而不是在通道本身运行时得到处理的。
要添加通道定义和重写规则,请执行以下操作:
将 SMS 通道添加到 MTA 的配置之前,需要为该通道挑选一个名称。通道的名称可以是 sms 或 sms_x,其中 x 是长度在一至三十六个字节之间的任何字符串,且不区分大小写。例如,sms_mway。
要添加通道定义,请编辑位于 installation-directory/config/ 目录中的 imta.cnf 文件。在文件末尾于此二行之前添加一个空白行:
channel-name port p threaddepth t \ backoff pt2m pt5m pt10m pt30m notices 1 smpp-host-name
其中 channel-name 是您为通道选择的名称,p 是 SMPP 服务器所侦听的 TCP 端口,t 是每个传送进程中 SMPP 服务器同时连接的最大数量,而 smpp-host-name 则是运行 SMPP 服务器的系统的主机名。
例如,您可以将通道定义指定为如下内容:
sms_mway port 55555 threaddepth 20 \ backoff pt2m pt5m pt10m pt30m notices 1 smpp.siroe.com |
有关如何计算 threaddepth 的说明,请参见控制同时连接数目
有关 backoff 和 notices 通道关键字的讨论,请参见调整传送重试的频率
如果要为 smpp-host-name 指定 IP 地址而不是主机名,请指定域文字。例如,如果 IP 地址为 127.0.0.1,则为 smpp-host-name 指定 [127.0.0.1]。或者,请考虑使用 SMPP_SERVER 通道选项。
对于 Sun Java System Messaging Server 6.1,使用 master 通道关键字已过时。如果其存在,则应忽略。
添加了通道定义后,就请跳至文件的上半部分,并按以下格式添加一条重写规则:
smpp-host-name $u@smpp-host-name
例如,
smpp.siroe.com $u@smpp.siroe.com
保存 imta.cnf 文件。
使用 imsimta cnbuild 命令重新编译此配置。
使用 imsimta restart dispatcher 命令重新启动 SMTP 服务器。
使用上述配置,将电子邮件消息寻址至 id@smpp-host-name(例如 123456@smpp.siroe.com),从而将其定向到通道。有关寻址的更多信息,请参见电子邮件到 SMS 的转换过程。
(可选)如果要对用户隐藏 SMPP 服务器的主机名,或者要将其他主机名与同一通道相关联,则请添加其他重写规则。例如,要将 host-name-1 和 host-name-2 与通道相关联,请将以下内容添加到重写规则中:
host-name-1 $U%host-name-1@smpp-host-name host-name-2 $U%host-name-2@smpp-host-name |
例如,如果 SMPP 服务器的主机名是 smpp.siroe.com,但是您希望用户将电子邮件发送至 id@sms.sesta.com,则请添加重写规则:
sms.sesta.com $U%sms.sesta.com@smpp.siroe.com
请注意,SMPP_SERVER 和 SMPP_PORT 通道选项将覆盖通道的正式主机名和 port 通道关键字设置。使用 SMPP_PORT 选项时,无需同时使用 port 关键字。采用这两个选项的好处在于,它们能够在不需要重新编译配置的情况下得到实现并在实现后进行更改。SMPP_SERVER 选项的其他用法会在添加附加 SMS 通道中进行介绍。
threaddepth 通道关键字控制每个传送进程中,要指定给每个传送线程的消息数量。要计算允许同时连接的总数目,请将以下两个选项的值相乘:SMPP_MAX_CONNECTIONS 和 job_limit (SMPP_MAX_CONNECTIONS * job_limit)。SMPP_MAX_CONNECTIONS 选项控制传送进程中传送线程的最大数量。而 job_limit 选项对于通道运行时所在的作业控制器处理池而言,则控制同时执行的传送进程的最大数量。
要限制同时连接的总数,您必须适当调节其中一个选项或这两个选项。例如,如果远程 SMPP 服务器只允许单一连接,则 SMPP_MAX_CONNECTIONS 和 job_limit 都必须设置为 1。调整这些值时,应优先允许 job_limit 大于 1。
一般情况下,通道选项文件包含通道操作所需的、站点特定的参数。SMS 不需要通道选项文件。如果确定您的安装需要一个通道选项文件,请将该文件以文本文件的形式保存在 installation-directory/config/ 目录中。与其他通道选项文件一样,该文件的文件名也应采用如下格式:
channel_name_option
例如,如果通道名为 sms_mway,则通道选项文件为:
installation-directory/config/sms_mway_option
每个选项都放置在使用如下格式的文件的单一行中:
option_name=option_value
例如,
PROFILE=GSM SMSC_DEFAULT_CHARSET=iso-8859-1 USE_UCS2=1 |
有关可用的 SMS 通道选项及各选项说明的列表,请参见可用选项
电子邮件至 SMS 转换:控制电子邮件到 SMS 的转换过程的选项。
SMS Gateway Server 选项:网关配置文件选项。
SMS 字段:控制已生成 SMS 消息中的 SMS 特定字段的选项。
SMPP 协议:与使用基于 TCP/IP 的 SMPP 协议相关联的选项。
本地化:允许本地化文本字段插入到 SMS 消息中的选项。
其他:调试选项。
下表中汇总了这些选项,并且以下章节进行了更全面的介绍。
表 D–5 SMS 通道选项
|
|
|
---|---|---|
电子邮件到 SMS 转换选项 |
||
选项(页码) |
说明 |
默认值 |
指定是否将电子邮件通知消息转换成 SMS 消息。 |
0 |
|
从电子邮件消息中提取的消息部分的最大数目 |
2 |
|
从电子邮件消息中提取的字节的最大数目 |
960 |
|
一条 SMS 消息中可容纳的字节的最大数目 |
160 |
|
电子邮件消息分割成的 SMS 消息的最大数目 |
6 |
|
将 SMS 消息路由到指定的 IP 主机名。 | ||
SMSC 所使用的默认字符集。 |
US-ASCII |
|
设置 SMS 源地址 |
0 |
|
控制电子邮件消息标题中优先级信息的使用 |
1 |
|
控制生成 SMS 源地址时 Reply-to: 标题行的使用 |
0 |
|
控制生成创始者信息时 Resent-*: 标题行的使用 |
0 |
|
控制电子邮件消息标题中保密性信息的使用 |
1 |
|
在 SMS 消息中使用 UCS2 字符集(如果可用) |
1 |
|
SMS Gateway Server 选项 |
||
匹配在 SMS Gateway Server 的配置文件 sms_gateway.cnf 中配置的网关配置文件名 |
N/A |
|
SMS 字段选项 |
||
默认 SMS 目标地址为 NPI |
0x00 |
|
默认 SMS 目标地址为 TON |
0x01 |
|
SMS 消息的默认优先级设置 |
0=GSM、CDMA 1=TDMA |
|
SMS 消息的默认保密性值标志 |
-1 |
|
与提交的 SMS 消息相关联的 SMS 应用服务 |
N/A |
|
默认 SMS 源地址 |
0 |
|
默认的 SMS 源地址为 NPI |
0x00 |
|
默认的 SMS 源地址为 TON |
0x01 |
|
SMS 消息的默认有效期 |
N/A |
|
将 SMS 目标地址缩减为仅包含 0 至 9 个字符 |
0 |
|
目标 SMS 地址带有前缀的文本字符串 |
N/A |
|
要使用的 SMS 配置文件 |
GSM |
|
使用 SMS sar_ 字段排列多条 SMS 消息 |
0 |
|
SMPP 协议选项 |
||
绑定到 SMTP 服务器时要指定的 ESME NPI |
0x00 |
|
绑定到 SMPP 服务器时要指定的 ESME TON |
0x00 |
|
运行 Sun Java System MessagingServer 的主机的 IP 地址 |
N/A |
|
绑定到 SMPP 服务器时要递交的密码 |
N/A |
|
绑定时要递交到 SMSC 的系统标识 |
N/A |
|
绑定时要递交到 SMSC 的系统类型 |
N/A |
|
与 SMPP 服务器进行单个会话期间要提交的 SMS 消息的最大数目 |
1024 |
|
多部分 SMS 消息的传输顺序 |
0 |
|
SMPP 服务器同时连接的最大数目 |
20 |
|
对于单向 SMS,指 SMPP 服务器将侦听的 TCP 端口。对于双向 SMS,供 SMPP 中继的 LISTEN_PORT 使用的同一 TCP 端口。 |
N/A |
|
对于单向 SMS,指 SMPP 服务器要连接到的主机的名称。 对于双向 SMS,设置为指 SMS Gateway Server 的主机名或 IP 地址。如果使用 SMPP 中继的 LISTEN_INTERFACE_ADDRESS 选项,则请确保使用与指定的网络接口地址相关联的主机名或 IP 地址。 |
N/A |
|
用 SMPP 服务器完成读写操作超时 |
30 |
|
本地化选项 |
||
引入电子邮件消息内容的文本 |
Msg: |
|
用于传送延迟通知的格式化字符串 |
空字符串 |
|
用于传送失败通知的格式化字符串 |
参见说明 |
|
用于中继通知的格式化字符串。 |
参见说明 |
|
要成功传送通知的格式化字符串。 |
参见说明 |
|
指示电子邮件消息创始者时显示的文本 |
$a |
|
没有创始者时显示的文本 |
N/A |
|
要从其选择文本字段的语言组 (i-default) |
i-default |
|
从电子邮件消息中提取的、放置在各行末尾的文本 |
空格字符 |
|
表示消息无内容的文本 |
]no message] |
|
指示电子邮件消息的主题时显示的文本 |
$s |
|
电子邮件消息无主题时显示的文本 |
N/A |
|
其他选项 |
||
启用详细调试输出 |
-1 |
以下选项控制电子邮件消息到 SMS 消息的转换。选项值的范围列在括号中。一般情况下,给定电子邮件消息可转换成一条或多条 SMS 消息。请参见电子邮件到 SMS 的转换过程
(0 或 1)指定是否将电子邮件通知转换成 SMS 通知。电子邮件通知消息必须符合 RFC 1892、1893 和 1894。默认值为 0。
当 GATEWAY_NOTIFICATIONS=0 时,这些通知将被放弃,不会转换成 SMS 通知。
要将这些通知转换成 SMS 通知,则应设置 GATEWAY_NOTIFICATIONS=1。当此选项设置为 1 时,这些本地化选项 (DSN_*_FORMAT) 控制将哪些通知类型(成功、失败、延迟、中继)转换成 SMS 消息并通过网关进行发送。(如果通知类型的值是一个空字符串,则该类型通知将不转换成 SMS 消息。)
(整数)将多部分电子邮件消息转换成一条 SMS 消息时,只有第一批 MAX_MESSAGE_PARTS 指定数量的文本部分将会被转换。其余部分将被放弃。默认情况下,MAX_MESSAGE_PARTS 为 2。要使消息部分的数量不受限制,可指定值为 -1。指定值为 0 时,则不会将任何消息内容置于 SMS 消息中。仅使用电子邮件消息的标题行(例如 Subject:)生成 SMS 消息时,此设置会很有效。
请注意,包含文本和附件的电子邮件消息一般由两部分组成。还请注意,只有纯文本消息部分才可转换。所有其他 MIME 内容类型都将被放弃。
(整数,>= 10)使用此选项,可以设置从电子邮件消息生成的 SMS 消息中所能包含的总字节数的上限。具体来讲,MAX_MESSAGE_SIZE 指定的最大字节数将用于一条或多条生成的 SMS 消息。任何超出此限值的字节将被放弃。
默认情况下,上限强制为 960 个字节。这对应于 MAX_MESSAGE_SIZE=960。要使字节数不受限制,可指定值为零。
所用的字节数在电子邮件消息从 Unicode 转换成 SMSC 的默认字符集或 UCS2 之后产生。这意味着,在转换为 UCS2 的情况下,值为 960 个字节的 MAX_MESSAGE_SIZE 至多产生 480 个字符,因为每个 UCS2 字符至少两个字节长。
请注意,MAX_MESSAGE_SIZE 和 MAX_PAGES_PER_MESSAGE 选项都用于同一目的:限制所得的 SMS 消息的总大小。实际上,MAX_PAGE_SIZE=960 和 MAX_PAGE_SIZE=160 就表示 MAX_PAGES_PER_MESSAGE=6。那么为什么存在两种不同的选项呢?这是为了便于控制页面的整体大小或页数,而无需考虑单条 SMS 消息的最大大小 MAX_PAGE_SIZE。这一点在通道选项文件中可能并不重要,但在使用将电子邮件定向到通道中所述的 将电子邮件定向到通道 或 将电子邮件定向到通道 寻址属性时则很重要。
最后,请注意将使用这两个限制 MAX_MESSAGE_SIZE 和 MAX_PAGE_SIZE * MAX_PAGES_PER_MESSAGE 中较小的一个。
(整数,>= 10)使用 MAX_PAGE_SIZE 选项可控制单条 SMS 消息中允许的最大字节数。默认情况下,使用的字节数值为 160。这对应于 MAX_PAGE_SIZE=160。
(整数,1 至 255)使用此选项,可控制为给定电子邮件消息生成的 SMS 消息的最大数目。事实上,此选项将截断电子邮件消息,只把电子邮件消息中符合 MAX_PAGES_PER_MESSAGE 设置的部分转换成 SMS 消息。有关进一步的讨论,请参见 MAX_PAGE_SIZE 选项的说明。
默认情况下,MAX_PAGES_PER_MESSAGE 设置为 1 或 MAX_MESSAGE_SIZE 除以 MAX_PAGE_SIZE 的得数二者中的较大值。
(字符串、IP 主机名、1 至 64 个字节)所有以配置文件为目标的 SMS 消息将使用以下格式的电子邮件地址,重新路由至指定的 IP 主机名:
SMS-destination-address@route-to
其中 SMS-destination-address 是 SMS 消息的目标地址,而 route-to 则是此选项指定的 IP 主机名。这条 SMS 消息的全部内容将作为所得的电子邮件消息的内容进行发送。PARSE_RE_* 选项将被忽略。
PARSE_RE_* 和 ROUTE_TO 选项互斥。在同一网关配置文件中同时使用这两个选项将导致配置错误。
(字符串)使用此选项,可以指定 SMSC 的默认字符集。请使用以下文件中给定的字符集名称
installation-directory/config/charsets.txt
如果未指定此选项,就假设使用 US-ASCII。请注意,charsets.txt 中使用的助记名称是在同一目录的 charnames.txt 中定义的。
处理电子邮件消息时,首先对标题行和文本消息部分进行解码,然后将其转换为统一字符编码。接着,数据将会转换成 SMSC 的默认字符集或 UCS2,这取决于 USE_UCS2 选项的值以及 SMS 消息是否至少包含一个默认 SMSCC 字符集中所没有的字形。请注意,UCS2 字符集是 16 位统一字符编码,通常称作 UTF-16。
(整数,0 至 2)设置此选项,以允许将 From: 地址传送至 SMSC。该值指示 From: 地址的来源及其具备的格式。表 D–6 显示了允许的值及其含义。
表 D–6 USE_HEADER_FROM 值
值 |
说明 |
---|---|
0 |
始终不从 From: 地址设置 SMS 源地址。使用已找到的属性-值对 |
1 |
SMS 源地址设置为 from-local@from-domain,其中 From: 地址为:@from-route:from-local@from-domain |
2 |
SMS 源地址设置为 from-local,其中 From: 地址为:@from-route:from-local@from-domain |
(0 或 1)此选项用于控制 RFC 822 Priority: 标题行的处理。默认情况下,Priority: 标题行中的信息用于设置所得到的 SMS 消息的优先级标志,以覆盖通过 DEFAULT_PRIORITY 选项指定的默认 SMS 优先级。这种情况对应于 USE_HEADER_PRIORITY=1。要禁用 RFC 822 Priority: 标题行,请指定 USE_HEADER_PRIORITY=0。
有关处理 SMS 优先级标志的更多信息,请参见 DEFAULT_PRIORITY 选项的说明。
(0 或 1)当 USE_HEADER_FROM =1 时,此选项用于控制是否考虑将 Reply-to: 或 Resent-reply-to: 标题行用作 SMS 源地址。默认情况下,Reply-to: 和 Resent-reply-to: 标题行会被忽略。这对应于选项值 0。要想启用这些标题行,请使用选项值 1。
请注意,RFC 2822 已弃用 Reply-to: 和 Resent-reply-to: 标题行。
(0 或 1)当 USE_HEADER_FROM =1 时,此选项用于控制是否考虑将 Resent- 标题行用作 SMS 源地址。默认情况下,Resent- 标题行会被忽略。这对应于选项值 0。要想启用这些标题行,请使用选项值 1。
请注意,RFC 2822 已弃用 Resent- 标题行。
(0 或 1)USE_HEADER_SENSITIVITY 选项用于控制 RFC 822 Sensitivity: 标题行的处理。默认情况下,Sensitivity: 标题行中的信息用于设置所得到的 SMS 消息的保密性标志,以覆盖通过 DEFAULT_PRIVACY 选项指定的默认 SMS 保密性。这种情况为默认情况,对应于 USE_HEADER_SENSITIVITY=1。要启用 RFC 822 Sensitivity: 标题行,请指定 USE_HEADER_SENSITIVITY=0。
有关处理 SMS 保密性标志的更多信息,请参见 DEFAULT_PRIVACY 选项的说明。
(0 或 1)如果适用,通道将在其生成的 SMS 消息中使用 UCS2 字符集。这是一个默认行为,对应于 USE_UCS2=1。要禁用 UCS2 字符集,请指定 USE_UCS2=0。有关字符集问题的更多信息,请参见 SMSC_DEFAULT_CHARSET 选项的说明。
表 D–7 USE_UCS2 有效值
USE_UCS2 值 |
结果 |
---|---|
1(默认值) |
将尽可能使用 SMSC 默认字符集。如果始发电子邮件消息中包含 SMSC 默认字符集所没有的符号,就会使用 UCS2 字符集。 |
0 |
将始终使用 SMSC 默认字符集。该字符集中所没有的字形将由助记符号表示(例如用 "AE" 表示 AE-ligature)。 |
SMS Gateway Server 配置文件 sms_gateway.cnf 中网关配置文件的名称。
以下选项允许在生成的 SMS 消息中指定 SMS 字段。
(整数,0 至 255)默认情况下,将指定目标地址的 NPI(数字规划指标)值为零。使用此选项,可指定一个范围在 0 至 255 之间的替代整数值。典型 NPI 值包含下表 D–8 中所找到的值:
表 D–8 数字规划指标值
值 |
说明 |
---|---|
0 |
未知 |
1 |
ISDN 类(E.163、E.164) |
3 |
数据 (X.121) |
4 |
电传 (F.69) |
6 |
陆地移动设备 (E.212) |
8 |
全国 |
9 |
专用 |
10 |
ERMES |
14 |
IP 地址 (Internet) |
18 |
WAP 客户机 ID |
>= 19 |
未定义 |
可以将此选项的值指定为以下三种形式之一:
十进制值(例如 10)。
带前缀 "0x" 的十六进制值(例如 0x0a)。
以下任何一种不区分大小写的文本字符串(相关联的十进制值显示在括号中):数据 (3)、默认值 (0)、e.163 (1)、e.164 (1)、e.212 (6)、ermes (10)、f.69 (4)、Internet (14)、IP (14)、ISDN (1)、陆地移动设备 (6)、全国 (8)、专用 (9)、电传 (4)、未知 (0)、wap (18)、x.121 (3)。
(整数,0 至 255)默认情况下,将指定目标地址的 TON(数字类型)指标值为零。使用此选项,可指定一个范围在 0 至 255 之间的替代整数值。典型 TON 值包含下表 D–9 中所找到的值:
表 D–9 典型 TON 值
值 |
说明 |
---|---|
0 |
未知 |
1 |
国际 |
2 |
全国 |
3 |
网络特定 |
4 |
用户号码 |
5 |
字母数字 |
6 |
缩写 |
>=7 |
未定义 |
可以将此选项的值指定为以下三种形式之一:
十进制值(例如 10)
带前缀 "0x" 的十六进制值(例如 0x0a)
以下任何一种不区分大小写的文本字符串(相关联的十进制值显示在括号中):缩写 (6)、字母数字 (5)、默认值 (0)、国际 (1)、全国 (2)、网络特定 (3)、用户 (4)、未知 (0)。
(整数,0 至 255)SMS 消息具有强制性优先级字段。下表 D–10 显示了 SMS 优先级值的解释:
表 D–10 针对每个 SMS 配置文件类型解释的 SMS 优先级值
值 |
GSM |
TDMA |
CDMA |
---|---|---|---|
0 |
非优先级 |
大量 |
正常 |
1 |
优先级 |
正常 |
交互 |
2 |
优先级 |
紧急 |
紧急 |
3 |
优先级 |
特急 |
紧急 |
使用此选项,可以指定赋予 SMS 消息的默认优先级。如果没有指定,则 PROFILE=GSM 和 CDMA 使用的默认优先级为 0,PROFILE=TDMA 的默认优先级为 1。
请注意,如果 USE_HEADER_PRIORITY=1 且电子邮件消息具有 RFC 822 Priority: 标题行,则将使用该标题行中指定的优先级来设置所得到的 SMS 消息的优先级。具体来讲,如果 USE_HEADER_PRIORITY=0,则 SMS 优先级标志会始终根据 DEFAULT_PRIORITY 选项来设置,而 RFC 822 Priority: 标题行则始终被忽略。如果 USE_HEADER_PRIORITY=1,则原始电子邮件消息的 RFC 822 Priority: 标题行将用于设置 SMS 消息的优先级标志。如果此标题行不存在,则使用 DEFAULT_PRIORITY 选项设置 SMS 优先级标志。
下表显示用于将 RFC 822 Priority: 标题行值转换成 SMS 优先级标志的映射:
表 D–11 将 Priority 标题转换成 SMS 优先级标志的映射
RFC 822 |
SMS 优先级标志 | ||
---|---|---|---|
优先级:value |
GSM |
TDMA |
CDMA |
第三级 |
非优先级 (0) |
大量 (0) |
正常 (0) |
第二级 |
非优先级 (0) |
大量 (0) |
正常 (0) |
非急 |
非优先级 (0) |
大量 (0) |
正常 (0) |
正常 |
非优先级 (0) |
正常 (1) |
正常 (0) |
紧急 |
优先级 (1) |
紧急 (2) |
紧急 (2) |
(整数,-1、0 至 255)是否要在 SMS 消息中设置保密性标志以及使用何值是通过 DEFAULT_PRIVACY 和 USE_HEADER_SENSITIVITY 选项来控制的。默认情况下,DEFAULT_PRIVACY 使用值 -1。下表 D–12 显示了将 DEFAULT_PRIVACY 和 USE_HEADER_SENSITIVITY 选项设置为不同值的结果。
表 D–12 DEFAULT_PRIVACY 和 USE_HEADER_SENSITIVITY 的值的结果
DEFAULT_PRIVACY |
USE_HEADER_SENSITIVITY |
结果 |
---|---|---|
-1 |
0 |
SMS 消息中从不设置 SMS 保密性标志。 |
n >= 0 |
0 |
始终将 SMS 保密性标志的值设置为 n。RFC 822 Sensitivity: 标题行则始终被忽略。 |
-1(默认值) |
1(默认值) |
仅当原始电子邮件消息包含 RFC 822 Sensitivity: 标题行时,才设置 SMS 消息的保密性标志。在这种情况下,将 SMS 保密性标志设置为对应于 Sensitivity: 标题行的值。该值为默认值。 |
n >= 0 |
1 |
将 SMS 消息的保密性标志设置为对应于原始电子邮件消息的 RFC 822 Sensitivity: 标题行。如果电子邮件消息不包含 Sensitivity: 标题行,则将 SMS 保密性标志的值设置为 n。 |
下表 D–13 显示了 SMS 保密性值的解释:
表 D–13 SMS 保密性值解释
值 |
说明 |
---|---|
0 |
无限制 |
1 |
有限制 |
2 |
机密 |
3 |
秘密 |
>= 4 |
未定义 |
下表 D–14 显示了用于将 RFC 822 Sensitivity: 标题行值转换成 SMS 保密性值的映射:
表 D–14 将 Sensitivity 标题转换成 SMS 保密性值的映射
RFC 822 Sensitivity: value |
SMS 保密性值 |
---|---|
个人 |
1(有限制) |
专用 |
2(机密) |
公司机密 |
3(秘密) |
(字符串,0 至 5 个字节)与通道生成的 SMS 消息相关联的服务类型。默认情况下,不指定服务类型(即,零长度字符串)。某些通用的服务类型包括:CMT(cellular messaging,蜂窝式邮件服务)、CPT(cellular paging,蜂窝式呼叫)、VMN(voice mail notification,语音邮件通知)、VMA(voice mail alerting,语音邮件警报)、WAP(wireless application protocol,无线应用协议)和 USSD(unstructured supplementary data services,非结构化辅助数据服务)。
(字符串,0 至 20 个字节)供电子邮件消息生成的 SMS 消息使用的源地址。请注意,当 USE_HEADER_FROM=1 时,使用此选项指定的值将被电子邮件消息的创始者地址所覆盖。默认情况下,该值被禁用,即值为 0。
(整数,0 至 255)默认情况下,将指定源地址的 NPI 值为零。使用此选项,可指定一个范围在 0 至 255 之间的替代整数值。有关典型 NPI 值表,请参见 DEFAULT_DESTINATION_NPI 选项的说明。
(整数,0 至 255)默认情况下,将指定源地址的 TON 指标值为零。使用此选项,可指定一个范围在 0 至 255 之间的替代整数值。有关典型 TON 值表,请参见 DEFAULT_DESTINATION_TON 选项的说明。
(字符串,0 至 252 个字节)默认情况下,SMS 消息不会被给定相对有效期;而是使用 SMSC 的默认值。使用此选项可以指定不同的相对有效期。可以将这些值的单位指定为秒、分钟、小时或天。下表 D–15 指定了此选项的不同值的格式和说明:
表 D–15 DEFAULT_VALIDITY_PERIOD 格式和值
格式 |
说明 |
---|---|
nnn |
隐含单位为秒(例如 604800) |
nnns |
单位为秒(例如 604800s) |
nnnm |
单位为分钟(例如 10080m) |
nnnh |
单位为小时(例如 168h) |
nnnd |
单位为天(例如 7d) |
可以使用 0、0s、0m、0h 或 0d 的规范来选择 SMSC 的默认有效期。即,如果使用指定的 0、0s、0m、0h 或 0d,就会为已生成的 SMS 消息的有效期指定一个空字符串。
请注意,此选项不接受 UTC 格式的值。
(0 或 1)使用此选项可删除从电子邮件信封 To: 地址所提取的 SMS 目标地址中的所有非数字字符。例如,如果信封 To: 地址为:
"(800) 555-1212"@sms.siroe.com
则该地址将被减少为:
8005551212@sms.siroe.com
要启用此去除操作,请为此选项指定值 1。默认情况下,将禁用此删除功能,对应的选项值为 0。请注意,如果启用,则删除操作会在通过 DESTINATION_ADDRESS_PREFIX 选项添加任何目标地址前缀之前完成。
(字符串)在某些实例中,可能需要确保所有 SMS 目标地址都带有固定的文本字符串前缀(例如 "+")。可以使用此选项指定这样一个前缀。然后,此前缀将被添加到任何没有指定前缀的 SMS 目标地址中。要避免前缀被 DESTINATION_ADDRESS_NUMERIC 选项删除,请在 DESTINATION_ADDRESS_NUMERIC 选项之后应用此选项。
(字符串)指定要与 SMSC 配合使用的 SMS 配置。可能的值为 GSM、TDMA 和 CDMA。如果没有指定,则假设为 GSM。此选项仅用于为其他通道选项(例如 DEFAULT_PRIORITY 和 DEFAULT_PRIVACY)选择默认值。
(0 或 1)过大的电子邮件消息可能需要分割成多条 SMS 消息。如果发生这种情况,就可以使用 SMS sar_ 字段有选择地为一条 SMS 消息添加排序信息。这将会生成“分段”SMS 消息,此消息可由接收终端重新组合成一条 SMS 消息。指定 USE_SAR=1,表示添加此排序信息(如果适用)。默认设置为不添加排序信息,对应于 USE_SAR=0。
指定 USE_SAR=1 时,REVERSE_ORDER 选项将被忽略。
以下选项可用于指定 SMPP 协议参数。这些名称以字符串 "ESME_" 开头的选项可用于识别用作外部短消息实体 (External Short Message Entity, ESME) 的 MTA;即,将 MTA 绑定至 SMPP 服务器,以便将 SMS 消息提交至此服务器的关联 SMSC 时。
(整数,0 至 255)默认情况下,绑定操作将指定 ESME NPI 的值为零,该值表示未知 NPI。使用此选项,可指定一个范围在 0 至 255 之间的替代整数值。有关典型 NPI 值表,请参见 DEFAULT_DESTINATION_NPI 选项的说明。
(整数,0 至 255)默认情况下,绑定操作将指定 ESME TON 的值为 0。使用此选项,可指定一个范围在 0 至 255 之间的替代整数值。有关典型 TON 值表,请参见 DEFAULT_DESTINATION_TON 选项的说明。
(字符串,0 至 15 个字节)绑定至 SMPP 服务器时,BIND PDU 表示客户机的(即 ESME 的)地址范围是一个 IP 地址。这一操作可通过将 TON 指定为 0x00 并将 NPI 指定为 0x0d 来完成。然后,地址范围字段的值将被设置为运行 SMS 通道的主机的 IP 地址。指定 IP 地址为点分十进制格式(例如 127.0.0.1)。
(字符串,0 至 8 个字节)绑定至 SMPP 服务器时,可能需要密码。如果需要密码,请使用此选项指定密码。默认情况下,存在长度为零的密码字符串。
(字符串,0 至 15 个字节)绑定至 SMPP 服务器时,可能需要为 MTA 提供系统 ID。默认情况下,不指定系统 ID(即,使用零长度的字符串)。要指定系统 ID,请使用此选项。
(字符串,0 至 12 个字节)绑定至 SMPP 服务器时,可能需要为 MTA 提供系统类型。默认情况下,不指定系统类型(即,使用零长度的字符串)。
(整数,>= 0)某些 SMPP 服务器可能会限制单个绑定会话期间提交的 SMS 消息的最大数量。认识到这一点后,就可使用此选项指定单个会话期间可提交的 SMS 消息的最大数目。达到此限制后,通道将解开,并关闭 TCP/IP 连接,然后再重新连接并重新绑定。
默认情况下,MAX_PAGES_PER_BIND 使用的值为 1024。请注意,通道还将检测 ESME_RTHROTTLED 错误并在单次运行期间相应地调整 MAX_PAGES_PER_BIND。
(0 或 1)当一条电子邮件消息生成多条 SMS 消息时,这些 SMS 消息会按顺序 (REVERSE_ORDER=0) 或倒序 (REVERSE_ORDER=1) 提交至 SMSC。倒序可用于接收终端首先显示最后接收到的消息的情况。在这种情况下,最后接收到的消息将成为电子邮件消息的第一部分而不是最后一部分。默认情况下,使用 REVERSE_ORDER=1。
请注意,指定 USE_SAR=1 时,此选项将被忽略。
(整数,1 至 50)此选项控制每个进程中同时执行的 SMPP 连接的最大数量。由于每个连接都有一个相关联的线程,因此该选项还可用于限制每个进程中的“辅助”线程的最大数量。默认情况下,SMPP_MAX_CONNECTIONS=20。
(整数,1 至 65535)可使用此选项或 port 通道关键字指定 SMPP 服务器侦听的 TCP 端口。此端口号必须通过这两种机制之一进行指定。如果同时使用这两种机制指定,则优先采用 SMPP_PORT 选项所作的设置。请注意,此选项没有默认值。
对于双向 SMS,请确保其端口与用于 SMPP 中继的 LISTEN_PORT 相同。
(字符串,1 至 252 个字节)对于单向 SMS,默认情况下,要连接的 SMPP 服务器 的 IP 主机名为与通道关联的正式主机名,即 MTA 配置中通道定义的第二行中所显示的主机名。此选项可用于指定不同的主机名或 IP 地址,该主机名或 IP 地址将覆盖通道定义中所指定的主机名或 IP 地址。在指定 IP 地址时,请使用点分十进制表示法(例如 127.0.0.1)。
对于双向 SMS,设置为指 SMS Gateway Server 的主机名或 IP 地址。如果使用 SMPP 中继的 LISTEN_INTERFACE_ADDRESS 选项,则请确保使用与指定的网络接口地址相关联的主机名或 IP 地址。
(整数,>= 2)默认情况下,等待数据写入 SMPP 服务器完成或从 SMPP 服务器接收数据时,使用的超时时间为 30 秒。可使用 TIMEOUT 选项指定不同的超时值(以秒为单位)。指定值应至少为 1 秒。
在构造 SMS 消息时,SMS 通道有许多其放置到这些消息中的固定文本字符串。例如,这些字符串会引入电子邮件的 From: 地址和 Subject: 标题行。使用本节所述的通道选项,可为不同语言指定这些字符串的版本,并为该通道指定默认语言。示例 D–2 显示了选项文件的语言部分:
LANGUAGE=default-language [language=i-default] FROM_PREFIX=From: SUBJECT_PREFIX=Subj: CONTENT_PREFIX=Msg: LINE_STOP= NO_MESSAGE=[no message] REPLY_PREFIX=Re: [language=en] FROM_PREFIX=From: SUBJECT_PREFIX=Subj: CONTENT_PREFIX=Msg: LINE_STOP= NO_MESSAGE=[no message] REPLY_PREFIX=Re: ... |
在每个 [language=x] 块中,都可指定与该语言相关的本地化选项。如果块中未指定特定选项,则请使用该选项的全局值。在 [language=x] 块以外指定的本地化选项将设置该选项的全局值。
对于下文列出的选项,必须使用 US-ASCII 或 UTF-8 字符集指定字符串值。请注意,US-ASCII 字符集是 UTF-8 字符集的特例。
(字符串,0 至 252 个字节)置于 SMS 消息中电子邮件消息本身内容之前的文本字符串。默认全局值为 US-ASCII 字符串 "Msg:"。
(字符串,0 至 256 个字符)用于传送延迟通知的格式化字符串。默认情况下,此选项使用一个空字符串,从而禁止将延迟通知转换成 SMS。请注意,必须将 GATEWAY_NOTIFICATIONS 设置为 1 才能使此选项生效。GATEWAY_NOTIFICATIONS=0 时,此选项将被忽略。
(字符串,0 至 256 个字符)用于永久性传送失败通知的格式化字符串。此选项的默认值为字符串:
Unable to deliver your message to $a; no further delivery attempts will be made.
要禁止失败通知的转换,请为此选项指定一个空字符串。请注意,必须将 GATEWAY_NOTIFICATIONS 设置为 1 才能使此选项生效。GATEWAY_NOTIFICATIONS=0 时,此选项将被忽略。
(字符串,0 至 256 个字符)用于中继通知的格式化字符串。默认值为字符串:
Your message to $a has been relayed to a messaging system which may not provide a final delivery confirmation
要禁止中继通知的转换,请为此选项指定一个空字符串。请注意,必须将 GATEWAY_NOTIFICATIONS 设置为 1 才能使此选项生效。GATEWAY_NOTIFICATIONS=0 时,此选项将被忽略。
(字符串,0 至 256 个字符)用于成功传送通知的格式化字符串。默认值为字符串:
Your message to $a has been delivered
要禁止成功的传送通知的转换,请为此选项指定一个空字符串。请注意,必须将 GATEWAY_NOTIFICATIONS 设置为 1 才能使此选项生效。GATEWAY_NOTIFICATIONS=0 时,此选项将被忽略。
(字符串,0 至 252 个字节)用于格式化创始者信息以插入到 SMS 消息中的格式化模板。默认全局值为 US-ASCII 字符串 "$a",该字符串将替换创始者的电子邮件地址。请参见格式化模板
(字符串,0 至 252 个字节)没有创始者地址可供显示时置于 SMS 消息中的文本字符串。默认全局值是一个空字符串。
请注意,由于站点一般都会拒绝没有任何创始者地址的电子邮件消息,所以通常将永远不会使用此选项。
(字符串,0 至 40 个字节)用于从中选择文本字符串的默认语言组。如果未指定,则语言将取自主机的默认语言环境规范。如果主机的语言环境规范不可用或对应 "C",则会使用 i-default。(i-default 对应于“适用于国际读者的英语文本”。)
(字符串,0 至 252 个字节)置于 SMS 消息中从电子邮件消息提取的各行之间的文本字符串。默认全局值为 US-ASCII 空格字符 " "。
(字符串,0 至 252 个字节)置于 SMS 消息中表示电子邮件消息无内容的文本字符串。默认全局值是 US-ASCII 字符串 "[no message]"。
(字符串,0 至 252 个字节)用于格式化 Subject: 标题行的内容,以显示在 SMS 消息中的格式化模板。此选项的默认全局值是 US-ASCII 字符串 "($s)"。有关更多信息,请参见格式化模板。
有关 Subject: 标题行不存在或该标题行的内容为空字符串时的处理说明,请参见 SUBJECT_NONE 选项。
(字符串,0 至 252 个字节)原始电子邮件消息没有 Subject: 标题行或 Subject: 标题行的值为空字符串时所显示的文本字符串。此选项的默认全局值是空字符串。
(整数,位掩码)启用调试输出。默认值为 6,即选择警告消息和错误消息。任何非零值都可为通道本身启用调试输出,这与在通道定义中指定 master_debug 相同。表 D–16 定义了 DEBUG 位掩码的位值。
表 D–16 DEBUG 位掩码
位 |
值 |
说明 |
---|---|---|
0-31 |
-1 |
极其详细的输出 |
0 |
1 |
提示性消息 |
1 |
2 |
警告消息 |
3 |
4 |
错误消息 |
3 |
8 |
子例行程序调用跟踪 |
4 |
16 |
散列表诊断 |
5 |
32 |
I/O 诊断,接收 |
6 |
64 |
I/O 诊断,传输 |
7 |
128 |
SMS 到电子邮件转换的诊断(移动设备始发和 SMS 通知) |
8 |
256 |
PDU 诊断,标题数据 |
9 |
512 |
PDU 诊断,主体数据 |
10 |
1024 |
PDU 诊断,类型-长度-值数据 |
11 |
2048 |
选项处理;将所有选项设置发送到日志文件。 |
使用 FROM_FORMAT、SUBJECT_FORMAT 和所有 DSN_* 通道选项指定的格式化模板都是 UTF-8 字符串,其中可能包含文字文本与替换序列的组合。假设电子邮件地址样例为
Jane Doe <user@siroe>
下表 D–17 显示了可识别的替换序列:
表 D–17 替换序列
序列 |
说明 |
---|---|
$a |
用创始者电子邮件地址的本地和域部分替换(例如 "user@siroe") |
$d |
用创始者电子邮件地址的域部分替换(例如 "domain") |
$p |
用创始者电子邮件地址的短语部分(如果有)替换(例如 "Jane Doe") |
$s |
用 Subject: 标题行的内容替换 |
$u |
用创始者电子邮件地址的本地部分替换(例如 "user") |
\x |
用文字字符 "x" 替换 |
例如格式化模板
From: $a
将生成文本字符串
From: user@siroe
构造
${xy:alternate text}
可用于替换与序列 x 相关联的文本。如果该文本为空字符串,则会改用与序列 y 相关联的文本。而且,如果该文本为空字符串,则会替换替代文本。例如,假设将格式化模板
From: ${pa:unknown sender}
用于创始者电子邮件地址
John Doe <jdoe@siroe.com>
(其中有一个短语部分),该模板将生成:
From: John Doe
但是,对于地址
jdoe@siroe.com
(其中没有短语),该模板将生成
From: jdoe@siroe.com
而对于空创始者地址,该模板将生成
From: unknown sender
您可以配置 MTA,使之具有多个 SMS 通道。执行此操作的典型原因有两个:
为了与不同 SMPP 服务器进行通信。
这是显而易见的:仅向配置中添加附加 SMS 通道,确保 (a) 为其取一个不同的通道名并且 (b) 使不同的主机名与其相关联。例如,
sms_mway port 55555 threaddepth 20 smpp.siroe.com sms_ace port 777 threaddepth 20 sms.ace.net |
请注意,不需要新的重写规则。如果没有直接匹配的重写规则,Messaging Sever 就查找带有相关联主机名的通道。例如,如果服务器用 user@host.domain 表示,则它会查找名为 "host.domain" 的通道。如果它找到这样的通道,就在该通道中路由消息。否则,它会开始查找 ".domain" 的重写规则,如果找不到,则会查找点 (".") 规则。有关重写规则的更多信息,请参见第 11 章,配置重写规则。
为了使用不同的通道选项与同一 SMPP 服务器进行通信。
要使用不同的通道选项与同一 SMPP 服务器进行通信,请在每个通道定义的 SMPP_SERVER 通道选项中指定同一 SMPP 服务器。
由于两个不同的通道不能有相同的正式主机名(即,列在通道定义第二行中的主机名),所以有必要使用此机制。要使它们能与同一 SMPP 服务器进行通信,请定义两个独立的通道,每个通道均在其通道选项文件的 SMPP_SERVER 中指定同一 SMPP 服务器。
例如,您可以给出以下通道定义
sms_mway_1 port 55555 threaddepth 20 SMS-DAEMON-1 sms_mway_2 port 55555 threaddepth 20 SMS-DAEMON-2 |
和重写规则
sms-1.siroe.com $u%sms-1.siroe.com@SMS-DAEMON-1 sms-2.siroe.com $U%sms-2.siroe.com@SMS-DAEMON-2 |
然后,若要使它们都能使用同一 SMPP 服务器,这两个通道中的任何一个通道都要在其通道选项文件中指定 SMPP_SERVER=smpp.siroe.com。
如果某条 SMS 消息因为临时性错误(例如,无法到达 SMPP 服务器)而无法传送,电子邮件消息将保留在传送队列中,并在以后再重试。除非另有配置,否则作业控制器将在一个小时后才进行重试。对于 SMS 消息传送来说,这一等待时间好像太长。在这种情况下,建议将 backoff 通道关键字与 SMS 通道配合使用,以为传送尝试指定一个更主动的安排。例如,
sms_mway port 55555 threaddepth 20 \ backoff pt2m pt5m pt10m pt30m notices 1 smpp.siroe.com
对于上述设置,将在第一次尝试结束后两分钟进行一次重新传送尝试。如果再次失败,则请在第二次尝试后五分钟再次尝试。然后在十分钟后再试,此后每隔三十分钟重试一次。如果该消息在一天之后仍不能传送,则 notices 1 通道关键字会把它作为不可传送的消息予以返回。
MTA SMS 通道可与任何 SMPP V3.4 兼容 SMPP 服务器配合使用。为便于说明配置示例,本节将解释如何配置 SMS 通道,以使其与 MobileWay SMPP 服务器配合使用。MobileWay http://www.mobileway.com/ 是领先的全局数据和 SMS 连接性提供商。通过 MobileWay 路由您的 SMS 通信,您就可以实现与全球范围内大多数主要 SMS 网络上的 SMS 用户的通信。
如果用 MobileWay 申请 SMPP 帐户,系统可能会要求您回答以下问题:
您的 SMPP 客户机的 IP 地址:请提供 Internet 上其他域可见的您的 Messaging Server 系统的 IP 地址。
默认有效期:这是 MobileWay 将使用的 SMS 有效期,在您提交的 SMS 消息中不应指定有效期。在该有效期过期前不能传送的 SMS 消息将被放弃。请提供一个合理的有效期值(例如 2 天、7 天等)。
窗口大小:这个值是 SMPP 服务器在提交任何其他 SMS 消息前,您的 SMPP 客户机将停止并等待 SMPP 服务器响应之前将提交的 SMS 消息的最大数目。您必须提供一个至少能容纳 1 条消息的值。
时区:指定您的 Messaging Server 系统运行的时区。应将时区指定为一个 GMT 偏移。
超时:与单向 SMS 消息传送无关。
用于外挂请求的 IP 地址和 TCP 端口:与单向 SMS 消息传送无关。
对 MobileWay 提供了上述问题的答案以后,您将得到一个 SMPP 帐户以及与其 SMPP 服务器进行通信所必需的信息。此信息包括
Account Address: a.b.c.d:p Account Login: system-id Account Passwd: secret |
"Account Address" 字段为 IP 地址 a.b.c.d 及您要连接至的 MobileWay SMPP 服务器的 TCP 端口号 p。请将这些值用于 SMPP_SERVER 和 SMPP_PORT 通道选项。将 "Account Login" 和 "Account Passwd" 的值分别用于 ESME_SYSTEM_ID 和 ESME_PASSWORD 通道选项。使用此信息时,您通道的选项文件应包括
SMPP_SERVER=a.b.c.d SMPP_PORT=p ESME_SYSTEM_ID=system-id ESME_PASSWORD=secret |
此时,要与 MobileWay 交互操作,就需要作两项附加选项设置
ESME_ADDRESS_TON=0x01 DEFAULT_DESTINATION_TON=0x01 |
imta.cnf 文件中的重写规则可以显示为
sms.your-domain $u@sms.your-domain
而 imta.cnf 文件中的通道定义可以显示为
sms_mobileway sms.your-domain |
通道选项文件、重写规则和通道定义适当显示后,就可以发送一条测试消息。MobileWay 要求国际寻址为以下格式
+<country-code><subscriber-number>
例如,要向用户编号为 (800) 555-1212 的北美用户发送一条测试消息,就应将您的电子邮件消息寄到
+18005551212@sms.your-domain
要调试通道,请在此通道的定义中指定 master_debug 通道关键字。例如,
sms_mway port 55555 threaddepth 20 \ backoff pt2m pt5m pt10m pt30m notices 1 master_debug |
使用 master_debug 通道关键字,有关通道操作的基本诊断信息将被输出至通道的日志文件中。要获得有关通道所承担的 SMPP 事务的详细诊断信息,还请在通道的选项文件中指定
DEBUG=-1
。
有关配置 SMS 通道的常规指导,请参见上述从SMS 通道配置开始的各个主题。把 SMS 通道配置为似乎将直接与远程 SMSC 通话,其中的例外情况都列出在以下表 D–18 中:
表 D–18 双向配置的异常情况
例外 |
解释 |
---|---|
master 通道关键字 |
删除 master 通道关键字(如果存在)。 不再需要配置 SMS 通道。 |
SMPP_SERVER |
设置为指向 SMS Gateway Server 的 IP 地址的主机名。如果使用 SMPP 中继的 LISTEN_INTERFACE_ADDRESS 选项(请参见配置选项),则请确保使用与指定的网络接口地址相关联的主机名或 IP 地址。 |
SMPP_PORT |
用于实例化 SMPP 中继的 LISTEN_PORT 设置所用的同一 TCP 端口(请参见SMPP 中继) |
DEFAULT_SOURCE_ADDRESS |
拾取一个值,然后配置远程 SMSC,以将此地址路由回 Gateway SMPP 服务器。在 SMS 通道的选项文件中,使用此选项指定选定的值。 |
GATEWAY_PROFILE |
设置为与网关配置文件的名称相匹配。请参见网关配置文件 |
USE_HEADER_FROM |
设置为 0。 |
所有其他通道配置都应按照 SMS 通道文档中的介绍执行。
如设置双向 SMS 路由选择中所提及的,远程 SMSC 需要配置为通过使用 LISTEN_PORT 选项指定的 TCP 端口号,将 SMS 地址(在 DEFAULT_SOURCE_ADDRESS 通道选项中定义)路由至 Gateway 的 SMP 服务器。(有关如何指定 LISTEN_PORT,请参见SMPP 服务器。)
请注意,多个 SMS 通道可使用同一 SMPP 中继。同样,只需要一个 SMPP 服务器或网关配置文件就可为多个 SMS 通道处理 SMS 多个回复和通知。存在对多个中继、服务器和网关配置文件进行配置的功能以通过配置选项影响不同的用法特征。