On Jun 9, 2019, at 12:16 PM, CpServiceSPb <cpservicespb@gmail.com> 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**192.168.0.254*" - 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 192.168.0.254;*
That's nice for them.
Regarding pre-defined or constant variables: I used successfully %{listen:src_ipaddr} in places where string type is acceptable.
Sure.
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 += 192.168.0.254
That's unfortunately more difficult to do in FreeRADIUS. Your best bet is to just use hex. Alan DeKok.