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
}