Skip to content
Bulutfon Ruby SDK
Ruby
Branch: develop
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
conf
examples
lib
spec
.gitignore
Gemfile
LICENSE.md
README.md
Rakefile
bulutfon_sdk.gemspec

README.md

Bulutfon Ruby SDK

Gem Version

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
You can’t perform that action at this time.