Hello Friends,

Here i am sending my program,

I am using the program to process each message.
But i am facing 2 problem, When ever new message comes. All Messages
are coming in a bunch. i.e if 10 messages come. 10 times all messages
are repeating.

Another problem is how to delete message. Some one told use
Service.getInstance().deleteMessage(InboundMessage msg);.. But When i
am using that it is giving erros. Please let me know is there any
solution..


Thanks in Advance.

suresh


package com.mhealth.example;

import org.smslib.*;
import org.smslib.crypto.AESKey;
import org.smslib.modem.SerialModemGateway;

import javax.crypto.spec.SecretKeySpec;
import java.util.ArrayList;
import java.util.List;

public class RecieveMessage {

    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",
"COM6", 9600, "Visiontek", "81GC");
                        // Set the modem protocol to PDU (alternative is TEXT). 
PDU is the
default, anyway...
                        gateway.setProtocol(AGateway.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,
InboundMessage.MessageClasses.ALL);
                    //msgList.remove((msgList.size())-1);

            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, Message.MessageTypes 
msgType,
InboundMessage msg)
                {
                        if (msgType == Message.MessageTypes.INBOUND)
System.out.println(">>> New Inbound message detected from Gateway: " +
gateway.getGatewayId());
                        else if (msgType == Message.MessageTypes.STATUSREPORT)
System.out.println(">>> New Inbound Status Report message detected
from Gateway: " + gateway.getGatewayId());
                        // System.out.println(msg);
            System.out.println(msg.getText());
            System.out.println(msg.getOriginator());


                }
        }

        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, AGateway.GatewayStatuses
oldStatus, AGateway.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[])
        {
                RecieveMessage app = new RecieveMessage();
                try
                {
                        app.doIt();
                }
                catch (Exception e)
                {
                        e.printStackTrace();
                }
        }
}

-- 
You received this message because you are subscribed to the Google Groups 
"SMSLib Users" 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.

import org.smslib.*;
import org.smslib.crypto.AESKey;
import org.smslib.modem.SerialModemGateway;

import javax.crypto.spec.SecretKeySpec;
import java.util.ArrayList;
import java.util.List;

public class RecieveMessage {

    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", "COM6", 9600, "Visiontek", "81GC");
                        // Set the modem protocol to PDU (alternative is TEXT). 
PDU is the default, anyway...
                        gateway.setProtocol(AGateway.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, 
InboundMessage.MessageClasses.UNREAD);


            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, Message.MessageTypes 
msgType, InboundMessage msg)
                {
                        if (msgType == Message.MessageTypes.INBOUND) 
System.out.println(">>> New Inbound message detected from Gateway: " + 
gateway.getGatewayId());
                        else if (msgType == Message.MessageTypes.STATUSREPORT) 
System.out.println(">>> New Inbound Status Report message detected from 
Gateway: " + gateway.getGatewayId());
                        // System.out.println(msg);
            System.out.println(msg.getText());
            System.out.println(msg.getOriginator());


                }
        }

        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, AGateway.GatewayStatuses 
oldStatus, AGateway.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[])
        {
                RecieveMessage app = new RecieveMessage();
                try
                {
                        app.doIt();
                }
                catch (Exception e)
                {
                        e.printStackTrace();
                }
        }
}

Reply via email to