1. 程式人生 > >簡訊貓 SMSLib開發指南

簡訊貓 SMSLib開發指南

       近期專案中,用到了簡訊貓的二次開發,查到的資料進行轉載,以備查用

轉自: http://blog.csdn.net/xyang81/article/details/7492161

一、SMSLib簡介

SMSLib是一個開放原始碼的簡訊貓二次開發包,有JAVA和.Net兩個版本,目前最新版為v3.5.2。

                                                                                                                                                                       圖1-1

二、Window平臺

1、在smslib官網下載“SMSLib for Java v3.5.2”開發包,並解壓,目錄結構如下圖所示:

                                                                        圖2-1


                                                                        圖2-2

lib:存放二次開發包(smslib-3.5.2.jar)和執行時的依賴包(slf4j、log4j、commons-net、jsmpp等)(重要)

dist:存放簡訊貓服務開發包(smsserver-3.5.2.jar),該包包括了smslib-3.5.2.jar中的所有核心類。如果是將簡訊貓作為服務的方式部署,不需要額外寫程式碼開發簡訊傳送和接收的介面,直接部署簡訊服務即可,詳細的步聚,可以參考《簡訊貓服務安裝與配置指南》。(重要)

doc:smslib介紹、使用指南、smsserver安裝與配置等文件(重要)

javadoc:二次開發包API

src:存放二次開發包原始碼和示例原始碼

misc:smslib日誌(log4j)配置配置模板、smsserver資料庫建庫指令碼及服務介面等檔案

build:

專案管理相關檔案(不重要)


                                                                        圖3-1

3、執行環境配置

  • 複製“圖3-1”中javax.comm.properties檔案到%JAVA_HOME%\jre\lib目錄下,win32com.dll檔案到%JAVA_HOME%\jre\bin目錄下
  • 複製“圖3-1”中comm.jar和圖2-2中所有jar檔案到CLASSPATH目錄下(如果是用eclipse等IDE工具,將這些jar包匯入到工程中
4、執行示例程式並測試       修改圖2-1中src\java\examples\modem目錄下的SendMessage.java和ReadMessages.java程式傳送簡訊的引數配置,編譯並執行。如下圖所示:
  1. // SendMessage.java - Sample application.
  2. // 簡訊傳送測試程式
  3. // This application shows you the basic procedure for sending messages.
  4. // You will find how to send synchronous and asynchronous messages.
  5. //
  6. // For asynchronous dispatch, the example application sets a callback
  7. // notification, to see what's happened with messages.
  8. package examples.modem;  
  9. import org.smslib.AGateway;  
  10. import org.smslib.IOutboundMessageNotification;  
  11. import org.smslib.Library;  
  12. import org.smslib.OutboundMessage;  
  13. import org.smslib.Service;  
  14. import org.smslib.modem.SerialModemGateway;  
  15. publicclass SendMessage  
  16. {  
  17.     publicvoid doIt() throws Exception  
  18.     {  
  19.         OutboundNotification outboundNotification = new OutboundNotification();  
  20.         System.out.println("Example: Send message from a serial gsm modem.");  
  21.         System.out.println(Library.getLibraryDescription());  
  22.         System.out.println("Version: " + Library.getLibraryVersion());  
  23.         /* 
  24.         modem.com1:閘道器ID(即簡訊貓埠編號) 
  25.         COM4:串列埠名稱(在window中以COMXX表示埠名稱,在linux,unix平臺下以ttyS0-N或ttyUSB0-N表示埠名稱),通過埠檢測程式得到可用的埠 
  26.         115200:串列埠每秒傳送資料的bit位數,必須設定正確才可以正常傳送簡訊,可通過程式進行檢測。常用的有115200、9600 
  27.         Huawei:簡訊貓生產廠商,不同的簡訊貓生產廠商smslib所封裝的AT指令介面會不一致,必須設定正確.常見的有Huawei、wavecom等廠商 
  28.         最後一個引數表示裝置的型號,可選 
  29.         */
  30.         SerialModemGateway gateway = new SerialModemGateway("modem.com1""COM4"115200"Huawei""");  
  31.         gateway.setInbound(true);   //設定true,表示該閘道器可以接收簡訊,根據需求修改
  32.         gateway.setOutbound(true);//設定true,表示該閘道器可以傳送簡訊,根據需求修改
  33.         gateway.setSimPin("0000");//sim卡鎖,一般預設為0000或1234
  34.         // Explicit SMSC address set is required for some modems.
  35.         // Below is for VODAFONE GREECE - be sure to set your own!
  36.         gateway.setSmscNumber("+306942190000");//簡訊服務中心號碼
  37.         Service.getInstance().setOutboundMessageNotification(outboundNotification); //傳送簡訊成功後的回撥函方法
  38.         Service.getInstance().addGateway(gateway);  //將閘道器新增到簡訊貓服務中
  39.         Service.getInstance().startService();   //啟動服務,進入簡訊傳送就緒狀態
  40.         System.out.println();  
  41.         //列印裝置資訊
  42.         System.out.println("Modem Information:");  
  43.         System.out.println("  Manufacturer: " + gateway.getManufacturer());  
  44.         System.out.println("  Model: " + gateway.getModel());  
  45.         System.out.println("  Serial No: " + gateway.getSerialNo());  
  46.         System.out.println("  SIM IMSI: " + gateway.getImsi());  
  47.         System.out.println("  Signal Level: " + gateway.getSignalLevel() + " dBm");  
  48.         System.out.println("  Battery Level: " + gateway.getBatteryLevel() + "%");  
  49.         System.out.println();  
  50.         // Send a message synchronously.
  51.         OutboundMessage msg = new OutboundMessage("306974000000""Hello from SMSLib!");    //引數1:手機號碼 引數2:簡訊內容
  52.         Service.getInstance().sendMessage(msg); //執行傳送簡訊
  53.         System.out.println(msg);  
  54.         // Or, send out a WAP SI message.
  55.         //OutboundWapSIMessage wapMsg = new OutboundWapSIMessage("306974000000",  
  56. //new URL("http://www.smslib.org/"), "Visit SMSLib now!");
  57.         //Service.getInstance().sendMessage(wapMsg);
  58.         //System.out.println(wapMsg);
  59.         // You can also queue some asynchronous messages to see how the callbacks
  60.         // are called...
  61.         //msg = new OutboundMessage("309999999999", "Wrong number!");
  62.         //srv.queueMessage(msg, gateway.getGatewayId());
  63.         //msg = new OutboundMessage("308888888888", "Wrong number!");
  64.         //srv.queueMessage(msg, gateway.getGatewayId());
  65.         System.out.println("Now Sleeping - Hit <enter> to terminate.");  
  66.         System.in.read();  
  67.         Service.getInstance().stopService();  
  68.     }  
  69.     /* 
  70.      簡訊傳送成功後,呼叫該介面。並將傳送簡訊的閘道器和簡訊內容物件傳給process介面 
  71.     */
  72.     publicclass OutboundNotification implements IOutboundMessageNotification  
  73.     {  
  74.         publicvoid process(AGateway gateway, OutboundMessage msg)  
  75.         {  
  76.             System.out.println("Outbound handler called from Gateway: " + gateway.getGatewayId());  
  77.             System.out.println(msg);  
  78.         }  
  79.     }  
  80.     publicstaticvoid main(String args[])  
  81.     {  
  82.         SendMessage app = new SendMessage();  
  83.         try
  84.         {  
  85.             app.doIt();  
  86.         }  
  87.         catch (Exception e)  
  88.         {  
  89.             e.printStackTrace();  
  90.         }  
  91.     }  
  92. }  
  1. // ReadMessages.java - Sample application.
  2. // 簡訊讀取程式
  3. // This application shows you the basic procedure needed for reading
  4. // SMS messages from your GSM modem, in synchronous mode.
  5. //
  6. // Operation description:
  7. // The application setup the necessary objects and connects to the phone.
  8. 相關推薦

    簡訊 SMSLib開發指南

           近期專案中,用到了簡訊貓的二次開發,查到的資料進行轉載,以備查用 轉自: http://blog.csdn.net/xyang81/article/details/7492161 一、SMSLib簡介 SMSLib是一個開放原始碼的簡訊貓二

    SMSLIB+RXTX 簡訊開發模組

    幾天的工作成果,winxp上早早就測好了,在linux 上花了不少時間。 一開始使用redhat4 64位系統,一直調不出來。後來換了centos_6_x86_64後,順利好多。 另外由於java comm v3對linux64位機器上不好用,花了不少時間。後改為rxtx,

    手機自動激活系統-開發指南-004- OLT添加vlan(ADD- VLAN)

    手機 光貓 手機激活系統 -開發指南-004- olt添加vlan(add- vlan) ADD-VLAN::OLTID=10.124.202.199:CTAG::VLAN=2108,DESC=2108,VLANMODE=SINGLE,PORTLIST=NA-0-19-0|NA-0-20-0|

    簡訊簡訊,不能關閉服務,報端口占用,javax.comm.PortInUseException: Port currently owned by org.smslib等問題

    簡訊貓發簡訊呼叫串列埠發簡訊時,第一條可以正常傳送,第二條的時候就報錯了!大致意思是埠被佔用,沒有可用或找不到串列埠。 分析:其主要原因是,簡訊貓接上電腦即建立了連線,執行service.startService()相當於保持一個長連線,不能用程式斷開!最後把srv設為靜態

    基於GSM MODEM簡訊二次開發說明和免費二次開發包提供C#、VC、Delphi、linx、JAVA、PB等語言源程式

    隨著電子資訊的不斷髮展,資訊科技的高速發展和廣泛應用中,簡訊技術也是資訊科技的前沿和熱點.許多系統管理軟體和辦公軟體在監控到資料異常時無法及時告知管理人員,使系統管理軟體發揮作用降低。而採用簡訊模組與系統管理軟體相結合進行有效實時監控,使在出現故障和異常情況時自動傳送報警資訊

    簡訊開發簡訊編碼格式

    1 ///<summary>2 /// 計算訊息長度3 ///</summary>4 ///<param name="_phoneNumber">Phone</param>5 ///<param name="_targetText">Context&

    簡訊 rxtx smslib出錯

    按理說,你如果把win32com.dll放到JDK的/jre/lib/ext目錄下,並把javax.comm.properties放到JDK的/jre/lib目錄,把comm.jar放到你的工程的lib目錄,是不會出現上述錯誤的,但是偶爾一次我要把發簡訊的後臺程式做成windows服務,問題出來,就是找不到w

    ASP.NET Zero--開發指南

    .html bsp title com 開發 host log class ref ASP.NET Zero--開發指南(Lyhcee 譯) 01. 前期介紹 02. 前期要求 03. 解決方案結構(層) 04. 前端應用程序 05. 後端應用程序 06.WEB

    JNI/NDK開發指南(2)

    清除 onu 呼叫 rac 個人理解 運行 ati clas 函數 1.生成動態庫.so,存放於手機的system/lib/中(APP怎樣將.so存入該文件夾,奇怪?????),Java層調用JNI的類會運行靜態代碼System.loadLibrary("***")將手

    電子書 Node.js開發指南.pdf

    external 展示 如何 興趣 前端 span com 部署 沒有 《圖靈原創:Node.js開發指南》首先簡要介紹Node.js,然後通過各種示例講解Node.js的基本特性,再用案例式教學的方式講述如何用Node.js進行Web開發,接著探討一些Node.js進階話

    [翻譯]現代java開發指南 第二部分

    huang java開發 suv ima and gui zid dff ros DedeCMS%E5%8E%BB%E6%8E%89%E5%8F%8B%E6%83%85%E9%93%BE%E6%8E%A5%E4%B8%AD%E2%80%9C%E7%BB%87%E6%A2%A

    JNI/NDK開發指南(三)——JNI數據類型及與Java數據類型的映射關系

    ons 轉換 類型 art return http 異常 array src 轉載請註明出處:http://blog.csdn.net/xyang81/article/details/42047899 當我們在調用一個

    握手API網關(7)開發指南-API參考

    custom psd title control test 機制 找不到 con 列表 一、簡介 用戶可以使用開發指南介紹的 API 對 API 網關服務進行相關操作。 術語表 術語全稱中文說明 Region 地域 用戶開放API,需選擇API在API網關的部署地

    Jsoup教程,jsoup開發指南,jsoup中文使用手冊,jsoup中文文檔

    jsoup java 爬蟲 網頁分析 網頁抓取 網頁解析 jsoup 是一款Java 的HTML解析器,可直接解析某個URL地址、HTML文本內容。它提供了一套非常省力的API,可通過DOM,CSS以及類似於jQuery的操作方法來取出和操作數據。 jsoup的主要功能如下:

    MySQL開發指南

    流程控制 數據 流程控制語句 fin con 我們 事情 lan zhang 數據庫開發是數據庫管理系統(DBMS)和數據庫應用軟件設計研發的總稱,數據運維、參與數據庫生產環境的問題優化和解決等方面的事宜。   1、關於MySQL數據庫   2、搭建MySQL環境   

    開發指南專題五:JEECG微雲高速開發平臺代碼生成器

    之前 gem target utf8 文件夾 var lan rop 代碼 開發指南專題五:JEECG微雲高速開發平臺代碼生成器 1.1. Maven開發環境搭建 在搭建jeecg的maven開發環境之前,須要先配置好本機的ma

    實時同步MongoDB Oplog開發指南

    過濾 opts -o 速度 初始 .html https get() 系統 轉載請註明joymufeng,歡迎訪問PlayScala社區(http://www.playscala.cn/) Capped Collections MongoDB有一種特殊的Coll

    點聚office開發指南

    his blank 獲取 ffi flag 返回 () 郵件 else http://www.dianju.cn/forum/viewtopic.php?t=9249WebOffice開發系列指南 WebOffice文檔控件技術交流和版本發布 發表回復 17 篇帖子

    技術福利【幹貨】音視頻 iOS CallKit 開發指南

    音視頻 voip calllib開發指南 sdk iOS CallKit 開發指南簡介CallKit 是融雲音視頻通話功能的 UI 界面 SDK。包含了單人、多人音視頻通話的界面的各種場景和功能。您可以快速的集成 CallKit 來實現豐富的音視頻通話界面,並進行自己的 UI 定制開發。同時我

    Cognos 11.0快速開發指南

    聯動效果 加減 表之間 最簡 轉化 chrome 其他屬性 對象 項目 1. 創建報表 在創建好數據源之後,我們就可以創建報表了,報表的開發是瀏覽器中完成的,這裏我選用了chrome瀏覽器,在地址欄輸入:http://localhost:80/ibmcognos (