Functions/Generic/VoIP.ps1
function Add-AvmVoipAccount { <# .SYNOPSIS Wiki: https://github.com/Gincules/avmtools/wiki/Add-AvmVoipAccount .DESCRIPTION Wiki: https://github.com/Gincules/avmtools/wiki/Add-AvmVoipAccount .NOTES Author: Gincules Website: https://github.com/Gincules/avmtools License: https://github.com/Gincules/avmtools/blob/main/LICENSE .LINK https://github.com/Gincules/avmtools https://github.com/Gincules/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, [Parameter(Mandatory)] [ValidateNotNullOrEmpty()] [System.Management.Automation.PSCredential]$NewVOIPCredential, [Parameter(Mandatory)] [ValidateRange(0,65535)] [System.UInt16]$NewVoIPAccountIndex, [Parameter(Mandatory)] [ValidateNotNullOrEmpty()] [System.String]$NewVoIPRegistrar, [Parameter(Mandatory)] [ValidateNotNullOrEmpty()] [System.String]$NewVoIPNumber, [Parameter(Mandatory)] [ValidateNotNullOrEmpty()] [System.String]$NewVoIPOutboundProxy, [Parameter(Mandatory)] [ValidateNotNullOrEmpty()] [System.String]$NewVoIPSTUNServer ) $AvmWebrequestBody = [AvmBody]::new() $AvmWebrequestBody.SoapAction = "urn:dslforum-org:service:X_VoIP:1" $AvmWebrequestBody.UrlPath = "$(if ($RemoteAccess) { "/tr064" })/upnp/control/x_voip" $AvmWebrequestBody.Action = "X_AVM-DE_AddVoIPAccount" $AvmWebrequestBody.InnerBody = @" <s:NewVoIPAccountIndex>{0}</s:NewVoIPAccountIndex> <s:NewVoIPRegistrar>{1}</s:NewVoIPRegistrar> <s:NewVoIPNumber>{2}</s:NewVoIPNumber> <s:NewVoIPUsername>{3}</s:NewVoIPUsername> <s:NewVoIPPassword>{4}</s:NewVoIPPassword> <s:NewVoIPOutboundProxy>{5}</s:NewVoIPOutboundProxy> <s:NewVoIPSTUNServer>{6}</s:NewVoIPSTUNServer> "@ -f $NewVoIPAccountIndex, $NewVoIPRegistrar, $NewVoIPNumber, $NewVOIPCredential.GetNetworkCredential().UserName, $NewVOIPCredential.GetNetworkCredential().Password, $NewVoIPOutboundProxy, $NewVoIPSTUNServer [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 Get-AvmVoipAccount { <# .SYNOPSIS Wiki: https://github.com/Gincules/avmtools/wiki/Get-AvmVoipAccount .DESCRIPTION Wiki: https://github.com/Gincules/avmtools/wiki/Get-AvmVoipAccount .NOTES Author: Gincules Website: https://github.com/Gincules/avmtools License: https://github.com/Gincules/avmtools/blob/main/LICENSE .LINK https://github.com/Gincules/avmtools https://github.com/Gincules/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, [Parameter(Mandatory)] [ValidateNotNullOrEmpty()] [System.String]$NewVoIPAccountIndex ) $AvmWebrequestBody = [AvmBody]::new() $AvmWebrequestBody.SoapAction = "urn:dslforum-org:service:X_VoIP:1" $AvmWebrequestBody.UrlPath = "$(if ($RemoteAccess) { "/tr064" })/upnp/control/x_voip" $AvmWebrequestBody.Action = "X_AVM-DE_GetVoIPAccount" $AvmWebrequestBody.InnerBody = "<s:NewVoIPAccountIndex>{0}</s:NewVoIPAccountIndex>" -f $NewVoIPAccountIndex [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 Get-AvmVoipAlarmClock { <# .SYNOPSIS Wiki: https://github.com/Gincules/avmtools/wiki/Get-AvmVoipAlarmClock .DESCRIPTION Wiki: https://github.com/Gincules/avmtools/wiki/Get-AvmVoipAlarmClock .NOTES Author: Gincules Website: https://github.com/Gincules/avmtools License: https://github.com/Gincules/avmtools/blob/main/LICENSE .LINK https://github.com/Gincules/avmtools https://github.com/Gincules/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, [Parameter(Mandatory)] [ValidateNotNullOrEmpty()] [System.String]$NewIndex ) $AvmWebrequestBody = [AvmBody]::new() $AvmWebrequestBody.SoapAction = "urn:dslforum-org:service:X_VoIP:1" $AvmWebrequestBody.UrlPath = "$(if ($RemoteAccess) { "/tr064" })/upnp/control/x_voip" $AvmWebrequestBody.Action = "X_AVM-DE_GetAlarmClock" $AvmWebrequestBody.InnerBody = "<s:NewIndex>{0}</s:NewIndex>" -f $NewIndex [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 Get-AvmVoipClient { <# .SYNOPSIS Wiki: https://github.com/Gincules/avmtools/wiki/Get-AvmVoipClient .DESCRIPTION Wiki: https://github.com/Gincules/avmtools/wiki/Get-AvmVoipClient .NOTES Author: Gincules Website: https://github.com/Gincules/avmtools License: https://github.com/Gincules/avmtools/blob/main/LICENSE .LINK https://github.com/Gincules/avmtools https://github.com/Gincules/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, [Parameter(Mandatory)] [ValidateNotNullOrEmpty()] [System.String]$NewClientIndex ) $AvmWebrequestBody = [AvmBody]::new() $AvmWebrequestBody.SoapAction = "urn:dslforum-org:service:X_VoIP:1" $AvmWebrequestBody.UrlPath = "$(if ($RemoteAccess) { "/tr064" })/upnp/control/x_voip" $AvmWebrequestBody.Action = "X_AVM-DE_GetClient" $AvmWebrequestBody.InnerBody = "<s:NewX_AVM-DE_ClientIndex>{0}</s:NewX_AVM-DE_ClientIndex>" -f $NewClientIndex [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 Get-AvmVoipClient2 { <# .SYNOPSIS Wiki: https://github.com/Gincules/avmtools/wiki/Get-AvmVoipClient2 .DESCRIPTION Wiki: https://github.com/Gincules/avmtools/wiki/Get-AvmVoipClient2 .NOTES Author: Gincules Website: https://github.com/Gincules/avmtools License: https://github.com/Gincules/avmtools/blob/main/LICENSE .LINK https://github.com/Gincules/avmtools https://github.com/Gincules/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, [Parameter(Mandatory)] [ValidateNotNullOrEmpty()] [System.String]$NewClientIndex ) $AvmWebrequestBody = [AvmBody]::new() $AvmWebrequestBody.SoapAction = "urn:dslforum-org:service:X_VoIP:1" $AvmWebrequestBody.UrlPath = "$(if ($RemoteAccess) { "/tr064" })/upnp/control/x_voip" $AvmWebrequestBody.Action = "X_AVM-DE_GetClient2" $AvmWebrequestBody.InnerBody = "<s:NewX_AVM-DE_ClientIndex>{0}</s:NewX_AVM-DE_ClientIndex>" -f $NewClientIndex [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 Get-AvmVoipClient3 { <# .SYNOPSIS Wiki: https://github.com/Gincules/avmtools/wiki/Get-AvmVoipClient3 .DESCRIPTION Wiki: https://github.com/Gincules/avmtools/wiki/Get-AvmVoipClient3 .NOTES Author: Gincules Website: https://github.com/Gincules/avmtools License: https://github.com/Gincules/avmtools/blob/main/LICENSE .LINK https://github.com/Gincules/avmtools https://github.com/Gincules/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, [Parameter(Mandatory)] [ValidateNotNullOrEmpty()] [System.String]$NewClientIndex ) $AvmWebrequestBody = [AvmBody]::new() $AvmWebrequestBody.SoapAction = "urn:dslforum-org:service:X_VoIP:1" $AvmWebrequestBody.UrlPath = "$(if ($RemoteAccess) { "/tr064" })/upnp/control/x_voip" $AvmWebrequestBody.Action = "X_AVM-DE_GetClient3" $AvmWebrequestBody.InnerBody = "<s:NewX_AVM-DE_ClientIndex>{0}</s:NewX_AVM-DE_ClientIndex>" -f $NewClientIndex [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 Get-AvmVoipClientByIp { <# .SYNOPSIS Wiki: https://github.com/Gincules/avmtools/wiki/Get-AvmVoipClientByIp .DESCRIPTION Wiki: https://github.com/Gincules/avmtools/wiki/Get-AvmVoipClientByIp .NOTES Author: Gincules Website: https://github.com/Gincules/avmtools License: https://github.com/Gincules/avmtools/blob/main/LICENSE .LINK https://github.com/Gincules/avmtools https://github.com/Gincules/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, [Parameter(Mandatory)] [ValidateRange(0,4294967295)] [System.UInt32]$NewClientId ) $AvmWebrequestBody = [AvmBody]::new() $AvmWebrequestBody.SoapAction = "urn:dslforum-org:service:X_VoIP:1" $AvmWebrequestBody.UrlPath = "$(if ($RemoteAccess) { "/tr064" })/upnp/control/x_voip" $AvmWebrequestBody.Action = "X_AVM-DE_GetClient3" $AvmWebrequestBody.InnerBody = "<s:NewX_AVM-DE_ClientId>{0}</s:NewX_AVM-DE_ClientId>" -f $NewClientId [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 Get-AvmVoipClients { <# .SYNOPSIS Wiki: https://github.com/Gincules/avmtools/wiki/Get-AvmVoipClients .DESCRIPTION Wiki: https://github.com/Gincules/avmtools/wiki/Get-AvmVoipClients .NOTES Author: Gincules Website: https://github.com/Gincules/avmtools License: https://github.com/Gincules/avmtools/blob/main/LICENSE .LINK https://github.com/Gincules/avmtools https://github.com/Gincules/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_VoIP:1#X_AVM-DE_GetClients" UrlPath = "$(if ($RemoteAccess) { "/tr064" })/upnp/control/x_voip" XmlResponse = "X_AVM-DE_GetClientsResponse" } Connect-AvmDevice @SplatParameters } function Get-AvmVoipCommonAreaCode { <# .SYNOPSIS Wiki: https://github.com/Gincules/avmtools/wiki/Get-AvmVoipCommonAreaCode .DESCRIPTION Wiki: https://github.com/Gincules/avmtools/wiki/Get-AvmVoipCommonAreaCode .NOTES Author: Gincules Website: https://github.com/Gincules/avmtools License: https://github.com/Gincules/avmtools/blob/main/LICENSE .LINK https://github.com/Gincules/avmtools https://github.com/Gincules/avmtools/blob/main/LICENSE #> Param ( [Alias("i")] [Parameter()] [System.Management.Automation.SwitchParameter]$Insecure = $false, [Alias("r")] [Parameter()] [System.Management.Automation.SwitchParameter]$RemoteAccess = $false, [Alias("d")] [Parameter()] [System.Management.Automation.SwitchParameter]$Deprecated = $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 ) if ($Deprecated) { $SoapAction = "urn:dslforum-org:service:X_VoIP:1#GetVoIPCommonAreaCode" $XmlResponse = "GetVoIPCommonAreaCodeResponse" } else { $SoapAction = "urn:dslforum-org:service:X_VoIP:1#X_AVM-DE_GetVoIPCommonAreaCode" $XmlResponse = "X_AVM-DE_GetVoIPCommonAreaCodeResponse" } [System.Collections.Hashtable]$SplatParameters = @{ Insecure = $Insecure Url = $Url Port = $Port Credential = $Credential SoapAction = $SoapAction UrlPath = "$(if ($RemoteAccess) { "/tr064" })/upnp/control/x_voip" XmlResponse = $XmlResponse } Connect-AvmDevice @SplatParameters } function Get-AvmVoipCommonCountryCode { <# .SYNOPSIS Wiki: https://github.com/Gincules/avmtools/wiki/Get-AvmVoipCommonCountryCode .DESCRIPTION Wiki: https://github.com/Gincules/avmtools/wiki/Get-AvmVoipCommonCountryCode .NOTES Author: Gincules Website: https://github.com/Gincules/avmtools License: https://github.com/Gincules/avmtools/blob/main/LICENSE .LINK https://github.com/Gincules/avmtools https://github.com/Gincules/avmtools/blob/main/LICENSE #> Param ( [Alias("i")] [Parameter()] [System.Management.Automation.SwitchParameter]$Insecure = $false, [Alias("r")] [Parameter()] [System.Management.Automation.SwitchParameter]$RemoteAccess = $false, [Alias("d")] [Parameter()] [System.Management.Automation.SwitchParameter]$Deprecated = $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 ) if ($Deprecated) { $SoapAction = "urn:dslforum-org:service:X_VoIP:1#GetVoIPCommonCountryCode" $XmlResponse = "GetVoIPCommonCountryCodeResponse" } else { $SoapAction = "urn:dslforum-org:service:X_VoIP:1#X_AVM-DE_GetVoIPCommonCountryCode" $XmlResponse = "X_AVM-DE_GetVoIPCommonCountryCodeResponse" } [System.Collections.Hashtable]$SplatParameters = @{ Insecure = $Insecure Url = $Url Port = $Port Credential = $Credential SoapAction = $SoapAction UrlPath = "$(if ($RemoteAccess) { "/tr064" })/upnp/control/x_voip" XmlResponse = $XmlResponse } Connect-AvmDevice @SplatParameters } function Get-AvmVoipDialConfig { <# .SYNOPSIS Wiki: https://github.com/Gincules/avmtools/wiki/Get-AvmVoipDialConfig .DESCRIPTION Wiki: https://github.com/Gincules/avmtools/wiki/Get-AvmVoipDialConfig .NOTES Author: Gincules Website: https://github.com/Gincules/avmtools License: https://github.com/Gincules/avmtools/blob/main/LICENSE .LINK https://github.com/Gincules/avmtools https://github.com/Gincules/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_VoIP:1#X_AVM-DE_DialGetConfig" UrlPath = "$(if ($RemoteAccess) { "/tr064" })/upnp/control/x_voip" XmlResponse = "X_AVM-DE_DialGetConfigResponse" } Connect-AvmDevice @SplatParameters } function Get-AvmVoipEnableAreaCode { <# .SYNOPSIS Wiki: https://github.com/Gincules/avmtools/wiki/Get-AvmVoipEnableAreaCode .DESCRIPTION Wiki: https://github.com/Gincules/avmtools/wiki/Get-AvmVoipEnableAreaCode .NOTES Author: Gincules Website: https://github.com/Gincules/avmtools License: https://github.com/Gincules/avmtools/blob/main/LICENSE .LINK https://github.com/Gincules/avmtools https://github.com/Gincules/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, [Parameter(Mandatory)] [ValidateRange(0,65535)] [System.UInt16]$NewVoIPAccountIndex ) $AvmWebrequestBody = [AvmBody]::new() $AvmWebrequestBody.SoapAction = "urn:dslforum-org:service:X_AVM-DE_Speedtest:1" $AvmWebrequestBody.UrlPath = "$(if ($RemoteAccess) { "/tr064" })/upnp/control/x_speedtest" $AvmWebrequestBody.Action = "GetVoIPEnableAreaCode" $AvmWebrequestBody.InnerBody = "<s:NewVoIPAccountIndex>{0}</s:NewVoIPAccountIndex>" -f $NewVoIPAccountIndex [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 Get-AvmVoipEnableCountryCode { <# .SYNOPSIS Wiki: https://github.com/Gincules/avmtools/wiki/Get-AvmVoipEnableCountryCode .DESCRIPTION Wiki: https://github.com/Gincules/avmtools/wiki/Get-AvmVoipEnableCountryCode .NOTES Author: Gincules Website: https://github.com/Gincules/avmtools License: https://github.com/Gincules/avmtools/blob/main/LICENSE .LINK https://github.com/Gincules/avmtools https://github.com/Gincules/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, [Parameter(Mandatory)] [ValidateRange(0,65535)] [System.UInt16]$NewVoIPAccountIndex ) $AvmWebrequestBody = [AvmBody]::new() $AvmWebrequestBody.SoapAction = "urn:dslforum-org:service:X_VoIP:1" $AvmWebrequestBody.UrlPath = "$(if ($RemoteAccess) { "/tr064" })/upnp/control/x_voip" $AvmWebrequestBody.Action = "GetVoIPEnableCountryCode" $AvmWebrequestBody.InnerBody = "<s:NewVoIPAccountIndex>{0}</s:NewVoIPAccountIndex>" -f $NewVoIPAccountIndex [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 Get-AvmVoipExistingNumber { <# .SYNOPSIS Wiki: https://github.com/Gincules/avmtools/wiki/Get-AvmVoipExistingNumber .DESCRIPTION Wiki: https://github.com/Gincules/avmtools/wiki/Get-AvmVoipExistingNumber .NOTES Author: Gincules Website: https://github.com/Gincules/avmtools License: https://github.com/Gincules/avmtools/blob/main/LICENSE .LINK https://github.com/Gincules/avmtools https://github.com/Gincules/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_VoIP:1#GetExistingVoIPNumbers" UrlPath = "$(if ($RemoteAccess) { "/tr064" })/upnp/control/x_voip" XmlResponse = "GetExistingVoIPNumbersResponse" } Connect-AvmDevice @SplatParameters } function Get-AvmVoipInfo { <# .SYNOPSIS Wiki: https://github.com/Gincules/avmtools/wiki/Get-AvmVoipInfo .DESCRIPTION Wiki: https://github.com/Gincules/avmtools/wiki/Get-AvmVoipInfo .NOTES Author: Gincules Website: https://github.com/Gincules/avmtools License: https://github.com/Gincules/avmtools/blob/main/LICENSE .LINK https://github.com/Gincules/avmtools https://github.com/Gincules/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_VoIP:1#GetInfo" UrlPath = "$(if ($RemoteAccess) { "/tr064" })/upnp/control/x_voip" XmlResponse = "GetInfoResponse" } Connect-AvmDevice @SplatParameters } function Get-AvmVoipInfoEx { <# .SYNOPSIS Wiki: https://github.com/Gincules/avmtools/wiki/Get-AvmVoipInfoEx .DESCRIPTION Wiki: https://github.com/Gincules/avmtools/wiki/Get-AvmVoipInfoEx .NOTES Author: Gincules Website: https://github.com/Gincules/avmtools License: https://github.com/Gincules/avmtools/blob/main/LICENSE .LINK https://github.com/Gincules/avmtools https://github.com/Gincules/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_VoIP:1#GetInfoEx" UrlPath = "$(if ($RemoteAccess) { "/tr064" })/upnp/control/x_voip" XmlResponse = "GetInfoExResponse" } Connect-AvmDevice @SplatParameters } function Get-AvmVoipMaxNumber { <# .SYNOPSIS Wiki: https://github.com/Gincules/avmtools/wiki/Get-AvmVoipMaxNumber .DESCRIPTION Wiki: https://github.com/Gincules/avmtools/wiki/Get-AvmVoipMaxNumber .NOTES Author: Gincules Website: https://github.com/Gincules/avmtools License: https://github.com/Gincules/avmtools/blob/main/LICENSE .LINK https://github.com/Gincules/avmtools https://github.com/Gincules/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_VoIP:1#GetMaxVoIPNumbers" UrlPath = "$(if ($RemoteAccess) { "/tr064" })/upnp/control/x_voip" XmlResponse = "GetMaxVoIPNumbersResponse" } Connect-AvmDevice @SplatParameters } function Get-AvmVoipNumber { <# .SYNOPSIS Wiki: https://github.com/Gincules/avmtools/wiki/Get-AvmVoipNumber .DESCRIPTION Wiki: https://github.com/Gincules/avmtools/wiki/Get-AvmVoipNumber .NOTES Author: Gincules Website: https://github.com/Gincules/avmtools License: https://github.com/Gincules/avmtools/blob/main/LICENSE .LINK https://github.com/Gincules/avmtools https://github.com/Gincules/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_VoIP:1#X_AVM-DE_GetNumbers" UrlPath = "$(if ($RemoteAccess) { "/tr064" })/upnp/control/x_voip" XmlResponse = "X_AVM-DE_GetNumbersResponse" } Connect-AvmDevice @SplatParameters } function Get-AvmVoipMaxNumber { <# .SYNOPSIS Wiki: https://github.com/Gincules/avmtools/wiki/Get-AvmVoipMaxNumber .DESCRIPTION Wiki: https://github.com/Gincules/avmtools/wiki/Get-AvmVoipMaxNumber .NOTES Author: Gincules Website: https://github.com/Gincules/avmtools License: https://github.com/Gincules/avmtools/blob/main/LICENSE .LINK https://github.com/Gincules/avmtools https://github.com/Gincules/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_VoIP:1#X_AVM-DE_GetNumberOfAlarmClocks" UrlPath = "$(if ($RemoteAccess) { "/tr064" })/upnp/control/x_voip" XmlResponse = "X_AVM-DE_GetNumberOfAlarmClocksResponse" } Connect-AvmDevice @SplatParameters } function Get-AvmVoipNumberOfClient { <# .SYNOPSIS Wiki: https://github.com/Gincules/avmtools/wiki/Get-AvmVoipNumberOfClient .DESCRIPTION Wiki: https://github.com/Gincules/avmtools/wiki/Get-AvmVoipNumberOfClient .NOTES Author: Gincules Website: https://github.com/Gincules/avmtools License: https://github.com/Gincules/avmtools/blob/main/LICENSE .LINK https://github.com/Gincules/avmtools https://github.com/Gincules/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_VoIP:1#X_AVM-DE_GetNumberOfClients" UrlPath = "$(if ($RemoteAccess) { "/tr064" })/upnp/control/x_voip" XmlResponse = "X_AVM-DE_GetNumberOfClientsResponse" } Connect-AvmDevice @SplatParameters } function Get-AvmVoipNumberOfNumber { <# .SYNOPSIS Wiki: https://github.com/Gincules/avmtools/wiki/Get-AvmVoipNumberOfNumber .DESCRIPTION Wiki: https://github.com/Gincules/avmtools/wiki/Get-AvmVoipNumberOfNumber .NOTES Author: Gincules Website: https://github.com/Gincules/avmtools License: https://github.com/Gincules/avmtools/blob/main/LICENSE .LINK https://github.com/Gincules/avmtools https://github.com/Gincules/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_VoIP:1#X_AVM-DE_GetNumberOfNumbers" UrlPath = "$(if ($RemoteAccess) { "/tr064" })/upnp/control/x_voip" XmlResponse = "X_AVM-DE_GetNumberOfNumbersResponse" } Connect-AvmDevice @SplatParameters } function Get-AvmVoipPhonePort { <# .SYNOPSIS Wiki: https://github.com/Gincules/avmtools/wiki/Get-AvmVoipPhonePort .DESCRIPTION Wiki: https://github.com/Gincules/avmtools/wiki/Get-AvmVoipPhonePort .NOTES Author: Gincules Website: https://github.com/Gincules/avmtools License: https://github.com/Gincules/avmtools/blob/main/LICENSE .LINK https://github.com/Gincules/avmtools https://github.com/Gincules/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, [Parameter(Mandatory)] [ValidateNotNullOrEmpty()] [System.String]$NewIndex ) $AvmWebrequestBody = [AvmBody]::new() $AvmWebrequestBody.SoapAction = "urn:dslforum-org:service:X_VoIP:1" $AvmWebrequestBody.UrlPath = "$(if ($RemoteAccess) { "/tr064" })/upnp/control/x_voip" $AvmWebrequestBody.Action = "X_AVM-DE_GetPhonePort" $AvmWebrequestBody.InnerBody = "<s:NewIndex>{0}</s:NewIndex>" -f $NewIndex [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 Remove-AvmVoipAccounts { <# .SYNOPSIS Wiki: https://github.com/Gincules/avmtools/wiki/Remove-AvmVoipAccounts .DESCRIPTION Wiki: https://github.com/Gincules/avmtools/wiki/Remove-AvmVoipAccounts .NOTES Author: Gincules Website: https://github.com/Gincules/avmtools License: https://github.com/Gincules/avmtools/blob/main/LICENSE .LINK https://github.com/Gincules/avmtools https://github.com/Gincules/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, [Parameter(Mandatory)] [ValidateRange(0,65535)] [System.UInt16]$NewVoIPAccountIndex ) $AvmWebrequestBody = [AvmBody]::new() $AvmWebrequestBody.SoapAction = "urn:dslforum-org:service:X_VoIP:1" $AvmWebrequestBody.UrlPath = "$(if ($RemoteAccess) { "/tr064" })/upnp/control/x_voip" $AvmWebrequestBody.Action = "X_AVM-DE_DelVoIPAccount" $AvmWebrequestBody.InnerBody = "<s:NewVoIPAccountIndex>{0}</s:NewVoIPAccountIndex>" -f $NewVoIPAccountIndex [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 Remove-AvmVoipClient { <# .SYNOPSIS Wiki: https://github.com/Gincules/avmtools/wiki/Remove-AvmVoipClient .DESCRIPTION Wiki: https://github.com/Gincules/avmtools/wiki/Remove-AvmVoipClient .NOTES Author: Gincules Website: https://github.com/Gincules/avmtools License: https://github.com/Gincules/avmtools/blob/main/LICENSE .LINK https://github.com/Gincules/avmtools https://github.com/Gincules/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, [Parameter(Mandatory)] [ValidateNotNullOrEmpty()] [System.String]$NewClientIndex ) $AvmWebrequestBody = [AvmBody]::new() $AvmWebrequestBody.SoapAction = "urn:dslforum-org:service:X_VoIP:1" $AvmWebrequestBody.UrlPath = "$(if ($RemoteAccess) { "/tr064" })/upnp/control/x_voip" $AvmWebrequestBody.Action = "X_AVM-DE_DeleteClient" $AvmWebrequestBody.InnerBody = "<s:NewX_AVM-DE_ClientIndex>{0}</s:NewX_AVM-DE_ClientIndex>" -f $NewClientIndex [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-AvmVoipAlarmClockEnable { <# .SYNOPSIS Wiki: https://github.com/Gincules/avmtools/wiki/Set-AvmVoipAlarmClockEnable .DESCRIPTION Wiki: https://github.com/Gincules/avmtools/wiki/Set-AvmVoipAlarmClockEnable .NOTES Author: Gincules Website: https://github.com/Gincules/avmtools License: https://github.com/Gincules/avmtools/blob/main/LICENSE .LINK https://github.com/Gincules/avmtools https://github.com/Gincules/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, [Parameter(Mandatory)] [ValidateNotNullOrEmpty()] [System.String]$NewIndex, [Parameter(Mandatory)] [ValidateNotNullOrEmpty()] [System.Byte][System.Boolean]$NewAlarmClockEnable ) $AvmWebrequestBody = [AvmBody]::new() $AvmWebrequestBody.SoapAction = "urn:dslforum-org:service:X_VoIP:1" $AvmWebrequestBody.UrlPath = "$(if ($RemoteAccess) { "/tr064" })/upnp/control/x_voip" $AvmWebrequestBody.Action = "X_AVM-DE_SetAlarmClockEnable" $AvmWebrequestBody.InnerBody = @" <s:NewIndex>{0}</s:NewIndex> <s:NewX_AVM-DE_AlarmClockEnable>{1}</s:NewX_AVM-DE_AlarmClockEnable> "@ -f $NewIndex, $NewAlarmClockEnable [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-AvmVoipClient { <# .SYNOPSIS Wiki: https://github.com/Gincules/avmtools/wiki/Set-AvmVoipClient .DESCRIPTION Wiki: https://github.com/Gincules/avmtools/wiki/Set-AvmVoipClient .NOTES Author: Gincules Website: https://github.com/Gincules/avmtools License: https://github.com/Gincules/avmtools/blob/main/LICENSE .LINK https://github.com/Gincules/avmtools https://github.com/Gincules/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, [Parameter(Mandatory)] [ValidateNotNullOrEmpty()] [System.String]$NewClientIndex, [Parameter(Mandatory)] [ValidateNotNullOrEmpty()] [System.Security.SecureString]$NewClientPassword, [Parameter(Mandatory)] [ValidateNotNullOrEmpty()] [System.String]$NewPhoneName, [Parameter(Mandatory)] [ValidateNotNullOrEmpty()] [System.String]$NewOutGoingNumber ) $SecurePointer = [Runtime.InteropServices.Marshal]::SecureStringToBSTR($NewClientPassword) $NewClientPassword = [Runtime.InteropServices.Marshal]::PtrToStringAuto($SecurePointer) [Runtime.InteropServices.Marshal]::ZeroFreeBSTR($SecurePointer) $AvmWebrequestBody = [AvmBody]::new() $AvmWebrequestBody.SoapAction = "urn:dslforum-org:service:X_VoIP:1" $AvmWebrequestBody.UrlPath = "$(if ($RemoteAccess) { "/tr064" })/upnp/control/x_voip" $AvmWebrequestBody.Action = "X_AVM-DE_SetClient" $AvmWebrequestBody.InnerBody = @" <s:NewX_AVM-DE_ClientIndex>{0}</s:NewX_AVM-DE_ClientIndex> <s:NewX_AVM-DE_ClientPassword>{1}</s:NewX_AVM-DE_ClientPassword> <s:NewX_AVM-DE_PhoneName>{2}</s:NewX_AVM-DE_PhoneName> <s:NewX_AVM-DE_OutGoingNumber>{3}</s:NewX_AVM-DE_OutGoingNumber> "@ -f $NewClientIndex, $plainNewClientPassword, $NewPhoneName, $NewOutGoingNumber [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-AvmVoipClient2 { <# .SYNOPSIS Wiki: https://github.com/Gincules/avmtools/wiki/Set-AvmVoipClient2 .DESCRIPTION Wiki: https://github.com/Gincules/avmtools/wiki/Set-AvmVoipClient2 .NOTES Author: Gincules Website: https://github.com/Gincules/avmtools License: https://github.com/Gincules/avmtools/blob/main/LICENSE .LINK https://github.com/Gincules/avmtools https://github.com/Gincules/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, [Parameter(Mandatory)] [ValidateNotNullOrEmpty()] [System.String]$NewClientIndex, [Parameter(Mandatory)] [ValidateNotNullOrEmpty()] [System.Security.SecureString]$NewClientPassword, [Parameter(Mandatory)] [ValidateNotNullOrEmpty()] [System.String]$NewPhoneName, [Parameter(Mandatory)] [ValidateNotNullOrEmpty()] [System.String]$ClientId, [Parameter(Mandatory)] [ValidateNotNullOrEmpty()] [System.String]$NewOutGoingNumber ) $SecurePointer = [Runtime.InteropServices.Marshal]::SecureStringToBSTR($NewClientPassword) $NewClientPassword = [Runtime.InteropServices.Marshal]::PtrToStringAuto($SecurePointer) [Runtime.InteropServices.Marshal]::ZeroFreeBSTR($SecurePointer) $AvmWebrequestBody = [AvmBody]::new() $AvmWebrequestBody.SoapAction = "urn:dslforum-org:service:X_VoIP:1" $AvmWebrequestBody.UrlPath = "$(if ($RemoteAccess) { "/tr064" })/upnp/control/x_voip" $AvmWebrequestBody.Action = "X_AVM-DE_SetClient2" $AvmWebrequestBody.InnerBody = @" <s:NewX_AVM-DE_ClientIndex>{0}</s:NewX_AVM-DE_ClientIndex> <s:NewX_AVM-DE_ClientPassword>{1}</s:NewX_AVM-DE_ClientPassword> <s:NewX_AVM-DE_PhoneName>{2}</s:NewX_AVM-DE_PhoneName> <s:NewX_AVM-DE_ClientId >{3}</s:NewX_AVM-DE_ClientId > <s:NewX_AVM-DE_OutGoingNumber>{4}</s:NewX_AVM-DE_OutGoingNumber> "@ -f $NewClientIndex, $plainNewClientPassword, $NewPhoneName, $ClientId, $NewOutGoingNumber [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-AvmVoipClient3 { <# .SYNOPSIS Wiki: https://github.com/Gincules/avmtools/wiki/Set-AvmVoipClient3 .DESCRIPTION Wiki: https://github.com/Gincules/avmtools/wiki/Set-AvmVoipClient3 .NOTES Author: Gincules Website: https://github.com/Gincules/avmtools License: https://github.com/Gincules/avmtools/blob/main/LICENSE .LINK https://github.com/Gincules/avmtools https://github.com/Gincules/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, [Parameter(Mandatory)] [ValidateNotNullOrEmpty()] [System.String]$NewClientIndex, [Parameter(Mandatory)] [ValidateNotNullOrEmpty()] [System.Security.SecureString]$NewClientPassword, [Parameter(Mandatory)] [ValidateNotNullOrEmpty()] [System.String]$NewPhoneName, [Parameter(Mandatory)] [ValidateNotNullOrEmpty()] [System.String]$ClientId, [Parameter(Mandatory)] [ValidateNotNullOrEmpty()] [System.String]$NewOutGoingNumber, [Parameter(Mandatory)] [ValidateNotNullOrEmpty()] [System.String]$NewInComingNumbers, [Parameter(Mandatory)] [ValidateNotNullOrEmpty()] [System.String]$NewExternalRegistration ) $SecurePointer = [Runtime.InteropServices.Marshal]::SecureStringToBSTR($NewClientPassword) $NewClientPassword = [Runtime.InteropServices.Marshal]::PtrToStringAuto($SecurePointer) [Runtime.InteropServices.Marshal]::ZeroFreeBSTR($SecurePointer) $AvmWebrequestBody = [AvmBody]::new() $AvmWebrequestBody.SoapAction = "urn:dslforum-org:service:X_VoIP:1" $AvmWebrequestBody.UrlPath = "$(if ($RemoteAccess) { "/tr064" })/upnp/control/x_voip" $AvmWebrequestBody.Action = "X_AVM-DE_SetClient3" $AvmWebrequestBody.InnerBody = @" <s:NewX_AVM-DE_ClientIndex>{0}</s:NewX_AVM-DE_ClientIndex> <s:NewX_AVM-DE_ClientPassword>{1}</s:NewX_AVM-DE_ClientPassword> <s:NewX_AVM-DE_PhoneName>{2}</s:NewX_AVM-DE_PhoneName> <s:NewX_AVM-DE_ClientId >{3}</s:NewX_AVM-DE_ClientId > <s:NewX_AVM-DE_OutGoingNumber>{4}</s:NewX_AVM-DE_OutGoingNumber> <s:NewX_AVM-DE_InComingNumbers>{5}</s:NewX_AVM-DE_InComingNumbers> <s:NewX_AVM-DE_ExternalRegistration>{6}</s:NewX_AVM-DE_ExternalRegistration> "@ -f $NewClientIndex, $plainNewClientPassword, $NewPhoneName, $ClientId, $NewOutGoingNumber, $NewInComingNumbers, $NewExternalRegistration [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-AvmVoipClient4 { <# .SYNOPSIS Wiki: https://github.com/Gincules/avmtools/wiki/Set-AvmVoipClient4 .DESCRIPTION Wiki: https://github.com/Gincules/avmtools/wiki/Set-AvmVoipClient4 .NOTES Author: Gincules Website: https://github.com/Gincules/avmtools License: https://github.com/Gincules/avmtools/blob/main/LICENSE .LINK https://github.com/Gincules/avmtools https://github.com/Gincules/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, [Parameter(Mandatory)] [ValidateNotNullOrEmpty()] [System.String]$NewClientIndex, [Parameter(Mandatory)] [ValidateNotNullOrEmpty()] [System.Management.Automation.PSCredential]$NewClientCredential, [Parameter(Mandatory)] [ValidateNotNullOrEmpty()] [System.String]$NewPhoneName, [Parameter(Mandatory)] [ValidateNotNullOrEmpty()] [System.String]$ClientId, [Parameter(Mandatory)] [ValidateNotNullOrEmpty()] [System.String]$NewOutGoingNumber, [Parameter(Mandatory)] [ValidateNotNullOrEmpty()] [System.String]$NewInComingNumbers ) $AvmWebrequestBody = [AvmBody]::new() $AvmWebrequestBody.SoapAction = "urn:dslforum-org:service:X_VoIP:1" $AvmWebrequestBody.UrlPath = "$(if ($RemoteAccess) { "/tr064" })/upnp/control/x_voip" $AvmWebrequestBody.Action = "X_AVM-DE_SetClient4" $AvmWebrequestBody.InnerBody = @" <s:NewX_AVM-DE_ClientIndex>{0}</s:NewX_AVM-DE_ClientIndex> <s:NewX_AVM-DE_ClientPassword>{1}</s:NewX_AVM-DE_ClientPassword> <s:NewX_AVM-DE_ClientUsername>{2}</s:NewX_AVM-DE_ClientUsername> <s:NewX_AVM-DE_PhoneName>{3}</s:NewX_AVM-DE_PhoneName> <s:NewX_AVM-DE_ClientId >{4}</s:NewX_AVM-DE_ClientId > <s:NewX_AVM-DE_OutGoingNumber>{5}</s:NewX_AVM-DE_OutGoingNumber> <s:NewX_AVM-DE_InComingNumbers>{6}</s:NewX_AVM-DE_InComingNumbers> "@ -f $NewClientIndex, $NewClientCredential.GetNetworkCredential().Password, $NewClientCredential.GetNetworkCredential().UserName, $NewPhoneName, $ClientId, $NewOutGoingNumber, $NewInComingNumbers [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-AvmVoipCommonAreaCode { <# .SYNOPSIS Wiki: https://github.com/Gincules/avmtools/wiki/Set-AvmVoipCommonAreaCode .DESCRIPTION Wiki: https://github.com/Gincules/avmtools/wiki/Set-AvmVoipCommonAreaCode .NOTES Author: Gincules Website: https://github.com/Gincules/avmtools License: https://github.com/Gincules/avmtools/blob/main/LICENSE .LINK https://github.com/Gincules/avmtools https://github.com/Gincules/avmtools/blob/main/LICENSE #> Param ( [Alias("i")] [Parameter()] [System.Management.Automation.SwitchParameter]$Insecure = $false, [Alias("r")] [Parameter()] [System.Management.Automation.SwitchParameter]$RemoteAccess = $false, [Alias("d")] [Parameter()] [System.Management.Automation.SwitchParameter]$Deprecated = $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, [Parameter()] [System.String]$NewVoIPAreaCode, [Parameter()] [System.String]$NewOKZ, [Parameter()] [System.String]$NewOKZPrefix ) $AvmWebrequestBody = [AvmBody]::new() $AvmWebrequestBody.SoapAction = "urn:dslforum-org:service:X_VoIP:1" $AvmWebrequestBody.UrlPath = "$(if ($RemoteAccess) { "/tr064" })/upnp/control/x_voip" if ($Deprecated) { $AvmWebrequestBody.Action = "SetVoIPCommonAreaCode" $AvmWebrequestBody.InnerBody = "<s:NewVoIPEnableAreaCode>{0}</s:NewVoIPEnableAreaCode>" -f $NewVoIPAreaCode } else { $AvmWebrequestBody.Action = "X_AVM-DE_SetVoIPCommonAreaCode" $AvmWebrequestBody.InnerBody = @" <s:NewX_AVM-DE_OKZ>{0}</s:NewX_AVM-DE_OKZ> <s:NewX_AVM-DE_OKZPrefix>{1}</s:NewX_AVM-DE_OKZPrefix> "@ -f $NewOKZ, $NewOKZPrefix } [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-AvmVoipCommonCountryCode { <# .SYNOPSIS Wiki: https://github.com/Gincules/avmtools/wiki/Set-AvmVoipCommonCountryCode .DESCRIPTION Wiki: https://github.com/Gincules/avmtools/wiki/Set-AvmVoipCommonCountryCode .NOTES Author: Gincules Website: https://github.com/Gincules/avmtools License: https://github.com/Gincules/avmtools/blob/main/LICENSE .LINK https://github.com/Gincules/avmtools https://github.com/Gincules/avmtools/blob/main/LICENSE #> Param ( [Alias("i")] [Parameter()] [System.Management.Automation.SwitchParameter]$Insecure = $false, [Alias("r")] [Parameter()] [System.Management.Automation.SwitchParameter]$RemoteAccess = $false, [Alias("d")] [Parameter()] [System.Management.Automation.SwitchParameter]$Deprecated = $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, [Parameter()] [System.String]$NewVoIPCountryCode, [Parameter()] [System.String]$NewLKZ, [Parameter()] [System.String]$NewPrefix ) $AvmWebrequestBody = [AvmBody]::new() $AvmWebrequestBody.SoapAction = "urn:dslforum-org:service:X_VoIP:1" $AvmWebrequestBody.UrlPath = "$(if ($RemoteAccess) { "/tr064" })/upnp/control/x_voip" if ($Deprecated) { $AvmWebrequestBody.Action = "SetVoIPCommonCountryCode" $AvmWebrequestBody.InnerBody = "<s:NewVoIPCountryCode>{0}</s:NewVoIPCountryCode>" -f $NewVoIPCountryCode } else { $AvmWebrequestBody.Action = "X_AVM-DE_SetVoIPCommonCountryCode" $AvmWebrequestBody.InnerBody = @" <s:NewX_AVM-DE_LKZ>{0}</s:NewX_AVM-DE_LKZ> <s:NewX_AVM-DE_LKZPrefix >{1}</s:NewX_AVM-DE_LKZPrefix > "@ -f $NewLKZ, $NewPrefix } [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-AvmVoipConfig { <# .SYNOPSIS Wiki: https://github.com/Gincules/avmtools/wiki/Set-AvmVoipConfig .DESCRIPTION Wiki: https://github.com/Gincules/avmtools/wiki/Set-AvmVoipConfig .NOTES Author: Gincules Website: https://github.com/Gincules/avmtools License: https://github.com/Gincules/avmtools/blob/main/LICENSE .LINK https://github.com/Gincules/avmtools https://github.com/Gincules/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, [Parameter(Mandatory)] [ValidateNotNullOrEmpty()] [System.Byte][System.Boolean]$NewT38FaxEnable, [Parameter(Mandatory)] [ValidateSet("fixed","auto","compressed","autocompressed")] [System.String]$NewVoiceCoding ) $AvmWebrequestBody = [AvmBody]::new() $AvmWebrequestBody.SoapAction = "urn:dslforum-org:service:X_VoIP:1" $AvmWebrequestBody.UrlPath = "$(if ($RemoteAccess) { "/tr064" })/upnp/control/x_voip" $AvmWebrequestBody.Action = "SetConfig" $AvmWebrequestBody.InnerBody = @" <s:NewT38FaxEnable>{0}</s:NewT38FaxEnable> <s:NewVoiceCoding>{1}</s:NewVoiceCoding> "@ -f $NewT38FaxEnable, $NewVoiceCoding [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-AvmVoipDelayedCallNotification { <# .SYNOPSIS Wiki: https://github.com/Gincules/avmtools/wiki/Set-AvmVoipDelayedCallNotification .DESCRIPTION Wiki: https://github.com/Gincules/avmtools/wiki/Set-AvmVoipDelayedCallNotification .NOTES Author: Gincules Website: https://github.com/Gincules/avmtools License: https://github.com/Gincules/avmtools/blob/main/LICENSE .LINK https://github.com/Gincules/avmtools https://github.com/Gincules/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, [Parameter(Mandatory)] [ValidateNotNullOrEmpty()] [System.String]$NewClientIndex, [Parameter(Mandatory)] [ValidateNotNullOrEmpty()] [System.String]$NewDelayedCallNotification ) $AvmWebrequestBody = [AvmBody]::new() $AvmWebrequestBody.SoapAction = "urn:dslforum-org:service:X_VoIP:1" $AvmWebrequestBody.UrlPath = "$(if ($RemoteAccess) { "/tr064" })/upnp/control/x_voip" $AvmWebrequestBody.Action = "X_AVM-DE_SetDelayedCallNotification" $AvmWebrequestBody.InnerBody = @" <s:NewX_AVM-DE_ClientIndex>{0}</s:NewX_AVM-DE_ClientIndex> <s:NewX_AVM-DE_DelayedCallNotification>{1}</s:NewX_AVM-DE_DelayedCallNotification> "@ -f $NewClientIndex, $NewDelayedCallNotification [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-AvmVoipDialConfig { <# .SYNOPSIS Wiki: https://github.com/Gincules/avmtools/wiki/Set-AvmVoipDialConfig .DESCRIPTION Wiki: https://github.com/Gincules/avmtools/wiki/Set-AvmVoipDialConfig .NOTES Author: Gincules Website: https://github.com/Gincules/avmtools License: https://github.com/Gincules/avmtools/blob/main/LICENSE .LINK https://github.com/Gincules/avmtools https://github.com/Gincules/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, [Parameter(Mandatory)] [ValidateNotNullOrEmpty()] [System.Byte][System.Boolean]$NewT38FaxEnable, [Parameter(Mandatory)] [ValidateNotNullOrEmpty()] [System.String]$NewPhoneName ) $AvmWebrequestBody = [AvmBody]::new() $AvmWebrequestBody.SoapAction = "urn:dslforum-org:service:X_VoIP:1" $AvmWebrequestBody.UrlPath = "$(if ($RemoteAccess) { "/tr064" })/upnp/control/x_voip" $AvmWebrequestBody.Action = "X_AVM-DE_DialSetConfig" $AvmWebrequestBody.InnerBody = "<s:NewX_AVM-DE_PhoneName>{0}</s:NewX_AVM-DE_PhoneName>" -f $NewPhoneName [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-AvmVoipEnableAreaCode { <# .SYNOPSIS Wiki: https://github.com/Gincules/avmtools/wiki/Set-AvmVoipEnableAreaCode .DESCRIPTION Wiki: https://github.com/Gincules/avmtools/wiki/Set-AvmVoipEnableAreaCode .NOTES Author: Gincules Website: https://github.com/Gincules/avmtools License: https://github.com/Gincules/avmtools/blob/main/LICENSE .LINK https://github.com/Gincules/avmtools https://github.com/Gincules/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, [Parameter(Mandatory)] [ValidateRange(0,65535)] [System.UInt16]$NewVoIPAccountIndex, [Parameter(Mandatory)] [ValidateNotNullOrEmpty()] [System.Byte][System.Boolean]$NewVoIPEnableAreaCode ) $AvmWebrequestBody = [AvmBody]::new() $AvmWebrequestBody.SoapAction = "urn:dslforum-org:service:X_VoIP:1" $AvmWebrequestBody.UrlPath = "$(if ($RemoteAccess) { "/tr064" })/upnp/control/x_voip" $AvmWebrequestBody.Action = "SetVoIPEnableAreaCode" $AvmWebrequestBody.InnerBody = @" <s:NewVoIPAccountIndex>{0}</s:NewVoIPAccountIndex> <s:NewVoIPEnableAreaCode>{1}</s:NewVoIPEnableAreaCode> "@ -f $NewVoIPAccountIndex, $NewVoIPEnableAreaCode [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-AvmVoipEnableCountryCode { <# .SYNOPSIS Wiki: https://github.com/Gincules/avmtools/wiki/Set-AvmVoipEnableCountryCode .DESCRIPTION Wiki: https://github.com/Gincules/avmtools/wiki/Set-AvmVoipEnableCountryCode .NOTES Author: Gincules Website: https://github.com/Gincules/avmtools License: https://github.com/Gincules/avmtools/blob/main/LICENSE .LINK https://github.com/Gincules/avmtools https://github.com/Gincules/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, [Parameter(Mandatory)] [ValidateRange(0,65535)] [System.UInt16]$NewVoIPAccountIndex, [Parameter(Mandatory)] [ValidateNotNullOrEmpty()] [System.String]$NewVoIPEnableCountryCode ) $AvmWebrequestBody = [AvmBody]::new() $AvmWebrequestBody.SoapAction = "urn:dslforum-org:service:X_VoIP:1" $AvmWebrequestBody.UrlPath = "$(if ($RemoteAccess) { "/tr064" })/upnp/control/x_voip" $AvmWebrequestBody.Action = "SetVoIPEnableCountryCode" $AvmWebrequestBody.InnerBody = @" <s:NewVoIPAccountIndex>{0}</s:NewVoIPAccountIndex> <s:NewVoIPEnableCountryCode>{1}</s:NewVoIPEnableCountryCode> "@ -f $NewVoIPAccountIndex, $NewVoIPEnableCountryCode [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 Start-AvmVoipDial { <# .SYNOPSIS Wiki: https://github.com/Gincules/avmtools/wiki/Start-AvmVoipDial .DESCRIPTION Wiki: https://github.com/Gincules/avmtools/wiki/Start-AvmVoipDial .NOTES Author: Gincules Website: https://github.com/Gincules/avmtools License: https://github.com/Gincules/avmtools/blob/main/LICENSE .LINK https://github.com/Gincules/avmtools https://github.com/Gincules/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, [Parameter(Mandatory)] [ValidateNotNullOrEmpty()] [System.Byte][System.Boolean]$NewT38FaxEnable, [Parameter(Mandatory)] [ValidateNotNullOrEmpty()] [System.String]$NewPhoneNumber ) $AvmWebrequestBody = [AvmBody]::new() $AvmWebrequestBody.SoapAction = "urn:dslforum-org:service:X_VoIP:1" $AvmWebrequestBody.UrlPath = "$(if ($RemoteAccess) { "/tr064" })/upnp/control/x_voip" $AvmWebrequestBody.Action = "X_AVM-DE_DialNumber" $AvmWebrequestBody.InnerBody = "<s:NewX_AVM-DE_PhoneNumber>{0}</s:NewX_AVM-DE_PhoneNumber>" -f $NewPhoneNumber [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 Stop-AvmVoipDial { <# .SYNOPSIS Wiki: https://github.com/Gincules/avmtools/wiki/Stop-AvmVoipDial .DESCRIPTION Wiki: https://github.com/Gincules/avmtools/wiki/Stop-AvmVoipDial .NOTES Author: Gincules Website: https://github.com/Gincules/avmtools License: https://github.com/Gincules/avmtools/blob/main/LICENSE .LINK https://github.com/Gincules/avmtools https://github.com/Gincules/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][System.Collections.Hashtable]$SplatParameters = @{ Insecure = $Insecure Url = $Url Port = $Port Credential = $Credential SoapAction = "urn:dslforum-org:service:X_VoIP:1#X_AVM-DE_DialHangup" UrlPath = "$(if ($RemoteAccess) { "/tr064" })/upnp/control/x_voip" XmlResponse = "X_AVM-DE_DialHangupResponse" } Connect-AvmDevice @SplatParameters } |