folder Tahribat.com Forumları
linefolder Android - IOS Programlama
linefolder Android / Php Voice Dialer Hakkında.



Android / Php Voice Dialer Hakkında.

  1. KısayolKısayol reportŞikayet pmÖzel Mesaj
    MhmdAlmz
    MhmdAlmz's avatar
    Kayıt Tarihi: 09/Ağustos/2015
    Erkek

    Hocalarım teeeee android'e yeni girdiğim zamanlar (3 sene önce falan) Aklımda birşeyler vardı yapmaya çalıştım daha 16 yaşında ergen olduğum için öyle uçuk kaçık şeyler düşündüm sonra biraz android öğrenmeye başlayınca işin o kadar kolay olmadığını öğrendim. Vel hasıl, Geçen senelerde forumda konu açmıştım da bulamadım . Araştırıyordum o zamanlar sonra sonuç elde edemeyince bıraktım...

    Amacım Web Taraflı (Php) Bir ARAMA isteğinde bulunulduğunda Android tarafında HANG UP edilmesini yani Aramanın gerçekleşmesini istiyorum. Bir nevi Çağrı merkezi gibi düşünülebilir. Internet üzerinden Php Serverden gelen istek ile android tarafında Arama yaptırmak istiyorum Keza Android den PHP Web'e bir arama. Işin basit olmayacağını biliyorum fakat bir hayli boş zamanım var PHP de yeni yeni öğreniyorum 1 ay falan oldu eğitim göreli . Kendime birde + olarak Dailing uygulaması yapmak istiyorum.

     

    NOT : Normal Şebeke hattından aramadan bahsetmiyorum Internet üzerinden arama. Whatsapp Viber gibi düşünülebilir.

     

    Projeyi Github'da geliştireceğim. Dileyen kişiler projeyi takip edebilirler. Github : https://github.com/MhmdAlmz

     

    Arama konusunda şuan pek bir bilgi sahibi değilim. Bildiğim veya bildiğimi sandığım birkaç birşey var 

    *WEBRTC = gerçek zamanlı yani Real Time projeler için kullanılan bir Api veya Modül pek bilgim yok.

    *Daha önce WEBSOCKET Yazmadım yani öyle geniş çaplı birşey Sadece Mesajlaşma için bir Socket yazdım . 

    *XMMP araştırdım biraz. Video ve Audio modülleri var sanırım.

     

    Daha Önce böyle bir proje geliştiren birileri var mıdır ? Bilgi sahibi biri aydınlatsa bizi ? Ben gene de araştırmaya devam edeceğim. Bulamasam bile Ekstra bilgi birikimi olur, Katılmak isteyen birileri varsa beraber de yol katedebiliriz. 

     

    Gelelim en can alıcı soruya : " Bunu nasıl yapabilirim Izlemem gereken yol nedir ? Çok uçuk birşey mi ? Kaynak var mı (Sipdroid vs baktım şuan site kullanılamaz halde eski olduğu için yeni kaynak gerekiyor) Yardım edecek bir mürit varmıdır ? " . 

    Tatlı günler :) Başlayalım bakalım..


    Andolsun kuşluk vaktine ve dindiği zaman o geceye ki, Rabbin sana veda etmedi ve darılmadı! Ve kesinlikle senin için sonu önünden (ahiret dünyadan) daha hayırlıdır. ileride Rabbin sana verecek de hoşnut olacaksın! O, seni bir yetim iken barındırmadı mı? Seni, yol bilmez iken (doğru) yola koymadı mı? Seni bir yoksul iken zengin etmedi mi? Öyle ise, sakın yetime kahretme (onu horlama)! El açıp isteyeni de azarlama! Fakat Rabbinin nimetini anlat da anlat!
  2. KısayolKısayol reportŞikayet pmÖzel Mesaj
    JPriest
    JPriest's avatar
    Kayıt Tarihi: 09/Mart/2007
    Erkek

    Ben kurcalamıştım zamanında biraz bu işleri. Üzerinde yeniden çalışmak istemediğim, biraz kıllı konular bana göre. İşin üstadları daha iyi açıklamalar yaparlar ama giriş mahiyetinde de olsa birkaç şey söyleyebilirim ben de.

    Öncelikle anlık kaç kişiye hizmet vereceksin? Yalnızda audio/video call/conferance seçeneklerin mi olacak yoksa instant messaging de olacak mı işin içinde? Bu işi Türkiye için mi yapacaksın? Bu soruların cevaplarına göre mimarinin kurgusu değişecektir.

    Sondan başlamak gerekirse Türkiye'de ne kadar olduğunu bilmediğim sayıda kişiye iletişim altyapısı sunuyorsan (sadece bize özel değil) belli bir süre tüm iletişim loglarını tutman, bunlara hiçbir insanın erişemiyor olmasını sağlaman, mahkeme kararı ile gelen savcı/yetkili kişilere de okunabilir/dinlenebilir kayıtları sağlama zorunluluğun var. Özellikle 17-25 aralık döneminden sonra..

    P2P (Pee-to-Peer) ya da Client - Server - Client tarzı yaklaşımlar var. Tüm trafiğin kaydını tutman için arada server olması gerekiyordur çok yüksek ihtimalle. Ama bunu Apache server gibi tek başına bir server olarak düşünme. NAT, ICE, STUN ve TURN kavramlarını iyi bir şekilde öğrenmek gerekiyor maalesef. Çok kabaca söylemek gerekirse, IP tabanlı bir iletişim sağladığını düşünelim 2 farklı client'ın. Her bir client da farklı ülkelerde, farklı şirketlerin local ağlarından internete çıkıyor olsunları. Türkiye'de kendi şirketinden, Japonya'daki iş yaptığın şirketin bir elemanını aradığını düşün. İki taraf da IP adreslerine baksalar 192.168.x.x gibi IP'ler görecekler. Router, Switch, Gateway, Firewall + NAT'ın arkasında iki taraf da. Dolayısıyla bu ikisinin bir şekilde birbirleriyle haberleşmeleri gerekiyor, el sıkışmaları gerekiyor. STUN ve TURN kısaca bu işi organize ediyor diyelim. Detayına bakmak lazım ama kesinlikle. Burda kısa bir yazı var:

    https://www.webrtc-experiment.com/docs/STUN-or-TURN.html

    Sadece instant messaging yapacaksan çok büyük problem yok, text based halledilir ama işin içine audio/video call da girince diğer bütün seçenekleri boş ver, WebRTC bak direkt. Hem mobil hem web'i birbiriyle konuşturacağım diyorsun çünkü.

    Olay burda ikiye ayrılıyor. 1- Signalling 2- Streaming. WebRTC streaming kısmını hallediyor, adı üzerinde zaten bütün audio/video stream işi için. Ama iki tableti birbiriyle konuşturmak için önce iki tarafın donanım özellikleri, codecleri, kamerası/mikrofonu var mı yok mu, varsa altyapıları, firewall / NAT vs izinleri var mı gibi kısacası orta yolu bulmaları ve o yoldan iletişim kurmalarını sağlamak gerekiyor. Bu kısma signalling deniliyor. Bunun için birden fazla seçenek var. Websockets, RESTful api, XMPP.. Websockets ile birlikte Long-Polling kavramına kesinlikle bakmak gerekli. 

    https://bloggeek.me/siganling-protocol-webrtc/

    Bir projede signalling + instant messaging kısmında rest, streaming kısmına WebRTC kullanmıştık. Başka bir tanesinde signalling + instant messaging kısmında WebSockets ve streaming kısmında yine WebRTC kullanmıştık. Turkcell'in instant messaging uygulamasında custom bir Openfire server (XMPP) var signalling kısmında.

    http://www.igniterealtime.org/projects/openfire/

    Ama bildiğim kadarıyla XMPP mobil cihazlar için pek önerilmiyor. Hem performans, hem data boyutları hem de pil ömrü için kronik problemleri var diye biliyorum ama teknik açıklama sorarsan bilmiyorum, aklımda böyle kalmış sadece.

    Instant messaging için adam oturum açtı, durumu meşgule aldı, oturum kapattı gibi olaylar, grup chat, broadcast message, offline adam online olduğunda senkronizasyon gibi olayları da iyi yönetmek gerekiyor. Tabi burda bir de emoji, image, file transfer vs de söz konusu olacaktır ileride.

    Dediğim gibi biraz kıllı sektör telco sektörü.

    Tavsiyem WebSockets + WebRTC. PHP ile biraz canın yanabilir. NodeJS + Socket.io falan bak derim server side için. Opensource ya da ticari bir sürü ürün çıkmıştır piyasaya ayrıca. Her şeyini kendin yazmaya çalışırsan çook uzun zaman harcayabilirsin, bazı parçalarını dışardan temin etmek hız kazandırır.

    Edit: harf hatası

    JPriest tarafından 04/Tem/16 23:49 tarihinde düzenlenmiştir

    Sen hiç kaval çaldın mı?
  3. KısayolKısayol reportŞikayet pmÖzel Mesaj
    MhmdAlmz
    MhmdAlmz's avatar
    Kayıt Tarihi: 09/Ağustos/2015
    Erkek

    @JPriest ,

     

    Bir bakıma iş sunucu tarafında bitiyor. Android sinyallerini Sunucuya (Bir alıcı yardımı ile) ordan da Web'e veya tam tersi bir sistem işliyor . WebSocket + PHP orta seviye . NodeJs ne işe yarar her yerde karşıma çıkıyor. bir baksam mı ki bilemedim. Ama Mantığını tam kavramış değilim. Onca Sip Server Yapanlar var bu adamlar bu kadar uğraşıyor olamaz. Birde Birde SİP DOMAİN mevcut o domain'e ait verileri işleyeceğim. Mantık gene aynı mı olur ?


    Andolsun kuşluk vaktine ve dindiği zaman o geceye ki, Rabbin sana veda etmedi ve darılmadı! Ve kesinlikle senin için sonu önünden (ahiret dünyadan) daha hayırlıdır. ileride Rabbin sana verecek de hoşnut olacaksın! O, seni bir yetim iken barındırmadı mı? Seni, yol bilmez iken (doğru) yola koymadı mı? Seni bir yoksul iken zengin etmedi mi? Öyle ise, sakın yetime kahretme (onu horlama)! El açıp isteyeni de azarlama! Fakat Rabbinin nimetini anlat da anlat!
  4. KısayolKısayol reportŞikayet pmÖzel Mesaj
    pesimistzombie
    pesimistzombie's avatar
    Kayıt Tarihi: 14/Haziran/2006
    Erkek

    valla ben de arıyorum basit bişey web üzerinde kullanmak için ama temelini kavrayamadım. webrtc bu iş için çok uygun ama temelini kavramak lazım


    :|
  5. KısayolKısayol reportŞikayet pmÖzel Mesaj
    MhmdAlmz
    MhmdAlmz's avatar
    Kayıt Tarihi: 09/Ağustos/2015
    Erkek
    pesimistzombie bunu yazdı

    valla ben de arıyorum basit bişey web üzerinde kullanmak için ama temelini kavrayamadım. webrtc bu iş için çok uygun ama temelini kavramak lazım

    hocam Android To Web , Web To Android, Web To Web, Android To Android yapacağım ben. Web Modülleriyle ilgili zibilyon kaynak var aslında Android'i yapamazsam Web'e birlikte bakalım yapılır web 


    Andolsun kuşluk vaktine ve dindiği zaman o geceye ki, Rabbin sana veda etmedi ve darılmadı! Ve kesinlikle senin için sonu önünden (ahiret dünyadan) daha hayırlıdır. ileride Rabbin sana verecek de hoşnut olacaksın! O, seni bir yetim iken barındırmadı mı? Seni, yol bilmez iken (doğru) yola koymadı mı? Seni bir yoksul iken zengin etmedi mi? Öyle ise, sakın yetime kahretme (onu horlama)! El açıp isteyeni de azarlama! Fakat Rabbinin nimetini anlat da anlat!
  6. KısayolKısayol reportŞikayet pmÖzel Mesaj
    S2kucuk
    S2kucuk's avatar
    Banlanmış Üye
    Kayıt Tarihi: 06/Haziran/2015
    Erkek

    Temel mimari için biraz bilgi vereyim belki kafanda birşeyler oluşur. Öncelikle PHP sevdasından vazgeç. Bu işler için gerçek programlama dilleri kullanma taraftarı olmuşumdur herzaman. PHP ile yapılmaz demiyorum muhakkak başarırsın ama zannettiğin kadar performanslı olmaz. 

    Yapılacak işleri sırasıyla anlatıyorum.

    2 adet sunucu uygulaması hazırlanacak. 

    1-> Notificaton server

    2-> Voice Dialer server

    Notification serverın amacı 2 yada daha fazla client için bir buluşma ayarlamak ve doğru sunuculara yönlendirmek. 

    Voice Dialer Server ise konuşma işlemlerini yönetecek.

    Web yada Android Service ilk çalıştığı zaman Notification Server a register olacak ve packet gelmesini bekleyecek. Bu aşamada HTTP protokolünü kullanmanı tavsiye ederim çünkü web ayağında websocket HTTP protokolü gibi stabil değil ve her browserda farklı davranıyor. Eline ayağına dolanır hiç gerek yok. HTTP protokolü ile Long-Term-Polling yaparak aynı işi pratik şekilde simule edebilirsin. 2 eventimiz var. Arama yapmak, yada sana arama gelmesi. Arama yapma işi çok kolay; notification sunucuna X kişisini aramak istiyorum diye packet gönderdiğinde sunucu buluşma için Voice Dialer Serverda sana uygun IP ve PORT verecek. (Uygulama bu sayede sonsuz farklı sunucuda çalışabilir) Bu sırada da Long Term Polling yapan X kişisine de Y kişisi seni aramak istiyor şu IP ve Porta bağlan diye bilgi ulaşacak. Bu sayede 2 client randevulaştı ve işler voice dialer sunucuna kaldı.

    Sunucunun tek yapması gereken Clientın sıkıştırılmış olarak gönderdiği raw datayı diğer clienta pipe etmesi. İşin zor kısmı olan sıkıştırma işi devreye giriyor. Realtime sıkıştırma işlemi yapacaksın ama client resourcelarını çok tüketmeyeceksin. Yok ben sıkıştırmayayım veriyi yaldır yaldır yazayım dersen paketler parça parça gelip birleşeceği için gecikme oluşur. Telsizden öteye gidemez. Unutulmaması gereken şey burda bottleneck (darboğaz) internet bağlantısı. İnternete ne kadar az veri gönderirsen, sistem o kadar hızlı çalışır. Sıkıştırma işini codeclere bırakacaksın. Optimize edilmesi gereken çok kalem var, uyguladıkça önüne gelecektir. 

    Kolay gelsin.

    Not: LTP'nin dezavantajı sunucu tarafına yük bindirir dolayısıyla notification serverın, server donanımına da bağlı olmak suretiyle tahmini 500 kişi barındırabilir aynı anda. Ayrıca android tarafında service olarak çalışacağı için şarjı hızlı bitirecektir (raw socketlere kıyasla)

  7. KısayolKısayol reportŞikayet pmÖzel Mesaj
    MhmdAlmz
    MhmdAlmz's avatar
    Kayıt Tarihi: 09/Ağustos/2015
    Erkek

    Bu Server'i ücretli satan firmalar var mıdır bir SDK ile işi çözebilir miyim örneğin 200 Kişilik sip domain fiyatı ile işi halledemez miyim ? O kadar Server kurup sinyalizasyon işlemleri beyim boyumu aşar . Sip server kiralaasam ? bu işlemleri yaptırmak için SDK Falan yardımı yapıyorlar mı ??


    Andolsun kuşluk vaktine ve dindiği zaman o geceye ki, Rabbin sana veda etmedi ve darılmadı! Ve kesinlikle senin için sonu önünden (ahiret dünyadan) daha hayırlıdır. ileride Rabbin sana verecek de hoşnut olacaksın! O, seni bir yetim iken barındırmadı mı? Seni, yol bilmez iken (doğru) yola koymadı mı? Seni bir yoksul iken zengin etmedi mi? Öyle ise, sakın yetime kahretme (onu horlama)! El açıp isteyeni de azarlama! Fakat Rabbinin nimetini anlat da anlat!
  8. KısayolKısayol reportŞikayet pmÖzel Mesaj
    S2kucuk
    S2kucuk's avatar
    Banlanmış Üye
    Kayıt Tarihi: 06/Haziran/2015
    Erkek
    MhmdAlmz bunu yazdı

    Bu Server'i ücretli satan firmalar var mıdır bir SDK ile işi çözebilir miyim örneğin 200 Kişilik sip domain fiyatı ile işi halledemez miyim ? O kadar Server kurup sinyalizasyon işlemleri beyim boyumu aşar . Sip server kiralaasam ? bu işlemleri yaptırmak için SDK Falan yardımı yapıyorlar mı ??

    Projeyi kullanacakmısın yoksa öğrenmek için mi geliştiriyorsun? Ben 2. şık için açıklama yapmıştım yazıp kullanayım diyorsan piyasada alternatifler muhakkak vardır. Onlara bakıvereyim.

  9. KısayolKısayol reportŞikayet pmÖzel Mesaj
    MhmdAlmz
    MhmdAlmz's avatar
    Kayıt Tarihi: 09/Ağustos/2015
    Erkek

    Hocam bi proje yapıyorum 1300 TL aldım tanıdık yani büyütüp arkadaşlarına satıcam.  Yani kullanacağım kendim bir voip server  yapmayacağım 


    Andolsun kuşluk vaktine ve dindiği zaman o geceye ki, Rabbin sana veda etmedi ve darılmadı! Ve kesinlikle senin için sonu önünden (ahiret dünyadan) daha hayırlıdır. ileride Rabbin sana verecek de hoşnut olacaksın! O, seni bir yetim iken barındırmadı mı? Seni, yol bilmez iken (doğru) yola koymadı mı? Seni bir yoksul iken zengin etmedi mi? Öyle ise, sakın yetime kahretme (onu horlama)! El açıp isteyeni de azarlama! Fakat Rabbinin nimetini anlat da anlat!
Toplam Hit: 1976 Toplam Mesaj: 9
php android sip call