...
Code Block |
---|
http://www.example.com/replyto.php?smsid=MYUNIQUEID&text=This is the reply&from=61412345678 |
Polling for SMS replies
The web services's receive method is a polling functionality used to query for SMS replies in response to out going messages that contain a reply-to value of INBOX. For example to send a out going SMS that will be used with the web service's receive method the following value needs to be substituted when creating the SMS document as in the above example,
Code Block |
---|
String replyToURL = "inbox:MYUNIQUEID"
|
The key part of the reply-to value is that it begins with the key word 'inbox:'. It is possible to us any string there after as the destination address identifier. Preferably the string should be a sensible identifier of some form for the case where the user would like to search for reply messages based on destination address. In this example it is set to MYUNIQUEID, alternatively it is also acceptable to not pass a destination value other than 'inbox:'.
The following is a simple example JAVA class that shows how to use the web service's receive method to query for a SMS reply using a document-id based on the sending example above.
Code Block |
---|
import com.amethon.mc.ws.stubs.Message;
import com.amethon.mc.ws.stubs.SMSOption;
import com.amethon.mc.ws.stubs.SMSServiceServiceLocator;
import com.amethon.mc.ws.stubs.SMSServiceSoapBindingStub;
public class SMSReceiveClient {
public static void main(String\[\] args) throws Exception {
SMSServiceServiceLocator serviceLocator = new SMSServiceServiceLocator();
SMSServiceSoapBindingStub smsService = (SMSServiceSoapBindingStub)serviceLocator.getSMSService();
String username = "anh@amethon.com";
String password = "M355ag3";
String documentId;
// Stop if there is no arguments supplied
if (args.length == 0) {
System.out.println("Required option missing: DocumentId");
System.exit(1);
}
// documentId is passed as first argument to program
documentId = args\[0\];
// create a documentId option
SMSOption documentIdOption = new SMSOption();
documentIdOption.setName("document-id");
documentIdOption.setValue(args\[0\]);
SMSOption\[\] receiveOptions = {documentIdOption};
// poll for messages received passing in the documentId option
Message\[\] receivedMessages = smsService.receive(username, password, receiveOptions);
// iterate over the received Message array
for (Message receivedMessage : receivedMessages) {
// Gets the source address and message body assuming its ASCII text
String source = receivedMessage.getDestinations()\[0\].getSourceAddress().getValue();
String subject = receivedMessage.getSubject();
if (subject \!= null) {
// The subject usually contains a error code if it is set
System.out.println("Received message from " + source + " \"" + subject + "\"");
}
else {
// Get the message and print it out
String message = receivedMessage.getBody().getPayloads()\[0\].getContent();
System.out.println(source + " : " + message);
}
}
System.exit(0);
}
}
|