I'm evaluating the library for a project involving receiving/parsing/transmit SMS and i've noticed a strange behavior:
Using another library, seldom, my usb modem (an Huawei e169 gsm pen) freezes, so, in that case i force an hard reset on the usb port and system restores itself.
For testing purposes, with the other library, i unplug the usb modem and then replug it. System can't query de modem and after 3 errors resets usb and reinstance the GSM object. Everithig goes fine.
Using your library, when i simulate the test, system doesn't detect the plug/unplug of modem: don't raise any exception and programs continue to run without reset. The problem is that, if there are new incoming sms, every read is empty until i manually reset the usb modem.
I've noticed it in demo software too: if I try to send a SMS without connect, system doesn't fire any exception nor warnigs.
Maybe I am using the library in a "BAD" way, so, I will ask if it is so.
Anyway congratulations for this (BIG) effort, I think is one of the best library for that kind of work.
(sorry for my BAD english)
messagingtoolkit exception is stored the LastError property. Let' say you Send a message, and there is any error, the return value is false. In this case you will need to check the LastError to know what the exception is.
If the gateway is unplugged, the WatchDog process will also detect that, and status will be set to "Restart". As long as the status != Started, it means that you may need to manually connect again.
Using MessageGatewayService class you can monitor the gateway status and restart it when it is unplugged by setting the MonitorService property (sometimes it may not be able to restart the gateway and you need to manually to this. This is a problem with .NET SerialPort class)
If you can show us the code here then we would be able to pinpoint the problem easily.