ru.bitel.bgbilling.modules.inet.runtime.device

## Class PacketValueExtractor

- java.lang.Object
- - ru.bitel.bgbilling.modules.inet.runtime.device.PacketValueExtractor

-     public class PacketValueExtractor
      extends java.lang.Object

  Утильный класс для извлечения значений из RADIUS- и DHCP- пакетов.

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `protected java.util.regex.Pattern` | `agentSvlanPattern` Шаблон поиска SVLAN
    `protected java.lang.String` | `agentSvlanPrefix` Префикс атрибута (если есть) - значение для SVLAN
    `protected int` | `agentSvlanType` Код атрибута - значение для SVLAN
    `protected int` | `agentSvlanVendor` Вендор атрибута - значение для SVLAN
    `protected java.lang.String` | `calledStationIdPrefix` Префикс атрибута (если есть) - значение для подмены Called-Station-Id
    `protected int` | `calledStationIdType` Код атрибута - значение для подмены Called-Station-Id
    `protected int` | `calledStationIdVendor` Вендор атрибута - значение для подмены Called-Station-Id
    `protected java.lang.String` | `callingStationIdPrefix` Префикс атрибута (если есть) - значение для подмены Calling-Station-Id
    `protected int` | `callingStationIdType` Код атрибута - значение для подмены Calling-Station-Id
    `protected int` | `callingStationIdVendor` Вендор атрибута - значение для подмены Calling-Station-Id
    `protected java.util.regex.Pattern` | `macAddressPattern` Шаблон поиска MAC-адреса
    `protected java.lang.String` | `macAddressPrefix` Префикс атрибута (если есть) - MAC-адрес
    `protected int` | `macAddressType` Код атрибута - MAC-адрес
    `protected int` | `macAddressVendor` Вендор атрибута - MAC-адрес
    `protected int` | `option82RemoveHeader` Нужно ли удалять заголовок (2 байта, тип+длина) из значения DHCP-опции
    `protected java.util.regex.Pattern` | `vlanPattern` Шаблон поиска VLAN
    `protected java.lang.String` | `vlanPrefix` Префикс атрибута (если есть) - значение для VLAN
    `protected int` | `vlanType` Код атрибута - значение для VLAN
    `protected int` | `vlanVendor` Вендор атрибута - значение для VLAN

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `PacketValueExtractor(ParameterMap config)`

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `byte[]` | `convertToInt(java.lang.Object data)` Конвертирует значение (byte[], ByteBuffer, HEX-String) в byte[].
    `int` | `convertToInt(java.lang.Object value, int def)` Ковертирует значение (String, Long, Integer, byte[], ByteBuffer) в int.
    `int` | `extractAgentSvlanId(RadiusPacket request)` Извлечение VLAN из RADIUS-пакета c помошью параметров конфигурации: radius.agentSvlan.vendor= radius.agentSvlan.type= radius.agentSvlan.prefix= radius.agentSvlan.pattern= Или извлечение VLAN из circuitId option82 RADIUS-пакета c помошью параметров конфигурации: dhcp.option82.agentSvlanId.code=2 dhcp.option82.agentSvlanId.hex=^(\w{2}) Или dhcp.option82.agentSvlanId.code=2 dhcp.option82.agentSvlanId.position=0 dhcp.option82.agentSvlanId.length=2
    `java.lang.Object` | `extractCalledStationId(RadiusPacket request)` Получение Called-Station-Id из атрибута в RADIUS-пакете c помошью параметров конфигурации: radius.calledStationId.vendor= radius.calledStationId.type= radius.calledStationId.prefix=
    `java.lang.Object` | `extractCallingStationId(RadiusPacket request)` Получение Calling-Station-Id из атрибута в RADIUS-пакете c помошью параметров конфигурации: radius.callingStationId.vendor= radius.callingStationId.type= radius.callingStationId.prefix=
    `java.lang.Object` | `extractMacAddress(RadiusPacket request)` Извлечение значения MAC-адреса с помошью параметров конфигурации: radius.macAddress.vendor= radius.macAddress.type= radius.macAddress.prefix= radius.macAddress.pattern=
    `java.lang.Object` | `extractOption82AgentRemoteId(DhcpPacket request)` Извлечение agentRemoteId из option82 DHCP-пакета c помошью параметров конфигурации: dhcp.option82.agentRemoteId.code=2 dhcp.option82.agentRemoteId.hex=.* Или dhcp.option82.agentRemoteId.code=2 dhcp.option82.agentRemoteId.position=2 dhcp.option82.agentRemoteId.length=6
    `int` | `extractOption82AgentSvlanId(DhcpPacket request)` Извлечение SVLAN из option82 DHCP-пакета c помошью параметров конфигурации: dhcp.option82.agentSvlanId.code=2 dhcp.option82.agentSvlanId.hex=^(\w{2}) Или dhcp.option82.agentSvlanId.code=2 dhcp.option82.agentSvlanId.position=0 dhcp.option82.agentSvlanId.length=2 Если в пакет проставлена опция InetDhcpProcessor.AGENT_CIRCUIT_ID, то извлечения происходит из него (т.е. параметр dhcp.option82.agentSvlanId.code ингоринуется).
    `int` | `extractOption82InterfaceId(DhcpPacket request)` Извлечение порта из option82 DHCP-пакета c помошью параметров конфигурации: dhcp.option82.interfaceId.code=2 dhcp.option82.interfaceId.hex=^(\w{2}) Или dhcp.option82.interfaceId.code=2 dhcp.option82.interfaceId.position=0 dhcp.option82.interfaceId.length=2 Если в пакет проставлена опция InetDhcpProcessor.AGENT_CIRCUIT_ID, то извлечения происходит из него (т.е. параметр dhcp.option82.interfaceId.code ингоринуется).
    `int` | `extractOption82InterfaceId(RadiusPacket request)` Извлечение порта из circuitId option82 RADIUS-пакета c помошью параметров конфигурации: dhcp.option82.interfaceId.hex=^(\w{2}) Или dhcp.option82.interfaceId.position=0 dhcp.option82.interfaceId.length=2
    `int` | `extractOption82VlanId(DhcpPacket request)` Извлечение VLAN из option82 DHCP-пакета c помошью параметров конфигурации: dhcp.option82.vlanId.code=2 dhcp.option82.vlanId.hex=^(\w{2}) Или dhcp.option82.vlanId.code=2 dhcp.option82.vlanId.position=0 dhcp.option82.vlanId.length=2 Если в пакет проставлена опция InetDhcpProcessor.AGENT_CIRCUIT_ID, то извлечения происходит из него (т.е. параметр dhcp.option82.vlanId.code ингоринуется).
    `int` | `extractOption82VlanId(RadiusPacket request)` Извлечение VLAN из circuitId option82 RADIUS-пакета c помошью параметров конфигурации: dhcp.option82.vlanId.hex=^(\w{2}) Или dhcp.option82.vlanId.position=0 dhcp.option82.vlanId.length=2
    `int` | `extractVlanId(RadiusPacket request)` Извлечение VLAN из RADIUS-пакета c помошью параметров конфигурации: radius.vlan.vendor= radius.vlan.type= radius.vlan.prefix= radius.vlan.pattern= Или извлечение VLAN из circuitId option82 RADIUS-пакета c помошью параметров конфигурации: dhcp.option82.vlanId.position=0 dhcp.option82.vlanId.length=2
    `java.lang.Object` | `getAgentRemoteId(RadiusPacket request)` Получение agentRemoteId из option82 RADIUS-пакета.
    `int` | `getAgentSvlanId(RadiusPacket request, boolean setOption)` Получение SVLAN из RADIUS-пакета.
    `ru.bitel.common.io.BinaryValueExtractor` | `getExtractor(ParameterMap params, java.lang.String prefix)`
    `java.lang.Object` | `getOption82AgentRemoteId(DhcpPacket request, boolean setOption)` Получение agentRemoteId из option82 DHCP-пакета.
    `int` | `getOption82AgentSvlanId(DhcpPacket request, boolean setOption)` Получение SVLAN из option82 DHCP-пакета.
    `java.lang.Object` | `getOption82CircuitId(RadiusPacket request)` Получение circuitId из option82 RADIUS-пакета.
    `int` | `getOption82InterfaceId(DhcpPacket request, boolean setOption)` Получение порта из DHCP-пакета.
    `int` | `getOption82InterfaceId(RadiusPacket request, boolean setOption)` Получение порта из RADIUS-пакета.
    `java.lang.Object` | `getOption82Login(DhcpPacket request)` Получение логина из option82 DHCP-пакета c помошью параметров конфигурации: dhcp.option82.login.code=2 dhcp.option82.login.hex=.*
    `java.lang.Object` | `getOption82Login(DhcpPacket request, boolean setOption)` Получение логина из option82 DHCP-пакета c помошью параметров конфигурации: dhcp.option82.login.code=2 dhcp.option82.login.hex=.*
    `int` | `getOption82VlanId(DhcpPacket request, boolean setOption)` Получение VLAN из option82 DHCP-пакета.
    `int` | `getOption82VlanId(RadiusPacket request, boolean setOption)` Получение VLAN из circuitId option82 RADIUS-пакета.
    `int` | `getVlanId(RadiusPacket request, boolean setOption)` Получение VLAN из RADIUS-пакета.
    `void` | `setCalledStationIdAttribute(RadiusPacket request)` Подмена Called-Station-Id атрибута в RADIUS-пакете c помошью параметров конфигурации: radius.calledStationId.vendor= radius.calledStationId.type= radius.calledStationId.prefix=
    `void` | `setCallingStationIdAttribute(RadiusPacket request)` Подмена Calling-Station-Id атрибута в RADIUS-пакете c помошью параметров конфигурации: radius.callingStationId.vendor= radius.callingStationId.type= radius.callingStationId.prefix=
    `void` | `setMacAddressOption(RadiusPacket request)` Извлечение значения MAC-адреса и установка его как опцию.

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Field Detail

    - #### option82RemoveHeader

          protected int option82RemoveHeader

      Нужно ли удалять заголовок (2 байта, тип+длина) из значения DHCP-опции

    - #### macAddressVendor

          protected int macAddressVendor

      Вендор атрибута - MAC-адрес

    - #### macAddressType

          protected int macAddressType

      Код атрибута - MAC-адрес

    - #### macAddressPrefix

          protected java.lang.String macAddressPrefix

      Префикс атрибута (если есть) - MAC-адрес

    - #### macAddressPattern

          protected java.util.regex.Pattern macAddressPattern

      Шаблон поиска MAC-адреса

    - #### callingStationIdVendor

          protected int callingStationIdVendor

      Вендор атрибута - значение для подмены Calling-Station-Id

    - #### callingStationIdType

          protected int callingStationIdType

      Код атрибута - значение для подмены Calling-Station-Id

    - #### callingStationIdPrefix

          protected java.lang.String callingStationIdPrefix

      Префикс атрибута (если есть) - значение для подмены Calling-Station-Id

    - #### calledStationIdVendor

          protected int calledStationIdVendor

      Вендор атрибута - значение для подмены Called-Station-Id

    - #### calledStationIdType

          protected int calledStationIdType

      Код атрибута - значение для подмены Called-Station-Id

    - #### calledStationIdPrefix

          protected java.lang.String calledStationIdPrefix

      Префикс атрибута (если есть) - значение для подмены Called-Station-Id

    - #### vlanVendor

          protected int vlanVendor

      Вендор атрибута - значение для VLAN

    - #### vlanType

          protected int vlanType

      Код атрибута - значение для VLAN

    - #### vlanPrefix

          protected java.lang.String vlanPrefix

      Префикс атрибута (если есть) - значение для VLAN

    - #### vlanPattern

          protected java.util.regex.Pattern vlanPattern

      Шаблон поиска VLAN

    - #### agentSvlanVendor

          protected int agentSvlanVendor

      Вендор атрибута - значение для SVLAN

    - #### agentSvlanType

          protected int agentSvlanType

      Код атрибута - значение для SVLAN

    - #### agentSvlanPrefix

          protected java.lang.String agentSvlanPrefix

      Префикс атрибута (если есть) - значение для SVLAN

    - #### agentSvlanPattern

          protected java.util.regex.Pattern agentSvlanPattern

      Шаблон поиска SVLAN

  - ### Constructor Detail

    - #### PacketValueExtractor

          public PacketValueExtractor(ParameterMap config)

  - ### Method Detail

    - #### convertToInt

          public int convertToInt(java.lang.Object value,
                                  int def)

      Ковертирует значение (String, Long, Integer, byte[], ByteBuffer) в int.
      Parameters:
        `value` -
        `def` -
      Returns:

    - #### convertToInt

          public byte[] convertToInt(java.lang.Object data)

      Конвертирует значение (byte[], ByteBuffer, HEX-String) в byte[].
      Parameters:
        `data` -
      Returns:

    - #### getOption82AgentRemoteId

          public java.lang.Object getOption82AgentRemoteId(DhcpPacket request,
                                                           boolean setOption)

      Получение agentRemoteId из option82 DHCP-пакета.
      Если есть установленная опция InetDhcpProcessor.AGENT_REMOTE_ID, то возвращает ее значение. Иначе идет извлечение через `extractOption82AgentRemoteId(DhcpPacket)`.
      Parameters:
        `request` - DHCP-запрос.
        `setOption` - нужно ли установить извлеченное значение в пакет через request.setOption.
      Returns:

    - #### extractOption82AgentRemoteId

          public java.lang.Object extractOption82AgentRemoteId(DhcpPacket request)

      Извлечение agentRemoteId из option82 DHCP-пакета c помошью параметров конфигурации:

           dhcp.option82.agentRemoteId.code=2
           dhcp.option82.agentRemoteId.hex=.*

      Или

           dhcp.option82.agentRemoteId.code=2
           dhcp.option82.agentRemoteId.position=2
           dhcp.option82.agentRemoteId.length=6

      Parameters:
        `request` -
      Returns:

    - #### getAgentRemoteId

          public java.lang.Object getAgentRemoteId(RadiusPacket request)

      Получение agentRemoteId из option82 RADIUS-пакета.
      Если есть установленная опция InetRadiusProcessor.AGENT_REMOTE_ID, то возвращает ее значение. Иначе идет извлечение c помощью параметров

           radius.agentRemoteId.vendor=2352
           radius.agentRemoteId.type=96
           #radius.agentRemoteId.prefix=
           #radius.agentRemoteId.pattern=

      Полученное значение устанавливается как опция InetRadiusProcessor.AGENT_REMOTE_ID в пакет.
      Parameters:
        `request` - RADIUS-запрос.
      Returns:

    - #### getOption82CircuitId

          public java.lang.Object getOption82CircuitId(RadiusPacket request)

      Получение circuitId из option82 RADIUS-пакета.
      Если есть установленная опция InetRadiusProcessor.AGENT_CIRCUIT_ID, то возвращает ее значение. Иначе идет извлечение c помощью параметров

           radius.option82.circuitId.vendor=2352
           radius.option82.circuitId.type=97
           #radius.option82.circuitId.prefix=
           #radius.option82.circuitId.pattern=

      Полученное значение устанавливается как опция InetRadiusProcessor.AGENT_CIRCUIT_ID в пакет.
      Parameters:
        `request` - RADIUS-запрос.
      Returns:

    - #### getOption82VlanId

          public int getOption82VlanId(DhcpPacket request,
                                       boolean setOption)

      Получение VLAN из option82 DHCP-пакета.
      Если есть установленная опция InetDhcpProcessor.VLAN_ID, то возвращает ее значение. Иначе идет извлечение через `extractOption82VlanId(DhcpPacket)`.
      Parameters:
        `request` - DHCP-запрос.
        `setOption` - нужно ли установить извлеченное значение в пакет через request.setOption.
      Returns:

    - #### getOption82AgentSvlanId

          public int getOption82AgentSvlanId(DhcpPacket request,
                                             boolean setOption)

      Получение SVLAN из option82 DHCP-пакета.
      Если есть установленная опция InetDhcpProcessor.AGENT_SVLAN, то возвращает ее значение. Иначе идет извлечение через `extractOption82AgentSvlanId(DhcpPacket)`.
      Parameters:
        `request` - DHCP-запрос.
        `setOption` - нужно ли установить извлеченное значение в пакет через request.setOption.
      Returns:

    - #### extractOption82VlanId

          public int extractOption82VlanId(DhcpPacket request)

      Извлечение VLAN из option82 DHCP-пакета c помошью параметров конфигурации:

           dhcp.option82.vlanId.code=2
           dhcp.option82.vlanId.hex=^(\w{2})

      Или

           dhcp.option82.vlanId.code=2
           dhcp.option82.vlanId.position=0
           dhcp.option82.vlanId.length=2

      Если в пакет проставлена опция InetDhcpProcessor.AGENT_CIRCUIT_ID, то извлечения происходит из него (т.е. параметр dhcp.option82.vlanId.code ингоринуется).
      Parameters:
        `request` -
      Returns:

    - #### extractOption82AgentSvlanId

          public int extractOption82AgentSvlanId(DhcpPacket request)

      Извлечение SVLAN из option82 DHCP-пакета c помошью параметров конфигурации:

           dhcp.option82.agentSvlanId.code=2
           dhcp.option82.agentSvlanId.hex=^(\w{2})

      Или

           dhcp.option82.agentSvlanId.code=2
           dhcp.option82.agentSvlanId.position=0
           dhcp.option82.agentSvlanId.length=2

      Если в пакет проставлена опция InetDhcpProcessor.AGENT_CIRCUIT_ID, то извлечения происходит из него (т.е. параметр dhcp.option82.agentSvlanId.code ингоринуется).
      Parameters:
        `request` -
      Returns:

    - #### getOption82VlanId

          public int getOption82VlanId(RadiusPacket request,
                                       boolean setOption)

      Получение VLAN из circuitId option82 RADIUS-пакета.
      Если есть установленная опция InetDhcpProcessor.VLAN_ID, то возвращает ее значение. Иначе идет извлечение через `extractOption82VlanId(RadiusPacket)`.
      Parameters:
        `request` - RADIUS-запрос.
        `setOption` - нужно ли установить извлеченное значение в пакет через request.setOption.
      Returns:

    - #### extractOption82VlanId

          public int extractOption82VlanId(RadiusPacket request)

      Извлечение VLAN из circuitId option82 RADIUS-пакета c помошью параметров конфигурации:

           dhcp.option82.vlanId.hex=^(\w{2})

      Или

           dhcp.option82.vlanId.position=0
           dhcp.option82.vlanId.length=2

      Parameters:
        `request` -
      Returns:
      See Also:
        `getOption82CircuitId(RadiusPacket)`

    - #### getVlanId

          public int getVlanId(RadiusPacket request,
                               boolean setOption)

      Получение VLAN из RADIUS-пакета.
      Если есть установленная опция InetRadiusProcessor.VLAN_ID, то возвращает ее значение. Иначе идет извлечение через `extractVlanId(RadiusPacket)`.
      Parameters:
        `request` - RADIUS-запрос.
        `setOption` - нужно ли установить извлеченное значение в пакет через request.setOption.
      Returns:

    - #### extractVlanId

          public int extractVlanId(RadiusPacket request)

      Извлечение VLAN из RADIUS-пакета c помошью параметров конфигурации:

           radius.vlan.vendor=
           radius.vlan.type=
           radius.vlan.prefix=
           radius.vlan.pattern=

      Или извлечение VLAN из circuitId option82 RADIUS-пакета c помошью параметров конфигурации:

           dhcp.option82.vlanId.position=0
           dhcp.option82.vlanId.length=2

      Parameters:
        `request` - RADIUS-пакет.
      Returns:

    - #### getAgentSvlanId

          public int getAgentSvlanId(RadiusPacket request,
                                     boolean setOption)

      Получение SVLAN из RADIUS-пакета.
      Если есть установленная опция InetRadiusProcessor.AGENT_SVLAN, то возвращает ее значение. Иначе идет извлечение через `extractAgentSvlanId(RadiusPacket)`.
      Parameters:
        `request` - RADIUS-запрос.
        `setOption` - нужно ли установить извлеченное значение в пакет через request.setOption.
      Returns:

    - #### extractAgentSvlanId

          public int extractAgentSvlanId(RadiusPacket request)

      Извлечение VLAN из RADIUS-пакета c помошью параметров конфигурации:

           radius.agentSvlan.vendor=
           radius.agentSvlan.type=
           radius.agentSvlan.prefix=
           radius.agentSvlan.pattern=

      Или извлечение VLAN из circuitId option82 RADIUS-пакета c помошью параметров конфигурации:

           dhcp.option82.agentSvlanId.code=2
           dhcp.option82.agentSvlanId.hex=^(\w{2})

      Или

           dhcp.option82.agentSvlanId.code=2
           dhcp.option82.agentSvlanId.position=0
           dhcp.option82.agentSvlanId.length=2

      Parameters:
        `request` - RADIUS-пакет.
      Returns:

    - #### getOption82InterfaceId

          public int getOption82InterfaceId(DhcpPacket request,
                                            boolean setOption)

      Получение порта из DHCP-пакета.
      Если есть установленная опция InetDhcpProcessor.INTERFACE_ID, то возвращает ее значение. Иначе идет извлечение через `extractOption82InterfaceId(DhcpPacket)`.
      Parameters:
        `request` - DHCP-запрос.
        `setOption` - нужно ли установить извлеченное значение в пакет через request.setOption.
      Returns:

    - #### extractOption82InterfaceId

          public int extractOption82InterfaceId(DhcpPacket request)

      Извлечение порта из option82 DHCP-пакета c помошью параметров конфигурации:

           dhcp.option82.interfaceId.code=2
           dhcp.option82.interfaceId.hex=^(\w{2})

      Или

           dhcp.option82.interfaceId.code=2
           dhcp.option82.interfaceId.position=0
           dhcp.option82.interfaceId.length=2

      Если в пакет проставлена опция InetDhcpProcessor.AGENT_CIRCUIT_ID, то извлечения происходит из него (т.е. параметр dhcp.option82.interfaceId.code ингоринуется).
      Parameters:
        `request` -
      Returns:

    - #### getOption82InterfaceId

          public int getOption82InterfaceId(RadiusPacket request,
                                            boolean setOption)

      Получение порта из RADIUS-пакета.
      Если есть установленная опция InetRadiusProcessor.INTERFACE_ID, то возвращает ее значение. Иначе идет извлечение через `extractOption82InterfaceId(RadiusPacket)`.
      Parameters:
        `request` - RADIUS-запрос.
        `setOption` - нужно ли установить извлеченное значение в пакет через request.setOption.
      Returns:

    - #### extractOption82InterfaceId

          public int extractOption82InterfaceId(RadiusPacket request)

      Извлечение порта из circuitId option82 RADIUS-пакета c помошью параметров конфигурации:

           dhcp.option82.interfaceId.hex=^(\w{2})

      Или

           dhcp.option82.interfaceId.position=0
           dhcp.option82.interfaceId.length=2

      Parameters:
        `request` -
      Returns:
      See Also:
        `getOption82CircuitId(RadiusPacket)`

    - #### getOption82Login

          public java.lang.Object getOption82Login(DhcpPacket request,
                                                   boolean setOption)

      Получение логина из option82 DHCP-пакета c помошью параметров конфигурации:

           dhcp.option82.login.code=2
           dhcp.option82.login.hex=.*

      Parameters:
        `request` - DHCP-запрос.
        `setOption` - нужно ли установить извлеченное значение в пакет через request.setOption.
      Returns:

    - #### getOption82Login

          public java.lang.Object getOption82Login(DhcpPacket request)

      Получение логина из option82 DHCP-пакета c помошью параметров конфигурации:

           dhcp.option82.login.code=2
           dhcp.option82.login.hex=.*

      Parameters:
        `request` - DHCP-запрос.
      Returns:

    - #### setCallingStationIdAttribute

          public void setCallingStationIdAttribute(RadiusPacket request)

      Подмена Calling-Station-Id атрибута в RADIUS-пакете c помошью параметров конфигурации:

           radius.callingStationId.vendor=
           radius.callingStationId.type=
           radius.callingStationId.prefix=

      Parameters:
        `request` -

    - #### extractCallingStationId

          public java.lang.Object extractCallingStationId(RadiusPacket request)

      Получение Calling-Station-Id из атрибута в RADIUS-пакете c помошью параметров конфигурации:

           radius.callingStationId.vendor=
           radius.callingStationId.type=
           radius.callingStationId.prefix=

      Parameters:
        `request` -

    - #### setCalledStationIdAttribute

          public void setCalledStationIdAttribute(RadiusPacket request)

      Подмена Called-Station-Id атрибута в RADIUS-пакете c помошью параметров конфигурации:

           radius.calledStationId.vendor=
           radius.calledStationId.type=
           radius.calledStationId.prefix=

      Parameters:
        `request` -

    - #### extractCalledStationId

          public java.lang.Object extractCalledStationId(RadiusPacket request)

      Получение Called-Station-Id из атрибута в RADIUS-пакете c помошью параметров конфигурации:

           radius.calledStationId.vendor=
           radius.calledStationId.type=
           radius.calledStationId.prefix=

      Parameters:
        `request` -

    - #### setMacAddressOption

          public void setMacAddressOption(RadiusPacket request)

      Извлечение значения MAC-адреса и установка его как опцию. Извлечение происходит с помошью параметров конфигурации:

           radius.macAddress.vendor=
           radius.macAddress.type=
           radius.macAddress.prefix=
           radius.macAddress.pattern=

      Parameters:
        `request` -

    - #### extractMacAddress

          public java.lang.Object extractMacAddress(RadiusPacket request)

      Извлечение значения MAC-адреса с помошью параметров конфигурации:

           radius.macAddress.vendor=
           radius.macAddress.type=
           radius.macAddress.prefix=
           radius.macAddress.pattern=

      Parameters:
        `request` -

    - #### getExtractor

          public ru.bitel.common.io.BinaryValueExtractor getExtractor(ParameterMap params,
                                                                      java.lang.String prefix)