Bulutfon Ruby SDK
ÖNEMLİ: Bu SDK APIv1 uyumludur.
Kullanım
Kurulum
Gemfile dosyanıza şu satırı ekleyiniz
gem 'bulutfon_sdk'
Bu satırı ekledikten sonra,
bundle install
komutunu koşarak gerekli paketleri yükledikten sonra BulutfonSDK'yı kullanmaya başlayabilirsiniz.
Master Token ile
require 'bulutfon_sdk'
token = 'your_token'
bulutfon = BulutfonSDK::REST::Bulutfon.new(token)
İşlevler
Kullanıcı bilgilerine erişme
SDK ile Kullanıcı bilgileriniz, panel bilgileriniz ve kalan kredinize erişebilirsiniz. Bunun için
puts bulutfon.details
methodunu kullanabilirsiniz.
Telefon numaraları ve telefon numara detaylarına erişme
Bunun için;
# Santral listesine erişir
puts bulutfon.dids.all
# Id'si verilen santral detayını döndürür
puts bulutfon.dids.get(1)
methodlarını kullanabilirsiniz.
Dahililere ve dahili detaylarına erişme, dahili oluşturma, güncelleme ve silme
Bunun için;
# Dahili listesine erişir
puts bulutfon.extensions.all
# Id'si verilen dahili detayını döndürür
puts bulutfon.extensions.get(1)
# Verilen parametrelere göre yeni dahili oluşturur.
params = {
full_name: 'Deneme',
email: 'deneme@deneme.com',
did: '905xxxxxxxxx',
number: 9999,
redirection_type: 'NONE',
destination_type: 'EXTENSION',
destination_number: '905xxxxxxxxx',
'acl[]' => [ 'domestic', 'gsm', 'international']
}
puts bulutfon.extensions.create(params)
# Verilen parametrelere göre dahiliyi günceller
params = {
full_name: 'Deneme Deneme',
'acl[]' => [ 'domestic', 'gsm']
}
puts bulutfon.extensions.update(1, params)
# Dahiliyi siler
puts bulutfon.extensions.delete(1)
methodlarını kullanabilirsiniz.
Gruplara ve grup detaylarına erişme
Bunun için;
# Grup listesine erişir
puts bulutfon.groups.all
# Id'si verilen grup detayını döndürür
puts bulutfon.groups.get(1)
methodlarını kullanabilirsiniz.
Arama kayıtlarına ve arama detaylarına erişme ve ses kayıtlarını indirme
Bunun için;
# Cdr listesine erişir
puts bulutfon.cdrs.all
# Cdr listesine sayfalama yaparak erişir
puts bulutfon.cdrs.all({page: 1, limit: 3})
# Uuid'si verilen cdr detayını döndürür
puts bulutfon.cdrs.get('uuid')
# Uuid'si verilen arama kaydinin detaylarini getir
puts bulutfon.call_records.get('uuid')
# Uuid'si verilen ses kaydını indir
save_path = "#{File.expand_path(File.dirname(__FILE__))}/save_uuid.ogg"
puts bulutfon.call_records.save('uuid', save_path)
methodlarını kullanabilirsiniz.
Gelen fakslara erişme ve faks dosyasını indirme
Bunun için;
# Gelen faksları listeler
puts bulutfon.incoming_faxes.all
# Uuid'si verilen gelen faksın detayları
puts bulutfon.incoming_faxes.get('uuid')
# Uuid'si verilen gelen faksı indir
save_path = "#{File.expand_path(File.dirname(__FILE__))}/save_uuid.tiff"
puts bulutfon.incoming_faxes.save('uuid', save_path)
methodlarını kullanabilirsiniz.
Giden fakslara erişme ve faks gönderme
Bunun için;
# Giden faksları listeler
puts bulutfon.outgoing_faxes.all
# Id'si verilen giden faks detayları
puts bulutfon.outgoing_faxes.get(1)
# Faks gönderme işlemi
file = "#{File.expand_path(File.dirname(__FILE__))}/pdf-sample.pdf"
params = {
title: 'Deneme',
receivers: '905xxxxxxxxx',
did: '905xxxxxxxxx',
attachment: file
}
puts bulutfon.outgoing_faxes.create(params)
methodlarını kullanabilirsiniz.
Ses Dosyalarını listeleme ve indirme, oluşturma ve silme
Bunun için;
# Ses Dosyalarını listeler
puts bulutfon.announcements.all
# Id'si verilen ses dosyasının detayları
puts bulutfon.announcements.get(1)
# Ses dosyası oluşturma
file = "#{File.expand_path(File.dirname(__FILE__))}/test.wav"
params = {
name: 'Deneme',
announcement: file
}
puts bulutfon.announcements.create(params)
# Id'si verilen ses dosyasını indirme işlemi
save_path = "#{File.expand_path(File.dirname(__FILE__))}/save_test.wav"
puts bulutfon.announcements.save(1, save_path)
# Id'si verilen ses dosyasını silme
puts bulutfon.announcements.delete(1)
methodlarını kullanabilirsiniz.
Otomatik Aramaları listeleme ve oluşturma
Bunun için;
puts bulutfon.automatic_calls.all # Otomatik aramaları listeler
puts bulutfon.automatic_calls.get(1) # Id'si verien otomatik arama detaylarını görüntüler
# Automatic call oluşturur ve oluşturmadan sonra receivers numaraları aranır
params = {
title: 'Automatic call after creation',
receivers: '905xxxxxxxxx',
did: '905xxxxxxxxx',
announcement_id: 1
}
puts bulutfon.automatic_calls.create(params)
# Zaman planlı automatic call oluşturulur ve oluşturmadan sonra receivers numaraları
# perşembe günü saat 10:15 ile 12:00 arasında aranır
params = {
title: 'Time planned call',
receivers: '905xxxxxxxxx',
did: '905xxxxxxxxx',
announcement_id: 1,
mon_active: false,
tue_active: false,
wed_active: false,
thu_active: true,
thu_start: '10:15',
thu_finish: '12:00',
fri_active: false,
sat_active: false,
sun_active: false,
hours_active: true
}
puts bulutfon.automatic_calls.create(params)
methodlarını kullanabilirsiniz.
Sms Başlıklarını Listeleme
Bunun için;
# Panelden oluşturduğunuz sms başlıklarını listeler
puts bulutfon.message_titles.all
methodlarını kullanabilirsiniz.
Mesajları Listeleme ve Mesaj Gönderme
Bunun için;
# Gönderilen mesajları listeler
puts bulutfon.messages.all
# Gönderilen mesajları sayfalama yaparak listeler
puts bulutfon.messages.all({page: 1, limit: 3 })
# Id'si verilen mesaj detaylarını döndürür
puts bulutfon.messages.get(1)
# Yeni mesaj gönderme işlemi
params = {
title: 'CONFIRMED_MESSAGE_TITLE',
content: 'Test Message',
receivers: '905xxxxxxxxx'
}
puts bulutfon.messages.create(params)
# Çoklu alıcılı mesaj gönderme işlemi
params_multiple = {
title: 'CONFIRMED_MESSAGE_TITLE',
content: 'Multiple Message',
receivers: '905xxxxxxxxx,905xxxxxxxxx'
}
puts bulutfon.messages.create(params_multiple)
# Zaman planlı mesaj gönderme işlemi
params = {
title: 'CONFIRMED_MESSAGE_TITLE',
content: 'Planned message example',
receivers: '905xxxxxxxxx',
is_future_sms: true,
send_date: '16/12/2015 10:00'
}
puts bulutfon.messages.create(params)
methodlarını kullanabilirsiniz.
Örnek kullanımları görmek için ve erişebileceğiniz değişkenler için örnek kodlarımızı inceleyebilirsiniz.
Hash cevapları OpenStruct objesine dönüştürme
Hesap
bulutfon = BulutfonSDK::REST::Bulutfon.new(token)
# Hesap detaylarını hash olarak gösterir
puts bulutfon.details
# Örnek bir hesap detayları sonucu
details = {
'user' =>{
'email' => 'test@bulutfon.com', 'name' => 'BULUTFON', 'gsm' => 'XXXXXXXXXXXX'
},
'pbx' =>{
'name' => 'test', 'url' => 'test.com', 'state' => 'CONFIRMED', 'package' => 'ENTERPRISE', 'customer_type' => 'CORPORATE'
},
'credit' =>{
'balance' => '10.00', 'sms_credit' => 0
}
}
# to_obj bizim hash sonuçları için tanımladığımız yardımcı metodumuz
detail_object = bulutfon.details.to_obj
puts detail_object
# Object örneği
=begin
#<OpenStruct
user=#<OpenStruct email="test@bulutfon.com", name="BULUTFON", gsm="XXXXXXXXXXXX">,
pbx=#<OpenStruct name="test", url="test.com", state="CONFIRMED", package="ENTERPRISE", customer_type="CORPORATE">,
credit=#<OpenStruct balance="10.00", sms_credit=0>>
=end
# Obje üzerinden alanlara şu şekilde ulaşabilirsiniz
puts detail_object.user.email
puts detail_object.user.name
puts detail_object.pbx.name
puts detail_object.pbx.url
puts detail_object.credit.balance
puts detail_object.credit.sms_credit
Gruplar için örnek
group_sdk = BulutfonSDK::REST::Group.new(token)
obj_result = group_sdk.all.to_obj
=begin
#<OpenStruct
groups=[
#<OpenStruct id=1, number=11, name="Ofis - İstanbul", timeout=30>,
#<OpenStruct id=2, number=22, name="Ofis - Denizli", timeout=30>,
#<OpenStruct id=3, number=33, name="İngilizce", timeout=30>
]>
=end
obj_result.groups.each do |group|
puts group.name
end
##Credits