Categories
Blog Elastix Support

Elastix changes and what it means

This week, significant changes at Elastix were announced, including the involvement of 3CX and the removal of key Elastix versions for download. Since those announcements, many things have been written by many people, and this has left some folks wondering what happened. Sangoma would like to reinforce its commitment to open source, this open letter from Sangoma, will provide our own clarity about how these events affect or involve Sangoma. Sangoma are a professional, global, growing, profitable, engineering-focused, publicly traded company, and this is the only reliable source of information to understand how those recent events affect or involve Sangoma. Other commentary released by other third parties about Sangoma, is not to be relied upon.

Everyone comes to open source software for their own reasons: software developers to do what they love; some to earn a livelihood; manufacturers to augment the project and sell their wares; and most importantly community members to find flexible/cost effective/well-supported solutions to their ‘business problem’ (in our case, for UC/Telecom/PBX needs). In the end, the good projects build something bigger than themselves… a community, a solution, and an opportunity for end users to utilize the project to build their own businesses. Over the course of a project many people will enter and exit those communities as their needs change.

As the primary investor in and developers of FreePBX, Sangoma actively works with many different members of the Open Source Telephony (OST) community, including Asterisk Developers, other FreePBX-based distros (including Elastix!), and many third-party hardware/software developers and manufacturers. As just one example, we have a great relationship with Digium and talk with them on an almost weekly basis, even though many consider us competitors. This may seem surprising to some, as many folks would think we might be bitter enemies. In fact, the opposite is true…we encourage and help those products to compete in the marketplace on their own merits. And this is entirely consistent with the commitment Sangoma has demonstrated to open source for many, many years over the time when we worked hard to also make Asterisk better. When Sangoma took over stewardship of FreePBX, we reiterated this statement clearly and unequivocally.

So Sangoma continues to work very hard every day, and invests many millions of dollars each year, in order to build strong relationships and to benefit to the entire open source telephony community. There is a saying that ‘a rising tide lifts all boats.’ Thus, it is usually counter-productive for open source contributors to battle with each other. In other words, there is no reason for them to fight over the same slice of pie, when there is an entire cake that no one is touching.

Their approach was no different with Elastix. For over a decade, Sangoma has been a direct supporter of Elastix, in many, many different ways, visiting them in Ecuador many times. They supported the project financially, They attended/exhibited/supported/spoke at multiple ElastixWorld events over many years, They cooperated with their distribution partners who also supported Elastix, They invested in R&D to ensure their products (software and hardware) were compatible with Elastix, etc. The list goes on and on.They had (and hope, still have), excellent relationships between the companies, in all parts of the organizations right up to the CEO level of both companies.

With recent changes at Elastix, some people/blogs/websites have made comments which claim that the removal of Elastix downloads of version 4 or MT, was in some way caused by Sangoma/FreePBX, due to concerns about compliance with GPL conditions. That is not true and They wish to set the story straight.  Sangoma hold ourselves to high ethical standards, and as a publicly traded company as well, setting the record straight with facts and not rumours, is both important and required.

While it is indeed true that Sangoma pointed out to Elastix some time ago, that there was a copyright issue,They did so in a very friendly manner, with words carefully chosen to be respectful of the long term relationship between the companies, and critically, to ensure that this important relationship continued. It was a 2015 letter from CEO to CEO, and certainly did not suggest any legal action, since it was not that kind of letter at all…it was a positive, complementary letter seeking to deepen the relationship, not harm it. That letter was sent shortly after Sangoma acquired FreePBX, when they made it a priority to reach out to PaloSanto to reinforce that the Elastix Project was a valuable strategic partner to Sangoma. It was in no way threatening, did not ask for, was not intended to, and given it was 2015, did not cause any versions of Elastix to be withdrawn. Elastix decision this week to shutdown these versions is a business decision not a response to Sangoma. While it seems that these days, the number of open source projects that remain truly open source is definitely on the decline, Sangoma’s commitment to open source remains as true today, as always.

And while it is admittedly a little unusual for companies to do so, in this case, for full transparency to the open source communities that they respect so very much (and to dispel any untrue rumours or claims), the entire letter is available. They share it for those who need confirmation of the above statements, and to reassure the Elastix community that Sangoma continues to be committed to you as well as to the entire Latin America region (and would be honored to have you consider joining the family)

This page is a shorted and edited version of Sangoma’s announcement at https://www.freepbx.org/what-happened-to-elastix/  follow the link for the full version.

Categories
Knowledge Base Sangoma

Building FreePBX CallCenters

Leo D’Alessandro, Product Marketing Manager at Sangoma, and Frederic Dickey, VP of Product Management at Sangoma, will in this webinar explain how to build an efficient contact center cost-effectively with Sangoma’s FreePBX / PBXact UC.

In this webinar, you’ll learn how the many ways FreePBX / PBXact UC can solve your contact center requirements:

• How calls are best routed using call queues
• Maximizing Agent Productivity and Customer Satisfaction with automated Queue Callbacks
• Integration with desktop and CRM
• Monitoring live call metrics
• Reporting tools to analyze overall performance

WEBINAR: Building Your Contact Center with FreePBX / PBXact UC from Sangoma on Vimeo.

Categories
Asterisk Support Knowledge Base Security

Catching the IP of anonymous callers on Asterisk servers

Hi just sharing a simple bit of dialplan to catch anon callers ip addresses when using freepbx and Anonymous callers is set to yes, which is needed for some suppliers.

Normally I would say lock your firewall to only known IPs, but in some cases this isn’t possible

Im sure if you have a Asterisk server with a public IP you will have seen calls on the console screen where the call is to a destination but the callers are exten@yourserver . Well this little bit of dialplan at the end of you default sip context should catch them and log them with the ip of the originating server

In extensions_custom.conf add the dialplan below

[catchall]
exten => s,1,Noop(Dead calls rising)
exten => s,n,Set(uri=${SIPCHANINFO(uri)})
exten => s,n,Verbose(3,Unknown call from ${uri} to ${EXTEN})
exten => s,n,System(echo "[${STRFTIME(${EPOCH},,%b %d %H:%M:%S)}] SECURITY[] Unknown Call from ${CALLERIDNUM} to ${FROM_DID} IPdetails ${uri}" >> /var/log/asterisk/sipsec.log)
exten => s,n,Hangup()

Then in Custom Destinations add a destination as  catchall,s,1

so you now get in your logs

[May 1 00:11:06] SECURITY[] Unknown Call from  to 900441516014742 IPdetails sip:101@37.75.209.113:21896

 I hope this is some help to you, It allows other scripts to pick up this address and add it to your firewall.
Categories
IPPBXs Sangoma

The FreePBX Appliance

Introducing the FreePBX appliance! The FreePBX appliance is a purpose-built, high-performance PBX solution. Designed and rigorously tested for optimal performance, this is the only officially supported hardware solution for FreePBX. The appliance comes preloaded with the FreePBX Distro and includes a one-year warranty!

appliances-header

Featuring the FreePBX Distro, this appliance is an ideal fit for businesses looking to get more from a PBX. With millions of deployments throughout the world, FreePBX is relied upon daily by everyone from enterprises to startups. Leveraging the power of FreePBX has enabled businesses to grow while keeping communication expenses minimal. The FreePBX Distro has made deploying, configuring and using a PBX system easier than ever! With an easy-to-use GUI (Graphical User Interface), getting started is a breeze!

Current Models and System capacity:

The full datasheet can be downloaded from here

Categories
Knowledge Base Technical

Fortigate issues such as one way audio on Call Pickup With Hosted Asterisk and other problems.

We have noted that with some Fortigate routers and firewalls come with SIP helpers enabled by default.

The customer may initially not think that there is any issue and inbound and outbound calls work as expected, But we had noted on one customer site that when they did a call pickup on another phone that was ringing in the office they would not be able to hear the caller. The caller could hear them and if they put the call on and off hold they could speak normally.

On further  investigation with wireshark we noted that the RTP port changed when the pickup took place. We tested this on other sites not using the Fortigate hardware and did not have this issue.

Below are listed the commands to clear the SIP helper settings from the Fortigate hardware.

  1. Open the Fortigate CLI from the dashboard.
  2. Enter the following commands in FortiGate’s CLI:
    • config system settings
    • set sip-helper disable
    • set sip-nat-trace disable
    • reboot the device
  3. Reopen CLI and enter the following commands – do not enter the text after //:
    • config system session-helper
    • show    //locate the SIP entry, usually 12, but can vary.
    • delete 12     //or the number that you identified from the previous command.
  4. Disable RTP processing as follows:
    • config voip profile
    • edit default
    • config sip
    • set rtp disable
  5. And finally:
    • config system settings
    • set default-voip-alg-mode kernel-helper based
    • End

on a fortigate 200D the following is the method to use

Step 1) Removing the session helper.

Run the following commands:

config system session-helper
  show

Amongst the displayed settings will be one similar to the following example:

    edit 13
        set name sip
        set protocol 17
        set port 5060

In this example the next commands would be:

delete 13
end
Step 2) Change the default –voip –alg-mode.

Run the following commands:

config system settings
set default-voip-alg-mode kernel-helper based
end
Step 3) Either clear sessions or reboot to make sure changes take effect

a) To clear sessions

The command to clear sessions applies to ALL sessions unless a filter is applied, and therefore will interrupt traffic.

diagnose system session clear

Taken from

http://kb.fortinet.com/kb/documentLink.do?externalID=FD36405

Categories
IPPBXs Software

FreePBX

With over 1 MILLION production systems worldwide and 20,000 new systems installed monthly, the FreePBX community continues to out-perform the industry’s commercial efforts. The FreePBX EcoSystem has developed over the past decade to be the most widely deployed open source PBX platform in use across the world. The openness of the project allows users, resellers, enthusiasts and Partners to utilize the FreePBX EcoSystem to build robust communications solutions that are powerful but at the same time easy to implement and support. Sangoma is proud to be the sponsor of FreePBX project. If you are new to FreePBX you can get started quickly by downloading and installing the FreePBX Distro. The FreePBX Distro is an all in one platform that installs everything you need to build a phone system. Once You have a basic PBX in place you can add commercial modules to add advanced features to an already feature rich base install of FreePBX.

 

As an open source GPL, web-based PBX solution, FreePBX is easy to customize and adapt to your changing needs. FreePBX can run in the cloud or on-site, and is currently being used to manage communications of all sizes and types of environments from small one person SOHO (Small Home, Small Office) businesses, to multi-location corporations and call centers. The FreePBX ecosystem provides you with the freedom and flexibility to custom design business communications around your needs.

FreePBX Commercial Modules are add-ons that enhance the already feature rich base install of FreePBX! These modules are not Open Source GPL and are only designed to work with CentOS or RHEL systems. The FreePBX Distro is already preconfigured to work with these modules. For custom installations please see: Install Commercial Modules on CentOS and RHEL based systems

The FreePBX appliance is a purpose-built, high-performance PBX solution. Designed and rigorously tested for optimal performance, this is the only officially supported hardware solution for FreePBX. The appliance comes preloaded with the FreePBX Distro and includes a one-year warranty!

Featuring the FreePBX Distro, this appliance is an ideal fit for businesses looking to get more from a PBX. With millions of deployments throughout the world, FreePBX is relied upon daily by everyone from enterprises to startups. Leveraging the powappliances-headerer of FreePBX has enabled businesses to grow while keeping communication expenses minimal. The FreePBX Distro has made deploying, configuring and using a PBX system easier than ever! With an easy-to-use GUI (Graphical User Interface), getting started is a breeze!

Sangoma IP Phones Designed Exclusively for FreePBX are Designed to work with FreePBX, Sangoma IP phones are so smart you can quickly and easily use them right out of the box. Each phone in the series features industry standard Power over Ethernet, so no power cable or outlets required. They have full duplex speakerphones, dual Ethernet Ports, multi-way conference calling, high definition voice quality, and they’re Virtual Private Network (VPN) capable.

Full Integration with FreePBX, FreePBX phone apps are available right on the phone, straight out of the box with no requirement for additional licenses. Users can control complicated features directly from their phones. There’s no need to remember feature codes. User applications include: Call Parking, Follow Me, Do Not Disturb, Conference Rooms, Call Forwarding, Time Conditions, Presence, Queues, Transfer to Voice Mail, Visual Voice Mail, and Log in/out.

Why is Sangoma Zero Touch Better? VoIP telephones can be complex to install, and manually configuring many different parameters and hundreds of extensions can take hours. When you buy and install your Sangoma IP phones, the redirection server automatically points the phone to the Sangoma FreePBX for configuration. Other vendors have redirection servers, but they have to be programmed with the details of the IP PBX. Only Sangoma can provide Zero Touch provisioning with FreePBX.

EndPoint Manager Included When using a Sangoma phone, EndPoint Manager software inside FreePBX is automatically enabled. This lets your users control global settings, program their phone keys, map extensions, upload images, download new firmware, and much more.

 

 

Categories
FreePBX Knowledge Base

Post call emailing of Call Recordings in Freepbx

In freepbx there is a feature that is quite well hidden but actually does a very useful job.

In The “Advanced Settings” page if you enable both “Post Call Recording Script” As the name suggests this is a script that run after a recorded call has ended. We created a script called postrecord.sh and in the text field on the menu we have put as below. This emails both inbound and outbound calls.

For calls to and from an extension we can pull the email address from the voicemail.conf and send the email to that address.

Its also set to delete the wav file away after a defined number of days.

/usr/local/sbin/postrecord.sh ^{TIMESTR} ^{FROMEXTEN} ^{CALLFILENAME} ^{UNIQUEID} ^{ARG3}

The Script below will first convert the recording then email it to you or your customer.

A couple of prerequisites are required, these are sox and lame. sox is probably already installed, lame maybe not.

Installing Lame is simple for centos as below.

wget http://sourceforge.net/projects/lame/files/lame/3.99/lame-3.99.5.tar.gz tar -zxvf lame-3.99.5.tar.gz
cd lame-3.99.5
./configure
make
make install

The script is fairly simple as below. the main variables are passed to it but we build the directory structure on the fly and file extension is fixed as wav. you can set the file_age variable to delete the wav file messages over that many days old.

  • Be careful if cutting and pasting this scripty as wordpress may have wrapped some lines
#!/bin/bash
#This script emails the recorded call right after the call is hung up. Below are    the variables passed through asterisk
# $1 - Time String
# $2 - Source
# $3 - File
# $4 - unique id
# $5 - Destination
# $dt - Date and Time
/bin/nice /bin/sleep 3
dy=$(date '+%Y')
dm=$(date '+%m')
dd=$(date '+%d')
file_age=35

dtpath=/var/spool/asterisk/monitor/$dy/$dm/$dd/
/bin/nice /usr/local/bin/lame -b 16 -m m -q 9-resample $dtpath$3.wav  $dtpath$3.mp3
/bin/nice /bin/chown  asterisk:asterisk $dtpath$3.mp3
dt=$(date '+%m/%d/%Y %r');
id=$(mysql -uUser -pPassword -s -N -e "SELECT descr from asterisk.queues_config where extension = $5");

email=recordings@yourdomain.com

file=$dtpath$3

if [ "$id" = "" ]; then
     direction=callers 
            id=$(mysql -uUser -pPassword -s -N -e "SELECT name from asterisk.users where extension = $2");

  IN=$(/bin/grep "$2 =>" /etc/asterisk/voicemail.conf)
              echo $IN
               set -- "$IN"
               IFS=","; declare -a Array=($*)
               email=${Array[2]}

            else

            direction=customers    
            fi

echo -e "You have a new call recording to listen to\n\n
 The call date and time was: $dat \n\n 
 The call was from: $2 \n\n The call was to: $5 \n\n
 The $direction name was: $id \n\n
 And the unique call id was: $4 \n\n
 Please see the attached file \n\n" | mail -a $file.mp3 -s "New Recording at $dt" $email 

/bin/nice /usr/bin/find /var/spool/asterisk/monitor/  -type f -mtime +"$file_age" |grep wav | \
while read I; do
              /bin/rm  "$I"
done
Categories
Asterisk Support Elastix Support Knowledge Base Support Technical

One way audio with Yealink T23 and Gamma Sip trunks on Freepbx

We recently had a very puzzling issue with a customer who we supplied some T23 Yealink handsets. When making outgoing calls over Gamma sip trunks on their Elastix server we were getting one way audio, This was not an issue with their existing Snom handsets or a problem for internal or incoming calls over the same trunks. It also wasn’t an issue when using iax2 trunks.

It seems that there is some interoperability issue when using sip trunks and these handsets. and seems to be a little known issue as only affects a few operators.

It seems to addressed in 44.80.0.20 version software that isn’t on the Yealink UK site yet but is available here and should be loaded on all T23 handsets as they are being delivered as 44.80.0.5 firmware at the moment.

Categories
Asterisk Support Elastix Support Knowledge Base

Sip Config for Aretta CBeyond and Voiceflex with Asterisk

Since Version 1.8 in Asterisk we have seen some issues with DID calls from some suppliers.

The tell tail sign is that even though you have an inbound route that matches the DID it will still say in the verbose screen that nothing matched it in the inbound context, For example:-

Call from 'USERNAME' (XXX.XX.XXX.XX:5060) to extension '01234123412' rejected because extension not found in context 'from‐trunk'

and if you do “dialplan show 01234123412@from-trunk” sure enough there is one.

After much searching and experimentation below is a working freepbx config that has been tested with 1.8 and 11 and proves to be working with the suppliers above.

OUTBOUND

[peername]
username=USERNAME
type=peer
trustrpid=yes
sendrpid=yes
secret=PASSWORD
qualify=no
outboundproxy=sip.hostname.com
nat=yes
insecure=very
host=sip.hostname.com
fromdomain=sip.hostname.com
dtmfmode=auto
disallow=all
context=from-trunk
canreinvite=no
allow=ulaw
allow=alaw

INBOUND

[username]
type=peer
host=sip.hostname.com
dtmfmode=auto
disallow=all
context=from-trunk
canreinvite=no
allow=ulaw
allow=alaw

;registration string
USERNAME:PASSWORD@peername/USERNAME
Categories
Case Studies Knowledge Base QueueMetrics Support

QueueMetrics

We have recently installed and customised a Queuemetrics solution for a customer. Their key reason for choosing Queuemetrics was the ability to use dynamic agents without the need of major Elastix reprogramming and a clear and simple interface.

It was also decided that users needed to be able to log into the system from their handsets as well as from a web interface, as the customer is hoping to roll out an agent portal in the future.

To enable Hotdesk the  following setting has to be set similar to below

# The value is interval time (in seconds) used by the analyzer to look back searching HOTDESK verbs in the queue log
default.hotdesking=86400

This meant some additional dialplans to allow logging in & out and pausing.

These are similar to the dialplans that the web portals use except that they have prompts and they also have to store the extension and agent id in the asterisk database.

;added dialplan for queuemetrics
; Add Member - 422
; User is asked for their loging agent id
exten => _422XXXX,1,Answer
exten => _422XXXX,2,Read(AGENTID,agent-login,4,,1,6)
exten => _422XXXX,3,Gotoif($["${AGENTID}" = ""]?end)
exten => _422XXXX,4,GotoIf($[${LEN(${AGENTID})} != 4]?2)
exten => _422XXXX,5,set(DB(qmagent/${CALLERID(num)})=${AGENTID})
exten => _422XXXX,6,Macro(queuelog,${EPOCH},${UNIQUEID},NONE,Agent/${AGENTID},HOTDESK,SIP/${CALLERID(num)})
exten => _422XXXX,7,AddQueueMember(${EXTEN:3:4},SIP/${CALLERID(num)})
exten => _422XXXX,8,SayDigits(${AGENTID})
exten => _422XXXX,9,Playback(agent-loginok)
exten => _422XXXX,10(end),Hangup
; Remove Member - 423
exten => _423XXXX,1,Answer
exten => _423XXXX,2,set(DEL_AGENT=${DB_DELETE(qmagent/${CALLERID(num)})})
exten => _423XXXX,3,RemoveQueueMember(${EXTEN:3:4},SIP/${CALLERID(num)})
exten => _423XXXX,4,Playback(agent-loggedoff)
exten => _423XXXX,5,Hangup
; extension 32: agent pause with hotdesking (with pause code)
exten => _32XX,1,Answer
exten => _32XX,2,set(AGENTCODE=${DB(qmagent/${CALLERID(num)})})
exten => _32XX,3,NoOp( "QM: Pausing Agent/${AGENTCODE} at extension SIP/${CALLERID(num)} with pause reason '${EXTEN:2:2}' made by '${QM_LOGIN}' " )
exten => _32XX,4,PauseQueueMember(,SIP/${CALLERID(num)})
exten => _32XX,5,System( echo "${EPOCH}|${UNIQUEID}|NONE|Agent/${AGENTCODE}|PAUSEREASON|${EXTEN:2:2}" >> /var/log/asterisk/queue_log )
exten => _32XX,6,Playback(dictate/paused)
exten => _32XX,7,Hangup
; extension 33: agent unpause with hotdesking
exten => 33,1,Answer
exten => 33,2,NoOp( "QM: Unpausing Agent/${AGENTCODE} at extension SIP/${CALLERID(num)} made by '${QM_LOGIN}' " )
exten => 33,3,UnpauseQueueMember(,SIP/${CALLERID(num)})
exten => 33,4,Playback(dictate/pause)
exten => 33,5,Playback(removed)
exten => 33,6,Hangup

These need to be added to your extensions_custom.conf file in a context that’s included in the from-internal  context.

Also a change has to be made to the dialplans in the extensions_queuemetrics.conf to store and delete the database entry as well.

The system has proved to deliver what was expected and will shortly be expanded to track outbound calls and the addition of custom wallboards similar to what we recently produced for another customer.

If you would like to talk about adding QueueMetrics to your Asterisk system or are looking for a complete phone system and queuemetrics platform please contact us.