COVID19 Kısıtlamalarını BulutfonXM ile Programlamak

Değerli arkadaşlar bildiğiniz üzere Bulutfon sadece bir telefon değildir. Bulutfon’u rakiplerinden ayıran en önemli özelliği programlanabilir bir telekomünikasyon alt yapısı sunmadıdır. Zaman zaman geliştirme ekibimiz programcılara yönelik geliştirdiğimiz API, Webkancası ve BulutfonXM ile ilgili örnek kod blokları yazmaktadır. Bu yazımızımın konusuda BulutfonXM’e bir örnek teşkil etmesi açısından bir kişınin telefon üzerinden yaşını tuşlaması ve buna göre BulutfonXM’in kısıtlama olup olmadığını kişeye söylenmesi senaryosu yapılmaya çalışılmıştır.

Bu senaryoya göre kişi

  1. Bulutfon’dan aldığınız santral numarasını arar,
  2. Sistem onun yaşını sorar,
  3. Kullanıcı yaşını tuşlar,
  4. Sistem yaşına, o anki zamana bakarak dışarı çıkma serbest mi değil mi bunu söyler.

Test edin

08508854030 numaramızı arayarak ilgili servisi kendiniz test edebilirsiniz.

Konunun daha iyi anlaşılması için konuyla ilgili bir bir tabloyu aşağıda ekliyoruz.

COVID19 Kısıtlamalarını BulutfonXM ile Programlamak 1
İnternetten Alınan Tablo

Örnek kod bloğumuzu paylaşalım.

require 'sinatra'

question = {
  'bfxm' => {
    'version' => 1
  },
  'seq' => [
    {
      'action' => 'gather',
      'args' => {
        'min_digits' => 1,
        'max_digits' => 2,
        'max_attempts' => 3,
        'play_on_error' => 'http://example.com/demo/covid/question.mp3',
        'ask' => 'http://example.com/demo/covid/question.mp3',
        'variable_name' => 'caller_age'
      }
    },
  ]
}

reply = {
  'bfxm' => {
    'version' => 1
  },
  'seq' => [
    {
      'action' => 'play',
      'args' => {}
    },
    {
      'action' => 'play',
      'args' => {
        'url' => 'http://example.com/demo/covid/bye.mp3'
      }
    }
  ]
}

def age_test(age)
  hour_of_day = Time.now.hour
  day_of_week = Time.now.wday
  # 20 yas alti hergun 13 - 16 arasi
  return true if age <= 20 and (13..15).include? hour_of_day
  # 65 yas ustu hergun 10 - 13 arasi
  return true if age >= 65 and (10..12).include? hour_of_day
  # 20-65 yas arasi haftasonu 10-20 arasi
  if age > 20 and age < 65
    return true if (1..5).include? day_of_week or (10..19).include? hour_of_day
  end
  return false
end

get '/' do
  'Bulutfon!'
end

post '/' do
  if params[:caller_age]
    age = params[:caller_age].to_i
    if age_test(age)
      reply['seq'][0]['args']['url'] = 'http://example.com/demo/covid/positive.mp3'
    else
      reply['seq'][0]['args']['url'] = 'http://example.com/demo/covid/negative.mp3'
    end
    content_type :json
    reply.to_json
  else
    content_type :json
    question.to_json
  end
end

İlgili kodu 08508854030 nolu telefonumuzu arayarak test edebilirsiniz. BulutfonXM ile ilgili daha detaylı bilgi almak için BulutfonXM sayfamızı ziyaret edebilirsiniz.

Her türlü sorunuz için aşağıya yorum yazabilir veya Geliştirme Formumuz üzerinden diğer geliştiricilerle tartışabilirsiniz.

Yorum bırakın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Scroll to Top