public/functions/WANMobileConnection.ps1
|
function Get-AvmMobileAccessTechnology { <# .SYNOPSIS Wiki: https://github.com/chikenborgir/avmtools/wiki/Get-AvmMobileAccessTechnology .DESCRIPTION Wiki: https://github.com/chikenborgir/avmtools/wiki/Get-AvmMobileAccessTechnology .NOTES Author: chikenborgir Website: https://github.com/chikenborgir/avmtools License: https://github.com/chikenborgir/avmtools/blob/main/LICENSE .LINK https://github.com/chikenborgir/avmtools https://github.com/chikenborgir/avmtools/blob/main/LICENSE #> Param ( [Alias("i")] [Parameter()] [System.Management.Automation.SwitchParameter]$Insecure = $false, [Alias("r")] [Parameter()] [System.Management.Automation.SwitchParameter]$RemoteAccess = $false, [Alias("u")] [Parameter(Mandatory)] [ValidateNotNullOrEmpty()] [System.String]$Url, [Alias("p")] [Parameter(Mandatory)] [ValidateRange(0,65535)] [System.UInt16]$Port, [Alias("c")] [Parameter(Mandatory)] [ValidateNotNullOrEmpty()] [System.Management.Automation.PSCredential]$Credential ) [System.Collections.Hashtable]$SplatParameters = @{ Insecure = $Insecure Url = $Url Port = $Port Credential = $Credential SoapAction = "urn:dslforum-org:service:X_AVM-DE_WANMobileConnection:1#GetAccessTechnology" UrlPath = "$(if ($RemoteAccess) { "/tr064" })/upnp/control/x_wanmobileconn" XmlResponse = "GetAccessTechnologyResponse" } Connect-AvmDevice @SplatParameters } function Get-AvmMobileBandCapability { <# .SYNOPSIS Wiki: https://github.com/chikenborgir/avmtools/wiki/Get-AvmMobileBandCapability .DESCRIPTION Wiki: https://github.com/chikenborgir/avmtools/wiki/Get-AvmMobileBandCapability .NOTES Author: chikenborgir Website: https://github.com/chikenborgir/avmtools License: https://github.com/chikenborgir/avmtools/blob/main/LICENSE .LINK https://github.com/chikenborgir/avmtools https://github.com/chikenborgir/avmtools/blob/main/LICENSE #> Param ( [Alias("i")] [Parameter()] [System.Management.Automation.SwitchParameter]$Insecure = $false, [Alias("r")] [Parameter()] [System.Management.Automation.SwitchParameter]$RemoteAccess = $false, [Alias("u")] [Parameter(Mandatory)] [ValidateNotNullOrEmpty()] [System.String]$Url, [Alias("p")] [Parameter(Mandatory)] [ValidateRange(0,65535)] [System.UInt16]$Port, [Alias("c")] [Parameter(Mandatory)] [ValidateNotNullOrEmpty()] [System.Management.Automation.PSCredential]$Credential ) [System.Collections.Hashtable]$SplatParameters = @{ Insecure = $Insecure Url = $Url Port = $Port Credential = $Credential SoapAction = "urn:dslforum-org:service:X_AVM-DE_WANMobileConnection:1#GetBandCapabilities" UrlPath = "$(if ($RemoteAccess) { "/tr064" })/upnp/control/x_wanmobileconn" XmlResponse = "GetBandCapabilitiesResponse" } Connect-AvmDevice @SplatParameters } function Get-AvmMobileEnabledBandCapability { <# .SYNOPSIS Wiki: https://github.com/chikenborgir/avmtools/wiki/Get-AvmMobileEnabledBandCapability .DESCRIPTION Wiki: https://github.com/chikenborgir/avmtools/wiki/Get-AvmMobileEnabledBandCapability .NOTES Author: chikenborgir Website: https://github.com/chikenborgir/avmtools License: https://github.com/chikenborgir/avmtools/blob/main/LICENSE .LINK https://github.com/chikenborgir/avmtools https://github.com/chikenborgir/avmtools/blob/main/LICENSE #> Param ( [Alias("i")] [Parameter()] [System.Management.Automation.SwitchParameter]$Insecure = $false, [Alias("r")] [Parameter()] [System.Management.Automation.SwitchParameter]$RemoteAccess = $false, [Alias("u")] [Parameter(Mandatory)] [ValidateNotNullOrEmpty()] [System.String]$Url, [Alias("p")] [Parameter(Mandatory)] [ValidateRange(0,65535)] [System.UInt16]$Port, [Alias("c")] [Parameter(Mandatory)] [ValidateNotNullOrEmpty()] [System.Management.Automation.PSCredential]$Credential ) [System.Collections.Hashtable]$SplatParameters = @{ Insecure = $Insecure Url = $Url Port = $Port Credential = $Credential SoapAction = "urn:dslforum-org:service:X_AVM-DE_WANMobileConnection:1#GetEnabledBandCapabilities" UrlPath = "$(if ($RemoteAccess) { "/tr064" })/upnp/control/x_wanmobileconn" XmlResponse = "GetEnabledBandCapabilitiesResponse" } Connect-AvmDevice @SplatParameters } function Get-AvmMobileInfo { <# .SYNOPSIS Wiki: https://github.com/chikenborgir/avmtools/wiki/Get-AvmMobileInfo .DESCRIPTION Wiki: https://github.com/chikenborgir/avmtools/wiki/Get-AvmMobileInfo .NOTES Author: chikenborgir Website: https://github.com/chikenborgir/avmtools License: https://github.com/chikenborgir/avmtools/blob/main/LICENSE .LINK https://github.com/chikenborgir/avmtools https://github.com/chikenborgir/avmtools/blob/main/LICENSE #> Param ( [Alias("i")] [Parameter()] [System.Management.Automation.SwitchParameter]$Insecure = $false, [Alias("r")] [Parameter()] [System.Management.Automation.SwitchParameter]$RemoteAccess = $false, [Alias("u")] [Parameter(Mandatory)] [ValidateNotNullOrEmpty()] [System.String]$Url, [Alias("p")] [Parameter(Mandatory)] [ValidateRange(0,65535)] [System.UInt16]$Port, [Alias("c")] [Parameter(Mandatory)] [ValidateNotNullOrEmpty()] [System.Management.Automation.PSCredential]$Credential ) [System.Collections.Hashtable]$SplatParameters = @{ Insecure = $Insecure Url = $Url Port = $Port Credential = $Credential SoapAction = "urn:dslforum-org:service:X_AVM-DE_WANMobileConnection:1#GetInfo" UrlPath = "$(if ($RemoteAccess) { "/tr064" })/upnp/control/x_wanmobileconn" XmlResponse = "GetInfoResponse" } Connect-AvmDevice @SplatParameters } function Get-AvmMobileInfoEx { <# .SYNOPSIS Wiki: https://github.com/chikenborgir/avmtools/wiki/Get-AvmMobileInfoEx .DESCRIPTION Wiki: https://github.com/chikenborgir/avmtools/wiki/Get-AvmMobileInfoEx .NOTES Author: chikenborgir Website: https://github.com/chikenborgir/avmtools License: https://github.com/chikenborgir/avmtools/blob/main/LICENSE .LINK https://github.com/chikenborgir/avmtools https://github.com/chikenborgir/avmtools/blob/main/LICENSE #> Param ( [Alias("i")] [Parameter()] [System.Management.Automation.SwitchParameter]$Insecure = $false, [Alias("r")] [Parameter()] [System.Management.Automation.SwitchParameter]$RemoteAccess = $false, [Alias("u")] [Parameter(Mandatory)] [ValidateNotNullOrEmpty()] [System.String]$Url, [Alias("p")] [Parameter(Mandatory)] [ValidateRange(0,65535)] [System.UInt16]$Port, [Alias("c")] [Parameter(Mandatory)] [ValidateNotNullOrEmpty()] [System.Management.Automation.PSCredential]$Credential ) [System.Collections.Hashtable]$SplatParameters = @{ Insecure = $Insecure Url = $Url Port = $Port Credential = $Credential SoapAction = "urn:dslforum-org:service:X_AVM-DE_WANMobileConnection:1#GetInfoEx" UrlPath = "$(if ($RemoteAccess) { "/tr064" })/upnp/control/x_wanmobileconn" XmlResponse = "GetInfoExResponse" } Connect-AvmDevice @SplatParameters } function Get-AvmMobilePreferredAccessTechnology { <# .SYNOPSIS Wiki: https://github.com/chikenborgir/avmtools/wiki/Get-AvmMobilePreferredAccessTechnology .DESCRIPTION Wiki: https://github.com/chikenborgir/avmtools/wiki/Get-AvmMobilePreferredAccessTechnology .NOTES Author: chikenborgir Website: https://github.com/chikenborgir/avmtools License: https://github.com/chikenborgir/avmtools/blob/main/LICENSE .LINK https://github.com/chikenborgir/avmtools https://github.com/chikenborgir/avmtools/blob/main/LICENSE #> Param ( [Alias("i")] [Parameter()] [System.Management.Automation.SwitchParameter]$Insecure = $false, [Alias("r")] [Parameter()] [System.Management.Automation.SwitchParameter]$RemoteAccess = $false, [Alias("u")] [Parameter(Mandatory)] [ValidateNotNullOrEmpty()] [System.String]$Url, [Alias("p")] [Parameter(Mandatory)] [ValidateRange(0,65535)] [System.UInt16]$Port, [Alias("c")] [Parameter(Mandatory)] [ValidateNotNullOrEmpty()] [System.Management.Automation.PSCredential]$Credential ) [System.Collections.Hashtable]$SplatParameters = @{ Insecure = $Insecure Url = $Url Port = $Port Credential = $Credential SoapAction = "urn:dslforum-org:service:X_AVM-DE_WANMobileConnection:1#GetPreferredAccessTechnology" UrlPath = "$(if ($RemoteAccess) { "/tr064" })/upnp/control/x_wanmobileconn" XmlResponse = "GetPreferredAccessTechnologyResponse" } Connect-AvmDevice @SplatParameters } function Set-AvmMobileAccessTechnology { <# .SYNOPSIS Wiki: https://github.com/chikenborgir/avmtools/wiki/Set-AvmMobileAccessTechnology .DESCRIPTION Wiki: https://github.com/chikenborgir/avmtools/wiki/Set-AvmMobileAccessTechnology .NOTES Author: chikenborgir Website: https://github.com/chikenborgir/avmtools License: https://github.com/chikenborgir/avmtools/blob/main/LICENSE .LINK https://github.com/chikenborgir/avmtools https://github.com/chikenborgir/avmtools/blob/main/LICENSE #> Param ( [Alias("i")] [Parameter()] [System.Management.Automation.SwitchParameter]$Insecure = $false, [Alias("r")] [Parameter()] [System.Management.Automation.SwitchParameter]$RemoteAccess = $false, [Alias("t")] [Parameter()] [System.String]$Token, [Alias("u")] [Parameter(Mandatory)] [ValidateNotNullOrEmpty()] [System.String]$Url, [Alias("p")] [Parameter(Mandatory)] [ValidateRange(0,65535)] [System.UInt16]$Port, [Alias("c")] [Parameter(Mandatory)] [ValidateNotNullOrEmpty()] [System.Management.Automation.PSCredential]$Credential, [Parameter(Mandatory)] [ValidateSet("AUTO","GSM","UMTS","LTE","5G-NSA","5G-SA")] [System.String]$NewAccessTechnology ) $AvmWebrequestBody = [AvmBody]::new() $AvmWebrequestBody.SoapAction = "urn:dslforum-org:service:X_AVM-DE_WANMobileConnection:1" $AvmWebrequestBody.UrlPath = "$(if ($RemoteAccess) { "/tr064" })/upnp/control/x_wanmobileconn" $AvmWebrequestBody.Action = "SetAccessTechnology" $AvmWebrequestBody.Token = $Token $AvmWebrequestBody.InnerBody = "<s:NewAccessTechnology>{0}</s:NewAccessTechnology>" -f $NewAccessTechnology [System.Collections.Hashtable]$SplatParameters = @{ Insecure = $Insecure Url = $Url Port = $Port Credential = $Credential SoapAction = $AvmWebrequestBody.GenerateSoapAction() UrlPath = $AvmWebrequestBody.UrlPath Body = $AvmWebrequestBody.GenerateBody() XmlResponse = $AvmWebrequestBody.GenerateXmlResponse() } Connect-AvmDevice @SplatParameters } function Set-AvmMobileEnabledBandCapability { <# .SYNOPSIS Wiki: https://github.com/chikenborgir/avmtools/wiki/Set-AvmMobileEnabledBandCapability .DESCRIPTION Wiki: https://github.com/chikenborgir/avmtools/wiki/Set-AvmMobileEnabledBandCapability .NOTES Author: chikenborgir Website: https://github.com/chikenborgir/avmtools License: https://github.com/chikenborgir/avmtools/blob/main/LICENSE .LINK https://github.com/chikenborgir/avmtools https://github.com/chikenborgir/avmtools/blob/main/LICENSE #> Param ( [Alias("i")] [Parameter()] [System.Management.Automation.SwitchParameter]$Insecure = $false, [Alias("r")] [Parameter()] [System.Management.Automation.SwitchParameter]$RemoteAccess = $false, [Alias("t")] [Parameter()] [System.String]$Token, [Alias("u")] [Parameter(Mandatory)] [ValidateNotNullOrEmpty()] [System.String]$Url, [Alias("p")] [Parameter(Mandatory)] [ValidateRange(0,65535)] [System.UInt16]$Port, [Alias("c")] [Parameter(Mandatory)] [ValidateNotNullOrEmpty()] [System.Management.Automation.PSCredential]$Credential, [Parameter()] [System.String]$NewBandCapabilitiesLTE, [Parameter()] [System.String]$NewBandCapabilities5GNSA, [Parameter()] [System.String]$NewBandCapabilities5GSA ) $AvmWebrequestBody = [AvmBody]::new() $AvmWebrequestBody.SoapAction = "urn:dslforum-org:service:X_AVM-DE_WANMobileConnection:1" $AvmWebrequestBody.UrlPath = "$(if ($RemoteAccess) { "/tr064" })/upnp/control/x_wanmobileconn" $AvmWebrequestBody.Action = "SetEnabledBandCapabilities" $AvmWebrequestBody.Token = $Token $AvmWebrequestBody.InnerBody = @" <s:NewBandCapabilitiesLTE>{0}</s:NewBandCapabilitiesLTE> <s:NewBandCapabilities5GNSA>{1}</s:NewBandCapabilities5GNSA> <s:NewBandCapabilities5GSA>{2}</s:NewBandCapabilities5GSA> "@ -f $NewBandCapabilitiesLTE, $NewBandCapabilities5GNSA, $NewBandCapabilities5GSA [System.Collections.Hashtable]$SplatParameters = @{ Insecure = $Insecure Url = $Url Port = $Port Credential = $Credential SoapAction = $AvmWebrequestBody.GenerateSoapAction() UrlPath = $AvmWebrequestBody.UrlPath Body = $AvmWebrequestBody.GenerateBody() XmlResponse = $AvmWebrequestBody.GenerateXmlResponse() } Connect-AvmDevice @SplatParameters } function Set-AvmMobilePin { <# .SYNOPSIS Wiki: https://github.com/chikenborgir/avmtools/wiki/Set-AvmMobilePin .DESCRIPTION Wiki: https://github.com/chikenborgir/avmtools/wiki/Set-AvmMobilePin .NOTES Author: chikenborgir Website: https://github.com/chikenborgir/avmtools License: https://github.com/chikenborgir/avmtools/blob/main/LICENSE .LINK https://github.com/chikenborgir/avmtools https://github.com/chikenborgir/avmtools/blob/main/LICENSE #> Param ( [Alias("i")] [Parameter()] [System.Management.Automation.SwitchParameter]$Insecure = $false, [Alias("r")] [Parameter()] [System.Management.Automation.SwitchParameter]$RemoteAccess = $false, [Alias("t")] [Parameter()] [System.String]$Token, [Alias("u")] [Parameter(Mandatory)] [ValidateNotNullOrEmpty()] [System.String]$Url, [Alias("p")] [Parameter(Mandatory)] [ValidateRange(0,65535)] [System.UInt16]$Port, [Alias("c")] [Parameter(Mandatory)] [ValidateNotNullOrEmpty()] [System.Management.Automation.PSCredential]$Credential, [Parameter(Mandatory)] [ValidateNotNullOrEmpty()] [System.Security.SecureString]$NewPIN ) $SecurePointer = [Runtime.InteropServices.Marshal]::SecureStringToBSTR($NewPIN) $PlainNewPIN = [Runtime.InteropServices.Marshal]::PtrToStringAuto($SecurePointer) [Runtime.InteropServices.Marshal]::ZeroFreeBSTR($SecurePointer) $AvmWebrequestBody = [AvmBody]::new() $AvmWebrequestBody.SoapAction = "urn:dslforum-org:service:X_AVM-DE_WANMobileConnection:1" $AvmWebrequestBody.UrlPath = "$(if ($RemoteAccess) { "/tr064" })/upnp/control/x_wanmobileconn" $AvmWebrequestBody.Action = "SetPIN" $AvmWebrequestBody.Token = $Token $AvmWebrequestBody.InnerBody = "<s:NewPIN>{0}</s:NewPIN>" -f $PlainNewPIN [System.Collections.Hashtable]$SplatParameters = @{ Insecure = $Insecure Url = $Url Port = $Port Credential = $Credential SoapAction = $AvmWebrequestBody.GenerateSoapAction() UrlPath = $AvmWebrequestBody.UrlPath Body = $AvmWebrequestBody.GenerateBody() XmlResponse = $AvmWebrequestBody.GenerateXmlResponse() } Connect-AvmDevice @SplatParameters } function Set-AvmMobilePreferredAccessTechnology { <# .SYNOPSIS Wiki: https://github.com/chikenborgir/avmtools/wiki/Set-AvmMobilePreferredAccessTechnology .DESCRIPTION Wiki: https://github.com/chikenborgir/avmtools/wiki/Set-AvmMobilePreferredAccessTechnology .NOTES Author: chikenborgir Website: https://github.com/chikenborgir/avmtools License: https://github.com/chikenborgir/avmtools/blob/main/LICENSE .LINK https://github.com/chikenborgir/avmtools https://github.com/chikenborgir/avmtools/blob/main/LICENSE #> Param ( [Alias("i")] [Parameter()] [System.Management.Automation.SwitchParameter]$Insecure = $false, [Alias("r")] [Parameter()] [System.Management.Automation.SwitchParameter]$RemoteAccess = $false, [Alias("t")] [Parameter()] [System.String]$Token, [Alias("u")] [Parameter(Mandatory)] [ValidateNotNullOrEmpty()] [System.String]$Url, [Alias("p")] [Parameter(Mandatory)] [ValidateRange(0,65535)] [System.UInt16]$Port, [Alias("c")] [Parameter(Mandatory)] [ValidateNotNullOrEmpty()] [System.Management.Automation.PSCredential]$Credential, [Parameter(Mandatory)] [ValidateSet("AUTO","NR5G","LTE","WCDMA")] [System.String]$NewPreferredAccessTechnology ) $AvmWebrequestBody = [AvmBody]::new() $AvmWebrequestBody.SoapAction = "urn:dslforum-org:service:X_AVM-DE_WANMobileConnection:1" $AvmWebrequestBody.UrlPath = "$(if ($RemoteAccess) { "/tr064" })/upnp/control/x_wanmobileconn" $AvmWebrequestBody.Action = "SetPreferredAccessTechnology" $AvmWebrequestBody.Token = $Token $AvmWebrequestBody.InnerBody = "<s:NewPreferredAccessTechnology>{0}</s:NewPreferredAccessTechnology>" -f $NewPreferredAccessTechnology [System.Collections.Hashtable]$SplatParameters = @{ Insecure = $Insecure Url = $Url Port = $Port Credential = $Credential SoapAction = $AvmWebrequestBody.GenerateSoapAction() UrlPath = $AvmWebrequestBody.UrlPath Body = $AvmWebrequestBody.GenerateBody() XmlResponse = $AvmWebrequestBody.GenerateXmlResponse() } Connect-AvmDevice @SplatParameters } function Set-AvmMobilePuk { <# .SYNOPSIS Wiki: https://github.com/chikenborgir/avmtools/wiki/Set-AvmMobilePuk .DESCRIPTION Wiki: https://github.com/chikenborgir/avmtools/wiki/Set-AvmMobilePuk .NOTES Author: chikenborgir Website: https://github.com/chikenborgir/avmtools License: https://github.com/chikenborgir/avmtools/blob/main/LICENSE .LINK https://github.com/chikenborgir/avmtools https://github.com/chikenborgir/avmtools/blob/main/LICENSE #> Param ( [Alias("i")] [Parameter()] [System.Management.Automation.SwitchParameter]$Insecure = $false, [Alias("r")] [Parameter()] [System.Management.Automation.SwitchParameter]$RemoteAccess = $false, [Alias("t")] [Parameter()] [System.String]$Token, [Alias("u")] [Parameter(Mandatory)] [ValidateNotNullOrEmpty()] [System.String]$Url, [Alias("p")] [Parameter(Mandatory)] [ValidateRange(0,65535)] [System.UInt16]$Port, [Alias("c")] [Parameter(Mandatory)] [ValidateNotNullOrEmpty()] [System.Management.Automation.PSCredential]$Credential, [Parameter(Mandatory)] [ValidateNotNullOrEmpty()] [System.Security.SecureString]$NewPUK, [Parameter(Mandatory)] [ValidateNotNullOrEmpty()] [System.Security.SecureString]$NewIPIN ) $SecurePointer = [Runtime.InteropServices.Marshal]::SecureStringToBSTR($NewPUK) $PlainNewPUK = [Runtime.InteropServices.Marshal]::PtrToStringAuto($SecurePointer) [Runtime.InteropServices.Marshal]::ZeroFreeBSTR($SecurePointer) $SecurePointer = [Runtime.InteropServices.Marshal]::SecureStringToBSTR($NewIPIN) $PlainNewIPIN = [Runtime.InteropServices.Marshal]::PtrToStringAuto($SecurePointer) [Runtime.InteropServices.Marshal]::ZeroFreeBSTR($SecurePointer) $AvmWebrequestBody = [AvmBody]::new() $AvmWebrequestBody.SoapAction = "urn:dslforum-org:service:X_AVM-DE_WANMobileConnection:1" $AvmWebrequestBody.UrlPath = "$(if ($RemoteAccess) { "/tr064" })/upnp/control/x_wanmobileconn" $AvmWebrequestBody.Action = "SetPUK" $AvmWebrequestBody.Token = $Token $AvmWebrequestBody.InnerBody = @" <s:NewPUK>{0}</s:NewPUK> <s:NewIPIN>{1}</s:NewIPIN> "@ -f $PlainNewPUK, $PlainNewIPIN [System.Collections.Hashtable]$SplatParameters = @{ Insecure = $Insecure Url = $Url Port = $Port Credential = $Credential SoapAction = $AvmWebrequestBody.GenerateSoapAction() UrlPath = $AvmWebrequestBody.UrlPath Body = $AvmWebrequestBody.GenerateBody() XmlResponse = $AvmWebrequestBody.GenerateXmlResponse() } Connect-AvmDevice @SplatParameters } |