9


移动始发推送消息

订户可通过使用移动始发 (Mobile Originated, MO) 推送技术来启动内容请求。Content Delivery Server 使用推送监听器适配器接收这些消息。

推送适配器用作 Content Delivery Server 与推送实现之间的接口,可用于接收消息。可以配置 Content Delivery Server 以使用所需的推送监听器适配器。

随 Content Delivery Server 提供的推送监听器适配器将在以下各节进行介绍。如果这些适配器未提供所需的功能,则您可以使用消息传送 API 创建自己的推送监听器适配器。有关此 API 的信息,请参见《Sun Javatrademark System Content Delivery Server 5.1 定制指南》。

本章包含以下主题:


9.1 推送监听器适配器

Content Delivery Server 为支持 CIMD2 或 SMPP 3.4 的 SMSC 提供了推送监听器适配器。此外,还支持直接来自 SMSC 的 HTTP 格式的消息。

消息必须采用以下形式:


[shared-keyword] [device-prefix | campaign-prefix] bundle-ID | content-ID | keyword | campaign-coupon

 

表 9-1 介绍了这些消息参数。


表 9-1 MO 推送消息参数

参数

描述

shared-keyword

SMSC 指定的标识符。仅在使用 SMSC 指定的共享关键字时,才需要使用此参数。

device-prefix

标识订户所使用的设备类型的字符串。仅当消息来自未在 Content Delivery Server 中注册的用户时,才需要使用此参数。

campaign-prefix

将消息标识为活动请求的字符串。

bundle-ID

标识订户所请求的包的包 ID。包 ID 包含包前缀以及在创建包时由 Content Delivery Server 指定的号码。

content-ID

标识订户所请求的内容的内容 ID。内容 ID 在提交内容时由 Content Delivery Server 指定。

keyword

标识订户所请求的内容的关键字。关键字由 Vending Manager 管理员指定,并且是可选的。

campaign-coupon

与请求的活动相关联的礼券。此参数仅在使用 campaign-prefix 时有效。


 

要处理来自订户的 MO 推送消息,请按以下几节所述来配置 Subscriber Portal 和消息传送服务。

9.1.1 配置 Subscriber Portal 以支持 MO 推送

$CDS_HOME/deployment/deployment-name/conf 目录下的 SubscriberPortal.properties 文件中设置以下属性:

在位于 $CDS_HOME/deployment/deployment-name/conf 目录下的 CDS.properties 文件中设置 bundle.prefix 属性。此属性用于定义包 ID 中使用的前缀。默认值为 b

9.1.2 配置消息传送服务以支持 MO 推送

应将消息传送服务配置为您的 SMSC 所支持的格式。本产品为 SMPP 3.4 和 CIMD2 提供了适配器。还支持直接通过 SMSC 执行 HTTP 传送。如果这些格式无法满足您的要求,您可以使用消息传送 API 编写自己的适配器。有关此 API 的信息,请参见《Sun Javatrademark System Content Delivery Server 5.1 定制指南》。

9.1.2.1 设置 SMPP 或 CIMD2 支持

1. 如果尚未安装 SMPP API 库 0.3.7 版,请在运行消息传送服务的服务器上安装该 API 库。

有关说明,请参见 8.1.1.1 设置 SMPP 支持中的 1

2. 在 MsgService.properties 文件中将 pushlistener.enable 属性设置为 true

该文件位于 $CDS_HOME/deployment/deployment-name/conf 目录中。

3. 将更改保存到 MsgService.properties 文件中。

4. 在 PushListener.properties 文件中为要支持的连接设置属性。

该文件位于 $CDS_HOME/deployment/deployment-name/conf 目录中。默认情况下将使用单个连接支持所有类型的 MO 推送请求。将 pushlistener.esme.system_id.allpushlistener.esme.password.all 属性设置为系统所要求的值。


代码示例 9-1 用于 MO 推送请求的单个连接

cds_mopush_action=all
pushlistener.esme.system_id.all =
pushlistener.esme.password.all =
pushlistener.cds_mopush_url.all = mo_push.do

 

如果希望支持基于请求的数据类型的连接,请按照以下步骤配置消息传送服务以支持多个到 SMSC 的连接:

a. 删除对到 SMSC 的单个连接的支持。

在每一行的开头添加井号 (#) 以注释掉代码示例 9-1 中显示的语句。

b. 添加支持基于请求的数据类型的连接。

已经定义了以下数据类型:

   

5. 根据环境需要,在 PushListener.properties 文件中设置相应的连接属性。

该文件位于 $CDS_HOME/deployment/deployment-name/conf 目录中。这些属性用于所有连接。以下代码显示了 SMPP 的样例设置


pushlistener.smsc.hostname = 127.0.0.1
pushlistener.smsc.port = 11111
pushlistener.esme.system_id.all = user1
pushlistener.esme.password.all = usrpw
pushlistener.esme.system_type=
pushlistener.esme.destination=
pushlistener.smsc.gsm.ton = 2
pushlistener.smsc.gsm.npi = 0
pushlistener.send.keep_alive=true
pushlistener.keep_alive.milliseconds=30000

 

以下代码显示了 CIMD2 的样例设置


pushlistener.smsc.hostname = 127.0.0.1
pushlistener.smsc.port = 11111
pushlistener.esme.system_id.all = user1
pushlistener.esme.password.all = usrpw

 

6. 将更改保存到 PushListener.properties 文件中。

7. 在 pushlistenerfactory.xml 文件中注册适配器。

要使用 SMPP 适配器,请在 pushlistenerfactory.xml 文件中将以下类指定为适配器,如 9.2 使用推送适配器中所述。


com.sun.content.server.smpp34impl.msgserver.protocol.smpp.SMPPPushMsgListener

 

要使用 CIMD2 适配器,请在 pushlistenerfactory.xml 文件中将以下类指定为适配器,如 9.2 使用推送适配器中所述。


com.sun.content.server.messagingservice.msgserver.protocol.cimd2.CIMD2PushMsgListener

 

9.1.2.2 设置 HTTP 支持

1. 在 MsgService.properties 文件中将 pushlistener.enable 属性设置为 false

该文件位于 $CDS_HOME/deployment/deployment-name/conf 目录中。

2. 保存所做的更改。

3. 在 SMSC 中注册 http://server:port/mo_push.do URL。

其中 server 是部署 Subscriber Portal 的服务器的名称。port 是 Subscriber Portal 用于监听 MO 推送消息的端口号。位于运行 Content Delivery Server 的网络外部的系统必须能够访问指定的值。


9.2 使用推送适配器

pushlistenerfactory.xml 文件用来注册您选用的推送监听器适配器。pushmsglistener 属性必须包含推送适配器类的全限定名称以及该适配器支持的协议。

以下样例为 CIMD2 注册了适配器。


代码样例 9-2 样例 pushlistenerfactory.xml 文件
<pushmsglistenerset>
  <pushmsglistener0 class=
"com.sun.content.server.messagingservice.msgserver.protocol.cimd2.CIMD2PushMsgListener"
  protocol="sms"/>
</pushmsglistenerset>

 

要指定想使用的推送监听器适配器,请执行以下操作:

1. 在 Content Delivery Server 中注册适配器。

$CDS_HOME/deployment/deployment-name/conf 目录中创建名为 pushlistenerfactory.xml 的 XML 文件,并根据需要设置一些属性。

有关此文件的示例,请参见代码样例 9-2

2. 在类路径中包含该适配器类及所有相关类。