将 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。