http://smslib.org/doc/installation/
and then in the distribution zip, you'll find a "log4j.properties" file. INstall it properly On Fri, Apr 20, 2012 at 5:42 PM, nowshad rahaman <[email protected]> wrote: > // 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 examples.modem; > > import java.util.ArrayList; > import java.util.List; > import javax.crypto.spec.SecretKeySpec; > import org.smslib.AGateway; > import org.smslib.AGateway.GatewayStatuses; > import org.smslib.AGateway.Protocols; > import org.smslib.ICallNotification; > import org.smslib.IGatewayStatusNotification; > import org.smslib.IInboundMessageNotification; > import org.smslib.IOrphanedMessageNotification; > import org.smslib.InboundMessage; > import org.smslib.InboundMessage.MessageClasses; > import org.smslib.Library; > import org.smslib.Message.MessageTypes; > import org.smslib.Service; > import org.smslib.crypto.AESKey; > import org.smslib.modem.SerialModemGateway; > > public class ReadMessages > { > 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(); > // Create the notification callback method for inbound voice > calls. > CallNotification callNotification = new CallNotification(); > //Create the notification callback method for gateway statuses. > GatewayStatusNotification statusNotification = new > GatewayStatusNotification(); > OrphanedMessageNotification orphanedMessageNotification = new > OrphanedMessageNotification(); > try > { > System.out.println("Example: Read messages from a > serial gsm > modem."); > System.out.println(Library.getLibraryDescription()); > System.out.println("Version: " + > Library.getLibraryVersion()); > // Create the Gateway representing the serial GSM > modem. > SerialModemGateway gateway = new > SerialModemGateway("modem.com1", > "COM1", 9600, "Huawei", "E169G"); > // 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(true); > // Let SMSLib know which is the SIM PIN. > gateway.setSimPin("0000"); > // Set up the notification methods. > > Service.getInstance().setInboundMessageNotification(inboundNotification); > > Service.getInstance().setCallNotification(callNotification); > > Service.getInstance().setGatewayStatusNotification(statusNotification); > > Service.getInstance().setOrphanedMessageNotification(orphanedMessageNotification); > // Add the Gateway to the Service object. > Service.getInstance().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) > Service.getInstance().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() + > " dBm"); > 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. > // > Service.getInstance().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>(); > Service.getInstance().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 > { > Service.getInstance().stopService(); > } > } > > public class InboundNotification implements > IInboundMessageNotification > { > public void process(AGateway gateway, MessageTypes msgType, > InboundMessage msg) > { > if (msgType == MessageTypes.INBOUND) > System.out.println(">>> New > Inbound message detected from Gateway: " + gateway.getGatewayId()); > else if (msgType == MessageTypes.STATUSREPORT) > System.out.println(">>> New Inbound Status Report message detected > from Gateway: " + gateway.getGatewayId()); > System.out.println(msg); > } > } > > public class CallNotification implements ICallNotification > { > public void process(AGateway gateway, String callerId) > { > System.out.println(">>> New call detected from > Gateway: " + > gateway.getGatewayId() + " : " + callerId); > } > } > > public class GatewayStatusNotification implements > IGatewayStatusNotification > { > public void process(AGateway gateway, GatewayStatuses > oldStatus, > GatewayStatuses newStatus) > { > System.out.println(">>> Gateway Status change for " + > gateway.getGatewayId() + ", OLD: " + oldStatus + " -> NEW: " + > newStatus); > } > } > > public class OrphanedMessageNotification implements > IOrphanedMessageNotification > { > public boolean process(AGateway gateway, InboundMessage msg) > { > System.out.println(">>> Orphaned message part detected > from " + > gateway.getGatewayId()); > System.out.println(msg); > // Since we are just testing, return FALSE and keep > the orphaned > message part. > return false; > } > } > > public static void main(String args[]) > { > ReadMessages app = new ReadMessages(); > try > { > app.doIt(); > } > catch (Exception e) > { > e.printStackTrace(); > } > } > } > > > > run: > Example: Send message 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.5.1 > log4j:WARN No appenders could be found for logger (smslib). > log4j:WARN Please initialize the log4j system properly. > log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig > for more info. > org.smslib.GatewayException: Comm library exception: > java.lang.RuntimeException: javax.comm.PortInUseException: Port > currently owned by Unknown Windows Application > at > org.smslib.modem.SerialModemDriver.connectPort(SerialModemDriver.java: > 102) > at org.smslib.modem.AModemDriver.connect(AModemDriver.java:114) > at org.smslib.modem.ModemGateway.startGateway(ModemGateway.java: > 189) > at org.smslib.Service$1Starter.run(Service.java:276) > > -- > You received this message because you are subscribed to the Google Groups > "SMSLib Discussion 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. > -- You received this message because you are subscribed to the Google Groups "SMSLib Discussion 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.
