TwiML `<ConversationRelay>` emits 4 attributes in lowercase instead of documented camelCase
まだ誰も着手していません。
評価
調査の方向性
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
環境構築
- Dockerfile または Docker Compose ファイルあり
- プルリクエストのテンプレートあり
- コントリビューションガイドを読む
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
twilio/twilio-java のほかの issue
-
難易度 2/5 1〜3時間 初心者へのやさしさ 68/100
twilio/twilio-java#976 ·
-
[BUG] Sip.Builder(String) drops SIP destinations with an explicit port when the scheme is omittedオープンtype: bug
難易度 3/5 1〜2日 初心者へのやさしさ 55/100
twilio/twilio-java#982 ·
-
難易度 5/5 1週間以上 初心者へのやさしさ 35/100
twilio/twilio-java#960 ·
-
MessageIntent is not supported in the Java SDK再び着手できるかも このイシューのプルリクエストはマージされずにクローズされました。 オープン
難易度 3/5 1〜2日 初心者へのやさしさ 55/100
twilio/twilio-java#950 · コメント 2 件 ·
-
Jackson 3 support対応中かも @manisha1997 が 242 日前に担当しました。 オープン
twilio/twilio-java#938 · コメント 2 件 · リアクション 10 件 · 担当者 2 名 ·
twilio/twilio-java の issue をすべて見る
似ている issue
-
pdfium-drift
難易度 1/5 1時間未満 初心者へのやさしさ 82/100
Stirling-Tools/JPDFium#176 ·
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 72/100
hiero-ledger/hiero-consensus-node#27712 ·
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 61/100
Vakore/ZappierGames#162 ·
-
Improve README documentation clarity and fix minor wording issues対応中かも @simplesilence が今日担当しました。 オープン
難易度 1/5 1〜3時間 初心者へのやさしさ 84/100
resilience4j/resilience4j#2567 ·
メンテナーはふだん 6 日以内に返信
-
Priority/High
難易度 2/5 1〜3時間 初心者へのやさしさ 65/100
wso2/dpdp-accelerator#417 ·
メンテナーはふだん 1 日以内に返信