Class: Adhearsion::VoIP::Asterisk::AGI::Server

Inherits:
Object
  • Object
show all
Defined in:
lib/adhearsion/voip/asterisk/agi_server.rb

Defined Under Namespace

Classes: RubyServer

Constant Summary collapse

DEFAULT_OPTIONS =
{ :server_class => RubyServer, :port => 4573, :host => "0.0.0.0" }

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(options = {}) ⇒ Server

Returns a new instance of Server.



74
75
76
77
78
# File 'lib/adhearsion/voip/asterisk/agi_server.rb', line 74

def initialize(options = {})
  options                     = DEFAULT_OPTIONS.merge options
  @host, @port, @server_class = options.values_at(:host, :port, :server_class)
  @server                     = server_class.new(port, host)
end

Instance Attribute Details

#hostObject (readonly)

Returns the value of attribute host.



72
73
74
# File 'lib/adhearsion/voip/asterisk/agi_server.rb', line 72

def host
  @host
end

#portObject (readonly)

Returns the value of attribute port.



72
73
74
# File 'lib/adhearsion/voip/asterisk/agi_server.rb', line 72

def port
  @port
end

#serverObject (readonly)

Returns the value of attribute server.



72
73
74
# File 'lib/adhearsion/voip/asterisk/agi_server.rb', line 72

def server
  @server
end

#server_classObject (readonly)

Returns the value of attribute server_class.



72
73
74
# File 'lib/adhearsion/voip/asterisk/agi_server.rb', line 72

def server_class
  @server_class
end

Instance Method Details

#graceful_shutdownObject



85
86
87
88
89
90
91
92
93
94
95
96
97
98
# File 'lib/adhearsion/voip/asterisk/agi_server.rb', line 85

def graceful_shutdown
  if @shutting_down
    server.stop
    return
  end

  @shutting_down = true

  while server.connections > 0
    sleep 0.2
  end

  server.stop
end

#joinObject



108
109
110
# File 'lib/adhearsion/voip/asterisk/agi_server.rb', line 108

def join
  server.join
end

#shutdownObject



100
101
102
# File 'lib/adhearsion/voip/asterisk/agi_server.rb', line 100

def shutdown
  server.shutdown
end

#startObject



80
81
82
83
# File 'lib/adhearsion/voip/asterisk/agi_server.rb', line 80

def start
  server.audit = true
  server.start
end

#stopObject



104
105
106
# File 'lib/adhearsion/voip/asterisk/agi_server.rb', line 104

def stop
  server.stop
end