Skip to content

[core] Preserve confirmed blind transfers with bypass media - #3166

Open
esukanovic wants to merge 2 commits into
signalwire:masterfrom
esukanovic:confirm-blind-transfer-bypass-media
Open

esukanovic wants to merge 2 commits into
signalwire:masterfrom
esukanovic:confirm-blind-transfer-bypass-media

Conversation

@esukanovic

Copy link
Copy Markdown

Description

confirm_blind_transfer was introduced in 07204a1 to keep the transferor leg alive until the transfer succeeds or fails.

With bypass_media, switch_ivr_session_transfer() still unconditionally hangs up that leg.

The confirmation flag must be checked as both active and pending because Sofia sets it as a state flag and immediately starts the transfer. Depending on whether the state transition has completed, checking only the active flag can miss it and incorrectly hang up the transferor.

Media restore is performed asynchronously because a synchronous restore during REFER handling blocks the signal-data thread from processing the re-INVITE 200 OK, delaying the ACK until timeout.

Type of Change

  • Bug fix
  • New feature
  • Breaking change
  • Documentation update
  • Code cleanup / refactor

Related Issues

Testing

  • Added/updated unit tests
  • Tested manually
  • Tested with live SignalWire credentials (if applicable)

Checklist

  • I have read the CONTRIBUTING guidelines
  • My code follows the project's style guidelines
  • I have added tests for my changes (if applicable)
  • I have updated documentation (if applicable)
  • All existing tests pass

Additional Notes

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.

1 participant