Data convertion and pre-defined variables for Dhcp site.

Alan DeKok aland at
Sun Jun 9 18:25:35 CEST 2019

On Jun 9, 2019, at 12:16 PM, CpServiceSPb <cpservicespb at> wrote:
> That is:
> switch "%{string:&DHCP-Vendor-Class-Identifier}" {
>        case "sip Phone ID" {
>              update reply {
>                     &DHCP-TFTP-Server-Name =
> "tftp://%{listen:src_ipaddr}" - works fine
>                     &DHCP-Vendor =
> "http://user:pass@%{listen:src_ipaddr}/pbx" - I made it working a few
> time ago - works fine
>                     &DHCP-SIP-Servers-DHCP-Option =
> "*1***" - does not work

  Because DHCP-SIP-Servers-DHCP-Option is an "octets" data type, so you have to feed it octets.  e.g.

		&DHCP-SIP-Servers-DHCP-Option = 0x01c0a800fe

  That will work.

> Dhcpdump shows:
> OPTION: 120 ( 12) SIP Servers DHCP Option *3131302e31302e302e323534*

  Because you gave the attribute a text string.  Which isn't hex, and it isn't an IP address.

> Sip phone doesn' t accept these setting.
> The right settings phone accepts is: *01c0a800fe*
> But I can' t get such result.

  You just typed it there.  You can add that as hex to the "update" statement.

> I specified this option at isc-dhcp-server simply
> *option sip-pbx-servers 1;*

  That's nice for them.

> Regarding pre-defined or constant variables: I used successfully
> %{listen:src_ipaddr} in places where string type is acceptable.


> It is very convenient for particular for me, to specify the same
> repeating value for all necessary attributes and it will not be
> necessary to change it for each of
> many attributes when IP of dhcp is changed.

  That's true.

> And I would use it variable for ipaddr attributes also but I don' t
> know how to convert string variable to ipaddr, to get working:
> &DHCP-Domain-Name-Server += %{ipaddr:%{listen:src_ipaddr}} instead of
> &DHCP-Domain-Name-Server +=

  That's unfortunately more difficult to do in FreeRADIUS.  Your best bet is to just use hex.

  Alan DeKok.

More information about the Freeradius-Users mailing list