Skip to content

VAPI-3164 Add <Refer> BXML verb support - #242

Open
nkuma246 wants to merge 17 commits into
mainfrom
VAPI-3164
Open

VAPI-3164 Add <Refer> BXML verb support#242
nkuma246 wants to merge 17 commits into
mainfrom
VAPI-3164

Conversation

@nkuma246

@nkuma246 nkuma246 commented May 26, 2026

Copy link
Copy Markdown

Adds the <Refer> BXML verb.

  • src/main/java/com/bandwidth/sdk/model/bxml/Refer.java: new Refer verb, registered in Bxml.java.
  • Reuses the existing SipUri class (implements OutboundDestination) for the SIP URI child instead of a separate nested Refer.ReferSipUri, built via the same stock Lombok @Builder as Transfer - no cross-field validation restricting which SipUri attributes are legal per verb.
  • Tests in ReferVerbTest.java covering minimal and full-attribute XML serialization.

Tests: mvn test -Dtest="com.bandwidth.sdk.unit.models.*Test" - 1190/1190 pass.

VAPI-3438

@bwappsec

bwappsec commented May 26, 2026

Copy link
Copy Markdown
Contributor

Snyk checks have passed. No issues have been found so far.

Status Scan Engine Critical High Medium Low Total (0)
Open Source Security 0 0 0 0 0 issues
Licenses 0 0 0 0 0 issues
Code Security 0 0 0 0 0 issues

💻 Catch issues earlier using the plugins for VS Code, JetBrains IDEs, Visual Studio, and Eclipse.

@nkuma246
nkuma246 marked this pull request as ready for review May 27, 2026 10:37
@nkuma246
nkuma246 requested review from a team as code owners May 27, 2026 10:37
@nkuma246
nkuma246 marked this pull request as draft May 27, 2026 10:37
@atelegu
atelegu marked this pull request as ready for review June 22, 2026 12:54

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Adds SDK support for the new <Refer> BXML verb and introduces a corresponding ReferCompleteCallback model in the generated OpenAPI surface, along with documentation and unit tests.

Changes:

  • Added Refer verb model, registered it in Bxml, and added JAXB serialization unit tests.
  • Added ReferCompleteCallback model + docs, and registered its Gson type adapter.
  • Updated shared callback eventType documentation across multiple generated callback models/docs/specs to include referComplete.

Reviewed changes

Copilot reviewed 53 out of 53 changed files in this pull request and generated 5 comments.

Show a summary per file
File Description
src/test/java/com/bandwidth/sdk/unit/models/bxml/ReferVerbTest.java Adds JAXB serialization tests for <Refer> verb output.
src/main/java/com/bandwidth/sdk/model/TransferDisconnectCallback.java Updates eventType doc list to include referComplete.
src/main/java/com/bandwidth/sdk/model/TransferCompleteCallback.java Updates generated model docs (currently describing Refer Complete).
src/main/java/com/bandwidth/sdk/model/TransferAnswerCallback.java Updates eventType doc list to include referComplete.
src/main/java/com/bandwidth/sdk/model/TranscriptionAvailableCallback.java Updates eventType doc list to include referComplete.
src/main/java/com/bandwidth/sdk/model/ReferCompleteCallback.java Adds new generated callback model for Refer Complete events.
src/main/java/com/bandwidth/sdk/model/RedirectCallback.java Updates eventType doc list to include referComplete.
src/main/java/com/bandwidth/sdk/model/RecordingCompleteCallback.java Updates eventType doc list to include referComplete.
src/main/java/com/bandwidth/sdk/model/RecordingAvailableCallback.java Updates eventType doc list to include referComplete.
src/main/java/com/bandwidth/sdk/model/MachineDetectionCompleteCallback.java Updates eventType doc list to include referComplete.
src/main/java/com/bandwidth/sdk/model/InitiateCallback.java Updates eventType doc list to include referComplete.
src/main/java/com/bandwidth/sdk/model/GatherCallback.java Updates eventType doc list to include referComplete.
src/main/java/com/bandwidth/sdk/model/DtmfCallback.java Updates eventType doc list to include referComplete.
src/main/java/com/bandwidth/sdk/model/DisconnectCallback.java Updates eventType doc list to include referComplete.
src/main/java/com/bandwidth/sdk/model/ConferenceRedirectCallback.java Updates eventType doc list to include referComplete.
src/main/java/com/bandwidth/sdk/model/ConferenceRecordingAvailableCallback.java Updates eventType doc list to include referComplete.
src/main/java/com/bandwidth/sdk/model/ConferenceMemberJoinCallback.java Updates eventType doc list to include referComplete.
src/main/java/com/bandwidth/sdk/model/ConferenceMemberExitCallback.java Updates eventType doc list to include referComplete.
src/main/java/com/bandwidth/sdk/model/ConferenceCreatedCallback.java Updates eventType doc list to include referComplete.
src/main/java/com/bandwidth/sdk/model/ConferenceCompletedCallback.java Updates eventType doc list to include referComplete.
src/main/java/com/bandwidth/sdk/model/bxml/Refer.java Adds the <Refer> BXML verb model and its attributes.
src/main/java/com/bandwidth/sdk/model/bxml/Bxml.java Registers <Refer> as a supported verb within <Bxml>.
src/main/java/com/bandwidth/sdk/model/BridgeTargetCompleteCallback.java Updates eventType doc list to include referComplete.
src/main/java/com/bandwidth/sdk/model/BridgeCompleteCallback.java Updates eventType doc list to include referComplete.
src/main/java/com/bandwidth/sdk/model/AnswerCallback.java Updates eventType doc list to include referComplete.
src/main/java/com/bandwidth/sdk/JSON.java Registers Gson adapter factory for ReferCompleteCallback.
README.md Adds model doc link for ReferCompleteCallback.
docs/TransferDisconnectCallback.md Updates eventType doc list to include referComplete.
docs/TransferCompleteCallback.md Updates generated markdown model doc (currently describing Refer Complete).
docs/TransferAnswerCallback.md Updates eventType doc list to include referComplete.
docs/TranscriptionAvailableCallback.md Updates eventType doc list to include referComplete.
docs/ReferCompleteCallback.md Adds markdown documentation for ReferCompleteCallback.
docs/Refer.md Adds documentation page for the <Refer> BXML verb.
docs/RedirectCallback.md Updates eventType doc list to include referComplete.
docs/RecordingCompleteCallback.md Updates eventType doc list to include referComplete.
docs/RecordingAvailableCallback.md Updates eventType doc list to include referComplete.
docs/MachineDetectionCompleteCallback.md Updates eventType doc list to include referComplete.
docs/InitiateCallback.md Updates eventType doc list to include referComplete.
docs/GatherCallback.md Updates eventType doc list to include referComplete.
docs/DtmfCallback.md Updates eventType doc list to include referComplete.
docs/DisconnectCallback.md Updates eventType doc list to include referComplete.
docs/ConferenceRedirectCallback.md Updates eventType doc list to include referComplete.
docs/ConferenceRecordingAvailableCallback.md Updates eventType doc list to include referComplete.
docs/ConferenceMemberJoinCallback.md Updates eventType doc list to include referComplete.
docs/ConferenceMemberExitCallback.md Updates eventType doc list to include referComplete.
docs/ConferenceCreatedCallback.md Updates eventType doc list to include referComplete.
docs/ConferenceCompletedCallback.md Updates eventType doc list to include referComplete.
docs/BridgeTargetCompleteCallback.md Updates eventType doc list to include referComplete.
docs/BridgeCompleteCallback.md Updates eventType doc list to include referComplete.
docs/AnswerCallback.md Updates eventType doc list to include referComplete.
bandwidth.yml Adds referCompleteCallback schema and updates eventType list; updates transferCompleteCallback description text.
api/openapi.yaml Adds referCompleteCallback schema and updates eventType list; updates transferCompleteCallback description text.
.openapi-generator/FILES Includes newly generated model/doc files in generator manifest.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread src/main/java/com/bandwidth/sdk/model/TransferCompleteCallback.java
Comment thread api/openapi.yaml Outdated
Comment thread README.md
Comment thread docs/TransferCompleteCallback.md
Comment thread bandwidth.yml Outdated

@stampercasey stampercasey left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Review from Claude Code — see inline comments for individual findings. Four blockers, all in the verb attributes and callback model.

Comment thread src/main/java/com/bandwidth/sdk/model/bxml/Refer.java Outdated
Comment thread src/main/java/com/bandwidth/sdk/model/bxml/Refer.java Outdated
Comment thread src/main/java/com/bandwidth/sdk/model/ReferCompleteCallback.java Outdated
Comment thread src/main/java/com/bandwidth/sdk/model/ReferCompleteCallback.java Outdated
Comment thread src/main/java/com/bandwidth/sdk/model/ReferCompleteCallback.java Outdated
Comment thread src/test/java/com/bandwidth/sdk/unit/models/bxml/ReferVerbTest.java Outdated
Comment thread src/test/java/com/bandwidth/sdk/unit/models/bxml/ReferVerbTest.java
Comment thread docs/Refer.md Outdated
@atelegu
atelegu requested a review from stampercasey June 24, 2026 16:03
stampercasey
stampercasey previously approved these changes Jun 24, 2026
ReferCompleteCallback (and its ReferCallStatusEnum dependency) will land
later via a separate api-specs-driven PR once VAPI-3440 merges, so it
doesn't belong in this PR yet.

Refer's nested Refer.ReferSipUri is also removed in favor of the existing
Transfer-flavored SipUri class, matching the merged csharp-sdk reference
implementation (Bandwidth/csharp-sdk#201) which kept Refer plain: no
validation, no custom builder, just a shared SipUri property.
bandwidth.yml/api/openapi.yaml still carried the full referCompleteCallback
schema and a referComplete addition to the shared eventType enum
description after ReferCompleteCallback.java was deleted; nothing
generates from it anymore. Also removed the corresponding
.openapi-generator/FILES entries and a stray README.md indentation glitch.
The eventType enum description was regenerated with referComplete added
to every callback model's docs/*.md and javadoc comment, plus the
standalone eventType schema's line wrap in api/openapi.yaml. Since
ReferCompleteCallback is out of scope for this PR, these are unrelated
diff noise - reverted to match main exactly.
api/openapi.yaml still carried an unrelated pre-existing rewrap of
transferCompleteCallback's description with no connection to this PR -
reverted the whole file to match main. Also dropped docs/Refer.md: Refer
is hand-written (not generated from api/openapi.yaml), so it's the only
BXML verb with a hand-maintained doc page, matching the csharp-sdk
reviewer's call to delete the equivalent doc there (customers use the
BXML dev docs guide instead).
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants