SIP session refresh bug in IOS 15.1(4)M2 – Call disconnected after 15 minutes

I think I found a bug in IOS 15.1(4)M2 running on a 2911 with CUBE functionality.
The problem was that calls were disconnected after 15 minutes.

SIP trunk from ITSP terminating on CUBE in front of Callmanager 8.6. Default SIP Expires Timer is 1800 seconds (30 minutes), after 15 minutes the UCM sends a new INVITE to refresh the session.

I saw the CUBE sending 3 identical INVITES to the ITSP with no answer what so ever, after the third INVITE the CUBE sends a BYE to disconnect the session.

Upgrading to 15.2(2)T fixed the problem.


Installing PHP 5.3.8 from source on OpenBSD 5.0

I mentioned in my post about Apache 2.2.21 installation from source on OpenBSD 5.0 that I also required PHP 5.3.8.

The latest pre-compiled package for OpenBSD 5.0 is 5.3.6, but the biggest problem is that it’s compiled for Apache 1.3 and not 2.2.x

If you don’t require the latest PHP I recommend building it from ports, there you can specify to build for Apache 2.

However, in my case I had no choice but to install from source. Here is how I did it:

1. download the latest PHP source from

2. extract the gtar to your temp directory

3. PHP depends on libxml, install with pkg_add libxml

4. ./configure —with-apxs2=/usr/local/apache2/bin/apxs —with-iconv=/usr/local —with-mysql —with-mysqli —with-zlib —with-gd —with-jpeg-dir=/usr/local —with-png-dir=/usr/local —with-freetype-dir=/usr/X11R6
make install

If you just want your vanilla PHP you can skip the stuff in green. My installation however requires additional support.

A strange thing I found when including —with-gd was that I got error: png.h not found.
Searching around I did find png.h in /usr/local/include/libpng/ but even if I specified that dir or just /usr/local it did not work.

I had to make three symlinks in /usr/local/include pointing to the three files in /libpng, then it worked.

Note: when building with gd support and jpeg/png/freetype you need the libfiles for these three, I simply installed the pre-compiled packages for them:

pkg_add jpeg
pkg_add png
pkg_add freetype

5. create a default config file with cp php.ini-development /usr/local/lib/php.ini

6. make install will automatically add the php5 module to Apache, verify that it’s present in /usr/local/apache2/config/httpd.conf
LoadModule php5_module        modules/

7. tell Apache to parse PHP extensions by adding the following to httpd.conf:
<FilesMatch \.php$>
SetHandler application/x-httpd-php

8. create a file called info.php in /usr/local/apache2/htdocs/ edit the file and add:
phpinfo ();

Restart Apache and browse to http://<ip_or_hostname>/info.php to see all information about the PHP build.

Installing Apache 2.2.21 from source on OpenBSD 5.0

I’ve been running OpenBSD on my home server since version 3.4. I never had the need to run the absolute latest and greatest third party software. Installing the pre-compiled packages from the current version is fast, easy and secure, but the downside is that it’s rarely the latest version(in terms of functionality).

Now a couple of days ago I was asked to setup a Linux or Unix machine here at work, serving some heavy webpages with PHP/MySQL. Security was also a big focus. I decided on OpenBSD because that’s what I’ve been using for the last ~8 years.

Now to the problems:

They require Apache 2.2.21, and PHP 5.3.8. OpenBSD comes with Apache 1.3 with default chrooting.

Installing Apache 2 from packages is not a problem, however the latest on OpenBSD 5.0 is 2.2.15.

In my case , our company has a Nessus security scanner and it does not take into consideration that Apache 2.2.15 is patched by the OpenBSD team, the only way around it is to upgrade to the latest.

Here is how I did it:

1. download the latest Apache 2 source from

2. extract the gtar to your temp directory

3. ./configure —with-included-apr —enable-mods-shared=”most cache disk-cache proxy ssl mime-magic cern-meta usertrack unique-id suexec log-forensic”
make install

This will install Apache 2 from source with the same features as the pre-compiled Apache 2.2.x package with all the shared modules.

In this setup I have not changed the default installation directory, so for now everything will be installed to /usr/local/apache2/ this includes config files, htdocs, binaries, manuals etc.

I like to have everything in one directory for easy uninstall (as there is no pkg_delete etc for stuff built from source)

As Apache 1.3 is already installed in the base OS, Apache 1.3 and Apache 2.2.x will have the same filenames but in different directories. This can be confusing and I simply renamed some key files:

4. cd /usr/local/apache2/bin
mv apachectl apachectl2

cd /usr/local/apache2/man/man8
mv apachectl.8 apachectl2.8
mv httpd.8 httpd2.8

vi /etc/man.conf
8      /usr/{share,X11R6,local,local/apache2}/man/{cat,man}8

add /usr/local/apache2/bin to your PATH

Now you have your old apachectl binary, and the new apachectl2 for easy start/stop. Also man files for apachectl and apachectl2, httpd and httpd2 are separated.