Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

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());
		}
	}

}