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.


Reply via email to