ssip: Blocks of Messages Commands
4.4 Blocks of Messages Commands
===============================
Block commands allow the client to concatenate several messages to form
one block that behaves as one message in the priority system and
history. After opening the block, client can send a specified subset of
the commands and the messages introduced by 'SPEAK' will be processed
immediately, however there will be no priority interaction before
closing the block. The ⇒Speech Output Control Commands also
handle the whole block as one message.
Take for example this message from an email client:
> Hi, how are you?
I'm fine. Thank you.
The character '>' clearly marks who said which part. So it'd be nice
to say the two lines with different voices, however, it'd be desirable
to treat it all as one message with priority TEXT and have it put
together in history, because in fact, it logically _is_ one message.
'BLOCK BEGIN'
Opens a block of messages. There will be no priority interaction
between the messages inside the block, the whole block will be
treated as one message of the priority that was specified by
previous 'SET' command.
It can only be called outside of a block; nesting is not allowed.
The allowed commands inside a block are:
* 'SPEAK'
* 'SOUND_ICON'
* 'CHAR'
* 'KEY'
* 'SET SELF RATE'
* 'SET SELF PITCH'
* 'SET SELF VOLUME'
* 'SET SELF VOICE'
* 'SET SELF LANGUAGE'
* 'SET SELF PUNCTUATION'
* 'SET SELF CAP_LET_RECOGN'
* 'QUIT'
* 'BLOCK END'
'BLOCK END'
Closes a block of messages, see 'BLOCK BEGIN'.
It can be only called inside a block opened by 'BLOCK BEGIN';
nesting is not allowed.
A more complete example of SSIP communication using BLOCKs.
[...]
SET SELF PRIORITY TEXT
202 OK PRIORITY SET
BLOCK BEGIN
260 OK INSIDE BLOCK
SET SELF VOICE MALE1
209 OK VOICE SET
SPEAK
230 OK RECEIVING DATA
The word
225 OK MESSAGE QUEUED
SET SELF VOICE MALE2
209 OK VOICE SET
SPEAK
230 OK RECEIVING DATA
`Free'
225 OK MESSAGE QUEUED
SET SELF VOICE MALE1
209 OK VOICE SET
SPEAK
230 OK RECEIVING DATA
in Free Software refers to freedom, not price.
225 OK MESSAGE QUEUED
BLOCK END
261 OK OUTSIDE BLOCK