Asterisk 1.6 ISO for Home/SMB Setup

Thank you for all your support and response. We have made asterisk 1.6 version with Ubuntu 10.04 as a bootable image, which will convert any old computer or virtual machine to an IP PBX server for minimum of 50 SIP extension by default with call features. This is built to support a Home or small Medium Business structure. Just download the ISO file from the below location and install it in a computer or virtual machine,

MD5 Checksum: 6C41F52DBF76879A91AC31CB0C197165

Please follow the below Implementation Guidance and Features list for the Asterisk Voice Server: To be done during installation of ISO:

  • Pls ensure that you at-least have 10GB of free space in the server or VM it is installed.
  • When the ISO is loaded, finally it would be giving options during which select option 1 – reboot.
  • After reboot select “Ubuntu, with Linux 2.6.32-30-server”.
  • Once logged in with the default username password run the command “sudo mii-tool” to find the eth port in use.
  • Then modify the IP & eth details according to your network in etc/network/interfaces.
Pre-Assumptions of the PBX
Default Username csspbx
Default Password Csspbx!23
User Extension Range 1001 to 1050
Voicemail Number 1000
Reception Number 1001
IVR 1999
Recording 1909
Features Feature Code
Group Call pickup *8
Directed Call Pickup #8XXXX
Blind Transfer #1
Supervised Transfer *2
Immediate Call Forward activate *21XXXX
Immediate Call Forward Deactivate #21
Call Forward Busy Activate *61XXXX
Call Forward Busy Deactivate #61
DND Activate & Deactivate *99
Call Barging *24
XXXX Night Service *25
Blacklist Activate *22
Blacklist Deactivate #22
Meet-Me-Conference Joining *33

Pls revert in case of any queries or feedback.

Advertisements

Gtalk integration with Asterisk

Gtalk Integration:

Using Asterisk, we can connect to Google Talk. But we have to create a new gmail account for Asterisk.

To make this possible we need to download and install iksemel package.

Installing iksemel package:

If the above didn’t work for you, try this too if you have gnutls installed:

  • cd iksemel
  • ./configure –with-gnutls
  • make
  • make check
  • make install

Jabber/Gtalk depends on iksemel so make sure after installing iksemel we need to recompile asterisk and select the jabber/jingle/gtalk channel drivers (run ‘make menuselect’ to verify this).

Now the following conf files need to be altered as below:

etc/asterisk/jabber.conf:

[general]
debug=yes                                                          ;;Turn on debugging by default.
autoprune=no                                                   ;;Auto remove users from buddy list.
autoregister=no                                               ;;Auto register users from buddy list.

[gtalk_asterisk]                                                 ;;label
type=client                                                         ;;Client or Component connection
serverhost=talk.google.com                       ;;Route to server for example, talk.google.com
username=abc@gmail.com/asterisk      ;;Username with optional resource. This would be your Gtalk Id for the Asterisk
secret=******                                                   ;;Password
priority=1                                                           ;;Resource priority
port=80                                                               ;; Default port is 5222
usetls=yes                                                           ;;Use tls or not
usesasl=yes                                                         ;;Use sasl or not
buddy=xyz@gmail.com                                ;;The existing gtalk id to be included in the buddy list
status=available                                               ;;One of: chat, available, away, xaway, or dnd
statusmessage=”I am available”                 ;;Have custom status message for Asterisk.
timeout=100                                                      ;;Timeout on the message stack.

etc/asterisk/gtalk.conf:

[general]
context=google-in                                           ;;Context to dump call into
allowguest=yes                                                  ;;Allow calls from people not in  list of peers

[guest]                                                                    ;;special account for options on guest account
disallow=all
allow=ulaw
context=google-in

[buddy]
username=xyz@gmail.com                          ;;username of the peer your calling or accepting calls from
disallow=all
allow=ulaw
context=google-in
connection=gtalk_asterisk                            ;;client or component in jabber.conf for the call to leave on

etc/asterisk/extension.conf:

[google-in]
exten => s,1,NoOp( Call from Gtalk )
exten => s,n,Set(CALLERID(name)=”From Google Talk”)
exten => s,n,Dial(SIP/gtalk_sip_ext)

[google-out]
exten => XXXX,1,Dial(gtalk/gtalk_account/xyz@gmail.com) ;; XXXX-the sip extension of the buddy (xyz)

Now restart the asterisk and everything should go fine!!!!!!!!!!!!!!!!

Microsoft – Office Communications Server 2007 ~ An Introduction

Microsoft OCS – An Introduction

At the end of 2003, Microsoft launched a new chat server by name Microsoft Office – Live Communications Server which was called as LCS in short.  It was a real time communication platform from the Microsoft that enabled the users to have a live chat and presence services.

OCS is a software solution for PBX installed on the PC hardware and the functional modules are deployed on different servers to accomplish the goal. It gives presence, instant messaging, conferencing and enterprise voice support.

Presence is the feature that enables an user to set his status as to what he does at that moment. By seeing the presence information, the other users in the network could chose to either text / call him or chose not to disturb him.

“Microsoft LCS” has evolved a lot in the last 7 years to become “Microsoft OCS” at present.
Next month, Microsoft will be launching the latest version called “Microsoft Communication Server”.
The complete list of previous and present versions is given below.

  • 2003 – Live Communications Server 2003
  • 2005 – Live Communications Server 2005
  • 2006 – Live Communications Server 2005 with SP1
  • 2007 – Office Communications Server 2007
  • 2009 – Office Communications Server 2007 R2
  • 2010 – Microsoft Communications Server 14

Let us look more in detail in the next blogs.

Instant messaging with Asterisk Server

OPENFIRE

Openfire is a real time collaboration (RTC) server licensed under the Open Source GPL. It uses the only widely adopted open protocol for instant messaging, XMPP (also called Jabber). Openfire is incredibly easy to setup and administer, but offers rock-solid security and performance.

Openfire Installation

Download and install the stable version of Openfire application. Here I am going for linux tarball.

First download openfire package

sudo wget <openfire_x_x_x.tar.gz>

Once the file downloads, run:

sudo tar zxvf openfire_x_x_x.tar.gz

Then create a a symlink:

ln -s /opt/openfire/bin/openfire /etc/init.d/

You know have to make your symlink executable:

chmod +x /etc/init.d/openfire

Now try and start the service. Go into the /opt directory:

cd /opt/openfire/bin and run: sudo ./openfire start

You can now finish the configuration through the URL:

http://YOUR_OPENFIRE_SERVER_IPadd:9090/

Asterisk Integration with Openfire

Once the openfire setup completed, login to the Openfire and install Asterisk-IM plugin.

Go to Asterisk-IM tab and add the Asterisk server settings, Now the Asterisk Server will get added to the Openfire webpage.

Now you can map the Asterisk phone with openfire Messaging client user.

Unified Communication – Features

Unified Communication – Features

Lets Discuss the predominant Unified Communication Features.

The predominant methods we adopt in today’s life style to communicate in official as well as personal lifestyle are:

  • Mobile phones
  • Landline phones
  • Soft Phones (Installed in PC)
  • Email
  • Chat Clients (Yahoo, Gtalk, Skype, etc.)
  • Video conference
  • Fax

We will now discuss the above mentioned Unified Communication features in details.

Voice over Internet Protocol (VoIP)

VOIP is a transmission technology which converts voice to packets and transmits over IP networks such as LAN, WAN, etc. The voice communication in UC solution is predominantly based on the VOIP. Based on the voice server (PBX) we use we can communicate between TDM phones like analog phones and Digital phones.

Contact Center Services

A contact center is a single point of contact for customer or clients to reach a specific product or service related assistance, information or deliverance. Many of us buy some products and call the specified contact number provided by the manufacturer or distributor for any source of information or issue, where the contact center agents will help us in meeting our requirements. In today’s enterprise market customer satisfaction is the key and the contact centers provide an easy way for customer to reach for any issues, queries and information.

Voicemail

This is one of the very basic features available with all the voice servers (PBX). When we receive a call and unable to attend the voicemail facility helps us to store the voice message, so that we can retrieve it later and respond. Though predominantly used for storing voice messages when away from desk or on other call, voicemail can also be used for providing information to the caller, forwarding a message to a group etc.

Click to Call / Conference

When you want to call a person you can just right click and select call either from you mail, digital fax, softphone or even from your chat window. The call can be established through normal telephony or by using a VOIP connectivity based on the client we use.

This makes things simpler, easier, sophisticated and also time saver.

Find Me – Follow Me

Find me – Follow me a glossy term given for connecting to person though any available resource he is available with. Now a call come to a person’s office desk while he is away, the call can be diverted to any other number in the office or to his mobile phone if he is out of office or to his softphone if he is out of the state / country. This can be preconfigured on a standard basis if it is a planned outing or can be traced on a round robin way on an unscheduled outing.

E-mail

In today’s world of communication E-mail has become a part and parcel of personal as well as official life style. Email which just started as a communication of words has expanded its service with lot of internal features to make it easier for the users.

The E-mail is available with many players in the market starting from Microsoft, Lotus Notes and also open source like thunderbird etc.

Presence

The status indication of a person’s availability is called as presence. When a person is connected to the network through any means of communication like chat client, mobile, etc, a visible indication intimates the availability of the person to the other members of the group or network.

Fax

Few years back Fax was considered only for sending a printed document from one machine to other using telephone lines. But in today’s world when a Fax is sent to a number it can be digitally converted and sent to the respective person’s mail from which he can take a print if needed. This is possible simply because of Unified Communication.

Web Tool

Web tool is basically the front end management of the integrated products. Earlier servers were maintained through command lines. Later these proprietary softwares were developed to manage the individual tools. Now a common management tool is being developed to manage all the servers in a single window. This not only makes the configuration part easy but also helps a new person to learn the configuration easily and manage it in a much better way.

Instant Messaging

Instant Messaging is a real-time communication between connected individuals through text messages. For instant messaging we need messaging clients which need to be installed in computer of supporting devices. The client helps to connect to the other members in the network to have a real time chat. This is totally controlled and monitored by a messaging server sitting at some part of the network or world. The instant messaging has really made revolution in the communication between individuals since it is easier and also a real time.

Audio / Video / Web Conferencing

Conferencing is to perform a scheduled live meeting, presentation, training and knowledge sharing etc to a group located at a single or different location. When a conference should is needed, a virtual room is created with authentication where somebody can join and view the conference though the video. Also they can post their queries vocally. This makes them feel that they are located together at same place even though they are physically located at different location.

When they have a web camera facility they can initiate a video conferencing where they not only hear the voice but also see people on their computer screen. This gives more lively feeling for the conference and also clearer picture to the participants. This is said to be video conferencing.

Text-to-Speech

Text to speech is a feature which can read out a document vocally for us, to hear. This is a feature which was just a fun few years ago, is used to read out greetings, information and even mails. When we want some messages or information to be delivered to a called person we can have the text-to-speech feature enable which can make our works easy.

Integration with 3rd Party

In current scenario every enterprise and individuals use different devices or components from various available vendors in the market based on their requirements. But everyday a new technology added device hit the market and the user cannot keep changing the devices every time. So he needs the device to talk with his existing device so that he can enjoy the new technology also.

Security

In today’s world of entire IP and data networks, we are coming across various network threats because of which security is a major concern in the growing VOIP network, since it is using the same data network for call establishment. In VOIP scenario we are frequently coming across issues like registration problems, VOIP call session breakdown, non availability of required services and viruses which creates a threat to the voice network security, and also to the data network security of all the enterprises.

High Availability (HA)

With increasing dependencies on critical applications in enterprise level redundancy is becoming a mandatory aspect. This redundancy need is taken care by the High Availability (HA). In UC which is a integrated solution will definitely need a High Availability option integrated is mandatory.

Hope the above briefing of the UC features would have enriched your knowledge on Unified Communication (UC).

What is Unified Communication?

What is Unified Communication (UC)?

Introduction:

With common standard protocols like SIP, IAX becoming the bench mark in today’s most of the upcoming technologies, telecommunication is using these opportunities to spread its tentacles in every possible angle to unify users through all possible means like mobile phones, landlines, computers, chat clients and even a piece of connectivity tool, under a single umbrella. And Unified Communication is a front-runner in achieving the unification.

So what is Unified Communication?

First of all, Unified Communication most of the time, is not a single equipment, tool, software package available in a ready to use format. Basically, a soft-hard networked cluster suite, sandwiched using many communication features and applications to unify or connect the customers virtually is called as Unified Communication (UC). Wherever you are located it establishes a virtual connectivity between the required people.

Need for UC:

Today’s globalization is forcing enterprises to give collective effort to withstand at top of the market due to heavy competition from various directions and countries. So discussions and decisions should be made quicker as well as in a secured way. But people running out of time with their demanding busy schedule makes it very tough to group people in making and implementing decisions. That’s where UC is needed to make this possible.

People can be located any place, city, state and even any country but UC makes them still be connected with people they want to be at any point of time.

What UC Does:

You may be sitting physically in any part of the world, but when you think you want to talk with somebody UC connects to them in no time with easily available resources.

Just before moving further……

What all do we use generally in our working environment and how do we connect with others in and out office?

We use computers and laptops for working and use mobile phones, landline phones, Email, chat client, video conference, Fax to connect with others.

How UC Works:

Enterprises generally use different servers for different mode of communications. PBX Voice Servers, Email servers, Voicemail Servers, video conferencing server, Messaging Servers LDAP server, fax servers, AAA server, etc.

Now, all these servers should be integrated to understand each other.

This complete solution of integration is called as Unified Communication.

This integrated servers’ needs to understand the request from other servers and execute the request. Though this seems to be easy in words, it needs lot of work behind the integration.

UC benefits:

  • Makes people to connect virtually at any point of time by voice, chat or video.
  • Helps to make quick decisions by reducing the in-between distance virtually.
  • Helps in developing business operations more effectively.
  • Uses day-to-day tools for connecting like mobile, laptop, chat client etc.

Mysql Database for voice Mailbox in Asterisk

Mysql Database for voice Mailbox in Asterisk

The voice message received in the user inbox can be stored on MySQL tables. The ODBC connector is used
to do this.

  • Before start with this setup we should have the Unixodbc package installed in ubuntu.
  • While compiling asterisk’s package in the menuselect under voicemail options ODBC storage need to be selected instead of file storage,
  • now Install the Mysql server
  • Create tables “voicemessages”

Database format:

CREATE TABLE `voicemessages` (
`id` int(11) NOT NULL auto_increment,
`msgnum` int(11) NOT NULL default ‘0’,
`dir` varchar(80) default ”,
`context` varchar(80) default ”,
`macrocontext` varchar(80) default ”,
`callerid` varchar(40) default ”,
`origtime` varchar(40) default ”,
`duration` varchar(20) default ”,
`mailboxuser` varchar(80) default ”,
`mailboxcontext` varchar(80) default ”,
`recording` longblob,
`flag` varchar(128) default ”,
PRIMARY KEY (`id`),
KEY `dir` (`dir`)
) ENGINE=InnoDB;

  • Uncomment or add these lines to voicemail.conf.

· odbcstorage should match the section name in res_odbc.conf
· odbctable should be the name of the table you’re storing messages in.

odbcstorage=asterisk
odbctable=voicemessages

Now need to check the odbc drivers and configuration

  • In res_odbc.conf enable the database connection

[asterisk]
enabled => yes
dsn => asterisk
username => root
password => root
pre-connect => yes

  • Now odbc.ini and odbcinst.ini files need to be configured

odbc.ini
[ODBC Data Sources]
odbcname = MyODBC 3.51 Driver DSN
[asterisk]
Driver = /usr/lib/odbc/libmyodbc.so
Description = MyODBC 3.51 Driver DSN
SERVER = localhost
PORT = 3306
USER = root
Password = root
Database = asterisk
OPTION = 3
SOCKET =
[Default]
Driver = /usr/local/lib/libmyodbc3.so
Description = MyODBC 3.51 Driver DSN
SERVER = localhost
PORT =
USER = root
Password = root
Database = asterisk
OPTION = 3
SOCKET =

odbcinst.ini
[MySQL]
Description = ODBC for MySQL
Driver = /usr/lib/odbc/libmyodbc.so
Setup = /usr/lib/odbc/libodbcmyS.so
FileUsage = 3
[MySQL ODBC 3.51 Driver]
Description = ODBC 3.51 for MySQL
DRIVER = /usr/lib/libmyodbc.so
SETUP = /usr/lib/libodbcmyS.so
UsageCount = 3

Now check the connectivity, to do that enter the command isql databasename

pbx@asterisk:/etc$ isql asterisk
+———————– +
| Connected!          |
|                           |
| sql-statement      |
| help [tablename]  |
| quit                     |
|                           |
+———————– +
SQL>

In asterisk’s console check the odbc status

asterisk*CLI> odbc show asterisk
ODBC DSN Settings
————————–
Name: asterisk
DSN: asterisk
Pooled: No
Connected: Yes
asterisk*CLI>

Creating Voice-mailbox in Asterisk

Creating Voice-mailbox in Asterisk

The Voice mail user and the password to login to Mailbox to check messages are configured in voicemail.conf.
Create the mailbox numbers format:

mailboxnumber = password,username,e-mail

Create a voicemail main number in an extensions.conf for retrieving the messages. In the below extensions 5050 was created under VoicemailMain.When somebody dials 5050, the call will be answered by the Answer application. The next executed extension will be the one which contains the VoiceMailMain application. There are several different combination of arguments which you can use in the brackets of this application. You can leave the space between the brackets blank. In this case the system will ask you to enter a mailbox number and password.

Voicemail.conf

[vm]

1234 = 4242,john smith,john.smith@test.com

Extensions.conf

[voicemailMain]

exten => 5050,1,Answer()
exten => 5050,2,VoicemailMain()
exten => 5050,3,Hangup()

Note: Please reload the dialplan and sip configurations in asterisk console

Call Forwarding

Call Forwarding in Asterisk

Call forwarding (or call diverting), in telephony, is a feature on some telephone networks that allows an incoming call to a called party, which would be otherwise unavailable, to be redirected to a mobile telephone or
other telephone number where the desired called party is situated.

Sample Configuration

SIP.conf

[3000]
type=friend
secret=12345
host=dynamic
context=main

Extensions.conf

[main]
include = macro-exten
include = CFW

[macro-exten]
exten => s,1,DBget(temp=CFIM/${ARG1}) ; Get CFIM key, if not existing, goto 102
exten => s,2,Dial(Local/${temp}@pbx/n)

; Unconditional forward
exten => s,3,Dial(${ARG2},20) ; 20sec timeout
exten => s,4,DBget(temp=CFBS/${ARG1}) ; Get CFBS key, if not existing, goto 105
exten => s,5,Dial(Local/${temp}@pbx/n) ; Forward on busy or unavailable

; No CFIM key
exten => s,102,Goto(s,3)

; No CFBS key – voicemail ?
exten => s,105,Busy

[CFW]

; Unconditional Call Forward
exten => _*21*X.,1,DBput(CFIM/${CALLERIDNUM}=${EXTEN:4})
exten => _*21*X.,2,Hangup
exten => #21#,1,DBdel(CFIM/${CALLERIDNUM})
exten => #21#,2,Hangup

; Call Forward on Busy or Unavailable
exten => _*61*X.,1,DBput(CFBS/${CALLERIDNUM}=${EXTEN:4})
exten => _*61*X.,2,Hangup
exten => #61#,1,DBdel(CFBS/${CALLERIDNUM})
exten => #61#,2,Hangup

Asterisk Realtime Setup

Asterisk Realtime Architecture (ARA)

So far we used database storage for storing Call Detail Recording (CDR) and Voicemail message, but in this real time architecture we are going to store the configurations of the Asterisk in database server, I mean configurations like SIP users, voicemail, conference rooms and many more.. all these will be in database server.

By this setup we can avoid writing ‘n’ no.of lines in asterisk conf files.

Two types of database access:

  • STATIC configuration files
  • REALTIME configuration engine

Asterisk Realtime Static

The Main configuration file in asterisk Extconfig.conf

sip.conf => mysql,asterisk,ast_config

Database connectivity you can change mysql to odbc if you want to use odbc, and the name of the database created for Asterisk you can change asterisk to be the name of your database, and the name of the table created under asterisk database you can change ast_config to be the name of the table we will create below.

Realtime Engine

[settings]

<family name> => <driver>,<database name>[,table_name]
sippeers => mysql,asterisk,sip_peers
sipusers => odbc,asterisk,sip_users
queues => mysql,asterisk,queue_table
queue_members => mysql,asterisk,queue_member_table
meetme => odbc,asterisk,meetme_table
voicemail => mysql,asterisk

This ARA setup can be with two method ODBC method and MySQL Method

Configuring ODBC Method RealTime

Install and configure the unixodbc packages in the linux box before compiling asterisk. Once Asterisk has been compiled successfully go into /etc/asterisk/res_odbc.conf and configure your ODBC connections.

[asterisk]
enabled => no
dsn => asterisk
username => username
password => password
pre-connect => yes

Make sure that you configure the odbc ini files properly.

odbc.ini

[asterisk]
Driver = /usr/local/lib/libmyodbc3.so
Description = MyODBC 3.51 Driver DSN
SERVER = xx.xx.xx.xx (IP address of database server)
PORT =
USER = root
Password = root
Database = asterisk (database name)
OPTION = 3
SOCKET =

odbcinst.ini

[MySQL]
Description = ODBC for MySQL
Driver = /usr/lib/odbc/libmyodbc.so
Setup = /usr/lib/odbc/libodbcmyS.so
FileUsage = 3

Configuring MySQL Method RealTime

Install all the required packages for MySQL-Server and MySQL-Client in the linux box before compiling Asterisk-addons package. And when compiling asterisk-addons make sure the below mentioned application enabled.

  • app_addon_sql_mysql – Asterisk cmd MYSQL – Access MySQL from the Dialplan
  • cdr_addon_mysql –Asterisk cdr mysql – Store CDR records in a MySQL database.

Now we configure the database configuration for asterisk on res_mysql.conf file.

Database server tables configuration and Asterisk configuration will be discussed in next article.