/// <summary>
        /// Stellt eine zu sendende SMS in die Liste zur Abarbeitung
        /// </summary>
        /// <param name="phone">Telefonnummer an die diese SMS gesendet werden soll (als Zahl mit Ländervorwahl).</param>
        /// <param name="content">Inhalt der SMS, wird ggf. auf max. 160 Zeichen gekürzt.</param>
        public static void SmsSend(ulong phone, string content)
        {
            //Ist diese SMS schon in der Warteschleife?
            List <Sms> results = SmsSendQueue.FindAll(x => x.Phone == phone && x.Message == content);

            if (results.Count == 0)
            {
                content.Replace("\r\n", " ");
                if (content.Length > 160)
                {
                    content = content.Substring(0, 160);
                }

                Sms sms = new Sms
                {
                    Message = content,
                    Phone   = phone
                };

                SmsSendQueue.Add(sms);
                SmsSendFromList();
            }
        }
        /// <summary>
        /// Sendet die erste SMS aus der Sendeliste
        /// Sperrt weiteres SMS-senden, bis der gesendeten SMS vom Modem eine Referenz zugewiesen wurde.
        /// </summary>
        private static void SmsSendFromList()
        {
            //CurrentSmsSend wird zur Sendefreigabe auf null gesetzt. Siehe Modem-Antwort '+CMGS: <mr>'
            if (SmsSendQueue.Count == 0)
            {
                return;
            }
            if (CurrentSmsSend != null)
            {
                Gsm_Basics.RaiseGsmEvent(GsmEventArgs.Telegram.GsmSystem, "SMS-Sendeplatz noch nicht frei. Warte auf: " + CurrentSmsSend.Message);
                return;
            }

            Console.WriteLine("### zu sendende SMSen {0} ###", SmsSendQueue.Count);

            foreach (Sms sms in SmsSendQueue)
            {
                Console.WriteLine("Index: {0}\tAn: {1}\t{2}", sms.Index, sms.Phone, sms.Message);
            }

            CurrentSmsSend = SmsSendQueue.FirstOrDefault();
            SmsSendQueue.Remove(SmsSendQueue.FirstOrDefault()); //.RemoveAt(0);
            GlobalProperty.LastSmsSend = CurrentSmsSend.Message;

            const string ctrlz = "\u001a";

            //Senden
            Gsm_Basics.AddAtCommand("AT+CMGS=\"+" + CurrentSmsSend.Phone + "\"\r");
            Gsm_Basics.AddAtCommand(CurrentSmsSend.Message + ctrlz);

            //Danach warten auf Antwort von GSM-Modem '+CMGS: <mr>' um CurrentSmsSend die Referenz für Empfangsbestätigung zuzuweisen.
            //Nach Zuweisung der Referenz:
            //1) CurrentSmsSend als gesendete SMS in DB schreiben
            //2) CurrentSmsSend = null setzen
            //3) diese Methode erneut aufrufen.
        }