Sha256: 6a6fb34fe3be35ddb77d841e2bc8a4b0b14a1f73fad5107281c2e60b50102757

Contents?: true

Size: 1.08 KB

Versions: 6

Compression:

Stored size: 1.08 KB

Contents

require 'rami'
class PBX
  include Rami
  
  @@sip_users = {}
  
  @@rami_server_thread = Thread.current
  
  @@rami_server = Rami::Server.new $HELPERS.manager_proxy
  @@rami_server.console = 1
  @@rami_server.run
  
  @@rami_client = Client.new @@rami_server
  @@rami_client.timeout = 10
  
  def self.rami_client() @@rami_client end
  
  $HUTDOWN.hook do
    @@rami_client.stop
  end
  
  def self.sip_users
    if !@@sip_users[:expiration] || @@sip_users[:expiration] <= Time.now
      sip_db = PBX.rami_client.command("database show SIP/Registry").first
      sip_db = sip_db[ sip_db.keys.select { |x| x.is_a? Fixnum }.first ]
      sip_db = sip_db.gsub( /--[A-Z ]+?--/ , '').strip
      users = sip_db.split "\n"
      users.collect! do |user|
        fields = user.split ':'
        { :username => fields[4],
          :ip => fields[1].strip,
          :port => fields[2],
          :address =>  fields[6] }
      end
      @@sip_users[:users] = users
      @@sip_users[:expiration] = 90.seconds.from_now
    end
    @@sip_users[:users]
  end
  def self.record channel, file, format, mix

  end
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
adhearsion-0.7.0 new_projects/helpers/manager_proxy.rb
adhearsion-0.7.1 new_projects/helpers/manager_proxy.rb
adhearsion-0.7.2 new_projects/helpers/manager_proxy.rb
adhearsion-0.7.4 apps/default/helpers/manager_proxy.rb
adhearsion-0.7.5 apps/default/helpers/manager_proxy.rb
adhearsion-0.7.3 new_projects/helpers/manager_proxy.rb