Fix ERROR_CTX_MODEM_RESPONSE_BUSY 0X00001B67 on Windows
This error means the remote modem detected a busy signal during callback. It's almost always a callback timing or number mismatch issue on Windows Server or XP.
Quick answer
Check the callback number configured on the server — it's likely missing a prefix (like 9 for an outside line) or has an extra digit. If that's clean, reduce the modem's callback wait time to 5 seconds.
What's going on here
This error pops up on Windows Server 2003, 2008, and even XP when a remote access server tries to call back a client and gets a busy signal. The root cause? The modem dialed a number that's already in use — either because the client's line is still connected from the initial call, the callback number has a wrong area code, or the modem isn't waiting long enough before redialing. I've seen this most often in old-school RAS (Remote Access Service) setups with external modems on Windows Server 2003. It's not common today, but when it hits, it's a headache.
Step-by-step fixes
- Verify the callback number on the server — Open Routing and Remote Access (RRAS) or the user's Dial-in properties. Look for the callback number under the user account. Make sure it includes any required prefixes (like
9,for an outside line) and has the correct area code. A common mistake: storing the number with a leading1when the modem doesn't need it. - Adjust modem initialization string — Open the modem's properties in Device Manager, go to the Advanced tab, and add
X3to the extra initialization commands. This tells the modem to ignore busy signals during dial-out and just try the call anyway. On some US Robotics modems,ATX3does the trick. - Increase the callback wait time — In the modem's advanced settings, look for “Callback wait time” or “Wait for dial tone before callback.” Set it to 5 seconds minimum. If it's too short, the modem redials before the client's line drops.
- Check the phone line — Swap in a known-good phone line. Plug an analog phone into the same jack and listen for a dial tone. If you hear static or no tone, call the telco.
- Update or roll back the modem driver — Old Conexant or Lucent modems hate Windows 2008. Try the latest driver from the vendor's site. If you just updated, roll back — I've seen driver updates break TAPI callback timing.
When the main fix doesn't work
If the callback number is correct and the modem still hits busy, try these:
- Disable callback entirely — Set the user account to “No callback” in RRAS. This lets the connection use the initial call without redialing. Not ideal security-wise, but it bypasses the issue.
- Switch to a different modem — Some modems (like the old Hayes Accura) handle staggered callbacks poorly. Replace it with a US Robotics 56K external — they're rock solid for RAS.
- Change the dialing rules in the registry — Under
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\RasMan\Parameters, add a DWORDCallbackWaitTimeand set it to5(seconds). Reboot. - Test with a direct dial — From a separate phone, manually call the callback number. If you get a busy signal, the number's wrong or the line's dead. If it rings, the modem's timing is off.
Prevention tips for next time
Always test callback with a real modem on the bench before deploying. Simulate a dial-out to the client's number while the client is still connected — that's exactly when this error shows up.
To avoid this in production, set a fixed callback number per user and never use “Set by caller” unless you trust the phone lines. Also, document every modem's initialization string — different modems need different X commands. Stick with one modem model across your RAS pool.
Was this solution helpful?