When making multiple calls in the app, the current call must be put on hold before starting or accepting a new call. While this workflow allows adding multiple calls successfully, when merging the calls from the app to form a conference, the previously held calls remain on hold instead of becoming active in the conference.
Steps to Reproduce:
Start Call A → active.
Add or accept Call B → Call A is put on hold, Call B becomes active.
From the app interface, merge Call A and Call B into a conference.
Expected Result:
All calls in the conference should be unheld and active.
Audio should be mixed between all calls.
Actual Result:
Calls that were on hold before merging remain held.
Conference is created but some participants cannot be heard (audio issue).
Workaround (iOS behavior):
When merging calls from the CallKit UI, iOS automatically unholds all calls before creating the conference, which works correctly.
Suggested Action / Investigation:
Ensure that before merging calls from the app, all held calls are unheld via CallKit (CXSetHeldCallAction) before calling the library merge function.
Sync call hold/unhold state between CallKit and the VoIP library when performing a conference merge.
When making multiple calls in the app, the current call must be put on hold before starting or accepting a new call. While this workflow allows adding multiple calls successfully, when merging the calls from the app to form a conference, the previously held calls remain on hold instead of becoming active in the conference.
Steps to Reproduce:
Start Call A → active.
Add or accept Call B → Call A is put on hold, Call B becomes active.
From the app interface, merge Call A and Call B into a conference.
Expected Result:
All calls in the conference should be unheld and active.
Audio should be mixed between all calls.
Actual Result:
Calls that were on hold before merging remain held.
Conference is created but some participants cannot be heard (audio issue).
Workaround (iOS behavior):
When merging calls from the CallKit UI, iOS automatically unholds all calls before creating the conference, which works correctly.
Suggested Action / Investigation:
Ensure that before merging calls from the app, all held calls are unheld via CallKit (CXSetHeldCallAction) before calling the library merge function.
Sync call hold/unhold state between CallKit and the VoIP library when performing a conference merge.