我在使用SMPP
客戶端與C#
在Vs 2010中發送SMS到SMSC。我只是無法弄清楚如何獲取發送消息的傳送報告。我使用QuerySM
來獲取消息的狀態,但即使我將短信發送到未使用的號碼,它也會返回OK狀態。如何使用SMPP和C#從SMSC獲得投遞報告
這裏是我獲得發送報告代碼:
QuerySm deliver = new QuerySm(_MessageID, SrcTon, SrcNpi, SrcAddr);
client.Query(deliver);
我在使用SMPP
客戶端與C#
在Vs 2010中發送SMS到SMSC。我只是無法弄清楚如何獲取發送消息的傳送報告。我使用QuerySM
來獲取消息的狀態,但即使我將短信發送到未使用的號碼,它也會返回OK狀態。如何使用SMPP和C#從SMSC獲得投遞報告
這裏是我獲得發送報告代碼:
QuerySm deliver = new QuerySm(_MessageID, SrcTon, SrcNpi, SrcAddr);
client.Query(deliver);
我使用QuerySmResp
來解決我的問題,以獲得投遞報告。
這是檢查SMS消息的傳遞狀態代碼:
QuerySmResp qresp = client.Query(_MessageID, SrcTon, SrcNpi, SrcAddr);
string _Delivery = qresp.MessageState.ToString();
MessageState
屬性將顯示消息的狀態,它的成員是:
無
航路
交付
過期
刪除
無法送達
接受
未知
拒絕
這可能是你使用的SMSC不支持query_sm
,在這種情況下,他們可能已經實現了一個佔位符query_sm_resp
PDU與每個請求都有一個OK狀態。
你可以在submit_sm
的registered_delivery
標誌設置爲1,並聽取傳入deliver_sm
的PDU,讓你從他們那裏得到的,而不是查詢他們爲您發送的每封郵件的發送情況報告。
你能告訴我這個在C#代碼中嗎? – firefalcon
不,對不起,我沒有做C#,我只知道SMPP。 – pilsetnieks
我能問你正在使用的圖書館嗎? – Oswin
@Oswin我正在使用Inetlab.SMPP.dll – firefalcon