Hello, I am new to SMS Lib. When I run the ReadMessages class, the below is the output.
Example: Read messages from a serial gsm modem. SMSLib: A Java API library for sending and receiving SMS via a GSM modem or other supported gateways. This software is distributed under the terms of the Apache v2.0 License. Web Site: http://smslib.org Version: 3.4.4 0 [main] INFO smslib - SMSLib: A Java API library for sending and receiving SMS via a GSM modem or other supported gateways. This software is distributed under the terms of the Apache v2.0 License. Web Site: http://smslib.org 0 [main] INFO smslib - Version: 3.4.4 0 [main] INFO smslib - JRE Version: 1.6.0_12 0 [main] INFO smslib - JRE Impl Version: 11.2-b01 0 [main] INFO smslib - O/S: Windows XP / x86 / 5.1 31 [Thread-3] INFO smslib - GTW: modem.com1: Starting gateway, using Generic AT Handler. 31 [Thread-3] INFO smslib - GTW: modem.com1: Opening: COM6 @57600 6515 [Thread-3] INFO smslib - GTW: modem.com1: GSM: Registered to home network. 6547 [Thread-3] INFO smslib - GTW: modem.com1: MEM: Storage Locations Found: 6547 [Thread-3] WARN smslib - GTW: modem.com1: Retrying the detection of CNMI, modem busy? 9562 [Thread-3] WARN smslib - GTW: modem.com1: Retrying the detection of CNMI, modem busy? 12562 [Thread-3] WARN smslib - GTW: modem.com1: Retrying the detection of CNMI, modem busy? 15562 [Thread-3] WARN smslib - GTW: modem.com1: CNMI detection failed, proceeding with defaults. 15562 [Thread-3] WARN smslib - GTW: modem.com1: Callback indications were *not* set succesfully! 15578 [Thread-3] INFO smslib - GTW: modem.com1: Gateway started. Modem Information: Manufacturer: Nokia Model: Nokia 5800 XpressMusic Serial No: 353184039803866 SIM IMSI: ** MASKED ** Signal Level: 70% Battery Level: 22% Now Sleeping - Hit <enter> to stop service. But whenever I send a message to the mobile connected to PC using smslib, the message does not reach the library and does not show in the console. Here is my modified ReadMessages class. // ReadMessages.java - Sample application. // // This application shows you the basic procedure needed for reading // SMS messages from your GSM modem, in synchronous mode. // // Operation description: // The application setup the necessary objects and connects to the phone. // As a first step, it reads all messages found in the phone. // Then, it goes to sleep, allowing the asynchronous callback handlers to // be called. Furthermore, for callback demonstration purposes, it responds // to each received message with a "Got It!" reply. // // Tasks: // 1) Setup Service object. // 2) Setup one or more Gateway objects. // 3) Attach Gateway objects to Service object. // 4) Setup callback notifications. // 5) Run package test; import java.util.ArrayList; import java.util.List; import javax.crypto.spec.SecretKeySpec; import org.smslib.ICallNotification; import org.smslib.IGatewayStatusNotification; import org.smslib.IInboundMessageNotification; import org.smslib.IOrphanedMessageNotification; import org.smslib.InboundMessage; import org.smslib.Library; import org.smslib.Service; import org.smslib.AGateway.GatewayStatuses; import org.smslib.AGateway.Protocols; import org.smslib.InboundMessage.MessageClasses; import org.smslib.Message.MessageTypes; import org.smslib.crypto.AESKey; import org.smslib.modem.SerialModemGateway; public class ReadMessages { Service srv; public void doIt() throws Exception { // Define a list which will hold the read messages. List<InboundMessage> msgList; // Create the notification callback method for inbound & status report // messages. InboundNotification inboundNotification = new InboundNotification(); try { System.out.println("Example: Read messages from a serial gsm modem."); System.out.println(Library.getLibraryDescription()); System.out.println("Version: " + Library.getLibraryVersion()); // Create new Service object - the parent of all and the main interface // to you. this.srv = new Service(); // Create the Gateway representing the serial GSM modem. SerialModemGateway gateway = new SerialModemGateway("modem.com1", "COM6", 57600, "Nokia", "Nokia 5800 XpressMusic"); // Set the modem protocol to PDU (alternative is TEXT). PDU is the default, anyway... gateway.setProtocol(Protocols.PDU); // Do we want the Gateway to be used for Inbound messages? gateway.setInbound(true); // Do we want the Gateway to be used for Outbound messages? gateway.setOutbound(false); // Let SMSLib know which is the SIM PIN. gateway.setSimPin("0000"); // Set up the notification methods. this.srv.setInboundMessageNotification(inboundNotification); // Add the Gateway to the Service object. this.srv.addGateway(gateway); // Similarly, you may define as many Gateway objects, representing // various GSM modems, add them in the Service object and control all of them. // Start! (i.e. connect to all defined Gateways) this.srv.startService(); // Printout some general information about the modem. System.out.println(); System.out.println("Modem Information:"); System.out.println(" Manufacturer: " + gateway.getManufacturer()); System.out.println(" Model: " + gateway.getModel()); System.out.println(" Serial No: " + gateway.getSerialNo()); System.out.println(" SIM IMSI: " + gateway.getImsi()); System.out.println(" Signal Level: " + gateway.getSignalLevel() + "%"); System.out.println(" Battery Level: " + gateway.getBatteryLevel() + "%"); System.out.println(); // In case you work with encrypted messages, its a good time to declare your keys. // Create a new AES Key with a known key value. // Register it in KeyManager in order to keep it active. SMSLib will then automatically // encrypt / decrypt all messages send to / received from this number. this.srv.getKeyManager().registerKey("+306948494037", new AESKey (new SecretKeySpec("0011223344556677".getBytes(), "AES"))); // Read Messages. The reading is done via the Service object and // affects all Gateway objects defined. This can also be more directed to a specific // Gateway - look the JavaDocs for information on the Service method calls. msgList = new ArrayList<InboundMessage>(); this.srv.readMessages(msgList, MessageClasses.ALL); for (InboundMessage msg : msgList) System.out.println(msg); // Sleep now. Emulate real world situation and give a chance to the notifications // methods to be called in the event of message or voice call reception. System.out.println("Now Sleeping - Hit <enter> to stop service."); System.in.read(); System.in.read(); } catch (Exception e) { e.printStackTrace(); } finally { this.srv.stopService(); } } public class InboundNotification implements IInboundMessageNotification { public void process(String gatewayId, MessageTypes msgType, InboundMessage msg) { System.out.println("Message received"); if (msgType == MessageTypes.INBOUND) System.out.println(">>> New Inbound message detected from Gateway: " + gatewayId); else if (msgType == MessageTypes.STATUSREPORT) System.out.println (">>> New Inbound Status Report message detected from Gateway: " + gatewayId); System.out.println(msg); } } public static void main(String args[]) { ReadMessages app = new ReadMessages(); try { app.doIt(); } catch (Exception e) { e.printStackTrace(); } } } Please help me. -- You received this message because you are subscribed to the Google Groups "SMSLib for Java User Group" group. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/smslib?hl=en.
