Categories
Blog Knowledge Base

Gamma’s Gateway migration and SIP issues

Over the last few weeks and possibly going on for a few more Gamma Telecom are migrating users from their MSX SBCs to their ‘new’ SWe SBCs, and as side effect of this change is that they now do not support non-symetrical nat translation of RTP traffic

Their previous SBCs and like many other carriers do not have an issue with this and in the words of Twilio’s notes below they support both methods

** When Symmetric RTP is enabled Twilio will detect where the remote RTP stream is coming from and start sending RTP to that destination instead of the one negotiated in the SDP. Please note that this setting is more vulnerable to RTP attacks.

When Symmetric RTP is disabled, Twilio will send RTP to the destination negotiated in the SDP. This setting is considered to be more secure and therefore recommended.

On making support calls to Gamma initially they just seem to tell users that the RTP is being sent from a port that isn’t specified in the SDP, and yes that is correct, But Gamma being Gamma and even though they will have had numerous calls they don’t go any further

It seems the problem is with the customer firewalls in particular pfSense:

By default, pfSense software rewrites the source port on all outgoing connections except for UDP port 500. Some operating systems do a poor job of source port randomization, if they do it at all. This makes IP address spoofing easier and makes it possible to fingerprint hosts behind the firewall from their outbound traffic. Rewriting the source port eliminates these potential (but unlikely) security vulnerabilities. Outbound NAT rules, including the automatic rules, will show  in the Static Port column on rules set to randomize the source port.

Source port randomization breaks some rare applications. The default Automatic Outbound NAT ruleset disables source port randomization for UDP 500 because it will almost always be broken by rewriting the source port. Outbound NAT rules which preserve the original source port are called Static Port rules and have  on the rule in the Static Port column. All other traffic has the source port rewritten by default.

To add a rule for a device which requires static source ports:

  • Navigate to Firewall > NATOutbound tab
  • Select Hybrid Outbound NAT rule generation
  • Click Save
  • Click  to add a new NAT rule to the top of the list
  • Configure the rule to match the traffic that requires static port, such as a source address of a PBX.
  • Check Static Port in the Translation section of the page
  • Click Save
  • Click Apply Changes

After making that change, the source port on outgoing traffic matching the rule will be preserved. **The best practice is to use strict rules when utilizing static port to avoid any potential conflict if two local hosts use the same source port to talk to the same remote server and port using the same external IP address.**

Personally I would just make this change for the UDP port range and not all UDP ports as this could cause problem with traffic such a port 5060 when multiple servers or phones are on a site.

We have also been made aware of another issue with respect to call diversion to external numbers. By deafault Asterisk and many other IP PBXs set a diversion header in the 181 message giving the device that diverted the call and reason. in most cases this will be the extension number so the header will look like:

 Diversion: <sip:477@aaa.bbb.ccc.ddd>;reason=unconditional

This seems to cause issues at Gamma and they reject the call as it seems they are setting the callerid from this info.

To overcome this issue for chan_sip set ‘send_diversion = no’ in the general setting of sip.conf or in the “Other SIP Settings” fields in the Advanced sip setting menu. For PJSIP add it to the pjsip.endpoint_custom_post.conf file as below.

[PJSIPTwilio](+)
send_diversion=no

[GRAMMA_TEST](+)
send_diversion=no

And this seems to solve the problem.

To be honest we have only seen the problem with Gamma trunks and having tested with other suppliers and found they are not affected.

Gammas reson for this is as follows: “After reviewing the divert packet, I can see in the message header that the Diversion header is set to divert to “477”. I would recommend to change this to the full CLI you wish to forward the call to as I believe the system is trying to call “477” which wouldn’t be classed as a valid number. The 603 error you are seeing from your side would be in relation to OFCOMS national number length violation.”

See the Packet below

Session Initiation Protocol (181)
    Status-Line: SIP/2.0 181 Call is being forwarded
        Status-Code: 181
        [Resent Packet: False]
        [Request Frame: 22149]
        [Response Time (ms): 187]
    Message Header
        Via: SIP/2.0/UDP xxx.yyy.aaa.zzz:5060;branch=z9hG4bK04B82da620259a59a1a;received=xxx.yyy.aaa.zzz;rport=5060
            Transport: UDP
            Sent-by Address: xxx.yyy.aaa.zzz
            Sent-by port: 5060
            Branch: z9hG4bK04B82da620259a59a1a
            Received: xxx.yyy.aaa.zzz
            RPort: 5060
        From: <sip:01234567890@xxx.yyy.aaa.zzz>;tag=gK0441ee4f
            SIP from address: sip:01234567890@xxx.yyy.aaa.zzz
            SIP from tag: gK0441ee4f
        To: <sip:07890123456@aaa.bbb.ccc.ddd>;tag=as24643c1b
            SIP to address: sip:07890123456@aaa.bbb.ccc.ddd
            SIP to tag: as24643c1b
        Call-ID: 71571273_130153708@xxx.yyy.aaa.zzz
        [Generated Call-ID: 71571273_130153708@xxx.yyy.aaa.zzz]
        CSeq: 321899 INVITE
            Sequence Number: 321899
            Method: INVITE
        Server: FPBX-16.0.40.7(18.9)
        Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, SUBSCRIBE, NOTIFY, INFO, PUBLISH, MESSAGE
        Supported: replaces, timer
        Session-Expires: 1800;refresher=uas
        Contact: <sip:07890123456@aaa.bbb.ccc.ddd:5060>
            Contact URI: sip:07890123456@aaa.bbb.ccc.ddd:5060
                Contact URI User Part: 07890123456
                Contact URI Host Part: aaa.bbb.ccc.ddd
                Contact URI Host Port: 5060
        Diversion: <sip:477@aaa.bbb.ccc.ddd>;reason=unconditional
        Content-Length: 0

Now the RFC says :

“When a diversion occurs, a Diversion header SHOULD be added to the forwarded request or forwarded 3xx response. The Diversion header MUST contain the Request-URI of the request prior to the diversion. The Diversion header SHOULD contain a reason that the diversion occurred.”

Which is what happens, Gamma seem to have confused what the diversion header does as they seem to assume its setting the diversion destination or outbound caller ID, Neither of which are the uses for the Diversion header.

‘I will add updates here as and when they become available.’

Categories
Applications Blog Knowledge Base Products and services

Transcribing voicemails to text with Amazon AWS

For this project we are going to use the Amazon AWS Transcribe service, AWS Transcribe is a cloud-based speech recognition service that converts audio recordings into accurate text transcripts. It uses advanced machine learning algorithms to identify different speakers and punctuation, while also supporting a variety of audio formats and languages. AWS Transcribe can transcribe audio from sources such as phone calls, video recordings, and live streams, making it a versatile tool thats idealy suited for voicemail transcription, The service is highly scalable and cost-effective.

We will say that we used to use Google’s Text to speech engine for thsi but over time I would have expected quality of transcription to have improved, But with Google this is not the case, and I expect this is because they possibly use “predictive” text to speech and not sample all the words as this example below shows, This is the same audio fed to Google and AWS

Amazon AWS Transcribe

Um, this is Ian. I’d like to order some pizza for tomorrow, please. We would like to order a pepperoni pizza and a mozzarella pizza that’s for  tomorrow at five PM. Thank you.

Google Speech to Text

like to order some pizza for tomorrow please would like to order a pepperoni pizza and a mozzarella Pizza Hut for tomorrow at 5 a.m. thank you

As can be seen google misses words and adds others, As you can imagine this isnt what you want with speech transcription.

So we have switched out old script to use AWS.

For this project on Freepbx you need a few extra applications added and a amazon aws account, setting this up is not covered here as you should already have knowledge of this if you are here.

The extra apps are , aws , jq , sox

to get aws :

curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"
unzip -qq awscliv2.zip
./aws/install

Then you need to configure as 'root' and as 'asterisk', so:
aws configure
fill out your aws key and token as well as the region your bucket is in 
Then repeat as 'asterisk' so
su asterisk
aws configure
and fill out same details.

for jq and sox, just yum install xxx as you would for any other program.

Next you need the asterisk dialplan added to the extensions_custom.conf

[vmail2text]
exten => _XXXX,1,Set(__EXTTOCALL=${EXTEN})
exten => _XXXX,n,Noop(${EXTTOCALL})
exten => _XXXX,n,Goto(s,1)

exten => s,1,Answer()  ; Listen to ringing for 1 seconds
exten => s,n,Set(AGC(rx)=8000)
exten => s,n,Set(DENOISE(rx)=on)
exten => s,n,Noop(${EXTTOCALL} , ${DIALSTATUS} , ${SV_DIALSTATUS})
exten => s,n,GotoIf($["${DIALSTATUS}"="BUSY"]?busy:bnext)
exten => s,n(busy),Set(greeting=busy)
exten => s,n,Goto(carryon)
exten => s,n(bnext),GotoIf($["${DIALSTATUS}"="NOANSWER"]?unavail:unext)
exten => s,n(unavail),Set(greeting=unavail)
exten => s,n,Goto(carryon)
exten => s,n(unext),Set(greeting=unavail)
exten => s,n,Goto(carryon)

exten => s,n(carryon),Set(origmailbox=${EXTTOCALL})
exten => s,n,Set(msg=${STAT(e,${ASTSPOOLDIR}/voicemail/default/${origmailbox}/${greeting}.wav)})
exten => s,n,Set(__start=0)
exten => s,n,Set(__end=0)
exten => s,n,NoOp(${UNIQUEID})
exten => s,n,Set(origdate=${STRFTIME(${EPOCH},,%a %b %d %r %Z %G)})
exten => s,n,Set(origtime=${EPOCH})
exten => s,n,Set(callerchan=${CHANNEL})
exten => s,n,Set(callerid=${CALLERID(num)})
exten => s,n,Set(origmailbox=${origmailbox})
exten => s,n,Answer()
exten => s,n,GotoIf($["${msg}"="1"]?msgy:msgn)
exten => s,n(msgy),Playback(${ASTSPOOLDIR}/voicemail/default/${origmailbox}/${greeting});(local/catreq/how_did)
exten => s,n,Goto(beep)
exten => s,n(msgn),Playback(vm-intro)
exten => s,n(beep),System(/bin/touch /var/lib/asterisk/sounds/catline/${UNIQUEID}.wav)
exten => s,n,Playback(beep)
exten => s,n,Set(__start=${EPOCH})
exten => s,n,Record(catline/${UNIQUEID}.wav,3,60,kaqu)
exten => s,n,Playback(beep)
exten => s,n,Hangup()
exten => h,1,Noop(${start} ${end})
exten => h,n,GotoIf($["${start}"!="0"]?ok:end)
exten => h,n(ok),Set(end=${EPOCH})
exten => h,n,Set(duration=${MATH(${end}-${start},int)})
exten => h,n,System(/usr/local/sbin/vmailprox.sh "${callerchan}" ${callerid} "${origdate}" ${origtime} ${origmailbox} ${UNIQUEID} ${duration})
exten => h,n(end),Noop(finished)

as can be seen this dialplan records a file and then runs the vmailprox.sh script. This script collects the variables and passes them over to the main script and exits after doing so, this is so channels aren’t held while transcription takes place. (Thats the plan anyway)

#!/bin/sh
callerchan=$1
callerid=$2
origdate=$3
origtime=$4
origmailbox=$5
origdir=$6
duration=$7
export callerchan
export callerid
export origdate
export origtime
export origmailbox
export origdir
export duration

nohup /usr/local/sbin/quietvmail.sh &
exit

Main script

#!/bin/sh
PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
S3_BUCKET="YOURS3BUCKET"
DIRPATH=/var/spool/asterisk/voicemail/default/
#callerchan=$1
#callerid=$2
#origdate=$3
#origtime=$4
#origmailbox=$5
#origdir=$6
#duration=$7
counter=1
sleep 4

FILENUM=$(/bin/ls ${DIRPATH}${origmailbox}/INBOX |/bin/grep txt | /usr/bin/wc -l)

##Added to allow 999 messages
if  (( $FILENUM <= 9 ));
then
FILENAME=msg000${FILENUM}
elif (( $FILENUM <= 99 ));
then
FILENAME=msg00${FILENUM}
else
FILENAME=msg0${FILENUM}
fi

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

/bin/echo "[message]" >> ${DIRPATH}${origmailbox}/INBOX/${FILENAME}.txt
/bin/echo origmailbox=${origmailbox} >> ${DIRPATH}${origmailbox}/INBOX/${FILENAME}.txt
/bin/echo "context=demo" >> ${DIRPATH}${origmailbox}/INBOX/${FILENAME}.txt
/bin/echo "macrocontext=" >> ${DIRPATH}${origmailbox}/INBOX/${FILENAME}.txt
/bin/echo "exten=s" >> ${DIRPATH}${origmailbox}/INBOX/${FILENAME}.txt
/bin/echo "priority=11" >> ${DIRPATH}${origmailbox}/INBOX/${FILENAME}.txt
/bin/echo callerchan=${callerchan} >> ${DIRPATH}${origmailbox}/INBOX/${FILENAME}.txt
/bin/echo callerid=${callerid} >> ${DIRPATH}${origmailbox}/INBOX/${FILENAME}.txt
/bin/echo origdate=${origdate} >> ${DIRPATH}${origmailbox}/INBOX/${FILENAME}.txt
/bin/echo origtime=${origtime} >> ${DIRPATH}${origmailbox}/INBOX/${FILENAME}.txt
/bin/echo msg_id=${origtime}-00000001  >> ${DIRPATH}${origmailbox}/INBOX/${FILENAME}.txt
/bin/echo "flag="  >> ${DIRPATH}${origmailbox}/INBOX/${FILENAME}.txt
/bin/echo "category=" >> ${DIRPATH}${origmailbox}/INBOX/${FILENAME}.txt
/bin/echo "duration=${duration}" >> ${DIRPATH}${origmailbox}/INBOX/${FILENAME}.txt

    /bin/nice /usr/bin/lame -b 16 -m m -q 9-resample /var/lib/asterisk/sounds/catline/${origdir}.wav  /tmp/${origdir}.mp3

    # Create a string based on the current date and time
    current_date_time="$(date +%Y-%m-%d_%H-%M-%S)"

    # Upload to the S3 Bucket

    aws --debug --profile default s3 cp /tmp/${origdir}.mp3 s3://$S3_BUCKET/$current_date_time

    # Start the transcription job
    output=$(aws --profile default transcribe start-transcription-job \
    --transcription-job-name $current_date_time \
    --language-code en-GB \
    --media-format mp3 \
    --media MediaFileUri=s3://$S3_BUCKET/$current_date_time \
    --output-bucket-name $S3_BUCKET)

    # Wait for the transcription to finish
    JOB_COMPLETED=false
    while [ "$JOB_COMPLETED" = false ]; do
        JOB_STATUS=$(aws --profile default transcribe get-transcription-job \
            --transcription-job-name $current_date_time \
            --query 'TranscriptionJob.TranscriptionJobStatus' \
            --output text)
            
        if [ "$JOB_STATUS" = "FAILED" ]; then
                JOB_COMPLETED=true
                SHORT_CALL=yes
                /bin/echo "$JOB_STATUS"    >> /tmp/logfile.txt
                break
        fi

        if [ "$JOB_STATUS" = "COMPLETED" ]; then
                /bin/echo "$JOB_STATUS"    >> /tmp/logfile.txt
                JOB_COMPLETED=true
        else

        ((counter++))
        sleep 5
        echo $counter    >> /tmp/logfile.txt
        /bin/echo "$JOB_STATUS"    >> /tmp/logfile.txt
                
                if [ "$counter" -eq  "15" ]; then
                JOB_STAUS=COMPLETED
                JOB_COMPLETED=true
                SHORT_CALL=yes
                break
                fi
        fi
    done


    # Get the transcription result
    aws s3 --profile default cp s3://$S3_BUCKET/$current_date_time.json /tmp/$current_date_time.json 

    # Get the transcription result
    FILTERED=$(jq -r '.results.transcripts[].transcript' /tmp/$current_date_time.json)
                   
        # append result of transcription
        if [ -z "$FILTERED" ]
        then
          echo "(AWS was unable to recognize any speech in audio data.)" >> /tmp/${origdir}.txt
        else
          echo "$FILTERED" >> /tmp/${origdir}.txt
          sed -i 's/ Um,/ /gI' /tmp/${origdir}.txt
        fi

voicemailbody=$(cat "/tmp/${origdir}.txt")

# echo "body ${voicemailbody}"

/bin/cp /var/lib/asterisk/sounds/catline/${origdir}.wav ${DIRPATH}${origmailbox}/INBOX/${FILENAME}.wav

echo -e "You have a new voicemail from ${callerid} it was left on ${origdate} and is ${duration} seconds long,\nThe message left,\n\n${voicemailbody}\n\nTranscribed by the Amazon AWS Transcribe service\n" | /bin/mail -s "A new voicemail has arrived from ${callerid}" -a "/tmp/${origdir}.mp3" "$email"

/bin/rm -f /tmp/${origdir}.mp3
/bin/rm -f /tmp/${origdir}.txt
aws --profile default transcribe delete-transcription-job --transcription-job-name $current_date_time

Then to pass calls to this and not normal voicemail, In Freepbx create a Custom Destination as “vmail2text,s,1” and if you require certain queues to go to specific mailboxes for example 2000 one like “vmail2text,2000,1” so calls will be sent to mailbox 2000 and teh transcriptions will be sent to the email address linked to that extension

Then in extensions that want to use transcription set the “Optional Destinations” in the advanced tab to the custom destination.

Users also can listen to voicemail normally from their handset or the ucp.

These scripts arent only useful for voicemail then can be used fro questionnaire lines and booking lines, anywhere you want to speed up the handling of voice messages. We will soon be looking at ways of integrating this with Whatsapp so transcriptions can be sent to your mobile.

If you have any further questions please email.

Categories
Products and services

Sangoma Desktop Softphone

Sangoma Desktop Softphone turns a user’s computer into a fully featured phone that is primed to take full advantage of all of Sangoma’s unified communications features.

Sangoma Desktop Softphone For Desktop turns a user’s computer into a fully featured phone that is primed to take full advantage of all of Star2Star’s unified communications features. Sangoma Desktop Softphone lets users make, answer, hold, and transfer calls, participate in voice conferencing, access voicemail, integrate calls with CRM software, and more.

Features

  • Workforce Flexibility: Your staff will no longer be tethered to one location, allowing employees to work remotely while expanding your potential pool of employees to a much greater geographic area.
  • Cost Savings: Instead of purchasing a computer and a desk phone, you can just purchase a computer and a headset, saving hundreds or even thousands of dollars with softphone software.
  • Efficiency: Employees can stay in contact on the go or from home, softphones allow them to respond faster. Even better, Desktop Softphone allows them to take advantage of our many powerful features that will go anywhere they go, unlike a traditional mobile phone that lacks much of this functionality.
  • Incredible Functionality: With Desktop Softphone, your employees have access to a complete unified communications system at their keyboard, meaning they can do it all wherever they are.
  • Business Voice & Business Voice+ Compatible: Use Desktop Softphone with either of the Full Spectrum Communications platforms for the ultimate flexibility.

Email or Call for current licence pricing

Categories
Gigaset Handsets Products and services

Gigaset SL700

The S700H is the perfect all round DECT handset for daily use. Whether that be in a professional office environment or a busy hotel, the S700H stands out from the rest. With a large 2.4” TFT display that fits comfortably in hand, the S700H offers high quality audio in a scratch and disinfectant resistant IP40 protective casing.

With a separately programmable alarm-button, built-in Bluetooth 4.2 and integrated 3.5mm jack connection, the S700H offers a multitude of additional features and functions. Not to mention an extended talk time of up to 13 hours.

The S700H is available as a hotel option. Allowing for more control over the features available on the S700H. Including blocking soft key programming, deactivated Bluetooth menu, voicemail deactivation and time-controlled data deletion such as call lists.

Feature highlights
• Large illuminated 2.4″ TFT colour display
• Intuitive user interface for easy operation
• Headset operation via Bluetooth® 4.2 or 3.5mm jack
• Separately programmable alarm button
• Audio profiles can be selected quickly using a separate key
• Side buttons for volume adjustment during the
Conversation
• IP40 protection class and tightness against metal dust
• Handsfree with brilliant HDSP ready TM/CAT -IQ 2.01
Acoustic quality and high maximum volume
• Hotel option – automatic deletion of sensitive data
• SUOTA – Software update via the air interface
• Scratch and disinfectant resistant
• Local telephone book with search function and up to 500
vCards and access to the company telephone book via PBX
(XML, LDAP)2
• Data exchange via Bluetooth® or Micro-USB
• Vibrating alarm
• No ringing in the charging cradle adjustable for parallel call
• Key lock with PIN protection
• Charging:
• Up to 12h talk time
• Up to 300h standby time
• Charging also via Micro-USB connection
• Charging cradle included free of charge
• Full compatibility with the professional Gigaset DECT
Single and multi-cell systems

Email or Call for current pricing and qty discounts

Categories
Handsets Products and services Sangoma Phones

P-Series IP Phones

Sangoma’s line of P-Series phones are designed to deliver the features you need, at price points perfect for every type of user, and every type of business.

All models include color screens, high definition voice, are headset-ready, provide unprecedented plug-and-play deployment, and have built-in productivity applications including voicemail, call log, contacts, phone status, user presence, parking and more.

Sangoma’s P-Series phones are the only phones that are compatible across Sangoma’s communications as a service portfolio, further enhancing their value.

Entry-Level – The Sangoma P310/P315 Phones
Sangoma’s value-line is perfect for large floor deployments in offices, schools, manufacturing, and retail.
Mid-Range – The Sangoma P320, P325, P330 Phones
Perfect for knowledge workers, with built-in business applications*, controlled via a large 4.3-inch IPS display and plenty of programmable function keys. The P330 also supports built-in Bluetooth and WiFi as well as the forthcoming PM200 expansion module.
Executive – The Sangoma P370 Phone (coming soon!)
For the executives in the office who demand a sleek desktop presence, the P370 delivers. With a large 7.0” 1280×800 color IPS touchscreen display, built-in Bluetooth and WiFi, all of Sangoma’s business applications* are easy-to-use with finger-touch access.

Email or Call for current pricing and qty discounts

Categories
Products Sangoma Software

Zulu UC – The Ultimate Desktop and Softphone integration for your Business

Zulu UC Desktop and softphone integration unifies the most popular business communication tools & applications enhancing user productivity and mobility. Designed specifically for FreePBX and PBXact phone systems, Zulu enables features such as:

  • Zulu Softphone enabling users to make/receive phone calls from their desktop or mobile stations, including Chat for team collaboration.
  • Faxing directly from the Zulu widget & softphone.
  • Click-to-call to make calls directly from your web browser and /or email client.
  • Call Pop for CRM and help desk integration.

Get Your Free Zulu 2 User FreePBX License, FreePBX Zulu UC 2 User Package is Free of Charge. Each User Package comes with 2 users good for 12 months.

Features


Click to Call

With Click-to-Call integration, users can instantly call any phone number that is seen on their web browser or MS Outlook client which a click!. Simply click on the phone number and Zulu will initiate an outbound call via the softphone client or your desk phone, whichever is with you at the time. Great for mobile users who come and go from their workstation.

Click-to-Call also recognizes extensions and phone number prefixes, so you never have to worry about having to modify the phone number or extension you wish to click to dial.

Call Pop

Ideal for CRM and Help Desk Integration, Call Pop will automatically open your desktop web browser on an inbound call with all the information of the caller. This feature helps users expedite phone calls and provide the caller with the best customer service experience.

* For additional CRM integration check out our CRM Link Module

Presence

Improve communication between staff members by allowing them to see each other’s presence via the Zulu Softphone. This feature can save your employees time by reaching out to members who they know are available to take their request.

Users can set their presence using a variety of pre-set statuses or create their own. And because Presence is server side, a user’s presence will be updated across all communication endpoints automatically too.

Zulu Softphone

At the Center of the Zulu is the all new softphone enabling users to take their office with them and never miss a call.

  • Make and receive phone calls using Desktop
  • Send and receive FAX*
  • Control Presence status which will update your status on all your devices
  • Flexible Calling Options- generate a phone call from either the client on your desktop or your desk phone. Great for mobile users who come and go from their workstation.

Faxing requires the Fax Pro Module

Chat

The Zulu UC Softphone features integrated Chat functionality so that staff members can communicate with each other more effectively. Features like 1-to-1 messaging, group chat, file transfer and auto-archiving will improve employee collaboration and improve business results. Finally, one tool to do it all!

*Compatibility
Operating System: Zulu UC is compatible with Windows, Mac and Linux operating Systems. Browsers: Click-to-call and Screen POP work with Firefox and Chrome (Safari coming soon).

Categories
Gateways Products

Vega VoIP digital gateways

The Most Resilient VoIP Digital Gateways in Their Class

Vega VoIP digital gateways are small appliances that seamlessly connect your legacy telephony infrastructure, made up of PRI (T1, E1) or BRI lines, to IP networks. They are great for businesses with legacy phone equipment (such as a TDM PBX) who want to connect to SIP trunking services without having to spend money altering their current network infrastructure. They are also great for businesses that are already VoIP enabled at the core (with an IP-PBX) that need PSTN connectivity and require a SIP-to-TDM converter. Simply place the Vega VoIP Digital Gateway at the edge of your network, plug in your existing internet cable for VoIP connectivity and E1,T1 or BRI cables from your phone system and let the Vega VoIP Digital Gateway automatically handle the SIP signalling and voice media conversion for seamless voice and T.38 Fax integration.

Advanced Web GUI
Features an intuitive Quick Wizard which does all the hard work for you for new deployments. Flexible dialplan to allow you to make your own routes, including automatic failure detection with failover routing.

Diagnostic Tools
Web GUI based PCAP tracing tool to capture full signaling and media, eliminating the need to connect equipment for line tracing, fully compatible with wireshark.

Low and High Density Models
The Vega 100G and Vega 200G are our low density models with a maximum capacity for 30 and 60 SIP-TDM simultaneous calls. The Vega 400G is our high density model and the most flexible field upgradable unit for a maximum capacity of 120 simultaneous SIP-TDM calls.

E1/T1 & BRI Interface
Each E1/T1 interface (for Vega 100G, 200G, 400G) and BRI interface (Vega 50 BRI) can be independently configured as network side or terminal side. The Vega gateway can therefore be connected to a PBX or the PSTN.

Built-in Local Survivability
In the event of a WAN failure, IP phones behind the Vega gateway can continue to call each other, be routed to a backup switch or connected directly to the PSTN.

Vega VoIP Digital Gateway Models


Vega VoIP Digital Gateways are one of the most reliable fault tolerant SIP-to-TDM media Gateways on the market, sized for your business needs. All Sangoma hardware carries a one year warranty with options to extend.

Vega 50 BRI

Sangoma’s Vega 50 BRI VoIP Digital Gateways are a 2-4-8 port BRI appliance for up to 16 simultaneous BRI calls

 

  • Web GUI for configuration and troubleshooting
  • Featuring Quick Wizard for rapid d
    eployment
  • Onboard DSP for media translation
  • Interoperable with most legacy and VoIP carriers worldwide
  • Advanced flexible call routing with automatic failover and bypass routing
  • Built in Local Suitability in the case of WAN failure

Vega 100G

Sangoma’s Vega 100G VoIP Digital Gateways are a single port T1/E1/PRI appliance supporting up to 30 simultaneous calls.

 

  • Web GUI for configuration and troubleshooting
  • Featuring Quick Wizard for rapid deployment
  • Onboard DSP for media translation
  • Interoperable with most legacy and VoIP carriers worldwide
  • Advanced flexible call routing with automatic failover and bypass routing
  • Built in Local Suitability in the case of WAN failure

Vega 200G

Sangoma’s Vega 200G VoIP Digital Gateways are a dual port T1/E1/PRI appliance supporting up to 60 simultaneous calls.

 

  • Web GUI for configuration and troubleshooting
  • Featuring Quick Wizard for rapid deployment
  • Onboard DSP for media translation
  • Interoperable with most legacy and VoIP carriers worldwide
  • Advanced flexible call routing with automatic failover and bypass routing
  • Built in Local Suitability in the case of WAN failure

Vega 400G

Sangoma’s Vega 400G VoIP Digital Gateways are a quad port T1/E1/PRI supporting up to 120 simultaneous calls.

 

  • Web GUI for configuration and troubleshooting
  • Field upgradable licensing
  • Dedicated bypass ports for High availability
  • Support for Private Wire or Point-to-Point applications
  • Onboard DSP for media translation
  • Interoperable with most legacy and VoIP carriers worldwide
  • Advanced flexible call routing with automatic failover and bypass routing

For me details see Here 

Categories
Asterisk Support Blog Design FreePBX Knowledge Base Software

G.729 Goes Royalty Free

G.729 – IMPORTANT INFORMATION

As of January 1, 2017 the patent terms of most Licensed Patents under the G.729 Consortium have expired.

With regard to the unexpired Licensed Copyrights and Licensed Patents of the G.729 Consortium Patent License Agreement, the Licensors of the G.729 Consortium, namely Orange SA, Nippon Telegraph and Telephone Corporation and Université de Sherbrooke (“Licensors”) have agreed to license the same under the existing terms on a royalty-free basis starting January 1, 2017.

For current Licensees of the G.729 Consortium Patent License Agreement, no reports and no payments will be due for Licensed Products Sold or otherwise distributed as of January 1, 2017.

For other companies selling G.729 compliant products and that are not current Licensees of the G.729 Consortium, there is no need to execute a G.729 Consortium Patent License Agreement since Licensors have agreed to license the unexpired Licensed Copyrights and Licensed Patents of the G.729 Consortium Patent License Agreement under the existing terms on a royalty-free basis starting January 1, 2017.

As soon as we hear how this is going to affect Digium Asterisk we will update here.

 

Categories
Blog Design FreePBX Knowledge Base

Voice recognition and Asterisk.

This is primarily about Googles new Cloud Speech API and Asterisk recordings.

Having worked on many Voice rec systems including Mitels attendant system, Oranges Wildfire virtual assistance and Lumenvox’s add on for Digium’s Asterisk system one thing none could do was transcribe speech such as voicemails and this is what people want. There was a startup in the UK called Spinvox  but as anyone knows this wasn’t all it seems and when I questioned them while working on a project they clammed up and withdrew our testing account and the rest is history as they say.

So now we are many years on and Google have their second API for this service. The first API was a little flaky to say the least and came up with some amusing translations. The cloud version is much better and does a good job with most voice and also can be localised.

So what have we done. Well we have mixed together some existing code we use and created a “mini voicemail” that records your message converts it to text saves it as a voicemail and emails the resultant Text and recording to you.  In the process we did find a few “gotchas” with the API for example a pause of more than a couple of seconds will result in the translation stopping there, also a big one is that the translation takes as long as the recording is, and the API has a 60 second limit. Both of these can be overcome by limiting the record time in Asterisk to 60 seconds and using sox to remove silence of more than a second.

exten => s,n,Record(catline/${UNIQUEID}.wav,3,60,kaq)
/usr/bin/sox /var/lib/asterisk/sounds/catline/${origdir}.wav ${PATH}${origmailbox}/INBOX/${FILENAME}.flac  lowpass -2 2500 silence -l 1 0.1 1% -1 0.8 1% 

As you can see from these snippits of code above we have used variables where possible to that it can be incorporated easily with existing asterisk systems using GUIs such as Freepbx, We use the voicemail greetings that the user recorded and also use the email address thats linked with their mailbox for simplicity of management.

Now having Voicemails as text is nice but where it comes into its own is with structured mailboxes or simply put questionnaires where the caller is asked a number of predefined questions and these are recorded as one single voicemail. We already do this for some customers but they still have to have some one transcribe teh voicemail to text to input it. The quality of the Google translation means that soon they will be able to just copy the text over. Other applications are only limited by your imagination, Such as automated voice menus for Takeaways or Taxi firms.

To be Continued…HERE

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.