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