I thought the modems generally detect it. If you have results turned on, it should return BUSY. So, you can keep looping to see if it returns the result code BUSY. There are also numeric result codes, but I do not know what they are. I'll see if I can find the proper init string to send to most modems to tell it to return string results.