Showing posts with label Integration. Show all posts
Showing posts with label Integration. Show all posts

Monday, January 3, 2011

Installing CentOS 5.5 with Linux Integration Services 2.1 on Hyper-V R2

Hyper-V R2 brings some powerful virtualization to the table for those of us who do not have either the skills or the desire to work with virtual machineware. Most fans of Hyper-V are also likely to be well versed in Windows and may often lack the knowledge to rummage through Linux. Although there are many resources available regarding Linux on Hyper-V, I felt that most assumed the reader had intimate knowledge with Linux, which is often not the case.

For Windows administrators new to Linux who wish to provide virtualized services to their end-users, my recommendation is to stick to CentOS 5.5. Being a close derivative of Red Hat Enterprise Linux (RHEL), the officially supported distribution by Microsoft, installation of the Integration Components is simplified and stability is matched to what is found when running RHEL.

You will need the CentOS 5.5 x64 installation DVD ISO (CentOS-5.5-x86_64-bin-DVD-1of2.iso) which can be found at http://isoredirect.centos.org/centos/5/isos/x86_64/.

You will also need the Linux Integration Services 2.1 ISO (LinuxIC v21.iso) available through the Microsoft Download Center at http://www.microsoft.com/downloads/en/details.aspx?FamilyID=eee39325-898b-4522-9b4c-f4b5b9b64551.

To create the initial virtual machine, you will need to use the Legacy Network Adapter and limit yourself to a single CPU. You will also want to take time to decide how large of a VHD to allocate ahead of time as expanding a Linux partition can be a little complicated. Personally, I find 20GB to be sufficient for small, single purpose Linux virtual machines.

After booting from the CentOS ISO, you are presented with the choice to do a graphical or a text mode installation. To choose the text mode installation (as used here), simply type “linux text” at the boot: prompt and hit enter.

To navigate throughout the next portion of the text mode installation, use the Tab key to navigate between fields and the Space key to select options or hit buttons.

You will be asked if you would like to do a media test. You can safely skip this.

The initial welcome screen to the installation process.

Choose your language as appropriate.

And your keyboard.

You must then partition your VHD for Linux. As you will be starting off with a fresh VHD, you can simply choose “Use free space on selected drives and create default layout.” and continue with OK.

Be sure to hit No to continue as hitting Yes will simply bring you back to the previous screen.

As long as you have properly configured your virtual machine to use the Legacy Network Adapter, you will be presented with the opportunity to have the installation configure it for you.

Check the “Enable IPv4 support” option and hit OK to continue.

Switch to the “Manual address configuration” option and enter your IP address and netmask as appropriate.

Continue on by entering your default gateway (usually your router or your network’s default route). If you have internal DNS servers for your network, enter them here or alternatively, you can use OpenDNS.

The name of your virtual machine is defined here as the hostname.

Select your time zone and continue.

Be sure to choose a secure root password as the root user has complete access to the entire virtual machine and SSH is enabled on first boot.

For a bare minimum installation, uncheck all of the packages, check “Customize software selection” and hit OK.

Uncheck all package groups and continue. Anything you require can later be installed by yum anyway.

Installation will begin once you continue past this screen.

Once installation is complete, you will be required to reboot.

After rebooting, you will be ready to login. At this point, I recommend connecting via SSH in order to copy and paste commands.

The first thing that must be done is to update all the base packages and upgrade the kernel to the latest version. Simply run a “yum update”, then reboot.

yum updatereboot

You will need to install the required packages “kernel-devel”, “gcc” and “make” packages to compile and install the Linux Integration Components. Also, I suggest installing the VIM text editor.

yum install kernel-develyum install gccyum install makeyum install vim-enhanced.x86_64

Attach the Linux Integration Services ISO. Once attached, you will need to mount the cdrom. You must then copy and compile the source in a temporary folder. Finally, you will be able install the Linux Integration Components. “make” will compile the source, then “make install” will install the compiled drivers.

mkdir -p /mnt/cdrommount /dev/cdrom /mnt/cdromcp -rp /mnt/cdrom /opt/linux_icumount /mnt/cdromcd /opt/linux_icmakemake install

The time synchronisation component is not compatible with CentOS, therefore you will need to install “adjtimex”.

yum install adjtimex

You will need to shutdown the virtual machine in order to enable the Synthetic Network Adapter and increase the number of CPUs allocated. To do so, run the shutdown command.

shutdown -h -t 0 0

Change the settings in Hyper-V once the virtual machine has completely shutdown.

Start the virtual machine and log in. You will need to reconfigure the network adapter as “eth0? will have disapeared and a new adapter, “seth0?, will have taken its place.

The easiest way to do this is to edit the MAC address in the “eth0? backup file to match the MAC address of the Network Adapter as displayed in the virtual machine settings in Hyper-V, then copy the backup file as “seth0? and restart the network service.

vi /etc/sysconfig/network-scripts/ifcfg-eth0.bak(edit HWADDR)(save and exit)rm -f /etc/sysconfig/network-scripts/ifcfg-seth0mv /etc/sysconfig/network-scripts/ifcfg-eth0.bak /etc/sysconfig/network-scripts/ifcfg-seth0service network restart

If all went well, you will find yourself with a bare minimum install of CentOS 5.5 running the latest kernel and version 2.1 of the Linux Integration Services. Fully virtualized and synthetic. You can now enjoy the many benefits of Hyper-V Linux such as the ability to shutdown the virtual machine without the root password.

Saturday, October 23, 2010

Asterisk Cisco CallManager Integration

Why integrate Cisco CallManager and Asterisk?
Features: Asterisk provides features that CallManager by itself does not. Migration: Allow a gradual migration from a closed source PBX to open source PBX.
There are two ways to accomplish this: Using H.323: In CCM Asterisk appears as a H.323 Gateway. Using SIP (only in CCM 4.X+): Open up the CallManager Administration web page. Since a SIP trunk requires MTP, make sure you have one: Service -> Media Resource -> Media Termination Point Normally your CallManager server should appear there if you do an empty query if not, go to the CallManager Serviceabilty web page, and activate the Cisco IP Voice Media Streaming App service Select Device->Trunk from the menu. Image
Select the "Add a New Trunk" link from the upper right hand corner of the "Find and List Trunks" page. Image
Select "SIP Trunk" as the "Trunk type" and "SIP" as the "Device Protocol". Click on the "Next" button. Image
Enter a name in the "Device Name". Valid characters are letters, numbers, dashes, dots (periods), and underscores. The device name is only used internally in Call Manager so it can be anything you want. Enter a description in the "Description" field. Select a device pool. Enter the IP address of your Asterisk server in the "Destination Address" field. Select "UDP" as the "Outgoing Transport Type". Modify any other settings as needed for your ((CiscoCallManager|CallManager) installation. Click on the "Insert" button. Add route patterns in CallManager that send calls to Asterisk using the SIP trunk that you just created. In sip.conf:

[callman01]
type=friend
context=incoming
host=10.0.0.1
disallow=all
allow=ulaw
allow=alaw
nat=no
canreinvite=yes
qualify=yes

[callman02]
type=friend
context=incoming
host=10.0.0.2
disallow=all
allow=ulaw
allow=alaw
nat=no
canreinvite=yes
qualify=yes

It is important to use "qualify" in sip.conf since Call Manager does not support registration for SIP trunks.

Here is a simple example of how to send calls to Call Manager in extensions.conf:


[macro-dialout-callmanager]

exten => s,1,ChanIsAvail(SIP/callman02&SIP/callman01)
exten => s,2,Dial(${CUT(AVAILCHAN||1)}/${ARG1})
exten => s,3,Hangup

exten => s,102,Congestion

[outgoing]

exten => _XXXX,1,Macro(dialout-callmanager,${EXTEN})
exten => _9NXXXXXX,1,Macro(dialout-callmanager,${EXTEN})
exten => _91NXXNXXXXXX,1,Macro(dialout-callmanager,${EXTEN})

exten => i,1,Congestion

Cisco Call Manager Express 3.3

CCME can be configured as follows:

Configure a dial-peer pointing to your asterisk server on the CCME 3.3 router:

dial-peer voice 13 voip
destination-pattern 22..
session protocol sipv2
session target ipv4:10.0.0.1
dtmf-relay rtp-nte
codec g711alaw

And configure asterisk exactly the same as above for Call Manager 3.2, except for voicemail to work add:


Into your sip.conf entry.

Cisco Call Manager 6.1

It' very simitar to 4.1, but you must change the UDP protocol of sip in this menu:

System > Security Profile > SIP Trunk Security Profile

Outgoing Transport Type: UDP

CM6SIPTrunkSecurityProfile2.jpg

Here is the step by step guide for h323 trunk to cisco call manager.
(valid for both for asterisk and trixbox)

First of all do this:

cp /etc/asterisk-1.2.8-samples/ooh323.conf /etc/asterisk
amportal stop
amportal start

Then apply the followings as stated.

A- Here is my working ooh323.conf file;

; Objective System's H323 Configuration example for Asterisk
; ooh323c driver configuration
;
; general section defines global parameters
;
; This is followed by profiles which can be of three types - user/peer/friend
; Name of the user profile should match with the h323id of the user device.
; For peer/friend profiles, host ip address must be provided as "dynamic" is
; not supported as of now.
;
; Syntax for specifying a H323 device in extensions.conf is

For Registered peers/friends profiles
; OOH323/name where name is the name of the peer/friend profile.
;

For unregistered H.323 phones
OOH323/ip:port OR if gk is used OOH323/alias where alias can be any H323
; alias
;
; For dialing into another asterisk peer at a specific exten
; OOH323/exten/peer OR OOH323/exten@ip
;
; Domain name resolution is not yet supported.
;
; When a H.323 user calls into asterisk, his H323ID is matched with the profile
; name and context is determined to route the call
;
; The channel driver will register all global aliases and aliases defined in
; peer profiles with the gatekeeper, if one exists. So, that when someone
; outside our pbx (non-user) calls an extension, gatekeeper will route that
; call to our asterisk box, from where it will be routed as per dial plan.

general
;Define the asetrisk server h323 endpoint

;The port asterisk should listen for incoming H323 connections.
;Default - 1720
port=1720

;The dotted IP address asterisk should listen on for incoming H323
;connections
;Default - tries to find out local ip address on it's own
bindaddr=10.1.23.101

;This parameter indicates whether channel driver should register with
;gatekeeper as a gateway or an endpoint.
;Default - no
gateway=no

;Whether asterisk should use fast-start and tunneling for H323 connections.
;Default - yes
;faststart=no
;h245tunneling=no

;H323-ID to be used for asterisk server
;Default - Asterisk PBX
h323id=ObjSysAsterisk
e164=100

;CallerID to use for calls
;Default - Same as h323id
callerid=asterisk

;Whether this asterisk server will use gatekeeper.
;Default - DISABLE
;gatekeeper = DISCOVER
;gatekeeper = a.b.c.d
gatekeeper = DISABLE

;Location for H323 log file
;Default - /var/log/asterisk/h323_log
;logfile=/var/log/asterisk/h323_log

;Following values apply to all users/peers/friends defined below, unless
;overridden within their client definition

;Sets default context all clients will be placed in.
;Default - default
context=default

;Sets rtptimeout for all clients, unless overridden
;Default - 60 seconds
;rtptimeout=60 ; Terminate call if 60 seconds of no RTP activity
; when we're not on hold
rtptimeout=3
;do not drop this below 3 nor increase much...other wise
;you will not able to call same number again for some time because
;it hangs.Now 3 seconds waiting is needed and it is acceptable.

;Type of Service
;Default - none (lowdelay, thoughput, reliability, mincost, none)
;tos=lowdelay

;amaflags = default

;The account code used by default for all clients.
;accountcode=h3230101

;The codecs to be used for all clients.Only ulaw and gsm supported as of now.
;Default - ulaw
; ONLY ulaw, gsm, g729 and g7231 supported as of now
disallow=all ;Note order of disallow/allow is important.
allow=gsm
allow=ulaw
allow=g729
allow=g723

; dtmf mode to be used by default for all clients. Supports rfc2833, q931keypad
; h245alphanumeric, h245signal.
;Default - rfc 2833
dtmfmode=rfc2833

User/peer/friend definitions
; User config options Peer config options
; ------------------ -------------------
; context
; disallow disallow
; allow allow
; accountcode accountcode
; amaflags amaflags
; dtmfmode dtmfmode
; rtptimeout ip
; port
; h323id
; email
; url
; e164
; rtptimeout

;

;Define users here
;Section header is extension
myuser1
type=user
context=context1
disallow=all
allow=gsm
allow=ulaw

mypeer1
type=peer
context=context2
ip=a.b.c.d ; UPDATE with appropriate ip address
port=1720 ; UPDATE with appropriate port
e164=101

myfriend1
type=friend
context=default
ip=10.0.0.82 ; UPDATE with appropriate ip address
port=1820 ; UPDATE with appropriate port
disallow=all
allow=ulaw
e164=12345
rtptimeout=60
dtmfmode=rfc2833

B-here is the trunk configuration to cisco call manager;

Dial rules:8XXXX
custom dial string:OOH323/$OUTNUM$@10.8.23.5:1720

C-here is outbond routes

Route name:h323trunk
Dial rules:8XXXX
OOH323/$OUTNUM$@10.8.23.5:1720

D-For cisco call manager

first create a h323 gateway with asterisk ip
then create route patern and route to this gateway
be carefull abaout regions codecs because you must allow these codecs in oh323.conf as i stated in the beginning conf file.

Brothers i recommend you update your trixbox to version 1.2.3
as described in update trixbox section in that way your addon versions will be change and you will have more stable h323 trunk in long term.(you will just change addon versions in the upper part.)


FOR SER & TRIXBOX INTEGRATION FOLLOW THE LINK BELOW:
http://www.trixbox.org/modules/newbb/viewtopic.php?topic_id=7786&post_id=30904&order=0&viewmode=thread&pid=30735&forum=2#forumpost30904 Brothers,
The addons used in trixbox 2.0 and trixbox 1.2.3 are causing the asterisk crash...
saying core dumped...

here is the solution;
on trixbox 1.2.3 (NOT TRIXBOX 2.0 !!!);

STEP 1:DELETE CURRENT ADDONS RPM ;
rpm -qa | grep asterisk-addons

rpm -e asterisk-addons-1.2.4_1.2.12.1-1.294


STEP2:LOAD ADDONS VERSION 1.2.3

rpm -i asterisk-addons-1.2.3-1.219.i386.rpm

(i put in the link->http://n.domaindlx.com/ergenay/rpms/asterisk-addons-1.2.3-1.219.i386.rpm)(sometimes page is under load so try your chance.)
(also same link on "http://www.ergenay.com" alüminyum korkuluk )

amportal stop

amportal start

then it works perfect.

on trixbox 2.0 it is NOTworking whatever you do...
so STAY on 1.2.3 and DO rpm change if you are using "ooh323".

Wednesday, August 25, 2010

Installing Linux Integration Services v2.1 Hyper-V R2 On CentOS 5

Virtualization Introduction

When installed on a virtual machine that is running a supported Linux operating system, Linux Integration Services for Hyper-V provides the following functionality:

Driver support for synthetic devices: Linux Integration Services supports the synthetic network controller and the synthetic storage controller that were developed specifically for Hyper-V. Fastpath Boot Support for Hyper-V: Boot devices now take advantage of the block Virtualization Service Client (VSC) to provide enhanced performance. Timesync: The clock inside the virtual machine will remain synchronized with the clock on the host. Integrated Shutdown: Virtual machines running Linux can be shut down from either Hyper-V Manager or System Center Virtual Machine Manager, using the "Shut Down" command.
Symmetric Multi-Processing (SMP) Support: Supported Linux distributions can use up to 4 virtual processors (VP) per virtual machine.
1. Download Linux Integration Components v2.1

a. Download Linux Integration Components v2.1 from Microsoft Download site.

b. Extract the .exe file into a temp folder. You will need only LinuxIC v21.iso file.

c. Place the LinuxIC v21.iso file into your VM host server where you can mount the ISO as a CDROM for your Centon Virtual Machine.

 

2. Installation

You will need Development Tools installed to be able to compile the Integration Components. You could do that by running yum:

yum groupinstall "Development Tools"

NOTE: This command will try to use your network connection to download and if you used Synthetic Network Adapter for your Hyper-V machine you will not have internet connection. So make sure to install Development Tools during your Centos initial installation.

Now make sure you added LinuxIC v21.iso file to your Hyper-V CDROM as Image.

As the root user, mount the CD in the virtual machine by issuing the following commands at a shell prompt:

mkdir /mnt/cdrom
mount /dev/cdrom /mnt/cdrom

Copy Linux Integration Services to the virtual machine and unmount CDROM that no longer needed:

mkdir /opt/linux_ic_v21_rtm
cp