Skip to content

feat: support interactive transfers and resilient media bridging - #255

Merged
shenjinti merged 1 commit into
restsend:mainfrom
dengxiayehu:fix/probs_funcs
Aug 18, 2026
Merged

feat: support interactive transfers and resilient media bridging#255
shenjinti merged 1 commit into
restsend:mainfrom
dengxiayehu:fix/probs_funcs

Conversation

@dengxiayehu

Copy link
Copy Markdown
Contributor

Summary

  • add an opt-in wait_for_result mode for application-owned SIP transfers
  • return typed not_connected and target_ended transfer outcomes
  • support caller user overrides and validated phone input timing options
  • deduplicate bridged DTMF events and cancel peer tasks when either bridge side
    disconnects
  • propagate configured RTP address and port constraints
  • publish ringing events for SDP-bearing 180 responses

Compatibility

The new transfer behavior is opt-in. Transfers without wait_for_result=true
retain the existing terminal behavior.

Awaited transfers use the existing B2BUA path so the application can retain
ownership and receive the final outcome. Existing direct media forwarding and
WebRTC SSRC behavior remain unchanged.

Verification

  • cargo test -p rustpbx --lib: 1303 passed
  • cargo test -p rustpbx-media --lib: 269 passed, 10 ignored

- return typed outcomes from application-owned SIP transfers
- preserve transfer caller identity and validated phone input options
- deduplicate bridge DTMF and cancel disconnected bridge tasks
- propagate RTP constraints and publish SDP-bearing 180 ringing
@shenjinti
shenjinti merged commit 843399b into restsend:main Aug 18, 2026
3 checks passed
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.

2 participants