Thursday, June 20, 2019

ShoreTel: Migrate a ShoreTel 14.2 system to a new Server

Here are the steps that I follow when I need to migrate a ShoreTel 14.2 and below system to a new server. This could be to upgrade the server OS or moving from a physical server to a virtual server.

There are a few things to note:


  1. You will need to install the SAME version of ShoreTel on the new server that you are using on the current server
  2. The new server will have to have the same IP address as the current server at the time you install ShoreTel on it
  3. The new server will have to have the same computer name as the current server at the time you install ShoreTel on it
  4. After the server is migrated you will need to request a new system key from ShoreTel 

Prep new Server:



  1. Prep the new server as per the Build Notes and Install Guide
  2. Change IP address to the same IP as the old server
  3. Change the name to the same name as the old server
  4. Install the ShoreTel Software (EXACT same build as old server)
    1. Right click on Setup and click "Run as Administrator
  5. Reboot when Prompted
  6. Log in to Director using the default credentials
    1. Username: admin
    2. Password: changeme
  7. Verify all services are running by click on the Headquaters link to the right of the Quick Look page
  8. Log out of Director

Back up the old server:

  1. Databases .sql files
    1. Navigate to C:\Program Files (x86)\Shoreline Communications\Shoreware Server\MySQL\MySQL Server 5.0\Examples and run the following files
      1. BackupCDR.bat -> Will output an .sql file to the root of C:
      2. BackupConfig.bat -> Will output an .sql file to the root of C:
      3. BackupWebridge.bat -> Will output an .sql file to the root of C:
        1. Only required if there is an SA-100/SA-400 in use.
      4. BackupMonitoring.bat-> Will output an .sql file to the root of C:
        1. Only required for ShoreTel 14.x
      5. Copy the resulting .sql files folder to a safe location (Network Share, Thumb drive, etc...)
  2. Shoreline Data folder
    1. Stop all ST services from script at C:\Program Files (x86)\Shoreline Communications\ShoreWare Server\Script\ hq_shoretel-stop-svcs (make sure to run as administrator)
  3. Copy the VMS, User Data, & Prompts folder from Shoreline Data, to a safe location (Network Share, Thumb drive, etc...)
    1. Start all ST services from script at C:\Program Files (x86)\Shoreline Communications\ShoreWare Server\Script\ hq_shoretel-start-svcs (make sure to run as administrator)
  4. Reboot the ShoreTel server
  5. Copy the back up files to the new server
  6. Shut down the Old server

Restore data to new server

  1. Place the backed up configuration and CDR SQL files at the root of the C: drive and run the "Restore" batch files at C:\Program Files (x86)\Shoreline Communications\ShoreWare
    1. Server\MySQL\MySQL Server 5.0\Example
      1. RestoreConfig.bat
      2. RestoreCDR.bat
        1. Only required if the site has an SA-100/SA-400
      3. RestoreMonitoring.bat
  2. Stop all ST services from script at C:\Program Files (x86)\Shoreline Communications\ShoreWare Server\Script\ hq_shoretel-stop-svcs (make sure to run as administrator)
  3. Copy the back up version of VMS, Promps, and User Data folders to the Shoreline Data folder (write over the new folders)
  4. Delete all .dat files in the VMS folder
  5. Start all ST services from script at C:\Program Files (x86)\Shoreline Communications\ShoreWare Server\Script\ hq_shoretel-start-svcs (make sure to run as administrator)
  6. Reboot the server

Verify the old data is restored

  1. Log into Director with your existing credentials
    1. Check for your users, AA menus, switches, etc
  2. Request a new license key for the new server


ShoreTel: How to check your Voice mail from outside the ShoreTel/Mitel system

There are sometimes where you need to call into the ShoreTel\Mitel phone system to check your voice mails. This usually happens when you are not doing voice mail to email, don't have access to the system remotely or many other reasons. To access your voice mails just follow the instructions below.


  1. Dial your direct number or another phone number that belongs to the system
  2. When you hear the voice mail greeting press the * and then #
  3. The System will ask you to enter you extension number
  4. Then the system will ask you to enter your voice mail password followed by a #
  5. After you have completed the above, all operations are the same as the regular office voice mail 

ShoreTel: How to log into a ShoreTel/Mitel phone

Here are the steps that you can use to log into a ShoreTel/Mitel phone that is in a Available state or if someone else is logged into it.

Sometimes (depends on the system configuration) on the ShoreTel/Mitel IP 400 series phones there will be a soft key that you can use to assign your extention to that phone. To do this you would:

  1. Press the Assign soft key
  2. Enter your extension number
  3. Press the Next soft key
  4. Enter you voice mail password
  5. Press OK
  6. If you need to unassign your extension from a phone there is a unassign soft key you can press or you can follow the steps below to unassign you extension from the phone


If your phone does not have the Assign soft key you can still assign your extension to that phone. To do this you would:

  1. Pick up the handset to go Off-hook
  2. Press the # to access the Voice Mail system
  3. Enter your extension number
  4. Enter you voice mail password
  5. Enter 7, 3, 1, to assign your extension to that phone
  6. If you need to unassign your extension from a phone, you would follow the steps above except you would enter 7, 3, 2

ShoreTel: How to find a call GUID from the Connect Client

How to pull a GUID for a ShoreTel/Mitel Call or Voice Mail from the Connect Client.


  1. In the connect client Click on the Recent Navigation link
  2. In the right pain select the drop down and select Calls or Voice Mail
  3. Find the Call or Voice Mail that you need the GUID for
  4. Right click that Call or Voice Mail and select Copy Call ID to Clipboard
  5. Now you can past the GUID into a email or text document

ShoreTel: Installing Connect Windows components fail

A few times when I started installing Mitel Connect on a Windows Server 2016 I have gotten issues where some of the Microsoft windows components fail to install. Things like Web Framework, external cache, ect.




This is because there is a bug where the Connect install has a issue reading the framework version. So in order to fix this you have to edit the registry. In order to do this open regedit and navigate to:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\InetStp

Once there edit the "MajorVersion" entry, and set the "DECIMAL" value to 9 and then reboot the server. Now you can go back and install the Connect software and you should be good to go.



Thursday, May 16, 2019

Cisco: Useful Cisco commands

There are a ton of useful Cisco commands that I do not use everyday but I still use often. This post is probably going to be one that gets updated frequently with new commands that I come across that I want to hold on to. So I am apologizing in advance in case this one gets a little messy. The actual Cisco command will be in bold lettering and in quotations.



Display Cisco stateful packet inspection session created becasue a policy map is applied on a specified zone pair - "show policy-map type inspect zone-pair sessions"


To show AnyConnect connected VPN users and their session info - "show vpn-sessiondb anyconnect"


To show that detailed status for active crypto sessions (i.e. VPN) - "show crypto session detail"

To delete a router config enter in the following command and reboot the router with out saving - "delete nvram:startup-config"


Here is how to create a LACP trunk on a Cisco switch:
"interface GigabitEthernet1/0/48
 switchport mode trunk
 channel-protocol lacp
 channel-group 2 mode active"


Cisco 4K routers NAT ACL's can not use a Permit IP  any any for the NAT overload statement. It has some issues with it, so you need to be more specific with the networks that it will be NAT'ing. For security reasons you should be specific anyways. By using a Permit IP any any NAT statement it will cause irregular behavior on the router, it very well may work but it also may just stop working.

"ip nat inside source list NAT interface GigabitEthernet0/0/0 overload
IP access-list extended NAT
 10 permit ip 10.1.1.0 0.0.0.255 any
 20 permit ip 10.1.2.0 0.0.0.255 any"





ShoreTel: Recording Audio from a Physical ShoreTel Voice Switch Port

You can capture audio output from a ShoreTel Voice Switch physical port using VxWorks commands. The audio output is save the the HQ or DVS server that controls the switch. This is great when you are trying to trouble shoot voice corruption or audio issues


  1. From the Start menu, navigate to the Control Panel-->Administrative Tools and locate the IIS Manager
  2. Right click on the IIS Manage and select Properties. Then enable the ability to write to the FTP server by selecting the Write checkbox and clicking OK
    1. This enables the ability to write to the following director C:/inetpub/ftproot
    2. You may also need to edit the permission fo the C:/inetpub/ftproot directory and give the users group write access
  3. At the command prompt on the voice switch you would like to record from enter
    1. Record2file2 (23, 45, "test") i.e I want to record a call on a T1 on port 23 for 45 seconds and save the file with the name of test.
    2. The moment you press enter is when the recording will start
  4. Go the the C:/inetpub/ftproot directory and pull the two files <NAME>rx.pcm and <NAME>tx.pcm to your desktop.
  5. Using an audio editor (like Audacity or Cooledit) you will be able to listen and analyze the call
    1. Import the PCM file to Audacity using the following options
      1. File -> Import -> Raw Data
      2. Signed 16-bit PCM
      3. Big-endian
      4. 1 Channel (Mono)
      5. Sample Rate 8000 (8k)

Wednesday, May 15, 2019

Cisco: Copy a routers running config to a text file or flash drive

A lot of customers ask how they can pull a back up running configuration of their Cisco router. So here are the steps to do so.


  1. Open Putty
  2. On the left side select Logging under Session
  3. Select the ratio button next to All Session Output
  4. Press the Browse button and navigate to the location you wish to save the file and enter a file name in the file name field and click Save
  5. Click on Session
  6. In the Host name box enter the IP address of the device you want to connect to
  7. Select Telnet, SSH or Serial ratio button under the Connection type
  8. Click Open
  9. If you are using SSH and this is the first time you are connecting to this device on this computer you maybe asked to save the RSA key. Click Yes
  10. Enter your log in info to log into the router
  11. Depending on your privilege level you may need to type in Enable to get into enable mode
  12. Type Show run and press enter
  13. Some of the configuration will be shown, press the Space bar to show more
  14. Once all the configuration has been displayed type Exit and press enter
  15. The Putty session should close
  16. Browse to the location where you saved your file and change the extension to .txt
  17. Open the file and verify that you see the device configuration.

To copy config to a flash drive

  1. Insert flash drive into the router
  2. At an enable prompt (shown by a # instead of a >)
  3. enter the following command copy running-config usb0:running-config
  4. remove the flash drive and close the putty session

Cisco: How to install Cisco AnyConnect

Here are some instructions on how to download and install the Cisco AnyConnect client to a PC.


  1. Open a web browser and go to the IP address or URL for your VPN and make sure you use https to access it (i.e. https://vpn.anycompany.com)
  2. If the ASA is using a self-signed certificate you will see a page that says this site is not secure. This is OK, just click on the Details link if your are using Edge or IE and if you are using Chrome click the advance button
  3. Then click on the Go on to the webpage link if you are using Edge or IE and if you are using Chrome click on Proceed to
  4. Select the correct group you belong to from the drop down (if there is one)
  5. Enter the Username and Password that you should use to connect to the VPN
  6. Click Login
  7. Click the blue download bar for your OS version
  8. Click on the Details link if your are using Edge or IE and if you are using chrome click the advance button
  9. Click on the Go on to the webpage link if you are using Edge or IE and if you are using Chrome click on Proceed to
  10. A download box will appear at the bottom of your screen and you can run the file or save it to your computer. I usually tell end users just to run it, so click Run
  11. When prompted, install the AnyConnect Application



  12. Start the Cisco AnyConnect client
    1. Start=>All Programs=>Cisco=>Cisco AnyConnect Secure Mobile Client=>Cisco AnyConnect Secure Mobile Client
  13. The AnyConnect connection box will appear
  14. If on step 1 when you entered the URL in the web browser you saw that this is not a secure site please skip the section labeled Untrusted Servers
  15. In the AnyConnect connection box enter in the IP address or URL that you typed into your browser in step one and Click Connect 
    1. If you skipped down to the Untrusted server section you will see a security warning box once you click Connect that says this is an Untrusted server Click Connect Anyway
  16. A box will appear; select the group that you belong to from the drop down if there is one
  17. Enter in your username and password and click OK
  18. When it is finished, you will see a box in the bottom right corner of your screen saying Connected
  19. You can now close the web page as you have installed the AnyConnect VPN client and you are connected to the VPN
  20. To disconnect from the VPN, right click on the AnyConnect icon that is in your system tray and choose VPN disconnect


Untrusted servers

  1. Click the Gear in the bottom left corner
  2. Click on the Preferences tab
  3. Uncheck Block connections to untrusted servers
  4. Click the X in the top right corner to close the window
  5. Go back to step 15


Tuesday, May 14, 2019

Cisco: Right to use Licensing

Cisco Right to use licensing allows you activate a specific license type and level for cretin types of equipment. A lot of times when we order a Cisco AppX or SecK9 license for a router or do a RMA on a piece of equipment I do not always need to activate a license and just configure the license as Right to use. Here are some of the commands to configure a right to use license

Conf t
License accept end user agreement
Yes
License boot level <License_Level> (Enter in the license name, appx, securityk9, ect)
Write memory
License right-to-use move <License_Level>

Other useful licenses commands:

To see a list of licenses and to see what is currently in use you can use the "Show License" command
To disable the license from a device you can use the "No license feature <License_Level>" command


Polycom: Locate a Polycom phone's IP address (5000, 6000, 7000)

I work with Polycom phones on a regular basis but not regular enough to always remember how to find the IP address of the phone from the display. So here are the steps to find it.


  1. From the Home/Menu, select Settings
  2. Select Status
  3. Select Network
  4. Select TCP/IP Parameters
The screen should now show you the phones IP address, in addition to other info like the subnet mask and gateway.


ShoreTel: Configure Valcom PagePro VIP-201A with ShoreTel

So there is no documentation from ShoreTel that says the Valcom PagePro IP VIP-201A is supported. But I was able to get it to work by playing around with the settings. The VIP-201A is really just acting as a SIP extension. Now I do not have the exact steps to do this as I kinda lost track of them when I was working on this but here is a general outline of what I did.


  1. Install the VIP-102B setup tool to access the device
  2. You must first scan and find the device  (You should probably be on the same network as the device)
  3. Statically assign an IP address to the device
  4. Reboot the device
  5.  Go to System -> Audio groups
  6. Create the Audio Group you need and click OK
  7. Go To System -> Audio Group Membership
  8. Select the Audio Group in the Drop down that you want to use, Select what port it should be available to
  9. Click Close
  10. Go to the Channels tab
  11. Select 1 through 4 and put in the dial code you want to use for it (leave the rest default)
  12. Go to the SIP tab
  13. Select you paging zones and fill out the info
    1. Phone number - After you dial the ShoreTel SIP extension to access the Valcom box, you will hear a tone in the handset, Then dial this "Phone number" to select the paging zone you want to access.
  14. Description
    1. Authentication Name: Used for authentication with the ShoreTel SIP extension, you should use the ShoreTel extension Clientname
    2. Secret: This is the SIP password on the SIP extension you are trying to use
    3. SIP Server: Enter in the IP address of the ShoreTel switch that hosts the SIP proxy (this is not the ShoreWare Director Server)
  15. Pre-Announce Tone: use this to know when to press the code for the paging zone
  16. Audio Groups: Select the Audio Groups you want this dial code to access for paging
  17. Configure each SIP tab as you need to, the authentication will be the same for each one
  18. To save this config, go to File --> Save (This will save it to your PC)
  19. Reboot the device
  20. Check ShoreTel ShoreWare Director Telephones to see if the Valcom device is registered

Hopeful this will help you in your configuration!

Monday, March 18, 2019

ShoreTel: Mobility Trusted Admin APP Set-up

Here are the steps to create the certificates that are used between Mobility and Connect.


  1. Run cd “C:\Program Files (x86)\Shoreline Communications\ShoreWare Director\App\bin” pki.bat -S SMRAdminApp in a Command Prompt window
  2. To generate the certificate for the SMR they are located in the Shoreline Data\keystore\certs directory and copy the contents of the following cert and key files
    1. SMRAdminApp.crt - located in cert folder within the above root directory
    2. SMRAdminApp.key - located in private key folder within above root directory
  3. Complete the following steps to set up trusted server applications for the SMR
    1. Log in to Mitel Connect Director and navigate to System > Security >Trusted Server Application
    2. Click New, and complete the following steps to create a new trusted server application for the
      1. Mobility 9.0 SMR
      2. Specify the Trusted account name. This should be a descriptive name that conveys the location and use of the SMR. This information is for reference only
      3. Browse to Shoreline Data\keystore\certs, and select the SMRAdminApp file
      4. Select Client Application Service in Application Type, and select Enabled
      5. In Property Type, select admin-cas in Available, and then click to move it to Selected
      6. Click Save
  4. Navigate to Configuration > System > Authentication > Directory, and complete the following steps to configure the trusted application settings
    1. Click Add
    2. Select Mitel Directory in Server Type
    3. Specify a Name
    4. Click Apply
    5. Specify the headquarters FQDN or IP address in Server Address
    6. Select Trusted Admin App, and then click the Manage App Certificate link to launch the Directory Server Certificate page
    7. Click Import, and paste the contents of the cert and key files you copied in step 1 of this section
    8. Click Import again, and then cancel the prompt to reboot
    9. Select tls in Security type
    10. Click Apply, and then click Verify
  5. Sync Authenticator Keys on the SMR
    1. Open a browser and navigate to the SMR configuration page with administrator permissions
    2. Navigate to Configuration > System > Authentication > Directory, and select the directory you defined in Configure Trusted Application Settings on the SMR on page 21
    3. Click Sync ABC Keys to sync the authenticator public keys with the headquarters PBX. Mitel recommends you use the Query option to search for a known Mitel directory user name to verify that you can successfully access the Mitel directory
  6. Specify the Authorization Directory Servers
    1. Open a browser and navigate to the SMR configuration page with administrator permissions
    2. Navigate to the Configuration > Groups and Users page
    3. Select the appropriate group, and then select the appropriate directory type and directory in External User Authentication/Authorization
    4. Click Next. Complete configuration as necessary, and then click Apply

ShoreTel: Installing Connect on Server 2016

I have run into a few issues when installing ShoreTel Connect on Server 2016, and the main one is you run into a issue where while installing Connect you get a popup that says  "A digitally signed driver is required" and the install fails. This is usually because driver signing and secure boot is enabled. So here is the check list I use when I install Connect on Server 2016.


  1. Prep the new server as per the Build Notes and Install Guide (Check with TacTools Powershell script)
  2. Disable secure boot (BIOS)
  3. Disable Digital driver signing enforcement run ->gpedit.msc User configuration->Administrative Templates->System->Driver Installation->Code signing for drivers set to disable
  4. From Admin CMD run the following command bcdedit.exe -set loadoptions DDISABLE_INTEGRITY_CHECKS
  5. Change DEP to essential windows applications
  6. Disable UAC
    1.  HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System EnableUA set to 0
  7. Disable Windows firewall
  8. Set Quality Audio experience service to automatic start
  9. Set Simple mail transfer service to automatic start
  10. Check to make sure NO group policies are applied
  11. Check to make sure NO antivirus is installed (disable Defender)
  12. Disable automatic Windows updates
  13. Run ShoreTel compatibility checker

ShoreTel: Order to paste in Certificate keys for ShoreTel Mobility

When importing Certificates into a ShoreTel Mobility router, this is the order you use to paste in the keys, while making sure you do not have any spaces between them and you include the start here and end here line part of the keys.

Paste in Public key, then the Private key, then the Bundle key.

ShoreTel: SIP profile parameters and their usage


DontFwdRefer Usage: DontFwdRefer=[0|1] 
When this parameter is set to 1, it inhibits the use of REFER for transfer on the trunk.  It also inhibits sending INVITE with Replaces header.  Peer must support INVITE without SDP for certain transfer call- flows

SendMacIn911CallSetup Usage: SendMacIn911CallSetup=[0|1] 
This parameter is used in conjunction with SIP based emergency gateways, such as those provided by 911 Enable.  It appends the MAC address of the IP phone in the From tag of an outgoing emergency call.
From: "Dizzy Gillespie" <sip:+14085551111@10.1.3.55:5060;user=phone>;tag=shorUA_1077733456- 103455277-EPID-001049042E4A  
This only applies to ShoreTel IP Phones, excluding the IP-8000 conference room phone

StripVideoCodec Usage: StripVideoCodec=[0|1] 
This parameter should be set to 1 if the trunk does not support video properly.  When set to 1, it strips video codecs from SDP in INVITE’s being sent to the trunk and properly restores and rejects the video media lines in the 200 response from the trunk.  It also strips video codecs from INVITE’s coming from the trunk and properly restores and rejects the video media lines in the 200 response to the trunk

AddG729AnnexB_NO Usage: AddG729AnnexB_NO=[0|1] 
This parameter should be set to 1 if the trunk does not support G729 Annex B properly.  When this is set, any outgoing INVITE with G729 in the SDP will have the attribute "a=fmtp:18 annexb=no" added to the SDP.

HistoryInfo Usage: HistoryInfo=[none|diversion|history] 
This parameter controls how information is presented when an external incoming call is forwarded out this trunk.  In this case, the "From" header will indicate the actual caller, which may not be a valid number to present to the trunk.  The Diversion or History-Info header will be used to indicate the DID number of the user on who’s behalf the call was forwarded. 
If set to 'none' or omitted, then no indication of the forwarding number is presented.  If set to 'diversion', the SIP Diversion header is supplied, as dictated by RFC 5806.  If set to 'history', the SIP History-Info header is supplied, as dictated by RFC 4244.

EnableP-AssertedIdentity Usage: EnableP-AssertedIdentity=[0|1] 
This profile parameter controls how Caller-ID is presented on outbound calls.  If it is set to 0 or not pre- sent, then the old style or presenting caller-ID in From header is used when sending outgoing calls.  Note that the style of presenting blocked caller-ID has changed in ShoreTel 12. 
When set to 1, the Caller-ID is placed in the P-Asserted-Identity header.  If privacy is indicated for the call (User dials *67, or trunk group is configured to not send Caller-ID), then a Privacy header is inserted with value “id”, and the From header is anonymous

Port Usage: Port=[5060|1-65535]
This profile parameter changes the remote port used for the SIP trunk.  Currently, there is no way to con- figure the port number for SIP trunks in ShoreWare Director.  Only port 5060 is supported.  This profile parameter allows the port number for a trunk group to be configured

HairPin Usage: HairPin=[0|1]  
This profile parameter controls if hairpin is allowed on SIP trunk calls, when enabled and available, features like Barge-in, silent monitoring, whisper-page, whisper-coach, call-record will be supported on the SIP trunks.

OptionsPing Usage: OptionsPing=[0|1] 
This profile parameter controls if OPTIONS message should be sent to remote party for detecting connectivity

OptionsPeriod Usage: OptionsPeriod=[180|60-3600] 
This profile parameter is used to control the time interval between SIP OPTIONS messages

OverWriteFromUser Usage: OverWriteFromUser=[none|UserID|BTN] 
This profile parameter is used to choose either user’s id or billing phone number in the FROM header when making calls

DontAdvertiseUpdate Usage: DontAdvertiseUpdate=[0|1] 
This profile parameter is used to decide if UPDATE should be sent in the SUPPORTED header

RFC2543Hold Usage: RFC2543Hold=[0|1] 
This profile parameter is used to decide if connection field should be set to 0.0.0.0 in case of sending out- going INVITE for hold

AlwaysSend180 Usage: alwaysSend180=[0|1] 
This profile parameter is used to decide if a 180 will be sent out right away after receiving an incoming INVITE

IgnoreEarlyMedia Usage: IgnoreEarlyMedia=[0|1] 
This profile parameter is used to decide if early media should be forwarded to the caller, when a SIP de- vice doesn’t wish to accept early media, this parameter should be set to be 1

Register Usage: Register=[0|1] 
This profile parameter is used to decide if outgoing REGISTER messages should be sent

RegisterUser Usage: RegisterUser=[BTN|UserID|DID] 
This profile parameter is used to decide in what to use in FROM header in the outgoing REGISTER messages

RegisterExpiration Usage: RegisterExpiration=[3600|60-86400] 
This profile parameter is used to decide the time interval between outgoing REGISTER messages

1CodecAnswer Usage: 1CodecAnswer=[0|1] 
This profile parameter is used to decide if the SDP should contain only 1 codec for an outgoing answer.


SIP Extension Profile Parameters:

1CodecAnswer Usage: 1CodecAnswer=[0|1] 
Some devices do not honor the codec order specified in a 200 OK response to an INVITE.  This causes several problems.  First, some endpoints in the system do not support asymmetric codecs during a session.  Second, any bandwidth calculations based on observing the offer/answer exchange will likely be wrong.  When set to 1, only 1 audio codec is sent in a 200 OK response. 

AddGracePeriod Usage: AddGracePeriod=[0-1800] 
Some SIP devices re-register too close to the expiration time, introducing a race condition where the sys- tem is in the process of deleting the record from the system when the re-register is received.  This parameter adds a grace period to the expiration received in the REGISTER request.

AllowedCodecs Usage: AllowedCodecs=[any|[codec[,codec]*] 
Valid values are ‘any’ (default) or a comma separated list of codec names.  The codec name must be for- matted as shown on the Supported Codecs page (Administration, Call Control, Supported Codecs).  For example: 'PCMU/8000'.  This should be used if the SIP device cannot follow the normal rules of codec negotiation for all codecs supported in the installation.  For example, one particular implementation would rejected requests containing some codecs it didn’t understand.
This only applies to audio codecs.  Video codecs and RFC 2833 'telephony-event' is not affected by this parameter.

DelayUnregister Usage: DelayUnregister=[0-20] 
Some devices, under certain circumstances, un-register, then immediately register again.  This introduces a race condition similar to the one discussed in section 0.  Usage of this parameter mitigates this problem.

FakeDeclineAsRedirect Usage: FakeDeclineAsRedirect=[0|1|400-606] 
Some SIP devices present an option to decline a call.  When invoked, various different response codes have been used by various implementations.  If set to 0, only a 3xx class response will cause the call to be diverted to the busy destination.  If set to 1, 603 will be sent to busy destination as well.  If set to a value from 400 to 606, the selected response code will be used to send the call to the busy destination.

MWI Usage: MWI=[none|subscribe|notify] 
This parameter defines how RFC 3842 Message Waiting Indication is handled.  When set to "subscribe", an explicit subscription is required.  If set to "notify", the NOTIFY messages are sent without requiring a SUBSCRIBE.  If set to "none", then MWI is not supported.

OptionsPing Usage: OptionsPing=[0|1] 
ShoreGear switches can send a periodic OPTIONS message to SIP devices, and mark them Out-Of- Service if they don’t respond.  There are 2 benefits to this: Calls are diverted immediately to the busy destination, and there is logging of the event on the server.
The OPTIONS ping occurs periodically between 3 and 4.5 minutes.

OptionsResponse Usage: OptionsResponse=[200-699] 
Some devices reject OPTIONS requests, such as with a 405 "Not Supported" response.  This can still be used to determine if the device is alive and on the network by using this parameter.  Otherwise, a 405 response would put the device Out-Of-Service.

SendEarlyMedia Usage: SendEarlyMedia=[0|1] 
When set to 1, the device will be sent 183 response with SDP for certain call-flows.  Currently, this is only used in error conditions when an announcement is played.

StripVideoCodec Usage: StripVideoCodec=[0|1] 
This parameter should be set to 1 if the device does not support video properly.  When set to 1, it strips video codecs from SDP in INVITE’s being sent to the device and properly restores and rejects the video media lines in the 200 response from the device.  It also strips video codecs from INVITE’s coming from the device and properly restores and rejects the video media lines in the 200 response to the device.

XferFailureNotSupported Usage: XferFailureNotSupported=[0|1] 
For scalability reasons, there are a few call-flows that use REFER as a means for the caller to hear ringback tone.  These call-flows rely on the device’s capability to recover from a transfer failure and keep the original call alive.  If the device cannot do this, then this parameter should be set to 1, and an alternative means of providing ringback is used.


ShoreTel: TMSNCC log break down and explanation

Here is some info I found on ShoreTels website a while go that breaks down the TMSNCC log file and how to read it. I am putting here so that I can have easy access to it when I am out in the field and i see something that I don't recognize and i need some reference. There is a lot of data in this log that can give you info as to what is happening on a call. I am not covering all of it just part of it as there is just too much info to cover. Again most of this info was taken from a ShoreTel document that I got on their website.

Parameters:
C-CE: Call Create Event- To initiate a call
L-CE: Leg Create Event- Follows a C-CE for every call setup. For internal transfers (blind transfers) C-CE: may be skipped
L-IE: Leg Info Event- Follows a C-CE, L-CE typically. Leg Info provides information on the other parties in the call (peer as well as controller)
C-SE: Call State Event- When call is in progress updates either parties on the state of the call (RingBack, Offering, Established etc)
L-SE: Leg State Event- Typically follows a C-SE to inform the leg state changes
L-DE: Leg Destroy Event- When call is teared down leg is destroyed
C-DE: Call Destroy Event- Call destroyed after user/system hang up
G-MST: Media State Event- For the terminated leg in a call. Every RTP stream (every leg) has media stats

40000001 = Trunk call leg to PSTN
20000023 = Internal call leg
00020000-1aae-4f05-9cce-0010491e1b95 = Call GUID (different for every call)
ncc_media_ctl = PBX system responding to the caller


Example of a Call:

1555-555-5555 Calls in ---> Hunt Group Ext 2110 ---> HG Forward Always ---> Voicemail ---> User Hung Up


07:24:59.656 ( 7616: 4908) C-CE: 40000001 "00020000-1aae-4f05-9cce-0010491e1b95" ("+15555555555","WIRELESS CALLER",0xC) 00000000,SDP:N,ipCDS:0x00000002,flgs:0x00000000,cd:0x00000000,"7722,TGrp_1,p1,"(704) 940-7722"" "sip:TGrp_1,p1@10.168.98.6:5441"

07:24:59.656 ( 7616: 4908) L-CE: 40000001 "00020000-1aae-4f05-9cce-0010491e1b95" 0100847C(00000000),Req:00000000,1,Flgs:00000000(Null) "sip:TGrp_1,p1@10.168.98.6:5441"

07:24:59.656 ( 7616: 4908) C-CE: 20000023 "00020000-1aae-4f05-9cce-0010491e1b95" ("2110","HQ Main Hunt",0xC) 00000000,SDP:N,ipCDS:0x00000002,flgs:0x00000001,cd:0x00000000,"7722,TGrp_1,p1,"(704) 940-7722"" "sip:2110@10.168.98.6:5441"

07:24:59.656 ( 7616: 4908) L-CE: 20000023 "00020000-1aae-4f05-9cce-0010491e1b95" 0100847E(00000000),Req:00000000,0,Flgs:00000000(Null) "sip:2110@10.168.98.6:5441"

07:24:59.671 ( 7616: 4908) L-IE: 20000023 "00020000-1aae-4f05-9cce-0010491e1b95" 0100847E,rsn:3(Called),1,("+15555555555","WIRELESS CALLER",0xC(NameNumber)),C("","WIRELESS CALLER",0x4(Name)) contact=sip:TGrp_1,p1@10.168.98.6:5441, "sip:2110@10.168.98.6:5441"

07:24:59.671 ( 7616: 4908) L-DE: 20000023 "00020000-1aae-4f05-9cce-0010491e1b95" 0100847E,rsn:13(ForwardAlways),C("2110","HQ Main Hunt",0xC) TrGp=-1 "sip:2110@10.168.98.6:5441"

07:24:59.671 ( 7616: 4908) C-DE: 20000023 "00020000-1aae-4f05-9cce-0010491e1b95" 13,(ForwardAlways) "sip:2110@10.168.98.6:5441"

07:24:59.671 ( 7616: 4908) L-IE: 40000001 "00020000-1aae-4f05-9cce-0010491e1b95" 0100847C,rsn:2(Originate),0,("2110","HQ Main Hunt",0xC(NameNumber)),C("+15555555555","WIRELESS CALLER",0xC(NameNumber)) contact=, "sip:TGrp_1,p1@10.168.98.6:5441"

07:24:59.671 ( 7616: 4908) L-SE: 40000001 "00020000-1aae-4f05-9cce-0010491e1b95" 0100847C,5(Established),0,11:25:00.945 (UTC) "sip:TGrp_1,p1@10.168.98.6:5441"

07:24:59.671 ( 7616: 4944) C-CE: 20000005 "00020000-1aae-4f05-9cce-0010491e1b95" ("2104","VM-AutoAttendant",0xC) 00000000,SDP:N,ipCDS:0x00000002,flgs:0x00000000,cd:0x00000000,"7722,TGrp_1,p1,"(704) 940-7722"" "sip:2104@10.168.98.5:5441"

07:24:59.671 ( 7616: 4944) L-CE: 20000005 "00020000-1aae-4f05-9cce-0010491e1b95" 010000CC(00000000),Req:00000000,0,Flgs:00000000(Null) "sip:2104@10.168.98.5:5441"

07:24:59.671 ( 7616: 4944) L-IE: 20000005 "00020000-1aae-4f05-9cce-0010491e1b95" 010000CC,rsn:13(ForwardAlways),1,("+15555555555","WIRELESS CALLER",0xC(NameNumber)),C("2110","HQ Main Hunt",0xC(NameNumber)) contact=, "sip:2104@10.168.98.5:5441"

07:24:59.671 ( 7616: 4944) L-SE: 20000005 "00020000-1aae-4f05-9cce-0010491e1b95" 010000CC,3(Ringback),0,11:24:59.672 (UTC) "sip:2104@10.168.98.5:5441"

07:24:59.671 ( 7616: 4908) L-IE: 40000001 "00020000-1aae-4f05-9cce-0010491e1b95" 0100847C,rsn:2(Originate),0,("2104","VM-AutoAttendant",0xC(NameNumber)),C("+15555555555","WIRELESS CALLER",0xC(NameNumber)) contact=, "sip:TGrp_1,p1@10.168.98.6:5441"

07:24:59.671 ( 7616: 4908) C-SE: 40000001 "00020000-1aae-4f05-9cce-0010491e1b95" 3(Ringback),sd:0,11:25:00.951 (UTC) "sip:TGrp_1,p1@10.168.98.6:5441"

07:24:59.671 ( 7616: 4944) C-SE: 20000005 "00020000-1aae-4f05-9cce-0010491e1b95" 2(Offering),sd:0,11:24:59.672 (UTC) "sip:2104@10.168.98.5:5441"

07:24:59.687 ( 7616: 6716) ncc_media_ctl (0x20000005, StopOnDTMF, "0123456789*#", id=0x000000B8, "00020000-1aae-4f05-9cce-0010491e1b95")

07:24:59.718 ( 7616: 6716) ncc_answer_call (0x20000005, 00020000-1aae-4f05-9cce-0010491e1b95, mode=None, id=0x000000B9)

07:24:59.718 ( 7616: 4944) C-SE: 20000005 "00020000-1aae-4f05-9cce-0010491e1b95" 5(Established),sd:0,11:24:59.719 (UTC) "sip:2104@10.168.98.5:5441"

07:24:59.718 ( 7616: 4944) L-SE: 20000005 "00020000-1aae-4f05-9cce-0010491e1b95" 010000CC,5(Established),0,11:24:59.719 (UTC) "sip:2104@10.168.98.5:5441"

07:24:59.718 ( 7616: 6716) ncc_media_ctl2 (0x20000005, StopRecord, id=0x000000BA, "00020000-1aae-4f05-9cce-0010491e1b95")

07:24:59.718 ( 7616: 4908) C-SE: 40000001 "00020000-1aae-4f05-9cce-0010491e1b95" 5(Established),sd:0,11:25:01.003 (UTC) "sip:TGrp_1,p1@10.168.98.6:5441"

07:24:59.718 ( 7616: 4908) L-SE: 40000001 "00020000-1aae-4f05-9cce-0010491e1b95" 0100847C,5(Established),0,11:25:01.003 (UTC) "sip:TGrp_1,p1@10.168.98.6:5441"

07:25:01.109 ( 7616: 6716) ncc_set_call_data (0x20000005, 00020000-1aae-4f05-9cce-0010491e1b95,calldata=0x00000001,calldatamask=0x00000001, id=0x000000BB)

07:25:01.109 ( 7616: 4944) C-DAE: 20000005 "00020000-1aae-4f05-9cce-0010491e1b95" 0x00000001 "sip:2104@10.168.98.5:5441"

07:25:01.109 ( 7616: 6716) ncc_media_ctl2 (0x20000005, StartPlay, id=0x000000BC, "00020000-1aae-4f05-9cce-0010491e1b95")

07:25:01.125 ( 7616: 4908) C-DAE: 40000001 "00020000-1aae-4f05-9cce-0010491e1b95" 0x00000001 "sip:TGrp_1,p1@10.168.98.6:5441"

07:25:08.687 ( 7616: 4944) L-DE: 20000005 "00020000-1aae-4f05-9cce-0010491e1b95" 010000CC,rsn:4(HangUp),C("+15555555555","WIRELESS CALLER",0xC) TrGp=1 "sip:2104@10.168.98.5:5441"

07:25:08.687 ( 7616: 4944) C-DE: 20000005 "00020000-1aae-4f05-9cce-0010491e1b95" 4,(HangUp) "sip:2104@10.168.98.5:5441"

07:25:08.687 ( 7616: 4908) L-DE: 40000001 "00020000-1aae-4f05-9cce-0010491e1b95" 0100847C,rsn:4(HangUp),C("+15555555555","WIRELESS CALLER",0xC) TrGp=-1 "sip:TGrp_1,p1@10.168.98.6:5441"

07:25:08.687 ( 7616: 4908) G-MST: 40000001 "00020000-1aae-4f05-9cce-0010491e1b95" ("10.168.98.6","10.168.98.5"),2(ULaw),rsn:1,11:25:01.003 (UTC),pl:20,(s:1, r:378, l:0),(j:0,u:0,o:0) flgs:0x00000000 "sip:TGrp_1,p1@10.168.98.6:5441",vpn:0

07:25:08.687 ( 7616: 4908) C-DE: 40000001 "00020000-1aae-4f05-9cce-0010491e1b95" 4,(HangUp) "sip:TGrp_1,p1@10.168.98.6:5441"


Here is some other useful information that is found in the logs:

The time of the call this shows up in 24 hour time format

07:25:08.687 ( 7616: 4944) L-DE: 20000005 "00020000-1aae-4f05-9cce-0010491e1b95" 010000CC,rsn:4(HangUp),C("+15555555555","WIRELESS CALLER",0xC) TrGp=1 "sip:2104@10.168.98.5:5441"

This call came in on Trunk Group 1 port 1

07:24:59.656 ( 7616: 4908) C-CE: 40000001 "00020000-1aae-4f05-9cce-0010491e1b95" ("+15555555555","WIRELESS CALLER",0xC) 00000000,SDP:N,ipCDS:0x00000002,flgs:0x00000000,cd:0x00000000,"7722,TGrp_1,p1,"(704) 940-7722"" "sip:TGrp_1,p1@10.168.98.6:5441"


One of the last lines in the call gives you the G-MST which is the Global Mean Statistics for the call and shows you packets sent (s:), packets recieved (r:), packets lost (l:), jutter (j:), under-runs (u:) and over-runs (o:)

07:25:08.687 ( 7616: 4908) G-MST: 40000001 "00020000-1aae-4f05-9cce-0010491e1b95" ("10.168.98.6","10.168.98.5"),2(ULaw),rsn:1,11:25:01.003 (UTC),pl:20,(s:1, r:378, l:0),(j:0,u:0,o:0) flgs:0x00000000 "sip:TGrp_1,p1@10.168.98.6:5441",vpn:0



This line does not only show the calling party's phone caller ID but the phone number also includes the number of digits that are being sent to ShoreTel. This is important as sometimes the carrier makes mistakes and sends to many or not enough digits and the call does not get routed properly. This is where you could look for that info if needed. In this example the carrier is sending us all 11 digits.

07:24:59.656 ( 7616: 4908) C-CE: 40000001 "00020000-1aae-4f05-9cce-0010491e1b95" ("+15555555555","WIRELESS CALLER",0xC) 00000000,SDP:N,ipCDS:0x00000002,flgs:0x00000000,cd:0x00000000,"7722,TGrp_1,p1,"(704) 940-7722"" "sip:TGrp_1,p1@10.168.98.6:5441


This line in the call log shows that the server started to play a greeting, either a voice mail greeting or an auto attendant greeting. This is seen by the StartPlay and then once the caller has recorded their message you will see a StopRecord on the line. There is not one in the example that I can show you.

07:25:01.109 ( 7616: 6716) ncc_media_ctl2 (0x20000005, StartPlay, id=0x000000BC, "00020000-1aae-4f05-9cce-0010491e1b95")