<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-8284716</id><updated>2011-11-17T22:19:31.282-08:00</updated><title type='text'>Perx&lt;space&gt;</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://perxspace.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8284716/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://perxspace.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Enrico Persiani</name><uri>http://www.blogger.com/profile/05278961043180380096</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>4</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-8284716.post-8530096223579257843</id><published>2008-03-20T10:25:00.000-07:00</published><updated>2008-03-20T12:30:06.864-07:00</updated><title type='text'>Shift of interests</title><content type='html'>This is the my return on the blog scene after several years of inactivity. I had been very busy on reorganizing my life but I think the storm has passed away, so I can get back on my footprints.  I'm attending the &lt;a href="http://www.eclipsecon.org/2008/"&gt;EclipseCon 2008&lt;/a&gt;  right now, I've just seen Cory Doctorow's keynote about copyright laws and information economy, and I had some spare time to spend on updating my own &lt;span style="font-style: italic;"&gt;&lt;space&gt;&lt;/span&gt;!&lt;br /&gt;&lt;br /&gt;Meanwhile I had a radical shift of interests, I jumped from developing system software integrated on linux to writing meta-models, generators and graphical editors. I currently work on the &lt;a href="http://whole.sourceforge.net/"&gt;Whole Platform&lt;/a&gt;, a projet that aims to build a complete open-source &lt;a href="http://martinfowler.com/articles/languageWorkbench.html"&gt;language workbench&lt;/a&gt;. We develop tools that are a feasible alternative to those developed by the Eclipse Modeling umbrella project.&lt;br /&gt;&lt;br /&gt;In the last two years I have worked with several technologies from the Eclipse Platform and I personally developed extensive skills on the Eclipse Graphical Editing Framework. I've written many graphical editors and added support for many new features like free textual editing, mixed GEF &amp;amp; native drag and drop and easier configurable key-handling.&lt;br /&gt;&lt;br /&gt;With the next posting I'll start a series of essays on modeling on the Whole Platform and maybe on modeling more in general. Let's see what happens...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8284716-8530096223579257843?l=perxspace.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://perxspace.blogspot.com/feeds/8530096223579257843/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8284716&amp;postID=8530096223579257843' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8284716/posts/default/8530096223579257843'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8284716/posts/default/8530096223579257843'/><link rel='alternate' type='text/html' href='http://perxspace.blogspot.com/2008/03/shift-of-interests.html' title='Shift of interests'/><author><name>Enrico Persiani</name><uri>http://www.blogger.com/profile/05278961043180380096</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8284716.post-110024712548283655</id><published>2004-11-12T23:54:00.000-08:00</published><updated>2004-11-16T06:28:00.940-08:00</updated><title type='text'>Linux 2.6 with mISDN stack</title><content type='html'>ISDN is a telephone network widespread in european countries. Having faster call setup times than tipical PSTN lines makes it ideal for PABX systems. Historically, &lt;a href="http://www.isdn4linux.de/"&gt;isdn4linux&lt;/a&gt; has been the first ISDN stack for the linux kernel, it has support for several devices but its support is discontinued for Linux 2.6 branch.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.isdn4linux.de/mISDN/"&gt;mISDN&lt;/a&gt; stands for modular ISDN, and of course is the next generation ISDN stack for passive adapters. One of the most disadvantages on using isdn4linux is the lack of a common CAPI 2.0 interface implementation (as of today, capidrv supports a small subset of CAPI 2.0 features). On the other hand, mISDN provides modules that expose a CAPI 2.0 compliant API for any supported adapter card.&lt;br /&gt;&lt;br /&gt;The main objective of this tutorial is to setup the CAPI 2.0 support for passive ISDN adapters using the modular ISDN stack. It is assumed that the reader has the knowledge and skills to configure, compile, and install a linux 2.6.x kernel.&lt;br /&gt;&lt;br /&gt;0. Prerequisites&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;# apt-get install build-essential cvs&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;1. Checkout mISDN sources from cvs&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;# export CVSROOT=:pserver:guest@cvs.isdn4linux.de/i4ldev&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;# cvs login&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;# cvs co mISDN&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;When prompted for a password enter &lt;span style="font-style: italic;"&gt;readonly&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;2. Integrate mISDN in your kernel source tree&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;# cd mISDN&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;# ln -s &amp;lt;your-kernel-tree-path&amp;gt; /usr/src/linux&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;# sh &amp;lt; std2kern&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;3. Configure, build and install the new modules&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;# cd /usr/src/linux&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;# make menuconfig&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Under &lt;span style="font-weight: bold;"&gt;Device Drivers&lt;/span&gt; -&amp;gt; &lt;span style="font-weight: bold;"&gt;ISDN subsystem&lt;/span&gt; perform the following selections&lt;br /&gt;&lt;br /&gt;&lt;img src="http://www.cs.unibo.it/%7Epersiani/img/isdn-capi.gif" /&gt;&lt;br /&gt;&lt;br /&gt;Then under &lt;span style="font-weight: bold;"&gt;Modular ISDN driver&lt;/span&gt; perform these other selections&lt;br /&gt;&lt;br /&gt;&lt;img src="http://www.cs.unibo.it/%7Epersiani/img/isdn-misdn.gif" /&gt;&lt;br /&gt;&lt;br /&gt;Enabling support for all cards is safe since every driver is built as a kernel module. When finished configure, build and istall the kernel as usual.&lt;br /&gt;&lt;br /&gt;4. Loading the module&lt;br /&gt;&lt;br /&gt;This step is quite important make sure to understand it deeply enough. If you try to load your module directly you'll end up with a failure message, instead &lt;span style="font-weight: bold;"&gt;you must use a modprobe script&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;While on many systems it is sufficient to add the following lines to the file /etc/modprobe.conf, on Debian the preferred way is to create a file in /etc/modprobe.d (name it /etc/modprobe.d/capi) containg these directives (w6692pci is my choice, but you can replace it with any other low-level driver, ie avmfritz, hfcpci, ...):&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt;alias /dev/capi20 w6692pci&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;alias char-major-68-0 w6692pci&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;install w6692pci        /sbin/modprobe capi; \&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;/span&gt; &lt;span style=";font-family:courier new;font-size:85%;"  &gt;                        /sbin/modprobe mISDN_core; \&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;/span&gt; &lt;span style=";font-family:courier new;font-size:85%;"  &gt;                        /sbin/modprobe mISDN_l1; \&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;/span&gt; &lt;span style=";font-family:courier new;font-size:85%;"  &gt;                        /sbin/modprobe mISDN_l2; \&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;/span&gt; &lt;span style=";font-family:courier new;font-size:85%;"  &gt;                        /sbin/modprobe l3udss1; \&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;/span&gt; &lt;span style=";font-family:courier new;font-size:85%;"  &gt;                        /sbin/modprobe mISDN_capi; \&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;/span&gt; &lt;span style=";font-family:courier new;font-size:85%;"  &gt;                        /sbin/modprobe mISDN_x25dte; \&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;/span&gt; &lt;span style=";font-family:courier new;font-size:85%;"  &gt;                        /sbin/modprobe --ignore-install w6692pci protocol=2&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;  &lt;span style=";font-family:courier new;font-size:85%;"  &gt;remove w6692pci         /sbin/modprobe -r --ignore-remove w6692pci; \&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;/span&gt; &lt;span style=";font-family:courier new;font-size:85%;"  &gt;                        /sbin/modprobe -r mISDN_x25dte; \&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;/span&gt; &lt;span style=";font-family:courier new;font-size:85%;"  &gt;                        /sbin/modprobe -r mISDN_capi; \&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;/span&gt; &lt;span style=";font-family:courier new;font-size:85%;"  &gt;                        /sbin/modprobe -r l3udss1; \&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;/span&gt; &lt;span style=";font-family:courier new;font-size:85%;"  &gt;                        /sbin/modprobe -r mISDN_l2; \&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;/span&gt; &lt;span style=";font-family:courier new;font-size:85%;"  &gt;                        /sbin/modprobe -r mISDN_l1; \&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;/span&gt; &lt;span style=";font-family:courier new;font-size:85%;"  &gt;                        /sbin/modprobe -r mISDN_core; \&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;/span&gt; &lt;span style=";font-family:courier new;font-size:85%;"  &gt;                        /sbin/modprobe -r capi&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;Now it is possible to load the module issuing a &lt;span style="font-style: italic;"&gt;modprobe&lt;/span&gt; or by enabling &lt;span style="font-style: italic;"&gt;discover&lt;/span&gt; at startup.&lt;br /&gt;&lt;br /&gt;# modprobe w6692pci&lt;br /&gt;&lt;br /&gt;Make sure the driver is correctly loaded, a sample syslog output follows:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt;Modular ISDN Stack core $Revision: 1.23 $&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;mISDNd: kernel daemon started&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;mISDNd: test event done&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;CAPI Subsystem Rev 1.1.2.8&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;capifs: Rev 1.1.2.3&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;capi20: Rev 1.1.2.7: started up with major 68 (middleware+capifs)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;ISDN L1 driver version 1.11&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;ISDN L2 driver version 1.19&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;mISDN: DSS1 Rev. 1.26&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;mISDN Capi 2.0 driver file version 1.14&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;X25 DTE modul version 1.6&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Winbond W6692 PCI driver Rev. 1.12&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;mISDN_w6692: found adapter Dynalink/AsusCom IS64PH at 0000:01:05.0&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;W6692: Winbond W6692 version (0): W6692 V00&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;kcapi: Controller 1: mISDN1 attached&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;w6692: IRQ 17 count 4&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;kcapi: card 1 "mISDN1" ready.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;w6692 1 cards installed&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;5.1. Install the isdn utilitiles the Debian Sarge way&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;# apt-get install isdnutils-base libcapi20-3 isdnactivecards&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Open the file /etc/isdn/capi.conf and comment out everything (usually passive ISDN cards don't need a firmware).&lt;span style="font-weight: bold; color: rgb(255, 0, 0);"&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;5.2. Install the isdn utilitiles from source&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;# cvs co isdn4k-utils&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;# cd  isdn4k-utils/capiinfo&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;# ./configure&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;# make&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;# make install&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;6. Issue a capiinfo to see the  hardware/driver capabilities&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;# capiinfo&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Will output something similar to:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Number of Controllers : 1&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Controller 1:&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Manufacturer: mISDN CAPI controller W6692_1&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;CAPI Version: 2.0&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Manufacturer Version: 1.0&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Serial Number: 0002&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;[...]&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;7. Conclusions and future improvements&lt;br /&gt;&lt;br /&gt;mISDN support is needed for using chan_capi or chan_misdn (I've only tested the former). Enabling asterisk CAPI support support is quite easy once mISDN modules are properly configured.&lt;br /&gt;&lt;br /&gt;See also&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.voip-info.org/tiki-index.php?page=Asterisk%20How%20to%20connect%20with%20CAPI"&gt;Asterisk How to connect with CAPI&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.junghanns.net/asterisk/"&gt;chan_capi Home&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.voip-info.org/wiki-Asterisk+CAPI+Readme"&gt;Asterisk CAPI readme&lt;/a&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8284716-110024712548283655?l=perxspace.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://perxspace.blogspot.com/feeds/110024712548283655/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8284716&amp;postID=110024712548283655' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8284716/posts/default/110024712548283655'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8284716/posts/default/110024712548283655'/><link rel='alternate' type='text/html' href='http://perxspace.blogspot.com/2004/11/linux-26-with-misdn-stack.html' title='Linux 2.6 with mISDN stack'/><author><name>Enrico Persiani</name><uri>http://www.blogger.com/profile/05278961043180380096</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8284716.post-110016632666819643</id><published>2004-11-11T01:18:00.000-08:00</published><updated>2004-11-11T06:46:52.493-08:00</updated><title type='text'>Asterisk with MoH Patch on Debian Sarge</title><content type='html'>Music on hold is a nice feature of asterisk, implemented through res_musiconhold.so. To setup music on hold the standard way you need to download recompile and install &lt;span style="font-weight: bold;"&gt;mpg123 &lt;/span&gt;as voip-info &lt;a href="http://www.voip-info.org/wiki-Asterisk+config+musiconhold.conf"&gt;suggests&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Note that on Debian there's a symlink between mpg123 and mpg321 (which is not supported currently). So, download &lt;a href="http://www.mpg123.de/mpg123/mpg123-0.59r.tar.gz"&gt;mpg123-0.59r.tar.gz&lt;/a&gt;, compile it, and install it (by default the package is installed in /usr/local/bin, which is the first path searched by asterisk).&lt;br /&gt;&lt;br /&gt;Another way to setup music on hold is to integrate &lt;a href="http://bugs.digium.com/bug_view_page.php?bug_id=0002379"&gt;MoH patch&lt;/a&gt; (the patch is bundled with chanspy) into the asterisk package, thus enabling native file format decoding and removing mpg123 dependancy. What follows are some simple steps to setup a MoH extension using ulaw encoded files.&lt;br /&gt;&lt;br /&gt;0. Prerequisites&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;# apt-get install build-essential dh-make patch&lt;br /&gt;# wget &amp;lt;url-to-chanspy-tar-gzip-archive&amp;gt;&lt;br /&gt;# tar xzf chanspy.tar.gz&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;This command creates a directory named chanspy&lt;br /&gt;&lt;br /&gt;1. Patch and rebuild asterisk&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;# apt-get source asterisk&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;This command creates a directory named asterisk-&amp;lt;current-version&amp;gt; (in my case asterisk-1.0.1)&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;# cd asterisk-1.0.1&lt;br /&gt;# patch -p0 &amp;lt; ../chanspy/mohpatch.diff&lt;br /&gt;# dpkg-buildpackage -D -b&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;If this last command fails, make sure to fulfill all the dependencies (don't be warned if more than 50 packages need to be installed).&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;# dpkg -i ../asterisk_*.deb&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;2. Add a sample extension to asterisk&lt;br /&gt;&lt;br /&gt;First add the following lines to /etc/asterisk/extensions.conf&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;exten =&gt; &lt;/span&gt;1234&lt;span style="font-family:courier new;"&gt;,1,Answer&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;exten =&gt; &lt;/span&gt;1234&lt;span style="font-family:courier new;"&gt;,2,SetMusicOnHold(ulawfiles)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;exten =&gt; &lt;/span&gt;1234&lt;span style="font-family:courier new;"&gt;,3,MusicOnHold()&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Then configure the ulawfiles class in /etc/asterisk/musiconhold.conf adding these lines&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;[moh_files]&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;ulawfiles =&gt; /usr/share/asterisk/sounds/ulawfiles&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Make sure to have some files to be played in the right place&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;# mkdir &lt;/span&gt;&lt;span style="font-family:courier new;"&gt;-p /usr/share/asterisk/sounds/ulawfiles&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;# sox -V example.mp3 -t au -r 8000 -U -b -c 1 \&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;    /usr/share/asterisk/sounds/ulawfiles/example.ulaw resample -ql&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;3. Restart asterisk and make a call to 1234 and enjoy the music on hold...&lt;br /&gt;&lt;br /&gt;# /etc/init.d/asterisk restart&lt;br /&gt;&lt;br /&gt;4. Fine tuning and audio improvements&lt;br /&gt;&lt;br /&gt;With format_mp3.so module MoH can also play mp3 files. Some files may play scratchy due to the high volume level, you can adjust the amplitude with the "-v volume" flag of sox.&lt;br /&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8284716-110016632666819643?l=perxspace.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://perxspace.blogspot.com/feeds/110016632666819643/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8284716&amp;postID=110016632666819643' title='13 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8284716/posts/default/110016632666819643'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8284716/posts/default/110016632666819643'/><link rel='alternate' type='text/html' href='http://perxspace.blogspot.com/2004/11/asterisk-with-moh-patch-on-debian.html' title='Asterisk with MoH Patch on Debian Sarge'/><author><name>Enrico Persiani</name><uri>http://www.blogger.com/profile/05278961043180380096</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>13</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8284716.post-109488930876187483</id><published>2004-09-11T01:40:00.000-07:00</published><updated>2004-09-11T00:55:08.760-07:00</updated><title type='text'>Maybe I'm wrong</title><content type='html'>Eventually I decided to open my brand new Blog! I'm a software developer and linux enthusiast, so the majority of postings will be related to tech issues and similar &lt;span style="font-style: italic;"&gt;odd&lt;/span&gt; stuff.&lt;br /&gt;By the way, stay tuned for more free thoughts...&lt;br /&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8284716-109488930876187483?l=perxspace.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8284716/posts/default/109488930876187483'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8284716/posts/default/109488930876187483'/><link rel='alternate' type='text/html' href='http://perxspace.blogspot.com/2004/09/maybe-im-wrong.html' title='Maybe I&apos;m wrong'/><author><name>Enrico Persiani</name><uri>http://www.blogger.com/profile/05278961043180380096</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry></feed>
