Methods
GetSMSLength | (aa{sv}: Message) | → | u: Chunks_Required, i: Remaining_Characters, i: Estimated_Cost |
Signals
SMSChannelChanged | (b: SMSChannel) |
Properties
Flash | b | Read only | Immutable | |
SMSChannel | b | Read only | Sometimes immutable, Requestable |
Description
This interface contains SMS-specific properties for text channels.
The presence of this interface on a channel does not imply that messages will be delivered via SMS.
This interface MAY appear in the Interfaces property of channels where SMSChannel would be immutable and false. It SHOULD appear on channels where SMSChannel is immutable and true, and also on channels where SMSChannel is mutable (i.e. channels that might fall back to sending SMS at any time, such as on MSN).
Handler filters
A handler for class 0 SMSes should advertise the following filter:
{ ...ChannelType:
...Text,
...TargetHandleType:
Contact,
...SMS.Flash:
True,
}
It should also set its BypassApproval property
to True
, so that it is invoked immediately for new
channels.
Contact Capabilities
Contacts to whom SMSes can be sent SHOULD indicate this via a requestable channel class with SMSChannel = True as a fixed property.
For instance, a contact that can accept both text and SMS channels:
[
({ ...ChannelType:
...Text,
...TargetHandleType:
Contact,
},
[ ...TargetHandle,
...TargetID ]),
({ ...ChannelType:
...Text,
...TargetHandleType:
Contact,
...SMSChannel: True,
},
[ ...TargetHandle,
...TargetID ]),
]
Methods
GetSMSLength (aa{sv}: Message) → u: Chunks_Required, i: Remaining_Characters, i: Estimated_Cost
Parameters
- Message — aa{sv} (Message_Part_List)
Returns
- Chunks_Required — u
- Remaining_Characters — i
- Estimated_Cost — i
The number of 140 octet chunks required to send this message.
For example, in the GSM standard 7-bit encoding, a 162 character message would require 2 chunks.
The number of further characters that can be fit in the final
chunk. A negative value indicates that the message will be
truncated by abs(Remaining_Characters)
. The value
MIN_INT32
(-231
)
indicates the message will be truncated by an unknown amount.
For example, in the GSM standard 7-bit encoding, a 162 character message would return 144 remaining characters (because of the space required for the multipart SMS header).
The estimated cost of sending this message. The currency and scale of this value are the same as the Balance.AccountBalance property.
A value of -1
indicates the cost could not be
estimated.
Returns the number of 140 octet chunks required to send a message via SMS, as well as the number of remaining characters available in the final chunk and, if possible, an estimate of the cost.
Rationale:
Clients SHOULD limit the frequency with which this method is called and SHOULD NOT call it for every keystroke. Clients MAY estimate the remaining size between single keystrokes.
Possible Errors
- Not Implemented
- Invalid Argument
Signals
SMSChannelChanged (b: SMSChannel)
Parameters
- SMSChannel — b
Properties
Flash — b
If True
, then this channel is exclusively for
receiving class 0 SMSes (and no SMSes can be sent using SendMessage
on this channel). If False
, no incoming class 0 SMSes
will appear on this channel.
This property is immutable (cannot change), and therefore SHOULD appear wherever immutable properties are reported, e.g. NewChannels signals.
Rationale:
SMSChannel — b
If TRUE, messages sent and received on this channel are transmitted via SMS.
If this property is included in the channel request, the Connection Manager MUST return an appropriate channel (i.e. if TRUE the channel must be for SMSes, if FALSE it must not), or else fail to provide the requested channel with the NotCapable error.
For example, to explicitly request an SMS channel to a contact. You might construct a channel request like:
{ Channel.Type: Channel.Type.Text, Channel.TargetHandleType: Handle_Type_Contact, Channel.TargetID: escher.cat, Channel.Interface.SMS.SMSChannel: True, }
Rationale:
If this property is not included in the channel request, the Connection Manager MAY return an SMS channel if that is the most appropriate medium (i.e. if the channel target is a phone number).
Rationale:
Some protocols have a fallback to deliver IM messages via SMS. On these protocols, the Connection Manager SHOULD set the property value as appropriate, and notify its change with SMSChannelChanged.