This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#IBJS.net 20160803, in Anlehnung an fb_dial.vbs von Michael Engelke 2012 | |
#Fritz!Box Wählhilfe mit Powershell von Joachim Schubert ibjs.net 2016 | |
#Der Fritz-Box Benutzername für diesen Konstellation lautet NAS-Read | |
#Das encrypted Fritz-Box Passwort ist vorher in einer Datei Securestring.fb abzulegen. | |
#ConvertFrom-SecureString (read-host -AsSecureString -Prompt "Passwort ") >SecureString.fb | |
#Als Default Rufnummer nehme ich hier die Zeitansage der Telekom, die aber kostenpflichtig ist | |
#Alternativ nehme ich zum Testen eine interne Nummer wie **610, damit kann ich es zwar klingeln lassen, | |
#kann aber bisher die internen Gespräche nicht an das Wahlgerät **613 übergeben, es legt sofort auf. | |
#Zum Aufbau einer Verbindung lege ich eine sonst unbenutzte Festnetznummer auf das Zielgerät. | |
#Erprobung an Windows 7/ Powershell 5/ Gigaset A415 **613, Gigaset SL1 **610/ FritzBox 6360/Unity Media VoIP | |
#Die Übergabe des Anrufs erfolgt so: | |
#Das Script baut die Verbindung auf und zeigt es mit einem Rufzeichen= 3x Kammerton an. | |
#Sobald zu hören, am Wahlgerät die grüne Rufannahmetaste solange drücken, bis Wählhilfe Nummer am Display erscheint (ca. 1s) | |
#Das Rufzeichen ist am Wählgerät zu hören. | |
# | |
#Einbindung als Telefondienst per Registry: | |
#HKEY_CLASSES_ROOT\tel\shell\open\command | |
#[Reg_SZ]: "C:\WINDOWS\System32\WScript.exe" "C:\Windows\fb_dial.vbs" '%1' # altes vbs script wird nun ersetzt: | |
#[Reg_SZ]: "C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe" "C:\Windows\fb-dial.ps1" '%1' | |
#Dieses Script und SecureString.fb kommen nach C:\windows | |
#mit tel:01804100100 kann nun gewählt werden | |
# | |
Param([string]$Nummer="0180 4100100") #Zeitansage Telecom für 20 ct | |
# | |
function md5($text){ | |
$md5 = New-Object System.Security.Cryptography.MD5CryptoServiceProvider | |
$md5.ComputeHash([Text.Encoding]::utf8.getbytes($text))|%{$HC=''}{$HC+=$_.tostring("x2")}{$HC} | |
} | |
# | |
#Achtung [string] im Parameter nicht vergessen sonst wird aus 0175… -> 175… | |
#und sie lernen einen Anschluss Ihrer Nachbarschaft kennen | |
# | |
Function dial([string]$Nummer){ | |
if (!$Nummer){$Nummer="**610"} | |
#Nummernumwandlungfür Fritz in De, ohne Telefonanlage | |
$Nummer=([regex]::Replace($Nummer,"(?i)^tel:","")) | |
$Nummer=([regex]::Replace($Nummer,"^\+","00")) | |
$Nummer=[regex]::Replace($Nummer,"[^0-9*]","") | |
$Nummer=[regex]::Replace($Nummer,"0049","0") | |
$Password=get-content .\securestring.fb|ConvertTo-SecureString | |
$user="NAS-Read" | |
$hostfb="http://fritz.box" #$Host wird vom OS genutzt | |
$page_login= "/login_sid.lua" | |
$page_dial= "/fon_num/fonbook_list.lua?dial="+$Nummer+"&sid=" | |
$page_logout="/fon_num/fonbook_list.lua?logout=1&sid=" | |
$Ptr = [System.Runtime.InteropServices.Marshal]::SecureStringToBSTR($Password) | |
$pass=[System.Runtime.InteropServices.Marshal]::PtrToStringAuto($Ptr) | |
$R1 = Invoke-WebRequest ($hostfb+$page_login) | |
$Challenge=([xml]$R1).sessioninfo.challenge | |
$Code1=$Challenge+"-"+$Pass | |
$Code2=[char[]]$Code1|%{$Code2=""}{$Code2+=$_+[Char]0}{$Code2} | |
$Response= "response=" + $Challenge + "-" + $(md5($Code2)) | |
$Response+="&username="+$user #Response ist die Antwort auf die Challenge | |
$R2=Invoke-WebRequest -Uri ($hostfb+$page_login) -Method Post -Body $Response | |
$SID=([xml]($R2.Content)).ChildNodes.sid | |
$URiDial= $hostfb+$page_dial+$SID | |
$URILogout=$hostfb+$page_logout+$SID | |
$RequestCall=Invoke-WebRequest -Uri $URIDial | |
$RequestLogout=Invoke-WebRequest -Uri $URILogout | |
1..3|%{[console]::beep(440,1000);start-sleep(1)} | |
} | |
dial $Nummer | |
Keine Kommentare:
Kommentar veröffentlichen