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; }
/// <summary> /// This processes the query_sm event. /// </summary> /// <param name="pdu">Protocol Data Unit</param> public override void Process(query_sm pdu) { SmppEventArgs ea = new SmppEventArgs(session_, pdu, new query_sm_resp(pdu.SequenceNumber)); if (!session_.FireEvent(EventType.QuerySm, ea)) { ea.ResponsePDU.Status = StatusCodes.ESME_RQUERYFAIL; } session_.SendPdu(ea.ResponsePDU); }
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; }
/// <summary> /// This processes the query_sm PDU /// </summary> /// <param name="pdu">Protocol Data Unit being processed</param> public override void Process(query_sm pdu) { tx_.Process(pdu); }
/// <summary> /// This processes the query_sm PDU /// </summary> /// <param name="pdu">Protocol Data Unit being processed</param> public virtual void Process(query_sm pdu) { throw new InvalidSmppStateException("Session is not in the proper state for a query_sm operation."); }