The user wanted a button that would always divert their phone to their mobile and one that would lift the divert, no matter what they had done in the forwarding settings on their phone.
Here is what we did.
Create a speed dial for their mobile e.g. 100 = 07989654321
Check the Call Forward -Third party code (*65 on this system)
Check the Cancel Call Forward -Third party code (*75 on this system)
Check their extension number (220)
On a key on their phone set a user speed call of *65 220 100 (miss out the spaces) to divert
On the next key enter *75220
Maybe it seems simple to you but it took me a while to get there!
John Rogers
Thursday, 2 July 2015
Friday, 24 April 2015
Mitel 3300 MCD MiVoice Business Telephone directory and digit blocks.
We have a customer who wanted to recognise their customers CLI and match a name to it for display the handset. I know it seems a bit old fashioned, but it's what they wanted. The have an MXE. The problem is they wanted to enter 4,500 of them.
I found I could import 1700 of them before it gave up. Looking at the system usage of the database dimension, I could see that it was not lacking in directory entries, it said it could have 20000 of them. What was lacking was digit blocks. The default is 12000 digit blocks.
I had to take a backup, re dimension the database to allow 20000 digit blocks, do a reboot, restore the database and reboot again to get more space.
If you don't know what an alpha tag entry should look like to do directory matching then it is in the format "Access digit, Tilde, full number". So if the customer is at 01245 406 407 and you dial 9 for an outside line, your directory entry would be
9~01245406407.
If you don't receive a leading digit on an inbound call then move the tilde along.
90~1245406407
The number has to be dial-able via ARS or the entry will be rejected.
www.telecomcare.net
I found I could import 1700 of them before it gave up. Looking at the system usage of the database dimension, I could see that it was not lacking in directory entries, it said it could have 20000 of them. What was lacking was digit blocks. The default is 12000 digit blocks.
I had to take a backup, re dimension the database to allow 20000 digit blocks, do a reboot, restore the database and reboot again to get more space.
If you don't know what an alpha tag entry should look like to do directory matching then it is in the format "Access digit, Tilde, full number". So if the customer is at 01245 406 407 and you dial 9 for an outside line, your directory entry would be
9~01245406407.
If you don't receive a leading digit on an inbound call then move the tilde along.
90~1245406407
The number has to be dial-able via ARS or the entry will be rejected.
www.telecomcare.net
Thursday, 18 December 2014
System Slowdowns and CPU running 100% - Mitel 5000 / MiVoice Office 250
One of the most frequent complaints we get is that of system slowdown. So the user may report that when the phone rings and they lift the handset, that it takes a couple of seconds to answer, or that the display on the phone changes slowly, or when they dial digits they take a few seconds to register.
This is usually caused by the CPU being run at or close to 100%. The avaerage system usually ticks over averaging 20 - 40%, so seeing the processor flat out for a prolonged period rings alarm bells.
This is usually caused by the CPU being run at or close to 100%. The avaerage system usually ticks over averaging 20 - 40%, so seeing the processor flat out for a prolonged period rings alarm bells.
Most Common Causes We Have Found
- Sip Hackers - The number one cause. 90% of issues turn out to be this. All versions of the 5000 have a SIP port 5060 open by default, even the versions that did not support SIP trunks or extensions had a SIP port. If this is open to the internet without a firewall filtering by source IP then your system will get bombarded by call requests, sometimes thousands a second. Even though the calls don't get placed, the effort of responding to them causes the system to slow down. You can see the messages if you turn on SIP logging. Either lock down SIP using the firewall or turn of the SIP port in IP Settings / advanced
- SSH Hackers - The same thing will happen if you leave port 22 open to the internet. Some Bot will come along and bombard the system with login messaages trying to find the password. You can see the fail messages in the syslog. Either lock down or turn off SSH.
- Voice-mail to email - Whilst it usually does not cause too much of an issue, sometimes the site are heavy voice-mail users and have extended the recording time available per message, or worse yet are using the embedded voice-mail for record-a-call. The turning of the voice-mail into an mp3 then emailing it can cause the processor to show heavy loading. I tested this once with a 20 minute call recording and it took the processor an hour of running flat out befoire it calmed down.
- SSL Problems - Getting a bit rarer now, but we have found a site where an SSL error was being shown in the exception log. Using the web interface of the system the certificate was regenerated and the web server restarted. This must have unlocked an internal process as immediately the processor use dropped.
- ISDN Errors - Whilst Open reach are usually insistent there is no error, we have seen circumstances where ISDN can flood the system with error messages causing the system to slow down as it attempts to handle them all and record them in the logs.
- Over use of G729 - One of the most common mistakes engineers make which causes load on the CPU and can affect voice quality is to use G729 where it is not necessary. G729 should only be used where there is a real issue with having enough bandwidth for G711. On the LAN where there is bags of bandwidth it is never needed. Even on broadband you may not need it. G729 compresses the speech, which while saving bandwidth, requires more resources on the CPU to do the compression/decompression, so whenever I see a high load on a CPU I look to change to G711 and this usually has a visible effect on CPU use.
I hope this may help someone in the future solve a problem!
John Rogers
Tuesday, 1 April 2014
FreePBX, Asterisk inbound DID restricted to multiple CallerID's
Recently we have been doing a lot of work with FreePBX. This is an Asterisk distribution and FreePBX is the web interface that writes the Asterisk dialplan.
It was easy to get a DID to ring in to our system, you can do that through the web interface just by filling in the boxes.
Then we were asked to restrict that DID so it only allowed a certain caller to access it. Again that is fine, there is a caller ID box in the web form that allows you to do that.
Then we were asked if two callers could have access. This is trickier as the Caller ID box on the inbound route form only allows one number to be entered. But we created two inbound routes, both with the same DID, but different CallerID's and again this worked, now two phones could dial in on one DID.
Where it started to get unmanageable was when we were asked if there could be 20, 30 or 40 CallerID's with permission to call that DID. Whilst we could keep creating inbound routes, the menu structure of the web interface was going to start getting very messy showing all those additional routes just for 1 DID. Because of this we started looking at how to add these into the custom files that are hidden from the web interface.
Here is what we did.
Use WinSCP to connect to the PBX. WinSCP allows the transfer and editing of files on a linux box.
Navigate to /etc/asterisk/extensions_additional.conf - Don't change anything in here as this is a file FreePBX writes and any changes will be lost.
Open the file and do a search for your DID number, you will see a section like the one below.
[ext-did-0001]
include => ext-did-0001-custom
exten => fax,1,Goto(${CUT(FAX_DEST,^,1)},${CUT(FAX_DEST,^,2)},${CUT(FAX_DEST,^,3)})
exten => 01161234567/07971234567,1,Set(__FROM_DID=${EXTEN})
exten => 01161234567/07971234567,n,Gosub(app-blacklist-check,s,1())
exten => 01161234567/07971234567,n,Set(CDR(did)=${FROM_DID})
exten => 01161234567/07971234567,n,ExecIf($[ "${CALLERID(name)}" = "" ] ?Set(CALLERID(name)=${CALLERID(num)}))
exten => 01161234567/07971234567,n,Set(CHANNEL(musicclass)=default)
exten => 01161234567/07971234567,n,Set(__MOHCLASS=default)
exten => 01161234567/07971234567,n,Set(__CALLINGPRES_SV=${CALLERPRES()})
exten => 01161234567/07971234567,n,Set(CALLERPRES()=allowed_not_screened)
exten => 01161234567/07971234567,n(dest-ext),Goto(disa,1,1)
;--== end of [ext-did-0001] ==--;
What this section of the dialplan does is handle calls in on 01161234567 that have come only from 07971234567. Notice the include => ext-did-0001-custom . This causes the PBX to look for another section called [ext-did-0001-custom]. At the moment this section does not exist and we cant put it in this file, but we can put it elsewhere.
Navigate to /etc/asterisk/extensions_custom.conf - You may well find this file is empty.
Copy the [ext-did-0001] section and paste it into extensions_custom.conf
Change the section name to be [ext-did-0001-custom] and don't forget to change the section end marker to look the same. Take out the include statement You can now do a search and replace on the CallerID, it will look like this.
[ext-did-0001-custom]
exten => fax,1,Goto(${CUT(FAX_DEST,^,1)},${CUT(FAX_DEST,^,2)},${CUT(FAX_DEST,^,3)})
exten => 01161234567/07989876543,1,Set(__FROM_DID=${EXTEN})
exten => 01161234567/07989876543,n,Gosub(app-blacklist-check,s,1())
exten => 01161234567/07989876543,n,Set(CDR(did)=${FROM_DID})
exten => 01161234567/07989876543,n,ExecIf($[ "${CALLERID(name)}" = "" ] ?Set(CALLERID(name)=${CALLERID(num)}))
exten => 01161234567/07989876543,n,Set(CHANNEL(musicclass)=default)
exten => 01161234567/07989876543,n,Set(__MOHCLASS=default)
exten => 01161234567/07989876543,n,Set(__CALLINGPRES_SV=${CALLERPRES()})
exten => 01161234567/07989876543,n,Set(CALLERPRES()=allowed_not_screened)
exten => 01161234567/07989876543,n(dest-ext),Goto(disa,1,1)
;--== end of [ext-did-0001-custom] ==--;
You can now save the file and then close it.
If you now ask asterisk to reload the configuration you will get in from two different CallerID's. You can keep on adding further DID definitions with other CallerID's into this section and they won't show in the web interface of the system.
John Rogers
Telecom Care Ltd
It was easy to get a DID to ring in to our system, you can do that through the web interface just by filling in the boxes.
Then we were asked to restrict that DID so it only allowed a certain caller to access it. Again that is fine, there is a caller ID box in the web form that allows you to do that.
Then we were asked if two callers could have access. This is trickier as the Caller ID box on the inbound route form only allows one number to be entered. But we created two inbound routes, both with the same DID, but different CallerID's and again this worked, now two phones could dial in on one DID.
Where it started to get unmanageable was when we were asked if there could be 20, 30 or 40 CallerID's with permission to call that DID. Whilst we could keep creating inbound routes, the menu structure of the web interface was going to start getting very messy showing all those additional routes just for 1 DID. Because of this we started looking at how to add these into the custom files that are hidden from the web interface.
Here is what we did.
Use WinSCP to connect to the PBX. WinSCP allows the transfer and editing of files on a linux box.
Navigate to /etc/asterisk/extensions_additional.conf - Don't change anything in here as this is a file FreePBX writes and any changes will be lost.
Open the file and do a search for your DID number, you will see a section like the one below.
[ext-did-0001]
include => ext-did-0001-custom
exten => fax,1,Goto(${CUT(FAX_DEST,^,1)},${CUT(FAX_DEST,^,2)},${CUT(FAX_DEST,^,3)})
exten => 01161234567/07971234567,1,Set(__FROM_DID=${EXTEN})
exten => 01161234567/07971234567,n,Gosub(app-blacklist-check,s,1())
exten => 01161234567/07971234567,n,Set(CDR(did)=${FROM_DID})
exten => 01161234567/07971234567,n,ExecIf($[ "${CALLERID(name)}" = "" ] ?Set(CALLERID(name)=${CALLERID(num)}))
exten => 01161234567/07971234567,n,Set(CHANNEL(musicclass)=default)
exten => 01161234567/07971234567,n,Set(__MOHCLASS=default)
exten => 01161234567/07971234567,n,Set(__CALLINGPRES_SV=${CALLERPRES()})
exten => 01161234567/07971234567,n,Set(CALLERPRES()=allowed_not_screened)
exten => 01161234567/07971234567,n(dest-ext),Goto(disa,1,1)
;--== end of [ext-did-0001] ==--;
What this section of the dialplan does is handle calls in on 01161234567 that have come only from 07971234567. Notice the include => ext-did-0001-custom . This causes the PBX to look for another section called [ext-did-0001-custom]. At the moment this section does not exist and we cant put it in this file, but we can put it elsewhere.
Navigate to /etc/asterisk/extensions_custom.conf - You may well find this file is empty.
Copy the [ext-did-0001] section and paste it into extensions_custom.conf
Change the section name to be [ext-did-0001-custom] and don't forget to change the section end marker to look the same. Take out the include statement You can now do a search and replace on the CallerID, it will look like this.
[ext-did-0001-custom]
exten => fax,1,Goto(${CUT(FAX_DEST,^,1)},${CUT(FAX_DEST,^,2)},${CUT(FAX_DEST,^,3)})
exten => 01161234567/07989876543,1,Set(__FROM_DID=${EXTEN})
exten => 01161234567/07989876543,n,Gosub(app-blacklist-check,s,1())
exten => 01161234567/07989876543,n,Set(CDR(did)=${FROM_DID})
exten => 01161234567/07989876543,n,ExecIf($[ "${CALLERID(name)}" = "" ] ?Set(CALLERID(name)=${CALLERID(num)}))
exten => 01161234567/07989876543,n,Set(CHANNEL(musicclass)=default)
exten => 01161234567/07989876543,n,Set(__MOHCLASS=default)
exten => 01161234567/07989876543,n,Set(__CALLINGPRES_SV=${CALLERPRES()})
exten => 01161234567/07989876543,n,Set(CALLERPRES()=allowed_not_screened)
exten => 01161234567/07989876543,n(dest-ext),Goto(disa,1,1)
;--== end of [ext-did-0001-custom] ==--;
You can now save the file and then close it.
If you now ask asterisk to reload the configuration you will get in from two different CallerID's. You can keep on adding further DID definitions with other CallerID's into this section and they won't show in the web interface of the system.
John Rogers
Telecom Care Ltd
Mitel CSM contacts list format (Callview)
I came across this question today from a customer;
'What is the file format of the contacts import in the CSM server?'
When I looked for the answer it was buried deep in the help file of the CSM Server and not at all obvious.
The file is a six field csv file. The format is,
Phone number or email, Name, Custom field 1, CF2, CF3, CF4
So a phone number entry might be
01165291911,Bobs Hardware,Bob Hammer,512345
An email contact is defined by an @ at the beginning of the line, so it might look like
@sales@bobshardware.co.uk,Bobs Hardware,Bob Hammer,512345
The fields are matched on calls and emails and the custom fields can be included in reports, so for instance including custom field 2 in the report might result in the customers account number (512345 in the example above) being displayed in a report or used in a routing rule.
The amount of characters allowed per field is set as 255,50,50,50,50,50
John Rogers
Telecom Care Ltd
'What is the file format of the contacts import in the CSM server?'
When I looked for the answer it was buried deep in the help file of the CSM Server and not at all obvious.
The file is a six field csv file. The format is,
Phone number or email, Name, Custom field 1, CF2, CF3, CF4
So a phone number entry might be
01165291911,Bobs Hardware,Bob Hammer,512345
An email contact is defined by an @ at the beginning of the line, so it might look like
@sales@bobshardware.co.uk,Bobs Hardware,Bob Hammer,512345
The fields are matched on calls and emails and the custom fields can be included in reports, so for instance including custom field 2 in the report might result in the customers account number (512345 in the example above) being displayed in a report or used in a routing rule.
The amount of characters allowed per field is set as 255,50,50,50,50,50
John Rogers
Telecom Care Ltd
Thursday, 3 October 2013
SMDR (Call Logging) output viewing on the Mitel 3300 (MiVoice Business)
When I looked around the internet for instructions on viewing the smdr output from the 3300's web interface I found a lot of conflicting and disjointed advice. I thought I would gather it together for my future reference.
I am often in the situation where I am remotely connected to the web interface of the system, but can't telnet, so viewing the real time output is not possible. But the maintenance command window does allow you to see historic smdr records.
The basic command you could use is -
LOGSYS READ SMDR ALL
This is a bad idea!!!!!! The system will attempt to output the whole SMDR file onto your screen. The last time I did this there were 20,000 lines of information stored in the file and it took 30 minutes to complete the process.
Usually you will make a test call and then want to see the SMDR output, so you could do this -
LOGSYS READ SMDR NEWEST 20
This will output the last 20 call records and your test call will likely be among them for you to view.
What if I knew the call I was looking for had taken place in the last hour and came from a Nottingham (area code 0115) number? In that case I could narrow down the records returned by using the MATCH feature.
LOGSYS READ SMDR NEWEST 200 MATCH 0115
This will take a bit longer to complete as the newest 200 lines have to be searched and just the ones containing 0115 returned to the screen.
Perhaps the examples above will now allow you to make more sense of the section from the manual reproduced below.
LOGSYS READ followed by the qualifiers below
<logname> ALL
<logname> ALL MATCH <string>
<logname> INTO <filename> ALL
<logname> INTO <filename> ALL MATCH X
<logname> NEWEST X
<logname> NEWEST X MATCH <string>
<logname> INTO <filename> NEWEST X
<logname> INTO <filename> NEWEST X MATCH X
<logname> OLDEST X
<logname> INTO <filename> OLDEST X
<logname> INTO <filename> OLDEST X MATCH X
If you know of any other useful lognames that can be inserted above, then please let me know!
John Rogers
Telecom Care Ltd
I am often in the situation where I am remotely connected to the web interface of the system, but can't telnet, so viewing the real time output is not possible. But the maintenance command window does allow you to see historic smdr records.
The basic command you could use is -
LOGSYS READ SMDR ALL
This is a bad idea!!!!!! The system will attempt to output the whole SMDR file onto your screen. The last time I did this there were 20,000 lines of information stored in the file and it took 30 minutes to complete the process.
Usually you will make a test call and then want to see the SMDR output, so you could do this -
LOGSYS READ SMDR NEWEST 20
This will output the last 20 call records and your test call will likely be among them for you to view.
What if I knew the call I was looking for had taken place in the last hour and came from a Nottingham (area code 0115) number? In that case I could narrow down the records returned by using the MATCH feature.
LOGSYS READ SMDR NEWEST 200 MATCH 0115
This will take a bit longer to complete as the newest 200 lines have to be searched and just the ones containing 0115 returned to the screen.
Perhaps the examples above will now allow you to make more sense of the section from the manual reproduced below.
LOGSYS READ followed by the qualifiers below
<logname> ALL
<logname> ALL MATCH <string>
<logname> INTO <filename> ALL
<logname> INTO <filename> ALL MATCH X
<logname> NEWEST X
<logname> NEWEST X MATCH <string>
<logname> INTO <filename> NEWEST X
<logname> INTO <filename> NEWEST X MATCH X
<logname> OLDEST X
<logname> INTO <filename> OLDEST X
<logname> INTO <filename> OLDEST X MATCH X
If you know of any other useful lognames that can be inserted above, then please let me know!
John Rogers
Telecom Care Ltd
Monday, 30 September 2013
Mitel Border Gateway tracing
Not being very familiar with linux or the command line I thought I would set down how to do a packet trace on a Mitel Border Gateway as i have been asked to do it on several occasions now.
This captures all the packets going in and out of the interfaces and outputs them to a file which can be read by wireshark. You are going to need PuTTY (or some other ssh client), WinSCP (or other SCP client) and Wireshark.
Use PuTTY to bring up a command line interface on the MBG and log in as root. No I cant tell you the root password, it was set by the installer when the MBG was first installed.
At the prompt type > tcpdump -s0 -i any -w capturefile.pcap
You can now make calls and keep the capture running until the event or error you are tracking occurs.
To stop the trace type CTRL-C
The file 'capturefile.pcap' will now exist in the root directory
Fire up WinSCP and log into the MBG. WinSCP provides a file explorer type interface which you can use to get into the root directory and find the capturefile. Drag and drop it into your harddisk.
The file can now be opened in wireshark for analysis.
John Rogers
Telecom Care Ltd
This captures all the packets going in and out of the interfaces and outputs them to a file which can be read by wireshark. You are going to need PuTTY (or some other ssh client), WinSCP (or other SCP client) and Wireshark.
Use PuTTY to bring up a command line interface on the MBG and log in as root. No I cant tell you the root password, it was set by the installer when the MBG was first installed.
At the prompt type > tcpdump -s0 -i any -w capturefile.pcap
You can now make calls and keep the capture running until the event or error you are tracking occurs.
To stop the trace type CTRL-C
The file 'capturefile.pcap' will now exist in the root directory
Fire up WinSCP and log into the MBG. WinSCP provides a file explorer type interface which you can use to get into the root directory and find the capturefile. Drag and drop it into your harddisk.
The file can now be opened in wireshark for analysis.
John Rogers
Telecom Care Ltd
Subscribe to:
Posts (Atom)
Mitel MSL MBG etc wont license sync on Azure
I had a situation where I was putting an MBG into virtual Azure infrastructure for the first time ever last week. Everything seemed to be ...
-
When I looked around the internet for instructions on viewing the smdr output from the 3300's web interface I found a lot of conflicting...
-
Method 1: Sometimes it just seems as though nothing you are doing, even though you are sure it is right, is having any impact on the behavi...
-
Mitel sell the 53xx range of phones as 'Dual Mode' meaning they can be switched to SIP mode. That's great, except for the lack o...