BulutfonXM

Bulutfon santralini BulutfonXM özelliğini kullanarak isteklerimize göre santralimizi çağrı anında yönetebiliyoruz. BulutfonXM eklentisi santrali kullanan kullanıcının bir çok isteğine rahatlıkla cevap verebilir. Bir örnek olarak mesai saatlerinde santrali farklı menülere yönlendiren BulutfonXM uygulamasının yapılışını anlatacağım.

Mesai Saatleri Uygulamasını Özellikleri

1.  Kullanıcı bu uygulamaya çalışma saatlerini girerek bu saatlerde uygulamanın farklı menülere yönlendirmesini sağlayabilir.

2.  İstenilen bir günü tamamen tatil yada tamamen mesai saati olarak belirleyebilir.

3.  Mesai saati ortasında öğle arası gibi bir mola saati tanımlaması yapabilir.

Uygulama Nasıl Yapılır

Öncelikle uygulamamızın çalışacağı internete açık bir hosting adresini Bulufon’nun tetiklemesi için tanımlamamız gerekli. Bunun için:

1.  Bulutfon kullanıcı hesabımıza giriş yaptıktan sonra “Uygulamalar / BulutfonXM” sekmesine giriyoruz.

2.  Burada daha önceden eklemiş olduğunuz BulutfonXM uygulamalarına ulaşabilir ve onlar üzerinde ayarlama yapabilirsiniz. Biz + Yeni butonuna tıklıyoruz. Aşağıdaki gibi bir ekran bizi karşılayacaktır.

Yeni BulutfonXM Oluşturma Sekmesi

3.  Yukarıdaki adımda açılan sayfada “Uygulama Adı” alanına uygulamamızın ismini “URL” alanına Bulutfon’un tetikleyeceği ve bizim uygulamamızın kayıtlı olduğu bir adresi giriyoruz.

4.  “HTTP AUTH Aktif?” seçeneği işaretlediğimiz zaman bizden kullanıcı adı ve şifre isteyecektir. Buraya girdiğimiz kullanıcı adı ve şifreyi yaptığımız uygulamada doğrulayarak sadece kullanıcı adı şifreyi bilenlerin kullanabileceği bir uygulama yapabiliriz. Biz yapacağımız uygulamada bu seçeneği işaretlemiyoruz.

5.  Gerekli bilgileri girdikten sonra “Kaydet” butonuna basıp işlemi tamamlıyoruz.

6.  Uygulamamızın daha anlaşılır ve kolay olması için Bulutfon’ un Composer paketini kullanacağız. Bunun için “https://getcomposer.org/download/” adresinden Composer’ i indirip bilgisayarımıza kuruyoruz.

7.  Uygulamayı yapacağımız klasör içerisinde terminalimizi açıyoruz. “https://packagist.org/packages/xuma/bfxm” adresinden “composer require xuma/bfxm dev-master” komutunu konsolumuzda çalıştırıyoruz. Composer paketi uygulama için oluşturduğumuz klasöre kurulacak.

8.  Proje klasörümüzün içerisine sabit değerin ve program ayarlarının yapılması için “constants.php” ve başlangıç yeri için “index.php” adında 2 dosya oluşturuyoruz.

9.  “constant.php” dosyamızdan uygulamamızı yazmaya başlıyoruz. Öncelikle mesai saati başlangıç ve bitiş saatlerini tanımladığımız, aşağıdaki gibi bir dizi oluşturuyoruz.

#Mesai saatleri
$hours = 
[
  'morning_start' => '08:00',
  'morning_finish' => '12:00',
  'afternoon_start' => '19:00',
  'afternoon_finish' => '20:00'
];

Uygulamamız mesai saatleri içerisinde sadece bir mola vermeye göre ayarlandığı için yukarıdaki 4 değer bizim için yeterlidir.

10.  Haftanın her günü için mesai saatlerini tutacak günler dizisini aşağıdaki gibi oluşturuyoruz.

#Gunler
$days = [
1 => $hours , //Pazartesi
2 => $hours , //Sali
3 => $hours , //Carsamba
4 => $hours , //persembe
5 => $hours , //cuma
6 => $hours , //cumartesi
7 => $hours , //pazar
];

Haftanın her günü için tek tek atama yapmamız özel gün tanımlamamızı sağlayacaktır.

11. Uygulamamızın mesai saatlerinde, öğlen aralarında ve mesai saatleri dışında yönlendirilecekleri menü numaralarını tutan sabitleri aşağıdaki gibi giriyoruz.

#Menu Numaralari
$shift_in = 10; //Mesai saatleri menu numarasi
$shift_out = 11; //Mesai saatleri disi menu numarasi
$launch_break = 11; //Oglen arasi menu numarasi

12. Şimdi “index.php” dosyamıza geçebiliriz. İlk olarak composer paketini ve “constant.php” dosyamızı include ediyoruz. Sonra Composer paketi içerisindeki nesnenin namespace tanımlamasını aşağıdaki gibi yapıyoruz.

require_once 'vendor/autoload.php';
require_once 'constants.php';
use Xuma\Bfxm\Builder;

13. Şimdi PHP’ nin zamanları düzgün hesaplaması için PHP zaman aralığını giriyoruz. Devamında şimdiki saati ve günü belirttiğimiz formatta tutan sabitlerimizi giriyoruz.

date_default_timezone_set('Europe/Istanbul'); //Turkiye saati
$day_now = date('N'); //Suanki gun degeri
$hour_now = date('H:i'); //Suanki saat degeri

14. “index.php” dosyamıza gerekli kontrolleri girmek için switch yapısını aşağıdaki gibi oluşturuyoruz.

switch($hour_now){

15. Sonra 1. case değerimizi aşağıdaki gibi giriyoruz.

//Mesai saatleri disi
case ($hour_now < $days[$day_now]['morning_start'] ||
$hour_now > $days[$day_now]['afternoon_finish'] ):
$bfxm = new Builder();
$bfxm
->dial($shift_out)
->build(true);
break:

16. Bu case değerimiz mesai saatleri dışında olunduğunda sağlanır. Builder sınıfında $bfxm nesnesini oluşturuyoruz. Nesnenin dial metodunun içerisine yönlendirileceği menu numarası giriyoruz.
Sonra 2. case değerimizi aşağıdaki gibi giriyoruz.

//Oglen arasi
case ($hour_now > $days[$day_now]['morning_finish'] &&
$hour_now < $days[$day_now]['afternoon_start'] ):
$bfxm = new Builder();
$bfxm
->dial($launch_break)
->build(true);
break;

17. Bu case değerimiz mesai saati içerisinde ara vermek istediğimiz zaman çalışacaktır. Son default durumu aşağıdaki gibi giriyoruz.

//Mesai saatleri
default:
$bfxm = new Builder();
$bfxm
->dial($shift_in)
->build(true);
break;

Bu son durum ise kalan son ihtimal yani mesai saatlerinde çalışacak durumdur.

18. Özel gün değeri ayarlamak için “constant.php” dosyamıza giriyoruz. En altına aşağıdaki kod bloğunu yapıştırıyoruz.

/**
* Ozel gun belirleme
* $days[gun numarasi]['morning_start'] = 'hh:mm'
* $days[gun numarasi]['morning_finish'] = 'hh:mm'
* $days[gun numarasi]['afternoon_start'] = 'hh:mm'
* $days[gun numarasi]['afternoon_finish'] = 'hh:mm'
*/

Tanımlamak istediğimiz günün numarasını giriyoruz. Pazartesi 1. gün olarak kabul edilmiştir. Bir günü tamamen tatil yapmak için 4 saat değerine de aynı değerleri giriyoruz. Ara vermeden mesai saati oluşturmak için öğle arası başlangıç ve bitiş değerlerine aynı değeri veriyoruz. Bir hafta içinde birden fazla günü özelleştirmek için bu kod bloğunu kopyalayıp yapıştırıp istediğimiz gün değerini değiştirerek sağlayabiliriz.

19. Uygulamızı kayıt edip belirtiğimiz internet adresine yükledikten sonra Bulutfon arayüzüne girip “https://oim.bulutfon.com/account/pbx-settings/dids” adresinden sahip olduğumuz numara veya numaraların oluşturduğumuz BFXM yönlendirme işlemlerini yapıyoruz. Bunun için seçtiğimiz numarayı düzenle diyoruzve ardından“Santral Numaranızın Hedefini Seçiniz ” alanından birlikte oluşturduğumuz BFXM uygulamasını seçiyoruz.

Kayıt edip çıktıktan sonra belirttiğimiz numarayı arayarak test işlemlerini gerçekleştirebiliriz.

Uygulamanın tamamlanmış hali: https://github.com/ahmetilhann/bulutfon-bfxm-mesai-saatleri

Yorum Yap