private void OnCancelSm(object sender, SmppEventArgs ea) { query_sm req = (query_sm)ea.PDU; query_sm_resp resp = (query_sm_resp)ea.ResponsePDU; foreach (SmsMessage msg in arrMessages) { if (msg.MessageId == req.MessageID) { if (msg.deliveryTime != DateTime.MinValue) { msg.deliveryResult = DeliveryStatus.DELETED; msg.lvi.UpdateState(); return; } else { resp.ErrorCode = StatusCodes.ESME_RCANCELFAIL; } } } // Could not find message resp.ErrorCode = StatusCodes.ESME_RINVMSGID; }
private void OnQuerySm(object sender, SmppEventArgs ea) { query_sm req = (query_sm)ea.PDU; query_sm_resp resp = (query_sm_resp)ea.ResponsePDU; foreach (SmsMessage msg in arrMessages) { if (msg.MessageId == req.MessageID) { if (msg.deliveryTime != DateTime.MinValue) { resp.FinalDate = new SmppTime(msg.deliveryTime, true); } switch (msg.deliveryResult) { case DeliveryStatus.ACCEPTED: resp.MessageStatus = MessageStatus.ACCEPTED; break; case DeliveryStatus.DELETED: resp.MessageStatus = MessageStatus.DELETED; break; case DeliveryStatus.DELIVERED: resp.MessageStatus = MessageStatus.DELIVERED; break; case DeliveryStatus.EXPIRED: resp.MessageStatus = MessageStatus.EXPIRED; break; case DeliveryStatus.REJECTED: resp.MessageStatus = MessageStatus.REJECTED; break; case DeliveryStatus.UNDELIVERABLE: resp.MessageStatus = MessageStatus.UNDELIVERABLE; break; default: resp.MessageStatus = MessageStatus.ENROUTE; break; } return; } } // Could not find message resp.ErrorCode = StatusCodes.ESME_RINVMSGID; }