Skip to content

bulutfon/ruby-sdk

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

87 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Bulutfon Ruby SDK

Gem Version

Ö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

  • ruby_sdk is maintained by Lab2023 & Bulutfon
  • Thank you to all the contributors!
  • The names and logos for Bulutfon are trademarks of Bulutfon