Hangup not yet confirmed outgoing calls in IP change#3344
Merged
Conversation
sauwming
reviewed
Jan 30, 2023
| } | ||
| else if (call_info.role==PJSIP_ROLE_UAC && | ||
| call_info.state < PJSIP_INV_STATE_CONFIRMED) | ||
| { |
Member
There was a problem hiding this comment.
why not combine it with the above?
Member
Author
There was a problem hiding this comment.
- For readibility, because they are conceptually different. The above is intentional hangup via configured settings, the latter is forced hangup due to specific conditions.
- Also the actions can also be different, for example with the current patch,
pjsua_call_hangup()which will send CANCEL and CANCEL may not be useful if remote does not receive the INVITE (due to local IP change) or remote have sent its final answer (either success/2xx or failure/3xx-6xx) but local does not received it (due to IP change), so perhaps terminating the call forcefully somehow may be better.
sauwming
approved these changes
Jan 31, 2023
trengginas
approved these changes
Jan 31, 2023
dshamaev-intermedia
pushed a commit
to intermedia-net/pjproject
that referenced
this pull request
Feb 15, 2023
BarryYin
pushed a commit
to BarryYin/pjproject
that referenced
this pull request
Feb 3, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
There was PR #2737 for avoiding call disconnection on IP change, but its scope is limited to a confirmed call. Also this PR #2683 for maintaining INVITE transactions in the UAS/callee side. While for UAC/caller in the connecting state, it is actually a bit more complex, an attempt to handle it has been done in PR #3288 (still unsolved).
Some of the challenges are:
So for now, let's just hang up not confirmed outgoing call in IP change scenario. Note that the remote may see a dangling call as there may be race condition, e.g: remote has sent some response but not received by local/caller.