Purpose
This mini howto describes the steps I had executed to execute in order to re-compile a debug version of Freeswitch on an a CentOS 5 base ISO install of sipXecs.
...
Step 1: Add a new CentOS 5 yum repository
...
On a shell as user "root" edit create a new repository text file under /etc/yum.repos.d/CentOS5.repo to add this content:
Code Block |
---|
[CentOS5base] |
...
name=CentOS-5-Base |
...
mirrorlist=[http://mirrorlist.centos.org/?release=5&arch=i386&repo=os |
...
] gpgcheck=0 |
...
enabled=0 |
...
gpgkey=[http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-5 |
...
] [CentOS5updates] |
...
name=CentOS-5-Updates |
...
mirrorlist=[http://mirrorlist.centos.org/?release=5&arch=i386&repo=updates |
...
] gpgcheck=0 |
...
enabled=0 |
...
gpgkey=[http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-5 |
...
] [CentOS5plus] |
...
name=CentOS-5-Plus |
...
mirrorlist=[http://mirrorlist.centos.org/?release=5&arch=i386&repo=centosplus |
...
] gpgcheck=0 |
...
enabled=0 |
...
gpgkey=[http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-5 |
...
]
|
...
Step 2: Rename the Freeswitch executable path
...
We want to keep Keep the original Freeswitch binary intact and create a debug version instead.
In file $INSTALL/bin/freeswitch.sh replace those lines (Note: $INSTALL is most likely "/usr").
Replace lines:
_FS_EXEC="/usr/local/freeswitch/bin/freeswitch _
if [xecsdev: ! -x /usr/local/freeswitch/bin/freeswitch ]
echo "Error: FreeSWITCH executable is not at /usr/local/freeswitch/bin/freeswitch" >&2
With lines:
_FS_EXEC="/usr/local/freeswitch_debug/bin/freeswitch _
if [xecsdev: ! -x /usr/local/freeswitch_debug/bin/freeswitch ]
echo "Error: FreeSWITCH executable is not at /usr/local/freeswitch_debug/bin/freeswitch" >&2
...
Step 3: Install the necessary RPMs in order to compile freeswitch
...
Code Block |
---|
yum \--enablerepo CentOS5base install gcc-c++.i386 |
...
yum \--enablerepo CentOS5base install ncurses-devel.i386 |
...
Step 4: Download the freeswitch code and get ready to compile it
...
Code Block |
---|
cd /tmp |
...
wget http://latest.freeswitch.org/freeswitch-1.0.5-latest.tar.gz |
...
tar xvfz freeswitch-1.0.5-latest.tar.gz |
...
cd freeswitch-1.0.5-<date>-0400 |
...
./configure \--prefix=/usr/local/freeswitch_debug |
...
Step 5: Build and re-install your debug version of Freeswitch
...
Code Block |
---|
cd /tmp/freeswitch-1.0.5-<date>-0400 |
...
- Make your code changes under src/...
...
Code Block make
...
- Stop the running version of Freeswitch
Code Block sipxproc \-k FreeSWITCH
...
- Wait until the Freeswitch process is stopped. You can use this command to verify.
Code Block ps \-ef \| grep freeswitch
...
- Install the re-compiled Freeswitch binary
Code Block make install
...
- Restart the debug version of the Freeswitch process.
Code Block sipxproc \-s FreeSWITCH
...
Step 6: Optionally use the Freeswitch console to get more debug output
...
One can turn full debug level tracing using the console and redirect the output on the console.#
- Start the console
Code Block /usr/local/freeswitch_debug/bin/fs_cli
...
- Turn debug level tracing and log to console
...
Code Block debug 7
...
log
...
- Quit the console prompt
Code Block
...
exit
...
- Additional options
Code Block
...
For more information on Freeswitch visit this linkhelp