Installing FFmpeg & Dependencies For FLV Conversion

February 12, 2009
This guide should teach you how to install all the needed dependencies for ClipShare or other flash video conversion scripts. It’s primarily focused on RHEL or CentOS installs for the dependencies of these packages. The links in this guide are fresh as of 08/04/2008. Here is what this guide will help you install:

It assumes you already have Apache and PHP5 installed as those are required dependencies as well. There will also be a guide up for installing PHP5.2.6 from source on CentOS/RHEL soon.

First install subversion and ruby via yum or up2date:

yum -y install subversion ruby

Now we need to install MPlayer & FFmpeg sources from SVN:

cd ~
svn checkout svn://svn.mplayerhq.hu/ffmpeg/trunk ffmpeg
svn checkout svn://svn.mplayerhq.hu/mplayer/trunk mplayer

Now we need some codecs:

wget http://www3.mplayerhq.hu/MPlayer/releases/codecs/essential-20071007.tar.bz2
tar xvjpf essential-20071007.tar.bz2
cd essential-20071007
mkdir /usr/local/lib/codecs
mv * /usr/local/lib/codecs/
chmod -R 755 /usr/local/lib/codecs/
cd ~

Next we will install LAME MP3 encoder:

wget http://internap.dl.sourceforge.net/sourceforge/lame/lame-398.tar.gz
tar xvzpf lame-398.tar.gz
cd lame-398
./configure –prefix=/usr
make
make install
cd ~

Now we install Libogg:

wget http://downloads.xiph.org/releases/ogg/libogg-1.1.3.tar.gz
tar xvzpf libogg-1.1.3.tar.gz
cd libogg-1.1.3
./configure –prefix=/usr
make
make install
cd ~

We need to make sure the correct lib directories are setup in ldconfig. Edit the /etc/ld.so.conf file and add the following lines:

/usr/lib
/usr/local/lib

Now save and run the following command:

ldconfig

To install libvorbis we will run:

wget http://downloads.xiph.org/releases/vorbis/libvorbis-1.2.0.tar.gz
tar xvzpf libvorbis-1.2.0.tar.gz
cd libvorbis-1.2.0
./configure –prefix=/usr
make
make install
cd ~

Now we will install FLVTool2:

wget http://rubyforge.org/frs/download.php/17497/flvtool2-1.0.6.tgz
tar xvzpf flvtool2-1.0.6.tgz
cd flvtool2-1.0.6
ruby setup.rb config
ruby setup.rb setup
ruby setup.rb install
cd ~

Next we should build MPlayer & MEncoder and it will take a while unless you have a nice dual or quad core machine. Note that I’ve seen the SVN version of these packages break before, so you can always download the source code from their site (a stable copy) if it fails on make:

cd mplayer
./configure –prefix=/usr
make
make install
cd ~

We will now build FFmpeg:

mkdir /usr/local/src/tmp
chmod 777 /usr/local/src/tmp
export TMPDIR=/usr/local/src/tmp
cd ffmpeg
./configure –prefix=/usr –enable-libmp3lame –enable-libvorbis –disable-mmx –enable-shared
make
make install
cd ~

Symlink some libraries if needed (ignore file exists errors):

ln -s /usr/local/lib/libavformat.so.50 /usr/lib/libavformat.so.50
ln -s /usr/local/lib/libavcodec.so.51 /usr/lib/libavcodec.so.51
ln -s /usr/local/lib/libavutil.so.49 /usr/lib/libavutil.so.49
ln -s /usr/local/lib/libmp3lame.so.0 /usr/lib/libmp3lame.so.0
ln -s /usr/local/lib/libavformat.so.51 /usr/lib/libavformat.so.51

Now build FFmpeg-PHP:

wget http://voxel.dl.sourceforge.net/sourceforge/ffmpeg-php/ffmpeg-php-0.5.3.1.tbz2
tar xvjpf ffmpeg-php-0.5.3.1.tbz2
cd ffmpeg-php-0.5.3.1
phpize
./configure –prefix=/usr
make
make install
cd ~

Now you need to copy the ffmpeg.so file that was created from it’s location (from the build) to /usr/local/lib/php/extensions/, it should look something like:

cp /usr/local/lib/php/extensions/no-debug-non-zts-????????????/ffmpeg.so /usr/local/lib/php/extensions/

Modify your php.ini. Try /etc/php.ini or /usr/lib/php.ini or /usr/local/Zend/etc/php.ini as they are common locations, you can do php -i | grep -i ini to find the proper location. Change the extension_dir value as seen below and add the extension as seen below:

extension_dir = “/usr/local/lib/php/extensions/”
extension=ffmpeg.so

Now save and restart apache and test php for ffmpeg on both apache via phpinfo() and from shell:

service httpd stop
killall -9 httpd
service httpd start
php -i | grep -i ffmpeg

Let me know via comments if you find some bugs or better ways to do things!

1

PPCLink HiCalc v2.5.1 (Your Trusted Calculator)

December 11, 2008
PPCLink HiCalc v2.5.1 (Your Trusted Calculator)
Requirements: Any Windows Mobile PocketPC, 3 MB of free RAM
Overview: Ultimate Calculator combines all of the features of other calculators in one. HiCALC lets you effortlessly compute confusing calculations at a speed.

Image

HiCALC – Your Trusted Calculator now with 15 modules – Arithmetic, Trigonometry, Matrices, Constants, Finance, Statistics, Biorhythm, Tip, Currency Converter, Unit converter, Base conversion, Graph, Date-time, Equation Solver and User�s macro, will make all your calculations become so simple as never before.

Release version 2.5.1
# Fixed bug on unit converter in speed category
# Other minor bug fixes.

More Info:

Code:
http://www.ppclink.com/?ppclink=product&do=view&id=44

Download Instructions:
http://www.uploadjockey.com/download/6819009/hicalc_arm.cab
http://www.megaupload.com/?d=4PYEAIA9
http://www.ziddu.com/download/1682804/hicalc_arm.rar.html

Keygen Only:
http://www.uploadjockey.com/download/2352676/ppclink.hicalc.rar
http://www.ziddu.com/download/1682820/PPCLINK.HiCalc.rar.html

< CAB file: hicalc_arm.cabRequest serialInsaneSiMiLaR > – G & a

0

Panoramic Calc Pro v2.0.5

December 11, 2008
Panoramic Calc Pro v2.0.5
Requirements: Windows Mobile PocketPC
Overview: Panoramic Calc Pro offers more power, more features and the most accuracy than any other mobile calculator.
Image Image

Panoramic Calc Pro offers more power, more features and the most accuracy than any other mobile calculator. With 10 powerful calculators and 10 additional Financial calculators, Calc Pro is by far the top choice to replace your default Windows Mobile calculator. With five calculator modes, five display options, and four skins, Calc Pro works the way You want. You can use Panoramic Calc Pro to perform any of the standard or advanced operations for which you would normally use a handheld calculator.

Here are some key features of “Panoramic Calc Pro”:
· Ten calculators included for uncluttered and efficient performance: Standard, Scientific, Base Conversions, Graphing, Unit Converter, World Currencies, Date & Time, Constants, Financial, and Statistics
· The Financial Calculator contains 10 powerful calculator worksheets to help solve common financial problems
· Five (5) display options: normal, fractions, scientific, engineering and fixed (2-10 decimal places)
· Five (5) calculator modes: simple, algebraic, direct algebraic, expression and RPN
· Copy and Paste functionality allows transfer of results to other programs, such as Excel and Word
· Option for use of regional settings to format onscreen answers
· Easy to use touch menu systems for quick and intuitive navigation
· Record Tape option outputs a text record of all your calculations so you can review later
· Quick Toggle button to return to the previous calculator
· Four (4) custom skins
· Finger friendly buttons and menus for touch screen devices
· Simple to use – most options are available just by tapping the display.
· “Smart Input” technology prevents you from entering invalid expressions and avoids errors

More Info:

Code:
http://www.panoramicsoft.com/mobileapps/calcpro/Calcpro.php

Download Instructions:
http://www.uploadjockey.com/download/13 … v2.0.5.zip

Mirror:
http://www.ziddu.com/download/2888070/P … 5.zip.html

Thanks to Kamachi

< CAB file: Panoramic.Calc.Pro.v2.0.5.cabNo serial neededSiMiLaR > – G & a

0

FreeSwitch Installation

November 26, 2008

FreeSwitch Installation Howto:

This FreeSwitch Installation is derived from FreeSwitch Wiki Installation. I used this to install to my Debian Etch Server that runs in AMD Opteron Dual Proc Server.

Download Source Tarball

FreeSWITCH 1.0.1 “Phoenix” Release

Here is the much awaited Freeswitch 1.0.1 “Phoenix” tarball located at http://files.freeswitch.org/

Follow the instructions below to be a proud user:

wget http://files.freeswitch.org/freeswitch-1.0.1.tar.gz
tar xvfz freeswitch-1.0.1.tar.gz
cd <freeswitch dir>
./configure
make all install

Quick and Dirty Install for the Impatient Ones

If you are impatient and know Linux at least moderately well then hop over to the quick and dirty install page!

Binary Installation or ISO CD-ROM Installation

The FreeSWITCH™ project maintains binary packages for a number of Linux distributions on the openSUSE Build Service. All external dependencies required by these FreeSWITCH™ packages are either part of the base Linux distros or available in the repository at: http://software.opensuse.org/download/network:/telephony/

There are unofficial Ubuntu Hardy packages available at;

deb http://ppa.launchpad.net/hads/ubuntu hardy main

Another option is the trixswitch ISO install package, a CentOS-based CD-ROM image that creates a boot CD that will automatically install CentOS and FreeSWITCH™.

Warning

installing trixswitch will erase the hard drive!

If your preferred Linux distro and version is listed there, then we recommend you use these packages. If however you wish to build the source yourself, continue reading.

Obtaining the Source Code

Ensure that you have met the dependencies listed below. Once that is completed, you have two methods to obtain the source code. Via subversion (svn) or by downloading a tarball. Subversion provides access to the latest features and bug fixes, while the tarballs are created nightly. There are subversion clients for windows as well as Unix-like systems. This document assumes that you are using a command-line subversion client. You will want to save the source somewhere convenient, execute the following from the directory appropriate for your operating system eg c:\source, /usr/local/src or /usr/src .

Type This

You can download Freeswitch 1.0.1 release source in a tarball from the following links.

Type This
Type This

You can download the latest tagged release source in a tarball from the following link.

Type This

Or you may download other tarballs from marked releases or binary releases from the following link

Type This

If you download the tarball you will need to untar it, in Windows you may use a tool like WinZip Unix-like systems come with tar preinstalled (and most modern ones with gunzip). If you are in a Unix-like system execute the following:

Type This
tar zxvf freeswitch-snapshot.tar.gz

If you are facing problems because of web proxy you could try something like this:

Type This
svn co http://svn.freeswitch.org/svn/freeswitch/trunk freeswitch.trunk
 cd freeswitch.trunk
 svn propedit svn:externals . --editor-cmd=[your favorite editor here]
 remove the :81 from both externals urls
 save/exit
 svn update

Compiling the Source Code

Windows

  • Open Freeswitch.sln
  • Right click the main solution node at the top of the Solution Explorer
  • Right click and select Build

Note that building for Windows within a tree that has previously been built for a different platform will result in numerous errors and build failures. To resolve, delete the following generated files:

  • libs/apr/include/apr.h
  • libs/js/config.h
  • libs/js/src/jsautocfg.h
  • libs/js/nsprpub/pr/include/prcpucfg.h
  • libs/iksemel/include/config.h
  • libs/xmlrpc/xmlrpc_config.h
  • libs/libsndfile/src/sfconfig.h; also rename libs/win32/libsndfile/config.h to libs/win32/libsndfile/sfconfig.h
  • libs/sofia-sip/libsofia-sip-ua/su/sofia-sip/su_configure.h

then Rebuild the solution.

Building under VS 2008 may require that you disable “Enable Minimal Rebuild” in the properties pane for FreeSwitchCoreLib project if VS reports an internal compilation error in SimpleGlob.h.

You may also need to “Enable default libraries” in the properties pane for XML Interfaces\mod_xml_rpc if VS complains of numerous unresolved external symbols, e.g., _memset, _strcmp.

After following the instructions above to build for Windows, you will need to delete “libs/js/nsprpub/pr/include/prcpucfg.h” and rerun “./bootstrap.sh” before building for another platform.

Unix-like systems (Linux, BSD, OS X)

All commands should be executed from within the main source repository. If you downloaded a tarball you may skip this step, jumping to ./configure

Type This
./bootstrap.sh
Informational Tip

Some Linux distributions (Debian, for example) include both autoconf2.13 and autoconf2.50 along with a script called “autoconf” that automatically selects between the two. The numbers appended to the programs show which flavor of autoconf it provides, but autoconf2.50 can actually be autoconf version 2.61. bootstrap.sh checks for the version of autoconf, but the autoconf script returns version 2.13 by default. If bootstrap.sh fails with a complaint about needing autoconf 2.59 or above and you have installed the prerequisites listed below, try:


Type This
AUTOCONF=/usr/bin/autoconf ./bootstrap.sh

By default FreeSWITCH is installed in the /usr/local/freeswitch prefix. To configure:

Type This
./configure

If you don’t have root access add –prefix=~/freeswitch to the command. For configuring with ODBC support see here.

Type This
./configure --prefix=/usr/local/freeswitch
Informational Tip

Not all Debian releases have /usr/bin/gcc. Instead you can find something like /usr/bin/gcc-X.Y so ./configure will fail, if it is missing. To execute without problem ./configure, try:

Type This
ln -s /usr/bin/gcc-X.Y /usr/bin/gcc

on such a release. Remember to change X.Y with the correct numbers. It will work like a charm.


On ubuntu hardy, configure will complain about missng curses library. libcurses5 is installed by default, so just make a symbolic link:

Type This
ln -s /lib/libncurses.so.5 /lib/libncurses.so

You should now create a modules.conf.

Type This
cp build/modules.conf.in modules.conf

Edit modules.conf so that it will build the modules you desire. If you are unsure, leave this to the defaults. FreeSWITCH™ comes with a good set of modules as the default, until you become more familiar with FreeSWITCH™ it is advised that you not edit modules.conf. A # at the beginning will omit that module from being built. A list of the modules can be obtained from the Modules page.

Once you are done configuring the build environment you need to run the following commands:

Type This
make
make install
make sounds-install
make moh-install

Suse 10.3 Note: Compiling on Suse 10.3 if you get this error:

libtool: link: `src/jsapi.lo' is not a valid libtool object
make[6]: *** [libjs.la] Error 1
make[5]: *** [/usr/src/freeswitch.trunk/libs/js/libjs.la] Error 2
make[4]: *** [all] Error 1
make[3]: *** [mod_spidermonkey-all] Error 1
make[2]: *** [all-recursive] Error 1

Try the following procedure:

Type This
cd libs/js/
make clean
make
cd ../..
make

I don’t know why it won’t build correctly on Suse 10.3 the first time around, but bkw suggested that as a workaround mid July 2008 and it seems to work for both the x86 and x86_64 platforms.
There are also higher bitrate sounds available for download and installation with:

Type This
make uhd-sounds-install
make uhd-moh-install
make hd-sounds-install
make hd-moh-install

FreeBSD

Installing FreeBSD dependencies:

SVN: Several Choices.

GNUMAKE: The GNU version of make. (will be installed automatically as a dependency to autoconf)

AUTOCONF: Version 2.50 or higher. Note that version 2.62 does not seem to work (at the time writing at least), ./configure will fail in libsndfile if you are using that version. Version 2.61 seems to work just fine.

Type This
pkg_add -r autoconf261

GCC: Version 3.95 or higher

Type This
pkg_add -r gcc34

WGET: Almost any version

Type This
pkg_add -r wget

AUTOMAKE: Version 1.70 or higher

Type This
pkg_add -r automake19

GLIBTOOL: Version 1.5.14 or higher

Type This
pkg_add -r libtool

LIBNCURSES: Almost any version

Type This
pkg_add -r ncurses

SVN: Subversion

Type This
pkg_add -r subversion

Get source with wget:

Type This
cd /usr/src
/usr/local/bin/wget http://files.freeswitch.org/freeswitch-snapshot.tar.gz
tar zxvf freeswitch-snapshot.tar.gz
cd freeswitch-snapshot

Note: ./bootstrap.sh has already been run for Full and Release Candidate versions.
Or get source with SVN

Type This
cd /usr/src
/usr/local/bin/svn co http://svn.freeswitch.org/svn/freeswitch/trunk freeswitch.trunk
cd freeswitch.trunk

Build Process After downloading the source with svn or with wget

Type This
./bootstrap.sh
./configure
gmake install
gmake samples
gmake sounds-install
gmake moh-install

Make sure you are using gmake and not make, it does not build properly with make at the moment on FreeBSD.

Run Freeswitch

Type This
cd /usr/local/freeswitch/bin
./freeswitch

Cross Compiling for ARM on Linux

These instructions were tested on Linux 2.6.18 (Centos 5) Cross compiling Linux 2.6.21 for ARM using gcc 3.4.6

All commands should be executed from within the main source repository.

Create a modules.conf. (this can be done after configure but it is convenient to do it now)

Type This
cp build/modules.conf.in modules.conf

Decide if you want to include cpp code, if you are running on a small embedded system and don’t want to install the 2+MBytes libstdc++.so edit Makefile.am in the root of the source repository and remove all references to switch_cpp.cpp and switch_cpp.h, there is one of each. This will also disable all of FreeSWITCH’s language modules, edit modules.conf and comment out all the language modules, that is all the lines starting with “language”. You can still write C applications with the cpp disabled.

I was not able to get javascript working so you should comment out languages/mod_spidermonkey* from modules.conf and comment out the line “AC_CONFIG_SUBDIRS(libs/js)” in the file configure.in. If you figure out a way to get it working update this page, I wasn’t motivated as I did not intend to use it.

If you want to reduce the build time you can comment out other support libraries from configure.in, I only used and tested the following, it saves a lot of build time and I don’t know if the other libraries will build: libs/srtp libs/sqlite libs/libresample libs/libedit libs/pcre libs/apr libs/apr-util libs/codec/ilbc libs/sofia-sip libs/libsndfile libs/voipcodecs I already had a version of curl cross compiled so I did not use the version that comes with FreeSWITCH.
Run this command next, it will create all the configure scripts

Type This
./bootstrap.sh
Informational Tip

Some Linux distributions (Debian, for example) include both autoconf2.13 and autoconf2.50 along with a script called “autoconf” that automatically selects between the two. The numbers appended to the programs show which flavor of autoconf it provides, but autoconf2.50 can actually be autoconf version 2.61. bootstrap.sh checks for the version of autoconf, but the autoconf script returns version 2.13 by default. If bootstrap.sh fails with a complaint about needing autoconf 2.59 or above and you have installed the prerequisites listed below, try:


Type This
AUTOCONF=/usr/bin/autoconf ./bootstrap.sh

Several of the packages cannot detect capabilities of the Cross Compile environment correctly so configure needs to be called with many options to get it to work correctly. Check that the options I have match your Cross Compile environment. Prior to running this the following environment variables must be set: TARGET_CC – the cross compiler HOSTCC – the host compiler CFLAGS – CFLAGS for the cross compiler CPPFLAGS – CPPFLAGS for the cross compiler LDFLAGS – LDFLAGS for the cross compiler These environment variables also need to be set to point to the appropriate tool in the cross compiler’s toolchain CC, CXX, AR, LD, GCC, AS, NM, RANLIB, STRIP, SIZE, OBJCOPY & OBJDUMP. Not sure if they are all used, but this is what worked for me.

You will need to adjust some setting to fit your environment, set the “path” in ac_cv_path__libcurl_config and –with-curl, or remove them if you use the version that comes with FreeSWITCH. Set –with-modinstdir to point to where the FreeSWITCH modules will be on the target filesystem.

Type This
export config_TARGET_CC="$(TARGET_CC)"; \
   export config_BUILD_CC="$(HOSTCC)"; \
   export config_TARGET_CFLAGS="$(CFLAGS)"; \
   export config_TARGET_LIBS="$(LDFLAGS)"; \
   export CC_FOR_BUILD="$(HOSTCC)"; \
   export CFLAGS_FOR_BUILD=" "; \
   export ac_cv_file__dev_zero=no; \
   export apr_cv_tcp_nodelay_with_cork=yes; \
   export ac_cv_sizeof_ssize_t=4; \
   export ac_cv_file_dbd_apr_dbd_mysql_c=yes; \
   export ac_cv_path__libcurl_config=/path/curl-config; \
   export apr_cv_mutex_recursive=yes; \
   export ac_cv_func_pthread_rwlock_init=yes; \
   export apr_cv_type_rwlock_t=yes; \
       ./configure \
       --target=$(GNU_TARGET_NAME) \
       --host=$(GNU_TARGET_NAME) \
       --build=$(GNU_HOST_NAME) \
       --with-libcurl=/path/install \
       --with-devrandom=/dev/urandom \
       --with-modinstdir=/mod \

If you have not done so edit modules.conf so that it will build the modules you desire. If you are unsure, leave this to the defaults. FreeSWITCH™ comes with a good set of modules as the default, until you become more familiar with FreeSWITCH™ it is advised that you not edit modules.conf. A # at the beginning will omit that module from being built. A list of the modules can be obtained from the Modules page.

Once you are done configuring the build environment you need to run the following command. (Your PATH must point to the cross compiler toolchain)

Type This
make

I found little use for make install as I didn’t want the Cross Compiled version installed on the build system. You will need to copy the freeswitch binary, library and modules directly out of the build tree into where ever you need them.

Compile Errors?

Did you get any compile errors or notice any bugs? Remember FreeSWITCH is still in development and requires contribution from everybody. If you encounter a bug please file a bug report at http://jira.freeswitch.org or email freeswitch-dev@lists.freeswitch.org (we prefer that you use Jira so that we can track all issues). Sometimes bugs are fixed by the time you notice them, if you do encounter a bug you may wish to get a more recent version of the source code and rebuild.

Rebuilding

After doing a “svn update” or changing some source files, you may want to clean out your build area. To ensure that your build is clean, you should execute:

Type This
make clean modwipe

Alternatively, you can simply execute “make current” which will handle the svn up, clean up, and rebuild in one step:

Type This
make current
Warning

NOTE: make current will take a while as it completely cleans the build environment and rebuilds FreeSWITCH!

Also, the clean targets leave the “modules.conf” file. To see if there are any new modules you may want to execute

Type This
diff build/modules.conf.in modules.conf

Once you are satisfied with your options, follow the build directions above. If you have enabled a module that was not previously enabled, and you want to build just that module, or rebuild one that has changed, you may execute the following:

Type This
make mod_name-install

where mod_name is the name of the module you wish to rebuild.

Informational Tip

that doing a “make install” will not overwrite any existing files in $(PREFIX)/conf if there already exists a $(PREFIX)/conf/freeswitch.xml file.


Prerequisites

In order to build FreeSWITCH™ from the source code, you will need to have several tools installed. The list varies from platform to platform, and are listed here. Some distributions come with these requirements while others require you to obtain them.

Unix-like systems

  • SVN: an SVN client gives you access to the current code repository. Alternatively you may select to get a nightly tarball of the source instead of using SVN.
  • GNUMAKE: The GNU version of make.
  • AUTOCONF: Version 2.50 or higher
  • AUTOMAKE: Version 1.70 or higher
  • GLIBTOOL: Version 1.5.14 or higher
  • GCC: Version 3.95 or higher
  • WGET: Almost any version
  • LIBNCURSES: Almost any version

Mac OS X

You will need to install the Apple XCode development software (which requires registration, but is free). This should be performed first.

One easy way to install any missing tools is by using Fink. Fink is a MacOS X tool that allows you to download convenient, pre-compiled binaries as well as source code for over 1,700 software packages.

The standard “fink install” includes the 1.5.10 version of glibtool, in order to get the 1.5.14 or later version, you must tell Fink to use the unstable branch (fink.conf man page), which then leads to an automatic download and install of the latest glibtool version.

Type This
"fink install svn-client make automake1.9 autoconf2.5 libtool14 wget"

However you install these tools, you will need to make certain they’re on your PATH.

pfSense package with GUI

pfSense FreeSWITCH package is available for pfSense 1.2.1. The package includes a GUI for FreeSWITCH’s configuration. The naming convention for the GUI has been designed to closely match the XML tag names and file names used in the default XML configuration as closely as possible. Install pfSense 1.2.1 based on FreeBSD7, Then go to System -> Packages and click the ‘+’ add button on the right to install FreeSWITCH from the packages list. The package is around 50mb because it includes 8khz, and 16khz sounds and music on hold. After the installation FreeSWITCH will automatically start. By default it will bind to the WAN IP.

To download pfSense 1.2.1 go to: http://www.pfsense.com/

The pfSense FreeeSWITCH package is being used on several live systems on dedicated hardware. It also has been tested and used from VMware and the audio quality is great.

If you already have a firewall in place and just want to use this package as an easy FreeSWITCH install you can turn off the firewall in pfSense by going to System -> Advanced -> Disable Firewall then put a check mark in ‘Disable all packet filtering.’

A pfSense based FreeSWITCH appliance under development and coming soon.

Trixswitch ISO

To work with souce, you will need to install the c++ compiler: yum install gcc-c++ and also for trixswitch v.0.4 (at least) yum install subversion yum install make

After the foregoing are installed, you can use the “svn” i.e. subversion system to download the source as described in the main article, above.

Then, you must run the following files to install automake,autoconf, and libtool:

fixlibtool.sh fixautomake.sh fixautoconf.sh

You can find these scripts in freeswitch/bin/trunk/build/

If you do wind up installing gcc-c++ after an aborted build, you must start back at the beginning with ./configure

Debian Linux

Debian uses the aptitude a.k.a. “apt” package manager. This allows you to quickly and easily install the prerequisites.

Type This
aptitude install subversion subversion-tools automake1.9 gcc-4.1 autoconf make wget libtool g++ libncurses5 libncurses5-dev

For Python integration, the following will work. Ensure you update /usr/bin/python to point at /usr/bin/python2.5 afterwards and configure will find a working Python library.

Type This
aptitude install python2.5 python2.5-dev

For TLS to work (needed to use Dingaling with gmail.com), also GNUTLS is necessary.

Type This
aptitude install libgnutls-dev

The source tree includes a debian/ directory, so you can build a package using standard debian tools. First, do the svn checkout into a directory named after the version in the debian/changelog (i.e. freeswitch-1.0~beta3) or move it there immediately after the svn checkout. Then you still need to start with the ./bootstrap.sh step, and once done you SHOULD NOT move the directory, as explicit paths will have been inserted into some of the Makefiles (don’t run bootstrap.sh if you are going to use the debuild tool since its not needed, it will do it for you).

One of the several ways of then building the package is:

  • ensure that you have the devscripts package installed.
  • Then (optionally) change the package version to something that includes the SVN version you’re building. This can be done by running dch -i and setting the version to something like: 1.0~beta3-0~svn7245
  • Perhaps (if you know what you’re doing) edit the modules to build that are set near the start of debian/rules
  • then just run debuild -i -us -uc -b (which might tell you that there are some build dependencies missing, in which case, just install them and try again)

After that, you should have a several .deb files in the directory above the source directory which can be installed with dpkg -i packagename.deb

Experience compiling FreeSwitch 1.0.1

Another way is to first install the “build-essential” package:

Type This
aptitude install build-essential

Then run “dpkg-buildpackage” to build all the required .deb files:

Type This
dpkg-buildpackage

(Start dpkg-buildpackage in the freeswitch source directory.) dpkg-buildpackage will complain about missing dependencies, use the list of missing packages as indicated above; for example:

Type This
aptitude install debhelper automake1.9 autoconf libtool unixodbc-dev libasound2-dev libcurl4-openssl-dev libssl-dev libogg-dev libvorbis-dev libperl-dev libgdbm-dev libdb-dev libgnutls-dev

and restart “dpkg-buildpackage” to finish building the Debian packages.

Recommend packages are freeswitch_1.0.1-1_i386.deb and freeswitch-lang-de_1.0.1-1_i386.deb, the packages freeswitch-spidermonkey, freeswitch-lua, freeswitch-perl, freeswitch-sounds-music-8000 and monit are suggested by the base freeswitch package. The package monit have to be installed from the standard repository.

Type This
dpkg -i freeswitch_1.0.1-1_i386.deb freeswitch-lang-en_1.0.1-1_i386.deb freeswitch-spidermonkey_1.0.1-1_i386.deb freeswitch-lua_1.0.1-1_i386.deb freeswitch-perl_1.0.1-1_i386.deb freeswitch-sounds-music-8000_1.0.1-1_i386.deb

Installing monit with aptitude:

Type This
aptitude install monit

Monit is used to monitor the fs process and restart it if it dies, but it won’t start unless it is configured. First you have to activate it in “/etc/default/monit” with setting the value startup to 1. The second step is to uncomment “set daemon 120″ in /etc/monit/monitrc and add “include /etc/monit/freeswitch.monitrc” in the end of the file. After all you should be able to start monit with the provided init-script.

Note: Once you install the packages (using “dpkg -i freeswitch_1.0.1-1_i386.deb”, etc.), the installation is non-standard since freeswitch will end up in /opt/freeswitch. The configuration files will be in /opt/freeswitch/conf.

For a Novice, Another Debian Way 1.0.2

I also found this guy’s instructions rather very simple for a novice courtsey of http://madhawa.com/?p=10

CentOS

CentOS uses yum as a package manager; the following installs the required prerequisites on a base install of CentOS 5.0 and 5.1.

Type This
yum install subversion autoconf automake libtool gcc-c++ ncurses-devel make

Fedora

Fedora also uses yum as a package manager; the following installs the required prerequisites on a base install of Fedora Core 8 and 9.

Type This
yum install subversion autoconf automake libtool gcc-c++ ncurses-devel make
Informational Tip

Note: if you are building mod_xml_curl, be aware that the latest Fedora releases have a broken libcurl shipped with yum and you will end up with an unloadable mod_xml_curl module due to missing symbols. You will probably need to configure FreeSWITCH using the –without-libcurl switch, this will make the build process to download and compile its own libcurl version, and then link the mod_xml_curl module with that.


Gentoo Linux

Warning

The FreeSWITCH ebuild has been removed from the Gentoo voip overlay, please use one of the supported binary-only distributions (or the manual installation method, if it really has to be Gentoo).

Or use a local overlay, I tested the following ebuilds and they work for me. –Cjc 04:48, 6 September 2008 (EDT)
There are some ebuilds available from axsentis.de.
See Gentoo bug #150527 and #233174 for more information.

Solaris

Solaris use the jds-cbe environment or fix path to working tr (as per FSBUILD-30).

Type This
export PATH=/usr/xpg4/bin:$PATH

OpenSolaris Nevada

This is the distribution from the opensolaris.org guys, do not mix that up with os200805 which is the new OpenSolaris based distro from SUN.

  • Select your development user. I will assume for the time being that the user is called freeswitch.
  • Create the target directory for freeswitch
Type This
mkdir /opt/freeswitch; chown freeswitch /opt/freeswitch
  • Give your build and development user software installation rights
Type This
usermod -P "Software Installation" freeswitch
  • log out and log back in as the freeswitch user (so that the new permissions become active)
  • download and unpack the new jds-cbe beta package:
Type This
/usr/sfw/bin/wget http://dlc.sun.com/osol/jds/downloads/cbe/test/desktop-cbe-1.7.0-rc1-x86.tar.bz2
gtar xvfz desktop-cbe-1.7.0-rc1-x86.tar.bz2"

Install JDS-CBE

Type This
cd desktop-cbe-1.7.0-rc1
./cbe-install
  • leave everything as default. Select the SunStudio compiler as your default compiler.
  • Download the spec-files-extra repository into a subdirectory called SFE
Type This
  • Load the jds-cbe environment
Type This
. /opt/dtbld/bin/env.sh
  • Compile and install SFEunixodbc
Type This
cd SFE
pkgtool --download build SFEunixodbc.spec
  • Download freeswitch trunk
Type This
  • Prepare the freeswitch sources
Type This
cd fstrunk; ./bootstrap.sh
  • and edit the modules.conf file to select which modules you would like to have installed
Type This
vim modules.conf
  • Configure freeswitch sources for 64bit
Type This
CFLAGS=-m64 CXXYFLAGS=-m64 LDFLAGS=-m64 ./configure --prefix=/opt/freeswitch --enable-core-odbc-support \
--enable-core-libedit-support --enable-64 --with-openssl=/usr/sfw
  • or for 32bit
Type This
CFLAGS=-m32 CXXYFLAGS=-m32 LDFLAGS=-m32 ./configure --prefix=/opt/freeswitch --enable-core-odbc-support \
--enable-core-libedit-support --with-openssl=/usr/sfw
  • Drink a cup of coffee
  • run make :)
Type This
gmake
  • Install freeswitch into its target directory
Type This
gmake install

You are done :)

Windows

Precompiled Binaries

For those that do not want to compile, I’ve put together an MSI install file for Windows (currently SVN 10175 – 10/27/08). Direct link: http://files.freeswitch.org/freeswitch.msi

This build includes the standard modules and libraries. In addition:

mod_cepstral (if you plan to enable this module you’ll need the Windows release of Cepstral installed).
mod_flite
mod_pocketsphinx
mod_shout
8khz sound files

Before starting up FreeSwitch, make sure you have the Microsoft VC++ 2008 redistributable library installed:

http://www.microsoft.com/downloads/details.aspx?familyid=9B2DA534-3E03-4391-8A4D-074B9F2BC1BF&displaylang=en   (free download)

If you let the MSI install under the default path, it’ll place everything in “C:\Program Files\FreeSWITCH”. The main executable is under this folder, the MSI will setup a program group with a shortcut to this exe.

Also, this build has the mod_cepstral module compiled so if you have the Windows version of Cepstral installed you’ll want to make sure you enable this module (enable it from modules.conf.xml in c:\program files\freeswitch\conf\autoload_configs). If you’re coming from the Asterisk world think of the conf folder as /etc/asterisk. Since most of the config files are built from *nix machines, you’ll probably need Microsoft Word to edit them.

You’ll note there’s a large repository of scripts under the scripts folder. All of these are examples from the src. You might be interested in checking out the wiki page I wrote up on mod_rss. It makes great use of mod_cepstral for TTS tranlations of RSS news feeds. You can replace all the references to /opt/freeswitch on that page to “C:\Program Files\FreeSWITCH”.

Windows quick start

It would probably help to know some basic console commands! Once you launch the FreeSWITCH exe you will be placed in the console. From here:

“help” displays all available console commands.

“sofia status” will display all sip profiles, gateways and their status.

You can drill down and say “sofia status profile internal” to list the internal profile and all registered internal endpoints.

“show channels” will display all active sessions.

“status” gives you uptime information.

“version” will display version information.

“shutdown” will bring down the switch. You cannot exit from the initial console that starts the switch without shutting it down. There is a socket based perl script in scripts/socket folder (fsconsole.pl) which will allow you to remotely connect to the console.

“load <module>” and “unload <module” work similar to the Asterisk equivalent.

“reloadxml” is useful when editing your dialplan and can’t afford to restart the server. Just be aware of some restrictions: http://wiki.freeswitch.org/wiki/FreeSwitch_FAQ#Q:_Does_reloadxml_reload_all_xml_files.3F

All of the console commands are covered on this wiki page: http://wiki.freeswitch.org/wiki/Mod_commands#Core_Commands

Finally, the Getting Started wiki page has some useful extensions to try out http://wiki.freeswitch.org/wiki/Getting_Started_Guide#Some_stuff_to_try_out.21 The default configuration includes 20 endpoint definitions in prefix\conf\directory\default (1000-1019).xml. More information on endpoints: http://wiki.freeswitch.org/wiki/Getting_Started_Guide#User_Configuration

See here to configure a trunk (gateway) – http://wiki.freeswitch.org/wiki/Getting_Started_Guide#Sample_Gateway_Configuration

And to dial out via your newly created gateway – http://wiki.freeswitch.org/wiki/Getting_Started_Guide#Dialing_out_via_Gateway

Finally, receiving inbound calls from your gateway – http://wiki.freeswitch.org/wiki/Getting_Started_Guide#Receiving_an_inbound_call_from_a_Gateway

Voicemail via email

A recent svn release of FreeSWITCH includes sending voicemail via SMTP from Windows (this was not possible before). See this page for more information: http://wiki.freeswitch.org/wiki/Windows_email

Building from source

To compile FreeSWITCH on Windows, you will need Visual C++ 2005 and if you are installing the Express Edition, the platform SDK (see these instructions for more details).

0

FreeSwitch Softswitch

November 25, 2008

What is FreeSWITCH?

Here is from freeswitch.org

FreeSWITCH is an open source telephony platform designed to facilitate the creation of voice and chat driven products scaling from a soft-phone up to a soft-switch.  It can be used as a simple switching engine, a PBX, a media gateway or a media server to host IVR applications using simple scripts or XML to control the callflow.

We support various communication technologies such as SIP, H.323, IAX2 and GoogleTalk making it easy to interface with other open source PBX systems such as sipX, OpenPBX, Bayonne, YATE or Asterisk.

FreeSWITCH supports many advanced SIP features such as presence/BLF/SLA as well as TCP TLS and sRTP. It also can be used as a transparent proxy with and without media in the path to act as a SBC (session border controller) and proxy T.38 and other end to end protocols.

FreeSWITCH supports both wide and narrow band codecs making it an ideal solution to bridge legacy devices to the future. The voice channels and the conference bridge module all can operate at 8, 16 or 32 kilohertz and can bridge channels of different rates.

FreeSWITCH builds natively and runs standalone on several operating systems including Windows, Max OS X, Linux, BSD and Solaris on both 32 and 64 bit platforms.

Our developers are heavily involved in open source and have donated code and other resources to other telephony projects including openSER, sipX, The Asterisk Open Source PBX and Call Weaver.

Possible Uses

  • Rating & Routing Server
  • Transcoding B2BUA
  • IVR & Announcement Server
  • Conference Server
  • Voicemail Server
  • SBC (Session Border Controller)
  • Basic Topology Hiding Session Border Controller
  • Zaptel, Sangoma, Rhino, PIKA Hardware Support (Analog and PRI)

Features

  • Centralized User/Domain Directory (directory.xml)
  • Nano Second CDR granularity
  • Call recording (In Stereo caller/callee left/right)
  • High Performance Multi-Threaded Core engine
  • Configuration via CURL to your http server (xml_curl).
  • XML Config files for easy parsing.
  • Protocol Agnostic
  • Configurable RFC2833 Payload type
  • Inband DTMF generation and detection.
  • Software based Conference (no hardware requirement)
  • Wideband Conferencing
  • Media / No Media modes
  • Proper ENUM/ISN dialing built in
  • Detailed CDR in XML
  • Radius CDR
  • Subscription server
    • Shared Line Appearances
    • Bridged Line Appearances
  • Enterprise/Carrier grade Eventing Engine. (XML Events, Name Value Events, Multicast Events)
  • Loadable File formats and streaming
  • Stream to Shoutcast
  • Multi-lingual Speech Phrase Interface
  • ASR/TTS support (native and via MRCP)
  • Basic IP/PBX features
  • Automated Attendant
  • Custom Ring Back Tones
  • XML RPC support
  • Multiple format CDR’s supported
  • SQL Engine provides session persistence
  • Thread Isolation
  • Parallel Hunting
  • Serial Hunting
  • Mozilla Public License
  • Support
    • Paid support available
    • Free support via IRC & e-mail
  • Many supported codecs
    • G.722 (wideband)
    • G.711
    • G.726 (16k,24k,32k,48k) AAL2 and RFC3551
    • G.723.1 (passthru)
    • G.729 (passthru)
    • AMR (passthru)
    • iLBC
    • speex (narrow and wideband)
    • lpc10
    • DVI4 (ADPCM) 8khz and 16khz

Applications

  • Voicemail
    • Multitenancy – Enterprise/Carrier configuration
    • Time of Day Greetings
    • Urgent Message Tagging
    • EMail Delivery
    • Playback and Rerecord messages before delivery.
    • Keys are templates so you can rearrange to fit your needs.
    • Callback support from inside voicemail.
    • Podcast of Voicemail (RSS)
    • Message Waiting Indicator (MWI)
  • Support for Queues (via mod_fifo)
  • Parking (via mod_fifo)
  • Conference
    • Software based Conferencing without any hardware requirements.
    • Wideband conferences.
    • Multiple on-demand or scheduled conferences with entry/exit announcements
    • Play files into the conference or a single member.
    • Relationships
    • TTS integration
    • Transfers
    • Outbound Calling
    • Configurable Key Lay
    • Volume, Gain and Energy level per call.
    • Bridge to Conference trasition
    • Multi Party outbound dialing.
  • RSS Reader
  • T.30 Audio Fax (via mod_fax)

Protocols

  • SIP
    • UDP, TCP, SCTP and TLS transports for full sip compliance.
    • IPv6 Support
    • SIP Session timers
    • RTP Timers
    • RFC3263 (SRV and NAPTR)
    • SRTP via SDES (works with polycom, snom, linksys and grandstream)
    • Blind SIP Registration
    • STUN Support
    • Jitter buffer
    • NAT Support
    • Distributed sip registrations
    • Late Codec Negotiation
    • Multiple sip registrations per user account.
    • Multitenancy – Multiple sip UAs
    • SIP Reinvites.
    • Can act as an SBC (session border controller)
    • Manage Presence
    • SIP/SIMPLE (can gateway to other chat protocols)
    • SIP Multicast Paging support for Linksys and Snom
    • Intercom/AutoAnswer support.
    • Call features like Call Hold(Re-INVITE), Blind Transfer(REFER), Call Forward(302) etc.
  • IAX (Via a modified libiax2.)
  • Jingle
  • h.323 (Currently only supports H.323 via the Woomera protocol. This should change soon.)

Languages

  • Javascript (Using the Spidermonkey Javascripting engine.)
    • ODBC Support from inside your Javascript
    • Extendable modules for Javascript
    • Tone Generation
  • Python
  • Perl
  • Lua

Cross Platform

  • Builds native on Windows in MSVC
  • Builds on Mac OS X, Linux, Solaris and *BSD.

Minimum/Recommended System Requirements

  • 32bit OS (64bit recommended)
  • 512MB Ram (1GB recommended)
  • 50MB of Disk Space

System requirements depend on your deployment needs. We recommend you plan for 50% duty cycle.

Performance

  • Tested under load for over 100 hours
  • 10,000,000+ calls
  • At rates exceeding 50 CPS

Performance will vary depending on application. You will need to test for your particular situation.

1

What is VoIP?

September 24, 2008

What is VoIP? Voice over Internet Protocol (VoIP) is the ability to transmit voice over the Internet to either a receiving computer, telephone or even a mobile phone. VoIP phone is becoming the popular worldwide telephone service for both consumer and the business communities. VoIP works by using a network technology known as Packet Switching Network whereas landline telephones use the Circuit Switching Network. This is referred to as the Public Switched Telephone Network.

What’s the difference between VoIP normal phones?

The main difference between Packet Switching and Circuit Switching, is that Packet Switching uses (data) or Packets and sends them over the Internet while Circuit Switching is accomplished by using electrical circuits to make a telephone connection. Circuit Switching is like the old switchboard operators, frantically trying to connect the right caller with the receiver. Packet Switching is used to transfer data all across the Internet including E-mail. Packet Switching converts audio formats into data packets and transmits them over the Internet, then reassembles them on the other person’s phone or computer in real time. By using a Broadband Internet Connection, microphone and speakers a conversation can take place similar to traditional telephone.

VoIP phones have been round for sometime, but increases in technology it is becoming increasingly popular. Several years ago many applications were available offering some form of free VoIP phone service. Majority of these have gone or now charge a fee for the use of their service as VoIP phone provider. Moreover, VoIP is developing higher standards of quality every day, and it has proved that it is a viable force for telecommunication for the future.

Who is providing VoIP phone service?

Telephone and Internet service provider companies are expanding to allow for monthly VoIP phone services. Companies such as AOL, Verizon and Sprint have VoIP phone offerings. Recently eBay has joined the ranks of VoIP phone service providers by purchasing skype VoIP software, with its vast membership base the VoIP message will soon reach the man on the street.

What’s special about VoIP?

Instant messaging programs such as MSN massager have been using VoIP technology for years. Now, most of these messaging programs come with voice enabled features which allow you to call a member of your buddy list. By using a microphone and speakers, you will be able to converse anywhere in the world, by VoIP and your Instant Messaging program.

With instant messaging VoIP incorporates different areas into one program. With your voice enabled programs, you can hook up a digital camera,web cam and use video, while you are speaking on your microphone and listening to on your speakers, and you can type back and forth with your chat program. You could even write an email at the same time. The potential for VoIP phones use is nearly limitless.

VoIP has this unique ability to integrate many forms of telecommunication applications into one package can handle data, audio, video, E-Mail, and web based applications simultaneously. This makes VoIP an incredible boost to business world and provides a cost effective choice of telephone service.

VoIP phone service providers are increasing in popularity with many people discovering all of the benefits available to them by switching from using their land line telephones to VoIP service. First, VoIP phone services costs significantly less than standard phone service, and this is a great attraction for bringing in new customers. Many VoIP phone plans will let you make unlimited long distance calls or provide you with a plan for very inexpensive rates. Many of the features that are often included for a fee with traditional phone service are often included for free with VoIP services. Features such as Call Waiting, Call Block, Call Forwarding, Conference Calling, Voice Mail are usually charged as extras by the traditional phone companies but these are usually free with the VoIP phone packages.Another benefit to VoIP services is that you can usually keep your existing phone number, or allow you to select a new area code. The means if you select an area where most of your friends and family live, a call to you will be treated as local call. For a remote business VoIP service can give the perception of having multiple office locations.

What’s the future for VoIP ?

Make no mistake about it VoIP phone services is a the emerging contender in the telecommunication world.It is a proven technology, can seamlessly integrate into many existing applications, does not require special equipment anyone with a PC with a microphone and speakers can use the service and it is very cost effective. Talk will be cheap!

0

Redtube – Redtube P0RN site “hacked”

August 5, 2008


Redtube.COM

Redtube – Redtube.com Hacked!


When i was searching for a Redtube forums, i saw in one blog that Redtube was hacked by NetDevilz.

According to some article, the Redtube was hacked by a “Turkish Cyber Terrorists” who hates “P0RN” or dont like P0RN. So they hacked the largest P0RN database on the Internet, Redtube.

(more…)

1

HOWTO: Debian Etch Apache2 + SSL

August 1, 2008

Introduction: Howto Apache2 + SSL Installation

This tutorial will teach you how to install and configure Apache2 + SSL for Debian Etch. The installation is straightforward. You can just copy pasted the commands below:

Install apache2 in debian etch


#apt-get install apache2


Install openssl using the following command


#apt-get install openssl ssl-cert


Install PHP5 support for apache2 in debian etch

#apt-get install libapache2-mod-php5 php5-cli php5-common php5-cgi

Once you install apache server you need to Generate a certificate,Enable Apache SSL support and Configure your SSL options.


Generate A certificate

(more…)

0

HOWTO: Debian VPN PPTP

July 24, 2008

This tutorial will guide you how to install and configure VPN PPTP in Debian Etch. The installation is straightforward.

Note: Make sure that your VPN Server has two Network Interface Card (NIC). One for Outside Interface (where the public IP is configured) and the other is INSIDE interface (where your LAN IP is configured)

Introduction

What is PPTP? Short for Point-to-Point Tunneling Protocol, a new technology for creating Virtual Private Networks (VPNs) , developed jointly by Microsoft Corporation, U.S. Robotics, and several remote access vendor companies, known collectively as the PPTP Forum. A VPN is a private network of computers that uses the public Internet to connect some nodes. Because the Internet is essentially an open network, the Point-to-Point Tunneling Protocol (PPTP) is used to ensure that messages transmitted from one VPN node to another are secure. With PPTP, users can dial in to their corporate network via the Internet.

PPTP is known to be less secure than other VPN software, but if you need a quick solution for a VPN server that will connect out of the box from Windows workstations PPTP is the obvious choice. This post will show how easy it is to setup a pptp vnp server on Debian Etch.
(more…)

0

OpenVZ: Debian Etch Install

July 9, 2008

This tutorial will show you how to install OpenVZ in Debian Etch System. The installation is straightforward and you can just do copy and paste.

Introduction: What is OpenVZ

From the website:

OpenVZ is container-based virtualization for Linux. OpenVZ creates multiple secure, isolated containers (otherwise known as VEs or VPSs) on a single physical server enabling better server utilization and ensuring that applications do not conflict. Each container performs and executes exactly like a stand-alone server; a container can be rebooted independently and have root access, users, IP addresses, memory, processes, files, applications, system libraries and configuration files. For more information about the technology and how it differs from the others like Xen, VMware etc., see introduction to virtualization, doc/openvz-intro.pdf (73 KB) or wikipedia:OpenVZ.

OpenVZ is free open source software, available under GNU GPL.

OpenVZ is the basis of Parallels Virtuozzo Containers, a commercial virtualization solution offered by Parallels. OpenVZ project is supported by Parallels.

(more…)

9