Fix: Take care of the logic for Dialing
The logic for dialing a call while other calls are in the system is a
bit more complicated than what was implemented.
There are several cases to consider:
- Active Call and Held Call
In this situation we cannot dial, the user must drop one of the
calls.
- Active Call and Waiting Call -> We have to put the active call on
hold, unfortunately there is no standard command to do so without
affecting the waiting call. If the modem has a vendor specific
implementation, then try to use that.
- Active Call only -> Put the active call on hold. We use the
swap_without_accept implementation (if exists) to be safe, otherwise
we fall back to hold active calls.
- No Active calls -> Simply dial