private void OnNewSession(object sender, SmppEventArgs ea) { SmppConnectEventArgs ce = (SmppConnectEventArgs)ea; // Get the session information. IPAddress ipAddr = ce.Address; AddLogText(StatusCode.Session, string.Format("Connection from {0} accepted.", ipAddr.ToString())); // Get the session and establish our event handlers. SmscSession sess = (SmscSession)ce.Session; sess.OnPreprocessPdu += OnPreprocessPdu; sess.OnPostprocessPdu += OnPostprocessPdu; sess.OnBind += OnBind; sess.OnSubmitSm += OnSubmitSm; sess.OnQuerySm += OnQuerySm; sess.OnCancelSm += OnCancelSm; sess.OnUnbind += OnUnbind; sess.OnError += OnError; sess.OnSessionDisconnect += OnDisconnect; // Add the session to our listview new SessionListViewItem(lvSessions, sess); EnableGenerateSmsButton(true); }
private void EndDeliverSm(IAsyncResult ar) { SmscSession session = (SmscSession)ar.AsyncState; deliver_sm_resp dresp = session.EndDeliverSm(ar); if (!dresp.Succeeded) { AddLogText(StatusCode.Error, string.Format("DeliverSm failed: {0}", dresp)); } }
private void EnquireLinkCallback(IAsyncResult ar) { SmscSession session = (SmscSession)ar.AsyncState; enquire_link_resp resp = session.EndEnquireLink(ar); if (resp.Status != StatusCodes.ESME_ROK) { AddLogText(StatusCode.Error, string.Format("Enquire link to {0} failed, status={1:X}", session, resp.Status)); } }
private void OnGenerateSms(object sender, EventArgs e) { GenerateSms dlg = new GenerateSms(server_); if (dlg.ShowDialog() == DialogResult.OK) { deliver_sm pdu = new deliver_sm(dlg.ServiceType, new address(TypeOfNumber.NATIONAL, NumericPlanIndicator.E164, dlg.SourceAddress), new address(TypeOfNumber.NATIONAL, NumericPlanIndicator.E164, dlg.DestinationAddress), new esm_class(MessagingMode.DEFAULT_MODE, MessageType.DEFAULT_MSG_TYPE), 0, MessagePriority.NORMAL, new SmppTime(), new SmppTime(), new registered_delivery(DeliveryReceiptType.NONE, AcknowledgementType.NONE, false), false, DataEncoding.SMSC_DEFAULT, 0, dlg.ShortMessage); SmscSession session = dlg.Session as SmscSession; if (session != null && session.IsBound) { session.BeginDeliverSm(pdu, new AsyncCallback(EndDeliverSm)); } } }