You can read or write digitized voice data directly to or from a voice channel, for example, for an external speech recognition server, or a text-to-speech server.
These operations must be linked to state table actions and can be one of:
The synchronous method is suitable only for half-duplex operations, where you are either playing voice, or recording from a channel.
The asynchronous method is more flexible for recording half-duplex. The custom server has more control of the channel and receives more information about its state. Therefore the asynchronous method offers the following additional capabilities:
For duplex operations, where the application needs to both play and record voice at the same time, you must use the asynchronous method. Recording voice is treated as a background operation; playing voice treated as a foreground operation.
Play operations can be requested by either the state table (using PlayPrompt or a similar action), or a custom server using the CA_Play_Voice_Stream() subroutine. This can be the same custom server that is managing the record operation, or a different one.