Hacktoberfest 2026:メンテナが10月に向けて印を付けた、オープンで初心者向けの issue。 Hacktoberfest の issue を見る

TwiML `<ConversationRelay>` emits 4 attributes in lowercase instead of documented camelCase

オープン 初心者向け
#975 コメント 0 件 リアクション 0 件 担当者 0 名 GitHub で見る

まだ誰も着手していません。

評価

難易度
2/5
見積もり時間
1〜3時間
初心者へのやさしさ
88/100
issue の種類
バグ
明瞭さ
明確に書かれている
活発さ
活発
技術スタック
java
領域
api

調査の方向性

src/main/java/com/twilio/twiml/voice/ConversationRelay.java の165、168、171、174行目から始め、提供されている VoiceResponse の再現を実行して生成された XML を調べます。出力される4つの属性名を、ドキュメントに記載された camelCase 形式に一致するよう更新し、出力で backgroundNoiseReduction、speechTimeout、deepgramSmartFormat、ignoreBackchannel が使用されていることを確認します。

索引モデルが issue の本文から書いたものです。

説明

Summary

ConversationRelay serializes four attributes in all-lowercase, but the ConversationRelay TwiML docs document them in camelCase. XML attributes are case-sensitive, so these are silently ignored by the TwiML parser — the setting appears to apply but has no effect, with no error surfaced.

Affected attributes

src/main/java/com/twilio/twiml/voice/ConversationRelay.java:

Line Emitted Documented
165 backgroundnoisereduction backgroundNoiseReduction
168 speechtimeout speechTimeout
171 deepgramsmartformat deepgramSmartFormat
174 ignorebackchannel ignoreBackchannel

Every other attribute in the same class is correct camelCase (ttsLanguage, transcriptionProvider, speechModel, interruptSensitivity, …), and Gather.java:261 correctly emits speechTimeout for the same concept.

Reproduction
String xml = new VoiceResponse.Builder()
        .connect(new Connect.Builder()
                .conversationRelay(new ConversationRelay.Builder()
                        .url("wss://example.com/ws")
                        .speechtimeout("2000")
                        .build())
                .build())
        .build()
        .toXml();

Produces <ConversationRelay url="wss://example.com/ws" speechtimeout="2000"/>; expected speechTimeout="2000".

Impact

Observed in production: a speechtimeout="2000" setting had no effect on end-of-speech reporting. Measured delay from end of caller speech to the prompt WebSocket frame across four utterances in one call was 0.45s / 0.61s / 0.95s / 1.17; all well under the configured 2000ms, consistent with the attribute being dropped and the default auto applying.

The failure is silent, which makes it costly: the config looks applied in code review and in the generated TwiML, and only careful timing analysis reveals it isn't.

主要言語
Java
スター
529
フォーク
452
平均マージ
1時間 30分
マージ済み PR(30日)
3

環境構築

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

twilio/twilio-java のほかの issue

twilio/twilio-java の issue をすべて見る

似ている issue

Java の issue をもっと見る

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。