徐樂 趙榮輝
摘要:本文針對企業(yè)級短信應用,結合國內外短信業(yè)務的現(xiàn)狀,深入分析了短信貓的應用場景,實現(xiàn)原理和工作方式,結合工作需要,提出了基于web服務的短信貓發(fā)送平臺,詳細闡述了應用開發(fā)流程。運用java語言實現(xiàn)了短信貓的web service服務器端,企業(yè)級用戶可通過調用短信貓通信接口,實現(xiàn)中英文短信的發(fā)送功能,支持常用特殊字符,支持發(fā)送超長短信。本平臺通用性較好,可安裝在Linux的服務器上,也可以用于windows系統(tǒng),具有穩(wěn)定性高,易維護,易升級等特點。
關鍵詞:GSM短信貓 web service 超長短信
中圖分類號:TP311.52 文獻標識碼:A 文章編號:1007-9416(2016)09-0193-02
1 引言
近年來,隨著信息技術的發(fā)展,全球數(shù)字移動通信系統(tǒng)(Global System for Mobile Communication,GSM)迅速發(fā)展起來,廣泛應用于各個行業(yè)和領域,是目前較為穩(wěn)定、應用面較廣的移動通訊方法。短消息業(yè)務(Short Message Service,SMS)是基于GSM的一項短信通信功能,是GSM網絡提供給用戶的一種有別于語音傳輸?shù)幕就ㄓ崢I(yè)務[1],具有實時性強、成本低廉、無線傳輸?shù)葍?yōu)勢,也引起了諸多系統(tǒng)運營商的高度關注,許多針對該業(yè)務的應用也迅速開發(fā)出來?;诩夹g發(fā)展現(xiàn)狀和業(yè)務需求,筆者開發(fā)了基于WEB的短信發(fā)送平臺,可應用于中小企業(yè)的即時短信通訊,便于提高企業(yè)內部的溝通能力和管理效率。
主要的短信傳輸方法:(1)通過運營商網關發(fā)送。開發(fā)者可向各大運營商申請網關,無需任何硬件配合,即可實現(xiàn)大規(guī)模的短信收發(fā)系統(tǒng),較為便捷,但價格昂貴;(2)通過GSM MODEM模塊實現(xiàn)PC對手機收發(fā)信息。GSM MODEM通常為短信貓,通過此模塊,結合短信控制的AT指令以及串口傳輸協(xié)議,即可實現(xiàn)小規(guī)模的短信收發(fā)系統(tǒng)的開發(fā);(3)通過一些網站提供的短信發(fā)送功能。這種方法易于實現(xiàn),所需資源少,但對網絡的依賴性很強,不利于集成到企業(yè)的管理系統(tǒng)中。根據(jù)實際需要,本系統(tǒng)采用GSM MODEM模塊的方法來實現(xiàn)基于WEB的短信發(fā)送平臺。
2 短消息業(yè)務
短消息業(yè)務(SMS)指通過無線網絡和短消息中心,在手機之間以及手機和業(yè)務平臺之間,交換有限長度的文本或二進制短消息,實現(xiàn)信息的存儲和轉發(fā)功能。短消息業(yè)務是充分利用移動網信令資源前提下發(fā)展起來的業(yè)務,相對于移動話音基本業(yè)務,被確認為是增值業(yè)務。短消息服務具有應用面廣泛,成本較低,運行穩(wěn)定等特點,可廣泛應用于頻繁遠距離小流量消息的傳輸。
短消息的基本業(yè)務特征:(1)短消息可發(fā)送的信息長度有嚴格規(guī)定,每條短信最多可傳輸140個字節(jié),每個漢字占兩個字符,英文字母、標點符號均占用一個字符,長度大于140個字符的為超長短信,需分條發(fā)送;(2)短信屬于非實時性業(yè)務,對帶寬和時延要求低,屬于非面向連接的業(yè)務,是GSM系統(tǒng)中唯一不需要建立端到端信道的服務;(3)采用存儲轉發(fā)服務機制,即使用戶關機,沒有任何響應,也會自動保存短信,一旦用戶再次開機,會立刻再次發(fā)送短信,從而保證短信能夠發(fā)送成功,并返回發(fā)送結果。(4)當用戶空閑、通話過程中都可接收短消息。
3 系統(tǒng)設計
3.1 短信貓平臺結構
短信貓平臺結構如圖1所示。
3.2 短信貓的硬件連接
首先將作為短信中心的SIM卡放置到短信貓的卡槽內,將天線固定在信號強的位置,然后用串口線將短信貓與電腦或服務器的串口或USB口連接,最后給短信貓上電。檢測短信貓的NET指示燈閃爍狀況,確保短信貓成功與GSM網絡連接。
3.3 短信貓的軟件總體結構
軟件總體結構如圖2所示,包括三大主要模塊,具體功能模塊和子模塊描述如下:
3.3.1 接收客戶端請求消息
平臺作為web service服務器端,當收到客戶端發(fā)來的信息發(fā)送請求時,解析出要發(fā)送的目的號碼,發(fā)送的內容,并標記發(fā)送的信息(該標記便于將發(fā)送結果返回給客戶端),然后存入發(fā)送的消息隊列中。
3.3.2 發(fā)送消息
此模塊為本平臺的重要實現(xiàn)部分,用于實現(xiàn)短信發(fā)送業(yè)務,主要包括幾個方面:(1)通過定時器啟動發(fā)送線程,平臺定時從發(fā)送隊列頂部取出待發(fā)送的短消息,解析出相應的發(fā)送目的地址和發(fā)送內容,并通過編號標記短消息;(2)發(fā)送正常短消息,即長度在140個字符內的短消息;(3)發(fā)送超長短消息,對于消息內容長度超出限制的短消息,可通過相應指令和編碼控制將其分割為多條連續(xù)短消息,按多條方式連續(xù)發(fā)送給用戶,此模塊用于發(fā)送長度超過140個字符的短消息;(4)發(fā)送特殊字符,對于某些英文或中文的特殊字符,需要特殊的ASCII編碼和USC2編碼,此模塊用于實現(xiàn)特殊字符的編碼;(5)發(fā)送中文短信,中文采用UCS2編碼,通過PDU模式發(fā)送,最多可發(fā)送70個字符;(6)發(fā)送英文短信,英文采用ASCII編碼,可通過TEXT或PDU模式發(fā)送,最多可發(fā)送140個字符。
3.3.3 返回發(fā)送結果
為防止客戶端由于長期未收到短信發(fā)送結果而阻塞,采用了超時機制,即若在1分鐘內服務器端未收到短信發(fā)送結果,默認返回-1,以通知客戶端短信發(fā)送失敗,可改為調用備用短信貓。
3.4 短信貓的軟件流程
具體軟件發(fā)送過程如圖3所示。
(1)串口初始化。服務器啟動后,先遍歷所有的端口,查看哪個端口被占用,即外接有短信貓設備,找到后,設置該串口的波特率、停止位、數(shù)據(jù)位、奇偶校驗位等信息,建立連接,并啟動串口監(jiān)聽,注意應加入支持串口通訊的jar包和.so文件;(2)設置短信貓格式。通過AT+CMGF設置短信發(fā)送模式,AT+CMGF=1,表示為PDU模式,AT+CMGF=0,表示為TEXT模式,還有Block模式,但較為少用。Text模式較為簡單,但只能發(fā)送英文短信;而PDU模式中英文短信均可發(fā)送。PDU模式收發(fā)短信可以使用3種編碼:7-bit、8-bit和UCS2編碼。(3)后臺啟動發(fā)送線程,定時從短信隊列的頂端取出消息,并解析出內容,若為中文,則調用ucs2編碼,若為英文,則調用7-bit編碼,內容編碼結束后,再判斷信息長度,若為正常短信,則正常發(fā)送,若為超長短信,則分段發(fā)送。利用串口發(fā)送AT指令驅動短信貓完成短信的收發(fā),并將發(fā)送結果返回給客戶端。(4)若短信發(fā)送失敗,可再次加入到發(fā)送隊列中,等待下一次發(fā)送。
3.5 熱備系統(tǒng)
由于短信貓通過串行方式收發(fā)短信,即必須收到前一條短信的返回值,方可發(fā)送下一條,否則會導致短信貓死機[2]。隨著請求短信數(shù)量的增加,短信貓業(yè)務會更繁忙,即使通過多線程并行處理也無法解決。因此本次設計使用短信隊列結合主備兩個服務器的方式來完成。通過多個短信貓模塊,可提高短信貓并發(fā)傳輸?shù)哪芰Γ⑶翌A防短信貓欠費、運行故障或服務器掛機等意外,從而提高了整體服務的效率和質量。
4 結語
本平臺基于web service服務,以手機應用為基礎,以短信貓為收發(fā)短信的硬件設備,實現(xiàn)了實時、穩(wěn)定、高效的短信收發(fā)系統(tǒng),一小時可發(fā)送約660條短信。為企事業(yè)單位提供了新型短信應用,通過這個系統(tǒng),可以向中國移動、中國聯(lián)通用戶提供短信服務。同時,本平臺是一個開放的平臺,便于為第三方應用提供接口,從而進一步開發(fā)。
參考文獻
[1]沈煒.化工企業(yè)短信平臺的開發(fā)與應用[D].浙江:浙江大學,2011.
[2]劉興淮.建立短信平臺實現(xiàn)醫(yī)療設備效益分析[J].中國醫(yī)療設備,2012(12):59-61.