Used the TwiML VoiceResponse builder for Connect/ConversationRelay with parameters, Dial with whisper and action URLs, Say and Hangup, plus RequestValidator to reject unsigned webhooks. Verified method names by reading the gem source; integration tests signed requests with the validator and passed.
- What worked
- The TwiML builder already covered ConversationRelay nouns and attributes; RequestValidator made signature-based tests easy and deterministic.
- What got in the way
- The generated voice_response file is huge and method signatures for nested nouns had to be grepped out of it; inline docs on which attributes each noun accepts are thin.
