functions/Get-PhoneByDN.ps1

function Get-PhoneByDN {
    <#
    .SYNOPSIS
    Get the phone(s) based upon the DN
     
    .DESCRIPTION
    Get the phone(s) based upon the DN
     
    .PARAMETER DN
    Directory Number to lookup
     
    .PARAMETER AXLVersion
    Version of AXL
     
    .PARAMETER server
    Server to query
     
    .PARAMETER Credential
    Credential to use for API access
     
    .PARAMETER EnableException
    Enable throwing of exception when API throws error.
     
    .EXAMPLE
    Get-PhoneByDN -DN 123 -server 'Cucm-Pub.example.com' -Credential (Get-Credential)
 
    Get Phone with DN 123
    #>

    
    [CmdletBinding()]
    param (
        [Parameter(Mandatory = $true)]
        [string]
        $DN,
        [Parameter(Mandatory = $true)]
        [string]
        $server,
        [Parameter(Mandatory = $true)]
        [pscredential]
        $Credential
    )
    $phoneNameByDNSplat = @{
        'DN'         = $DN
        'server'     = $server
        'Credential' = $Credential
    }
    $phoneName = Obtain-PhoneNameFromDN @phoneNameByDNSplat |
        Select-Xml -XPath '//name' |
        Select-Object -ExpandProperty node |
        Select-Object -ExpandProperty '#text'
    $CucmAxlSplat = @{
        'server'     = $server
        'entity'     = 'getPhone'
        'parameters' = @{
            'name' = $phoneName
        }
        'Credential' = $Credential
    }
    Invoke-CucmAxl @CucmAxlSplat | Select-Xml -XPath '//phone' | Select-Object -ExpandProperty node
}