Shoretel IP Network Migrations – How to engineer shoretel VoIP

This is an article I am writing about how to engineer Shoretel VoIP.

Basically while working for a healthcare company in western Washington state I realized it was going to be a difficult task to change the ips of all the devices whether dhcp or static Ip due to the VLAN ID and the dhcp scope 156 policies that allow the shoretel to sync up with the ShoreTel Director / HQ server.

I realized that while logged into the phone via telnet and watching the activities in the vxworks / u-boot environment that there was an nvram process going on when you dial MUTE+C-L-E-A-R (MUTE+25237) to erase the nvram cached settings of the network.

I also noticed that this command does not always wipe the nvram on the first attempt for some reason, ie: the nvram address possibly being accessed when the engineer walks to the phone and issues this command or something similar.   While using the tools “ipbxctl.exe” as well as “phonectl.exe”  which enable telnet access for 60 seconds on an appliance like an sg90 or t1k {ipbxctl.exe} or a phone {phonectl.exe} – (both tools are located in c:\program files x86\ShoreLine Server\ directory I believe on the HQ / ShoreTel director or Voicemail server).

I have written a few perl scripts and I recommend installing cygwin on a machine and copying those two files to the root c: directory of your machine you install cygwin on.

 

The reason cygwin is so powerful and useful in this situation is because of a set of tools that can be compiled into cygwin while remaining in the windows environment.  I will touch on these tools quickly and leave research up to the reader… YOU 🙂

1) install the perl cpan bundle – all the compiling bundles but mainly the Net:: bundle which includes telnet from a command prompt.

2) once you have cygwin installed with the telnet tools (Net::) and perl you’re pretty much ready to migrate enterprise networks on the fly with ShoreTel.

 

Here’s how I did it in 2013:

You need a batch script to run and turn telnet on via phones:

After you build your script it essentially looks like a .bat file containing something like:

ping 10.0.0.1 -n 5 > nul
C:\\Program Files (x86)\Shoreline Communications\Shoreware Server\phonectl.exe -pw 1234 -telneton 10.0.1.1
ping 10.0.0.1 -n 5 > nul
C:\\Program Files (x86)\Shoreline Communications\Shoreware Server\phonectl.exe -pw 1234 -telneton 10.0.1.2
ping 10.0.0.1 -n 5 > nul
C:\\Program Files (x86)\Shoreline Communications\Shoreware Server\phonectl.exe -pw 1234 -telneton 10.0.1.3
ping 10.0.0.1 -n 5 > nul
C:\\Program Files (x86)\Shoreline Communications\Shoreware Server\phonectl.exe -pw 1234 -telneton 10.0.1.4
ping 10.0.0.1 -n 5 > nul
C:\\Program Files (x86)\Shoreline Communications\Shoreware Server\phonectl.exe -pw 1234 -telneton 10.0.1.5

10.0.1.0\24 in this example is the network with the ip phones we want to open telnet on.

I found it quicker to use the cygwin tool along with the up arrow key to edit the last octet every command like this:

cyg$> cygstart.exe “/cygdrive/c/phonectl.exe -pw 1234 -telneton 10.0.1.1”

(command prompt with access enabled flashes by)–

cyg$> telnet 10.0.1.1

once you have accessed the ShoreTel phone, it looks like this:

>dhcpEraseCache

and it should give you something back saying you erased 0x16 or something and you’re good to go.

 

Press control + ] to get back to this prompt:

telnet> quit

and then type quit.

YOu’ll be back to the cygwin prompt

cyg$> cygstart.exe /cygdrive/c/phonectl.exe -pw 1234 -telneton 10.0.1.2

up arrow to start again and edit the ip and once telnet is enabled follow the same activity again:  telnet into the device and dhcpEraseCache two times.


No Comments so far.

Leave a Reply