手机短信作为一种非常重要的沟通方式,正在被越来越多的企业重视。本文介绍的企业短信应用平台简单易行,可以为企业提供方便灵活的、基于短信的双向交流渠道。

多年来,及时准确地采集前端销售数据、快速地将各种消息传递给目标人群一直是各类企业追求的目标。尽管PC加互联网是很好的手段,但由于体积大,无论是放在柜台上还是用户携带都不便,而如果每人配备一台笔记本电脑或PDA的投入又比较大。另一方面,根据信息产业部的统计数据,2005年我国移动电话用户已超过3.9亿户,全年手机短信发送量3046亿条,比2004年短信增长了40%,比2000年增长了303%。手机普及率的提高,再加上短信的价格低廉,使得短信逐步深入到我们的生活之中。

作为企业信息化的一部分,不少企业开始考虑建立企业的短信应用平台,为企业提供方便灵活的基于短信的双向交流渠道。目前已有的应用形式包括: 通过短信平台来群发短信、查询手机接收的状态; 针对企业员工的邮件、公文、日程安排等进行短信提醒; 接收手机发来的各种信息,针对不同的信息进行相关的处理,如信息采编、事务批办、点播等操作。

短信平台的工作过程

移动运营商为保证接入的一致性及安全性,要求各服务商通过短信网关接入短信中心,短信系统由以下部分组成:

1.短信信息服务参与实体

服务提供商(Service Provider, SP): 短信信息服务的信息提供者。

短信网关(Internet Short Message Gateway, ISMG): 提供SP与短信中心之间数据交换的通道,采用CMPP(China Mobile Peer to Peer)协议与SP进行连接,采用SMPP 3.3协议与短信中心连接。

短信中心(Short Message Service Center, SMSC): 利用信令网将短消息发送给手机用户。

2. 短信服务业务的工作过程

用户发短信业务(即MO业务,如信息点播等):短信中心将短信内容以SMPP协议发给连接的短信网关,短信网关根据短信发送号码(即SP的服务代码)将短信内容以CMPP协议发给相应的SP,由SP进行处理。


用户收短信业务(即MT业务,如短信群发等):提供此项业务的SP将短信内容以CMPP协议发给连接的短信网关,由短信网关根据用户手机号段以SMPP协议发给用户所属的短信中心; 短信中心将短信下发到用户手机终端上。

系统设计与实现

企业短信应用平台的建设首先要考虑以下问题:

● 容错性: 具有良好的容错判断,日志记录详细。

● 可扩展性: 平台针对发送或接收都具有很强的扩展性。在发送功能方面,只需将短信内容添加到短信平台,由发送服务统一发送; 在接收功能方面,只需开发人员开发对新增功能的处理即可,在接收上增加新功能时配置不需修改短信收发程序。

● 可靠性: 通过查看发送成功状态确认手机接收是否成功。

● 可配置性: 无论对短信中心的连接参数,还是重发次数、时间间隔,接收的功能均可以通过配置进行修改和扩充。

● 支持长短信和WAP Push类型的发送。

● 短信个性化定制: 用户自定义过滤短信功能,用户可以通过短信个性化界面自定义对短信的发送人、短信邮件地址域名以及短信接收时间的过滤,符合过滤条件的短信将不发送给用户。

下面介绍短信应用平台的具体设计与实现。

1. 系统准备及参数设置

为实现与短信网关的互连,企业首先需要向移动运营商申请接入短信网关的接入号、用户名、密码、企业代码,获得MO、MT端口号。在上述前提具备后,企业就可以以SP的身份接入短消息网关。具体涉及以下内容:

● 网络连接: 申请专线或其他方式连接到移动运营商的短信网关。

● 系统参数: 参数设置包括短信网关IP地址、用户名、密码、服务号码、MT端口、MO端口等信息; 要求状态报告的短信应用类型集合; WAP Push的类型集合; 发送失败的重发次数、时间间隔; 告警接收地址等信息。

● 运行环境: 可以基于Windows实现,如Windows 2000 Advance Server与Microsoft SQL Server 2000的组合。

2. 数据库设计

对于数据库平台没有过多要求,如果企业已经有数据库平台,可以继续沿用。本方案中采用MS SQL 2000,短信应用平台包括4个数据库表,分别存放准备发送的消息、接收到的消息、参数配置和接收配置信息。接收配置表用来记录各种业务代码对应的处理程序。

3. 网关服务程序设计及实现

短信网关服务包括接收和发送程序,以服务的形式运行,通过CMPP协议与运营商的短消息网关(ISMG)进行通信(参见图2)。有两个主进程: 一个是以发送者身份连接到运营商的短信网关而建立的发送者线程,一个是以接收者身份连接到运营商短信网关的接收者线程。发送程序主要功能是连接运营商短信网关、监控发送表,把原始短消息经过解析、过滤形成可以发送的短消息,并发送到指定的手机用户,完成信息的传送功能; 而接收者进程连接运营商短信网关,接收并分析短信中心发来的各种消息,确认手机接收状态,实现点播、审批、信息汇总等功能。


(1)短信发送程序

这里特别需要注意以下三点:

● 对原始短消息过滤是根据个人对短信的过滤设置进行过滤的。

● 发送长短信时,必须严格按照协议格式要求,如: 长短信必须以UCS2编码格式提交,并将消息体内容以Unicode格式编码,然后对每个Unicode字符高低字节互换。在头结构中有两个标识位,一个用来声明总条数,一个用来声明是第几条。

● WAP Push类型的短消息有两部分内容: 消息提示及URL。编码格式是UTF-8(字节数可变的编码)格式,要严格按照格式要求发送。

(2)接收线程流程

短信接收线程的工作包括: 记录ISMG的接收确认回执ID; 记录ISMG返回的手机终端已接收成功的回执信息码,即状态报告; 对用户发送来的短信内容进行分析、处理。

第1项工作用来确认短信网关(ISMG)接收成功。第2项工作情况用来确认手机已经接收到短消息。第3项工作情况需要针对不同的信息进行不同的处理,即根据内容的业务代码(这里定义短信内容中特殊分隔符内的信息为业务代码,也可以使用长代码功能来定义业务代码)与接收配置表匹配,调用对应的处理程序,并将除业务代码外的所有短信内容传递给处理程序,由各模块的程序自行分析、处理,从而保证不修改接收线程,都可以灵活增加接收类型。

用户发来的消息长度不超过70个汉字长度时,可以正常按消息格式解析; 当用户发来的消息长度大于70个汉字长度时,短消息中心会分段将消息内容下发,其中消息文本前6个字节是长短信的头结构。需要通过接收线程将信息解析完整。

4.短信安全

短信数据的安全性让很多企业担忧。由于短信传送的路径原因担心短信是否会在中途丢失,以及区分所发短信正确与否都是观望中的企业考虑之一。

对于丢失的担心完全可以利用程序来解决。对于发送的短信,可以加上要求短信中心返回手机接收的确认回执,短信中心发送到手机上之后,在接收到手机接收成功的回执后,将回执返给企业的短信应用平台。如果短信应用平台在一定时间之内没有接到确认,那么可以重发。对于手机发给短信应用平台的信息也同样,如公文处理,短信应用平台在接收到用户发来的信息后,不论处理成功与否,都将处理结果发给用户。

应用举例

企业短信应用平台实现了短信的集中收发,可以在此之上扩展更多的应用,如: 号码查询、短信群发、公文短信审批等。

号码查询 号码查询功能实现查询企业员工的联系电话。这里定义查询业务代码为dh,开发查询程序dhcx,将业务代码与程序的对应关系添加到接收配置表中。当用户查询张三的电话时,在短信内容中输入“张三”,收件人中输入“企业的接入号”,发送到企业短信平台。

短信服务调用dhcx程序进行查询,dhcx程序将查询结果返到企业短信平台,短信服务将结果发给用户,从而实现了号码查询功能。

短信群发 短信群发功能实现企业的短信通知,可以作为会议通知、商业宣传等应用。短信通知模块只需将用户通知内容传递到企业短信平台,由短信服务统一进行发送。

总体而言,短信作为一种低成本的承载方式,完全可以为企业所用。上述短信平台也只是一个基本的应用框架,我们完全可以在这个短信应用平台之上进行扩展,实现更多的功能,以满足企事业单位的不同业务要求。