PHP ve BulutfonXM ile Müşteri Tanıma Sistemi oluşturma hakkında aşağıdaki açıklardan bilgi alabilirsiniz.

BulutfonXM nedir? 

Bulutfon, harici bir web sunucusundan BFON formatında alacağı direktif dosyaları ile pbx davranışlarını düzenleyebilir. Bu özelliğe BFXM diyoruz.

Kullanıcılar, panellerindeki uygulamalar menüsünden yeni bir BFXM oluşturup, çağrı geldiği anda kendi belirledikleri bir urlye istek yaptırabilirler. İstek bir HTTP POST isteğidir. Kullanıcı diler ise bu isteğin HTTP Basic Auth olarak yapılmasını sağlayabilir.

Kullanacağımız Araç ve Kütüphaneler

Bulutfon Sanal Santral

Bulutfon Telekomünikasyon AŞ, kobilerin telefon, faks, sms, santral, api ve yazılım entegrasyonu gibi iletişim ihtiyaçlarını bulut teknolojilerle çözmek için 2013 yılında kurulmuş olan bir telekom operatörüdür. Uygulamamıza başlamadan önce aktif bir Bulutfon hesabınız ve Santral hizmetiniz olduğundan emin olmalısınız.

Redis

En basit haliyle Redis, key-value şeklinde tasarlanmış bir NoSQL veritabanıdır. Bu yazımızda PHP ile geliştireceğimiz uygulamada MySQL ile uğraşmak yerine müşteri bilgilerini ‘telefon numarası’ => ‘müşteri adı’ şeklinde Redis’te tutacağız.

PRedis

PRedis PHP ile Redis’e veri yazmak ve okumak için kullanacağımız PHP kütüphanesidir. 

Composer

PHP için bağımlılık yönetim aracıdır. Projenizin ihtiyaç duyduğu kütüphaneleri tanımlamanızı ve sizin için kurmasını ve güncellemesini sağlar. Bu örneğimizde PRedis kütüphanesini composer kullanarak projeye dahil edeceğiz.

https://getcomposer.org/ adresinden inceleyip kullandığınız işletim sistemine göre yükleme yapabilirsiniz.

Uygulamaya başlamadan önce Bulutfon hesabımıza girip BFXM uygulaması oluşturmamız gerekiyor.  Öncelikle Santral > Genel ayarlardan Geliştirici Araçlarını aktif etmemiz gerekiyor.

Geliştirici Araçları
Geliştirici Araçları
Yeni BulutfonXM
Yeni BulutfonXM

İşlem adımlarından kısaca bahsedecek olursak; 

Kullanıcı panelinde Uygulamalar > BulutfonXM > Yeni adımlarını takip ederek BulutfonXM uygulaması oluşturuyoruz.

Burada dikkat etmemiz gereken 2 konu var. Birincisi URL’yi doğru girmek, diğeri ise istek atılacak adreste herhangi bir authentication olup olmadığı bilgisi. Bulutfon istek yapılacak adresteki Basic Authentication için gerekli bilgileri alarak istek yaparken bu bilgiler doğrusunda istek yapabilir. 

Gerekli bilgileri doldurduktan sonra BulutfonXM ekle butonuna basarak uygulamamızı oluşturuyoruz. 

Benim burda yazdığım adres ngrok ismindeki bir uygulamadan aldığım adres, bu sayede bilgisayarımdaki 8000 portu üzerinden çalışan php servera uzaktan istek atılmasına olanak sağlıyorum. Siz kendi sunucunuzda yayınladığınız adresi ekleyebilirsiniz.

2. aşamada bulutfon numaramızı oluşturduğumuz BulutfonXM uygulamasına yönlendiriyoruz. Böylece bu numaraya gelen çağrılarda belirttiğimiz adrese istek atılacak ve çağrının nasıl devam edeceğiyle alakalı bizden dönüş bekleyecek.

Bu işlem için;

Kullanıcı panelinde Santral -> Santral Numaralarım dan ilgili numarayı düzenleyerek numara hedefini değiştiriyoruz. Bu işlemden sonra numaramıza gelen çağrılar BulutfonXM uygulamasına yönlendirilecektir.

Santral Numarası Hedefi
Santral Numarası Hedefi

Şimdi yapmamız gereken boş bir proje dizini oluşturarak composer ile predis kütüphanesini projeye dahil ediyoruz. Composer kurulumunu yaptıktan sonra  composer init  diyerek composer’ı aktif ediyoruz ve composer.json dosyasının oluşmasını sağlıyoruz. Daha sonra  composer require predis/predis  komutunu çalıştırarak kütüphaneyi projemizin vendor dizinine indiriyoruz. 

Daha sonra bir php dosyası oluşturup uygulamamızı yazmaya başlıyoruz. İlk önceliğimiz composer ile projemize dahil ettiğimiz predis kütüphanesini dahil edip bir istemci oluşturuyoruz. Örnek olması açısından çağrı yapacağımız birkaç numara ekliyoruz.

# Composer autoload
require "vendor/autoload.php";

# Redis istemcisini tanımlıyoruz
$client = new Predis\Client();

# Rediste kayıt olmadığı için işlem öncesinde test amaçlı örnek kayıt atıyoruz.
$client->set('905068118xxx', 'Huseyin Tunc');
$client->set('905363952xxx', 'Mehmet Tunc');
$client->set('905546028xxx', 'Volkan Oransoy');

Müşterinin ismini ve belirlediğimiz bir mesajı kullanıcıya dinletmek için mp3 dosyaları kullanmamız gerekiyor fakat internette bulabileceğiniz text to speech (metin okuma) hizmetleriyle belirlediğiniz bir metnin mp3 formatında stream dosyasına erişebilirsiniz. Ben bu örnek için voicerss.org’un apisini kullanıyor olacağım. 

# BFXM'den gönderilen istekten arayanın numarasını alıyoruz
$caller           = $_POST['caller'];


# Kullanıcıya okunacak olan metni belirliyoruz.
$client_name 	= $client->get($caller);
$text 		= "Hello, Welcome ".$client_name.". Please wait. You will be redirected to your customer representative"; 
$text	 		= str_replace(' ', '%20', $text);

# Voicerss.org kullanarak belirlediğimiz metni mp3 formatına çeviriyoruz.
$welcome_mp3 	= "http://api.voicerss.org/?key=API_KEY&hl=en-us&src=".$text;

Bu aşamadan sonra yapmamız gereken tek şey BulutfonXM’e ne yapması gerektiğini söylemek ve uygulamamızı test etmek. BulutfonXM json formatında veri kabul ettiği için gerekli bilgileri doldurup json olarak sonuç dönüyoruz. 

header('Content-Type: application/json');
$array = array(
		'bfxm'	=> array(
				'version' => 1
			),
		'seq' 	=> [
			array(
				'action' 	=> 'play',
				'args'		=> array(
					'url'	=> $welcome_mp3
				)
			)
		]
	);
echo json_encode($array);

Bu aşamadan sonra yapmamız gereken projemizi BulutfonXM eklerken belirttiğimiz adrese yüklemek ve Bulutfon numaramızı arayıp uygulamayı test etmek.

PHP ve BulutfonXM ile Müşteri Tanıma Sistemi daha fazla bilgi için API dokümantasyonumuzu inceleyebilirsiniz.

https://www.bulutfon.com/api-entegrasyon/

http://api.bulutfon.com/docs

Geliştirici forumumuza katılarak geliştirme ekibimize ulaşabilirsiniz.

https://devforums.bulutfon.com/

Esen kalın.

Yorum Yap