Quantcast
Viewing all 47 articles
Browse latest View live

Welcome to the CommPeak Blog!


We’re thrilled to launch CommPeak’s much-anticipated VoIP termination blog. Our brand new site is up and running and we’re already busy as a bee with new clients all over the world, which means this blog will serve as our venue for sharing important VoIP news, updates and tips.



New to CommPeak? Let us show you around
If this is your first time visiting CommPeak.com, let us give you a warm welcome and a brief introduction to who we are and what we do. CommPeak is a leading global provider of premium wholesale VoIP termination to companies of all sizes including providers, call centers and businesses worldwide. Our rates are highly competitive, and our professional know-how as well as industry experience allow us to offer the absolute best service there is.

Thanks to our powerful network of industry leading partners, your customers, service providers and customer service representatives will be connected effortlessly regardless of any varying devices used in the process. We invite you to learn more about CommPeak’s A-Z voice termination range of services
.

What do CommPeak clients get?
Glad you asked.  Business clients joining the CommPeak family enjoy powerful technology and voice capabilities as well as other account benefits tailored to each client’s needs. Some of the main benefits include:

  • Premium A-Z termination
  • Powerful account control panel
  • Toll-free origination
  • Flexible scalability
  • Highly competitive rates
  • Full redundancy and quality CLI routes
  • 24/7 comprehensive support

We offer all these and many more features because as former IT and VoIP professionals, we at CommPeak want to ensure that our offered service makes businesses big and small grow in a way that is both prosperous and inexpensive.

So what is this blog about?
We plan on posting here about twice a week, each time with a different interesting topic related to our business VoIP services, including technological issues that concern the wholesale VoIP termination umbrella. In addition, we will touch on relevant industry issues.

In the meantime we invite you to explore our super-fresh wholesale voice termination website where you can read more on what we do, see our global POP coverage and discover what kind of services we offer to a large variety of business segments.


Wanna know SIP? Read the RFC!

Image may be NSFW.
Clik here to view.
RFC 3261
RFC 3261
When I first configured Asterisk a few years back, it took me a lot of time to set it up properly because of many technical issues I experienced: echo, jitter, authentication issues, caller id problems, IAX vs. SIP (Pick SIP), NAT, dial plan and what not.

From WikipediaIn computer network engineering, a Request for Comments (RFC) is a memorandum published by the Internet Engineering Task Force (IETF) describing methods, behaviors, research, or innovations applicable to the working of the Internet and Internet-connected systems.


Many new comers to VoIP who decide to mess with Asterisk usually deal with the same problems I dealt with, and usually making a basic interconnection comes with some pain and quite a bit of debugging.
So sure, you have www.voip-info.org which is an excellent reference on VoIP, and you have plenty of forums and nowadays you even have an official Digium Asterisk Documentation.

All of that is excellent, but the one thing I regret not doing in the first place, prior to messing with, reading about and beating my head off over the asterisk conf files is the SIP RFC.

RFC 3261 ("SIP: Session Initiation Protocol") is the bible of SIP, the most popular signalling protocol for VoIP today. If you don't like the text version, you can find HTML and PDF versions as well. While RFC are usually highly technical documents created by engineers for engineers, this particular RFC comes with a very nice introduction on how SIP works. Once you become familiar with the terminology of the RFC, I promise you, things will become much simpler.

With that, you can find other useful references about VoIP and networking here below:


Have you seen our brand new VoIP termination website? Visit us today!

Understanding Asterisk Failover SIP Peers: Part 1


Image may be NSFW.
Clik here to view.
When running a call-center setup where you strive to be 100% available at all times, it is important not to assume that your PBX, Internet links or even VoIPcarrier will be 100% reliable.


In this post, we will try to explain why it's important to have multiple SIP peers and to use a secondary SIP peer properly.

When configuring Asterisk, it is possible to activate a feature for each SIP peer called "qualify". This feature acts as a keep-alive mechanism (SIP OPTIONS) and makes sure your peer is always up and responds in the expected manner - ping measurement. When your sip peer is not responding or its ping latency is too high, Asterisk will mark the peer as LAGGED and will act as a failed response (DIALSTATUS=CHANUNAVAIL).

So your SIP peer should look something like this:
; sip.conf entry
; CommPeak Tokyo POP
[commpeak-jp]
type=peer
host=tokyo.sip.commpeak.com
qualify=130 ; Our average ping is 85ms
username=123
password=456
disallow=all
allow=g729
allow=ulaw
context=commpeak

So what happens now is, if tokyo.sip.commpeak.com will have ping latency higher than 130ms or no reply it all, Asterisk won't bother using it and therefore there won't be any delays when initiating Dial() calls to it. This will make sure that both your SIP peer is alive and is in proper shape, and it won't cause any unplanned delays in your dial-plan execution in case something goes wrong. 

Now we'll want to have a fail-over SIP peer, so let's write our secondary SIP peer:

; sip.conf entry
; CommPeak Singapore POP
[commpeak-sg]
type=peer
host=singapore.sip.commpeak.com
qualify=150 ; Our average ping is 100ms
username=123
password=456
disallow=all
allow=g729
allow=ulaw
context=commpeak

People normally do the following in order to have a fail-over:
exten => _X.,1,Noop("Sending calls through CommPeak")
exten => _X.,n,Dial(SIP/commpeak-jp/${EXTEN}
exten => _X.,n,Dial(SIP/commpeak-sg/${EXTEN}

The problem with this approach is that if the number to which you dialed is simply BUSY or any other status not related to the health of your SIP peer, then this would still engage a second call through the second peer.

A more proper way to do this would be to read the DIALSTATUS code and only engage with the second peer if DIALSTATUS=CHANUNAVAIL, please see the multiple examples in VoIP-Info as there are multiple ways of doing this, based on your dialplan (either by using Macro, GotoIf or AEL2 logic).


Want to learn more? Here are some relevant references:
Want to find out more about CommPeak's tech capabilities? Stop by CommPeak.com and read more about our powerful wholesale VoIP services.


A Simple Way to Hunt Down Broken Links on Your Website


As you already know, we recently launched our new VoIP termination website, and we try to keep it updated, good-looking, fashionable and in good style! With all the hard work, there are times when you make simple link changes to your website and you perform a complete site automation test with tools such as Selenium.

We wanted a way to automate testing for broken links after new version deployments of the site (we are using Capistrano for deployments) so we needed a simple web crawler to automate the tests - wget:


wget --mirror --no-directories --delete-after \ http://www.example.com 2> ./examplecom-wgetlog.txt
This will tell wget to mirror an entire site and dump stdout to examplecom-wgetlog.txt.
Once completed, you can then do the following to print out the errors:

cat examplecom-wgetlog.txt | grep -B4 ERROR
This will simply show to you stuff like:
--2012-08-28 12:21:04--  http://www.commpeak.com/robots.txt
Connecting to www.commpeak.com|108.162.194.180|:80... connected.
HTTP request sent, awaiting response... 404 Not Found
2012-08-28 12:21:04 ERROR 404: Not Found.
And now, for the fun part, we made a simple cronjob to monitor our modified file timestamp (mtime) and if it changes, we run a script that runs the wget test and if it finds errors (grep returns 0) it will mail us the report so we can fix it immediately.

#!/bin/bash
#
# Simple script to run wget in order to catch 404 and other annoying stuff.
#

MAILTO="you@domain.example"

CMDLINE='wget --verbose --mirror --no-directories --delete-after domain.example'
LOGFILE="/tmp/.$RANDOM.wgetlog.txt"

# This tracks the mtime of index.php when last test was last made.
TRACKFILE="/tmp/.domain.lastdeploytest"
FILETOTRACK="/var/www/index.html"

# We wanna make sure nobody but us can mess with this file.
umask 077
if [ ! -e "$TRACKFILE" ]; then
/usr/bin/env touch $TRACKFILE
/usr/bin/env chmod 600 $TRACKFILE
/usr/bin/env expr `/usr/bin/env stat -c %Y $FILETOTRACK` - 100 >$TRACKFILE
fi

TRACKDATA=`cat $TRACKFILE`
if [ `/usr/bin/env stat -c %Y $FILETOTRACK` = $TRACKDATA ]; then
# Our track data matches the timestamp of deployed file, no need to run test again.
echo "$TRACKFILE timestamp matches $FILETOTRACK, no work is necessary."
exit -1
fi

/usr/bin/env rm -f $LOGFILE
if [ $? != "0" ]; then
/usr/bin/env echo "Fatal: unable to delete $LOGFILE"
exit 1
fi

/usr/bin/env touch $LOGFILE
/usr/bin/env chmod 600 $LOGFILE
/usr/bin/env echo Running: $CMDLINE
/usr/bin/env $CMDLINE 2> $LOGFILE
/usr/bin/env cat $LOGFILE | /usr/bin/env grep -B3 "ERROR"

if [ $? = "0" ]; then
# Wget found errors
TMPFILE="/tmp/.$RANDOM$RANDOM$RANDOM"
/usr/bin/env touch $TMPFILE
/usr/bin/env chmod 600 $TMPFILE
/usr/bin/env echo "Found errors using wget broken links check:" > $TMPFILE
/usr/bin/env cat $LOGFILE | /usr/bin/env grep -B3 "ERROR" >> $TMPFILE
/usr/bin/env echo "" >> $TMPFILE
/usr/bin/env echo "" >> $TMPFILE
/usr/bin/env cat $LOGFILE >> $TMPFILE
/usr/bin/env cat $TMPFILE | mail -s "wget error log" "$MAILTO"
/usr/bin/env rm -f $LOGFILE
/usr/bin/env rm -f $TMPFILE
/usr/bin/env stat -c %Y $FILETOTRACK > $TRACKFILE
exit 1
else
# Wget found no errors, exit successfully
/usr/bin/env rm -f $LOGFILE
/usr/bin/env stat -c %Y $FILETOTRACK > $TRACKFILE
exit 0
fi


There are many more fancy and perhaps efficient ways of accomplishing this task, but the way we maintain the CommPeak website, it is a suitable way to handle this particular scenario.

The Power of VoIP Termination is Within Reach

After a series of some tech posts concerning VoIP termination and CommPeak, I wanted to share with you here on our blog some interesting highlights of the wholesale VoIP services CommPeak offers to its ever-increasing pool of clients worldwide.

A Killer SIP Trunking Service
From powerful feature-rich voice termination to toll free numbers, DIDs and wholesale SMS, CommPeak offers highly reliable and powerful termination and origination to businesses big and small in need of a solid voice call system. Our SIP trunking offers full, easy integration to CommPeak's purposefully built VoIP termination network. This allows us to deliver superior class wholesale termination services at a low cost, regardless of your company’s size or required call volume. 


In addition to our muscular voice termination solution, here's what's in our pipeline - these services are coming real soon so stay tuned: 


CommPeak is also happy to offer voice termination services to a variety of business sectors that require large volume of concurrent calls such as call centers, small, medium and large businesses, VoIP providers and many more. Stop by our new VoIP termination website and learn more!

* Image credits: 
Strong Man by ~spiderguga on DeviantART

Creating Your Own Gem: Part 1


The best way to create a solid software application today is to make it based on different modules. This makes your software well-structured as each module can be tested and configured separately, while the software application itself can be easily removed or installed. Ruby on Rails is an open-source Web application framework that provides us with the power of Web software development using "gems." Gem in Rails refers to a plugin that carries additional functionality or simply extends Rails engine.


So what should you know before starting to write your Gem?
  • Ruby on Rails knowledge - if you still don't know what it is you should start learning now
  • Check if there is an existing gem you can use (perhaps it will save you the work of writing your own)
  • Plan the exact purpose of your gem - this could be the hardest part
When you're done go to your terminal and type "rails plugin new your_gem_name" - the usual "rails way."
How did I create my very first gem? Here is the gist: let's say its name 'foo.' Foo will be adding some view helpers, controller and some JavaScripts to my existing rails project.

Running "
rails plugin new foo" gave me a basic directory structure generated for my first gem. What I love about it is that it also has a dummy application with rails for testing purposes. Here's what I did, step by step:

The first thing I did was edit the "foo.gemspec" file to add some description about my gem, so before you publish your own gem, be sure to edit it. 
The next step involved writing some code. After searching the Web for ways to create my gem, I learned that it can actually have similar directory structure like the one a simple rails application has.  It was great finding out that it is so simple. 


Now I started writing the main module for my gem, located in "lib/foo.rb." The best way to create any software is to make it fully customized. Ruby on Rails projects have initializers where programmers can define variables for gems. As mentioned earlier, I had to add my controller and the first thing I thought about was creating a customizable path for it such as: "http://localhost/path_to_controller/action".The variables I have added contain a default value in the main module with config setter method and getter for namespace.

module Foo
  mattr_accessor :namespace
  @@namespace = :foo

  def self.setup
    yield self
  end

  def self.get_namespace
    @@namespace.to_sym
  end
end
Next step was to create the controller. I created a file "lib/foo/controller.rb" containing the class FooController under module Foo. I defined a test method for my controller to check that everything was done right and working properly.

module Foo
  class FooController < ::ApplicationController

    def test
      render text: 'Foo WORKS'
    end
  end
end
After that I edited the main module of my gem to let it autoload my controller. I added this line on top of the module:
    autoload :FooController, 'foo/controller'
    The last thing you need while defining your controller action is to add route for it. As I told earlier gem is like a Ruby on Rails application, so the right way is to create "config/routes.rb" file, and mount my controller under my customizable route.
      Rails.application.routes.draw do
        scope "#{Foo.get_namespace}" do
          match 'test' => "foo/foo#test"
        end
      end

            This code takes the namespace defined for my gem on the initialization of the rails application and makes it a route to my controller. Defining actions is like a simple action adding in common rails application.
      Finally, I’ve reached the point where I can test everything created until now. I went to the "
      test/dummy" directory and executed "rails s,” then on to the browser and from there to "http://localhost:3000/foo/test" and it showed me "Foo WORKS.”  

      Now I wanted to test my customizable path. I created the file "
      test/dummy/config/initializers/foo.rb" with the following content:
      Foo.setup do |config|
        config.namespace = :boo
      end

      As expected, producing a new configuration from initializers requires restarting the rails application, so after running back "rails s" I tested the new route "http://localhost:3000/boo/test" - and it worked.

      Another way to test if the routing works properly was to run "rake routes," which printed routes that were set for dummy application.

      All this, in a nutshell, was the beginning of writing my first gem. Being part of the development team at CommPeak, the wholesale voice termination provider involves gems of all sorts. In Part 2 I will discuss how to add your own view helpers and JavaScripts to existing rails project with your gem.

      Capacity North America 2012, Here We Come!

      We're psyched! CommPeak is attending this year's Capacity North America Conference, and we're up for meeting new people from the industry, maybe even make some mutually beneficial friendships. 

      If you'd like to meet us, we'll be there October 23 and 24 (Tuesday and Wednesday, respectively). Be sure to contact us at sales@commpeak.com and we'll be happy to set up an appointment.

      In the meantime, we invite you to explore our new A-Z VoIP termination website, where you will find more information on the full range of our solutions. 

      Hurricane Sandy

      Image may be NSFW.
      Clik here to view.
       Photo: ALAMY
      Dear Clients,

      Due to the recent events in New York and Hurricane Sandy, many Internet Service Providers, telephone companies and datacenters are currently suffering intermittent outages and extensive damages.

      CommPeak provides POPs (SIP & RTP gateways) in the following locations: USA Oregon (uswest), USA Virginia (useast), Brazil, Ireland, Singapore and Tokyo.

      It might be possible that Hurricane Sandy will eventually affect our USA Virginia (useast) POP and take it down. In order to avoid a sudden service interrupt and in order to avoid DNS TTL caching issues we redirected the DNS of USA Virginia (useast) to USA Oregon (uswest).

      If you still wish to use useast.sip.commpeak.com, please use 107.23.29.251 instead. We will keep this DNS change until the situation becomes more stable.

      For more information please contact support@commpeak.com.


      Information related to Hurricane Sandy can be found here: http://www.nhc.noaa.gov

      Answering the Need for Short Duration & Dialer Termination

      We are happy to inform that CommPeak now offers Short Duration and Dialer Termination for call centers! Answering a growing global demand for a reliable and high-quality dialer and short duration VoIP, CommPeak delivers what major carriers fail to provide to contact and service centers worldwide.


      Matchless auto-dialers and per-second increments

      In order to have a smooth-running call center, auto-dilaers and short calls are absolute must. At CommPeak we understand the need for these essential VoIP features which major carriers are more than reluctant to provide and support, which is why we are happy to offer per-second short duration voice termination plans.


      Specializing in call centers short duration and dialer VoIP termination, CommPeak easily handles the concurrent call capacity call and service centers need, thanks to our platform's tailored high-performing switch and redundancy capabilities. Managing blasts of spontaneous calls per minute is our bread and butter!

      Whatever your call center's size or call volume, we can match you up with a great offer that will suit your business' needs and on which you can rely for stability and quality. We invite you to read more about CommPeak's A-Z VoIP termination services, where you will find a dedicated section on call centers' short duration and dialer termination.

      Testing with OpenSIPS' Embedded Perl Module

      Image may be NSFW.
      Clik here to view.
      Courtesy of epicstreetmagazine.com*
      The CommPeak development team enjoys tackling a variety of programming challenges, and is always eager to come up with different strategies that help make the development of the company's VoIP termination solutions (both front and back-end) the best possible.

      The topics of the open-source SIP server and Perl scripts are old favorites, and we wanted to share these with you, along with some tips and explanations.



      Perl is a powerful high-performance, flexible, free and open-source dynamic language used for system services, utilities, web programming and more.

      OpenSIPS (an open-source SIP server) has a module for embedded Perl support that can be used to off-load some of the more complicated work to Perl, which allows us to solve various acute situations with its strong capabilities and arsenal of third-party modules (available on CPAN).

      OpenSIPS even provides several higher-level Perl modules to be used from within Perl to gain access to OpenSIPS internals for easier interaction with your OpenSIPS configuration code.

      One issue which Perl programmers stress is testing. Perl has a distinguished testing culture (it has invented the TAP testing protocol) and promotes testing as a way to provide Quality Assurance for your code (the interpreter itself has over 500K tests, for example).

      However, OpenSIPS provides a problem for this, since none of their modules are on CPAN and they require the OpenSIPS application installed in order to use them. This means you cannot test any code you've written for OpenSIPS without having OpenSIPS installed.

      Suppose you have a Perl module called "Users.pm" which is used to handle some user information. It makes use of OpenSIPS' high-level Perl module OpenSIPS.pm in order to interact with OpenSIPS internals. If you try to load it without having the OpenSIPS.pm module (for which you need the OpenSIPS application), your test code will fail.

      # Users.pm
      use strict;
      use warnings;
      use OpenSIPS;
      use OpenSIPS::Message;

      sub authenticate_user {
      my $sip_msg = shift;
      my $from_hdr = $sip_msg->pseudoVar( '$(hdr(From))' );

      # do some work
      # ...

      return 1;
      }

      1;

      As you can see, OpenSIPS will load the Users.pm module and call the authenticate_user function and send it an OpenSIPS::Message object. If you will try to load the Users.pm file from outside of OpenSIPS (especially where the OpenSIPS application is not installed), it will try to load OpenSIPS.pm and crash, because it will be available.

      A good way around it would be to write any code you want to test in an additional module and load it each time from the Users.pm module file. The downside is that you will continue to load the file on each SIP connection. Even with the Linux Kernel file cache mechanism, this still seems like too much.

      Another way to handle this is to make your test script fake the existence of OpenSIPS.pm, OpenSIPS::Messages, OpenSIPS::Constants, and any other module which your Users.pm script loads.

      Faking the OpenSIPS::Message object

      Preparing your own object is fairly simple:

      # in your test script
      package Fake::OpenSIPS::Message {
      sub new { bless {}, shift }

      sub pseudoVar {
      my $self = shift;
      my $var = shift;

      return $var eq '$(hdr(From))' ?
      $self->{'from'} :
      undef;
      }
      }

      This allows you to create a fake object with fake pseudoVars and have a method for retrieving them as it would be done in the code:

      use Users; # loads Users.pm 
       
      # create a fake OpenSIPS::Message object:
      my $msg = Fake::OpenSIPS::Message->new( from => 'name ' );
       
      # call Users.pm's authentication function with a fake message object:
      authenticate_user($msg);

      Faking high-level Perl modules for OpenSIPS

      The only problem with this approach is that Users.pm still loads OpenSIPS.pm which still might not exist on your dev machine where you run your tests:
       
      $ perl users.t
      Can't locate OpenSIPS.pm in @INC (@INC contains: [...])
      BEGIN failed--compilation aborted at Users.pm [...]
      Compilation failed in require at users.t [...]
      BEGIN failed--compilation aborted at users.t [...]

      We can get around that, though, with the flexibility of Perl.

      Perl has the %INC hash, which indicates the loaded modules along with their locations. When trying to load a module, Perl checks for its existence in the hash. We can therefore mark modules which we don't want Perl to load by indicating they already exist in the %INC hash. It looks like this:

      # override OpenSIPS
      $INC{'OpenSIPS.pm'} = 1;
      $INC{'OpenSIPS/Message.pm'} = 1;
      $INC{'OpenSIPS/Constants.pm'} = 1;

      The problem is that use statements are compile-time, which means they are loaded before your code is run. This means that those statements modifying the %INC hash will only run after trying to load OpenSIPS. Alas, this means that it will fail before it reaches our code for preventing the attempt to load and fail. Bummer.

      However, Perl provides a manner of making code run at compile-time, even if it should be run-time. This can be done via compile-time code blocks. One such code block is the BEGIN block. This forces code to run in compile-time. If it's located before your use statements, it will run before them, thus paving the way to make the failing use statements an effective no-op, not failing and allowing our test to continue.

      # override OpenSIPS
      BEGIN {
      $INC{'OpenSIPS.pm'} = 1;
      $INC{'OpenSIPS/Message.pm'} = 1;
      $INC{'OpenSIPS/Constants.pm'} = 1;
      }

      Faking constants provided by OpenSIPS::Constants

      Another possible remaining issue are constants provided by OpenSIPS::Constants, such as L_NOTICE that are useful in log output. This can be easily accomplished by providing a subroutine with the same name:

      # override OpenSIPS' L_NOTICE
      sub L_NOTICE {1}

      Et Voila! You can write code that uses modules that do not exist without failing, while faking them to provide determined input in order to test your code.

      *Image credits: EpicStreetMagazine

      The Benefits of Predictive Dialers in Call Centers

      Call centers live and breathe high call volume and capacity, and for this reason the predictive dialer (aka automatic dialer) is a key tool in making massive amounts of calls among customer service and call centers. Aside from the obvious benefit of agent efficiency of predictive dialers there are additional advantages which are often overlooked. This post will point some of these out.


      The Benefits of Predictive Dialers in Call Centers

      1. An average increase of at least 50% in talk time (and consequently, an increase in sales). According to this blog post by Promero, the predictive dialer doubles the call center agent's sales power by the system's prediction of when the agent will finish his or her current phone call, and dialing the next customer. 
      2. Overall call center productivity increases by 70%. Again, thanks to the predictive dialer system's prediction algorithms, scheduling, callbacks and agent-matching capabilities, the call center ends up reaching out to more customers and generating more sales per day (as mentioned in 101's blog post on the topic).
      3. Predictive dialers help to keep leads hot. This less obvious benefit is two-fold; In addition to the automation of recycling voicemails and busy numbers which ensure high conversions of call leads, predictive dialers help in keeping leads hot since call leads require quick calling in order to leverage the leads and keep them fresh. The predictive dialer does just that.  
      4. Compliance. The predictive dialer ensures call centers and their call campaigns comply with regulations, which means call center owners needn't worry about the risk of paying huge fines for not complying. 
      5. Real-time call statistics. This valuable data (also called real-time visibility) lets call centers know in real-time how their agents are performing, the call volume handled at any given time, and each call's duration, among other important variables. 
      6. Auto-dialers can help boost agents' morale. Although this might seem counter-intuitive, dialers do tend to boost the call agents' mood since the predictive dialer offers a diversified blend of inbound and outbound calls throughout the day. This helps to take the edge off the daily routine. Additionally, the auto-dialers help agents become more successful, taking a big part in calling customers at the right timing, and setting the overall pace and flow of calls. 

      As you can see, there are many benefits to predictive dialers call centers can enjoy. CommPeak proudly offers highly competitive rate decks of dialer termination and short duration for call centers all over the world. Visit the link above and get an instant free test account!


      Additional resources used for this post:
      TMCnet.com - Live Vox
      Image: Creative Commons licence; Flickr

      CommPeak Services API

      Due to numerous requests we have received for it, we decided to develop a services API on our portal and now we are proud to announce the release of CommPeak Services API (version 1).
      Currently our API offers the basic functions which fit the basic needs of our customers.



      API docs are available on http://docs.commpeak.com/api/ but before you go there, allow me to briefly explain how the CommPeak API works:

      First, you will need an API key for your account to make API requests. You can get it by visiting "Setup >> API Keys" page on your CommPeak account control panel. After your key is created, the "Access token" will be generated automatically.

      Once you're done with the API key, you are ready to start using our services with API requests.
      Let's see an example of getting your balance information via API request. In order to get your current balance you will need to change "API_TOKEN" with your API key access token:

      curl \
        -H 'Accept: application/vnd.commpeak.com; version=1,application/json' \
        -H 'Authorization: Token token="API_TOKEN"' \
        https://api.commpeak.com/customer

      Looks pretty simple. The requirements are two headers:
      • 'Accept: application/vnd.commpeak.com; version=1,application/json' - defines the content type and version
      • 'Authorization: Token token="API_TOKEN"' - defines authentication parameter (API key access token)
      And the URL ("https://api.commpeak.com/customer") also consists of two parts:
      • "https://api.commpeak.com/" - the basic URL
      • "customer" - API action for getting customer related information.
      In order to get your current rates you must call "rates/current" action, like so:

      curl \
        -H 'Accept: application/vnd.commpeak.com; version=1,application/json' \
        -H 'Authorization: Token token="API_TOKEN"' \
        https://api.commpeak.com/rates/current

      For a list of available API actions and usage examples you can visit our CommPeak API doc, which also includes a PHP client available for download.

      Have you heard of CommPeak's new short duration/dialer termination service? If you are a call or contact center owner in search of reliable and affordable predictive dialer traffic, visit our short duration termination page. We can set you up with a great plan!

      Have We Reached the End of the (Land) Line?

      With the increasing prevalence of internet-based call services and business VoIP technology, existing landline telecommunication technologies are seeing a sharp decline in demand and use. Now there is hard evidence that traditional PSTN is on its final way out.


      A recent survey made by interwork and ATLANTIC-ACM published last November shows that as many as 74% of US wholesale voice buyers say the disruptive technology trend that will most affect their business is "The Death of the Landline." This comes as no surprise with the ever-increasing rise in VoIP as well as mobile phone use in the past 5 years.

      The same survey also highlights the migration of business telecommunication toward VoIP - 72% of respondents pointed at migration to 100 percent VoIP over long-term evolution (LTE) as a close second in market disruption, a statistic which clearly shows how wireless carriers and VoIP service providers are becoming almost interchangeable.

      And what starred as the No. 1 threat to telecommunication? Nearly half of all survey respondents had one word as an answer: competition. Wholesale VoIP providers are popping all over, and it seems every single one of them offers competitive prices and high redundancy. But superb wholesale VoIP service is not necessarily manifested in the lowest rates; at CommPeak we understand that what really makes a good provider stand out is its combination of industry experience, solid infrastructure, long-lasting partnerships with leading carriers, affordable rates and technical support. CommPeak's wholesale VoIP termination has all five.

      CommPeak, a global leader in wholesale A-Z termination and origination services knows the ins and outs of excellent voice termination service, and is also a proud provider of call center short duration and dialer termination solution. If you are a call or customer service owner or IT professional seeking reliable carrier-grade call service, check us out and get a great offer for your business!

      *Photo credit: Flickr



      Why It Really Pays Off to Be a CommPeak VoIP Reseller

      When a certain business opportunity holds too many benefits to ignore, you know you're on to something special. The very same can be said about VoIP reselling, and the recent sharp increase in the latter comes to show that there is, in fact, a profession that isn't too good to be true. Here are the key reasons why it pays off to become a CommPeak VoIP reseller whether or not you're in the IT industry.


      1. Minimum investment.Since it's VoIP we're talking about, there is no need to invest in hardware, equipment or installation. CommPeak provides you with access to the most advanced VoIP technology in the industry, all through the internet connection you already have.
      2. VoIP isn't a trend. It's a fact.VoIP is here to stay, and almost every enterprise has it as its primary telecommunication system, or is in the process of migrating toward it. If you become a CommPeak reseller you can have the peace of mind of offering the absolute best service and call quality to your customers, but also the notion that VoIP is a fact of commercial life.
      3. VoIP is easy to sell. The low cost of VoIP today makes it an obvious choice for any company seeking an affordable VoIP service. In addition, as a reseller you can offer the CommPeak VoIP services (termination, origination, toll-free no., SMS) to companies of all sizes and market niches - everyone needs to have inbound and outbound calls, right?
      4. A great business opportunity for first-timers. When joining as a VoIP reseller, expensive VoIP costs are taken out of the equation by us, which means starting a VoIP reselling business with CommPeak is cost-effective, and it does not involve too much tech specialization to operate. Plus, since CommPeak supplies the premium level tech and software power, being a VoIP reseller makes for a great independent business opportunity for those willing to put in the work. CommPeak also offers private label options to its resellers.
      5. You can rely on 24/7 Support.If you get stuck for any reason or need technical support for your VoIP reseller operations, CommPeak is here for you to guide you through any hiccups you encounter.
      As you can see, working as a CommPeak reseller is almost a no-brainer. If you are an IT professional seeking a promising business opportunity or, if you're interested in another form of recurring income, visit our VoIP Resellers program page and join us!




      Photo credits: Flickr

      3 Ways VoIP Can Help Your Business Go Green

      More enterprises than ever before are now making the transition from land line telephony to VoIP. The Internet-based VoIP is becoming the communication method of choice, for the most part due to its cost-saving benefit. But cutting back on telephone bills isn't the only great thing about VoIP; Switching to internet-based voice communication can help your business go green as well. This post highlights three environmentally friendly aspects of transitioning to business VoIP.



      3 Ways VoIP Helps to Minimize Businesses' Global Footprint

      1. Hosted VoIP systems don't end up in landfills.

      Back in the day when almost every office used cable and hardware laden telephony, the used up equipment would end up in landfills. These add to the overall toxic waste with all the inherent harsh implications affecting the environment. 

      Today, as more companies are switching to VoIP and hosted VoIP, they do not require any physical devices or hardware for their telecommunication needs. Although the VoIP provider does use actual hardware to offer its voice call service to customers, it is able to cater to countless companies and offices which consequently do not contribute to environmental pollution.

      2. VoIP increases telecommuting, reduces carbon emissions.

      Thanks to features such as virtual extensions and video calls, VoIP makes it possible for many business professionals and employees to skip the car ride or flight to the office, meeting or any other location, and handle their work right from their home computer or mobile phone. This greatly reduces carbon emissions on a huge scale and helps to minimize companies' overall global footprint.

      3. IP faxes reduce energy and paper consumption.

      Today the fax-to-email feature of VoIP makes the analog faxing method more obsolete than ever before. Instead of sending faxes to an actual machine that takes up electricity and paper, users can send and receive faxes the digital, paperless way. This, too, helps businesses go green and minimize their effect on the environment.

      Are you ready to make your business go VoIP? Visit CommPeak's VoIP termination website to discover the full range of our solutions.

      Image credits: Flickr

      How to Avoid g711g729 Transcoding CPU Penalty

      Image may be NSFW.
      Clik here to view.
      (image by voipswitch.com)

      g711u(/a, aka ulaw/alaw) is a free codec with the highest voice quality and low CPU costs, but it consumes high bandwidth. g729a is a low bandwidth codec but has high CPU penalty, because of that many voice broadcast (and similar) systems avoid g729a - but that's a mistake.

      There are many blogs out there that explain the difference between g729a and g711u such as "g711 vs g729 codec" which also explain how to install in Asterisk the free g729a codec implementation (note that g729a is under patent). To be brief, g729a consumes much more CPU and much less bandwidth with somewhat degraded voice quality. g711u has the best voice quality, low CPU, but consumes high bandwidth.

      When using g729a in call-centers, voice broadcasts and more, it is important to remember that the CPU cost of g729a is only when you need to *encode the voice into g729a format*. Let's take a look at the following example scenarios:

      Scenario 1.A.:

      X-Lite as g711u -> Asterisk (transcoding g711u to g729a) -> CommPeak

      In this scenario, the Asterisk will be a CPU bottleneck because as more agents are calling, Asterisk will need to decode the g711u and encode it to g729a, then send the RTP (=voice) packets to CommPeak.

      Pros: Free softphone for each agent; low bandwidth for voice traffic = low cost internet.
      Cons: Doesn't sound as good as g711u; Asterisk becomes a CPU bottleneck and has a finite number of calls it can handle (without a hardware upgrade).

      Scenario 1.B.:

      Vicidial performs Voice Broadcast -> Asterisk (transcoding prerecorded wav files to g729a) -> CommPeak

      Vicidial makes a call, the callee answers; Asterisk transcodes the prerecorded wav (.mp3, .gsm) to g729a and sends the RTP packets to CommPeak.

      Pros: A user can easily place audio files using any format; Asterisk will convert any format to the relevant codec (g729a) and send the traffic out; low bandwidth.
      Cons: High CPU cost at each call because of wav to g729a transcoding.

      Scenario 2.A.:

      Bria (commercial version of X-Lite) with g729 -> Asterisk (packet to packet bridging, g729a is passthrough) -> CommPeak

      Because Bria encodes the voice in g729a, Asterisk has no need to transcode the voice packets to any other format; it can then pass the packets as-is to CommPeak.

      Pros: Asterisk can handle much more traffic; low bandwidth.
      Cons: Higher one-time cost per seat; CPU will still be high in conference calls or any other call where Asterisk requires to interfere with the audio (audio mixing).

      Scenario 2.B.:

      Vicidial performs Voice Broadcast of .g729a files -> Asterisk (g729a passthrough) -> CommPeak

      Because the files were already prerecorded in g729a, Asterisk has no reason to perform any transcode and so there is no CPU intensive task to do.

      Pros: Much higher capacity per Asterisk installation; low CPU; still same bandwidth.
      Cons: Higher one-time cost per installation (in countries where the g729a patent applies); user might need to convert files to g729a and then upload.

      Conclusion:
      If bandwidth doesn't come cheap for you, it is best to use g729a and make sure that you perform the g729a voice encoding outside of your central bottleneck (Asterisk). Agent seats are a scalable resource (and the CPU cost on their workstation is minor), but Asterisk is not. In the case of voice broadcast, in most scenarios you simply want to encode the files in the codec you plan to send traffic with. Cost is a valuable consideration in voice broadcasts so it's best to upload the files in g729a and send the traffic encoded in g729a.

      Some people find it difficult to send voice broadcasts in g729a only because of the lack of wav to g729a converters. In the past it used to be a bigger issue but today you can find many of them such as this: ("Command line encoder and decoder") or use Asterisk console to perform the transcoding.

      Want to learn more about CommPeak and our range of services? Visit our voice termination website for more information.





      Asterisk (important) Security Tips

      It is no secret that IP PBX systems are a hot target these days by attackers in order to get steal free phone calls at your expense. It is therefore important to make sure your system is secure. Remember: Security is a process, not a product. -- Bruce Schneier

      There are many articles out there about common security practices for Asterisk and common security practices in general. I am not going to go deep into each point but rather provide a brief look-up into the main points:


      1. Protect your server with iptables: There are many attacks out there: SSH, SIP, HTTP and more. Avoid exposing your services unless you absolutely have to. For each service you expose make sure you protect it against brute-force attack if you case.
      2. Use fail2ban to protect against password brute-force attacks: There are many protections out there against password brute-force attacks on services. fail2ban is the most popular one. Many PBX services can't simply block SIP ports because they must serve users with dynamic IP addresses, so fail2ban is a practical useful tool for that.
      3. Follow the Asterisk security advisories: Vicidial, FreePBX, Elastix, Goautodial (and many others) are all using Asterisk. Follow their security advisories and make sure your Asterisk is up to date (or at the very least try to understand the impact of each vulnerability).
      4. Log to remote servers: By default, Asterisk logs all its activity into local files, usually in /var/log/asterisk. Asterisk logs can be sent to standard unix "syslog" daemon instead of the local files. There are many advantages to this approach, and one of them is that you will be able to send your logs to a remote server. In that case, if you have a security breach and the attacker has gained root then the former can only wipe the local logs, not the remote ones.
      5. Secure passwords do matter: Don't use easy passwords such as 185901. Use difficult passwords that are not easy to guess. A password brute-force to SIP over UDP is quite cheap in terms of performance and bandwidth cost.
      6. Minimize web access to your PBX: Security vulnerabilities are common in web services. Make sure to follow the security updates of your product (Elastix, FreePBX, etc) and try to use iptables (or any other IP restriction) to minimize the access of guests to your system where it's not necessary. If it is truly necessary, consider using Web Application Firewall such as mod_security.
      7. Watch your logs, monitor for intrusions: Make sure you have easy visibility to your CDR (Call Detail Recordings), your system logs (Splunk, and plenty of others), network and system statistics (Munin, Zabbix), network performance (smokeping), intrusion detection (Snort). You must know your system and follow it closely in order to find suspicious behavior.
      8. Harden your system with grsecurity, AppArmor, SELinux: It is not easy, but once you pass the learning curve you will be able to protect yourself slightly better against the unknown by restricting unwanted system operations of your daemons and applications.
      9. Test yourself - automated penetration tests for script kiddies: SIPVicious, Nessus and many more tools can help you test your own security. If your attackers test you by using SIPVicious, so should you.

      Understanding Better Asterisk Default SIP/IAX2 Peer Context

      By default, Asterisk delivers the following in sip.conf:
      [global]

      context=default   ; Default context for incoming calls
      ;allowguest=no    ; Allow or reject guest calls (default is yes)

      Many people tend to leave that configuration as-is, which is ok. However, many people use the default context for many other purposes such as for outbound calls extensions like this:

      exten => _00X.,1,Dial(SIP/commpeak/${EXTEN});

      That means that any call coming with 00, with or without IP or Username authentication, will be passed to CommPeak and the call will be completed and therefore, billed on your expense. For tools such as SIPVicious, it is very "cheap" to make such scanners because it only costs a single UDP packet to test that (per test, of course).

      Another problem that might occur is that at certain versions Asterisk may match unauthenticated calls with a valid context, one which you unattended to use for. Because of that, I personally like to do this at the end of each sip.conf file:

      [guest]
      type=friend
      host=dynamic
      context=null
      allow=all
      qualify=no
      insecure=very

      It may look like an odd practice, but it served me well.

      Once you have finished configuring your Asterisk, enter your Asterisk's console (asterisk -r in ssh), enter "set verbose 10" to increase visibility. Make an unauthenticated call from outside of your network to your Asterisk using your common dial plans (dial the same numbers as you would if you would have called inside your network as an authenticated user) and make sure it is blocked. You can see on the Asterisk console  which context it matched the incoming call to.

      Stay safe.

      *This post offers unique and original content prepared by the CommPeak team. All rights reserved. For more information on CommPeak, feel free to visit our Voice Termination website.

      Guess Which Technology Sector Leaves All Others in the Dust

      You guessed right - it is none other than VoIP. 

      What many professionals have speculated received a formal stamp of approval thanks to Ibisworld Research, which released a report showing that VoIP had been the fastest growing technology of the past decade based on cumulative revenue growth from 2000 through 2009. 

      According to Ibisworld's survey, the VoIP industry exploded at an amazing 179035% over those ten years, with the second largest tech industry growth being in search engines standing at a growth rate of 1656%. If these phenomenal percentage rates fail to put things in perspective, this means VoIP industry as a whole grew 100 times more than any other industry during the decade by 2009. 

      Some even argue that the VoIP sector had reached even higher growth rates than those published by Ibisworld's research. When you think about, it really makes sense; VoIP has been as ubiquitous as the Internet itself for the past 15 years. Moreover, today a much greater number of people and businesses worldwide rely on voice over IP just as they do on the Web. Plus, the lack of a single monopolizing entity in the VoIP industry means competitive quality of service and costs for both private and wholesale VoIP customers. 

      Below is the list of the top 10 fastest growing technology sectors during 2000's first decade. 

      1. Voice Over Internet Protocol Providers (VoIP) 179,035%
      2. Search Engines 1,656%
      3. eCommerce & Online Auctions 469%
      4. Online Dating & Matchmaking 249%
      5. Tank & Armored Vehicle Manufacturing 245%
      6. Petrochemical Manufacturing 221%
      7. Mining Support 187%
      8. Wireless Telecommunications Carriers 183%
      9. Biotechnology 182%
      10. Warehouse Clubs and Supercenters 147%

      CommPeak is a leading global provider of wholesale VoIP termination to businesses big and small seeking to gain a premium international reach at an incredibly low cost.

      The company has secured long-established business relationships with tier-1 telecom partners worldwide. This enables CommPeak to offer outstanding wholesale VoIP services at competitive rates and an unbeatable call quality. Visit our voice termination services website for more information.

      Image credits: University of Oregon

        VoIP is Selling Like Hotcakes - Join Us as a VoIp Resller

        Seems like VoIP reselling is big pretty much every where you look in the IT market. And there's a good reason why. In a previous post on the benefits of becoming a VoIP reseller, I've talked about how VoIP isn't merely a trend, but a bona fide fact of technology life, among other reasons. This is all the more true today, and it is a business opportunity so great it would be a shame not to consider it.


        CommPeak has recently launched its VoIP Resellers Program to offer professionals an opening in one of the fastest-growing and high earning business opportunities in the VoIP industry today. What's so special about becoming a reseller with us? Quite a few things:

        1. No previous IT skills required. You don't have to be a VoIP or IT expert to become a successful reseller. All you need is decent sales and marketing skills, some market research and you're good to go. CommPeak handles technology, service and support so you don't have to.
        2. The world has made its VoIP mind. Very strong subscriber and revenue growth rates in the past three years have positioned VoIP firmly on the  global telecommunications map. There are hardly any businesses out there still using traditional landline phones. Everyone has gone VoIP or in the process of transferring to it.
        3. Be your own boss. Establish and run your own VoIP business with CommPeak's Resellers Program. Work with sub resellers if you like and create a solid revenue channel that is expected to keep growing at an exponential rate in years to come.
        4. Count on our premium quality service. CommPeak has firm, long-term business partnerships with tier-1 telecom companies. This means we're able to offer carrier-grade turnkey solution to your customers as well as ongoing IT support when you or your customers need it.
        5. Private labels. We're in the final stages of establishing our white label program, which means you'll be able to sell our grade-A VoIP service under your own brand. 

        As you can see, it's hard to argue with such a list of critical benefits. To learn more about how you can join our program, visit CommPeak's VoIP Resellers Program where you can also sign up and start selling!

        When Economies Fluctuate, this Profession Stays Stable & Profitable

        This past year we've seen global economies fluctuate and subside, natural disasters digging even deeper deficits for countries worldwide, and an overall sense of financial insecurity across the board.


        But you know what? There is one IT profession that has remained stable and profitable these past years, and even continues to grow in terms of demand and annual incomes: Voice Over IP reselling. How is that possible, you might ask. Well, the answer is a simple one, and it makes sense when you think about it; For one, to be a successful reseller of VoIP you don't have to be an IT expert. It's enough to have decent knowledge of and experience in the Web and online marketing. Another reason is that resellers usually pass on an all-in-one turnkey solution as-is to their customers. This means they receive a ready-made platform of up and running voice call service their customers and sub-sellers can enjoy with a peace of mind.

        Another reason why VoIP resellers have the upper hand in a down-facing market is that demand for high-quality voice termination is constantly on the rise, particularly in the business and large enterprise sectors. It's a commodity which practically sells itself, and in addition to crystal clear voice quality and redundancy, VoIP rates make the traditional telephony systems ridiculously expensive and totally useless.

        CommPeak is proud to offer a rewarding VoIP Reseller Program which gives you all the business power, tech strength and service support you could possibly need to promote and sell our carrier-grade VoIP services. There are no hidden fees or hardware installations - you sign up, we set you up and that's it! For a guaranteed ever-growing secondary income, join our reseller program and start earning money fast!

        Viewing all 47 articles
        Browse latest View live


        <script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>