tw_check and md_check: blocking transfers when a 3-way is already active
Two optional safety flags on the transfer API stop an agent from stacking a new 3-way on top of one they never cleaned up. Here is what each checks.
On a busy floor, the messiest transfer bug is the one where an agent opens a new 3-way while an old one is still hanging around. The two calls fight over the same conference and you end up with a stuck line that nobody can untangle. The transfer API has two optional flags, tw_check and md_check, that catch this before it happens by refusing the new transfer if a previous one is still active.
tw_check: guard the 3-way
tw_check is for the dialing 3-way options on the transfer API. When you set it to YES, VICIdial checks the agent for still-active previous Three-way call legs before opening a new one. If it finds any, it returns an error instead of building a second conference. The error names the agent and flags that they have previous active 3-way calls, so your toolbar can show the operator a clear message rather than silently creating a tangle.
Without the check, nothing stops the new conference from stacking on the old one. That is fine in theory if every agent always cleans up after themselves, but on a real floor people get distracted, a customer hangs up mid-handoff, and a stale leg lingers. tw_check turns that human gap into a caught error. The error also gives your toolbar something useful to do: instead of letting the transfer fail silently, you can show the operator a prompt to close out the old call first, then retry. That single round trip is far cheaper than a supervisor untangling a stuck conference later in the shift.
md_check: guard multi-dial press-1
md_check does the same job for the multi_dial_phones option, which is the Agent 3-way Press-1 feature that fires several numbers at once. Because multi-dial can launch up to ten numbers in a single request, a leftover press-1 call is even easier to miss than a stray single 3-way, which is exactly why this option exists. Set md_check to YES and the Agent API checks for still-active previous 3-way press-1 calls and shows an error if any are found. It pairs specifically with multi_dial_phones, so you use md_check on multi-dial press-1 transfers and tw_check on the ordinary dialing 3-way values.
flowchart TD
A[Request a new 3 way] --> B{Check flag set}
B -->|tw_check YES| C{Previous 3 way active}
B -->|md_check YES| D{Previous press 1 active}
C -->|Yes| E[Return error block transfer]
C -->|No| F[Open new 3 way]
D -->|Yes| E
D -->|No| F
E --> G[Agent cleans up first]
F --> H[Transfer proceeds]Why turn them on
Both flags default to off, which means a fresh integration has no safety net unless you add one. Turning them on costs you nothing on the happy path: when there is no stale call, the request proceeds exactly as before. It only changes behavior when there is a real problem, and in that case a clear error beats a stuck Disposition every time. If you do hit the previous-active-3-way error, the fix is to clear the lingering leg before retrying, which is covered in fixing the previous active 3-way call error.
These checks fit the same handoff system described in our transfers and closers guide. They are small flags with an outsized effect on how clean your floor stays during a busy shift.
A dialer that ships with these guardrails enabled and a transfer API that is documented saves you from chasing stuck calls later. See our pricing for an environment set up to avoid these problems from the start.
About VICIfast LLC
VICIfast LLC operates a managed VICIdial hosting + BYOI service for outbound and inbound call centers. We run the dialers, the carriers, the recordings pipeline, and the compliance plumbing so operators don’t have to.
Citing this article
VICIfast Engineering. “tw_check and md_check: blocking transfers when a 3-way is already active”. VICIfast LLC, June 24, 2026. Retrieved from https://vicifast.com/blog/vicidial-transfer-api-tw-check-md-check
Have questions?
Related posts
Operations
cid_choice and group_alias on a 3-way: setting caller ID from the API
Operations
Transfer vs 3-way call in VICIdial: what stays on the line and what doesn't
Operations
The recording API: starting and stopping a recording mid-transfer
Operations
The transfer_conference API: scripting transfers and 3-way calls
You might be interested in
Operations
Transfer vs 3-way call in VICIdial: what stays on the line and what doesn't
Operations
The recording API: starting and stopping a recording mid-transfer
Operations
Using AXFER to blind-transfer a customer into an AGI or IVR
Operations
The transfer_conference API: scripting transfers and 3-way calls
VICIfast newsletter
Liked this? Get the next one in your inbox.
We ship the kind of stuff you just read — concrete, numbers-first, no drip. One email when a new post goes live. Unsubscribe in one click.
Comments
No comments yet — be the first.