Nützliche Powershell-Befehle für die Administration von Netphone bzw. Swyx VoIP-Anlagen

An Netphone angemeldete Hardware eines Benutzers auslesen

(In diesem Beispiel wird zusätzlich noch eine Einschränkung vorgenommen. Es werden nur die Telefone selectiert, deren Modellbezeichnung mit L oder F anfängt. Dies ist bei Swyx Anlagen für die Hardwaretelefone der Fall.)

$User = Get-IpPbxUser -UserName "Hr. Benutzer"
$Tel = $adminfacade.GetCurrentUserDevices($User.UserID) | Where-Object { ($_.strVersion -like "L*") -or ($_.strVersion -like "F*") }

Ermitteln welchem Benutzer die MAC Adresse eines Telefons für das Autologin zugeordnet ist

(In diesem Beispiel wird die MAC Adresse zusätzlich für das Autologin dieses Benutzers entfernt. Dies ist nötig, um die MAC Adresse einem anderen Benutzer zuweisen zu können. Z.B. wenn das Telefon getauscht wird oder ein Mitarbeiter einen neuen, festen Arbeitsplatz bekommt)

Get-IpPbxUser | where {$_.AutoLoginPhone -eq "00-1a-e8-8d-f6-d1"} | Set-IpPbxUserPhoneLogin -PhoneMAC ""

Autologin für einen Benutzer aktivieren

Get-IpPbxUser -UserName "Hr. Benutzer" | Set-IpPbxUserPhoneLogin -PhonePIN "1234" -PhoneMAC "ff-1a-e8-8d-f6-9f" -EnableAutoLogin:$true

Maximale Anzahl an Kurzwahlnummern abrufen / festlegen

Get-IpPbxSpeedDialKeyCount -UserName "Hr. Benutzer"
Set-IpPbxSpeedDialKeyCount -UserName "Hr. Benutzer" -SpeedDialKeyCount 50

Kurzwahlnummern anzeigen / festlegen

(Die Kurzwahlnummern sind unabhängig von der Tastenkonfiguration auf den Telefonen)

Get-IpPbxUser -UserName "Hr. Benutzer" | Get-IpPbxSpeedDialKey
New-IpPbxSpeedDialKey -Title "Fr. Ziel" -Number "1234" | Add-IpPbxSpeedDialKey -UserName "Hr. Benutzer" -SpeedDialKeyId 3
Collaboration für alle Benutzer zulassen (Remotesupport)
Get-IpPbxUser | foreach { 
	$x = Get-IpPbxUserData -UserName $_.Name
	$x.m_bAppSharingEnabled=1
	Set-IpPbxUserData -UserName $_.Name -UserData $x
}

Parameter für alle Benutzer anpassen

Get-IpPbxUser | foreach { 
	$x = Get-IpPbxUserData -UserName $_.Name

	$x.m_bRecordingEnabled=0
	$x.m_bRecordAllCalls=0
	$x.m_bUseIMClientAllowed=0
	$x.m_bSignalGroupNotificationCall=0
	Set-IpPbxUserData -UserName $_.Name -UserData $x
}

Netphone Client – Tabs beschriften

$UserData = Get-IpPbxUser -UserName "Hr. Benutzer" | Get-IpPbxUserData

$t1 = New-Object CTab
$t1.GroupID = 1
$t1.PageNumber = 1
$t1.Title = "Test"

$t2 = New-Object CTab
$t2.GroupID = 1
$t2.PageNumber = 2
$t2.Title = "Test2"

$Tabs = @($t1,$t2)

$UserData.m_Tabs = $Tabs
$UserData.m_iNumberOfTabs=2
    
Get-IpPbxUser -UserName "Hr. Benutzer" | Set-IpPbxUserData -UserData $UserData

Telefonbücher verwalten

Die Telefonbücher in der Netphone – ob global oder privat pro Benutzer – verwaltet man über folgende CMDlets. Generell wird per Get-IpPbxPhonebookEntry zuerst der Eintrag gesucht und dann fürs Update oder das Löschen an die entsprechenden CMDlets übergeben.

Auslesen
Gibt alle Einträge im persönlichen Telefonbuch des Benutzers aus, deren Name exact „Test“ ist. Die Parameter sind optional. Der Parameter SearchName darf keine Wildcards enthalten.

Get-IpPbxPhonebookEntry -PersonalPhoneBook -UserName <username> -SearchName "Test"

Updaten

$pbs = Get-IpPbxPhonebookEntry -PersonalPhoneBook -UserName 
    foreach ($pb in $pbs)
    {
        if ($pb.Hide -eq $false)
        {
            $pb.Hide = $true
            Update-IpPbxPhonebookEntry -PhonebookEntry $pb
        }
    }

Löschen

Get-IpPbxPhonebookEntry -PersonalPhoneBook -UserName <username> -SearchName "Test" | Remove-IpPbxPhonebookEntry

Feature Profile Benutzern zuweisen

$FeatureProfileEntry = Get-IpPbxFeatureProfile -FeatureProfileName "TestProfile"

$UserEntry = Get-IpPbxUser -UserName "Hr. Benutzer"
$UserEntry.FeatureProfileID = $FeatureProfileEntry.FeatureProfileID
Update-IpPbxUser -UserEntry $UserEntry

Rufumleitung aktivieren

Import-Module ippbx
Connect-IpPbx -ServerName server
$UserName = "Benutzername"
$u = Get-IpPbxUser -UserName $UserName
$u.DefaultFwd = 1
Update-IpPbxUser $u