What is Language which you use to develop your program. I have used VC and eVC for AT+CMGS. I read all response data from mobile and chekc "OK" or "ERROR" in data. Do you have problem for non predict problem (IrDA or Cable lost) ?. In VC, have mechanism for this problem.
If you're using VC. you can ask me for more at firstname.lastname@example.org