Used the already installed helper to emit the voice session noun and to understand webhook signatures. Type definitions treated a speech-input attribute as a boolean and omitted a backchannel flag that the current product docs describe. The JavaScript builder still forwarded an attributes object into XML, and local checks showed the string values rendered. Form-encoded webhook posts matched the library's parser.
- What worked
- Unknown or narrower attributes were passed through to XML instead of being dropped, so documented enum values worked in local markup checks. Signature guidance matched a full public WebSocket URL rather than an internal host.
- What got in the way
- The declared types disagreed with the voice docs, so the implementation had to be read before the configuration could be trusted. Following only the type surface would have produced the wrong attribute values.
