{"id":38,"date":"2008-12-04T10:56:08","date_gmt":"2008-12-04T17:56:08","guid":{"rendered":"http:\/\/www.1oc.com\/blog\/?p=38"},"modified":"2011-07-14T22:27:02","modified_gmt":"2011-07-15T02:27:02","slug":"how-to-install-an-ip-pbx-voip-on-alix","status":"publish","type":"post","link":"http:\/\/blog.1oc.com\/?p=38","title":{"rendered":"How to install an IP-PBX (VoIP) on Alix"},"content":{"rendered":"<p>Parts I used on this project:<\/p>\n<div id=\"attachment_71\" style=\"width: 235px\" class=\"wp-caption alignright\"><a href=\"http:\/\/blog.1oc.com\/wp-content\/uploads\/2008\/12\/photo.jpg\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-71\" class=\"size-medium wp-image-71\" title=\"photo\" src=\"http:\/\/blog.1oc.com\/wp-content\/uploads\/2008\/12\/photo-225x300.jpg\" alt=\"Materials\" width=\"225\" height=\"300\" srcset=\"http:\/\/blog.1oc.com\/wp-content\/uploads\/2008\/12\/photo-225x300.jpg 225w, http:\/\/blog.1oc.com\/wp-content\/uploads\/2008\/12\/photo.jpg 600w\" sizes=\"auto, (max-width: 225px) 100vw, 225px\" \/><\/a><p id=\"caption-attachment-71\" class=\"wp-caption-text\">Materials<\/p><\/div>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<ul>\n<li>Alix 2c2 for PC Engines (\u00a0<a title=\"Alix 2c2\" href=\"http:\/\/www.pcengines.ch\/alix2c2.htm\" target=\"_blank\">http:\/\/www.pcengines.ch\/alix2c2.htm<\/a> )Here&#8217;s the board specifications\u00a0<a href=\"http:\/\/blog.1oc.com\/wp-content\/uploads\/2008\/12\/alix2c.pdf\">alix2c.pdf<\/a><\/li>\n<li>PC\u00a0running\u00a0Windows with Vmware (in my case, I used the workstation edition, but probably the free-server edition could be used)<\/li>\n<li>Seagate\u00a0Micro-drive\u00a02.5G (bigger sizes work as well)<\/li>\n<li>USB-CF\u00a0interface<\/li>\n<li>2G\u00a0thumb-drive<\/li>\n<\/ul>\n<div>What we&#8217;ll do in a\u00a0nutshell\u00a0is installing the IP-PBX on a Micro-drive using the Vmware to create the image on the\u00a0micro-drive, modify some boot preference and install the drive on to Alix.<\/div>\n<div>These are the steps:<\/div>\n<div>Insert the Micro-drive in to the USB-CF interface and plug it into your pc<\/div>\n<div>Open Vmware and create a configuration similar to the Alix pcboard<\/p>\n<div id=\"attachment_46\" style=\"width: 310px\" class=\"wp-caption alignleft\"><a href=\"http:\/\/blog.1oc.com\/wp-content\/uploads\/2008\/12\/vmware11.jpg\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-46\" class=\"size-medium wp-image-46\" title=\"vmware11\" src=\"http:\/\/blog.1oc.com\/wp-content\/uploads\/2008\/12\/vmware11-300x171.jpg\" alt=\"Vmware configuration\" width=\"300\" height=\"171\" srcset=\"http:\/\/blog.1oc.com\/wp-content\/uploads\/2008\/12\/vmware11-300x171.jpg 300w, http:\/\/blog.1oc.com\/wp-content\/uploads\/2008\/12\/vmware11-500x285.jpg 500w, http:\/\/blog.1oc.com\/wp-content\/uploads\/2008\/12\/vmware11.jpg 932w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><p id=\"caption-attachment-46\" class=\"wp-caption-text\">Vmware configuration <\/p><\/div>\n<p>&#8211; 256 Mb of memory<br \/>\n&#8211; 2 bridge networks<br \/>\n&#8211; 1 usb<br \/>\n&#8211; 1 serial<br \/>\n&#8211; for the CD use the image of the pbx you want to instal.<br \/>\n&#8211; as a Hard-drive use the 2.5G Micro-drive\u00a0PhisycalDrive<\/p>\n<p>It&#8217;s\u00a0important\u00a0that you use the PhisycalDrive option of the vmware instead of the default one (create a file), so the Micro-drive is going to be he disk of our PBX.<br \/>\nIf you use a\u00a0different\u00a0alix board, just make suer to include the configuration that best matches your board, for example, if you have an alix with ONE ethernet card, just use ONE<\/p>\n<p>You also have to match the type of kernel you are using, in our project, we use 2\u00a0different\u00a0pbx, Trixbox, and Elastix, both are based on 2.6.x linux kernel.<\/p>\n<p>&nbsp;<\/p>\n<p>To learn more about Trixbox, go to their website at <a href=\"http:\/\/trixbox.org\" target=\"_blank\">Trixbox.org<\/a>, you also can download there the latest ISO image. For consitancy purposes we include here the image we use for this project so you can replicat it exactlly.<\/p>\n<p><a href=\"http:\/\/blog.1oc.com\/UploadedFiles\/trixbox-2.6.1-i386.iso\" target=\"_blank\">Click here<\/a> to download the 2.6.1 ISO image.<\/p>\n<p>&nbsp;<\/p>\n<p>To learn more about Elastix, go to their website <a href=\"http:\/\/www.elastix.org\/\" target=\"_blank\">Elastix.org<\/a>. And <a href=\"http:\/\/blog.1oc.com\/UploadedFiles\/Elastix-1.3-stable-29sep2008.iso\" target=\"_blank\">here&#8217;s<\/a> the ISO image as well.<\/p>\n<p>&nbsp;<\/p>\n<p>After mounting the ISO image on the CD\/DVD of the virtual machine, just boot and install it.<\/p>\n<p>Once your are done, we&#8217;ll need to change some boot parameters that are more\u00a0appropriate\u00a0for an\u00a0embedded\u00a0solution:<\/p>\n<p>edit \/etc\/grub.conf<\/p>\n<p>Comment out these 2 lines by putting a # at the beginning of the line:<\/p>\n<p><strong><em>#splashimage=(hd0,0)\/grub\/splash.xpm.gz<\/em><\/strong><\/p>\n<p><strong><em>#hiddenmenu<\/em><\/strong><\/p>\n<p>Add these 2 lines:<\/p>\n<p><strong><em>serial &#8211;unit=0 &#8211;speed=9600 &#8211;word=8 &#8211;parity=no &#8211;stop=1<\/em><\/strong><\/p>\n<p><strong><em>terminal &#8211;timeout=10 serial console<\/em><\/strong><\/p>\n<p>And add this to the end of each line that begins with \u201ckernel\u201d:<\/p>\n<p><strong><em>console=tty0 console=ttyS0,9600n8<\/em><\/strong><\/p>\n<p>(This tells Grub to direct console output to both the standard ttys (the ones you get with a\u00a0keyboard and monitor) as well as the serial port (ttySx).)<\/p>\n<p>&nbsp;<\/p>\n<div id=\"attachment_52\" style=\"width: 310px\" class=\"wp-caption alignnone\"><a href=\"http:\/\/blog.1oc.com\/wp-content\/uploads\/2008\/12\/picture-4.png\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-52\" class=\"size-medium wp-image-52\" title=\"picture-4\" src=\"http:\/\/blog.1oc.com\/wp-content\/uploads\/2008\/12\/picture-4-300x223.png\" alt=\"Grubu config\" width=\"300\" height=\"223\" srcset=\"http:\/\/blog.1oc.com\/wp-content\/uploads\/2008\/12\/picture-4-300x223.png 300w, http:\/\/blog.1oc.com\/wp-content\/uploads\/2008\/12\/picture-4-402x300.png 402w, http:\/\/blog.1oc.com\/wp-content\/uploads\/2008\/12\/picture-4.png 697w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><p id=\"caption-attachment-52\" class=\"wp-caption-text\">Grubu config<\/p><\/div>\n<p>&nbsp;<\/p>\n<p>Add this to the bottom of \/etc\/inittab:<\/p>\n<p><em>S0:12345:respawn:\/sbin\/agetty ttyS0 9600 linux<\/em><\/p>\n<p>(the \u201cS0? is just a unique identifier; no two entries in inittab can start with the same thing.\u00a012345 means all run levels (they correspond to \/etc\/rc2.d, rc3.d, etc) and respawn will\u00a0ensure that it will accept another login after you log out.)<\/p>\n<p>If you want to allow root to login over the console (versus logging in as a normal user and\u00a0su-ing), add \u201cttyS0? to the bottom of \/etc\/securetty:<\/p>\n<p><strong><em>echo ttyS0 &gt;&gt; \/etc\/securetty<\/em><\/strong><\/p>\n<p>edit \/etc\/sysconfig\/init and change<\/p>\n<p><strong><em>BOOTUP=color<\/em><\/strong><\/p>\n<p>to<\/p>\n<p><strong><em>BOOTUP=serial<\/em><\/strong><\/p>\n<p>to prevent the graphical startup from blowing up your terminal.<\/p>\n<p>If you have kudzu running (use chkconfig or look in \/etc\/rc3.d to see if it runs during\u00a0boot):<\/p>\n<p>edit \/etc\/sysconfig\/kudzu<\/p>\n<p><strong><em>set SAFE=yes<\/em><\/strong><\/p>\n<p>(Do only \u2019safe\u2019 probes that won\u2019t disturb hardware. Currently, this disables the serial\u00a0probe, the DDC monitor probe, and the PS\/2 probe.) This prevents kudzu from hiccuping\u00a0the serial port while you\u2019re connected to it during boot.<\/p>\n<p>&nbsp;<\/p>\n<p>Shut down the virtual machine and remove the CF card. Plug the CF card into the Alix and\u00a0boot. You can use a serial cable to watch it boot, or wait about 2.5 minutes, and it will be\u00a0ready to use.<\/p>\n<p>And here you have it, 2 different VoIP pbx running on your embedded platform<\/p>\n<div id=\"attachment_55\" style=\"width: 310px\" class=\"wp-caption alignleft\"><a href=\"http:\/\/blog.1oc.com\/wp-content\/uploads\/2008\/12\/picture-3.png\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-55\" class=\"size-medium wp-image-55 \" title=\"picture-3\" src=\"http:\/\/blog.1oc.com\/wp-content\/uploads\/2008\/12\/picture-3-300x144.png\" alt=\"Elastix 2\" width=\"300\" height=\"144\" srcset=\"http:\/\/blog.1oc.com\/wp-content\/uploads\/2008\/12\/picture-3-300x144.png 300w, http:\/\/blog.1oc.com\/wp-content\/uploads\/2008\/12\/picture-3-1024x492.png 1024w, http:\/\/blog.1oc.com\/wp-content\/uploads\/2008\/12\/picture-3-500x240.png 500w, http:\/\/blog.1oc.com\/wp-content\/uploads\/2008\/12\/picture-3.png 1266w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><p id=\"caption-attachment-55\" class=\"wp-caption-text\">Elastix<\/p><\/div>\n<\/div>\n<div>\n<div id=\"attachment_54\" style=\"width: 310px\" class=\"wp-caption alignright\"><a href=\"http:\/\/blog.1oc.com\/wp-content\/uploads\/2008\/12\/picture-1.png\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-54\" class=\"size-medium wp-image-54 \" title=\"picture-1\" src=\"http:\/\/blog.1oc.com\/wp-content\/uploads\/2008\/12\/picture-1-300x157.png\" alt=\"Elastix 1\" width=\"300\" height=\"157\" srcset=\"http:\/\/blog.1oc.com\/wp-content\/uploads\/2008\/12\/picture-1-300x157.png 300w, http:\/\/blog.1oc.com\/wp-content\/uploads\/2008\/12\/picture-1-1024x536.png 1024w, http:\/\/blog.1oc.com\/wp-content\/uploads\/2008\/12\/picture-1-500x262.png 500w, http:\/\/blog.1oc.com\/wp-content\/uploads\/2008\/12\/picture-1.png 1272w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><p id=\"caption-attachment-54\" class=\"wp-caption-text\">Elastix<\/p><\/div>\n<\/div>\n<div>\n<div id=\"attachment_56\" style=\"width: 310px\" class=\"wp-caption alignleft\"><a href=\"http:\/\/blog.1oc.com\/wp-content\/uploads\/2008\/12\/picture-8.png\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-56\" class=\"size-medium wp-image-56 \" title=\"picture-8\" src=\"http:\/\/blog.1oc.com\/wp-content\/uploads\/2008\/12\/picture-8-300x158.png\" alt=\"Tirxbox 1\" width=\"300\" height=\"158\" srcset=\"http:\/\/blog.1oc.com\/wp-content\/uploads\/2008\/12\/picture-8-300x158.png 300w, http:\/\/blog.1oc.com\/wp-content\/uploads\/2008\/12\/picture-8-1024x541.png 1024w, http:\/\/blog.1oc.com\/wp-content\/uploads\/2008\/12\/picture-8-500x264.png 500w, http:\/\/blog.1oc.com\/wp-content\/uploads\/2008\/12\/picture-8.png 1320w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><p id=\"caption-attachment-56\" class=\"wp-caption-text\">Tirxbox 1<\/p><\/div>\n<\/div>\n<div>\n<div id=\"attachment_57\" style=\"width: 310px\" class=\"wp-caption alignright\"><a href=\"http:\/\/blog.1oc.com\/wp-content\/uploads\/2008\/12\/picture-9.png\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-57\" class=\"size-medium wp-image-57 \" title=\"picture-9\" src=\"http:\/\/blog.1oc.com\/wp-content\/uploads\/2008\/12\/picture-9-300x219.png\" alt=\"Trixbox 2\" width=\"300\" height=\"219\" srcset=\"http:\/\/blog.1oc.com\/wp-content\/uploads\/2008\/12\/picture-9-300x219.png 300w, http:\/\/blog.1oc.com\/wp-content\/uploads\/2008\/12\/picture-9-1024x749.png 1024w, http:\/\/blog.1oc.com\/wp-content\/uploads\/2008\/12\/picture-9-410x300.png 410w, http:\/\/blog.1oc.com\/wp-content\/uploads\/2008\/12\/picture-9.png 1334w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><p id=\"caption-attachment-57\" class=\"wp-caption-text\">Trixbox 2<\/p><\/div>\n<div id=\"attachment_60\" style=\"width: 310px\" class=\"wp-caption aligncenter\"><a href=\"http:\/\/blog.1oc.com\/wp-content\/uploads\/2008\/12\/picture-10.png\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-60\" class=\"size-medium wp-image-60 \" title=\"picture-10\" src=\"http:\/\/blog.1oc.com\/wp-content\/uploads\/2008\/12\/picture-10-300x235.png\" alt=\"Trixbox\" width=\"300\" height=\"235\" srcset=\"http:\/\/blog.1oc.com\/wp-content\/uploads\/2008\/12\/picture-10-300x235.png 300w, http:\/\/blog.1oc.com\/wp-content\/uploads\/2008\/12\/picture-10-382x300.png 382w, http:\/\/blog.1oc.com\/wp-content\/uploads\/2008\/12\/picture-10.png 1013w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><p id=\"caption-attachment-60\" class=\"wp-caption-text\">Trixbox<\/p><\/div>\n<p>&nbsp;<\/p>\n<p>Now, let&#8217;s backup the images:<\/p>\n<p>Mount to the ALIX a\u00a0thumb-drive\u00a0big enough to hold the CF disk, in our case 2G is enough.<\/p>\n<p>&nbsp;<\/p>\n<p><strong><em>mount \/dev\/sda1 \/mnt\/usb<\/em><\/strong><\/p>\n<p><strong><em>dd if=\/dev\/hda bs=1k conv=noerror,sync | gzip -c &gt; \/mnt\/usb\/trixbox-backup.img<\/em><\/strong><\/p>\n<p><strong><em>umount \/mnt\/usb<\/em><\/strong><\/p>\n<p>Now you have the backups.<\/p>\n<p>For your\u00a0convenience\u00a0and if you want to skip the project and jump to the results, I&#8217;m including here the 2 backup images of this 2 pbx<\/p>\n<p>&nbsp;<\/p>\n<p>Download here the <a href=\"http:\/\/blog.1oc.com\/UploadedFiles\/trixbox_2_6_1_onAlix.img\" target=\"_blank\">Trixbox<\/a> backup image and here the <a href=\"http:\/\/blog.1oc.com\/UploadedFiles\/elastix_1_3_onAlix.img\" target=\"_blank\">Elastix<\/a> one.<\/p>\n<p>You can use\u00a0<strong>physdiskwrite<\/strong> on windows to dump the backup image to the Micro-drive.<\/p>\n<p>&nbsp;<\/p>\n<div id=\"attachment_61\" style=\"width: 310px\" class=\"wp-caption alignnone\"><a href=\"http:\/\/blog.1oc.com\/wp-content\/uploads\/2008\/12\/picture-7.png\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-61\" class=\"size-medium wp-image-61\" title=\"picture-7\" src=\"http:\/\/blog.1oc.com\/wp-content\/uploads\/2008\/12\/picture-7-300x222.png\" alt=\"physdiskwrite\" width=\"300\" height=\"222\" srcset=\"http:\/\/blog.1oc.com\/wp-content\/uploads\/2008\/12\/picture-7-300x222.png 300w, http:\/\/blog.1oc.com\/wp-content\/uploads\/2008\/12\/picture-7-404x300.png 404w, http:\/\/blog.1oc.com\/wp-content\/uploads\/2008\/12\/picture-7.png 698w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><p id=\"caption-attachment-61\" class=\"wp-caption-text\">physdiskwrite<\/p><\/div>\n<p>&nbsp;<\/p>\n<p>You can download\u00a0physdiskwrite from their official website (\u00a0<a href=\"http:\/\/m0n0.ch\/wall\/physdiskwrite.php\" target=\"_blank\">http:\/\/m0n0.ch\/wall\/physdiskwrite.php<\/a>\u00a0) or from <a href=\"http:\/\/blog.1oc.com\/UploadedFiles\/physdiskwrite-0.5.1.zip\" target=\"_blank\">here<\/a>, this is the version I sued for the project.<\/p>\n<p>&nbsp;<\/p>\n<p>Regards.<\/p>\n<p>&nbsp;<\/p>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>Parts I used on this project: &nbsp; &nbsp; Alix 2c2 for PC Engines (\u00a0http:\/\/www.pcengines.ch\/alix2c2.htm )Here&#8217;s the board specifications\u00a0alix2c.pdf PC\u00a0running\u00a0Windows with Vmware (in my case, I used the workstation edition, but probably the free-server edition could be used) Seagate\u00a0Micro-drive\u00a02.5G (bigger sizes &hellip; <a href=\"http:\/\/blog.1oc.com\/?p=38\">Continue reading <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[10],"tags":[],"class_list":["post-38","post","type-post","status-publish","format-standard","hentry","category-voip"],"_links":{"self":[{"href":"http:\/\/blog.1oc.com\/index.php?rest_route=\/wp\/v2\/posts\/38","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/blog.1oc.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/blog.1oc.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/blog.1oc.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/blog.1oc.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=38"}],"version-history":[{"count":2,"href":"http:\/\/blog.1oc.com\/index.php?rest_route=\/wp\/v2\/posts\/38\/revisions"}],"predecessor-version":[{"id":450,"href":"http:\/\/blog.1oc.com\/index.php?rest_route=\/wp\/v2\/posts\/38\/revisions\/450"}],"wp:attachment":[{"href":"http:\/\/blog.1oc.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=38"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/blog.1oc.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=38"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/blog.1oc.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=38"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}