Hello Eduardson,
Set the storage location for your Gateway. Refer to the code below when
configuring your *SerialModemGateway*
final SerialModemGateway gateway = new SerialModemGateway(gatewayId,
comPort, baudRate, manufacturer, model);
gateway.setProtocol(protocol);
gateway.setSimPin("0000");
gateway.setSmscNumber(smscNumber);
gateway.setInbound(true);
gateway.setOutbound(true);
*gateway.getATHandler().setStorageLocations("SM");*
As you can see, we've set the storage location to "*SM*". It means the SMS
Service will read the message from the SIM's inbox.
You may also check these websites as your reference
- SMSLib <http://smslib.org/doc/v4/ModemConfiguration>
- List of possible storage location
<https://code.google.com/p/smslib/issues/detail?id=255>
On Friday, June 12, 2015 at 2:58:05 PM UTC+8, Eduardson Tacuban wrote:
>
> I got this error using the code posted:
>
> java.lang.StringIndexOutOfBoundsException: String index out of range: -12
> at java.lang.String.substring(String.java:1911)
> at java.lang.String.substring(String.java:1911)
>
> How to solve this problem, the code of SendMessage.java is working.
>
>
> On Monday, December 29, 2014 at 7:36:30 PM UTC+8, ABHISHEK BEESONY wrote:
>>
>> *here is the output that i get from netbeans*
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>> *run: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 <http://smslib.org>Version:
>> 3.5.3log4j: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
>> <http://logging.apache.org/log4j/1.2/faq.html#noconfig> for more info.>>>
>> Gateway Status change for modem.com8, OLD: STOPPED -> NEW: STARTING>>>
>> Gateway Status change for modem.com8, OLD: STARTING -> NEW: STARTEDModem
>> Information: Manufacturer: Nokia Model: Nokia 310 Serial No:
>> 354598058700969 SIM IMSI: ** MASKED ** Signal Level: 53 dBm Battery
>> Level: 0%Now Sleeping - Hit <enter> to stop service.>>> New call detected
>> from Gateway: modem.com8 : 59517747>>> New call detected from Gateway:
>> modem.com8 : 59517747>>> New call detected from Gateway: modem.com8 :
>> 59517747>>> New call detected from Gateway: modem.com8 : 59517747>>> New
>> call detected from Gateway: modem.com8 : 59517747here is my code*
>>
>>
>>
>>
>>
>>
>>
>>
>> *// 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) Runpackage
>> 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.com8", "COM9",9600, "Nokia", "310"); // 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(); } }}*
>>
>
--
You received this message because you are subscribed to the Google Groups
"SMSLib Discussion Group" group.
To view this discussion on the web visit
https://groups.google.com/d/msgid/smslib/c9f945f6-e28b-4279-a5af-8fdee61fea68%40googlegroups.com.