Hello
I used these lines (It's actually already in the example given) to
delete message:
>> SerialModemGateway gateway = new SerialModemGateway("modem.com1", "COM1",
>> 57600, "Nokia", "");
In the InboundNotification class delete the message with this:
>>gateway.deleteMessage(msg);
if you delete the inbound message, it should be working like you want to.
Hope it helps.
On 2/17/11, Dr G suresh reddy <[email protected]> wrote:
> 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.
>
>
--
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.