コード例 #1
0
        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);
        }
コード例 #2
0
        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));
            }
        }
コード例 #3
0
        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));
            }
        }
コード例 #4
0
        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));
                }
            }
        }