Categories
Blog Case Studies

An out of the normal Customer request

and how we solved it:

We were approached by one of our customers who provides support services to travellers and global companies who had a client that provides maritime engineering services world wide and required an emergency helpline that “followed the sun” 

Detailed Specification

A single number that called dependant on time the on call support staff.

The calls cannot go to users Voicemail.

The staff members are to be notified by email that the call was taken and who took it.

If the on call staff do not answer the call it is forwarded to our clients call centre.

On completion of the call a copy of the recording in mp3 format is emailed to the on call staff.

Solution.

Our customer uses FreePBX so the core of the project is the use of the Queue application but with some custom dial plan and scripts to exploit and enhance features that are not exposed, 

The inbound numbers destination is a “custom destination” that first sends it to some custom dial plan explained later and then to the “Call Flow Control” application to allow the system to be overridden, It is then sent to the “Time Conditions” application that uses UTC as its time zone to over come issues with daylight saving in different hemispheres, this then send the call to the correct queue depending on time 

To allow an email to be sent to staff we used the qgosub variable that is explained HERE , this sub routine sends the email on answer. this variable is set by a small dial plan snippet that sets the qgosub variable and an additional one to set a channel variable as the callers callerID number, as its lost when the call is made to the staff members by the queue application. 

To make sure calls do not go to voicemail, the queue option “call confirm” this forces the called staff to press 1 to accept a call, This much overlooked option is useful for many queue scenarios.

If the call is unanswered the call has to be passed to the callcenter with the callerID name tagged with the customers Name, We achieve this with the “SetCallerID” application passing the call onto the client call centre.

Finally when the call is complete we need to email the recording to the customer. To do this with the “Post Call Recording Script” option in Advanced options. (You may need to enable “Display Readonly Settings” and “Override Readonly Settings”), This did require a little lateral thinking as we were already using this script to convert recordings to MP3 and save them to AWSS3 storage, But we didn’t want an email sent after all recordings do we included an additional ‘if’ statement to check if the qgosub variable was passed over to the script and if it was email the attachment otherwise do nothing.

I hope this shows the flexibility of FreePBX and asterisk and how fairly complex call routings and requests can be fulfilled in a manner that doesn’t require complex dial plans or require high support overheads.

If you want to achieve similar don’t hesitate to get in touch as by using modules already in FreePBX you’re not paying to reinvent the wheel.

Categories
Blog FreePBX Knowledge Base

Running Subroutines on answer for Queues

Some years ago we wrote a post on running macros on queue answer here. this was very useful for integration with backends, At the time we raised a feature request to get it added to Freepbx, But this never happened.

Now the variable QGOSUB is in the dialplan for freepbx queues, But still there is no way of setting this in a default freepbx installation and it requires a snip-it of custom dialplan that is called from freepbx by a ‘custom destination’ . For example at its simplest the dialplan to set it could be :-

[qmacro-set]
exten => .,1,Noop(ians test) 
exten => .,n,Set(_QGOSUB=ians_routine) 
exten => .,n,Goto(app-daynight,1,1)  

and this sets the variable for all channels in this call, and when the Queue command is run in the default freepbx dialplan

Queue(9471,${QOPTIONS},,${QAANNOUNCE},${QMAXWAIT},${QAGI},,${QGOSUB},${QRULE},${QPOSITION})  

This allows simple or more complicated routines to be run. For example sending an email on answer which was a request we had that caused us to revisit this.

[ians_routine]
exten = s,1,Set(origtime=${EPOCH})
exten = s,n,Noop(${CHANNEL})
exten = s,n,Set(Agent11=${CUT(CHANNEL,@,1)})
exten = s,n,Set(Agent12=${CUT(Agent11,/,2)})
exten = s,n,Noop(${Agent11} , ${Agent12} )
exten = s,n,Set(fulltime=${STRFTIME(${EPOCH},,%d%m%Y-%H:%M:%S)})
exten = s,n,system(echo "There has been a call , Callers Details: ${CALLERID(number)} ,  ${CRM_SOURCE} , Date and Time: ${fulltime} ,  Agent: ${Agent12} ,Timestamp: ${origtime} , Queue Number: ${QUEUENUM} " | mail -s "failed recall at ${fulltime}" email@address.com)
same = n,Return()

If you think that you would like to be able to set this variable in the freepbx gui give it a vote https://issues.freepbx.org/browse/FREEPBX-22274

Categories
Knowledge Base Products and services

Aastra 6753i Transfer

Step By step instructions for call transfer when using the Aastra 6753i with firmware 3.x.x and above.

Phone Idle screen.

Once a call is answered their number will show and an icon of a ‘off hook phone’ will also show

To transfer the call press your ‘Transfer key’. Another ‘line’ will show numbered 2 with a ‘ > ’ next to it.

Enter the number you want to dial and press ‘>‘ dial if the call isn’t immediately dialed.

To ‘Blind’ transfer the call press the Transfer Button again or put the Handset down. NOTE if you do this you will not be able to get the call back.

After pressing dial the Phone Icon will show ‘ringing’

To get the call back while it is ringing press the ‘ < ‘ button shown on the display next to ‘Cancel’. Then L1 in this example will flash and ‘call held’ will show on the display as below, you need to get the call back by pressing the Flashing Line Key.

If the call goes to Voicemail or the caller answers the display will show the ‘off hook’ icon against 2

If the Caller wants the call then Press the ‘Transfer key’ the Red ‘Hangup key’ or put the handset down and the call will be transferred to them. Do not press the ‘>‘ Drop button.

If they don’t want the call or it goes to voicemail and you want to get the caller back, Press the ‘ > ‘ Drop Button and that call will be dropped and as before ‘call held’ will show on the screen and you press the L1 button to get the caller Back

Categories
Handsets

Gigaset SL750 Pro

SL750H £84.00

The SL750H PRO handset is the thinnest pro handset yet and has a large 2.4″ illuminated display with an intuitive, icon-based user interface. This handset delivers fantastic call clarity based on Gigaset’s patented HDSPTM audio quality. The SL750H allows users to easily control call and notification alerts with a choice of audio profiles to suit your business needs.

The SL750H PRO has been given a special coating that makes it resilient to scratches on the display, handset or keys. This coating also helps to protect it from disinfectants, making it an ideal choice for industrial and manufacturing companies, hospitals and similar environments.

This handset is fully compatible with both Gigaset N510IP PRO and N300IP singlecell solutions as well as the N720IP PRO multicell DECT solution.

Categories
Blog

3D Printers and why you need one.

I recently had the need for a wall bracket for a Sangoma S505 handset and the S300/S400 handsets.

Looking at my suppliers price list there were none in stock and at nearly £10 each this seemed like a perfect project for the newly acquired 3d printer. After a bit of design work on paper then in Tinkercad (Ill be moving on to fusion 360) it was ready to print.

I’ve put a link to download of the STL code here for S505 and here for the S300 so anyone can download and modify it, Its robust and angles the phone so that the handsets arnt knocked off easily, angling and supporting the phone. The S300 Bracket can also be used as an alternative desk base allowing the phone to sit flatter on a desk.

It is surprising how useful the 3d printer has become, and how readily available designs are. Another recent request was for an additional mount for a Ubiquiti wireless access point, We found a design on Thingiverse printed it out and sent it to the customer. Add to this all the little widgets that we have been making since getting it i’m not sure how we lived without one for so long.

I would urge any IT company to invest in a printer, The price point is now so low that you don’t need to produce many items to have it pay for itself, Just the 2 items mentioned here would have cost nearly £20 plus postage, and very little margin, They now cost £0.20 worth of filament and maybe £0.20 worth of renewable electricity.

Categories
Knowledge Base

Setting up Postfix to use Office 365 mail

FreePBX uses centos 7 and postfix fom its mail delivery, normally this is fine unless the customer is using Office 365 mail then there can be delivery issues.

Firstly you will need to set up a user in Office 365 for the system.

Postfix’s main configuration file is main.cf and that is where we make the required change as follow:

[root@localhost ~]# vi /etc/postfix/main.cf

Append the following lines

masquerade_domains = domainname
myhostname = USERNAME.domainname
mydomain = USERNAME.domainname
myorigin = USERNAME@domainname
relayhost = [smtp.office365.com]:587

mynetworks = 127.0.0.0/8
inet_interfaces = loopback-only
smtp_use_tls = yes
smtp_always_send_ehlo = yes
smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
smtp_sasl_security_options = noanonymous
smtp_sasl_tls_security_options = noanonymous
smtp_tls_security_level = encrypt
smtp_generic_maps = hash:/etc/postfix/generic 
# smtp_tls_CAfile = /etc/ssl/certs/ca-certificates.crt

Save and exit from the file.
Next we need to edit the configuration for the postfix SASL credentials:

[root@localhost ~]# vi /etc/postfix/sasl_passwd

Add a line below

[smtp.office365.com]:587 user@domainname:password

Replacing user@domainname:password with your sender account details

Save and exit from file

A Postfix lookup table must now be generated from the sasl_passwd text file by running the following command.

[root@localhost ~]# postmap /etc/postfix/sasl_passwd

Now change permission for this file

[root@localhost ~]# chown root:postfix /etc/postfix/sasl_passwd

[root@localhost ~]# chmod 640 /etc/postfix/sasl_passwd

Next, we need to configure generic file in order to be able to send emails as a valid user (this is required for Office365).

[root@localhost ~]# vi /etc/postfix/generic

Go the end of file and append following lines.

root@localhost.localdomain UserName@Domain.com

Again replacing localhost.localdomain and UserName@Domain.com with your service hostname and the email user are using

Save and exit from file.

Next let’s correct the file permission.

[root@localhost ~]# chown root:root /etc/postfix/generic

[root@localhost ~]# chmod 0600 /etc/postfix/generic

[root@localhost ~]# postmap /etc/postfix/generic

Now restart Postfix service.

[root@localhost ~]# systemctl restart postfix

Now try to send a test email using the command below:
FOR Centos:

echo "This is the body of the email"| mail -r"Sender-Display-Name<sender@domain.com>" -s "This is the subject(E-Mail from SMTP Relay) line" recipeat@gmail.com

In FreePBX under Voicemail admin you must change the senders address to match your account as well as the sender for notifications such as backups etc. otherwise you can get errors and mail wont be delivered.

Categories
Applications Remote Working Services Special Offers

Sangoma Meet, Free multi-party, video conferencing and desktop sharing

Sangoma Technologies announced the general availability of its new video conferencing and collaboration service Sangoma Meet. Sangoma Meet is a multi-party, video conferencing and desktop sharing, cloud-based service, specially designed to enable a great work from home or collaboration experience. HD video support is standard with Sangoma Meet, ensuring the highest quality video calls possible. 

Sangoma Meet is also highly secure, fully encrypting password-protected video conferences to avoid problems with unauthorised users hacking into a video meeting, and Sangoma will not rent or sell Sangoma Meet user information to any third parties, including any social networks. It can also be used as a stand-alone service or in conjunction with its Unified Communication Business Phone Systems. 

Connect

Its simple to use with all the features you need

Moderator Privileges: If you are holding a team call, you have full moderator privileges. You can mute/unmute attendees, send them private messages, or kick anyone off the call. You also have the option to invite audio-only participants to limit video sharing.

Chat: If you prefer not to talk on your video call, use the chat feature in Sangoma Meet to share your thoughts with the group. A full suite of emojis will keep the conversation engaging and light!
Screen Sharing: Give your coworkers real-time examples and streamline meetings with screen sharing in Sangoma Meet. Instantly share your screen and choose what you want to show to others.
Inviting users: Its as simple as, copy your meeting link and send it to the desired parties. As soon as  users click on the link, they immediately join the conference.

Sangoma Meet is available for use today in the company’s General Availability release. It has already been in beta usage, both internally and with partners, with excellent reviews to date.

The Sangoma Meet cloud service has been updated to include additional functionality such as mobile apps (for iOS and Android), calendar integration (for Google G-suite and Microsoft Outlook), desktops apps (for both Windows and Mac) to further enhance user experience, and dial-in functionality to the video conference using a phone (with enhanced security via a PIN).

To help its end-users communicate more effectively during this global pandemic, Sangoma decided to launch this new service completely free of charge to everyone, during these troubled times. 

The full datasheet explaining all the features can be viewed here and the help site is located here

Categories
Blog Calls and Lines Covid-19

Calls to 101 Non-Emergency number to be free from April 1st

Given the pressure on the emergency services presently, the Home Office have requested that the 101 Non-Emergency number be made free to all callers from 1st April 2020. Therefore these calls placed through our network will be free from midnight this evening.

We understand that this change is intended to be permanent, and not just for the duration of the Covid-19 emergency.

Please note that although this change will be in place from midnight tonight it may not be reflected in the ratesheet immediately .

Categories
Blog Knowledge Base

Presenting Local or national CLI from outside a country

Over the last six months an increasing number of countries will not allow internationally originated calls that are presenting a local or national CLI for the country called. 

It is believed that the reason behind this is part of a global wide crack down on fraud and nuisance calls, as some of the regulations and requirements introduced may have a more widespread impact on the CLI passed on calls.

Currently, the countries we are aware that are implementing these controls are:-

Australia – ACMA  ( Australian Communications & Media Authority ) are actively cracking down on common phone fraud, including malicious “spoofing”.

Australian networks are also trying to stamp out  “Wangiri” fraud,  where victims are called once from an international number with high premium charges for those who call back.

https://www.acma.gov.au/articles/2019-11/acma-recommends-immediate-action-combat-scams

Canada – CRTC (Canadian Radio-television & Telecommunications Commission ) have issued a requirement for telecoms providers to implement a system to block calls within their network or offer call-filtering service.

https://crtc.gc.ca/eng/phone/telemarketing/identit.htm

China – China have always been very strict on caller ID, as well as not permitting internationally originated calls with a local or national CLI, they do not allow calls presented with a withheld flag. 

These calls will either present the withheld CLI or the call will fail. 

France – ARCEP ( France’s regulatory body for electronic communications, portal and print media distribution ) have issued a statement to carriers that due to in country regulations, calls sent internationally with a French CLI are not permitted.

Malaysia – we are seeing that calls may fail if a local or national CLI is presented.

Turkey – ICTA ( Information & Communication Technologies Authority ) have introduced CLI regulations which require operators to block some voice calls with CLIs that may be confused with local numbers due to the format of the number presented.

United Arab Emirates – in our experience calls may fail if a local or national CLI is presented.  In addition, the UAE are blocking calls with a Tunisian or Algerian CLI.

Categories
Asterisk Support Covid-19 FreePBX Knowledge Base Remote Working

Disabling Router SIP ALG

With many companies asking their employees to work from home, a common problem when trying to use a sip phone on a home network is the SIP ‘helper’ or ALG, Here is some advice on how to disable it on the more common routers that you may encounter.

SIP ALG (Application Layer Gateway) modifies VoIP traffic with the aim of solving NAT and firewall related problems. SIP ALG does this by inspecting SIP packets and modifying SIP Header and SDP data.

Unfortunately, SIP ALG was poorly implemented in a lot of cases, which has lead to it causing more issues than it corrects and due to this, we believe that, in general, it is best disabled.

Note – Many routers will re-enable SIP ALG after being powered off and on, or sometimes after a firmware update, therefore if it has been disabled in the past, and you know that the router was recently updated and powered off and on again, then it is always a good idea to log in to the router and double check the setting.

Virgin SuperHub: SIP ALG cannot be disabled in the settings of SuperHubs. Please click here for advice troubleshooting issues with SuperHubs. 

BT: SIP ALG cannot be disabled in the settings of BT HomeHubs, but can be disable with BT Business Hub versions 3 and higher:

Disabling a BT Business Hub 5’s SIP ALG

Fritz!Box: SIP ALG can’t be disabled.

DrayTek routers: Log in to your DrayTek via Telnet using an SSH client such as Putty: http://www.putty.org/

Check if SIP ALG is Enabled or Disabled:

To check if SIP ALG is Enabled or Disabled enter this command: sys sip_alg ?

If SIP ALG is disabled a ” 0 ” result will be returned.  If SIP ALG is enabled the result will be ” 1 “.

Disabling SIP ALG:

To Disable SIP ALG enter the following:

sys sip_alg 0
sys commit
sys reboot

The router will restart and save your changes.

Click here for additional general information about DrayTek Firewall setup. 

TP-Link routers: How to Disable SIP ALG on TP-Link ADSL modem router

Linksys: Check for a ‘SIP ALG’ option, in the ‘Administration’ tab under ‘Advanced’. 

May also need to disable SPI Firewall. 

Microtik: Disable ‘SIP Helper‘. 

Netgear: Look for a ‘SIP ALG’ checkbox in the ‘WAN’ settings.

Port Scan and DoS Protection should also be disabled.

Disable STUN in VoIP phone’s settings. 

D-Link: In your router’s ‘Advanced’ settings –> ‘Application Level Gateway (ALG) Configuration’ uncheck the ‘SIP’ option. 

Huawei: Many routers support SIP ALG (usually found in the ‘Security’ menu). 

SonicWALL Firewall: Under the VoIP tab, the option ‘Enable Consistent NAT’ should be enabled and ‘Enable SIP Transformations’ unchecked.  

Thomson: How to Disable SIP ALG on a Thomson Router HERE

Test with STUN disabled in your VoIP phone’s settings.

Adtran Netvanta: Disable SIP ALG under ‘Firewall/ACLs’ –> ‘ALG Settings’.

For Technicolor TG588V routers see this document for step by step details

Even if there isn’t a SIP ALG option in your router’s settings, it may still be implemented. TelNet commands must be used to disable SIP ALG with TechnicolorThomsonSpeedTouch, some Draytek and some ZyXEL routers.