package org.apache.smscserver.smsclet; import java.util.Date; /** * This operation is used by an ESME to submit a short message to the SMSC for onward transmission to a specified short * message entity (SME). The submit_sm PDU does not support the transaction message mode. * * @version $Rev$ $Date$ */ public interface SubmitSMRequest extends SmscRequest { /** * Returns the Defines the encoding scheme of the short message user data. * * @return the Defines the encoding scheme of the short message user data */ int getDataCoding(); /** * Returns the identifier for the short message to send from a list of predefined ("canned") short messages stored * on the SMSC. * <p> * If not using an SMSC canned message, set to NULL. * * @return the identifier for the short message to send from a list of predefined ("canned") short messages stored * on the SMSC */ int getDefaultMessageId(); /** * Returns the destination address of this short message. For mobile terminated messages, this is the directory * number of the recipient MS. * * @return the destination address of this short message */ String getDestinationAddress(); /** * Returns the numbering Plan Indicator for destination address. If not known, set to NULL * * @return the numbering Plan Indicator for destination address or NULL */ int getDestinationAddressNPI(); /** * Returns the type of number for destination address. * <p> * If not known, set to NULL * * @return the type of number for destination address or NULL */ int getDestinationAddressTON(); /** * Returns the Message Mode & Message Type. * * @return the Message Mode & Message Type */ int getEsmClass(); /** * Returns the length in octets of the shortMessage user data. * * @see #getShortMessage() * @return the length in octets of the shortMessage user data */ int getMessageLength(); /** * Designates the priority level of the message. * * @return the priority level of the message */ int getPriorityFlag(); /** * returns the Protocol Identifier. Network specific field. * * @return the Protocol Identifier */ int getProtocolId(); /** * Returns the short message is to be scheduled by the SMSC for delivery. * <p> * Set to NULL for immediate message delivery. * * @return the short message is to be scheduled by the SMSC for delivery or NULL */ Date getScheduleDeliveryTime(); /** * Returns the service type. * <ul> * The service_type parameter can be used to indicate the SMS Application service associated with the message. * Specifying the service_type allows the ESME to * <li>avail of enhanced messaging services such as "replace by service" type * <li>to control the teleservice used on the air interface. * </ul> * <p> * Set to NULL for default SMSC settings. * * @return the service type or NULL */ String getServiceType(); /** * Returns the up to 254 octets of short message user data. The exact physical limit for short_message size may vary * according to the underlying network. * <p> * Applications which need to send messages longer than 254 octets use the messagePayload parameter. In this case * the sm_length field should be set to zero * * * @return the up to 254 octets of short message user data */ byte[] getShortMessage(); /** * Returns the address of SME which originated this message. If not known, set to NULL * * @return the address of SME which originated this message or NULL */ String getSourceAddress(); /** * Returns the numbering Plan Indicator for source address. If not known, set to NULL * * @return the numbering Plan Indicator for source address or NULL */ int getSourceAddressNPI(); /** * Returns the type of number for source address. * <p> * If not known, set to NULL * * @return the type of number for source address or NULL */ int getSourceAddressTON(); /** * Returns the validity period of this message. * <p> * Set to NULL to request the SMSC default validity period. * * @return the validity period of this message or NULL */ Date getValidityPeriod(); /** * Returns the flag indicating if submitted message should replace an existing message. * * @return the flag indicating if submitted message should replace an existing message. */ boolean replaceIfPresent(); }