Cep Telefonları ve bluetooth artık kulaklık kullanımı dışında hayatımızda çok fazla yer etmese de acil uygulama ihtiyaçlarında hemen imdadımıza yetişebiliyor. Bluetooth ile seri haberleşmenin mümkün olması, ve cep telefonlarının bir bölümünün bu seri bağlantı üzerinden sanki normal bir modem gibi davranması; bu cihazları uzaktan sanki bir modemi yönetir gibi yönetmemize olanak tanıyor.iphone kullanmadan önce kullandığım son telefonum bir nokia modeliydi ve arabamda kullanmak için hazırladığım front-end uygulamasıyla telefonumu kontrol edebilmek için bir uygulama yazabilir miyim onu araştırmaya başladım. Bu araştırma beni yine AT komutlarına götürdü. Kısacası çok basit iki komutla uyumlu olan cep telefonunuzu bluetooth üzerinden çağrı başlatma, cevaplama ve çağrıyı sonlandırma için kullanabilirsiniz.Yeni smartphone dediğimiz akıllı telefonlarda bile işletim sisteminin işlemcisi ve donanımı haricinde mutlaka bir modem chip’i oluyor. İşte biz bu seri bağlantıyla bu chip’e ulaşıp onu yönetebiliyor ve monitor edebiliyoruz.

Yukarıdaki arayüzü bu iş için tasarlamıştım. Fakat Nokia’yı satıp iphone alınca AT komutlarıyla telefonu kontrol etmek de hayal oldu.

Algoritma oldukça basit aslında;

Sağ üstte bir textbox var, buradaki yazı, sol taraftaki rakam butonlarına bastıkça ekleniyor. (textBox1.text+=”1″; gibi)

“YES” butonuna basıldığında textbox’ta yazılı olan numara kullanılarak modeme aramayı başlat komudu gönderiliyor.

serialPort1.Write(“ATD” + listBox1.Items[0]+”;” + Convert.ToChar(013));

“NO” butonuna basıldığında modeme görüşmeyi sonlandır (hangup) komudu gönderiliyor.

this.serialPort1.Write(“AT+CHUP” + Convert.ToChar(013));

“Clear” ise modemle hiçbir alakası olmayan tek yaptığı textBox1.text=””; 🙂

Çağrıyı cevaplama kısmında işler çok az zorlaşıyor. Ortada bir çağrı yokken cevaplama komudunu göndermek hata almamıza sebep olabiliyor. Bu sebeple çağrı geldiğinde hem gelen numara bilgisini alıp arayüzde gösterebilmeli hemde çağrıyı cevaplayabilir duruma gelebilmeliyiz.

Çağrı gelirken com portu üzerinden bize RING +CLIP:05321234567 cevabı gelir, bu 05321234567 nolu numaradan bize çağrı olduğunu bildiriyor, işte bu aşamada normalde “YES” butonu arama işine yararken, çağrı gelme durumunda çağrıyı cevaplama işini görecektir.

Sonuç olarak yazacağınız algoritma da mutlaka sürekli gelen data var mı diye kontrol etmek zorundasınız ki gelen çağrı var mı kontrol etme şansınız olsun.

Şimdi bu kadar şeyi anlattıktan sonra başa dönersek, standard microsoft bluetooth driver’ı da sorunsuz çalışmakta olup tek yapmanız gereken bilgisayarınızla cep telefonunuzu birbirine eşleyip serial port hizmetinide etkinleştirmek. Bu şekilde cep telefonunuzu eşlediğinizde denetim masasına ilgili bluetooth seri portunu göreceksiniz. Bağlantının çalışırlığını kontrol etmenin en kolay yolu hyperterminal yada putty ile ilgili porta bağlanıp “AT” komudunu vermektir. Cevap olarak “OK” cevabını alırsanız herşey yolunda demektir ve yola yukarıdaki gibi devam edebilirsiniz.

Kullandığım 3 basit komudu kısaca geçersek;

  • ATD0123456789; 01234567 nolu telefona ses araması başlatır.
  • ATH+CHUP görüşmeyi sonlandırır yada gelen çağrı varken uygulandığında çağrıyı meşgule atar.
  • ATA gelen çağrıya uygulandığında çağrıyı cevaplamanızı sağlar.

Daha sayfalarca AT komudu olmasına rağmen bunların çoğu artık ya kullanılmıyor yada yeni telefon modellerinde desteklenmiyor.

http://www.developer.nokia.com/Community/Wiki/AT_Commands

Yukarıdaki link ilk bağlantı ortamını oluşturma ve diğer AT komutlarına ulaşma açısından çok güzel bir kaynak.