Convert-SonusSbcConfigToWord.ps1 – Revision History

I’ve been bashing at this script for almost 4 years now and the main post’s getting a bit long with the revision history. I’ve taken a leaf from a peer’s book and decided to spin the entire history out into its own post. Whether the ancient history is of use to anyone remains to be seen, but here it is regardless.

Here’s the main post for this script.

Revision History

v6.1.3 – 9th September 2017

  • Added new bits in 6.1.2:
    • Updated to new wording of the “Play Ringback” options in SIP Sig Gps + added new option “Alert on 180/183”
    • Added new “SDP Handling Preference” to SIP Server Profiles
  • Added new bits in 6.1.3:
    • No new config options appear to have been added in symphonyconfig.xml. Please let me know if you find any!!
  • Reinstated bits since added to the SWe Lite:
    • Updated Media / Media System Configuration to show MOH
    • Updated SIP Sg to show MOH & “Mapping Tables”
    • Reinstated display of the Protocols / DNS / DNS Table
    • Reinstated display of the “SIP to Q.850” & “Q.850 to SIP” Telephony Mapping Tables
  • Added other new bits:
    • Renamed the first NIC in the ASM to “Network Adapter *1* Configuration” (my emphasis here to show the change)
    • Improved the way the ASM is being reported. Added handling for the second NIC (but this only works if using a .tar or the “-IncludeNodeInfo” switch)
    • Added ” dB” suffix to Gain values in FXS, FXO ports & Media Lists
    • Tweaked the fixed column widths in the Node Interfaces / Ports table to stop wider values line-wrapping
    • Reworked the System / Licensing / Current Licences for the SWe Lite to correctly trap/capture a trial licence. (It’s still not perfect)
    • Added new FXO port countries United Arab Emirates, Yemen, “Other” & “Other European (TBR-21)” to the $FXSFXOCountryLookup
  • Fixed bugs:
    • FXO Ring Detection Threshold was being reported as 0, 1 or 2. Added “FXORingDetectLookup” to translate to 17/24/50V as per web GUI
    • “Proxy IP Version” element wasn’t displaying if a SIP Sig Gp’s “Outbound Proxy” is a hostname. (Previously not quite fixed in v6.1B)
    • SIP Sig Gp was incorrectly displaying a Tone Table line when Play Ringback was set to “Never”
    • Seriously: fixed a bug in handling of “LOGGER_SYSLOG_DEST” that would have only affected an SBC running v2-something, circa 2012?
    • The Logging Subsystems log level of “Default” was incorrectly showing as blank. Added to $LogLevelLookup to resolve
    • The SIP Server Priority of “None” was incorrectly showing as “0”

v6.1C – 6th May 2017

  • Added handling of “-Debug” switch to dump detailed error logging to screen

v6.1B : 28 March 2017

  • Added more SWe Lite config:
    • Corrected the LogicalInterfaces display – now “Networking Interfaces” in the SWe Lite. Suppressed IPv6 & ACLs. Added “Media Next Hop IP”
    • Suppressed the extraction of obsolete “SIP To Q.850” (and vv) data from XML – purely to suppress irrelevant messages to screen in verbose mode
    • Added new values to ACLs
    • Suppressed display of values currently not available/supported:
      – Bridge/Region Settings and MSTP values
      – QoE
      – SIP / Node-Level SIP Settings: Skype/Lync Edge Server
      – Media: MOH [R.I.P.]
      – Routing Table entries: Video/Application Stream mode
      – Sig Gp: QoE, MOH, Q.850 Mapping tables
      – DHCP Yes/No under System / Node-Level Settings
      – “Password Recovery” in Security / Users Global Security Options
      – Media / Media Lists: RTCP Mode, Gain Control & Passthrough / Tone Detection
      – TDM & DSP values in TCA Configuration
    • Suppress display of “Interop Mode” if SIP Sig Gp “Agent Type” = B2B-UA
    • Suppress inclusion of Node Level DNS Servers in the Protocols / DNS / DNS Table
  • Added “DHCP Options to Use” and “Use as Split DNS” to Logical Interfaces running as IP v4 with DHCP enabled. (Present since at least v5?)
  • Added “Node-Level Network Settings” = Static/Dynamic to System / Node-Level Settings (for non-SWe Lite platforms)
  • Renamed “IP Static Route Metric” to “Metric”
  • Suppressed display of (long-deprecated) “Subscription State Passthrough”. It looks to have gone with 4.0.0 b353.
  • Suppressed display of Presence Server status fields in SIP / Node-Level SIP Settings if Presence Destination is N/A or “None”
  • Suppressed display of “Allow Weak Cipher” in TLS Profiles (rather than stamp it as “deprecated this rls”)
  • Removed display of “Mask” from DHCP Pools
  • Added another Try/Catch to get Windows 7 / P$v2 to exit Word cleanly. It’s the dreaded intermittent “[ref]” requirement still haunting me!
  • Added “End of Document” text
  • Fixed bugs:
    • If set to DHCP, Logical Interfaces were incorrectly displaying Primary Address, Netmask and Configure Secondary Interface rows
    • Added “Other” option to the Protocols in Access Control Lists
    • IPv6 ACL table headings weren’t being reported correcly – IPv4 table headings were showing due to copy/paste error
    • “Proxy IP Version” element wasn’t displaying if a SIP Sig Gp’s “Outbound Proxy” is a hostname

v6.1A : 3 March 2017.

  • Fixed bugs:
    • Reverted the $word.quit($wdDoNotSaveChanges) added in 6.1: Word had no document open, so there was nothing to ‘NotSave’ and Word instead stayed open!

v6.1 : 28 February 2017.

  • Added the ability to specify a Word Template to base the output on & also permits a named style for the tables. (Thanks Hany)
  • Added initial compatibility for SweLite: will be further refined after GA
  • Added new “IncludeNodeInfo” switch & if you’ve NOT nominated a .tar file it will look for a “nodeInfo.txt” file in the same dir as the inputfile – Script will display an error to screen and continue if NodeInfo.txt is not found – Script will throw an error and abort if the Hostname in NodeInfo.txt differs to what’s reported from the XML. (We assume the user has mixed them up)
  • Updated Example text to show how you can batch a bunch of folders all with the exploded tar files in them
  • Added new variable “ReleaseBuild” to help discern between “” and “”
  • Added v6.1 support:
    • “Forked Call Answered Too Soon” in SIP Sig Gp
    • “Record Route Header” in SIP Profiles
    • “Timer J” in SIP Profiles
    • The removal of “AllowWeakCiphers” from TLS Profiles is now reported as “” (if ReleaseBuild -ge 457)
  • Added DHCP Static Clients
  • Added “Destination Type” to the Call Routing overview table
  • Added “Fax Tone Detection” to Media Lists
  • Added ACL In and ACL Forward to the Node Interfaces / Ports on the SBC 2000
  • Added $NetworkAdapterGigabitTimingLookup to Node Interfaces / Ports on the SBC 2000
  • Added “secs [1..30]” to the TLS Profiles / Handshake Inactivity Timeout value
  • Added “secs [5…15]” to the AD / Domain Controllers / Server Timeout value
  • Added “Negotiated Speed” and “Negotiated Duplexity” to the Ports / Ethernet table. They’re dynamic values not captured in the backups, but felt they needed to be displayed
  • Updated Call Routing table to report “Forking” and “Transcoding” as “Not Licenced” instead of “No”. (Requires .TAR file or NodeInfo.txt for licence data)
  • Updated Node Interfaces/Ports to suppress the display of T1/E1, FXS, FXO & BRI ports that might be physically equipped but not licenced. (Requires .TAR file or NodeInfo.txt for licence data)
  • Housekeeping: replaced discrete (legacy) “if -eq $null” tests with a call to TestForNull
  • Changed default wording of $MOHFilename from “N/A” to “Not Available” to reduce ambiguity. (The filename is only accessible from .tar)
  • Changed $TlsProfileIdLookup value for TCP/UDP from “” to reflect the on-screen “N/A”
  • Updated SIP Sg $SipNonceExpiryLookup value 0 from “Forever/Never” to “Forever”
  • Updated both $TimingConfigColumnTitles to remove the word “Recovery” from the title
  • Refined the close & quit code at the bottom: sometimes Word stays running in the background after a crash – Added the presumably redundant “wdDoNotSaveChanges” to $doc.Close and $word.Quit
  • Fixed bugs:
    • Fixed incorrect $IsdnAsn1ProtocolLookup values. (Thanks James)
    • Fax Profiles was incorrectly reporting Error Correction Mode. Changed lookup to $ReverseEnabledLookup to resolve
    • “Use Register as Keep Alive” was incorrectly showing in the SIP Sg table if SIP Mode = Local Registrar
    • “Node-Level SIP settings” was not being displayed. Reinstated & updated, capturing new “Skype/Lync Edge server” values
    • DHCP Pools found to be incorrectly reporting Lease Lifetime in seconds, but saying it’s minutes. Divided value from XML by 60 to resolve
    • Corrected handling of Ethernet 3 in the new SBC1k hardware. Was incorrectly showing as “VLAN 4042”
    • Corrected handling of all 4 Logical Ethernet interfaces in SBC2k hardware. they were incorrectly showing as “VLAN 403n”
    • “BRI Channels” weren’t being captured correctly in the licence table. I had incorrectly coded them as “BRI Ports”
    • $LicenceLine.Count/Trim loop has never worked: bad $i test masked the underlying , instead of ; separator bug. Don’t think this error has previously been visible
    • Translated Node Interfaces / Ports interface names from “lan1” to “Ethernet 1” to correctly reflect current on-screen display
    • “Node-Level SIP Settings” was not correctly reporting the presence server. Changed to the $SIPServerTablesLookup to resolve

v6.0 : September 2016

  • Added initial v6.0 support:
    • Added “Detect CNG” to $ActionSetActionLookup
    • Add Ipv6 Access Control Lists
    • Added HostIpVersion to SIP Server table
    • Added “Preferred IP version” to Auth & Directory Services / Active Directory / Domain Controllers table
    • Added “IP Addressing Mode” to Logical Interfaces
    • Added FXS port type for “Long Line” handling
  • Added new Transformation table type 38: “Called Free Phone Number”
  • Added “[1024..65535]” valid range detail to the RHS of the Outbound Proxy Port
  • Added the remainder of the “Logging Configuration” components. (Thank you Mitsu-San!)
  • Added all *non-default* SNMP trap entries (as these are the only ones captured in the backup file)
  • Added a CR so each SAN in a certificate is written to a new line
  • Changed Auth & Directory Services / Active Directory / Configuration & Domain Controllers to V-table
  • Changed ACLs to V-table
  • Updated System / Node-Level Settings label from “Enable DNS Forwarding” to “Enable DNS Service”
  • Rearranged “Protocols” & “SIP” so they now show in the file in the same order as on-screen
  • Added the ability to specify alternate background colours as attributes from the command-line (TitleColour & LabelColour). Thank you Sophie
  • Added new $MatchTypeLookupLong for new descriptions “(Must Match)” and “(Match One)” in Transformation Tables
  • Updated descriptions for $Q850DescriptionLookup
  • Updated $Q850DescriptionLookup formatting to new descriptions: from “17 – User Busy” to “17: User Busy”
  • Updated $SIPRegistrationTablesColumnTitles & $SIPAuthorisationsTablesColumnTitles to new descriptions: from “AOR…” to “Address of Record…”
  • Updated Node Interfaces / Ports title from “Port Name” to “Port ID” and changed to new “Port 7:1” display format
  • Added new SIP Sg Interop Mode appearances, including new $SipSgInteropModeLookup
  • Renamed input parameters Serial Number & Node ID to their current SBC titles “NodeID” and “HardwareID”
  • Updated SipSg for new Inbound/Outbound Static NAT values + added NAT Traversal (which becomes visible if InteropMode = Office365)
  • Revised how I name a blank MST Instance: changed from “Instance ID ” + Primary Key to “MST Instance ” + Instance ID
  • Moved “Relay Config” from System to the end of Node Interfaces
  • Renamed “Timing Config” and “Companding Law Config” to their new on-screen titles
  • Updated Auth & Directory Services / RADIUS / Configuration to new on-screen layout
  • Changed certificate dates to show in less ambiguous format “MMM dd, yyyy”
  • Rearranged tone table columns to Frequency 1, Amplitude 1, Frequency 2, Amplitude 2
  • Added a count test to the $SNMPData collation to suppress an unwanted heading in an SBC with no related content
  • Found the script would consolidate together two objects if they shared the same name and this introduced ambiguity when referenced in other locations:
    – Added new function “FixNullAndDuplicateDescriptions” to weed these out – also makes FixNullDecription redundant for these objects
    – Adds the index number in brackets after the name: e.g. “Passthrough Untouched (7)”
    – Applied to Translations & Transformation Tables
  • Fixed bugs:
    • A blank Outbound Proxy Port in the Sig Gp is captured in the XML as “0”. Updated to correctly show as blank in the table instead of 0
    • If you fed a .tar into the script, the Node ID and Hardware ID were swapped in Node-Level Settings
    • The Routing Table summary view would incorrectly show a “First Signaling Group” value for Rejected calls
    • A CAS Sig Grp of type E&M didn’t show the Assigned Channels
    • Found script has been incorrectly reporting the wrong value for FaxRelayFallback – changed to use the correct $ReverseEnabledLookup
    • $RadiusAccountingModeLookup was reporting “Active-Active” when it should have been “Active-StandBy” and vice-versa
    • Win7 / P$v2 was inexplicably skipping Node Interfaces / MSTP / MST Instances. Reconfigured & tested OK on both Win 7 & Win 10
    • SIP Sg “Video/Application Stream Mode” was incorrectly reporting as “Enabled/”Disabled”. Corrected to show
      – “<Unknown>” if we’ve read from an XML file instead of .tar & can’t determine the licence entitlement (which triggers display in the UI); – “Disabled” if there’s no video licence; and
      – “Proxy”/”Direct” as appropriate if it’s enabled.

v5.0.1: 25th December 2015

  • Removed some redundant code from the file formatting section
  • Removed redundant SipTrunkGroupLookup & related code from the “Initial parse of the config file”. (Dev code leaked accidentally into v5.0 rls)
  • Added extra debugging around the creation of the new $word object. Relocated Word constants higher in the code
  • Changed Certificates to V-table format & now capture all data
  • Changed write-progress “Writing to Word” to “Writing to ‘<filename>'”. (Invaluable when you’re running a batch)
  • If the InputFile is a .tar (and you have 7-Zip installed) the script now reads and captures:
    • The Name of the MOH file. (Shown in “Media System Configuration”)
    • The licence, Node ID and Serial Number from “nodeinfo.txt” (if it exists – old f/w doesn’t have it)
  • Fixed bugs:
    • Switzerland, Turkey & the UK were out of whack in the $FXSFXOCountryLookup. (Thank you Laurence E)
    • Win7 (P$v2) would crash on the “TestForNull $null” lines. Adding another null test inside the null test seemed to fix it!
    • Found the script might not document some content (e.g. media) in a ‘lighty-loaded’ SBC. (Flawed $null test of $sectionData)
    • Opening .tar with 7-Zip failed if there was a space in the path or filename. Changed $Arguments from Array to String & wrapped filenames in quotes

v5.0: 9th August 2015

  • Changed version numbering to align with the most recent version of SBC firmware supported
  • Added new “RedactIP” command-line switch for my government customers: replaces all IPv4 addresses with text
    • It’s a global find/replace, not specific to fields called “ip address”, so it may catch other text unintentionally
    • It fires on masks and other ‘n.n.n.n’ strings from 0.0.0.0 to 255.255.255.255
    • It reuses the same dummy name for every instance of the same IP address in the file
  • Updated the layout of Security / TLS Profiles:
    • Moved “Mutual Authentication” to Common Attributes at the top
    • Removed display of “Fallback Compatible Mode”
    • “Validate Server FQDN” now only shows if “Verify Peer Server Certificate” is Enabled
  • Added v5.0 support, including:
    • New ‘presence’ Input and Output types to Transformation Tables
    • “Maximum Call Duration” & “Min MOS Threshold” to Route entries
    • “Authorization on Refresh” & “Session URI Validation” to SIP Server table
    • Option “Path” & “Diagnostics Header” to SIP Profiles
    • SIP:
    • – “NAT Qualified Prefix Tables”
    • – “Trunk Groups”
    • – “Node level SIP settings”
    • SIP Sig Gps:
    • – Add “Inbound NAT traversal” section
    • – Add “Play Congestion Tone”, “Allow Refresh SDP” & “Call Proceeding Timer” options
    • Change display of Media Information “AudioFax” Stream mode: only if the backup file contains “RTPDirectMode” (new in v5.0)
    • Added “Link Monitors” and “Skype / Lync CAC Profiles” to Protocols / IP / Network Monitoring
    • Added Split DNS & DNS table under Protocols / IP
  • Fixed bugs:
    • Changed RegisterKeepAlive in SIP Sg as per SYM-19541 note in v5.0 list of “Updates and Fixes”
    • Suppressed display of “UA Header” in SIP Profiles if “Trusted Interface” is Disabled
    • Added Calling (and Called) SubAddress/Number and Destination Trunk Group to Transformation Tables Lookup, and the latter to the handling
    • The TLS Profiles / TLS Client Cipher “Sequence” was only reporting the first in the list: legacy config. Now correctly reporting the entire list

v2.8: 13th July 2015 – HAPPY SECOND BIRTHDAY!

  • Sonus has added more info to the drop-down text in Message Translations. Revised the hashtables accordingly
  • Also added new “3” = “Proceeding” to $MsgXlatMsgTypeLookup
  • Added “Dynamic Refresh” to the IP Hosts table
  • Added display of “Reset SRTP Rollover Counter” if “Crypto Profile ID” != “None” in Media Lists
  • Added a space after the comma in the DC search scope to help Word line-wrapping
  • Added Ring Validation and related values to FXO ports table. (Thanks @paulsalmon77)
  • Reduced some of the header widths in WriteSection (essentially to fit the extra FXO port info above)
  • Moved “Fallback to Passthrough” to end of Fax Media Profiles and added “Super G3 to G3 Fallback”
  • Added “Termination” to BRI ports table. (Thanks @Luca_Vitali)
  • Moved display of “Retry Non-Stale Nonce” in SIP Server tables. (Currently showing on-screen in Web UI incorrectly. SYM-19797 raised)
  • Added function “TestForNull” & consolidated all simple tests to now call it & populate from the hashtable as appropriate
  • Fixed bugs:
    • SIP Server Tables were incorrectly showing the “RecoverFrequency and not the “ReuseTimeout” for Connection Reuse / Timeout Limit
    • A SIP Sg with Signaling/Media Private or Source IP of “Auto” was showing as blank. Added $PortToIPAddressLookup “” = “Auto”

v2.7: 11 June 2015

  • *IF* you have 7-zip installed (http://www.7-zip.org/) “Inputfile” can now be the backup archive: – no need to manually extract ‘symphonyconfig.xml’ – just specify the .tar backup file. The script will extract symphonyconfig.xml to memory and do its thing
  • Added initial v4.1 support, including:
    • ‘FQDN in Contact Header’ to SIP Profile Tables
    • ‘Use Register as Keep Alive’ in SIP Sg
    • ‘Incoming Immediate’ if Loop Start Type is Reverse Battery in CAS Signaling Profiles
  • Fixed bugs / improved:
    • Updated input and outfile file handling to support relative paths. (Thanks Mike!)
    • With apologies and thanks to my users in non-English locales: – Added support for exotic characters by adding “-encoding UTF8” to “get-content $InputFile”. (Thanks Lasse!) – I’ve replaced the references to the English standard Styles with their enumerations. (Refer http://www.developerblogger.com/88_18808122/) – LET ME KNOW if you’d like me to add a command-line parameter so you can name specific styles to use instead of the standard Headings
  • Added an ugly bandaid to the ongoing “Error saving new Word document … Do not use [ref]” saga. If it fails, I do as it says: try again without [ref]!
  • Converted CAS Signaling profiles (FXS, FXO, E&M, R2) to V-table. These now capture *everything*
  • Whoops! Replaced all ” m/s” text suffixes with the correct ” ms”. Blushing at how I could have missed that…
  • Improved global ‘catch’ handling. If we crash with “Key cannot be null” (back-compat error) the offending line number is written to screen
  • Found several CAS SG types weren’t showing ‘Play Ringback’ in the table
  • TLS Profiles ‘Allow Weak Cipher’ was reporting 0/1 instead of Dis/Enbl
  • Noticed the g/w now refers to ‘Overlap Send/Receive *Mode*’ in the ISDN SG. Updated the text to align
  • Added some fixups for Win10: found $wdSeekMainDocument wasn’t declared(!), & range.text wanted “.ToString()” (Search “Win10” in code)

v2.6: 8 February 2015

  • Added initial v4.0 support, including:
    • Capturing the ‘platform type’ (new in the config file). Added to the cover page
    • SIP Sg ‘video proxy mode’
    • SIP Sg ‘Agent Type’ & related
    • CAS Sg E&M ‘Call Information Format’
    • Call Route entry ‘Video mode’
    • SIP Profiles ‘Digit Transmission Preference’
    • Added Global Security Options to ‘Security/Users’
  • Added initial v4.1 support, including:
    • Node-Level Settings / Enable DNS forwarding
    • Changes to Security / TLS Profiles
  • Fixed bugs where:
    • ‘Calling Numbering Plan’ wasn’t being correctly decoded in the transformation tables (thanks Lasse!)
    • Script crashed if a previous version’s NIC (NodeHardware/LogicalInterface) config was present in the backup file (thanks Lasse!). (A Sonus bug! SYM-16535/SYM-18340)
    • If in the TLS Profile ‘Mutual Authentication’ is Disabled, ‘Validate Client FQDN’ shows a value where it should not
    • An empty SBA table would be included in the document if there’s no ASM/SBA equipped in the appliance
    • SNMP ‘Management Addresses’ were always reporting Enabled. (Was reading the wrong element from xml)
    • Internal VLANs were showing as “Logical Interfaces”. Suppressed the display of all VLAN IDs with an XML “.value” > 14000
    • Script crashed with “Cannot index into a null array” if empty object passed to “foreach ($section in $Sections)” loop. (Specific to $PSv2/Win7)
    • TLS version Client Cipher has ALWAYS been reporting the wrong value: I was reading the TLS version from file, not client Cipher
  • Also:
    • Added AD User Groups & RADIUS User Class to ‘Security/Remote Auth Permissions’. (NB: Users are local to the box and are not backed-up)
    • Added RADIUS Configuration & Servers under ‘Auth and Directory Services’
    • Moved ‘certificates’ to under Security & split out into separate tables for ‘my’ & ‘trusted’
    • Added spaces before every ‘/’ in certificate tables – allows word-wrap and I think improves legibility. (Let me know if you disagree!)
    • Changed Media System config to V-table layout
    • Reordered several sections so they now show in the file in the same order as on-screen:
    • Media, Node Interfaces, System and SIP. Please let me know if I got any of these wrong – I’m flying blind in some cases (e.g. BRI)
    • Added Region Settings, MSTP & VLANs (under ‘Node Interfaces/Bridge’)
    • Changed Network Adapters to V-table layout (adding more content)
    • Removed a warning that fired unnecessarily when the channels in a ‘Partial’ ISDN Sig Gp jumped over the D-channel. (Was a leftover from development)
    • Added TCA Configuration under ‘SNMP/Alarms’
    • Renamed Logical Interfaces from “local n” to “Loopback n”
    • Updated the “$id” string at milestones at the end of the script to aid debugging. (The current value of $id is output if we crash)
    • Changed TLS Profiles to V-table layout (adding more content)
    • Where a Media Profile has its “VoiceRateInBitsPerSecond” stored as a zero, I now replace this with “not specified: inherent”
    • Suppressed the display of ASM as a Node Interface / Port if there’s no ASM physically present
  • KNOWN ISSUES:
    • With v2.1 f/w, the five default Bridge entries incorrectly show consolidated into five identical table rows
    • I don’t think v1 SIP Signaling Groups are being decoded correctly. I’m hoping that there remain *NO* gateways still running v1 anywhere on the planet
    • Some Norwegian characters are being incorrectly misrepresented in the Word/PDF files
    • For some users the script crashes with an “Error saving new Word document … Do not use [ref]” error. Try as I might, I just can’t dupe this bugger, sorry

v2.5: 25th September 2014

  • Appended “-verbose:$false” to when Word is launched (search “$word =”) to suppress unwanted Verbose text
  • Added ‘trimstart’ to input and output filenames to strip an unwanted “.\” if the user has Tabbed to select the files
  • Added “-landscape” switch. If run with this, the entire document will be created in landscape

v2.4: 11th July 2014

  • Nailed “Cannot index into a null array” bug with new “if $SectionData -eq $null” test. (Specific to $PSv2/Win7)
  • Added test for “if $SIPProfile.IE.RefreshMethod -eq $null” – gone from XML in 3.1.1b290
  • Corrected where if “$SIPgroup.IE.RTPMode” doesn’t exist, SIP SG’s don’t show Media, Ringback & MOH
  • Changed the way I was reading $release from XML. ($PSv2/Win7 wasn’t capturing it)

v2.3: 22nd April 2014 – the Lasse & Arran update. (Not publicly released)

  • (Seems I’ve gone all Android and each update needs some sort of codename).
  • Thanks Lasse for pointing out I’d overlooked Media Lists. These are now captured in their entirety.

v2.2: 22nd April 2014 – the John A Cook Special Edition. (Not publicly released)

  • Added catch and write-host lines to output the cause of fatal errors on-screen
  • Added extra “($value[$i] -eq $null)” test into WriteSectionVertically to trap occasional strange crashes
  • Added missing “Do” PARAMETER description to the header (overlooked in the 2.1 release)

v2.1 – 2nd April 2014

  • Updated SIP Server tables to show EVERYTHING
  • Updated Call Route tables to show EVERYTHING
  • Fixed bug where SIP Servers weren’t showing at all! (Was reinitialising $AllSipData inappropriately)
  • Added “-do” command-line switch to select specific output subsets – great for quick analysis of part of the config
  • Deleted $SipServerTablesMonitorLookup – no longer required
  • Added prefix of “16 – ” missing from that entry in the Q850DescriptionLookup
  • Removed redundant Cause Code prefix text from Action Config when $ActionConfig.IE.Action = “3”
  • Appended “(SIP)” to the front of the Sig Gp names. Ditto for ISDN and CAS Sig Gps
  • Tightened some column widths to improve layout (search “constrain”)
  • Renamed Fax Media Profiles column title “Fax relay fallback” to “Fallback to Passthrough”
  • Fixed bug in SIP Sg handling RTP Proxy Mode : was incorrectly writing to “SIPSgL2” instead of “SIPSgR2”
  • Cleaned up some handling in older firmware (~v1.8 – 2.1):
    • SIP Sg handling Remote Hosts and Masks was writing the blank/null entries to screen with “<n/a>”. No longer
    • SIP Sg handling Message Manipulation now correctly reports n/a instead of Enabled with no following content
    • ISDN Sg handling was incorrectly reporting ISDN Fractional = Yes if firmware pre-dated addition of this feature
    • SIP & ISDN Sg showed “Call Setup Response Timer” as blank when it didn’t exist. Now correctly reports n/a
    • SIP Sg showed “Registrar TTL” as blank when it didn’t exist. Now correctly reports n/a
    • CAS Sg showed “Caller ID Privacy Signaling” as blank when it didn’t exist. Now correctly reports n/a
    • SIP Profile showed “Transport Timeout Timer” as blank when it didn’t exist. Now correctly reports n/a
  • Whoops: realised that Translation Tables weren’t being shown in their right sequence. (Seriously, are there any of these still in operation?)
  • Set TimingConfig / Primary & Secondary Clock Recovery Port to show “<n/a>” if Tx Clock Source = System. (Both were prev just blank in some scenarios)

v2.0BETA – 9th February 2014

  • Renamed “Domain Controller” to “IP Address / FQDN” in Active Directory / Domain Controllers table, and reordered.
  • Fixed typo in $Q850DescriptionLookup – 127
  • Fixed bug in Action Config Table. The action “Route call, Await Connect Timer” was being reported as simply “Route Call”
  • Fixed bad entries in $SipSgMOHLookup – was reporting incorrect values
  • Fixed CAS R2/MFC Signaling Profiles. They were reporting MF and DTMF signaling the wrong way ’round
  • Fixed CAS E&M: DTMF on, off & inter-digit times weren’t showing correctly
  • Added missing TLS version lookup to TLS Profiles table. Renamed to “Client Cipher”
  • Removed $SipSgEarly183Lookup – was reporting incorrect values. Now using $EnableLookup instead
  • Changed entry 0 in $SipCredentialsTableLookup & $SipRegistrationTableLookup from “<n/a>” to “None”
  • Corrected case of AOR in$SIPRegistrationTablesColumnTitles
  • Created new “Type of AOR” lookup ($AORTypeLookup) for SIP Registration Tables
  • Added new columns to Remote Authorization Tables for “From URI User Match” and “Match Regex”, and new lookup $RemoteAuthFromURILookup
  • Added sections for SNMP, IP/Hosts, IP/Mirroring, SIP/LocalRegistrars, SIP/MessageManipulation/ConditionRuleTables, SIP/MessageManipulation/MessageRuleTables, QoE (new in 3.1)
  • Added Access Control Lists (thanks for the code Ben!)
  • Reworked Signaling Groups, SIP Profiles (and others) into new ‘vertical’ tables, with ALL information captured
  • Added optional Serial & NodeID parameters – specify them at runtime and the script will embed them in the “SystemNet” table
  • Structure overhaul: Re-ordered writing to Word to reflect the order in the gateway’s navigation menu (rather than the order in the XML file). Neatens progress bar count too.
  • Changed colour-scheme to green to reflect Sonus on-screen look. [If you hate it that much let me know and I’ll add a switch to revert to grey/gray]
  • Removed “Enabled” columns for objects that the user has no ability to disable
  • Added function FixNullDecription to better manage any object that was created without a title/description
  • Removed “Table n” from the table descriptions
  • Signed by my new DigiCert code-signing cert – no need to lower the ExecutionPolicy all the way to “Unrestricted””

v1.1 – 4th November 2013

  • Corrected a bug where the Media List Profiles table was incorrectly reporting the Enable/Disable status for Dead Call Suppression & Silence Suppression. (Thanks Mike).
  • Added “$ReverseEnabledLookup” to use for parameters with inverted Enbl/Disbl values.
  • Added “1” = “RTCP-XR” to $MediaRTCPModeLookup. (The Media List Profiles table previously showed “RTCP Mode” as blank if it was set to RTCP-XR.

v1.0 – 2nd July 2013

  • This is the initial release. You’re sure to find a few bugs I’ve not yet squashed.

– G.

Leave a Reply

Your email address will not be published. Required fields are marked *

... and please just confirm for me that you're not a bot first: Time limit is exhausted. Please reload the CAPTCHA.