Announcement

Collapse

Welcome to ShoreTelForums.com

Welcome to ShoreTelForums.com!

This site was created as a place to share stories, tips, and troubleshooting help with ShoreTel/Mitel systems. ShoreTel/Mitel is obviously the MOST exciting VoiP platform on the market right now, and we realized there was no centralized place to discuss this platform, but now there is. Please feel free to join and share your experiences.

Please Note: This site IS NOT owned, funded, or managed by ShoreTel/Mitel, Inc. although you may find ShoreTel/Mitel employees sharing there experiences and expertise. If you would like more information on ShoreTel/Mitel systems, contact BTX at [email protected]

As always please support the advertisers that help support our site.

Thank You,
BTX
See more
See less
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • Directly modify ShoreTel db

    Has anyone made some tools to directly manage, or add functionality to ShoreTel now that the db is in MySql? Just wondering what the general feeling is on doing this? Obviously anything like this isnt going to be supported by ShoreTel, and there is no garentee that it wont be broken by a future update.

  • #2
    ShoreTel does not appreciate touching their database. On the other hand, I do it routinely for things such as changing outgoing caller ID automatically. There are also some things that simply must be done through the DB, such as adjusting analog port gain levels. The callenge is that if yu write to the database, ShoreTel does not see your changes for a while unless you can uncover the way to notify ShoreTel of them.

    Comment


    • #3
      Yes, I noticed that the PCM Agent monitor does not update right away if you change the workgroupagent status directly in the db. Honestly though its not a big deal that the display update becuse we wont be using it any longer.

      Are there any other 3rd party tools that integrate with the db though? I would expect there to be someone out there making add-on tools for ShoreTel. Either 3rd party reporting or something.

      Comment


      • #4
        Note that the workgroup service doesn't seem to notice the change immediately either.

        We sell/customize a portal which provides reporting, IVR, call recording, etc. We integrate with the DB read-only to perform authentication of users and pull ShoreTel extension lists. In some of our plugins for the portal, we push info into the database, such as outgoing caller ID for a user.

        Comment


        • #5
          Yes, I have noticed that. There must be some way to refresh the workgroup after making the change though.

          Comment


          • #6
            Yes, I can probably find a way, but it may be version-specific, as the non-public APIs change frequently. Can you give our office a call at 330-335-7271 and ask for Bryon Palitto?

            Comment


            • #7
              Sure,

              After poking around a little I was able to connect to the ShoreTel zin db management service, and pull some info using vb.net. I found they used something similar in the ShoreWareDirector so thats how I was able to make this work. It just gets the version, and writes that to the label on the webpage.

              Code:
                      Dim zin As Object
                      zin = Server.CreateObject("bus_Zin_Director.Misc")
                      lblMessage.Text = zin.version.ToString
              I was also able to find some info on the workgroups.

              Code:
                      Dim zin As Object
                      zin = Server.CreateObject("bus_Zin.WorkGroups")
              Just not much on how to use that one yet. I assume that there must be some way to call the workgroup service also, and tell it to refresh because the ShoreWare Director is just a webpage so it must do that somehow.
              Last edited by yaplej; 04-27-2009, 03:17 PM.

              Comment


              • #8
                I have found that director can sometime be helpful, but usually they do things a bit oddly there. For example, to update a user record, you pass in around 40 parameters, and there is no documentation on any of them. I have never attempted it.

                Comment


                • #9
                  Yah, I noticed things in there are a bit convoluted. It was much easier just to access the MySQL database directly to change what I wanted.

                  The only problem is now as you stated earlier is figuring out how to get the workgroup service to refresh, and display the updated changes.

                  Comment


                  • #10
                    Well, I can tell you, if you modify the database, and then restart tms, it will push all the changes to the switches, though this can make PCM disconnect for about 2 seconds.

                    Comment


                    • #11
                      that is really great code. However, I tried it too:

                      Dim zin As Object
                      zin = Server.CreateObject("bus_Zin_Director.Misc")
                      lblMessage.Text = zin.version.ToString

                      what is Server defined as?
                      where does bus_zin_director come from

                      Do you have the rest of the code needed to make this work?
                      can you share it with us?

                      Comment


                      • #12
                        For - Palitto Consulting

                        Regarding : ShoreTel does not appreciate touching their database. On the other hand, I do it routinely for things such as changing outgoing caller ID automatically. There are also some things that simply must be done through the DB, such as adjusting analog port gain levels. The callenge is that if yu write to the database, ShoreTel does not see your changes for a while unless you can uncover the way to notify ShoreTel of them.


                        Can you share if there is a way to enable certain groups of users to change their own Caller ID? Giving them access to the Director is absolutely out of the question.

                        Any help would be greatly appreciated.

                        Thanks!

                        Comment


                        • #13
                          Originally posted by catatonique View Post
                          that is really great code. However, I tried it too:

                          Dim zin As Object
                          zin = Server.CreateObject("bus_Zin_Director.Misc")
                          lblMessage.Text = zin.version.ToString

                          what is Server defined as?
                          where does bus_zin_director come from

                          Do you have the rest of the code needed to make this work?
                          can you share it with us?
                          I am using aspx so you have to add " AspCompat="true" " into the aspx page header.

                          Also I would change the code to as follows.
                          Code:
                            
                          Dim misc As Object
                          misc = Server.CreateObject("bus_Zin_Director.Misc")
                          lblMessage.Text = misc.version.ToString
                          Code:
                          <%@ Page Language="VB" AutoEventWireup="false" CodeFile="mypage.aspx.vb" Title="My Page" Inherits="mypage" AspCompat="true" %>
                          I am not sure what APIs are documented but there seem to be a list you can use with the the zin and query objects in queries.vbs.

                          Comment


                          • #14
                            edit db

                            The quickest way to manipulate the DB is to add a reference to db_zin.dll in your project/app. It can be found in the shoreware server files, I have had some sucsess working with this and manipulate the DB with it. I am currently working on the workgroup server manipulation.

                            Comment


                            • #15
                              Old thread but

                              Anyone been able to send communicator and update? I have been playing with coping personal toolbars from one ext to another, but I have not figured out a way to tell the communicator. If the user closes and reopens it works fine. Any guess? I have tried both bus_zin and bus_zin_director.

                              Jon

                              FYI,
                              Was able to do this via
                              Set Toolbar = CreateObject("ShoreBusDS.UserToolbars")
                              Toolbar.Add UserDN, ToolbarIDTO

                              Anyone know what the in_strXml format should look like?
                              function Delete(in_strXml: BSTR): I4; stdcall;
                              Last edited by jgshier; 09-06-2012, 01:30 PM.

                              Comment

                              Working...
                              X
                              😀
                              🥰
                              🤢
                              😎
                              😡
                              👍
                              👎