Skip to main content

AccessTr.neT


SMS Göndermek Hakkında (Access 2007-2010)

SMS Göndermek Hakkında (Access 2007-2010)

#3
Sayın ozanakkaya,
konuya cevap verdiğinize dair e-mail'i bugün aldım nedense. o zamandan beri de cevap yok diye bakmıyordum konuya. Öncelikle özür diliyorum bu nedenle. Şimdi, bu konu ile ilgili olmayan ingilizcemle öğrenebildiğim bilgileri bu vesile ile anlatmaya çalışayım.

Öncelikle konunun "access ile sms göndermek" ile ilgisi olmadığını öğrendim. Konu, com port'a bağlanan cihazla kullanılan programlama dili aracılığı ile İletişim kurmak ve cihaza, yine kullanılan programlama diliyle AT komutlarını göndermekmiş.

Yukarıdaki mesajıma zaten 160 karaktere kadar ve Türkçe karakter içermeyen metin mesajlarının nasıl gönderileceği ile ilgili bir örnek eklemiştim (sizin bahsettiğiniz düzenlemeleri de sonradan kendi uygulamama eklemiştim).

Sonra, çok uzun bir süre boyunca internette 160 karakterden uzun mesajların nasıl gönderileceği ile ilgili araştırma yaptım.

Bunu araştırırken öğrendiğim şey, ilk mesajımda anlattığım gibi direkt metin mesajlarını göndermenin yanında başka bir yol olduğuydu.

Bu yol da metin mesajını PDU (Protocol Data Unit) denen bir koda çevirerek göndermek.

160 karaktere kadar, Türkçe karakter içermeyen sms'leri ister direkt metin olarak, ister PDU'ya çevirerek gönderebiliyoruz.

160 karaktere kadar Türkçe karakter içermeyen mesajları PDU'ya çeviren bir visual basic 6.0 uygulaması da buldum ve onu da Access 2010'a çevirdim. Uygulamayı ekte bulabilirsiniz (koda şöyle bir baktım ama beni aştığı için incelemedim).

160 karakterden uzun mesajları ise sadece PDU'ya çevirerek gönderebiliyoruz. Ve bu çevirme her 153 karakteri bir PDU kodundan oluşan mesaj haline getirip sırayla göndermek şeklinde oluyor. Alıcı telefon bu mesajları birleştirerek bize gösteriyor. Anlayabildiğim kadarıyla GSM operatörünün bir etkisi olmuyor. O sadece gönderilen herbir sms'i yerine ulaştırıyor.

Şimdi burada birşeye dikkat çekmem lazım. Önce 160 karaktere kadar olan sms'i PDU'ya çeviren uygulama buldum dedim. Sonra da 160 karakterden uzun sms'leri PDU'ya çevirerek gönderebiliyoruz dedim. Fakat bu ikisi aynı şey değil.

160 karakterden uzun sms'lerin her bir parçasını çevirirken bu PDU koduna UDH (user daha header) denen bir parça ekleniyor. Zaten doğru anlamışsam bu nedenle her bir parça 153 karaktere düşüyor. Bu 153'lük kısım da 7 bitlik GSM alfabesine göre oluyor. 8 bitlik GSM alfabesine göre mesaj gönderirsek  toplam karakter uzunluğu 140 oluyor ve uzun sms'lerdeki bölümlerde -yanlış hatırlamıyorsam- 134'e düşüyor. Türkçe karakter içeren sms'ler zaten toplamda 70 karakter olabiliyor ve 16 bitlik GSM alfabesi olarak adlandırılıyor. Uzun sms'deki PDU bölümlerinin kaça düştüğünü ise zaten bulamadım.

İşte bulduğumu söylediğim uygulamada UDH kısmını çeviren bir modül yok.

Bu UDH'de referans kodu denen bir kısım var. Hani PDU'ya çevirmeyi belki kasıp öğrenirim diyorum, çünkü sanırım bit kaydırma yoluyla falan yapılan bir yöntem. Ama bu UDH kısmı içersindeki referans kodunun neye göre oluşturulacağına dair birşey bulamadım, ya da anlamadım. İngilizcesi olan arkadaşlar belki bu kısmı çözebilirler. Bu PDU ve UDH ile ilgili iki site buldum:

https://hiteshagja.wordpress.com/2010/04...-long-sms/

http://mobiletidings.com/2009/02/18/comb...-messages/

ilkindeki resimlerde UDH'nin hangi parçalardan oluştuğunu rahatça görebilirsiniz. İkincisi ise oldukça güzel örnekleme yapmış. Bu ikincisindeki kullanıcı yorumlarında da UDH'de sıkıntı yaşandığı belli oluyor yanlış anlamıyorsam.

Aşağıdaki sitede de bir online sms pdu decoder/converter var ve çevirdiğiniz metine karşılık gelen pdu kodunun hangi parçasının hangi kısma denk geldiğini de gösteriyor. Yalnız bu da 160 karaktere kadar çeviriyor.

http://www.diafaan.com/sms-tutorials/gsm...u-decoder/

Aşağıdaki sitede de UDH ile ilgili bir açıklama mevcut ama tamamen ingilizce tabii ki.

http://www.clockworksms.com/blog/concatenated-sms/

şurada PDU'ya çevirme ile ilgili küçük bir örnek mevcut:

http://stackoverflow.com/questions/19530...age-in-pdu

Google'da arama yaparsanız bir sürü site daha çıkacak zaten.

Sonuçta UDH olmadan 160 karakterden uzun sms gönderilemiyor.

Bu konuya o kadar uzun süre kafa yordum ki, sonunda resmen beynim sulandı ve bıraktım. Ama hala ara ara belki birşeyler daha çözerim diye bakmaktan kendimi alıkoyamıyorum.

Konuyla ilgilenen veya ilgilenmek isteyen arkadaşlar için güzel bir başlangıç bilgisi verebilmişimdir umarım. Ve umarım bu konuyu çözebilen arkadaşlar olursa burada adım adım anlatırlar da, SMS'i PDU'ya (UDH ile birlikte) çevirme konusunda Türkçe bir kaynağa sahip oluruz.

Saygılarımla...

.rar SMS2PDU_WiniFred_Access2010.rar (Dosya Boyutu: 66,99 KB | İndirme Sayısı: 44)
Cevapla

Bir hesap oluşturun veya yorum yapmak için giriş yapın

Yorum yapmak için üye olmanız gerekiyor

ya da

Bu Konudaki Yorumlar
Cvp: SMS Göndermek Hakkında (Access 2007-2010) - Yazar: WiniFred - 07/01/2015, 20:20