Categories
Case Studies

Multi-Site Multi-Country Asterisk network

UPDATE

We have recently added the 5th system to the customers international VoIP network. This system was for their Polish office and is linked to their Tokyo, Sydney, Singapore and London office systems.

Globe

For this site a Sangoma FREEPBX 60 system was chosen for ease of remote deployment and reliability.    The Tokyo & Sydney offices already has a Xorcom XR2000 systems whilst the London and Singapore offices have a Openvox  Asterisk solutions.  .

xe2000-xe3000

For the New International offices FreePBX systems were chosen as they provide a full turnkey system that can be sent out to the office plugged in. The systems initially obtain their IP address by DHCP and once a port is forwarded through the firewall to this address a fixed IP address is assigned and the customer firewall updated. Access to The GUI is by a SSH tunnel so that other than a random port for SSH and a port for IAX2 no other ports need to be opened on the customer firewall. Endpoint manager makes the deployment of handsets on the remote systems a simple and reliable process.

All systems have been linked by IAX2 trunks and the dial-plan configured so that desk to desk calls can be made between all offices and outgoing calls break out of the closest geographic system, for example a user in Sydney making a call to a UK number will have the call originate from the London system and the same goes for Tokyo, Singapore and Polish users calling UK or international numbers.

The network of systems is key to the support of the customers 24×7 support service. This is controlled by a dial-plan that is complicated by the fact that Japan does not have “Daylight saving” so even though the calls land on the UK system we had to configure the dial-plan to take into account local time in Tokyo and not base routing solely on UK time.  This has proved reliable and very successful.

All systems on the network are monitored 24×7 by our Nagios monitoring platform, Not only monitoring Asterisk but also monitoring the status of the international IAX2 trunks.

 

Categories
Asterisk Support Elastix Support Knowledge Base Technical

Running a Macro on answer for Asterisk queues.

asteriskThe Asterisk Queue application has an option that will run a macro on answer, This can be very useful when integrating with CRM such as Capsule or call centre applications.

This option isnt included in freepbx, Though this can be hand coded it isn’t best to do this when using Elastix, AsteriskNoW or any other freepbx based system.

To add this option We have written a couple of patched versions of the relevant freepbx pages that can be downloaded here , You will also need to add a extra field to the mysql database as follows

  1. Log in to mysql:   mysql -u root -p
  2. Enter password
  3. mysql> use asterisk
  4. mysql> ALTER TABLE `queues_config` ADD `qmacro` VARCHAR( 255 ) NULL;
  5. mysql> describe queues_config;

You should now have something like this:- | qmacro | varchar(255) | YES | | NULL | | as the last line of the table.

Now download the tar file and unpack it. then copy the two files to the /var/www/html/admin/modules/queues directory.

On loading the queue page in freepbx you will now have the “Queue macro on answer” box

queuemacro

In this box you put the macro name you wish to run when a member answers a call.

For example:-

[macro-logit]
exten => s,1,Noop( capsule crm intergration ${crminfo} ${CALLERID(all)})
exten => s,n,Set(foo=${CURL(http://127.0.0.1/directory/capsual.php?strCallid=${crminfo})})
exten => s,n,Noop(${foo})
exten => s,n,Hangup()

This a simple dialplan that runs a php script to log calls to the capsule crm

capsual.php

<?php
$today = date(“F j, Y, g:i a”);
$duedate1 = date(“Y-m-d”);
$duedate2 = date(“H:i:s”);
$Token = ‘YOUR CAPSUAL API CODE’;
$number = $_GET[‘strCallid’];
$datetime = $today;
$duedate = “$duedate1″.”T”.”$duedate2″.”Z”;
echo $duedate;
$myxml=”<?xml version=”1.0″ encoding=”UTF-8″?>n
<task>n
<description>Call recieved from $number at $datetime. Please update and assign this task if required</description>n
<dueDateTime>$duedate</dueDateTime>n
<category>incoming call</category>n
</task>”;
// The URL to connect with (note the /api/ that’s needed and note it’s person rather than party)
// SEE: http://capsulecrm.com/help/page/api_gettingstarted/
$capsulepage = “https://youraccount.capsulecrm.com/api/task”;
echo $capsulepage;
echo $number;
// Initialise the session and return a cURL handle to pass to other cURL functions.
$ch = curl_init($capsulepage);
// set appropriate options NB these are the minimum necessary to achieve a post with a useful response
// …can and should add more in a real application such as
// timeout CURLOPT_CONNECTTIMEOUT
// and useragent CURLOPT_USERAGENT
$options = array(CURLOPT_USERPWD => “$Token:x”,
CURLOPT_HTTPHEADER => array(‘Content-Type: application/xml’),
CURLOPT_HEADER => true,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_POST => true,
CURLOPT_POSTFIELDS => $myxml
);
curl_setopt_array($ch, $options);
// Do the POST and collect the response for future printing etc then close the session
$response = curl_exec($ch);
$responseInfo = curl_getinfo($ch);
curl_close($ch);
echo $responseInfo;
echo $response;
?>

Have fun

 

Categories
Knowledge Base Technical

Flushing your sendmail queue.

Whenever sendmail has to deliver mails to other hosts which cannot be reached at that time, the messages are kept in the queue and are marked as “Deferred: Connection timed out”. Although the other hosts could be reached again and you want to tell sendmail to flush the mail queue, the command

sendmail -q -v

does not really try to reconnect to these hosts and still assumes that the connection timed out. The reason is that the hoststatus is cached, per default for a period of 30 minutes. Using

sendmail -OTimeout.hoststatus=0m -q -v

you can re-run the mail queue and force sendmail to reconnect to the hosts. You may want to define an alias for that, say, ‘sendmail-flush-timeouts’.

You can set further options in /etc/sendmail.cf.

Categories
Knowledge Base

How to transfer the directory of your Gigaset phone

With your Gigaset phone you can easily transfer your directory as a vCard to an internal device or via Bluetooth to an external device.

Find more Tutorials here: http://www.gigaset.com/tutoriallibrary
Or visit Them on Facebook: http://www.facebook.com/gigaset

 

Categories
Knowledge Base

ETHERACCESS LA210

The unit is referred to as the Network Termination Equipment (NTE) or RAD box.

It is used to ‘bond’ the multiple lines that are used on an EFM connection into one circuit. There are RJ45 Network ports on the rear that allow you to plug your own equipment such as routers in.

Front View

The front of the LA-210 includes LED lights that can indicate the state of the unit and the connection.

LA210_front

Rear view

The LA-210 has 4 RJ-45 network ports that the you can plug your own router into.

LA210_rear

ls120led LED STATUS


Categories
Knowledge Base Technical

Skype for SIP name to DDI with Asterisk

When using Skype for SIP trunks with Asterisk a simple an neat way to enable DDI calling for the skype names is to use the “extension” option.
This means that the ‘To’ in in the sip header is set to what you set.

This can then be picked out with a simple little bit of dialplan

exten => 99051000000000,1,Set(CALLERID(num)=${CALLERID(name)})
exten => 99051000000000,2,Set(cNum=${SIP_HEADER(TO):5:6})
exten => 99051000000000,3,Noop(${cNum})
exten => 99051000000000,4,Goto(from-pstn,${cNum}|1)

In the above example we have 6 digit ddi numbers in the context from-pstn.

Setting up the Skype end is as simple as logging into your BCP and then the relevent profile and clicking on the calling tab

and setting as below

Image

This lets you now use one account and have all your BCP accounts have DDI calls directed at the PBX

Categories
Knowledge Base

Installing Asterisk 11 on Centos 6.3

asteriskThis is a short video tutorial on the installation of Asterisk 11, I have included the blog and video in one place for ease of viewing

First, you will want to be sure that your server OS is up to date.

yum update -y

Disable SELinux by changing “enforcing” to “disabled” in /etc/selinux/config. Use a text editor or copy and paste this command.

sed -i s/SELINUX=enforcing/SELINUX=disabled/g /etc/selinux/config

After you update and disable SELinux, you’ll need to reboot.

reboot

Next, you will want to resolve basic dependencies. (More information on Asterisk dependencies.)

yum install -y make wget openssl-devel ncurses-devel  newt-devel libxml2-devel kernel-devel gcc gcc-c++ sqlite-devel

Change into the /usr/src/ directory to store your source code.

cd /usr/src/

Download the source tarballs. These commands will get the current release of DAHDI 2.6, libpri 1.4 and Asterisk 11.

wget http://downloads.asterisk.org/pub/telephony/dahdi-linux-complete/dahdi-linux-complete-current.tar.gz
wget http://downloads.asterisk.org/pub/telephony/libpri/libpri-1.4-current.tar.gz
wget http://downloads.asterisk.org/pub/telephony/asterisk/asterisk-11-current.tar.gz

Extract the files from the tarballs.

tar zxvf dahdi-linux-complete*
tar zxvf libpri*
tar zxvf asterisk*

For the next set of commands it is important to follow the proper order: DAHDI first, then libpri, then Asterisk.

Install DAHDI.

cd /usr/src/dahdi-linux-complete*
make && make install && make config

Install libpri.

cd /usr/src/libpri*
make && make install

Change to the Asterisk directory.

cd /usr/src/asterisk*

In the next step, running the “configure” script will vary depending on whether your system is 32-bit or 64-bit. (Watch the video for more details.) When the menuselect command runs, select your options, then choose “Save and Exit” and the install will continue.

Use this command if you are installing Asterisk on 32bit CentOS.

./configure && make menuselect && make && make install

Use this command if you are installing Asterisk on 64bit CentOS.

./configure --libdir=/usr/lib64 && make menuselect && make && make install

Optional: If you ran into errors you will want to clean the install directory before recompiling.

make clean && make distclean

Once you have an error-free install, copy the sample files from the configs subdirectory into /etc/asterisk.

make samples

Then add the Asterisk start script to the /etc/init.d/ directory

make config

Start DAHDI.

service dahdi start

Start Asterisk.

service asterisk start

Connect to the Asterisk CLI.

asterisk -rvvv

And now you have Asterisk 11 running on CentOS 6!

Original Article written by Billy Chia @ digium

Categories
Elastix Support Knowledge Base

Setting up extensions in Elastix

Elastix Asterisk IPPXThis is a short video on the setting up of extensions on the Elastix Asterisk based IPPX.

 

Categories
Knowledge Base

VoIP – Per Call Bandwidth

These protocol header assumptions are used for the calculations:

  • 40 bytes for IP (20 bytes) / User Datagram Protocol (UDP) (8 bytes) / Real-Time Transport Protocol (RTP) (12 bytes) headers.
  • Compressed Real-Time Protocol (cRTP) reduces the IP/UDP/RTP headers to 2or 4bytes (cRTP is not available over Ethernet).
  • 6 bytes for Multilink Point-to-Point Protocol (MP) or Frame Relay Forum (FRF).12 Layer 2 (L2) header.
  • 1 byte for the end-of-frame flag on MP and Frame Relay frames.
  • 18 bytes for Ethernet L2 headers, including 4 bytes of Frame Check Sequence (FCS) or Cyclic Redundancy Check (CRC).

Note: This table only contains calculations for the default voice payload

Codec Information Bandwidth Calculations
Codec & Bit Rate (Kbps) Codec Sample Size (Bytes) Codec Sample Interval (ms) Mean Opinion Score (MOS) Voice Payload Size (Bytes) Voice Payload Size (ms) Packets Per Second (PPS) Bandwidth MP or FRF.12 (Kbps) Bandwidth w/cRTP MP or FRF.12 (Kbps) Bandwidth Ethernet (Kbps)
G.711 (64 Kbps) 80 Bytes 10 ms 4.1 160 Bytes 20 ms 50 82.8 Kbps 67.6 Kbps 87.2 Kbps
G.729 (8 Kbps) 10 Bytes 10 ms 3.92 20 Bytes 20 ms 50 26.8 Kbps 11.6 Kbps 31.2 Kbps
G.723.1 (6.3 Kbps) 24 Bytes 30 ms 3.9 24 Bytes 30 ms 33.3 18.9 Kbps 8.8 Kbps 21.9 Kbps
G.723.1 (5.3 Kbps) 20 Bytes 30 ms 3.8 20 Bytes 30 ms 33.3 17.9 Kbps 7.7 Kbps 20.8 Kbps
G.726 (32 Kbps) 20 Bytes 5 ms 3.85 80 Bytes 20 ms 50 50.8 Kbps 35.6 Kbps 55.2 Kbps
G.726 (24 Kbps) 15 Bytes 5 ms 60 Bytes 20 ms 50 42.8 Kbps 27.6 Kbps 47.2 Kbps
G.728 (16 Kbps) 10 Bytes 5 ms 3.61 60 Bytes 30 ms 33.3 28.5 Kbps 18.4 Kbps 31.5 Kbps
G722_64k(64 Kbps) 80 Bytes 10 ms 4.13 160 Bytes 20 ms 50 82.8 Kbps 67.6Kbps 87.2 Kbps
ilbc_mode_20(15.2Kbps) 38 Bytes 20 ms NA 38 Bytes 20 ms 50 34.0Kbps 18.8 Kbps 38.4Kbps
ilbc_mode_30(13.33Kbps) 50 Bytes 30 ms NA 50 Bytes 30 ms 33.3 25.867 Kbps 15.73Kbps 28.8 Kbps

Explanation of Terms

Codec Bit Rate (Kbps) Based on the codec, this is the number of bits per second that need to be transmitted to deliver a voice call. (codec bit rate = codec sample size / codec sample interval).
Codec Sample Size (Bytes) Based on the codec, this is the number of bytes captured by the Digital Signal Processor (DSP) at each codec sample interval. For example, the G.729 coder operates on sample intervals of 10 ms, corresponding to 10 bytes (80 bits) per sample at a bit rate of 8 Kbps. (codec bit rate = codec sample size / codec sample interval).
Codec Sample Interval (ms) This is the sample interval at which the codec operates. For example, the G.729 coder operates on sample intervals of 10 ms, corresponding to 10 bytes (80 bits) per sample at a bit rate of 8 Kbps. (codec bit rate = codec sample size / codec sample interval).
MOS MOS is a system of grading the voice quality of telephone connections. With MOS, a wide range of listeners judge the quality of a voice sample on a scale of one (bad) to five (excellent). The scores are averaged to provide the MOS for the codec.
Voice Payload Size (Bytes) The voice payload size represents the number of bytes (or bits) that are filled into a packet. The voice payload size must be a multiple of the codec sample size. For example, G.729 packets can use 10, 20, 30, 40, 50, or 60 bytes of voice payload size.
Voice Payload Size (ms) The voice payload size can also be represented in terms of the codec samples. For example, a G.729 voice payload size of 20 ms (two 10 ms codec samples) represents a voice payload of 20 bytes [ (20 bytes * 8) / (20 ms) = 8 Kbps ]
PPS PPS represents the number of packets that need to be transmitted every second in order to deliver the codec bit rate. For example, for a G.729 call with voice payload size per packet of 20 bytes (160 bits), 50 packets need to be transmitted every second [50 pps = (8 Kbps) / (160 bits per packet) ]

 

Bandwidth Calculation Formulas

These calculations are used:

  • Total packet size = (L2 header: MP or FRF.12 or Ethernet) + (IP/UDP/RTP header) + (voice payload size)
  • PPS = (codec bit rate) / (voice payload size)
  • Bandwidth = total packet size * PPS
Categories
Knowledge Base Support

24×7 Asterisk server monitoring with Nagios.

We offer an economical solution for end users and resellers to monitor their Asterisk and Linux servers.

Our platform monitors servers 24 hours a day 7 days a week. Hosted in a state of the art US based data centre with connections to major UK data centres and multiple connections to the internet.

We offer different levels of monitoring from simple uptime and email alerts to system load, disk space and channel usage with email and SMS notification. Web panel and firefox/Chrome plugin available to all levels to view system status.

The service is primarily aimed at Asterisk based IPPBX server but we can monitor other Linux based servers and Mitel systems as well. Our checks on Asterisk servers were customised by us to allow easy and secure deployment as we only require SSH access to make checks and this is secured by server keys. 

Nagios monitor screen

 

Service levels

Silver Level £10 setup – £2.50 per month £25.00 per year

  • Single Server, 4 services from list below & email alerts.
  • Ping test
  • SIP/IAX Peer availability
  • Asterisk channels
  • ISDN availability
  • Disk Space
  • System Load
  • Heartbeat Status
  • SIP/IAX2 registration status
  • Mitel SNMP Alarm status

Gold Level £10 setup per server – £5.00 per month £50.00 per year

  • Upto 2 Servers, 4 services per server, email and SMS alerts by subscription

In addition to the silver list:-

  • Asterisk Database status
  • Custom checks, (cost for design may be inured)

Additional options.

SMS alerts by arrangement, if using Gradwell Numbers and outbound we can integrate with the SMS API

Extra contact £5 setup

Extra server £10 setup £2.50 per month £25 per year

Extra service £5 setup £0.50 per month £5 per year

Partner options are available, Please contact us for details.  Pdf  download cymon