class WiFiPortal_1

Attributes

ard_api_gw_connector_wifi[RW]
hua_controller_connector[RW]
iwag1_host[RW]
iwag_connector1[RW]
iwag_connector2[RW]
iwag_password[RW]
iwag_telnet_connector[RW]
iwag_username[RW]
mtik_api_connector[RW]
mtik_control_ips_get[RW]
mtik_password[RW]
mtik_user[RW]

Public Class Methods

new(apigw_wsdl, apigw_endpoint, apigw_namespace, apigw_wsse_aut_log, apigw_wsse_aut_pass, iwag1_host, iwag1_username, iwag1_password, iwag1_port, mtik_control_ips_get, mtik_user, mtik_password, hua_wlc_1_ip, hua_wlc_2_ip, hua_wlc_login, hua_wlc_password, iwag2_host, iwag2_username, iwag2_password, iwag2_port ) click to toggle source
# File lib/freewifi/general/wifi_portal_procedures.rb, line 26
def initialize(apigw_wsdl,
               apigw_endpoint,
               apigw_namespace,
               apigw_wsse_aut_log,
               apigw_wsse_aut_pass,
               iwag1_host,
               iwag1_username,
               iwag1_password,
               iwag1_port,
               mtik_control_ips_get,
               mtik_user,
               mtik_password,
               hua_wlc_1_ip,
               hua_wlc_2_ip,
               hua_wlc_login,
               hua_wlc_password,
               iwag2_host,
               iwag2_username,
               iwag2_password,
               iwag2_port
)
  @iwag_telnet_connector = CSRtelnet_1.new(iwag1_host, iwag1_username, iwag1_password)
  @ard_api_gw_connector_wifi = Savon.client do
    #ssl_verify_mode :none
    wsdl apigw_wsdl
    endpoint apigw_endpoint
    namespace apigw_namespace
    wsse_auth(apigw_wsse_aut_log, apigw_wsse_aut_pass, :digest)
    encoding 'UTF-8'
    headers = {"Accept-Encoding" => "gzip, deflate", "Connection" => "Keep-Alive"}
  end

  @iwag1_host = iwag1_host
  @iwag_username = iwag1_username
  @iwag_password = iwag1_password

  @mtik_api_connector = NEWhubWifiApi_1.new(mtik_control_ips_get, mtik_user, mtik_password)

  @hua_controller_connector = HuaWifi_1.new(hua_wlc_1_ip, hua_wlc_2_ip, hua_wlc_login, hua_wlc_password)

  @iwag_connector1 = IwagRequester.new(iwag1_host, iwag1_username, iwag1_password, iwag1_port)
  @iwag_connector2 = IwagRequester.new(iwag2_host, iwag2_username, iwag2_password, iwag2_port)

end

Public Instance Methods

get_subs_add_info3_1(ipaddress, access_interface) click to toggle source
# File lib/freewifi/general/wifi_portal_procedures.rb, line 115
def get_subs_add_info3_1(ipaddress, access_interface)


  answer = ""

  #region get additional information
  if access_interface != "false"

    subscribers_mac = ""

    begin

      dump =""
      connection = Net::Telnet.new("Host" => "172.24.247.183", "Timeout" => false, "Prompt" => /.*#/) {|str|}
      connection.login({"Name" => iwag_username, "Password" => iwag_password, "LoginPrompt" => /Username:/}) {|str|}
      connection.cmd("show ip dhcp binding #{ipaddress}") {
          |c|
        dump << c
      }
      connection.close
      as = dump.split("\n")
      reer = as[4].split(" ")

      ma = reer[1].to_s.upcase
      pos = ma[0]+ma[1]
      if pos=="01"
        subscribers_mac = ma[2]+ma[3]+":"+ma[5]+ma[6]+":"+ma[7]+ma[8]+":"+ma[10]+ma[11]+":"+ma[12]+ma[13]+":"+ma[15]+ma[16]
      else
        subscribers_mac = ma[0]+ma[1]+":"+ma[2]+ma[3]+":"+ma[5]+ma[6]+":"+ma[7]+ma[8]+":"+ma[10]+ma[11]+":"+ma[12]+ma[13]
      end

    rescue
      subscribers_mac = "unknown"
    end


    begin
      thr0 = Thread.new do
        begin
          p mikr_info5 = mtik_api_connector.get_info_subs_from_mik_1(subscribers_mac, "172.24.247.15")
          splitting5 = mikr_info5.split("---")
          if splitting5[1] != "not on mikrotik controller" && splitting5[1]!="unknown" && splitting5[1]!=nil
            answer = mikr_info5
          end
        rescue
          p "thr1 wrong"
        end
      end
    rescue
      p "thread 0 failed"
    end


    begin
      thr1 = Thread.new do
        begin
          p mikr_info7 = mtik_api_connector.get_info_subs_from_mik_1(subscribers_mac, "172.24.214.155")
          splitting7 = mikr_info7.split("---")
          if splitting7[1] != "not on mikrotik controller" && splitting7[1]!="unknown" && splitting7[1]!=nil
            answer = mikr_info7
          end
        rescue
          p "thr1 wrong"
        end
      end
    rescue
      p "thread 1 failed"
    end


    begin
      thr2 = Thread.new do
        begin
          p mikr_info9 = mtik_api_connector.get_info_subs_from_mik_1(subscribers_mac, "172.24.214.140")
          splitting9 = mikr_info9.split("---")
          if splitting9[1] != "not on mikrotik controller" && splitting9[1]!="unknown" && splitting9[1]!=nil
            answer = mikr_info9
          end
        rescue
          p "thr2 wrong"
        end
      end
    rescue
      p "thread 2 failed"
    end


    begin
      thr3 = Thread.new do
        begin
          p mikr_info9 = mtik_api_connector.get_info_subs_from_mik_1(subscribers_mac, "172.24.214.105")
          splitting9 = mikr_info9.split("---")
          if splitting9[1] != "not on mikrotik controller" && splitting9[1]!="unknown" && splitting9[1]!=nil
            answer = mikr_info9
          end
        rescue
          p "thr3 wrong"
        end
      end
    rescue
      p "thread 3 failed"
    end

    begin
      thr4 = Thread.new do
        begin
          p mikr_info9 = mtik_api_connector.get_info_subs_from_mik_1(subscribers_mac, "172.24.223.105")
          splitting9 = mikr_info9.split("---")
          if splitting9[1] != "not on mikrotik controller" && splitting9[1]!="unknown" && splitting9[1]!=nil
            answer = mikr_info9
          end
        rescue
          p "thr4 wrong"
        end
      end
    rescue
      p "thread 4 failed"
    end


    thr0.join
    thr1.join
    thr2.join
    thr3.join
    thr4.join

    if answer==""
      answer = subscribers_mac + "---" + "not on mikrotik controller" + "---" + "unknown" + "---" + "unknown" + "---"+ "unknown" + "---"+ "unknown" + "---"+ "unknown" + "---"+ "unknown" + "---"+ "unknown" + "---"+ "unknown"
    end

  end


  return answer

end
get_subs_add_info4new_1(access_interface, subscribers_mac) click to toggle source
# File lib/freewifi/general/wifi_portal_procedures.rb, line 253
def get_subs_add_info4new_1(access_interface, subscribers_mac)

  capsman_list = [
      "172.24.247.15",
      "172.24.214.155",
      "172.24.214.140",
      "172.24.214.105",
      "172.24.223.105"
  ]

  answer = ""

  #region get additional information
  if access_interface != "false"

    p subscribers_mac

    threads_mikro_wlc = []
    capsman_list.each do |capsman|
      threads_mikro_wlc << Thread.new do
        begin
          p mikr_info5 = mtik_api_connector.get_info_subs_from_mik_1(subscribers_mac, capsman)
          splitting5 = mikr_info5.split("---")
          if splitting5[1] != "not on mikrotik controller" && splitting5[1]!="unknown" && splitting5[1]!=nil
            answer = mikr_info5
            p answer
          end
        rescue
          p "thr0 wrong"
        end
      end
    end
    threads_mikro_wlc.each(&:join)

    if answer==""
      answer = subscribers_mac + "---" + "not on mikrotik controller" + "---" + "unknown" + "---" + "unknown" + "---"+ "unknown" + "---"+ "unknown" + "---"+ "unknown" + "---"+ "unknown" + "---"+ "unknown" + "---"+ "unknown"
    end
  end
  answer
end
get_subs_info_ret_ssh_1(ip_address) click to toggle source
# File lib/freewifi/general/wifi_portal_procedures.rb, line 674
def get_subs_info_ret_ssh_1(ip_address)

  input_params = {:ip_address => ip_address}
  output_params = {}

  begin
    ipaddr_transformed = IPAddr.new ip_address
    ipaddr_network = ipaddr_transformed.mask(17).to_s

    if ipaddr_network == "100.71.0.0" #iwag old

      output_params = self.proc_100_71_0_0_ssh(ip_address)

    elsif ipaddr_network == "100.75.0.0" #min11iwag2

      output_params = self.proc_100_75_0_0_ssh(ip_address)

    elsif ipaddr_network == "100.70.0.0" #min11iwag1

      output_params = self.proc_100_70_0_0_ssh(ip_address)

    else
      output_params = {:code => 404, :result => "ERROR. Unknown IP Pool."}
    end

  rescue
    output_params = {:code => 500, :result => "ERROR. Something wrong.", :body => "SOAP mts_wifi_get_subs_info_return errorMethod unknown error"}
  end

  output_params

end
get_subs_info_return_1(ip_address) click to toggle source
# File lib/freewifi/general/wifi_portal_procedures.rb, line 640
def get_subs_info_return_1(ip_address)

  input_params = {:ip_address => ip_address}
  output_params = {}

  begin
    ipaddr_transformed = IPAddr.new ip_address
    ipaddr_network = ipaddr_transformed.mask(17).to_s

    if ipaddr_network == "100.71.0.0" #iwag old

      output_params = self.proc_100_71_0_0(ip_address)

    elsif ipaddr_network == "100.75.0.0" #min11iwag2

      output_params = self.proc_100_75_0_0(ip_address)

    elsif ipaddr_network == "100.70.0.0" #min11iwag1

      output_params = self.proc_100_70_0_0(ip_address)

    else
      output_params = {:code => 404, :result => "ERROR. Unknown IP Pool."}
    end

  rescue
    output_params = {:code => 500, :result => "ERROR. Something wrong.", :body => "SOAP mts_wifi_get_subs_info_return errorMethod unknown error"}
  end

  output_params

end
proc_100_70_0_0(ip_address) click to toggle source
# File lib/freewifi/general/wifi_portal_procedures.rb, line 533
def proc_100_70_0_0(ip_address)
  p "min11iwag1"

  begin
    result_iwag = self.python_mac_iwag1_1(ip_address)
    p result_iwag
    if result_iwag.split(" ")[0]!="Unknown"
      ppp = result_iwag.split(" ")

      subs_mac = ppp[0]
      access_int = ppp[1]
      access_poi = ppp[2]
      ssid_a = ppp[3]


      if access_int=='GigabitEthernet4.3002'
        access_poi = "belrw_4_HP_ap1-1"
        ssid_a = "BelRW_WiFi"
      elsif access_int=='GigabitEthernet4.3005'
        access_poi = "belbiz-AP1-1"
        ssid_a = "IMAGURU_GUEST"
      end

      if access_poi == "Unknown" && ssid_a == "Unknown" && subs_mac != "Unknown"
        frommikrotik = self.get_subs_add_info4new_1(access_int, subs_mac)
        splitting5 = frommikrotik.split("---")
        p access_poi = splitting5[1]
        p ssid_a = splitting5[2]
        p tx_rate_se = splitting5[3]
        p tx_rat = splitting5[4]
        p rx_rat = splitting5[5]
        p rx_signa = splitting5[6]
        p uptim = splitting5[7]
        p packet = splitting5[8]
        p byt = splitting5[9]
      end

      tx_rate_se = "unknown"
      tx_rat = "unknown"
      rx_rat = "unknown"
      rx_signa = "unknown"
      uptim = "unknown"
      packet = "unknown"
      byt = "unknown"

      if subs_mac=="unknown"
        output_params = {:code => 505, :result => "ERROR. Something wrong."}
      end

      if subs_mac==""
        output_params = {:code => 505, :result => "ERROR. Something wrong."}
      end

      mess = {:iwag_access_interface => access_int,
              :subscribers_mac => subs_mac,
              :access_point => access_poi,
              :ssid_ap => ssid_a,
              :apid => "unknown",
              :statistics =>
                  {:tx_rate_set => tx_rate_se,
                   :tx_rate => tx_rat,
                   :rx_rate => rx_rat,
                   :rx_signal => rx_signa,
                   :uptime => uptim,
                   :packets => packet,
                   :bytes => byt}
      }
      #           logger.info "HAproxy #{request.remote_ip}, request device real ip: #{request.headers['X-Client']}, ipaddressinputparameter: #{ip_address} recieved from mts_wifi_get_subs_info_return procedure of wifi_portal_controller  such information as: #{mess.to_xml}"
      output_params = {:code => 200, :result => "Request completed", :body => {:message => mess}}
      p output_params

    else

      mess = {:iwag_access_interface => "unknown",
              :subscribers_mac => "unknown",
              :access_point => "unknown",
              :ssid_ap => "unknown",
              :apid => "unknown",
              :statistics =>
                  {:tx_rate_set => "unknown",
                   :tx_rate => "unknown",
                   :rx_rate => "unknown",
                   :rx_signal => "unknown",
                   :uptime => "unknown",
                   :packets => "unknown",
                   :bytes => "unknown"}
      }

      #           logger.info "HAproxy #{request.remote_ip}, request device real ip: #{request.headers['X-Client']}, ipaddressinputparameter: #{ip_address} recieved from mts_wifi_get_subs_info_return procedure of wifi_portal_controller  such information as: #{mess.to_xml}"

      output_params = {:code => 405, :result => "ERROR. MAC address not found on IWAG."}

      #render :soap => mess

    end
  rescue
    puts 'SOAP mts_wifi_get_subs_info_return errorMethod'
    output_params = {:code => 505, :result => "ERROR. Something wrong."}
  end

  output_params

  ####

end
proc_100_70_0_0_ssh(ip_address) click to toggle source
# File lib/freewifi/general/wifi_portal_procedures.rb, line 947
def proc_100_70_0_0_ssh(ip_address)
  p "min11iwag1"

  begin
    result_iwag = self.ssh_mac_iwag1_1(ip_address)
    p result_iwag
    if result_iwag.split(" ")[0]!="Unknown"
      ppp = result_iwag.split(" ")

      subs_mac = ppp[0]
      access_int = ppp[1]
      access_poi = ppp[2]
      ssid_a = ppp[3]


      if access_int=='GigabitEthernet4.3002'
        access_poi = "belrw_4_HP_ap1-1"
        ssid_a = "BelRW_WiFi"
      elsif access_int=='GigabitEthernet4.3005'
        access_poi = "belbiz-AP1-1"
        ssid_a = "IMAGURU_GUEST"
      end

      if access_poi == "Unknown" && ssid_a == "Unknown" && subs_mac != "Unknown"
        frommikrotik = self.get_subs_add_info4new_1(access_int, subs_mac)
        splitting5 = frommikrotik.split("---")
        p access_poi = splitting5[1]
        p ssid_a = splitting5[2]
        p tx_rate_se = splitting5[3]
        p tx_rat = splitting5[4]
        p rx_rat = splitting5[5]
        p rx_signa = splitting5[6]
        p uptim = splitting5[7]
        p packet = splitting5[8]
        p byt = splitting5[9]
      end

      tx_rate_se = "unknown"
      tx_rat = "unknown"
      rx_rat = "unknown"
      rx_signa = "unknown"
      uptim = "unknown"
      packet = "unknown"
      byt = "unknown"

      if subs_mac=="unknown"
        output_params = {:code => 505, :result => "ERROR. Something wrong."}
      end

      if subs_mac==""
        output_params = {:code => 505, :result => "ERROR. Something wrong."}
      end

      mess = {:iwag_access_interface => access_int,
              :subscribers_mac => subs_mac,
              :access_point => access_poi,
              :ssid_ap => ssid_a,
              :apid => "unknown",
              :statistics =>
                  {:tx_rate_set => tx_rate_se,
                   :tx_rate => tx_rat,
                   :rx_rate => rx_rat,
                   :rx_signal => rx_signa,
                   :uptime => uptim,
                   :packets => packet,
                   :bytes => byt}
      }
      #           logger.info "HAproxy #{request.remote_ip}, request device real ip: #{request.headers['X-Client']}, ipaddressinputparameter: #{ip_address} recieved from mts_wifi_get_subs_info_return procedure of wifi_portal_controller  such information as: #{mess.to_xml}"
      output_params = {:code => 200, :result => "Request completed", :body => {:message => mess}}
      p output_params

    else

      mess = {:iwag_access_interface => "unknown",
              :subscribers_mac => "unknown",
              :access_point => "unknown",
              :ssid_ap => "unknown",
              :apid => "unknown",
              :statistics =>
                  {:tx_rate_set => "unknown",
                   :tx_rate => "unknown",
                   :rx_rate => "unknown",
                   :rx_signal => "unknown",
                   :uptime => "unknown",
                   :packets => "unknown",
                   :bytes => "unknown"}
      }

      #           logger.info "HAproxy #{request.remote_ip}, request device real ip: #{request.headers['X-Client']}, ipaddressinputparameter: #{ip_address} recieved from mts_wifi_get_subs_info_return procedure of wifi_portal_controller  such information as: #{mess.to_xml}"

      output_params = {:code => 405, :result => "ERROR. MAC address not found on IWAG."}

      #render :soap => mess

    end
  rescue
    puts 'SOAP mts_wifi_get_subs_info_return errorMethod'
    output_params = {:code => 505, :result => "ERROR. Something wrong."}
  end

  output_params

  ####

end
proc_100_71_0_0(ip_address) click to toggle source
# File lib/freewifi/general/wifi_portal_procedures.rb, line 294
def proc_100_71_0_0(ip_address)
  begin
    p access_int = iwag_telnet_connector.return_iwag_access_interface_1(ip_address)

    ip_a = ip_address

    access_poi = "unknown"
    ssid_a = "unknown"
    tx_rate_se = "unknown"
    tx_rat = "unknown"
    rx_rat = "unknown"
    rx_signa = "unknown"
    uptim = "unknown"
    packet = "unknown"
    byt = "unknown"

    if access_int == "Tunnel5"
      mikr_info2 = self.get_subs_add_info3_1(ip_address, access_int)
      splitting2 = mikr_info2.split("---")
      subs_mac = splitting2[0]
      access_poi = "belrw_3_Cisco_ap1-1"
      ssid_a = "BelRW_WiFi"
      tx_rate_se = "unknown"
      tx_rat = "unknown"
      rx_rat = "unknown"
      rx_signa = "unknown"
      uptim = "unknown"
      packet = "unknown"
      byt = "unknown"
    elsif access_int == "GigabitEthernet2.4008"
      mikr_info3 = self.get_subs_add_info3_1(ip_address, access_int)
      splitting3 = mikr_info3.split("---")
      subs_mac = splitting3[0]
      access_poi = "belrw_4_HP_ap1-1"
      ssid_a = "BelRW_WiFi"
      tx_rate_se = "unknown"
      tx_rat = "unknown"
      rx_rat = "unknown"
      rx_signa = "unknown"
      uptim = "unknown"
      packet = "unknown"
      byt = "unknown"
    elsif access_int == "Tunnel9"
      subs_mac = iwag_telnet_connector.get_subs_mac2_1(ip_address)
      p resp1 = hua_controller_connector.get_sub_info_1(subs_mac)
      p resp=resp1.split(",,,")

      p access_poi = resp[1]
      p ssid_a = resp[2]
      p tx_rate_se = resp[3]
      p tx_rat = resp[4]
      p rx_rat = resp[5]
      p rx_signa = resp[6]
      p uptim = resp[7]
      p packet = resp[8]
      p byt = resp[9]
    elsif access_int == "Tunnel16"
      subs_mac = iwag_telnet_connector.get_subs_mac2_1(ip_address)
      p resp1 = hua_controller_connector.get_sub_info2_1(subs_mac)
      p resp=resp1.split(",,,")

      p access_poi = resp[1]
      p ssid_a = resp[2]
      p tx_rate_se = resp[3]
      p tx_rat = resp[4]
      p rx_rat = resp[5]
      p rx_signa = resp[6]
      p uptim = resp[7]
      p packet = resp[8]
      p byt = resp[9]
    else
      p "before get info"
      p mikr_info5 = self.get_subs_add_info3_1(ip_address, access_int)
      p "after get info"
      splitting5 = mikr_info5.split("---")
      p subs_mac = splitting5[0]

      p access_poi = splitting5[1]
      p ssid_a = splitting5[2]
      p tx_rate_se = splitting5[3]
      p tx_rat = splitting5[4]
      p rx_rat = splitting5[5]
      p rx_signa = splitting5[6]
      p uptim = splitting5[7]
      p packet = splitting5[8]
      p byt = splitting5[9]


      if access_poi==nil || access_poi=="" || access_poi=="unknown"
        access_poi = "not on mikrotik controller"
      end

      if ssid_a==nil || ssid_a=="" || ssid_a=="unknown"
        ssid_a = "unknown"
        tx_rate_se = "unknown"
        tx_rat = "unknown"
        rx_rat = "unknown"
        rx_signa = "unknown"
        uptim = "unknown"
        packet = "unknown"
        byt = "unknown"
      end

    end

    if subs_mac=="unknown"
      output_params = {:code => 505, :result => "ERROR. Something wrong."}
    end

    if subs_mac==""
      subs_mac="unknown"
    end


    mess = {:iwag_access_interface => access_int,
            :subscribers_mac => subs_mac,
            :access_point => access_poi,
            :ssid_ap => ssid_a,
            :apid => "unknown",
            :statistics =>
                {:tx_rate_set => tx_rate_se,
                 :tx_rate => tx_rat,
                 :rx_rate => rx_rat,
                 :rx_signal => rx_signa,
                 :uptime => uptim,
                 :packets => packet,
                 :bytes => byt}
    }
    #         logger.info "HAproxy #{request.remote_ip}, request device real ip: #{request.headers['X-Client']}, ipaddressinputparameter: #{ip_address} recieved from mts_wifi_get_subs_info_return procedure of wifi_portal_controller  such information as: #{mess.to_xml}"
    output_params = {:code => 200, :result => "Request completed", :body => {:message => mess}}
  rescue

    puts 'SOAP mts_wifi_get_subs_info_return errorMethod'
    output_params = {:code => 505, :result => "ERROR. Something wrong."}
  end
  output_params
end
proc_100_71_0_0_ssh(ip_address) click to toggle source
# File lib/freewifi/general/wifi_portal_procedures.rb, line 708
def proc_100_71_0_0_ssh(ip_address)
  begin
    p access_int = iwag_telnet_connector.return_iwag_access_interface_1(ip_address)

    ip_a = ip_address

    access_poi = "unknown"
    ssid_a = "unknown"
    tx_rate_se = "unknown"
    tx_rat = "unknown"
    rx_rat = "unknown"
    rx_signa = "unknown"
    uptim = "unknown"
    packet = "unknown"
    byt = "unknown"

    if access_int == "Tunnel5"
      mikr_info2 = self.get_subs_add_info3_1(ip_address, access_int)
      splitting2 = mikr_info2.split("---")
      subs_mac = splitting2[0]
      access_poi = "belrw_3_Cisco_ap1-1"
      ssid_a = "BelRW_WiFi"
      tx_rate_se = "unknown"
      tx_rat = "unknown"
      rx_rat = "unknown"
      rx_signa = "unknown"
      uptim = "unknown"
      packet = "unknown"
      byt = "unknown"
    elsif access_int == "GigabitEthernet2.4008"
      mikr_info3 = self.get_subs_add_info3_1(ip_address, access_int)
      splitting3 = mikr_info3.split("---")
      subs_mac = splitting3[0]
      access_poi = "belrw_4_HP_ap1-1"
      ssid_a = "BelRW_WiFi"
      tx_rate_se = "unknown"
      tx_rat = "unknown"
      rx_rat = "unknown"
      rx_signa = "unknown"
      uptim = "unknown"
      packet = "unknown"
      byt = "unknown"
    elsif access_int == "Tunnel9"
      subs_mac = iwag_telnet_connector.get_subs_mac2_1(ip_address)
      p resp1 = hua_controller_connector.get_sub_info_1(subs_mac)
      p resp=resp1.split(",,,")

      p access_poi = resp[1]
      p ssid_a = resp[2]
      p tx_rate_se = resp[3]
      p tx_rat = resp[4]
      p rx_rat = resp[5]
      p rx_signa = resp[6]
      p uptim = resp[7]
      p packet = resp[8]
      p byt = resp[9]
    elsif access_int == "Tunnel16"
      subs_mac = iwag_telnet_connector.get_subs_mac2_1(ip_address)
      p resp1 = hua_controller_connector.get_sub_info2_1(subs_mac)
      p resp=resp1.split(",,,")

      p access_poi = resp[1]
      p ssid_a = resp[2]
      p tx_rate_se = resp[3]
      p tx_rat = resp[4]
      p rx_rat = resp[5]
      p rx_signa = resp[6]
      p uptim = resp[7]
      p packet = resp[8]
      p byt = resp[9]
    else
      p "before get info"
      p mikr_info5 = self.get_subs_add_info3_1(ip_address, access_int)
      p "after get info"
      splitting5 = mikr_info5.split("---")
      p subs_mac = splitting5[0]

      p access_poi = splitting5[1]
      p ssid_a = splitting5[2]
      p tx_rate_se = splitting5[3]
      p tx_rat = splitting5[4]
      p rx_rat = splitting5[5]
      p rx_signa = splitting5[6]
      p uptim = splitting5[7]
      p packet = splitting5[8]
      p byt = splitting5[9]


      if access_poi==nil || access_poi=="" || access_poi=="unknown"
        access_poi = "not on mikrotik controller"
      end

      if ssid_a==nil || ssid_a=="" || ssid_a=="unknown"
        ssid_a = "unknown"
        tx_rate_se = "unknown"
        tx_rat = "unknown"
        rx_rat = "unknown"
        rx_signa = "unknown"
        uptim = "unknown"
        packet = "unknown"
        byt = "unknown"
      end

    end

    if subs_mac=="unknown"
      output_params = {:code => 505, :result => "ERROR. Something wrong."}
    end

    if subs_mac==""
      subs_mac="unknown"
    end


    mess = {:iwag_access_interface => access_int,
            :subscribers_mac => subs_mac,
            :access_point => access_poi,
            :ssid_ap => ssid_a,
            :apid => "unknown",
            :statistics =>
                {:tx_rate_set => tx_rate_se,
                 :tx_rate => tx_rat,
                 :rx_rate => rx_rat,
                 :rx_signal => rx_signa,
                 :uptime => uptim,
                 :packets => packet,
                 :bytes => byt}
    }
    #         logger.info "HAproxy #{request.remote_ip}, request device real ip: #{request.headers['X-Client']}, ipaddressinputparameter: #{ip_address} recieved from mts_wifi_get_subs_info_return procedure of wifi_portal_controller  such information as: #{mess.to_xml}"
    output_params = {:code => 200, :result => "Request completed", :body => {:message => mess}}
  rescue

    puts 'SOAP mts_wifi_get_subs_info_return errorMethod'
    output_params = {:code => 505, :result => "ERROR. Something wrong."}
  end
  output_params
end
proc_100_75_0_0(ip_address) click to toggle source
# File lib/freewifi/general/wifi_portal_procedures.rb, line 432
  def proc_100_75_0_0(ip_address)

    begin
      result_iwag = self.python_mac_iwag2_1(ip_address)
      if result_iwag.split(" ")[0]!="Unknown"
        ppp = result_iwag.split(" ")

        subs_mac = ppp[0]
        access_int = ppp[1]
        access_poi = ppp[2]
        ssid_a = ppp[3]

        tx_rate_se = "unknown"
        tx_rat = "unknown"
        rx_rat = "unknown"
        rx_signa = "unknown"
        uptim = "unknown"
        packet = "unknown"
        byt = "unknown"

        if access_int=='GigabitEthernet4.3002'
          access_poi = "belrw_4_HP_ap1-1"
          ssid_a = "BelRW_WiFi"
        elsif access_int=='GigabitEthernet4.3005'
          access_poi = "belbiz-AP1-1"
          ssid_a = "IMAGURU_GUEST"
        end

        if access_poi == "Unknown" && ssid_a == "Unknown" && subs_mac != "Unknown"
          frommikrotik = self.get_subs_add_info4new_1(access_int, subs_mac)
          splitting5 = frommikrotik.split("---")
          p access_poi = splitting5[1]
          p ssid_a = splitting5[2]
          p tx_rate_se = splitting5[3]
          p tx_rat = splitting5[4]
          p rx_rat = splitting5[5]
          p rx_signa = splitting5[6]
          p uptim = splitting5[7]
          p packet = splitting5[8]
          p byt = splitting5[9]
        end

        if subs_mac=="unknown"
          output_params = {:code => 505, :result => "ERROR. Something wrong."}
        end

        if subs_mac==""
          subs_mac="unknown"
        end


        mess = {:iwag_access_interface => access_int,
                :subscribers_mac => subs_mac,
                :access_point => access_poi,
                :ssid_ap => ssid_a,
                :apid => "unknown",
                :statistics =>
                    {:tx_rate_set => tx_rate_se,
                     :tx_rate => tx_rat,
                     :rx_rate => rx_rat,
                     :rx_signal => rx_signa,
                     :uptime => uptim,
                     :packets => packet,
                     :bytes => byt}
        }
#            logger.info "HAproxy #{request.remote_ip}, request device real ip: #{request.headers['X-Client']}, ipaddressinputparameter: #{ip_address} recieved from mts_wifi_get_subs_info_return procedure of wifi_portal_controller  such information as: #{mess.to_xml}"
        output_params = {:code => 200, :result => "Request completed", :body => {:message => mess}}
        p output_params

      else

        mess = {:iwag_access_interface => "unknown",
                :subscribers_mac => "unknown",
                :access_point => "unknown",
                :ssid_ap => "unknown",
                :apid => "unknown",
                :statistics =>
                    {:tx_rate_set => "unknown",
                     :tx_rate => "unknown",
                     :rx_rate => "unknown",
                     :rx_signal => "unknown",
                     :uptime => "unknown",
                     :packets => "unknown",
                     :bytes => "unknown"}
        }
#            logger.info "HAproxy #{request.remote_ip}, request device real ip: #{request.headers['X-Client']}, ipaddressinputparameter: #{params[:ipaddress]} recieved from mts_wifi_get_subs_info_return procedure of wifi_portal_controller  such information as: #{mess.to_xml}"
        output_params = {:code => 202, :result => "Request completed", :body => {:message => mess}}
        p output_params

      end
    rescue
      puts 'SOAP mts_wifi_get_subs_info_return errorMethod'
      output_params = {:code => 505, :result => "ERROR. Something wrong."}
    end

    output_params

    ####
  end
proc_100_75_0_0_ssh(ip_address) click to toggle source
# File lib/freewifi/general/wifi_portal_procedures.rb, line 846
  def proc_100_75_0_0_ssh(ip_address)

    begin
      result_iwag = self.ssh_mac_iwag2_1(ip_address)
      if result_iwag.split(" ")[0]!="Unknown"
        ppp = result_iwag.split(" ")

        subs_mac = ppp[0]
        access_int = ppp[1]
        access_poi = ppp[2]
        ssid_a = ppp[3]

        tx_rate_se = "unknown"
        tx_rat = "unknown"
        rx_rat = "unknown"
        rx_signa = "unknown"
        uptim = "unknown"
        packet = "unknown"
        byt = "unknown"

        if access_int=='GigabitEthernet4.3002'
          access_poi = "belrw_4_HP_ap1-1"
          ssid_a = "BelRW_WiFi"
        elsif access_int=='GigabitEthernet4.3005'
          access_poi = "belbiz-AP1-1"
          ssid_a = "IMAGURU_GUEST"
        end

        if access_poi == "Unknown" && ssid_a == "Unknown" && subs_mac != "Unknown"
          frommikrotik = self.get_subs_add_info4new_1(access_int, subs_mac)
          splitting5 = frommikrotik.split("---")
          p access_poi = splitting5[1]
          p ssid_a = splitting5[2]
          p tx_rate_se = splitting5[3]
          p tx_rat = splitting5[4]
          p rx_rat = splitting5[5]
          p rx_signa = splitting5[6]
          p uptim = splitting5[7]
          p packet = splitting5[8]
          p byt = splitting5[9]
        end

        if subs_mac=="unknown"
          output_params = {:code => 505, :result => "ERROR. Something wrong."}
        end

        if subs_mac==""
          subs_mac="unknown"
        end


        mess = {:iwag_access_interface => access_int,
                :subscribers_mac => subs_mac,
                :access_point => access_poi,
                :ssid_ap => ssid_a,
                :apid => "unknown",
                :statistics =>
                    {:tx_rate_set => tx_rate_se,
                     :tx_rate => tx_rat,
                     :rx_rate => rx_rat,
                     :rx_signal => rx_signa,
                     :uptime => uptim,
                     :packets => packet,
                     :bytes => byt}
        }
#            logger.info "HAproxy #{request.remote_ip}, request device real ip: #{request.headers['X-Client']}, ipaddressinputparameter: #{ip_address} recieved from mts_wifi_get_subs_info_return procedure of wifi_portal_controller  such information as: #{mess.to_xml}"
        output_params = {:code => 200, :result => "Request completed", :body => {:message => mess}}
        p output_params

      else

        mess = {:iwag_access_interface => "unknown",
                :subscribers_mac => "unknown",
                :access_point => "unknown",
                :ssid_ap => "unknown",
                :apid => "unknown",
                :statistics =>
                    {:tx_rate_set => "unknown",
                     :tx_rate => "unknown",
                     :rx_rate => "unknown",
                     :rx_signal => "unknown",
                     :uptime => "unknown",
                     :packets => "unknown",
                     :bytes => "unknown"}
        }
#            logger.info "HAproxy #{request.remote_ip}, request device real ip: #{request.headers['X-Client']}, ipaddressinputparameter: #{params[:ipaddress]} recieved from mts_wifi_get_subs_info_return procedure of wifi_portal_controller  such information as: #{mess.to_xml}"
        output_params = {:code => 202, :result => "Request completed", :body => {:message => mess}}
        p output_params

      end
    rescue
      puts 'SOAP mts_wifi_get_subs_info_return errorMethod'
      output_params = {:code => 505, :result => "ERROR. Something wrong."}
    end

    output_params

    ####
  end
python_mac_iwag1_1(ipaddress) click to toggle source
# File lib/freewifi/general/wifi_portal_procedures.rb, line 72
def python_mac_iwag1_1(ipaddress)
  begin
    response = ard_api_gw_connector_wifi.call(:mts_python_mac_iwag1) do
      message({:ipaddress => ipaddress})
    end
    answer = response.to_hash
    return answer[:mts_python_mac_iwag1_response][:data].gsub("\n", "")
  rescue
    return "Unknown  Unknown  Unknown  Unknown"
  end
end
python_mac_iwag2_1(ipaddress) click to toggle source
# File lib/freewifi/general/wifi_portal_procedures.rb, line 94
def python_mac_iwag2_1(ipaddress)
  begin
    response = ard_api_gw_connector_wifi.call(:mts_python_mac_iwag2) do
      message({:ipaddress => ipaddress})
    end
    answer = response.to_hash
    return answer[:mts_python_mac_iwag2_response][:data].gsub("\n", "")
  rescue
    return "Unknown  Unknown  Unknown  Unknown"
  end
end
ssh_mac_iwag1_1(ipaddress) click to toggle source
# File lib/freewifi/general/wifi_portal_procedures.rb, line 85
def ssh_mac_iwag1_1(ipaddress)
  begin
    data_iw1 = iwag_connector1.iwag_get_dhcp_binding_ssh(ipaddress)
    "#{data_iw1[:mac]}  #{data_iw1[:iwaginterface]}  #{data_iw1[:aphostname]}  #{data_iw1[:SSID]}"
  rescue
    return "Unknown  Unknown  Unknown  Unknown"
  end
end
ssh_mac_iwag2_1(ipaddress) click to toggle source
# File lib/freewifi/general/wifi_portal_procedures.rb, line 106
def ssh_mac_iwag2_1(ipaddress)
  begin
    data_iw1 = iwag_connector2.iwag_get_dhcp_binding_ssh(ipaddress)
    "#{data_iw1[:mac]}  #{data_iw1[:iwaginterface]}  #{data_iw1[:aphostname]}  #{data_iw1[:SSID]}"
  rescue
    return "Unknown  Unknown  Unknown  Unknown"
  end
end