MenuTermSrv

From FrogspawnWiki

Jump to: navigation, search
It's a menu!

If you have implemented a terminal server then you might have noticed a couple of problems

  • Knowing what's connected where, especially if there are several administrators
  • Catering for people who shouldn't necessarily have access to the terminal server CLI
  • Just plain ease of use

To make your terminal server more accessible you could implement a menu system.

With a menu system you are

  • Listing what is where (assuming it's kept up to date)
  • Giving users a fixed list of tasks that they can perform
  • Making your terminal server (arguably) easier to use


If you're sold on setting up a menu then here's how you do it.


Basic Menus

Your start point for this is the Terminal Server config.

To add menus add the following..

menu conn-menu title ^C
Select device or line from below.

Use 'ctrl+shift+6' then 'x' to return to menu
^C
menu conn-menu text 1 Connect to line 1
menu conn-menu command 1 resume line1 /connect telnet line1
menu conn-menu text 2 Connect to line 2
menu conn-menu command 2 resume line2 /connect telnet line2
menu conn-menu text 3 Connect to line 3
menu conn-menu command 3 resume line3 /connect telnet line3
menu conn-menu text 4 Connect to line 4
menu conn-menu command 4 resume line4 /connect telnet line4
menu conn-menu text 5 Connect to line 5
menu conn-menu command 5 resume line5 /connect telnet line5
menu conn-menu text 6 Connect to line 6
menu conn-menu command 6 resume line6 /connect telnet line6
menu conn-menu text 7 Connect to line 7
menu conn-menu command 7 resume line7 /connect telnet line7
menu conn-menu text 8 Connect to line 8
menu conn-menu command 8 resume line8 /connect telnet line8
menu conn-menu text 9 Connect to line 9
menu conn-menu command 9 resume line9 /connect telnet line9
menu conn-menu text 10 Connect to line 10
menu conn-menu command 10 resume line10 /connect telnet line10
menu conn-menu text 11 Connect to line 11
menu conn-menu command 11 resume line11 /connect telnet line11
menu conn-menu text 12 Connect to line 12
menu conn-menu command 12 resume line12 /connect telnet line12
menu conn-menu text 13 Connect to line 13
menu conn-menu command 13 resume line13 /connect telnet line13
menu conn-menu text 14 Connect to line 14
menu conn-menu command 14 resume line14 /connect telnet line14
menu conn-menu text 15 Connect to line 15
menu conn-menu command 15 resume line15 /connect telnet line15
menu conn-menu text 16 Connect to line 16
menu conn-menu command 16 resume line16 /connect telnet line16
menu conn-menu text R Return to main menu
menu conn-menu command R menu-exit

! Clear the screen before displaying the menu
menu conn-menu clear-screen

! Specify a default option to be taken if the user just hits enter
menu conn-menu default R

! line-mode requires the user to press enter after making a selection - essential if you have two character options
menu conn-menu line-mode

Menus within menus

It's possible to call a menu from within a menu, so for example we can have a top level "welcome" menu and the user will drill down below that to connect or disconnect a device, exit to CLI or logout of the terminal server altogether.

menu termserver title ^C
Lab Access Server.
^C
menu termserver prompt ^C

Make your selection:
^C
menu termserver text C Connect to Devices
menu termserver command C menu conn-menu
menu termserver text D Disconnect Sessions
menu termserver command D menu disco-menu
menu termserver text S Show Current Sessions
menu termserver command S show sessions
! after showing active sessions, wait for the user to hit a key with the pause option
menu termserver options S pause
menu termserver text E Exit to CLI
menu termserver command E menu-exit
menu termserver text L Log Out
menu termserver command L exit
menu termserver clear-screen 

When you use menu-exit within a sub-menu it backs out to the higher level menu.

Unlike the first menu we used I have not enabled line mode for this menu. This means that you don't have to press enter to make a selection on this menu - you just hit the appropriate key.

The disconnect menu to go with above...

menu disco-menu title ^C
Select line to disconnect: 
^C
menu disco-menu text 1 Disconnect line 1
menu disco-menu command 1 disconnect line1
menu disco-menu text 2 Disconnect line 2
menu disco-menu command 2 disconnect line2
menu disco-menu text 3 Disconnect line 3
menu disco-menu command 3 Disconnect line3
menu disco-menu text 4 Disconnect line 4
menu disco-menu command 4 Disconnect line4
menu disco-menu text 5 Disconnect line 5
menu disco-menu command 5 Disconnect line5
menu disco-menu text 6 Disconnect line 6
menu disco-menu command 6 Disconnect line6
menu disco-menu text 7 Disconnect line 7
menu disco-menu command 7 Disconnect line7
menu disco-menu text 8 Disconnect line 8
menu disco-menu command 8 Disconnect line8
menu disco-menu text 9 Disconnect line 9
menu disco-menu command 9 Disconnect line9
menu disco-menu text 10 Disconnect line 10
menu disco-menu command 10 Disconnect line10
menu disco-menu text 11 Disconnect line 11
menu disco-menu command 11 Disconnect line11
menu disco-menu text 12 Disconnect line 12
menu disco-menu command 12 Disconnect line12
menu disco-menu text 13 Disconnect line 13
menu disco-menu command 13 Disconnect line13
menu disco-menu text 14 Disconnect line 14
menu disco-menu command 14 Disconnect line14
menu disco-menu text 15 Disconnect line 15
menu disco-menu command 15 Disconnect line15
menu disco-menu text 16 Disconnect line 16
menu disco-menu command 16 Disconnect line16
menu disco-menu text R Return to main menu
menu disco-menu command R menu-exit
menu disco-menu clear-screen
menu disco-menu default R
menu disco-menu line-mode
!
menu discco-menu clear-screen

Automatically use the Menu

To have the Menu run automatically when the user logs in you need to add an autocommand to the vty lines

line vty 0 4
 autocommand  menu termserver

This is where it becomes important to have the escape to CLI option in one of your menus, without it you will only ever get the menu and can never actually configure the router!

Personal tools