Announcement

Collapse
No announcement yet.
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • Directory - Who hasn't recorded their name?

    Other than manually calling every name in the dial by name directory, is there any way to determine who has not recorded their name?

    We have customers who have complained that when they use the dial by name directory all they hear is "to reach extension 2234 press 1" instead of
    "to reach Bob Jones, press 1" .

    In a perfect world, these users would have followed my instructions the first two times..... :gun_bandana:

  • #2
    maybe look in the VM directory on the server. Each VM has a folder, usually the name .wav and the greeting .wav's.

    Not simple, but alot easier.

    Comment


    • #3
      Originally posted by Charles View Post
      maybe look in the VM directory on the server. Each VM has a folder, usually the name .wav and the greeting .wav's.

      Not simple, but alot easier.
      Sounds like the sort of problem a script or batch file could solve very nicely. If exist...

      There was also a MustRecordName field in the Users table of the MDB database, I haven't looked at it in the MySQL one. I'm not sure when this gets set to false, but it may be just the thing he's looking for here.

      Comment


      • #4
        I don't think there is anything in the main database that would determine whether the name needs to be recorded or not.
        I would expect that the voicemail application looks in the mailbox folder for the individual user and either detects that there is no wav file or otherwise uses the mailbox.dat file to store such information.

        Originally posted by jlear View Post
        Sounds like the sort of problem a script or batch file could solve very nicely. If exist...

        There was also a MustRecordName field in the Users table of the MDB database, I haven't looked at it in the MySQL one. I'm not sure when this gets set to false, but it may be just the thing he's looking for here.

        Comment


        • #5
          I am thinking this would be a nice feature to have. You cannot trust that users will record their name.

          I just went down the list of .wavs in the directory and it got the job done. Thanks for the suggestion.

          Comment


          • #6
            I'm having the issue where even though they have a recorded name, the dial by name directory still only plays the extension. Has anyone seen this?

            Comment


            • #7
              Originally posted by pagnmickie View Post
              I'm having the issue where even though they have a recorded name, the dial by name directory still only plays the extension. Has anyone seen this?
              After further investigation, it appears my name.wav files are not being replicated to my Shoretel Remote Servers. Any ideas anyone?

              Comment


              • #8
                Script for Missing Name or Greeting

                After reading this thread, I devised a VBScript that can be run from the ShoreTel server to determine who hasn't recorded their name and hasn't recorded a greeting for any call handling mode.

                To use the script, you'll have to change the variables that point to your ShoreTel server's voicemail location (usually x:\Shoreline Data\Vms\SHORETEL\ - where X: is the drive where Shoretel data is stored) and the location of the two text files with the output. The output files will have a list of mailbox numbers.

                Here's the script. I'm not VBScript expert, so if anyone wants to clean it up, I'm open to that.
                +++++++++++++++++++++++++++++++++++++++++++

                Option Explicit
                Dim objFSO, objFile_NameOrFolder, objFile_Name, FileOrFolderExists, _
                strSourceFolderPath, strTargetFolderPath, strOutputFile_Name, _
                strRelPathList, RelPathArray, strRelPath, strCreateFolderReturnValue
                Dim VMRootFolder,MailboxFolder,s,MailboxFolderName, MailboxFiles, VMSubFolders, MailboxFileName, FolderNameOK, FolderGreetOK, objFile_Greet, strOutPutFile_Greet

                Set objFSO = CreateObject("Scripting.FileSystemObject")

                strSourceFolderPath = "x:\Shoreline Data\Vms\SHORETEL\"
                strOutputFile_Name = "C:\Temp\NoName.txt"
                strOutputFile_Greet = "C:\Temp\NoGreet.txt"

                Set objFile_Name = objFSO.CreateTextFile(strOutputFile_Name)
                Set objFile_Greet = objFSO.CreateTextFile(strOutputFile_Greet)

                FolderNameOK = false
                FolderGreetOK = false

                Set VMRootFolder = objfso.GetFolder(strSourceFolderpath)
                Set VMSubFolders = VMRootFolder.SubFolders
                For Each MailboxFolder in VMSubFolders 'Loop through mailboxes
                set MailboxFolderName = objfso.GetFolder(strSourceFolderPath & "\" & MailboxFolder.name)
                set MailboxFiles = MailboxFolderName.files
                For each MailboxFileName In MailboxFiles 'Loop through files in mailboxes, check for files with greeting or name
                if inStr(1,MailboxFileName.name, "Name", 0) then
                FolderNameOK = true
                end if

                if inStr(1,MailboxFileName.name, "Greet", 0) then
                FolderGreetOK = true
                end if
                Next

                If not FolderNameOK then
                objFile_Name.WriteLine (MailboxFolderName.name)
                End if

                If not FolderGreetOK then
                objFile_Greet.WriteLine (MailboxFolderName.name)
                End if

                FolderGreetOK = false
                FolderNameOK = false

                Next

                objFile_Name.close
                objFile_Greet.close

                wscript.echo "Checking is done. Please check log files for results."

                Comment


                • #9
                  Great! I will have to check this out.

                  Comment


                  • #10
                    Originally posted by getzjd View Post
                    Other than manually calling every name in the dial by name directory, is there any way to determine who has not recorded their name?

                    We have customers who have complained that when they use the dial by name directory all they hear is "to reach extension 2234 press 1" instead of
                    "to reach Bob Jones, press 1" .

                    In a perfect world, these users would have followed my instructions the first two times..... :gun_bandana:
                    Is there a way to have the Operator access each mailbox and record the name for each person?

                    Thank you,

                    Jim R

                    Comment


                    • #11
                      scripting

                      The above vbscript from jmarthaler is excellent but I wanted to take it a step farther and pull email addresses. Not being too familiar with VB I instead wrote a batch file to call the vbscript, get the extensions of the users with no recorded name, and then use that to pull their email address. I'm doing all this from my d: drive so you'll have to change the drive/path to match your environment if you want to use this. It also keeps appending to the nfinal.txt output file (due to the way the loop runs) so you'll either want to be sure to delete it every time after you're done with it, or have your batch file rename it at the end so it won't exist next time you run it.

                      @ECHO OFF

                      ENDLOCAL

                      Echo.

                      cscript nonamescript.vbs

                      for /F "tokens=*" %%b IN (.\noname.txt) DO call :getemails "%%b"
                      goto :eof

                      :getemails

                      Echo.

                      Set "extension=%~1"

                      echo %extension%

                      echo Verify %extension%
                      echo openm %extension% > d:\ntest.txt
                      echo lmbox >> d:\ntest.txt
                      echo closem >> d:\ntest.txt
                      echo exit >> d:\ntest.txt

                      d:

                      cd \Program Files\Shoreline Communications\ShoreWare Server\

                      cfg.exe -f d:\ntest.txt > d:\noutput.txt

                      findstr "@" d:\noutput.txt >> d:\nfinal.txt

                      :eof

                      Comment


                      • #12
                        And here's another to pull the email address of users with no greeting:

                        @ECHO OFF

                        ENDLOCAL

                        Echo.

                        cscript nonamescript.vbs

                        for /F "tokens=*" %%b IN (.\nogreet.txt) DO call :getemails "%%b"
                        goto :eof

                        :getemails

                        Echo.

                        Set "extension=%~1"

                        echo %extension%

                        echo Verify %extension%
                        echo openm %extension% > d:\ntest.txt
                        echo lmbox >> d:\ntest.txt
                        echo closem >> d:\ntest.txt
                        echo exit >> d:\ntest.txt

                        d:

                        cd \Program Files\Shoreline Communications\ShoreWare Server\

                        cfg.exe -f d:\ntest.txt > d:\noutput.txt

                        findstr "@" d:\noutput.txt >> d:\nfinal.txt

                        :eof

                        Comment


                        • #13
                          My bad, I haven't checked for a scripting thread or sticky

                          If there isn't already a thread or sticky for scripts maybe a mod can create one and put some of these in there?

                          Here's one for pulling all voicemail for a given extension:

                          @ECHO OFF

                          ENDLOCAL

                          Echo.

                          set /P USRMAILBOX=Enter user extension:

                          Echo.

                          echo Verify %USRMAILBOX% - press any key to continue
                          pause
                          echo openm %USRMAILBOX% > d:\test.txt
                          echo lmbox >> d:\test.txt
                          echo closem >> d:\test.txt
                          echo exit >> d:\test.txt

                          d:

                          cd \Program Files\Shoreline Communications\ShoreWare Server\

                          cfg.exe -f d:\test.txt > d:\output.txt

                          findstr "^[0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z]\> " d:\output.txt > d:\final.txt

                          d:\sed\cat d:\final.txt | d:\sed\sed 's/[ ]/\n/g'> d:\list.txt

                          for /F "tokens=*" %%b IN (d:\list.txt) DO xcopy /c /y /I "D:\Shoreline Data\Vms\Message\%%b.*" d:\%USRMAILBOX%\

                          echo ************** Done! ******************

                          echo All voicemail from mailbox %USRMAILBOX% copied to d:\%USRMAILBOX%.

                          pause

                          Comment


                          • #14
                            Here's another example pulling the name instead of the email address for the noname and nogreet scripts:

                            @ECHO OFF

                            ENDLOCAL

                            Echo.

                            cscript nonamescript.vbs

                            for /F "tokens=*" %%b IN (.\noname.txt) DO call :getemails "%%b"
                            goto :eof

                            :getemails

                            Echo.

                            Set "extension=%~1"

                            echo %extension%

                            echo Verify %extension%
                            echo openm %extension% > d:\ntest.txt
                            echo lmbox >> d:\ntest.txt
                            echo closem >> d:\ntest.txt
                            echo exit >> d:\ntest.txt

                            d:

                            cd \Program Files\Shoreline Communications\ShoreWare Server\

                            cfg.exe -f d:\ntest.txt > d:\noutput.txt

                            findstr "^Name" d:\noutput.txt >> d:\nfinal.txt

                            :eof

                            Comment

                            Working...
                            X