Aylık Arşiv: Aralık 2011

Biraz tebessüm

GsmComm kütüphanesiyle SMS Göndermek ve SMS Okumak

AT Komutlarını yorumlayan bu kütüphaneyle SMS okuyup gönderebilirsiniz. Aşağıdaki kodu yorumlayıp en kolay hale getirmek için gayret ettim.

Önce telefonunuzu bilgisayarınıza USB veya Bluetooth ile bağlayın.
Telefonunuzun markasına göre modem driver’ını kurun.
“Denetim Masası”ndaki modemler bölümünden aldığı COM bağlantı portunu öğrenip aşağıdaki kodlarda güncelleyin.

Ben aşağıdaki kodları aspx olarak kullandım dilerseniz masaüstü programa da uyarlayabilirsiniz.

Burada önemli bir ayrıntıyı atlamayalım. Telefonlarda bazı AT komutları güvenlik nedeniyle dışarıdan kullanıma kapatılmıştır. Aşağıdaki kodlar SMS okumayabilir. Bu durumda okuyabilen bir telefon modeli seçmelisiniz. Ben genel olarak Sony Ericsson telefonlardan randıman aldım.

using System;
using System.Collections.Generic;
using System.Web;
using System.Web.UI;

// GsmComm SMS Kütüphaneleri
using GsmComm.PduConverter;
using GsmComm.PduConverter.SmartMessaging;
using GsmComm.GsmCommunication;
using GsmComm.Interfaces;
using GsmComm.Server;

public partial class Sms : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        Response.Write(SmsOku());
        Response.Write("<hr />");
        Response.Write(SmsGonder("Merhaba dunya!", "05393807119"));
    }

    // ### SMS OKU ####################
    public string SmsOku()
    {
        string RtnMsg = "";
        GsmCommMain Comm = new GsmCommMain(9, 19200, 300); // Com Port'a bağlan (MODEM) - GsmCommMain kütüpühanesini kullan.
        Comm.Open(); // Portu aç
        DecodedShortMessage[] Sms = Comm.ReadMessages(PhoneMessageStatus.All, PhoneStorageType.Phone); // Telefondaki mesajları oku.
        foreach (DecodedShortMessage Msg in Sms)
        {
            SmsDeliverPdu SmsData = (SmsDeliverPdu)Msg.Data; // PDU formatında gelen değişkenleri oku
            try
            {
                string SMSMesaj = Msg.Data.UserDataText;
                string MobilNo = SmsData.OriginatingAddress;

                RtnMsg += SmsData.OriginatingAddress + " - " + SMSMesaj + "<br />"; // Mesaj kutusundaki mesaj metni
            }
            catch (Exception ex)
            {
                RtnMsg += SmsData.OriginatingAddress + " - " + ex.Message + "<br />";
            }
        }
        //Comm.DeleteMessages(DeleteScope.All, PhoneStorageType.Phone); // SMS'lerin hepsini sil
        Comm.Close(); // Portu kapat
        return RtnMsg;
    }

    // ### SMS GÖNDER #################
    public string SmsGonder(string MobilNo, string SmsMsg)
    {
        string RtnMsg = "";

        try
        {
            GsmCommMain Comm = new GsmCommMain(9, 19200, 300); // Com Port'a bağlan (MODEM) - GsmCommMain kütüpühanesini kullan.
            SmsSubmitPdu Pdu = new SmsSubmitPdu(SmsMsg, MobilNo, "", DataCodingScheme.NoClass_7Bit);

            Comm.Open();
            Comm.SendMessage(Pdu);
            Comm.Close();

            RtnMsg = "success";
        }
        catch (Exception msg)
        {
            RtnMsg = msg.ToString();
        }
        return RtnMsg;
    }

}

Tarihteki İmparatorluklar

Tarihteki imparatorluklara genel bir bakış.