引言
隨著市場經(jīng)濟(jì)的不斷深化,客戶已成為企業(yè)最重要的資源。為了收集客戶信息,一般的客戶關(guān)系管理系統(tǒng)都提供多種與客戶交互的接口,例如:互聯(lián)網(wǎng)、呼叫中心、電話、傳真、信件等。目前,手機(jī)已成為最大的終端。而手機(jī)短信由于使用成本較低,技術(shù)上實(shí)現(xiàn)較為便利,傳播方式上的雙向互動(dòng)以及信息的個(gè)性化,使得短信息成為手機(jī)用戶最經(jīng)常使用的業(yè)務(wù)之一。
目前的短信業(yè)務(wù)分為兩種工作模式:一種是終端方式;另一種使用短信網(wǎng)關(guān)的方式。本系統(tǒng)選擇使用終端方式,所借助的設(shè)備是TC35i手機(jī)模塊。
1.系統(tǒng)總體框架
系統(tǒng)分為三個(gè)層次:接觸層、功能層和數(shù)據(jù)庫層,如圖一所示。
(1)接觸層承擔(dān)著數(shù)據(jù)傳輸任務(wù),是系統(tǒng)與外部問的通訊橋梁。主要包括SP短信接口和Internet/Intranet等。SP短信接口負(fù)責(zé)短信息的接收和發(fā)送,應(yīng)用層的各系統(tǒng)模塊調(diào)用此接口接收或發(fā)送短信數(shù)據(jù),并寫入或讀出后臺(tái)業(yè)務(wù)數(shù)據(jù)庫。
(2)功能層也叫業(yè)務(wù)層,包括銷售管理、活動(dòng)管理、服務(wù)管理、統(tǒng)計(jì)分析等。銷售管理具體分為機(jī)會(huì)管理、報(bào)價(jià)管理、產(chǎn)品管理,訂單管理,客戶檔案等子模塊;活動(dòng)管理包括聯(lián)系活動(dòng)、歷史記錄,工作日歷等子模塊:服務(wù)管理包括服務(wù)定制,服務(wù)指派、產(chǎn)品目錄,客戶關(guān)懷等了模塊;統(tǒng)計(jì)圖一系統(tǒng)分析分為按產(chǎn)品,按日期、按地區(qū)、按客戶進(jìn)行統(tǒng)計(jì)。功能層是系統(tǒng)的核心部分,主要功能是組織和瀏覽銷售信息,根據(jù)統(tǒng)計(jì)分析產(chǎn)生各類銷售業(yè)務(wù)的報(bào)告,對(duì)銷售業(yè)務(wù)給出戰(zhàn)術(shù)上、策略上的支持。
(3)數(shù)據(jù)庫層,存放著客戶數(shù)據(jù)、銷售機(jī)會(huì)數(shù)據(jù)、活動(dòng)記錄、庫存信息等,系統(tǒng)通過互聯(lián)網(wǎng)和短信發(fā)送和接收數(shù)據(jù),并不斷刷新數(shù)據(jù)庫。

圖一 系統(tǒng)總體框架
3.1短信接口設(shè)計(jì)
本系統(tǒng)所借助的設(shè)備是TC3Si手機(jī)模塊。SMS系統(tǒng)由以下幾部分組成:短消息實(shí)體(Short Messaging Entity,SME),手機(jī)模塊,短信息業(yè)務(wù)巾心(ShortMessage Service Center,SMSC),相應(yīng)的GSM/SGSN網(wǎng)絡(luò)系統(tǒng)。本系統(tǒng)的短信指令傳遞路線摸擬如圖二所示。

圖二 短信指令傳遞路線
由圖二可以看出,用戶所發(fā)出短消息實(shí)體,通過相應(yīng)的GSM網(wǎng)絡(luò),由短信中心轉(zhuǎn)發(fā)到手機(jī)模塊,通過串口進(jìn)入主機(jī),再經(jīng)過SMS短信接口進(jìn)入系統(tǒng)數(shù)據(jù)庫,系統(tǒng)根據(jù)短消息指令進(jìn)行相應(yīng);短信的發(fā)送流程于此相反。
本系統(tǒng)中TC35i手機(jī)模塊與微機(jī)的串口相連,微機(jī)通過向串口發(fā)送AT指令來發(fā)送或接收短信。TC35i手機(jī)模塊是德國SINMENS(西門子)公司的產(chǎn)品,TC35i是一款雙頻900/1800MIIZ高度集成的GSM模塊,可以傳送語音和數(shù)據(jù),需要外接SIM卡,支持MT,MO,CB和PDU短信息模式,通過RS232串行口與微機(jī)相連進(jìn)行指令和數(shù)據(jù)的雙向傳送,串口的工作頻率為300bps……115kbps,可用AT命令編程。
3.2短信模式
短信模式有三種:Block Mode、Text Mode(純文本方式)、PDU Mode。PDU Mode可以被所有手機(jī)支持,可以使用任何字符集,是手機(jī)默認(rèn)的編碼方式。在PDU Mode中,可以采用三種編碼方式米對(duì)發(fā)送的內(nèi)容進(jìn)行編碼,它們是7-bit、8-bit和UCS2編碼。7-bit用于發(fā)送普通的ASCII字符;8-bit編碼通常用于發(fā)送數(shù)據(jù)消息,比如圖片和鈴聲等;UCS2編碼用于發(fā)送Unicode字符,包括漢字。UCS2編碼是將每個(gè)字符(1-2個(gè)字節(jié))按照ISO/IECl0646的規(guī)定,轉(zhuǎn)變?yōu)?6的Unicode寬字符。在Windows系統(tǒng)中,可以簡單地調(diào)用API函數(shù)實(shí)現(xiàn)編碼和解碼。本系統(tǒng)即是調(diào)用API函數(shù)來實(shí)現(xiàn)短信的UCS2編碼與解碼。
3.3短信組件
為了提高代碼重用率,本系統(tǒng)用c#語言開發(fā)了短信組件。此組件下包含若干類,其中CommPort類用于描述串口信息;PDUdecoding類針對(duì)國內(nèi)短信編碼(USC2)對(duì)短信進(jìn)行編碼與解碼;SmsInitComm類下包括串口初始化方法InitCom,發(fā)送和接收短信的Send方法和Receive方法,smslnitcomm類的dispose()方法用于關(guān)閉串口。
NET組件在NET環(huán)境下是不用注冊的,但如果是在COM中調(diào)用NET組件,則需要一些額外的注冊步驟。由于本系統(tǒng)是使用ASP語言開發(fā)的,因此在調(diào)用C#開發(fā)的短信組件時(shí),不能簡單的使用regsvr32命令來進(jìn)行注冊。注冊NET組件有以下三個(gè)步驟:
(1)首先用sn.exe(強(qiáng)名稱生成工具)生成一個(gè)密鑰文件,并使用它對(duì)程序集簽名,也就是編輯AssemblyInfo.CS文件,將Assembly Key File行修改為【assembly:AssemblyKeyFile("密鑰文件名")】。
(2)用regasm.exe(注冊工具)注冊該程序集并創(chuàng)建一個(gè)類型庫。
(3)用gacutil.exe(全局程序集緩存工具)將程序集添加到全局程序集緩存中。
3.4如何提高發(fā)送成功率
短信組件的開發(fā)比較困難的是群發(fā),單條短信的發(fā)送一般都能成功,但群發(fā)常常失敗?赡茉蚴谴诘睦塾(jì)誤差、SIM卡的讀寫誤差,以及GSM網(wǎng)絡(luò)繁忙等,為此在設(shè)計(jì)組件時(shí),串口初始化和短信發(fā)送稃序都被設(shè)計(jì)成循環(huán)10次。如果lo次都沒成功,則宣告失敗。
4.存在的問題及改進(jìn)
終端方式的優(yōu)點(diǎn)是系統(tǒng)成本低,實(shí)現(xiàn)較為便利,但由于SIM卡的讀寫次數(shù)是5萬到10萬次,因此受此限制,終端模式并不適合大批量短信發(fā)送和接收。解決的方法是選擇使用短信網(wǎng)關(guān)的方式。
萬方數(shù)據(jù)