Categories
Handsets

Gigaset A690HX handset

The Gigaset A690HX DECT handset replaces the popular A540H. Featuring a 2″ graphical display, the A690HX is compatible with both the N300IP and N510IP Gigaset DECT base stations making it easy to add to existing systems. Positioned as the entry-level handset in the range, the A690HX offers an intuitive device at a low price point, ideal for small to medium sized businesses.

Boasting a long talk time of up to 12 hours and a standby time of up to 180 hours, the A690HX can also double up as a baby monitor with intercom function.

A69HX

Features

  • 2″ 96 x 64 pixel backlit display
  • Handsfree
  • Alarm clock feature
  • Baby monitor function
  • Phonebook with capacity to store up to 150 contacts
  • HD Voice with selectable Ringtones
  • Call block function for up to 32 numbers
  • Ergonomic keypad made of high quality material
  • Up to 12 hours talk time
  • Up to 180 hours standby time
  • Integrates with Gigaset DECT Base stations: N300IPN510IP
  • Gigaset ECO Mode
  • 2 year warranty
Categories
FreePBX Knowledge Base Security Support Technical

Freepbx 15 /16 module exploits. Action required

If you have any Freepbx 15 servers you need to check the restapps and userman modules
https://community.freepbx.org/t/0-day-freepbx-exploit/80092

you need to make sure you are running at LEASTrestapps 15.0.20 and userman 15.0.67 anything newer use scripts below to downgrade 

Now fixed versions in repositories

Useman 15.0.67 is the fix version

[root@pbx ~]# fwconsole ma list |grep userman
| userman | 15.0.67 | Enabled | AGPLv3+ |
[root@pbx ~]# crontab -l -uasterisk |grep userman
*/15 * * * * [ -e /usr/sbin/fwconsole ] && sleep $((RANDOM\%30)) && /usr/sbin/fwconsole userman --syncall -q

For restapps see https://wiki.freepbx.org/display/FOP/2021-12-21+SECURITY%3A+Potential+Rest+Phone+Apps+RCE

But fixed version is

  • > restapps v15.0.20
  • > restapps v16.0.19


Simple scripts to check and update are 

fwconsole ma list |grep restapps
Anything older than 15.0.20

fwconsole ma downloadinstall restapps --tag 15.0.20
fwconsole ma list |grep restapps
fwconsole chown
fwconsole r

and 

In the userman reversion note that you need to install again after the downloadinstall , This removes the offending line from crontab

fwconsole ma list |grep userman
crontab -l -uasterisk |grep userman

The above checks the cron jobs for the offending line then if older than 15.0.67 then update as below

fwconsole ma downloadinstall userman --tag 15.0.67
fwconsole ma install userman
fwconsole chown
fwconsole r
Categories
Knowledge Base Products and services

Reseting Gigaset Bases

This information is for N300 and N510 Bases

The reset of Gigaset Dect base will wipe out all the settings of the base including the configuration file.

Below are the steps you should follow:

  • Disconnect the base from the LAN network switch and remove the power supply (if you are not using POE).
  • Press and hold the registration/paging key.
  • If you are using POE then connect the base to the POE switch otherwise connect the power supply to the base.
  • Press and hold the registration/paging key for at least 20 seconds.
  • Release the registration/paging key and it will reset the base to factory settings.
Categories
Asterisk Support Knowledge Base Products and services Technical

Gradwell IP Address ranges

At Gradwell, they send internet traffic from different addresses (known as IP addresses) to allow their telephony systems to work smoothly. Below is the list of IP addresses where their VoIP (Voice over IP) traffic will come from. It’s important that your firewall allows traffic from these addresses however they recommend you don’t set it to allow only from these, just that they are included.

The reason they say don’t allow only these addresses is that there network is dynamic and may shift or new items added and we don’t want this to affect your service.

There are a couple of things you should do to ensure you get the most from the Gradwell Voice services:

  • Check your firewall filtering – is there anything being excluded?
    • If yes – Allow the IP range traffic – this will most likely be in your firewall settings or tools (they all differ so they can’t exactly point you there)
    • If no – you’re good to go
  • If you use UDP traffic then you’ll need to allow Media ports (known as RTP) with the numbers 1024 to 65535

Current ranges as of summer 2021

109.224.232.0/22 109.224.232.0 to 109.224.235.255
109.224.240.0/22 109.224.240.0 to 109.224.243.255
109.239.96.132/31 109.239.96.132 to 109.239.96.133
141.170.24.21/31 141.170.24.21 to 141.170.24.22
141.170.24.5/31 141.170.24.5 to 141.170.24.6
141.170.50.16/28 141.170.50.16 to 141.170.50.31
185.47.148.0/24 185.47.148.0 to 185.47.148.255
194.145.188.224/27 194.145.188.224 to 194.145.188.255
194.145.189.52/31 194.145.189.52 to 194.145.189.53
194.145.190.128/26 194.145.190.128 to 194.145.190.191
194.145.191.128/27 194.145.191.128 to 194.145.191.159
195.74.60.0/23 195.74.60.0 to 195.74.61.255
213.166.3.128/26 213.166.3.129 - 213.166.3.190
213.166.4.128/26 213.166.4.129 - 213.166.4.190
213.166.5.0/24 213.166.5.0 to 213.166.5.255
78.40.243.192/27 78.40.243.192 to 78.40.243.223
87.238.72.128/26 87.238.72.128 to 87.238.72.191
87.238.73.128/26 87.238.73.128 to 87.238.73.191
87.238.74.128/26 87.238.74.128 to 87.238.74.191
87.238.77.128/26 87.238.77.128 to 87.238.77.191

To simplify things a bit listed below are the ranges in common formats.

Rules for Freepbx Custom file “firewall-4.rules”

-A fpbxreject -s 109.224.232.0/22 -p udp -m udp --dport 4569:5270 -j ACCEPT
-A fpbxreject -s 109.224.240.0/22 -p udp -m udp --dport 4569:5270 -j ACCEPT
-A fpbxreject -s 109.239.96.132/31 -p udp -m udp --dport 4569:5270 -j ACCEPT
-A fpbxreject -s 141.170.24.21/31 -p udp -m udp --dport 4569:5270 -j ACCEPT
-A fpbxreject -s 141.170.24.5/31 -p udp -m udp --dport 4569:5270 -j ACCEPT
-A fpbxreject -s 141.170.50.16/28 -p udp -m udp --dport 4569:5270 -j ACCEPT
-A fpbxreject -s 185.47.148.0/24 -p udp -m udp --dport 4569:5270 -j ACCEPT
-A fpbxreject -s 194.145.188.224/27 -p udp -m udp --dport 4569:5270 -j ACCEPT
-A fpbxreject -s 194.145.189.52/31 -p udp -m udp --dport 4569:5270 -j ACCEPT
-A fpbxreject -s 194.145.190.128/26 -p udp -m udp --dport 4569:5270 -j ACCEPT
-A fpbxreject -s 194.145.191.128/27 -p udp -m udp --dport 4569:5270 -j ACCEPT
-A fpbxreject -s 195.74.60.0/23 -p udp -m udp --dport 4569:5270 -j ACCEPT
-A fpbxreject -s 213.166.3.128/26 -p udp -m udp --dport 4569:5270 -j ACCEPT
-A fpbxreject -s 213.166.4.128/26 -p udp -m udp --dport 4569:5270 -j ACCEPT
-A fpbxreject -s 213.166.5.0/24 -p udp -m udp --dport 4569:5270 -j ACCEPT
-A fpbxreject -s 78.40.243.192/27 -p udp -m udp --dport 4569:5270 -j ACCEPT
-A fpbxreject -s 87.238.72.128/26 -p udp -m udp --dport 4569:5270 -j ACCEPT
-A fpbxreject -s 87.238.73.128/26 -p udp -m udp --dport 4569:5270 -j ACCEPT
-A fpbxreject -s 87.238.74.128/26 -p udp -m udp --dport 4569:5270 -j ACCEPT
-A fpbxreject -s 87.238.77.128/26 -p udp -m udp --dport 4569:5270 -j ACCEPT

Rules for IPtables file

-A INPUT -s 109.224.232.0/22 -p udp -m udp --dport 4569:5270 -j ACCEPT
-A INPUT -s 109.224.240.0/22 -p udp -m udp --dport 4569:5270 -j ACCEPT
-A INPUT -s 109.239.96.132/31 -p udp -m udp --dport 4569:5270 -j ACCEPT
-A INPUT -s 141.170.24.21/31 -p udp -m udp --dport 4569:5270 -j ACCEPT
-A INPUT -s 141.170.24.5/31 -p udp -m udp --dport 4569:5270 -j ACCEPT
-A INPUT -s 141.170.50.16/28 -p udp -m udp --dport 4569:5270 -j ACCEPT
-A INPUT -s 185.47.148.0/24 -p udp -m udp --dport 4569:5270 -j ACCEPT
-A INPUT -s 194.145.188.224/27 -p udp -m udp --dport 4569:5270 -j ACCEPT
-A INPUT -s 194.145.189.52/31 -p udp -m udp --dport 4569:5270 -j ACCEPT
-A INPUT -s 194.145.190.128/26 -p udp -m udp --dport 4569:5270 -j ACCEPT
-A INPUT -s 194.145.191.128/27 -p udp -m udp --dport 4569:5270 -j ACCEPT
-A INPUT -s 195.74.60.0/23 -p udp -m udp --dport 4569:5270 -j ACCEPT
-A INPUT -s 213.166.3.128/26 -p udp -m udp --dport 4569:5270 -j ACCEPT
-A INPUT -s 213.166.4.128/26 -p udp -m udp --dport 4569:5270 -j ACCEPT
-A INPUT -s 213.166.5.0/24 -p udp -m udp --dport 4569:5270 -j ACCEPT
-A INPUT -s 78.40.243.192/27 -p udp -m udp --dport 4569:5270 -j ACCEPT
-A INPUT -s 87.238.72.128/26 -p udp -m udp --dport 4569:5270 -j ACCEPT
-A INPUT -s 87.238.73.128/26 -p udp -m udp --dport 4569:5270 -j ACCEPT
-A INPUT -s 87.238.74.128/26 -p udp -m udp --dport 4569:5270 -j ACCEPT
-A INPUT -s 87.238.77.128/26 -p udp -m udp --dport 4569:5270 -j ACCEPT
Categories
Handsets Products and services

Sangoma P310 and P315

These phones are very competitively priced; and are perfect for anyone that needs reliable, basic calling functionality or needs a lot of phones either in one place or over a distributed set of large-facility locations. 

However, you can be rest assured that they are manufactured to very high standards and have all the qualities you would expect in more expensive models.

With these two new phones you can utilise essential Unified Communications features without sacrificing the function and performance that is usually only available with more expensive IP phones!

Want a closer look? Watch the first P315 being unboxed in Europe! Contact us for how you too can get your hands on the P310 or P315 and for bulk pricing.

Unboxing the P3xx handsets

Categories
Products and services

FreeStats Installation

Installing FreeStats requires a good working knowledge of Asterisk and Freepbx. Documented here is the step by step process.

 
 To install Asterisk FreeStats you need:

 Enable writing queue logs to the MySQL database through ODBC . (more: Asterisk: queue _log in MySQL via unixODBC )
 Set the username and password of the database in the Asterisk 

Call Center Stats config.
 Let's turn on the Asterisk queue log in the MySQL database 
 By default, queue statistics data is saved to the queue_log file. 
 Let's assign a MySQL database table for data storage - asteriskcdrdb.queuelog
 CREATE TABLE IF NOT EXISTS asteriskcdrdb.queuelog (
  id INT NOT NULL AUTO_INCREMENT,
  time char (32) DEFAULT NULL,
  callid char (64) DEFAULT NULL,
  queuename char (64) DEFAULT NULL,
  agent char (64) DEFAULT NULL,
  event char (32) DEFAULT NULL,
  data char (64) DEFAULT NULL,
  data1 char (64) DEFAULT NULL,
  data2 char (64) DEFAULT NULL,
  data3 char (64) DEFAULT NULL,
  data4 char (64) DEFAULT NULL,
  data5 char (64) DEFAULT NULL,
  PRIMARY KEY (id)
  ) ENGINE = MyISAM DEFAULT CHARSET = utf8;
 CREATE TABLE IF NOT EXISTS agents_new (
  id MEDIUMINT NOT NULL AUTO_INCREMENT,
  agent char (64) DEFAULT NULL,
  PRIMARY KEY (id)
  ) ENGINE = MyISAM DEFAULT CHARSET = utf8;
 CREATE TABLE IF NOT EXISTS queues_new (
  id MEDIUMINT NOT NULL AUTO_INCREMENT,
  queuename char (64) DEFAULT NULL,
  PRIMARY KEY (id)
  ) ENGINE = MyISAM DEFAULT CHARSET = utf8; 

We have included in the download a file to do this for you. to install it just run the following command
mysql -ufreepbxuser -pSECRECT  < ./freestats.sql
 
In the /etc/asterisk/asterisk.conf file , add to the options section:
 [options]
 queue_adaptive_realtime=yes
 
 edit /etc/asterisk/logger_general_custom.conf 
 and add
 
queue_adaptive_realtime = yes
queue_log_to_file = yes
queue_log => odbc,asteriskcdrdb,queuelog

In the realtime configuration file /etc/asterisk/extconfig_custom.conf, we define the driver, family, and target table:
[settings]
queue_log => odbc,asteriskcdrdb,queuelog 
; where asterisk is the db config, for example in /etc/asterisk/res_odbc_custom.conf

In freepbx the following are already set you just need to add the settings to /etc/asterisk/extconfig_custom.conf as above

If extconfig.conf does not exist, create it with the command: 
touch /etc/asterisk/extconfig.conf 
and set permissions:
chown asterisk.  /etc/asterisk/extconfig.conf 
/etc/asterisk/res_odbc_custom.conf 
[asteriskcdrdb]
enabled => yes
dsn => asteriskcdrdb
username => dbuser
password => dbpass
pre-connect => yes 

where is DSN , settings from file
/etc/odbc.ini 
[asteriskcdrdb]
Description = MySQL connection to 'asteriskcdrdb' database
driver = MySQL
server = localhost
database = asteriskcdrdb
Port = 3306
Socket = /var/lib/mysql/mysql.sock 
 
Apply configuration with 

asterisk -rx 'core restart now'
 
NOTE 'core restart now' - drops all current calls
Check the connection of Asterisk with the database through odbc :
asterisk -rx 'odbc show'
ODBC DSN Settings
Name:   asteriskcdrdb
DSN:    MySQL-asteriskcdrdb
Number of active connections: 3 (out of 5)
Logging: Disabled

Now move freestats and set permissions:
mv freestats /var/www/html/
Asterisk FreeStats config 
 
Edit the config.php file according to your data, where
 $ DBServer - host (localhost)
 $ DBUser - DB user.
 $ DBPass - DB Password.
 $ DBName - DB name.
 $ DBTable - The name of the database table.
 example:
 $ DBServer = 'localhost' ;
 $ DBUser = 'freepbxuser' ;
 $ DBPass = 'STRONG_SECRET' ;
 $ DBName = 'asteriskcdrdb' ;
 $ DBTable = 'queuelog' ; 

Open statistics in your favorite web browser:
http(s)://ip.address/freestats
To add agents and queues, click the appropriate buttons: 
Sync : 
The query will fetch the unique names of agents and queues and place them in the agents_new and queues_new tables . 
In order for entities to appear , there must be at least one entry in the queuelog table about the incoming call to the queue. 
In the future, if you have new agents or queues, simply synchronize the data to display statistics on them. Call data is saved regardless of synchronization, because the Asterisk queue logger is responsible for this.
FreePBX conversation recordings in the statistics interface 
To display conversation records in statistics, copy the following context into the /etc/asterisk/extensions_override_freepbx.conf file. 
The example shows the context [sub-record-check] of FreePBX Distro 14.
extensions_override_freepbx.conf
Or modify the context from your system in the same way by adding a custom queue event - REC . 
exten = > recordcheck, n, Queuelog ( recordcheck, $ {UNIQUEID} , NONE, REC, $ {CALLFILENAME} ) 
 You cannot edit the FreePBX context directly in the extensions_additional.conf file, but you can put the modified version in extensions_override_freepbx.conf
If you use Asterisk 'clean' , you can do the same in the context of calling the queue by adding instead of the ${CALLFILENAME} variable the name of the conversation recording file in accordance with the scheme you use. 
Additional information about queue log and QueueLog () command.
 
Authorization through accounts FreePBX 
To enable authorization with the password FreePBX, uncomment the following code in the config.php file and change the password freepbxpassword to the password of your installation. The password can be viewed in the /etc/asterisk/res_odbc_additional.conf file (for the latest freepbx versions).

Configure AMI and AJAM for Realtime module 
The php-curl package must be installed. 
The ajam_cookie file must be created in the root directory of the application:
touch ajam_cookie && chmod 777 ajam_cookie 
Asterisk  needs to have AJAM  enabled  /etc/asterisk/manager.conf
as below in freepbx go to advanced settings and set "Enable Static Content" to yes 
[general]
 enabled = yes
 port = 5038
 bindaddr = 0.0.0.0
  webenabled = yes
  httptimeout = 60 
 create user AMI
 [ajamuser]
  secret = PASSWORD
  deny = 0.0.0.0/0.0.0.0
  permit = 127.0.0.1/255.255.255.0
  read = system, agent, reporting
  write = system, agent, reporting 
 
and enable the built-in http server in 
 
/etc/asterisk/http.conf
 [general]
  enabled = yes
  enablestatic = yes
  bindaddr = 0.0.0.0
  bindport = 8088
  prefix = asterisk 
 To test AJAM Interface is active 
  freepbx * CLI> http show status 
  HTTP Server Status:
  Prefix: / asterisk
  Server: Asterisk / 15.5.0
  Server Enabled and Bound to 0.0.0.0:8088
 HTTPS Server Enabled and Bound to [::]: 8089
 Enabled URI's:
  / asterisk / httpstatus => Asterisk HTTP General Status
  / asterisk / amanager => HTML Manager Event Interface w / Digest authentication
  / asterisk / arawman => Raw HTTP Manager Event Interface w / Digest authentication
  / asterisk / manager => HTML Manager Event Interface
  / asterisk / rawman => Raw HTTP Manager Event Interface
  / asterisk / static / … => Asterisk HTTP Static Delivery
  / asterisk / amxml => XML Manager Event Interface w / Digest authentication
  / asterisk / mxml => XML Manager Event Interface
  / asterisk / ws => Asterisk HTTP WebSocket
 Enabled Redirects:
    None.
 Finally, set the data to connect to AMI / AJAM in the application config.php file :
 $ config [ 'urlraw' ] = 'http://127.0.0.1:8088/asterisk/rawman' ;
  $ config [ 'admin' ] = 'ajamuser' ;
  $ config [ 'secret' ] = 'PASSWORD' ;
  $ config [ 'authtype' ] = 'plaintext' ;
  $ config [ 'cookiefile' ] = null ;
  $ config [ 'debug' ] = false ; 
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
Products and services Software

FreeStats

FreeStats is a re-write and expansion of the original call center stats package from Asternic hoprfully giving it a fresh look and some features requested by users.

There is additional information for managers including integration of CDR for calls and comparison of calls and a search function.

The statistics are ‘live’ as the system uses mysql storage of queue records and not the parsing of the logfile that in the case of the original package had to be “Cron’d”

The screenshots of the package here show the refreshed user interface and additional pages.

The Search function lets you search the DB for the call uniqueID or callerID number then displaying all items in the queue logs and the realtime page is rewritten to work with modern Asterisk versions and the updated versions of AMI and Ajam for control of agents.

The package for downloading includes full installation instructions that can be viewed here and sql file for creating the mysql DB. An additional option is to limit access to the application by changing the config.php so that the Administrator logins can be used for allowing access to the system.

Download the Source here

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.