短信企业短信平台

企业短信平台  时间: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技术.

inlicloud48元/月,云主机,2核1G/200Mbps,可选安徽/上海联通/广州移动/江门移动NAT

inlicloud怎么样?inlicloud(引力主机)主要产品为国内NAT系列VPS,目前主要有:上海联通NAT(200Mbps带宽)、宿州联通NAT(200Mbps带宽)、广州移动NAT(200Mbps带宽)。根据官方的说法国内的NAT系列VPS不要求备案、不要求实名、对中转要求也不严格,但是,禁止任何形式的回国!安徽nat/上海联通/广州移动/江门移动nat云主机,2核1G/200Mbps仅...

欧路云(22元/月),美国CERA弹性云服务器!香港弹性云服务器15元/月起;加拿大高防vps仅23元/月起

欧路云怎么样?欧路云主要运行弹性云服务器,可自由定制配置,可选加拿大的480G超高防系列,也可以选择美国(200G高防)系列,也有速度直逼内地的香港CN2系列。所有配置都可以在下单的时候自行根据项目 需求来定制自由升级降级 (降级按天数配置费用 退款回预存款)。2021年7月14日美国 CERA 弹性云服务器 上新 联通CUVIP 线路!8折特惠中!点击进入:欧路云官方网站地址付款方式:PayPa...

星梦云:四川100G高防4H4G10M月付仅60元

星梦云怎么样?星梦云资质齐全,IDC/ISP均有,从星梦云这边租的服务器均可以备案,属于一手资源,高防机柜、大带宽、高防IP业务,一手整C IP段,四川电信,星梦云专注四川高防服务器,成都服务器,雅安服务器。星梦云目前夏日云服务器促销,四川100G高防4H4G10M月付仅60元;西南高防月付特价活动,续费同价,买到就是赚到!点击进入:星梦云官方网站地址1、成都电信年中活动机(成都电信优化线路,封锁...

企业短信平台为你推荐
操作httpphpcms模板请教 phpcms v9 如何设置新模板为系统默认模板?css加载失败个别网站加载CSS文件老是出错是怎么回事?企业信息查询系统官网怎么在网上查询企业营业执照是否存在?字节跳动回应TikTok易主贾斯汀比伯的confident他在mv女主说了什么,大神回复,采纳asp.net网页制作ASP.NET设计网页的方法?ipad代理ipad在哪里买是正品?科创板首批名单首批公布的24个历史文化明城是那些泉州商标注册请问泉州商标注册要怎么办理?在哪办理?缤纷网谁都可以创造一个属于自己的缤纷世界中的缤纷是什么意思
山东虚拟主机 哈尔滨域名注册 网站备案域名查询 播放vps上的视频 vps优惠码cnyvps 中文域名交易中心 火山主机 ftp空间 西安服务器 justhost 香港vps99idc hostgator 安云加速器 空间打开慢 云鼎网络 html空间 全站静态化 太原联通测速平台 坐公交投2700元 qingyun 更多