Wayne Lee wrote:
I'm getting myself confused with unlang and hoping somebody can help. I have read the docs but just don't fully get it.
"unlang" is just a simple set of comparisons and logic.
I'm trying to filter requests by part of the calling-station-id and update/rewrite the reply depending on what group it is in. The below is what I've got in the config
post-auth {
if(Calling-Station-Id >= "foo") {
You're doing "greater than or equal" checks on a string?
if(SQL-Group == "SR1"){ update reply { Tunnel-Server-Endpoint := 192.168.1.1 Tunnel-Type := L2TP Tunnel-Medium-Type := IP Cisco-AVPair := vpdn:tunnel-id=provider.net Cisco-AVPair := vpdn:l2tp-tunnel-password=abc Framed-Protocol -= PPP Service-Type -= Framed-User Port-Limit -= 32
It's always better *not* add attributes, rather than adding them and later deleting them.
The provider is sending "foo" or "bar" (depends on the LTS) and a ID number in the calling-station-id which is why I used ">=".
Regexes are better at string matches than numerical comparison operators.
Further to that, when the provider sends bar and the user is not in group SR1 i need to reply with a different tunnel-server-endpoint. I understand why it's not working due to the use of ">=" but I don't know how to fix it, I've tried using else statements/clauses but I'm lost. We are using multiple LNS's (some dedicated for customers or service).
Use regexes. Run the server in debugging mode to see what is being matched, and why. Alan DeKok.