Asterisk Solaris Support
Yes, it runs on Solaris, too!
Since 15/Dec/2004, the CVS HEAD version of asterisk has included support for Solaris. Solaris support is not yet included in the stable releases. Whilst it works fine on Solaris 9 and 10 on Sparc, some additional patches are required to make it work on Solaris x86. These should be incorporated into CVS HEAD soon.Installation
Installing pre-built packages from Solarisvoip.com
09/Aug/2006
Test System- Sun Blade 1000 with 2 x UltraSparc 900 Mhz Procs. Solaris 10
Results
With about 50-55 SIP calls up between another Asterisk box running in a continuous loop CPU usage is aproximately 3%.Install Notes
Packages installed fine on standard Solaris 10 Install (Developer install) using pkgadd -d command.
For the uninitiated in Solaris the file structure placement is different from Linux. Here are my notes;
- Asterisk Config Files; /etc/opt/asterisk
- Asterisk executable; /opt/asterisk/usr/sbin/asterisk
- Start-Up script; /opt/asterisk/method/asterisk (Usage: /etc/init.d/asterisk { start | stop | restart }
- Asterisk Modules; /opt/asterisk/lib/modules
- Asterisk astdb firmware keys mohmp3 sounds; /var/opt/asterisk/lib/
- Logs /var/opt/asterisk/log/
- PIDs /var/opt/asterisk/run/
- Spool directory /var/opt/asterisk/spool/
Zaptel Tools
- /usr/sbin/timertest
- /usr/sbin/ztcfg
- /usr/sbin/ztdiag
- /usr/sbin/ztmonitor
- /usr/sbin/zttest
- /usr/sbin/zttool
Building Asterisk from source
- export CVSROOT=:pserver:anoncvs@cvs.digium.com:/usr/cvsroot
- cvs login (password is anoncvs)
- cvs co asterisk
- cd asterisk
- make
- make install
Limitations
- PCI based telephony interface cards, such as Digium's wildcard series, require drivers which are currently only available for GNU/Linux operating systems. Simon Lockhart is currently in the process of porting the zaptel tree to Solaris. You can follow progress on the zaptel-solaris page
- Update- Aug. 2006. The folks at Solarisvoip.com are gradually porting zaptel drivers over to Solaris. At this time the base zaptel library, ztdummy and wctdm are ported and included in the packages available on the web site.
How you can contribute
- Please add your comments on how you were able to get Asterisk installed, stating the versions for both Asterisk and Solaris.
- If you are a Solaris developer and want to participate in the work required to get the latest Asterisk releases ready to build on Solaris but you have no access to any Solaris system, please post to the Asterisk Developers' mailing list.
Credits
- Logan made the initial port to Solaris. You can still read his build notes.
- Simon Lockhart (slimey) produced the patches which were incorporated into CVS HEAD, based on Logan's work.
Solaris specific Asterisk utilities and add-ons
- no utilities and add-ons yet
Solaris Softphones
Softphones which can be used with Asterisk- sipc: SIP softphone from Columbia University
- Instant xpressa: a Java softphone from Pingtel which should work on Solaris
- tkphone, which is now part of the iaxclient library (as of 9/9/04)
- please add more entries
Softphones which cannot be used with Asterisk
- no entries yet
Comments
333Solaris 10 Sparc Asterisk 1.4.18 compiling Howto
1. Fresh install of Solaris 10 sparc no additional pkgs.
2. Install Companion CD
3. Set you environment
export PATH=$PATH:/opt/sfw/bin:/opt/sfw/sbin:/usr/ccs/bin:/usr/sfw/bin:/usr/sfw/sbin
PKG_CONFIG='/usr/bin/pkg-config'
CC='/usr/sfw/bin/gcc'
CXX='/usr/sfw/bin/g++'
export CC CXX PKG_CONFIG
4. get 2 patches
Index: main/stdtime/localtime.c
===================================================================
+++ main/stdtime/localtime.c (working copy) @@ -1133,7 +1133,9 @@
*/
result = timesub(&t, ttisp->tt_gmtoff, sp, tmp);
tmp->tm_isdst = ttisp->tt_isdst;
+#ifndef SOLARIS /* Solaris doesn't have this element */ tmp->tm_gmtoff = ttisp->tt_gmtoff;
+#endif #ifdef TM_ZONE
tmp->TM_ZONE = &sp->charsttisp->tt_abbrind;
#endif /* defined TM_ZONE */
and
Index: main/editline/np/vis.h
===================================================================
+++ main/editline/np/vis.h (working copy) @@ -69,6 +69,10 @@
#define UNVIS_SYNBAD -1 /* unrecognized escape sequence */
#define UNVIS_ERROR -2 /* decoder in unknown state (unrecoverable) */
+#ifndef u_int32_t +#define u_int32_t uint32_t +#endif + /*
* unvis flags
*/
untar asterisk 1.4.18 somewere
patch it
and as always
./configure && gmake && gmake install
Regards
Alex Fler
alexfler@yahoo.com
333ztdummy
Visit: www.solarisvoip.com for more information.
333wicked cool!
Thanks,
~tommy
333Zaptel Driver Update
On a Sun Fire 280R with 100 users in a MeetMe conference, the system hangs around 20% CPU usage.
333Solaris 10 - x64 and sparcv9
http://www.agilevoice.com/RPMS/SOLARIS/
In addition, here is a performance report about Asterisk on Solaris verses Linux:
http://www.thrallingpenguin.com/articles/asterisk-solaris.htm
333Asterisk on Solaris SPARC
Any help or suggestions would be appreciated.
Current build error on a Solaris 9 *and* Solaris 10 box (errors on the exact same section)
gcc -pipe -Wall -Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations -g -Iinclude -I../include -Iinclude/solaris-compat -I/usr/local/ssl/include -D_REENTRANT -D_GNU_SOURCE -O6 -Wcast-align -DSOLARIS -fomit-frame-pointer -c -o term.o term.c
In file included from include/asterisk/utils.h:26,
from term.c:32:
include/asterisk/strings.h:232: error: parse error before "va_list"
include/asterisk/strings.h:232: warning: function declaration isn't a prototype
make: *** term.o Error 1
Thoughts?
333Re: Required Packages
coreutils-4.5.4.tar.gz
333Required Packages
I download the CVS version as stated on this Solaris page.. I try and compile it and get the following error:
if -d CVS && ! -f .version ; then echo CVS-HEAD-04/10/05-14:31:26 > .version; fi
gcc -pipe -Wall -Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations -g -Iinclude -I../include -Iinclude/solaris-compat -I/usr/local/ssl/include -D_REENTRANT -D_GNU_SOURCE -O6 -Wcast-align -DSOLARIS -DASTERISK_VERSION=\"CVS-HEAD-04/10/05-14:31:26\" -DASTERISK_VERSION_NUM=999999 -DINSTALL_PREFIX=\"\" -DASTETCDIR=\"/etc/asterisk\" -DASTLIBDIR=\"/usr/lib/asterisk\" -DASTVARLIBDIR=\"/var/lib/asterisk\" -DASTVARRUNDIR=\"/var/run\" -DASTSPOOLDIR=\"/var/spool/asterisk\" -DASTLOGDIR=\"/var/log/asterisk\" -DASTCONFPATH=\"/etc/asterisk/asterisk.conf\" -DASTMODDIR=\"/usr/lib/asterisk/modules\" -DASTAGIDIR=\"/var/lib/asterisk/agi-bin\" -DBUSYDETECT_MARTIN -fomit-frame-pointer -c -o dnsmgr.o dnsmgr.c
dnsmgr.c: In function `refresh_list':
dnsmgr.c:160: error: structure has no member named `used'
dnsmgr.c: In function `handle_cli_refresh':
dnsmgr.c:207: error: structure has no member named `used'
make: *** dnsmgr.o Error 1
I'm sure it's because I'm missing a package but not sure which.
SUN45:/usr/src/asterisk# uname -a
SunOS sun45 5.9 Generic_117171-12 sun4u sparc SUNW,Ultra-Enterprise
SUN45:/usr/src/asterisk# gcc -v
Reading specs from /usr/local/lib/gcc/sparc-sun-solaris2.9/3.4.2/specs
Configured with: ../configure --with-as=/usr/ccs/bin/as --with-ld=/usr/ccs/bin/ld --disable-nls
Thread model: posix
gcc version 3.4.2
333Solaris x86!
I cant figure out where to attach just yet, once I do, I will ;)
Tommy
333prebuilt Asterisk on Solaris 10
b30097