IP Telephony

6K

Solutions

9

Articles & Videos

5K

Contributors

IP telephony (Internet Protocol telephony) is a general term for the technologies that use the Internet Protocol's packet-switched connections to exchange voice, fax, and other forms of information that have traditionally been carried over the dedicated circuit-switched connections of the public switched telephone network (PSTN). Using the Internet, calls travel as packets of data on shared lines, avoiding the tolls of the PSTN. The challenge in IP telephony is to deliver the voice, fax, or video packets in a dependable flow to the user.

Share tech news, updates, or what's on your mind.

Sign up to Post


Almost all Internet protocol telephones have built-in switches at the back that allow you to connect your personal computer to one port and use the other port to connect your phone to to a Cisco switch.
 
Why we need to connect the PC to the phone?
 
Most offices have only one Cat6 data outlet and we don't want to rewire the offices or building to add second outlet for IP phones. However, at the same time we want to split them off in two different VLANs for security reasons. If we keep the keep voice and data traffic on the same VLAN, an intruder can just easily run a packet sniffer tool capture to the voice transmission and easily convert them into WAV files; separating these two forms of traffic also helps maintain a higher quality of service
 
We can achieve by doing below configuration on the Cisco switch
 
int gi0/1
switchport mode access ( This command hard code the port into access mode)
switchport access vlan 100  ( This command hard code the port into access VLAN for PC )
switchport voice vlan 200  (This command hard code the port into access VLAN for Phone)

Open in new window


Important thing to know 
 
The PC by default will send untagged traffic which is why we configure the port as AN access VLAN.
 
The IP phone will send tagged traffic, so we need to confgure the VLAN tagging on the phone and voice VLAN on the switch. If we are using the Cisco IP Phones, the switch will automatically add the tagging to the frame using the CDP (Cisco Discovery Protocol) protocol so there is no need to configure anything on the phone.
 
If we are not using Cisco Phones, such as Avaya or Ipecs phones then, we need to do this hard coding on the IP phones:
 

Open in new window

2
Free Tool: SSL Checker
LVL 8
Free Tool: SSL Checker

Scans your site and returns information about your SSL implementation and certificate. Helpful for debugging and validating your SSL configuration.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

Implementing Avaya's One-X portal is pretty painless, until you want to deploy this to the Android and iPhone clients when these clients are outside of your network. The clients will also work within your local network. Here is our experience and solution. Your mileage may vary depending on the resources available to you.

In this article;
I assume you are familiar with Avaya IP Office Systems, IP Addressing, DNS and TCP/IP ports, and Port forwarding. If this is not the case, do this first. Nothing I say will make sense until you have a grasp of the basics.
Internal means the local network.
External means the Internet or anything on or beyond the public (or outside) interface of the NAT firewall
IPO means the Avaya IP Office system unit
FQDN means Fully Qualified Domain Name

If you only have one Internet connection, you can put a switch between the ISP and your router. You will have to obtain a second IP address from your ISP for the IPO. It is also possible to use a router with multiple interfaces to accomplish this.

All IP addresses and domain names are fictitious and any resemblance to anyone's network is purely coincidental

First, the specs. We are implementing One-X version 9.0.0 with an Avaya IPO 500. Our network is behind a NAT firewall built in a Cisco 3600 series router. I will not go into the setup and installation of the One-X Server or the IPO, other than the specific issues regarding this …
2
I recently purchased a Bluetooth headset called the Music Jogger (model BSH10). The control buttons on it look like this:

Music-Jogger-BSH10-buttons.jpg
One of my goals is to use it as the microphone and speakers for Skype calls. In that respect, it works well. However, I also want to be able to answer a Skype call with its Multi-Function Button (MFB), so that I don't have to be sitting at the computer when a call comes in. In that respect, the headset fails.

One possible solution is to configure Skype to answer incoming calls automatically, but I don't like this idea, for two reasons. First, most of the time I am at my computer. In those cases, I may not always want to answer a call – especially when I see CallerID . Second, I may not be at the computer and may not have the headset on, in which case I don't want Skype to answer the call. I could try to remember to enable/disable Skype's automatic answer feature depending on my whereabouts, but that is likely to be error-prone – and a nuisance to boot. The better solution is to configure the MFB to answer a call. Fortunately, there's a way to do this easily – and with free software.

The solution presented in this article should work on many Bluetooth headsets. For example, here's another one from Kinivo (model BTH220) with similar controls (excellent headset – I own this one, too):

Kinivo-BTH220-buttons.jpg
As long as your Bluetooth headset has a Play-Pause button, …
4
There are no good configuration guides for HP-H3C router to LYNC on the web. :(

Big statement, but we havent been able to find one yet. We did find the following document useful, but the information was not enough to use H3C router for use as a LYNC gateway: https://devconnect.avaya.com/public/download/dyn/HP_MSR-30.pdf

We tested in our LAB, and it is working, here are the settings that you need:

Firstly you need to enable dns


 dns proxy enable
 dns server x.x.x.x
 dns domain fabrikam.com

Open in new window


If you not enabling DNS the incoming calls dropping from LYNC server.

Secondly make VOICE setup:



voice-setup
 cptone country-type HU
 sip
  source-bind signal ipv4 x.x.x.x
  source-bind media ipv4 x.x.x.x
  sip-domain fabrikam.com
 #
 sip-server
  #
  call-rule-set
  #
  call-route 
  #
 dial-program
  default entity fax protocol standard-t38
  default entity fax protocol standard-t38 hb-redundancy 0
  default entity fax protocol standard-t38 lb-redundancy 0
  terminator 
#
  entity 10002 pots
   line 4/0:15
   undo register-number
   send-number all
   description call for ISDN
   match-template .T
   outband nte
   no shutdown
   undo vad-on
   compression 1st-level  g711alaw
   compression 2nd-level  g711ulaw
 #
  entity 10003 voip
   address sip ip 10.10.10.1 port 5068
   transport tcp
   codec transparent
   url sip
   fax baudrate disable
   description inside umbers
   match-template 4...
   outband nte
   undo vad-on
   compression 1st-level  g711alaw
   compression 2nd-level  g711ulaw
  #

Open in new window


Lync working only with RTP NTE DTMF relay, so need to send the calling number via RTP packets. For outbound calls need to configure 'send-number all' command. In the lync we not using +164 numbers.

Most important thing, that you need to protect your device from hackers, you need to put behind a firewall the gateway or need to create access-list for voice devices.

acl number 3101
 rule 100 permit ip source 10.160.114.0 0.0.0.255
 rule 150 deny ip

interface Ethernet0/1
 firewall packet-filter 3001 inbound

Open in new window

1
So you think no one can listen in on your VOIP conversations, eh? Well... if you haven't setup Secure Real Time Transport (SRTP), your voice communications can be hacked into by just about anyone!

First, let's talk about the intended audience for this article, and give some background on the technologies themselves.

Intended Audience


This topic is for advanced users of Asterisk and VoIP communications. It assumes not only a basic knowledge of the Asterisk and VoIP platform, but also of SIP, XML, and Polycom configurations.

In short, it's time to put your big-boy shorts on, and break out your best grep skills. If you're not a super-geek in the VoIP telephony world, this article won't serve you much immediately; however, concept-wise, it will certainly be a good read.

Platforms Discussed: A glossary of sorts...

Asterisk: Asterisk is an open source, Linux based PBX system. Commonly referred to as the Swiss Army Knife of Telephony, Asterisk is a tool kit, which when assembled in the hands of the right people, can provide a telephone communications platform unrivaled by any other proprietary platform.
Polycom: Polycom is one of the world's largest VoIP and Video conferencing solutions manufacturers. Polycom's phones are standardized, centrally provisionable, and rock-solid.
SIP: SIP stands for Session Initiated Protocol, which is a control protocol to setup VoIP tellephone calls.
SRTP:
1
 
LVL 49

Expert Comment

by:DanRollins
Comment Utility
I agree that landline phones are not secure... but not just because a mistake could be made by a law-enforcement agency, but also because it is trivially easy for, say, an industrial spy to install an illegal wiretap.  It's probably better to set up for secure company phone traffic now, than to apologize to the boss later.
0
Ever wanted to query Cisco Call Manager CDR records from MS SQL Server? Here's how!

CUCM can be configured to upload a CDR file to a given FTP server every minute. This article will show you how to set this up, schedule the import of this data and run a basic query against the data. From this point you will be able to create your own RS reports based on the imported data.

Requirements

Good knowledge of CUCM and T-SQL
FTP Server (Contactable via a UNC path from the SQL server)
 - FTP account for CDR reports with its own home directory (RW access)
MS SQL Server (I used SQL 2005 although there is no reason for this not to work in other versions)
Cisco Call Manager (I used CUCM 6.1.2, I'm sure this will work for any release of CUCM 6)

Step 1 - SQL Tables

You need to create a new database on the SQL server to house the data (e.g., "CDR") .

cdrimport.fmt
cdrimport.fmt needs to be placed locally on the SQL server, this needs to be referenced in "usp_import_data", mine is h:\sqldata\cdrimport.fmt.
9.0
78
1	SQLCHAR		0	12	","		1	cdrRecordType			""
2	SQLCHAR		0	12	","		2	globalCallID_callManagerId	""
3	SQLCHAR		0	12	","		3	globalCallID_callId		""
4	SQLCHAR		0	12	","		4	origLegCallIdentifier		""
5	SQLCHAR		0	12	","		5	dateTimeOrigination		""
6	SQLCHAR		0	12	","		6	origNodeId			""
7	SQLCHAR		0	12	","		7	origSpan			""
8	SQLCHAR		0	12	",\""		8	origIpAddr			""
9	SQLCHAR		0	50	"\",\""		9	callingPartyNumber	

Open in new window

10
 

Expert Comment

by:dwilliamhouston
Comment Utility
I have found the issue was access denied to my file share.
0
 

Expert Comment

by:simple72
Comment Utility
HI,
my cdr files are without header so what are the modifications i have to do with above code,

and i am using my pc as server so how i have to give unc path and its name please guide me??
0
The Zaptel people (www.zaptel.com) got kind of annoyed with the fact that they were getting bombarded with searches for the zaptel driver system for Asterisk (not to mention they own the trademark on zaptel). So, they kindly requested that Digium change their package. See: Digium's blog entry for more on why. Digium did, and the result is the new Digium Asterisk Hardware Device Interface.

This raises several questions for people trying to make the switch. The documentation for DAHDI is a little esoteric. There is not a document out there that takes you through the process of upgrading to the new version in a down-and-dirty, "I need to get this done, now" kind of manner.

So I have created one: The top 5 quandaries and their answers on moving from Zaptel to DAHDI.

1. Where do I get the new packages?


Hopefully, you have read my other article entitle How to Install Asterisk on Ubuntu 9.04 / 9.10 from Scratch. There are several things in it that you will have had to have done in order to get DAHDI to work. For the sake of completeness, and to keep you from having to open multiple tabs in your browser, here are the bare-bones requirements for DAHDI:

cd /usr/src/

#Setup the system

apt-get 

Open in new window

6
 
LVL 38

Expert Comment

by:younghv
Comment Utility
DrDamnit:
Excellent "Use it Now" kind of Article.
Thank you for putting it together.

Big "Yes" vote above.

younghv
0
How To Create Custom / Distinctive Ring Tones on Polycom Phones

Purpose and Overview

When creating a custom ring tone, you have simple aspirations: to make your phone cooler than everyone else's. Perhaps you need a louder ringer. Perhaps you want your phone to sound like a model 2500 touch tone phone from the late 70's and early '80s. Maybe, you need to make "Ding dong the witch is dead" the ring tone for that jerk at the office who thinks the IT department is useless. Whatever. Here's how you do it.

Conventions and Assumptions in this article.

In writing this article, I have assumed:
1. You are using a Linux machine (examples are for Ubuntu based systems).
2. You have at least an intermediate knowledge of Linux, bash, and administrator rights on your system.
3. You have an established provisioning server. (Examples here use TFTP, but the concepts are nearly identical for FTP and HTTP servers).
4. You are running Asterisk. The process and concept is the same for other SIP servers, but Asterisk is used in the article for syntax and examples.

1. Working with Sound Source Files

Converting Source Files
First thing you have to understand is that the Polycom phones are very picky about their ring tones. They have to be single channel, 8000hz sampled. So, if you're starting with a wav, mp3, or otherwise, use sox to convert it to the appropriate audio file type and sample rate.

How to Use sox:
Install sox with apt-get install sox or yum install sox
3
The point of this post is to give you a copy/paste installation solution to setting up Asterisk 1.6 on Ubuntu 9.04 (or similar) server.

# Setup the system

apt-get install subversion
apt-get install make
apt-get install linux-source kernel-package
apt-get install linux-kernel-headers
apt-get install linux-headers
apt-get install linux-headers-2.6.28-11-server # <-- or whatever matches your version.

# Install other needed stuff

aptitude install libconfig-tiny-perl libcupsimage2 libcups2 libmime-lite-perl libemail-date-format-perl libfile-sync-perl libfreetype6 libspandsp1 libtiff-tools libtiff4 libjpeg62 libmime-types-perl libpaper-utils psutils libpaper1 ncurses ncurses-dev libncurses-dev libncurses-gst ncurses-term libnewt libnewt-dev libnewt-pic libxml2 libxml2-dev libspandsp-dev libspandsp1

# Change to the proper directory

cd /usr/src/

# Get asterisk

svn co http://svn.digium.com/svn/asterisk/trunk asterisk

# or for 1.6.2 comment out the above line, and uncomment the line below.

#svn co http://svn.digium.com/svn/asterisk/branches/1.6.2/ asterisk

# Get DAHDI Kernel

svn co http://svn.digium.com/svn/dahdi/linux/trunk dahdi-kernel

# Get DAHDI Tools

svn co http://svn.digium.com/svn/dahdi/tools/trunk dahdi-tools

# Get libpri

svn co http://svn.digium.com/svn/libpri/branches/1.4/ libpri

# Compile libpri

cd /usr/src/libpri

make

# Compile the DAHDI kernel

cd /usr/src/dahdi-kernel

make
make install

#
12
 
LVL 20

Expert Comment

by:thehagman
Comment Utility
Careful!
Part of this stuff requires root privileges, at least the installation parts should look as below (i.e. sudo and use correct kernel version).
Without having tried the procedure myself, I bet that also both instance of "make install" should be using sudo.

sudo apt-get install subversion make linux-source kernel-package linux-kernel-headers linux-headers linux-headers-$(uname -r)-server
sudo apt-get install libconfig-tiny-perl libcupsimage2 libcups2 libmime-lite-perl libemail-date-format-perl libfile-sync-perl libfreetype6 libspandsp1 libtiff-tools libtiff4 libjpeg62 libmime-types-perl libpaper-utils psutils libpaper1 ncurses ncurses-dev libncurses-dev libncurses-gst ncurses-term libnewt libnewt-dev libnewt-pic libxml2 libxml2-dev libspandsp-dev libspandsp1

Open in new window

0

IP Telephony

6K

Solutions

9

Articles & Videos

5K

Contributors

IP telephony (Internet Protocol telephony) is a general term for the technologies that use the Internet Protocol's packet-switched connections to exchange voice, fax, and other forms of information that have traditionally been carried over the dedicated circuit-switched connections of the public switched telephone network (PSTN). Using the Internet, calls travel as packets of data on shared lines, avoiding the tolls of the PSTN. The challenge in IP telephony is to deliver the voice, fax, or video packets in a dependable flow to the user.