module Opensips::Pi
Constants
- VERSION
Public Class Methods
add(user, pass, domain=nil)
click to toggle source
Add a new OpenSIPS user.
@param user [String] @param pass [String] @param domain [String]
# File lib/opensips-pi.rb, line 51 def self.add(user, pass, domain=nil) call("#{bin} add #{identifier(user,domain).shellescape} #{pass.shellescape}") end
bin()
click to toggle source
Returns the OpenSIPS control tool, that is “opensipsctl” by default. You can customize this with {.bin=}.
@return [String]
# File lib/opensips-pi.rb, line 15 def self.bin @@bin || "opensipsctl" end
bin=(cmd)
click to toggle source
Customize the OpenSIPS control tool. See {.bin} for more information.
@example
Opensips::Pi.bin = "/usr/sbin/opensipsctl" Opensips::Pi.bin #=> "/usr/sbin/opensipsctl"
@param cmd [String] Path to OpenSIPS control tool.
# File lib/opensips-pi.rb, line 25 def self.bin=(cmd) @@bin = cmd end
logger()
click to toggle source
Returns an instance of Ruby’s {www.ruby-doc.org/stdlib-1.9.3/libdoc/logger/rdoc/Logger.html Logger} (by default) or a logger set with {.logger=}.
@return [Logger]
# File lib/opensips-pi.rb, line 33 def self.logger @@logger ||= Logger.new(STDOUT) end
logger=(klass)
click to toggle source
Customize the logger. See {.logger} for more information.
@example
Opensips::Pi.logger = Rails.logger
@param [Logger]
# File lib/opensips-pi.rb, line 42 def self.logger=(klass) @@logger = klass end
password(user, pass, domain=nil)
click to toggle source
Change user’s password.
@param user [String] @param pass [String] New password @param domain [String]
# File lib/opensips-pi.rb, line 68 def self.password(user, pass, domain=nil) call("#{bin} passwd #{identifier(user,domain).shellescape} #{pass.shellescape}") end
remove(user, domain=nil)
click to toggle source
Remove an user from OpenSIPS.
@param user [String] @param domain [String]
# File lib/opensips-pi.rb, line 59 def self.remove(user, domain=nil) call("#{bin} rm #{identifier(user,domain).shellescape}") end
Private Class Methods
call(cmd)
click to toggle source
# File lib/opensips-pi.rb, line 77 def self.call(cmd) out, err, code = Open3.capture3(cmd) logger.info("Opensips::Pi") { out } logger.error("Opensips::Pi") { err } [code.success?,out,err] end
identifier(user, domain)
click to toggle source
# File lib/opensips-pi.rb, line 73 def self.identifier(user, domain) domain ? "#{user}@#{domain}" : user end