When I send SMS, I can get the message status as Queued, Sent, SendingFailed, Delivered, DeliveryFailed, Received. I want to know, how to different between Delivered and Sent, SendingFailed and DeliveryFailed ? Also, when the message status is Queued, is it definitely sent ?
"Sent" -- reached SMS provider/carrier, "Delivered" -- reached the recipient. For instance if the mobile phone you are sending to is switched off, the carrier tries to deliver within 48 hours or so and then expires the message so that you will get "DeliveryFailed" status. At the same time US carriers do not always send the confirmation of successful delivery, so even if the status is "Sent" in reality it can be delivered to the recipient but we don't know about it. At the same time "DeliveryFailed" is properly propagated to us in most cases.
"Queued" status means that the message is in queue and hasn't reached SMS provider yet. For instance if SMS provider service is temporarily unavailable we queue the message and retry.