oversip 1.4.1 → 2.0.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -30,15 +30,15 @@ module OverSIP::Launcher
30
30
  if grandparent == $$
31
31
  # Master process will inmediatelly write in the ready_pipe its PID so we get
32
32
  # its PID.
33
- master_pid = nil
33
+ pid = nil
34
34
  begin
35
35
  ::Timeout.timeout(READY_PIPE_TIMEOUT/2) do
36
- master_pid = rd.gets("\n").to_i rescue nil
36
+ pid = rd.gets("\n").to_i rescue nil
37
37
  end
38
38
  rescue ::Timeout::Error
39
39
  fatal "master process didn't notify its PID within #{READY_PIPE_TIMEOUT/2} seconds"
40
40
  end
41
- unless master_pid
41
+ unless pid
42
42
  fatal "master process failed to start"
43
43
  end
44
44
 
@@ -56,14 +56,14 @@ module OverSIP::Launcher
56
56
  rescue ::Timeout::Error
57
57
  log_system_crit "master process is not ready within #{READY_PIPE_TIMEOUT/2} seconds, killing it..."
58
58
  begin
59
- ::Process.kill(:TERM, master_pid)
59
+ ::Process.kill(:TERM, pid)
60
60
  10.times do |i|
61
61
  sleep 0.05
62
- ::Process.wait(master_pid, ::Process::WNOHANG) rescue nil
63
- ::Process.kill(0, master_pid) rescue break
62
+ ::Process.wait(pid, ::Process::WNOHANG) rescue nil
63
+ ::Process.kill(0, pid) rescue break
64
64
  end
65
- ::Process.kill(0, master_pid)
66
- ::Process.kill(:KILL, master_pid) rescue nil
65
+ ::Process.kill(0, pid)
66
+ ::Process.kill(:KILL, pid) rescue nil
67
67
  rescue ::Errno::ESRCH
68
68
  end
69
69
  fatal "master process killed"
@@ -88,7 +88,7 @@ module OverSIP::Launcher
88
88
  configuration = ::OverSIP.configuration
89
89
 
90
90
  # Store the master process PID.
91
- ::OverSIP.master_pid = $$
91
+ ::OverSIP.pid = $$
92
92
 
93
93
  begin
94
94
  # Inmediatelly write into the ready_pipe so grandparent process reads it
@@ -96,31 +96,13 @@ module OverSIP::Launcher
96
96
  ready_pipe = options.delete(:ready_pipe)
97
97
  ready_pipe.write($$.to_s + "\n") if ready_pipe
98
98
 
99
- # I'm master process.
100
- if (syslogger_pid = fork) != nil
101
- ::OverSIP.syslogger_pid = syslogger_pid
102
- ::OverSIP::Logger.load_methods
103
-
104
- # Load all the libraries for the master process.
105
- require "oversip/master_process.rb"
106
-
107
- ::OverSIP::TLS.module_init
108
- ::OverSIP::SIP.module_init
109
- ::OverSIP::SIP::RFC3263.module_init
110
- ::OverSIP::WebSocket.module_init
111
- ::OverSIP::WebSocket::WsFraming.class_init
112
- ::OverSIP::WebSocket::WsSipApp.class_init
113
-
114
- # I'm the syslogger process.
115
- else
116
- # Close the pipe in the syslogger process.
117
- ready_pipe.close rescue nil
118
- ready_pipe = nil
119
-
120
- require "oversip/syslogger_process.rb"
121
- ::OverSIP::SysLoggerProcess.run options
122
- exit
123
- end
99
+ # Init modules.
100
+ ::OverSIP::TLS.module_init
101
+ ::OverSIP::SIP.module_init
102
+ ::OverSIP::SIP::RFC3263.module_init
103
+ ::OverSIP::WebSocket.module_init
104
+ ::OverSIP::WebSocket::WsFraming.class_init
105
+ ::OverSIP::WebSocket::WsSipApp.class_init
124
106
 
125
107
  @log_id = "launcher (master)"
126
108
 
@@ -152,7 +134,7 @@ module OverSIP::Launcher
152
134
  ::Fiber.new do
153
135
 
154
136
  # Run OverSIP::SystemEvents.on_initialize.
155
- log_system_notice "calling OverSIP::SystemEvents.on_initialize() method..."
137
+ log_system_debug "calling OverSIP::SystemEvents.on_initialize() method..."
156
138
  begin
157
139
  ::OverSIP::SystemEvents.on_initialize
158
140
  rescue ::Exception => e
@@ -161,7 +143,7 @@ module OverSIP::Launcher
161
143
  end
162
144
 
163
145
  # Run all the OverSIP::SystemCallbacks.on_started_callbacks.
164
- log_system_notice "executing OverSIP::SystemCallbacks.on_started_callbacks..."
146
+ log_system_debug "executing OverSIP::SystemCallbacks.on_started_callbacks..."
165
147
  ::OverSIP::SystemCallbacks.on_started_callbacks.each do |cb|
166
148
  begin
167
149
  cb.call
@@ -172,7 +154,7 @@ module OverSIP::Launcher
172
154
  end
173
155
 
174
156
  # Run OverSIP::SystemEvents.on_started within a fiber.
175
- log_system_notice "calling OverSIP::SystemEvents.on_started() method..."
157
+ log_system_debug "calling OverSIP::SystemEvents.on_started() method..."
176
158
  begin
177
159
  ::OverSIP::SystemEvents.on_started
178
160
  rescue ::Exception => e
@@ -180,7 +162,6 @@ module OverSIP::Launcher
180
162
  fatal e
181
163
  end
182
164
 
183
- log_system_notice "master process (PID #{$$}) ready"
184
165
  log_system_notice "#{::OverSIP::PROGRAM_NAME} #{::OverSIP::VERSION} running in background"
185
166
 
186
167
  # Write "ok" into the ready_pipe so grandparent process (launcher)
@@ -195,7 +176,8 @@ module OverSIP::Launcher
195
176
  $stdout.reopen("/dev/null")
196
177
  $stderr.reopen("/dev/null")
197
178
  ::OverSIP.daemonized = true
198
- # So update the logger to write to syslog.
179
+
180
+ # So update the logger to stop writting into stdout.
199
181
  ::OverSIP::Logger.load_methods
200
182
 
201
183
  # Set the EventMachine error handler.
@@ -458,12 +440,15 @@ module OverSIP::Launcher
458
440
  log_system_notice "#{signal.to_s.upcase} signal received, ignored"
459
441
  end
460
442
  rescue ::ArgumentError
461
- log_system_notice "cannot trap signal #{signal.to_s.upcase}, it could not exist in this system, ignoring it"
443
+ log_system_debug "cannot trap signal #{signal.to_s.upcase}, it could not exist in this system, ignoring it"
462
444
  end
463
445
  end
464
446
 
465
- # Special treatment for VTALRM signal (TODO: since it occurs too much).
466
- trap :VTALRM do
447
+ # Ruby 2.0 does not allow trapping VTALRM signal. For other cases ignore it.
448
+ begin
449
+ trap :VTALRM do
450
+ end
451
+ rescue ::ArgumentError
467
452
  end
468
453
 
469
454
  # Signal HUP reloads OverSIP system configuration.
@@ -554,12 +539,6 @@ module OverSIP::Launcher
554
539
  kill_stud_processes
555
540
  ::File.delete ::OverSIP.configuration[:tls][:full_cert] rescue nil
556
541
 
557
- # Wait a bit so pending log messages in the Posix MQ can be queued.
558
- sleep 0.1
559
- ::OverSIP::Logger.close
560
-
561
- kill_syslogger_process
562
-
563
542
  delete_pid_file
564
543
 
565
544
  # Exit by preventing any exception.
@@ -570,29 +549,12 @@ module OverSIP::Launcher
570
549
 
571
550
 
572
551
  def self.delete_pid_file
573
- return false unless ::OverSIP.master_pid
552
+ return false unless ::OverSIP.pid
574
553
 
575
554
  ::File.delete(::OverSIP.pid_file) rescue nil
576
555
  end
577
556
 
578
557
 
579
- def self.kill_syslogger_process
580
- return false unless ::OverSIP.master_pid
581
-
582
- begin
583
- ::Process.kill(:TERM, ::OverSIP.syslogger_pid)
584
- 10.times do |i|
585
- sleep 0.05
586
- ::Process.wait(::OverSIP.syslogger_pid, ::Process::WNOHANG) rescue nil
587
- ::Process.kill(0, ::OverSIP.syslogger_pid) rescue break
588
- end
589
- ::Process.kill(0, ::OverSIP.syslogger_pid)
590
- ::Process.kill(:KILL, ::OverSIP.syslogger_pid) rescue nil
591
- rescue ::Errno::ESRCH
592
- end
593
- end
594
-
595
-
596
558
  def self.set_user_group user, group
597
559
  uid = ::Etc.getpwnam(user).uid if user
598
560
  gid = ::Etc.getgrnam(group).gid if group
@@ -651,7 +613,7 @@ module OverSIP::Launcher
651
613
 
652
614
 
653
615
  def self.kill_stud_processes
654
- return false unless ::OverSIP.master_pid
616
+ return false unless ::OverSIP.pid
655
617
  return false unless ::OverSIP.stud_pids
656
618
 
657
619
  ::OverSIP.stud_pids.each do |pid|
@@ -1,30 +1,16 @@
1
1
  module OverSIP
2
2
 
3
3
  # Logging client module. Any class desiring to log messages must include (or extend) this module.
4
- # In order to identify itself in the logs, the class can define log_ig() method or set @log_id
4
+ # In order to identify itself in the logs, the class can define log_id() method or set @log_id
5
5
  # attribute.
6
6
  module Logger
7
7
 
8
- def self.init_logger_mq group=nil
9
- @@logger_mq = ::OverSIP::PosixMQ.create_queue({
10
- :name => ::OverSIP.syslogger_mq_name,
11
- :mode => :write,
12
- :maxmsg => 1000,
13
- :msgsize => 2000,
14
- :group => group
15
- })
16
- end
17
-
18
-
19
8
  def self.load_methods
20
- # When not yet daemonized, also log to syslog.
21
- if not ::OverSIP.daemonized?
22
- ::Syslog.close if ::Syslog.opened?
9
+ ::Syslog.close if ::Syslog.opened?
23
10
 
24
- syslog_options = ::Syslog::LOG_PID | ::Syslog::LOG_NDELAY
25
- syslog_facility = ::OverSIP::Syslog::SYSLOG_FACILITY_MAPPING[::OverSIP.configuration[:core][:syslog_facility]] rescue ::Syslog::LOG_DAEMON
26
- ::Syslog.open(::OverSIP.master_name, syslog_options, syslog_facility)
27
- end
11
+ syslog_options = ::Syslog::LOG_PID | ::Syslog::LOG_NDELAY
12
+ syslog_facility = ::OverSIP::Syslog::SYSLOG_FACILITY_MAPPING[::OverSIP.configuration[:core][:syslog_facility]] rescue ::Syslog::LOG_DAEMON
13
+ ::Syslog.open(::OverSIP.master_name, syslog_options, syslog_facility)
28
14
 
29
15
  begin
30
16
  @@threshold = ::OverSIP::Syslog::SYSLOG_SEVERITY_MAPPING[::OverSIP.configuration[:core][:syslog_level]]
@@ -34,46 +20,25 @@ module OverSIP
34
20
 
35
21
  $oversip_debug = ( @@threshold == 0 ? true : false )
36
22
 
37
- @@congested = false
38
-
39
- ::OverSIP::Syslog::SYSLOG_SEVERITY_MAPPING.each do |level, level_value|
23
+ ::OverSIP::Syslog::SYSLOG_SEVERITY_MAPPING.each do |level_str, level_value|
40
24
  method_str = "
41
- def log_system_#{level}(msg)
25
+ def log_system_#{level_str}(msg)
42
26
  "
43
27
 
44
- if ::OverSIP.syslogger_ready?
45
- method_str << "
46
- return false if @@threshold > #{level_value} || @@congested
47
- begin
48
- unless @@logger_mq.trysend ::OverSIP::Logger.syslog_system_msg2str(#{level_value}, msg, log_id), 0
49
- @@congested = true
50
- ::EM.add_timer(1) do
51
- @@logger_mq.trysend ::OverSIP::Logger.syslog_system_msg2str(4, \"logger message queue was full, some logs have been lost\", log_id), 1
52
- @@congested = false
53
- end
54
- end
55
- rescue ::Errno::EMSGSIZE
56
- @@logger_mq.trysend ::OverSIP::Logger.syslog_system_msg2str(4, \"too long message could not be logged\", log_id), 1 rescue nil
57
- rescue ::Exception => e
58
- @@logger_mq.trysend ::OverSIP::Logger.syslog_system_msg2str(4, \"unexpected logging error (\#{e.class}: \#{e.message})\", log_id), 1 rescue nil
59
- end
60
- "
61
- end
28
+ method_str << "
29
+ return false if @@threshold > #{level_value}
30
+
31
+ ::OverSIP::Syslog.log #{level_value}, msg, log_id, false
32
+ "
62
33
 
63
34
  if not ::OverSIP.daemonized?
64
- if %w{debug info notice}.include? level
35
+ if %w{debug info notice}.include? level_str
65
36
  method_str << "
66
- puts ::OverSIP::Logger.fg_system_msg2str('#{level}', msg, log_id)
67
- if not ::OverSIP.syslogger_ready?
68
- ::OverSIP::Syslog.log ::OverSIP::Logger.syslog_system_msg2str(#{level_value}, msg, log_id)
69
- end
70
- "
37
+ puts ::OverSIP::Logger.fg_system_msg2str('#{level_str}', msg, log_id)
38
+ "
71
39
  else
72
40
  method_str << "
73
- $stderr.puts ::OverSIP::Logger.fg_system_msg2str('#{level}', msg, log_id)
74
- if not ::OverSIP.syslogger_ready?
75
- ::OverSIP::Syslog.log ::OverSIP::Logger.syslog_system_msg2str(#{level_value}, msg, log_id)
76
- end
41
+ $stderr.puts ::OverSIP::Logger.fg_system_msg2str('#{level_str}', msg, log_id)
77
42
  "
78
43
  end
79
44
  end
@@ -83,75 +48,31 @@ module OverSIP
83
48
  self.module_eval method_str
84
49
 
85
50
 
86
- if ::OverSIP.syslogger_ready?
87
- # User logs.
88
- method_str = "
89
- def log_#{level}(msg)
90
- return false if @@threshold > #{level_value} || @@congested
91
- begin
92
- unless @@logger_mq.trysend ::OverSIP::Logger.syslog_user_msg2str(#{level_value}, msg, log_id), 0
93
- @@congested = true
94
- ::EM.add_timer(1) do
95
- @@logger_mq.trysend ::OverSIP::Logger.syslog_user_msg2str(4, \"logger message queue was full, some logs have been lost\", log_id), 1
96
- @@congested = false
97
- end
98
- end
99
- rescue ::Errno::EMSGSIZE
100
- @@logger_mq.trysend ::OverSIP::Logger.syslog_user_msg2str(4, \"too long message could not be logged\", log_id), 1 rescue nil
101
- rescue ::Exception => e
102
- @@logger_mq.trysend ::OverSIP::Logger.syslog_user_msg2str(4, \"unexpected logging error (\#{e.class}: \#{e.message})\", log_id), 1 rescue nil
103
- end
104
- end
105
- "
106
-
107
- self.module_eval method_str
108
- end
51
+ # User logs.
52
+ method_str = "
53
+ def log_#{level_str}(msg)
54
+ return false if @@threshold > #{level_value}
109
55
 
110
- end # .each
111
- end
56
+ ::OverSIP::Syslog.log #{level_value}, msg, log_id, true
57
+ end
58
+ "
112
59
 
113
- # Generate nice log messages. It accepst three parameters:
114
- # - level_value: Integer representing the log level.
115
- # - msg: the String or Exception to be logged.
116
- # - log_id: a String helping to identify the generator of this log message.
117
- def self.syslog_system_msg2str(level_value, msg, log_id)
118
- case msg
119
- when ::String
120
- level_value.to_s << "<" << log_id << "> " << msg
121
- when ::Exception
122
- "#{level_value}<#{log_id}> #{msg.message} (#{msg.class })\n#{(msg.backtrace || [])[0..3].join("\n")}"
123
- else
124
- level_value.to_s << "<" << log_id << "> " << msg.inspect
125
- end
126
- end
60
+ self.module_eval method_str
127
61
 
128
- def self.syslog_user_msg2str(level_value, msg, log_id)
129
- case msg
130
- when ::String
131
- level_value.to_s << "<" << log_id << "> [user] " << msg
132
- when ::Exception
133
- "#{level_value}<#{log_id}> [user] #{msg.message} (#{msg.class })\n#{(msg.backtrace || [])[0..3].join("\n")}"
134
- else
135
- level_value.to_s << "<" << log_id << "> [user] " << msg.inspect
136
- end
62
+ end # .each
137
63
  end
138
64
 
139
- def self.fg_system_msg2str(level, msg, log_id)
65
+ def self.fg_system_msg2str(level_str, msg, log_id)
140
66
  case msg
141
67
  when ::String
142
- "#{level.upcase}: <#{log_id}> " << msg
68
+ "#{level_str.upcase}: <#{log_id}> " << msg
143
69
  when ::Exception
144
- "#{level.upcase}: <#{log_id}> #{msg.message} (#{msg.class })\n#{(msg.backtrace || [])[0..3].join("\n")}"
70
+ "#{level_str.upcase}: <#{log_id}> #{msg.message} (#{msg.class })\n#{(msg.backtrace || [])[0..3].join("\n")}"
145
71
  else
146
- "#{level.upcase}: <#{log_id}> " << msg.inspect
72
+ "#{level_str.upcase}: <#{log_id}> " << msg.inspect
147
73
  end
148
74
  end
149
75
 
150
- def self.close
151
- @@logger_mq.close rescue nil
152
- @@logger_mq.unlink rescue nil
153
- end
154
-
155
76
  # Default logging identifier is the class name. If log_id() method is redefined by the
156
77
  # class including this module, or it sets @log_id, then such a value takes preference.
157
78
  def log_id
@@ -101,7 +101,7 @@ module OverSIP::SIP
101
101
  if enabled
102
102
  ::EM.start_server(ip, port, klass) do |conn|
103
103
  conn.post_connection
104
- conn.set_comm_inactivity_timeout 300
104
+ conn.set_comm_inactivity_timeout 7200
105
105
  end
106
106
  end
107
107
 
@@ -119,7 +119,7 @@ module OverSIP::SIP
119
119
  if enabled
120
120
  ::EM.start_server(ip, port, klass) do |conn|
121
121
  conn.post_connection
122
- conn.set_comm_inactivity_timeout 300
122
+ conn.set_comm_inactivity_timeout 7200
123
123
  end
124
124
  end
125
125
 
@@ -139,7 +139,7 @@ module OverSIP::SIP
139
139
  if enabled
140
140
  ::EM.start_server(ip, port, klass) do |conn|
141
141
  conn.post_connection
142
- conn.set_comm_inactivity_timeout 300
142
+ conn.set_comm_inactivity_timeout 7200
143
143
  end
144
144
  end
145
145
 
@@ -159,7 +159,7 @@ module OverSIP::SIP
159
159
  if enabled
160
160
  ::EM.start_server(ip, port, klass) do |conn|
161
161
  conn.post_connection
162
- conn.set_comm_inactivity_timeout 300
162
+ conn.set_comm_inactivity_timeout 7200
163
163
  end
164
164
  end
165
165
 
@@ -179,7 +179,7 @@ module OverSIP::SIP
179
179
  if enabled
180
180
  ::EM.start_server(ip, port, klass) do |conn|
181
181
  conn.post_connection
182
- conn.set_comm_inactivity_timeout 300
182
+ conn.set_comm_inactivity_timeout 7200
183
183
  end
184
184
  end
185
185
 
@@ -199,7 +199,7 @@ module OverSIP::SIP
199
199
  if enabled
200
200
  ::EM.start_server(ip, port, klass) do |conn|
201
201
  conn.post_connection
202
- conn.set_comm_inactivity_timeout 300
202
+ conn.set_comm_inactivity_timeout 7200
203
203
  end
204
204
  end
205
205
 
@@ -218,4 +218,4 @@ module OverSIP::SIP
218
218
 
219
219
  end
220
220
 
221
- end
221
+ end
@@ -27,26 +27,36 @@ module OverSIP
27
27
  "emerg" => 7
28
28
  }
29
29
 
30
- def self.log string
31
- level = string.getbyte 0
32
- msg = string[1..-1].gsub(/%/,"%%").gsub(/\x00/,"")
30
+ def self.log level_value, msg, log_id, user
31
+ user = user ? " [user] " : " "
33
32
 
34
- case level
35
- when 48 # "0" =>DEBUG
33
+ msg = case msg
34
+ when ::String
35
+ "<#{log_id}>#{user}#{msg}"
36
+ when ::Exception
37
+ "<#{log_id}>#{user}#{msg.message} (#{msg.class })\n#{(msg.backtrace || [])[0..3].join("\n")}"
38
+ else
39
+ "<#{log_id}>#{user}#{msg.inspect}"
40
+ end
41
+
42
+ msg = msg.gsub(/%/,"%%").gsub(/\x00/,"")
43
+
44
+ case level_value
45
+ when 0
36
46
  ::Syslog.debug sprintf("%7s %s", "DEBUG:", msg)
37
- when 49 # "1" => INFO
47
+ when 1
38
48
  ::Syslog.info sprintf("%7s %s", "INFO:", msg)
39
- when 50 # "2" => NOTICE
49
+ when 2
40
50
  ::Syslog.notice sprintf("%7s %s", "NOTICE:", msg)
41
- when 51 # "3" => WARN
51
+ when 3
42
52
  ::Syslog.warning sprintf("%7s %s", "WARN:", msg)
43
- when 52 # "4" => ERR
53
+ when 4
44
54
  ::Syslog.err sprintf("%7s %s", "ERROR:", msg)
45
- when 53 # "5" => CRIT
55
+ when 5
46
56
  ::Syslog.crit sprintf("%7s %s", "CRIT:", msg)
47
- when 54 # "6" => ALERT
57
+ when 6
48
58
  ::Syslog.alert sprintf("%7s %s", "ALERT:", msg)
49
- when 55 # "7" => EMERG
59
+ when 7
50
60
  ::Syslog.emerg sprintf("%7s %s", "EMERG:", msg)
51
61
  else # Shouldn't occur.
52
62
  ::Syslog.err sprintf("%7s %s", "UNKNOWN:", msg)
@@ -3,9 +3,9 @@
3
3
  module OverSIP
4
4
 
5
5
  module Version
6
- MAJOR = 1
7
- MINOR = 4
8
- TINY = 1
6
+ MAJOR = 2
7
+ MINOR = 0
8
+ TINY = 0
9
9
  DEVEL = nil # Set to nil for stable releases.
10
10
  end
11
11
 
@@ -15,7 +15,7 @@ module OverSIP
15
15
  AUTHOR = "Inaki Baz Castillo"
16
16
  AUTHOR_EMAIL = "ibc@aliax.net"
17
17
  HOMEPAGE = "http://www.oversip.net"
18
- year = "2012-2013"
19
- DESCRIPTION = "#{PROGRAM_NAME} #{VERSION}\n#{HOMEPAGE}\n#{year}, #{AUTHOR} <#{AUTHOR_EMAIL}>\nSoftware by Versatica: http://www.versatica.com"
18
+ year = "2012-2014"
19
+ DESCRIPTION = "#{PROGRAM_NAME} #{VERSION}\n#{HOMEPAGE}\n#{year}, #{AUTHOR} <#{AUTHOR_EMAIL}>"
20
20
 
21
21
  end
@@ -63,7 +63,7 @@ module OverSIP::WebSocket
63
63
  if enabled
64
64
  ::EM.start_server(ip, port, klass) do |conn|
65
65
  conn.post_connection
66
- conn.set_comm_inactivity_timeout 300
66
+ conn.set_comm_inactivity_timeout 7200
67
67
  end
68
68
  end
69
69
 
@@ -81,7 +81,7 @@ module OverSIP::WebSocket
81
81
  if enabled
82
82
  ::EM.start_server(ip, port, klass) do |conn|
83
83
  conn.post_connection
84
- conn.set_comm_inactivity_timeout 300
84
+ conn.set_comm_inactivity_timeout 7200
85
85
  end
86
86
  end
87
87
 
@@ -101,7 +101,7 @@ module OverSIP::WebSocket
101
101
  if enabled
102
102
  ::EM.start_server(ip, port, klass) do |conn|
103
103
  conn.post_connection
104
- conn.set_comm_inactivity_timeout 300
104
+ conn.set_comm_inactivity_timeout 7200
105
105
  end
106
106
  end
107
107
 
@@ -121,7 +121,7 @@ module OverSIP::WebSocket
121
121
  if enabled
122
122
  ::EM.start_server(ip, port, klass) do |conn|
123
123
  conn.post_connection
124
- conn.set_comm_inactivity_timeout 300
124
+ conn.set_comm_inactivity_timeout 7200
125
125
  end
126
126
  end
127
127
 
@@ -141,7 +141,7 @@ module OverSIP::WebSocket
141
141
  if enabled
142
142
  ::EM.start_server(ip, port, klass) do |conn|
143
143
  conn.post_connection
144
- conn.set_comm_inactivity_timeout 300
144
+ conn.set_comm_inactivity_timeout 7200
145
145
  end
146
146
  end
147
147
 
@@ -161,7 +161,7 @@ module OverSIP::WebSocket
161
161
  if enabled
162
162
  ::EM.start_server(ip, port, klass) do |conn|
163
163
  conn.post_connection
164
- conn.set_comm_inactivity_timeout 300
164
+ conn.set_comm_inactivity_timeout 7200
165
165
  end
166
166
  end
167
167
 
@@ -180,4 +180,4 @@ module OverSIP::WebSocket
180
180
 
181
181
  end
182
182
 
183
- end
183
+ end