短信企业短信平台

企业短信平台  时间:2021-05-03  阅读:()
第28卷第2期2007年2月微计算机应用MICROCOMPUIERAPPLICATIONSVol.
28No.
2Feb.
2007基于GSM模块的短信平台服务器设计与实现3唐明董张俊波刘建勋(湖南科技大学计算机科学与工程学院湘潭411201)摘要:介绍了一种使用GSM模块构建企业短信平台的实现方案,包括系统的硬件环境、短信服务器软件的体系结构、功能和设计.
该方案在笔者单位短信平台中的应用表明,它具有对硬件要求不高,实现简单,二次开发方便的特点.
关键词:GSM短信短信平台多线程DesignandImplementationofaSMSPlatformbyUsingGSMModemsTANGMingdong,ZHANGJunbo,LIUJianxun(ComputerScienceandEngineeringSchool,HunanUniversityofScienceandTechnology,Xiangtan,411201,China)Abstract:AsolutionofusingGSMwirelessmodulestoconstructaSMS(shortmessageservice)platformisintroducedinthispaper,whichincludesthehardwareenvironmentandthearchitecture,functionanddesignoftheSMSserversofteware.
Theapplicationofthissolutionintheauthorπsdepartmentshowthatitischeapinhardware,easytobeimplementedandcanprovideasimpleinterfaceforreuse.
Keywords:GSM,SMS,SMSPlatform,Multi2thread1引言手机短信作为一种特殊的信息载体,具有语音所不具备的特殊性:占用通信信道量小、信息载量大、简短直观、廉价、便于保存以及群发功能等,因此利用短信提供增值服务已经为越来越多的公司和单位所接受.
在实际应用中,构建短信平台主要有两种方式[1].
一是将短信平台服务器连接到移动通信网络,通过移动网关来发送和接收短信.
这种需要通过有线方式直接接入移动运营商的网络,由于运营商对于直接接入的设备以及业务量等方面的限制,再加上申请过程以及接入方式复杂等因素,对于一般的中小企事业单位不太适用,此外由于依赖与移动网关的连接,当网络出现故障时,将导致无法正常提供短信服务.
另一种方式是使用AT指令控制GSM无线模块来发送和接收短信,不需要接入移动运营商的短信网关,GSM模块以无线的方式与短信服务中心通信,从而将短信发送至用户移动终端,或接收来自移动端的短信.
这种方式对硬件要求不高,实现简单,而且通过设置状态报告,还能够获知用户移动终端是否接收到了短信.
对于中小企事业单位来说,后一种方式是构建短信平台比较可行的方案.
为了提高办公效率,节约办公成本,笔者所在单位建立了一个短信辅助办公系统,使用短信服务满足日常办公消息通知、事件提醒等需要.
本文以该系统的设计过程为例,介绍了基于GSM模块的短信平台的硬件结构,短信服务器程序的设计和实现,对短信服务的多线程机制也作了详细说明.
2短信平台框架211短信平台的硬件结构使用GSM模块构建的企业短信平台系统,其拓扑结构,通常由图1表示.
服务器端由一台短信平台服本文于2005-06-13收到.
3本论文获湖南省教育厅一般项目资助(项目编号:05C182).
http://www.
paper.
edu.
cn中国科技论文在线2期唐明董等:基于GSM模块的短信平台服务器设计与实现175图1基于GSM模块的短信平台硬件结构务器和若干个GSM控制模块组成,短信平台服务器主机可以使用专用的服务器或PC机,GSM控制模块中内置SIM卡,通过串口线与服务器主机相连.
客户端主机通过Internet或Intranet与短信平台服务器连接,通过客户端程序向服务器提交待发的短信,服务器上运行的服务程序将把待发短信通过GSM模块发送出去.
在支持用户和短信平台之间双向通信的系统中,用户可以使用手机终端向短信平台发送短信(如信息查询),服务程序将负责从GSM模块中读取接收到的短信并进行相应处理.
212短信平台的软件结构图2短信平台系统的软件结构框架以笔者单位的移动短信平台为例,建立了如图2的系统软件结构框架,主要包含业务逻辑和短信服务两部分程序,两者使用数据库来交换数据和信息.
其中业务逻辑部分可采用Web技术实现,运行在服务器上,客户端只需要使用Web浏览器进行访问,实现信息查询、数据库维护、用户管理、短信通知等功能.
短信服务程序作为后台程序提供统一短信服务,负责控制GSM模块,按用户要求进行短信的发送和接收.
此外,为对其他平台上的系统提供短信接入服务,系统向外提供短信服务接口.
以笔者单位的移动短信平台为例,开发的短信服务程序主要实现了如下几个方面的功能:(1)短信实时发送,或根据设定的时间定时发送短信.
(2)短信有效时间设定或重发次数限定,当短信超过有效期或经重发仍未发送成功时放弃发送.
图3短信服务程序体系结构(3)发送重要的短信时,根据反馈信息确认短信是否被收到.
(4)实时接收短信,提供信息查询等服务.
(5)保存发送和接收的每一条短信,以备浏览和查询.
(6)配置GSM模块参数,可以根据需要加载或卸载GSM模块.
(7)其他功能,如系统日志、数据库维护等.
3构建短信服务程序短信服务程序的主要作用是为短信应用提供短信收发功能,在使用GSM模块作为通信设备的情况下,需要使用AT指令来控制GSM模块,发送和接收短信.
图3给出了所设计的短信服务程序的体系结构.
短信服务涉及到的对象主要有三种,即:短信服务管理器、短信服务单元和短信操作接口.
短信服务管理器负责构造、管理和删除短信服务单元,短信服务单元和GSM模块是对应的,一个短信服务单元控制一个GSM模块,短信操作接口是短信服务单元控制GSM模块的接口.
311短信操作接口设计短信操作接口的作用是封装使用AT指令通过串口控制GSM模块的细节,实现发送短信、接收短信、删除短信等功能,向短信服务单元提供简单的调用接口.
为了使短信操作接口程序具有封装、独立、可复用的176微计算机应用2007年图4短信操作接口构成的UML视图特点,使用VC++开发了短信操作接口类CSmsComm,采用WindowsAPI函数来进行串口操作,以DLL形式集成到短信服务程序中.
CSmsComm类的基本成员及相关结构的UML表示如图4所示.
结构SERIAL_PORT定义了串口通信的有关参数,包括端口号(portId)、波特率(baudRate)、奇偶校验标志(parity)、数据位(dataBit)、停止位(stopBit)等等;结构SM_PARAM定义了短信的相关参数,包括短信服务中心地址(sca)、手机终端号码(tpa)、时间戳(tp_scts)、短信内容(tp_ud)、短信在GSM模块中的位置(nId);CSmsComm中定义了初始化串口(InitComm)、关闭串口(CloseComm)、发送短信(SendSms)、读单条短信(RecvSms)、读多条短信(Re2cvSmsList)、删除一条或多条短信(DeleteSms)以及读串口(ReadComm)、写串口(WriteComm)等方法.
下面是发短信SendSms()的源码,描述了发送一条短信的过程.
//发送短消息//lpSms:用于存放短信的相关参数BOOLCSMSComm::SendSms(SM_PARAM3lpSms){SM_PARAM3pSrc=lpSms;charpdu[512];//PDU串…nPduLength=gsmEncodePdu(pSrc,pdu);//将短信参数编码成PDU串strcat(pdu,"\x01a"以Ctrl-Z结束WriteComm("AT+CMGF=0\r",10);//设置pdu模式sprintf(cmd,"AT+CMGS=%d\r",nPduLength);//生成发送短信命令WriteComm(cmd,strlen(cmd)先输出命令串nLength=ReadComm(ans,128);//读应答数据if(strstr(ans,"\r\nNULL)//根据能否找到"\r\n>"决定成功与否{WriteComm(pdu,strlen(pdu)得到肯定回答,继续输出PDU串nLength=ReadComm(ans,128);//读应答数据//根据能否找到"+CMSERROR"决定成功与否if(nLength>0&&strncmp(ans,"+CMSERROR",10)!
=0){returnTRUE;//短信发送成功}}returnFALSE;//短信发送失败}实现短信发送的关键是对短信参数进行PDU格式的编码.
所谓的PDU模式是发送或接收手机短信的一种方法,短信内容经过十六进制编码后进行传送.
在PDUMode中,可以采用三种编码方式来对发送的内容进行编码,它们是7-bit、8-bit和UCS2编码.
7-bit编码用于发送普通的ASCII字符,它将一串7-bit的字符(最高位为0)编码成8-bit的数据,每8个字符可"压缩"成7个,这种编码方式通常用于英文短信编码;8-bit编码通常用于发送数据消息,比如图片和铃声等;而UCS2编码用于发送Unicode字符,常用于中文和中英文混合编码.
本系统采用的是UCS2编码方式.
图5配置GSM模块参数同理,在从GSM模块中读短信时,需要对接收到的数据进行PDU解码,遵守的规范与编码时一样.
由于篇幅所限,关于短信AT指令以及PDU模式的数据编码方法这里不作详述,读者可以参考文献[2,3,4].
312短信服务的实现机制用户在启动短信服务以前,为了让GSM模块能够正确地工作,首先需要设置好GSM模块的相关参数.
如图5所示,属性页的列表控件里给出了短信设备的参数列表,可以选择"设置参数"来为一个模块设置相关参数,将其置为启用状态,或者可以通过"清除参数"来卸载一个模块,在我们开发的短信服务程序中,最多可以支持8个短信设备,不同的设备连接到不同的串口.
用户启动短信服务时,程序的执行流程如图6所示.
由图中可以看出,短信服务管理器为每个可用的2期唐明董等:基于GSM模块的短信平台服务器设计与实现177图6启动短信服务时的执行流程图GSM模块创建一个短信服务单元,每个短信服务单元会启动一个工作线程.
工作线程首先根据用户的设置,从数据库中取待发短信发送,然后从GSM模块中读入所有已接收的未读短信进行处理,接着判断是否有停止短信服务的命令,如果有则退出,否则继续上述过程.
由于每个工作线程都仅仅访问自己的串口和对应的GSM设备,不存在对硬件资源的并发访问冲突,因此也不需要进行同步.
为了实现这些功能,在程序中设计了两个类CSmsS2rvMnger和CSmsSrvUnit,分别对应短信服务管理器和短信服务单元.
在测试和运行中发现,使用一个GSM模块收取一条短信的时间需要0.
5s左右,而发送一条短信的时间需要4s左右的延迟,才能确保下一条短信能够成功发送.
一次100人次的短信群发由一个GSM模块完成,需要4*100=400s的时间,显然这个时间是比较长的.
如果系统使用n个GSM模块并行地工作,则系统将创建n个工作线程,发送100条短信需要的时间是原来的1/n,可见增加GSM模块数量能够增大系统的处理能力,提高工作效率.
4结束语当前的许多短信平台是通过Internet网线连接到移动通信网,采用专门的协议来发送和接收短信,这种方式需要向移动部门申请移动网关,对中小企/事业单位来说不太适用.
而基于GSM无线通信模块的方式,由于费用不高、实现方便,是中小企/事业单位搭建短信平台可以选择的一种可行技术.
本文以笔者所在单位的移动短信平台为例,介绍了短信平台的软硬件结构,重点介绍了短信服务程序设计和实现过程中的关键技术.
可以预见,由于短信业务所带来的增值,越来越多的公司和单位将搭建自己的移动短信平台,因此研究和实现短信平台的开发和应用,具有十分重要的社会意义和现实意义.
参考文献1贾宏宇,赵俊峰.
短消息平台的原理与设计.
小型微型计算机系统,2003,24(5):2宣彩平等.
利用GSM模块发送短消息.
计算机应用,2004,24(5):3WAVECOM.
AnIntroductiontotheSMSinPDUMode,v1.
00.
2000:27~454WAVECOM.
ATcommandinterfaces,v9.
0.
2001,96~124作者简介唐明董,男,(1978—),讲师,研究方向为软件工程、WebServices技术.
张俊波,男,(1979—),硕士研究生,研究方向为工作流技术.
刘建勋,男,(1970—),博士,副教授,研究方向为电子商务、工作流、WebServices技术.

菠萝云:带宽广州移动大带宽云广州云:广州移动8折优惠,月付39元

菠萝云国人商家,今天分享一下菠萝云的广州移动机房的套餐,广州移动机房分为NAT套餐和VDS套餐,NAT就是只给端口,共享IP,VDS有自己的独立IP,可做站,商家给的带宽起步为200M,最高给到800M,目前有一个8折的优惠,另外VDS有一个下单立减100元的活动,有需要的朋友可以看看。菠萝云优惠套餐:广州移动NAT套餐,开放100个TCP+UDP固定端口,共享IP,8折优惠码:gzydnat-8...

BuyVM($5/月),1Gbps不限流量流媒体VPS主机

BuyVM针对中国客户推出了China Special - STREAM RYZEN VPS主机,带Streaming Optimized IP,帮你解锁多平台流媒体,适用于对于海外流媒体有需求的客户,主机开设在拉斯维加斯机房,AMD Ryzen+NVMe磁盘,支持Linux或者Windows操作系统,IPv4+IPv6,1Gbps不限流量,最低月付5加元起,比美元更低一些,现在汇率1加元=0.7...

HostYun 新增美国三网CN2 GIA VPS主机 采用美国原生IP低至月15元

在之前几个月中也有陆续提到两次HostYun主机商,这个商家前身是我们可能有些网友熟悉的主机分享团队的,后来改名称的。目前这个品牌主营低价便宜VPS主机,这次有可以看到推出廉价版本的美国CN2 GIA VPS主机,月费地址15元,适合有需要入门级且需要便宜的用户。第一、廉价版美国CN2 GIA VPS主机方案我们可看到这个类型的VPS目前三网都走CN2 GIA网络,而且是原生IP。根据信息可能后续...

企业短信平台为你推荐
cuteftpCuteFTP Pro如何使用?如何发帖子怎么发表贴子?关闭评论抖音上购物后给卖家的评价怎么删除掉?discuz教程Discuz! Database Error怎么解决啊?我的电脑打不开这个网啊很久了。其他电脑可以。discuz教程Discuz怎样使用?邮件管理系统邮箱管理软件哪种好用安与骑士安与骑兵是什么关系?.netcms如何区分磷酸盐,磷酸一氢盐,磷酸二氢盐隐藏文件怎么显示电脑隐藏文件怎么显示了慢时间网手机上网网速慢的时候有什么办法麽?
手机域名注册 hostmaster 仿牌空间 fdcservers 国内永久免费云服务器 外国空间 双11抢红包攻略 好看的桌面背景图片 java空间 网通ip 100m免费空间 100x100头像 免费高速空间 无限流量 跟踪路由命令 lamp怎么读 七牛云存储 脚本大全 accountsuspended cdn加速技术 更多