Skip to content

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

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

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

Conversation

@nkuma246

@nkuma246 nkuma246 commented May 26, 2026

Copy link
Copy Markdown

This pull request adds support for the <Refer> BXML verb, which allows initiating a SIP REFER on an existing call to redirect the remote SIP endpoint to a third party. The changes include the implementation of the Refer verb, updates to documentation, and unit tests to ensure correct behavior.

New Feature: Refer BXML Verb

  • Added the Refer class to represent the <Refer> BXML verb, including all relevant attributes such as sipUri, referCompleteUrl, and authentication fields.
  • Registered the Refer verb in the Bxml class so it can be included in BXML documents.

Documentation Updates

  • Added docs/Refer.md with a detailed explanation of the <Refer> verb, its properties, and usage.
  • Updated the README.md to include a reference to the new <Refer> verb documentation.

Testing

  • Added unit tests in ReferVerbTest.java to verify XML serialization for both minimal and full attribute cases of the <Refer> verb.

@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
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