...
This is an example using JAVA to send a more advanced Document message to the SMS gateway using the Web Service's sendDocument method. The code uses the mc-client.jar library, which contains useful object definitions related to the SMS gateway's WebSservices.The
This example sets a custom reply-to URL that has an embedded custom ID, smsid with a value of MYUNIQUEID in this example. Such parameters may be useful for integration into existing systems and to generally keep track of custom state variables related to the SMS. The reply-to URL will be stored within the system on the initial request and sent back upon SMS reply for Two-Way accounts. Addition parameters specified in this example use replacement keywords %%TEXT%% and %%FROM%% to get the reply-to SMS text body and replying address respectively for more direct access to data. The reply-to URL is as follows:
Code Block |
---|
String replyToURL = "http://www.example.com/replyto.php?smsid=MYUNIQUEID&text=%%TEXT%%&from=%%FROM%%"; |
The code uses the mc-client.jar library, which contains useful object definitions related to the SMS Gateway's Web Services. Please refer to the sendDocument API documentation for more detailed object and options definitions that are available.
Code Block |
---|
import com.amethon.mc.ws.stubs.Address; import com.amethon.mc.ws.stubs.Body; import com.amethon.mc.ws.stubs.Destination; import com.amethon.mc.ws.stubs.Document; import com.amethon.mc.ws.stubs.Message; import com.amethon.mc.ws.stubs.Payload; import com.amethon.mc.ws.stubs.SMSOption; import com.amethon.mc.ws.stubs.SMSServiceServiceLocator; import com.amethon.mc.ws.stubs.SMSServiceSoapBindingStub; import com.amethon.mc.ws.stubs.SubmitStatus; public class SMSServiceClient { public static void main(String[] args) throws Exception { SMSServiceServiceLocator serviceLocator = new SMSServiceServiceLocator(); SMSServiceSoapBindingStub smsService = (SMSServiceSoapBindingStub)serviceLocator.getSMSService(); // SMS gateway username, password and custom reply-to URL String username = "username@example.com"; String password = "password"; String replyToURL = "http://www.example.com/replyto.php?smsid=MYUNIQUEID&text=%%TEXT%%&from=%%FROM%%"; // set SMS destination address and a fakeempty source address Address destinationAddress = new Address(); destinationAddress.setType("SMS"); destinationAddress.setValue("61423282862"); Address sourceAddress = new Address(); sourceAddress.setType("SMS"); sourceAddress.setValue(""); // setcreate destination object and replyto Address replyToAddress = new Address(); replyToAddress.setType("URL"); replyToAddress.setValue(replyToURL); SMSOption replyToOption = new SMSOption(); replyToOption.setName("replyto"); replyToOption.setValue(replyToURL); Destination destination = new Destination(); destination.setDestinationAddress(destinationAddress); destination.setOptions(new SMSOption[] {replyToOption}); destination.setReferenceId(""); destination.setSourceAddress(sourceAddress); // create message body and payload, ASCII text in this case Payload payload = new Payload(); payload.setContent("This is the payload"); payload.setEncoding("ASCII"); payload.setType("TEXT"); payload.setOptions(new SMSOption[] {}); Body body = new Body(); body.setPayloads(new Payload[] {payload}); body.setType("TEXT"); // create message object Message message = new Message(); message.setDestinations(new Destination[] {destination}); message.setBody(body); message.setOptions(new SMSOption[] {}); message.setReferenceId(""); message.setSubject("This is the message subject"); // create document object with confirm Document document = new Document(); document.setUsername(username); document.setPassword(password); document.setMessages(new Message[] {message}); document.setOptions(new SMSOption[] {}); // documentId is returned by the SMS Gateway and can be used to query the SMS Gateway String documentId = smsService.sendDocument(document); System.out.println("documentId=" + documentId); // query the SMS Gateway for the status of the SMS contained within the document SubmitStatus[] submitStatus = smsService.query(username, password, documentId); for (int j=0; j<submitStatus.length; j++) { SubmitStatus status = submitStatus[j]; System.out.println(" - " + status.getRecipient() + ", " + status.getStatusCode()); } } } |