Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.


Topics - VeeDubb65

Pages: [1] 2
1
We're running MiCollab and MVB 3300 pbx's.

Avatars are scraped from our Active Directory environment, and show up in the MiCollab app just fine, and they used to show up on our 6900 series phones.

However, at some point after a hardware swap and several software upgrades over the last 18 months, they stopped showing up on our 6900's. I've verified that the avatar URL listed in MiCollab is correctly entered on the 3300's, but when I put that URL in a browser I get a 404 error.

The URL I'm using is http://fullyqualifieddomainnameofourmicollabserver/ucs/avatar/dn/mitel-micollab/

Anybody run into this?

2
Mitel MiVoice Business/MCD/3300 / External relay from hook switch
« on: July 27, 2023, 12:48:12 PM »
I'm in a weird situation because my company has a surveillance department that likes to pretend they're clandestine, so they sometimes come up with these very specific requests where they've figured out half a solution for something, and want us to help figure out the rest without explaining the goal.

This time, what they want is an external relay that is a physical relay which is tripped when the receiver is picked up.

Any thoughts on how to accomplish this on a 5324?

3
Mitel Software Applications / Android and iOS app can't set status
« on: March 14, 2022, 12:41:10 PM »
We have a pretty small test-bed deployment of MiCollab, that we're probably pushing out to a lot more users this year, but we've noticed that some time in the last few months the Android and iOS apps both stopped being able to set the 'Availability' in the app.

This doesn't appear to be permission based, as the desktop and webRTC versions of the app both work just fine. However, on Android and iOS, the Availability drop down is non-responsive. No matter what you do, it just doesn't respond or do anything when you tap the drop down.

Has anybody else seen (and hopefully resolved) this behavior?

4
We're just wrapping up deploying MiCollab with NuPoint and NuPoint fax. (I know, I know. It's 2021 and we're still faxing)

I can receive faxes without issue.

I can send faxes reliably, except for two problems.

1. I never get the confirmation email for a successful fax.
2. Every hour or so, it re-sends the same fax.

I do get an error report email if there's a problem that keeps the fax from working at all, so I know that email is functional.

It seems as though NuPoint can't tell the fax was successful, so it is keeping the fax in the queue and retrying.

Any idea what would keep nupoint from recognizing that the fax was successful?

5
This is an odd one I think.

Up until now, we have not had micollab or licensing for multi-device user groups.

On the floor with our Executives, there is one secretary. For each exec, her phone has both a secretarial key, and a multicall.

The reason for the two keys is that the secretarial key provides line status, speedcall, and one-touch transfer, but only provides call notification for the first call. If the remote set is already on a call, and a second call comes in, the Secretarial key just shows that they are on the phone, without providing any notification that there's another call coming in. This has worked fine up until now.

This week, we are in the early stages of deploying MiCollab. The first step of which was converting about half of our IP User licensing into Multi-Device User licensing.

When this happened, the user in question ran into an issue where answering one of the multicall lines would not cause the secretarial key to stop showing an incoming call, and the lamp would continue flashing green for many hours after the call had ended. While it was in this state, but the multicall button and secretarial button are non-functional.

How do we set it up so that one user can see 6 others, answer their calls, and each of them can be in their own individual MDUG for MiCollab?

6
For starters, I'm 94% sure this isn't possible, but I've been asked.

We're running a clustered 3300 system, and NuPoint voicemail.

I have built out a fairly complicated Call Director box to serve as the answering service for our IT department, which has the ability to forward out to one of three different extensions, for different types of calls.

I have speed dial keys programmed on specific phones that dial the FAC for Follow-Me Forwarding Third Party, followed one of those three extensions.

Then I have more speed dial keys that just dial the EHDU extensions of everyone in IT.

To set who is on-call, they just tap one of the FAC keys, followed by the EHDU speed dial keys for the user that should be on-call for that number.

That much all works perfectly.

The probably impossible part, is that I've been asked if there is any way on a 6940 to show the status of these forwards on-screen. It is super easy to just tap the keys and set it to what it should be, but IT Leadership wants to be able to see who each of the three numbers is forwarded to at a glance, from their sets. Any ideas? Is this as impossible as I think?

7
Mitel MiVoice Business/MCD/3300 / Alternate Transfer not working
« on: June 11, 2021, 11:37:07 AM »
I'm not sure if this is the right sub-forum because I'm not sure if this is a NuPoint problem or a COS problem.

I've got a 3300 and a standalone NuPoint.

In a Call Director mailbox, I'm trying to set up an "alternate transfer" to an external number.

Let's pretend the external number is a cell phone at 5555555555

Currently, the dial string I'm using is S+5555555555+X

The timeout is set to 5 seconds (although I'll bump it up to 15 once I'm done testing).

When I initiate the transfer through call director, I hear hold music, and the cell phone starts ringing.

If I answer the call from the cell phone, it immediately disconnects.

If I don't answer the call, it times out and stops ringing at the 5 second mark as intended, but the call flow doesnt' progress. The internal call to the mailbox just hears dead air.

I've seen a lot of references to making sure that the trunk COS and the voicemail port COS have public to public enabled, and I've verified that.

Note that blind transfer to external works perfectly, and a supervised transfer works as well, but only supervises until the trunk picks up, at which point it becomes a blind transfer. I might be able to use an external hot desk license, but alternate transfer is supposed to be able to do exactly what I'm trying, I don't currently have any EHDU licenses available, and in the real and much more complicated call flow this is for, I would need a dozen EHDU licenses.

8
We're trying to deploy the MiVoice Business console, and we're having a caller ID problem.

Internal calls all show up fine, but in the call queue, all inbound calls from our trunks show up with the same number in the call queue. It looks like it is grabbing the number from the first call that comes in, and just keeps showing that for all calls.

Our VAR thinks it's COS related, but doesn't have any idea which option, or even whether it's a problem with the Trunk COS or the console COS, and suggested just starting with a new/clean COS and see what happens....

Anybody have a more direct suggestion?

9
I'm trying to deploy MiVoice Business Console in our environment, 9.1.1.26 if it matters, and we're running into a really weird problem with the Calendar function.

We're trying to connect to Exchange 2016, which is supported, and it when we put most email addresses in for the connection account, they work only one time. As soon as you close and re-launch the application, you can no longer connect to exchange through that account.

With some other accounts, you can ever connect to exchange, and with yet a third subset of accounts, you can always connect, but it's never able to see anyone's availability.

It's utterly baffling and I just don't get it.

Anybody have any thoughts? I went through it forward and backwards with our exchange admin, and I ran it past our Mitel VAR, and nobody has a clue.

10
Mitel MiVoice Business/MCD/3300 / Reset web cert from ssh?
« on: December 04, 2020, 01:43:30 PM »
In the process of installing a cert from our active directory controller onto our 3300, I managed to somehow install a corrupted/broken cert.

As a result, I can't reach the admin tools or the server-manager web interfaces for the PBX at all. My only way to connect is through SSH.

Anybody know how to reset the certificates from the command line?

11
I've got two 3300's with clustered licensing.

I upgraded this morning from 9.0 sp3 to 9.1 sp1 (9.1.1.32)

Once everything was back up, the one that is the license manager for the license group was fine, but the one that isn't the license manager shows a minor alarm for license violation.

Any ideas how to clear this?

I've tried syncing though the server-manager, de-activating and re-activating service link on both units, and even making a minor license allocation change where I had some unused licenses I could move around.

Nothing seems to be clearing the alarm.

12
I have two 3300's in a cluster running current software.

Both cluster elements have the same FAC for Loudspeaker paging.

Both elements have a single loudspeaker paging port configured using the onboard, dedicated port, and set to zone 1.

From a set with the right CoS attached to either element, I can dial the FAC and connect to loudspeaker paging for that element.

What I want to do is connect to cluster element A's loudspeaker paging from a set connected to cluster element b. I tried just dialing the CEID+FAC, and that waited for more input until it timed out. Then I tried CEID+FAC+Zone, and my set just says "Error."

Suggestions?

13
Mitel MiVoice Business/MCD/3300 / Consoles and call queues side by side
« on: February 05, 2020, 01:35:57 PM »
We currently have every station (all eight) in our reception area running the 5540 IP consoles (IP versions of the old SC1000).

The consoles do a ton of stuff they don't need, and don't have any of the desk set phones that would be helpful.

I want to migrate them all over to some kind of power-user desk set like a 5340e or 6940, but I'm running into a stumbling block. They want to be able to test side by side, and all of our outside main numbers exist as console softkeys only. That means I can't set them up as a regular multi-call, and I'm trying to figure out how to make them desk sets and consoles work together.

Long term, the goal would be to have a ring group that they join/leave.

I'm open to any kind of suggestion.

14
Mitel MiVoice Business/MCD/3300 / Pythone, Telnetlib, and MiVB 9.0
« on: December 26, 2019, 06:57:59 PM »
So, this one is waaaaaaaaaaay out in left field, but I'm wondering if anybody can help me out.  Several years ago I wrote an application in Python that listens to all three of our 3300's SMDR feeds, parses out the data, and dumps it into a SQL database. Handy stuff.

The trouble is that after the upgrade to 9.0 sp1, I can connect to the telnet streams manually from a regular old cmd or powershell window, but for some reason all three PBX's actively refuse connections from the Python telnetlib.

I've tried telnetlib3, and it looks like it can connect, but the syntax and usage is so different that I can't seem to get it working. Anybody familair with telnetlib3 or with getting the old telnetlib to connect to the latest 3300 software?

My complete code, unchanged except for redacting some IP addresses and hostnames, is below:

Code: [Select]
import telnetlib, datetime, pymssql
from multiprocessing import Process

# This is an example call record:
# -05/29 05:48A 0000:05:22 X9999    016 9715553235 29913721 8000    8015                          002   9715553235 3721
#
# This is the definition of the SMDR record:
# zmm/dd hh:mmp hhhh:mm:ss ppppppp fttt xxxxxxxxxxxxxxxxxxxxxmmmmmhsqqqqqqqk rrrrrrr aaaaaaaaaaaasiii_  aaaaaaaaaa ddddddd
#
#   *the definition is 3 char longer than the example because mitel doesn't pad trailing spaces for the last field, so
#   the full record could be anything from 113 to 120 char.
#
#   *not all fields are separated, so parsing chars seems easier than regular expressions.
#
#   *lumping meter pulses (mmmmm) in with 'digits dialed on trunk' (xxxxxxxxxxxxxxxxxxxxx) because ddot frequently
#   overwrites meter pulses anyway.

#############################################  Stuff to edit starts here  #############################################

SQLsrvr = 'serverhostname' # SQL server hostname or IP. Redacted my real hostname.

SQLdb = 'SMDR' # Database name.

# One uniquely named function for each PBX, calling the Collect function with the corresponding PBX's IP. I've redacted my real IP addresses.
def Proc1():
    Collect( '111.222.333.444' )
def Proc2():
    Collect( '222.333.444.555' )
def Proc3():
    Collect( '333.444.555.666' )

# One process start for each process function.
if __name__ == '__main__':
    p1 = Process( target=Proc1 )
    p1.start()
    p2 = Process( target=Proc2 )
    p2.start()
    p3 = Process( target=Proc3 )
    p3.start()

#############################################  Stuff to edit stops here  #############################################

def Collect(pbxip):
    global ident, ident
    tn = telnetlib.Telnet( pbxip )
    tn.open( pbxip, 1752 )
    conn = pymssql.connect( server=SQLsrvr, database =SQLdb )
    cursor = conn.cursor()
    while True:
        try:
            # read one line and encode it utf-8 so the /r/n at the end can be removed
            callrec = tn.read_until('\n'.encode('utf-8'))
            # grab the current time before there's any more processing.
            collectDT = datetime.datetime.now()
            # trim off the line terminations and then decode the call record back to a raw string value.
            callrec = callrec[:-4]
            callrec = callrec.decode('utf-8')

            try:
                lcode = callrec[0:1] # code to classify length of call
                # replacing % and space to make sql queries easier later
                if lcode == '%':
                    lcode = 'm'
                if lcode == ' ':
                    lcode = '.'
                # cstart - the datetime that the call started.
                try:
                    # make sure that a call starting NYE and ending NYD isn't recorded with the wrong year.
                    if datetime.datetime.now().month == 1 and callrec[1:3] == '12':
                        callyear = str(datetime.datetime.now().year - 1)
                    else:
                        callyear = str(datetime.datetime.now().year)
                    # combine the year we just determined with the strings from callrec and create a datetime.
                    cstart = datetime.datetime.combine(
                        datetime.datetime.strptime( callrec[1:6] + "/" + callyear, '%m/%d/%Y' ).date(),
                        datetime.datetime.strptime( callrec[7:12] + " " + callrec[12:13] + "M", "%I:%M %p" ).time()
                    )
                except:
                    cstart = ""
                    pass
                # duration - the length of the call in seconds
                try:
                    duration = (int( callrec[14:18] ) * 3600) \
                               + (int( callrec[19:21] ) * 60) \
                               + int( callrec[22:24] )
                except:
                    duration = ""
                    pass
                # strip() removes leading and trailing spaces. replace(" ","") removes all spaces.
                caller = (callrec[25:32].strip()) # calling party
                attnd = (callrec[33:34]).replace(" ","") # attendant on call
                tta = (callrec[34:37]).replace(" ","") # time to answer
                ddot = (callrec[38:64].strip()) # digits dialed on trunk
                ccs = (callrec[64:65]).replace(" ","") # call completion status
                spdcall = (callrec[65:66]).replace(" ","") # speedcall/callfwd flag
                called = (callrec[66:73]).replace(" ","") # called party
                trnsconf = (callrec[73:74]).replace(" ","") # transfer/conferende
                thrdpty = (callrec[75:82]).replace(" ","") # third party
                acct = (callrec[83:95]).replace(" ","") # account code/tag call identifier
                rof = (callrec[95:96]).replace(" ","") # route optimization flag
                sysid = (callrec[96:99].strip()) # system identifier
                mlpp = (callrec[100:101]).replace(" ","") # mlpp precedence level
                ani = (callrec[102:112].strip()) # ANI (caller ID)
                dnis = (callrec[113:120].strip()) #DNIS (last 4 received by pbx)
            except:
                # If there's a general failure, we want to set everything except the original call record and collection
                # time to ''. cstart and duration gor their own because they could fail to parse on valid records.
                lcode = cstart = duration = caller = attnd = tta = ddot = ccs = spdcall = called = \
                    trnsconf = thrdpty = acct = rof = sysid = mlpp = ani = dnis = ''
                pass
            # Push to SQL
            cursor.execute(
                "INSERT INTO dbo.RAWRECORDS (callrec, collectDT) VALUES (%d,%d)",
                (callrec, collectDT)
            )
            conn.commit()
            ident = int(cursor.lastrowid)
            cursor.execute(
                "INSERT INTO dbo.CALLRECORDS (id, lcode, cstart, duration, caller, attnd, tta, ddot, ccs, spdcall, \
                called, trnsconf, thrdpty, acct, rof, sysid, mlpp, ani, dnis) VALUES (%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,\
                %d,%d,%d,%d,%d,%d,%d,%d,%d)",
                (ident, lcode, cstart, duration, caller, attnd, tta, ddot, ccs, spdcall, called, trnsconf,
                  thrdpty, acct, rof, sysid, mlpp, ani, dnis)
            )
            conn.commit()
        except:
            pass

This old version, which worked great before MiVB 9.0, requires Python 3, telnetlib, datetime, pymssql, and multiprocessing. It also assumes you have a database the right shape and similar enough SMDR options that your SMDR records parse the same.

15
Mitel MiVoice Business/MCD/3300 / Upgrading from 8.0 to 9.0
« on: October 17, 2019, 01:22:18 PM »
I'm doing the prep to upgrade from 8.0sp1 to the latest 9.0sp3.

Ideally, I want to run the upgrade myself, as I've done multiple past upgrades, but I understand that this upgrade is quite a bit more complicated, since you have to reflash the E2T card, and it switches to a very different underlying version of Linux.

Anybody done this upgrade without their Mitel VAR onsite?

It seems silly, but my biggest reason not to bring them on site is that I have to run stuff like that through my legal department, and it can literally take 6 months for them to approve something like that.


Anyway, the one bit I'm not totally clear on is the order of operations for upgrading the firmware. I got the overall install/upgrade docs, and separate docs just for upgrading the firmware.  Am I correct that the process is:

  • Run software upgrade
  • Controller fails to fully boot because of old E2T firmware
  • Upgrade the firmware via serial cable
  • Reboot into newly upgraded (and hopefully working) 9.0 system

Pages: [1] 2