2013-11-21 2 views
2

Я пользуюсь SMPP клиентом с C# в Vs 2010 для отправки SMS-сообщений на SMSC. Я просто не могу понять, как получить отчет о доставке отправленных сообщений. Я использовал QuerySM, чтобы получить статус сообщения, но он возвращает OK Status, даже если я отправлю SMS на номер, который не используется.Как получить отчет о доставке из SMSC с использованием SMPP и C#

Вот мой код для получения отчета о доставке:

QuerySm deliver = new QuerySm(_MessageID, SrcTon, SrcNpi, SrcAddr); 
client.Query(deliver); 
+0

Могу ли я спросить, какие библиотеки вы используете? – Oswin

+0

@Oswin Я использую Inetlab.SMPP.dll – firefalcon

ответ

0

Я решил проблему, используя QuerySmResp, чтобы получить отчет о доставке.

Это код для проверки статуса доставки в SMS сообщение:

QuerySmResp qresp = client.Query(_MessageID, SrcTon, SrcNpi, SrcAddr); 
string _Delivery = qresp.MessageState.ToString(); 

MessageState свойство будет показывать статус сообщения, и это члены:

None

Enroute

Поступило

Expired

Удаляется

UNDELIVERABLE

Accepted

Неизвестный

Отклонено

2

Вполне возможно, что SMSC вы используете не поддерживает query_sm, в этом случае они могут быть реализованы заполнителем query_sm_resp PDU с статус ОК для каждого запроса.

Вы можете установить флаг registered_delivery в submit_sm 1 и прослушивать входящие deliver_sm БРП, так что вы получите отчеты о доставке из них, а не запрашивая их для каждого отправленного сообщения.

+0

Можете ли вы показать мне это в коде на C#? – firefalcon

+0

Нет, извините, я не делаю C#, я просто знаю SMPP. – pilsetnieks

Смежные вопросы