{ mac, label, displayName, password, serverAddress, ntpServer , sipPort ? 5060 , directoryPort ? 8080 , familyLineEnabled ? false , familyLineLabel ? "Familie" , familyLinePassword ? "" , intercomEnabled ? false , intercomPassword ? "" , dialplanFile ? "dialplan.xml" }: let # Line button assignments: # button 1 / lineIndex 1 — personal/location L1 line (always present) # button 2 / lineIndex 2 — family L2 line (when familyLineEnabled) # button N / lineIndex N — intercom (when intercomEnabled; N = 2 or 3) intercomButton = if familyLineEnabled then 3 else 2; intercomLineIndex = intercomButton; in '' SIP admin password D.M.YA Central Europe Standard/Daylight Time ${ntpServer} ${toString sipPort} ${serverAddress} 5060 true true x-serviceuri-cfwdall x-cisco-serviceuri-pickup x-cisco-serviceuri-opickup x-cisco-serviceuri-gpickup x-cisco-serviceuri-meetme x-cisco-serviceuri-abbrdial 2 2 2 0 true 6 10 180 3600 5 120 120 5 500 4000 70 false None false 3 ${(builtins.substring 0 12 label)} 1 false 9 ${displayName} USECALLMANAGER ${toString sipPort} ${mac} ${displayName} 2 3 ${mac} ${password} 1 *97 ${mac} true true true true ${if familyLineEnabled then '' 9 ${familyLineLabel} USECALLMANAGER ${toString sipPort} ${mac}-l2 ${familyLineLabel} 2 3 ${mac}-l2 ${familyLinePassword} 3 *97 ${mac}-l2 true true true true '' else ""}${if intercomEnabled then '' 23 Intercom USECALLMANAGER ${toString sipPort} ${mac}-intercom Intercom 3 Auto Answer with Speakerphone 3 ${mac}-intercom ${intercomPassword} 1 1 ${mac}-intercom '' else ""} ${toString sipPort} 16348 20134 184 ${dialplanFile} 1 true 2 sip8961.9-4-2ES-14 0 1 0 1 1,2,3,4,5,6,7 0 00:00 00:00 00:05 1 en_US utf-8 1 http://${serverAddress}:${toString directoryPort}/directory.xml 2 Missed Calls Application:Cisco/MissedCalls Received Calls Application:Cisco/ReceivedCalls Placed Calls Application:Cisco/PlacedCalls Voicemail Application:Cisco/Voicemail 1 0 3804 false ''