Introduction
Package based Build system for Blackfin Asterisk. Key differences compared to buildroot based systems like Astfin and uCasterisk:
- End users do not need to compile any software, they just install them on a running Blackfin system, for example:
root:~> ipkg install asterisk
will grab the latest Asterisk package from a web site and install it on a Blackfin based hardware platform. Use is not limited to Asterisk, it could be used to manage any Blackfin software, including the kernel. The use of ipkg is very common on the OpenWRT project, and similar package based systems are common on x86 Linux, e.g. apt-get, debs, rpms.
Note that software is installed at run time rather than build time. Packages (via ipkg) are used to install applications like Asterisk, rather than placing everything in a uImage. The target hardware is initially booted with a basic kernel and root file system, then packages are installed as required. We assume availability of persistent (non ram) based file system like yaffs or jffs2.
The goal is to make installing software on the Blackfin much easier for end-users, more like an x86 experience.
- Compared to buildroot systems BAPS has a flat directory structure to ease development (less wear on your tab key). It is designed to allow modular compilation of packages, e.g. you can compile a single application without building the entire uImage. Faster and less output to wade through. Makefiles (e.g. asterisk.mk) and source (e.g. asterisk-1.4.4) are within one directory level of each other for easy navigation of the source tree. There is less chance of breaking the build system due to decoupling of modules (kernel, root fs, are separate from Asterisk).
Getting Started – Method 1
NEW! There is now a very easy way to install BAPS. No serial cable is required. An Internet connection is required, and an IP network running DHCP:
For an IP02/IP04/IP08:
(cd /persistent if an Astfin box)
root:~> wget http://rowetel.com/ucasterisk/downloads/uImage_r4.mtd0
root:~> dd if=uImage_r4.mtd0 of=/dev/mtdblock1
root:~> reboot
Note the r4 images work with the latest IP0Xs that have rev C DM9000 chips.
For an IP01:
(cd /persistent if an Astfin box)
root:~> wget http://rowetel.com/ucasterisk/downloads/uImage_r2.mtd0.ip01
root:~> dd if=uImage_r2.mtd0.ip01 of=/dev/mtdblock1
root:~> reboot
Sell also Method 2 Below….
Packages
In addition to an IP04/IP08 uImage (kernel plus basic root filesystem) there is a growing list of packages:
| Package | Description |
|---|---|
| asterisk-1.4.20 | Asterisk is a complete PBX in software. It provides all of the features you would expect from a PBX and more. Asterisk does voice over IP in three protocols, and can interoperate with almost all standards-based telephone equipment using relatively inexpensive hardware. |
| asterisk | Asterisk is a complete PBX in software. It provides all of the features you would expect from a PBX and more. Asterisk does voice over IP in three protocols, and can interoperate with almost all standards-based telephone equipment using relatively inexpensive hardware. |
| asterisk-gui | Asterisk Now GUI. |
| asterisk-spandsp-1.4.21.2 | Asterisk is a complete PBX in software. It provides all of the features you would expect from a PBX and more. Asterisk does voice over IP in three protocols, and can interoperate with almost all standards-based telephone equipment using relatively inexpensive hardware. |
| asterisk-spandsp | Asterisk is a complete PBX in software. It provides all of the features you would expect from a PBX and more. Asterisk does voice over IP in three protocols, and can interoperate with almost all standards-based telephone equipment using relatively inexpensive hardware. |
| atftp | tftp (trivial file transfer protocol) server |
| busybox | Additional busybox utilities not included in the default uImage. Lets you to install extra utilities without reflashing. |
| checkreset | Check if reset help down on boot, and executes a user-defined script, for example to set IP04 to a known IP, or restore defaults. Also see /usr/doc/checkreset.txt. |
| commis | Press 1...8 to dial Zap/1...Zap/8, 2020 to record/playback, 2008 to play a prompt. |
| cron | CRON is a small version of the cron daemon.. |
| dnsmasq | Dnsmasq is a lightweight, easy to configure DNS forwarder and DHCP server. It is designed to provide DNS, and optionally DHCP, to a small network. It can serve the names of local machines which are not in the global DNS. The DHCP server integrates with the DNS server and allows machines with DHCP-allocated addresses to appear in the DNS with names configured either in each host or in a central configuration file. Dnsmasq supports static and dynamic DHCP leases and BOOTP/TFTP/PXE for network booting of diskless machines. |
| dropbear | Dropbear, a smallish SSH 2 server and client URL:=http://matt.ucc.asn.au/dropbear/dropbear.html |
| ee | easyeditor ee, a smallish editor |
| fping | ping(1) like program which uses the Internet Control Message Protocol (ICMP) echo request to determine if a host is up. fping is different from ping in that you can specify any number of hosts on the command line, or specify a file containing the lists of hosts to ping. Instead of trying one host until it timeouts or replies, fping will send out a ping packet and move on to the next host in a round-robin fashion. If a host replies, it is noted and removed from the list of hosts to check. If a host does not respond within a certain time limit and/or retry limit it will be considered unreachable. |
| freepbx | DEPRICATED - Please see http://rowetel.com/ucasterisk/ip04.html[here] for a description of IP0X GUIs. FreePBX is a standardized implementation of Asterisk and is based around a web-based configuration interface and other tools. |
| gettext | This is the GNU gettext package. It is interesting for authors or maintainers of other packages or programs which they want to see internationalized. As one step the handling of messages in different languages should be implemented. For this task GNU gettext provides the needed tools and library functions. |
| hello | A trivial demo program to show how easy baps is to use. |
| leds | Control SD and SYS LEDS from /proc on IP04, and monitors CFGRESET |
| libcurl | Curl is a command line tool for transferring files with URL syntax, supporting FTP, FTPS, HTTP, HTTPS, GOPHER, TELNET, DICT, FILE and LDAP. Curl supports HTTPS certificates, HTTP POST, HTTP PUT, FTP uploading, kerberos,HTTP form based upload, proxies, cookies, user+password authentication, file transfer resume, http proxy tunneling and a busload of other useful tricks. |
| libssl | A toolkit implementing SSL v2/v3 and TLS protocols with full-strength cryptography world-wide. |
| libtiff | Tiff image file format library |
| libxml | A library for manipulating XML and HTML resources. |
| lighttpd | Light web server with PHP support. |
| login | The default telnet in the BAPS uImage does not request a username/password. This package adds the login utility which forces telnet to prompt for a username/password. Also contains testuser - a utility for checking username/password pairs from the command line, and passwd_cmdline, a utility for setting the root password from the comamnd line. |
| mini-asterisk-gui | Mini Asterisk is a set of scripts that implement a simple Web GUI for Asterisk. Everything is pre-configured, Analog and ports and SIP phones and trunks are automatically detected. The learning curve is a few minutes and it has comprehensive tool-tip documentation. Mini Asterisk is 'unfeatured' - it hides many of the advanced Asterisk features in the interest of simple and fast configuration. |
| munin | Munin node and plugins for remote data logging from Blackfin systems. Monitor a network of IP04s and graph the results with a small amount of configuration. Easy to set up and customise. |
| nano | Text editor that many people find easier to use than vi |
| native-sounds | Asterisk prompts in native mulaw format. |
| netcat | NetCat client |
| net-snmp | net-snmp server (with agentx support) |
| network-backdoor | Alternate static network config used as an emergency backdoor into the IP0X if the main network interface is down. |
| network-static | Static (non-dhcp) network config scripts. |
| ntp | NTP is a protocol designed to synchronize the clocks of computers over a network. only ntpd is packaged in for now. |
| ntpclient | ntp client designed to synchronize the clocks of computers over a network |
| oslec | Open Source Line Echo Canceller, a high quality free echo canceller for Asterisk. |
| pagecache | Reduces the amount of memory available for file buffering freeing this memory for system use. |
| perl | A perl package without operating-specific functions such as readdir. |
| php | PHP is a widely-used general-purpose scripting language that is especially suited for Web development and can be embedded into HTML. |
| ping | Full featured ping to replace Busybox ping. |
| procps | procps is the package that has a bunch of small useful utilities that give information about processes using the /proc filesystem. The package includes the programs ps, top, vmstat, w, kill, free, slabtop, and skill. |
| rsync | fast remote file copy program |
| spandsp | Telephony Algorithms and Digital Signal Processing Routines |
| sqlite3 | SQLite is a small C library that implements a self-contained, embeddable, zero-configuration SQL database engine. |
| ssmtp | extremely simple MTA to get mail off the system to a mail hub |
| tcpdump | TCPDUMP is a common computer network debugging tool to capture TCP/IP packets |
| vim | Vim is an almost compatible version of the UNIX editor Vi |
| voiptel-gui-pre | DEPRICATED - Please see http://rowetel.com/ucasterisk/ip04.html[here] for a description of IP0X GUIs. VoIPtel GUI, pre-release version. An upgraded and debugged version of the AsteriskNow GUI for Blackfin Asterisk. |
| wispcar | Controls Wifi Station Power Controller And Reporter hardware which provide voltage and current monitoring, watchdog and sleep timer functions. |
| zaptel-gsm-sport | Telephony hardware drivers for IP04 with support for Astfin GSM module SPI-over-SPORT1 version (later Atcom IP04s, IP08s). |
| zaptel-ip01 | Telephony hardware drivers for Atcom IP01 |
| zaptel-spi | Telephony hardware drivers for IP04 SPI-over-SPI hardware version (Rowetel IP04). |
| zaptel-sport | Telephony hardware drivers for IP04 SPI-over-SPORT1 version (later Atcom IP04s, IP08s). |
OpenVPN Patch
Alex Brett has developed an OpenVPN patch for BAPs. This requires recompiling the uImage (see below) so is not available as an ipkg for the standard BAPS uImage. However if you are comfortable with compiling a uImage and reflashing you may like to try Alex’s patch. Thank you Alex!
After a few minutes your IP0X will boot with all the baseline BAPS packages installed – ready to make phone calls. The design behind this web based image installation method is documented in this blog post.
Getting Started – Method 2
This method is a little more complex, and requires working with u-boot using the RS232 console interface. For more information on this process please see the IP04 Wiki or please post to the Blackfin Asterisk forum.
However once the uImage is install life gets much easier!
This process will *erase your IP04 root file system* so please backup anything you really need (like your asterisk conf files).
1/ Get the baseline BAPs uImage (contains kernel and basic root file system) and place it on your tftp server:
http://www.rowetel.com/ucasterisk/downloads/uImage_r2.ip08
NOTE: Despite it’s name, uImage_r4.ip08 works fine on both the IP04 and IP08.
2/ Connect a RS232 cable to your IP04 (via the daughter board) and stop the boot process at the u-boot prompt.
Now we are going to write the new uImage to flash. your:mac:address can be found using print at the u-boot prompt.
CAUTION: Do not cut/paste the steps below into your serial terminal program, as they often cannot respond fast enough and lose characters. Type each line carefully by hand.
Install the new uImage into NAND flash using u-boot:
ip04>set autostart
ip04>set serverip your.tftp.server
ip04>tftp 0x1000000 uImage_r4.ip08
ip04>nand erase clean
ip04>nand erase
ip04>nand write 0x1000000 0x0 0x300000
ip04>set bootargs ethaddr=your:mac:address root=/dev/mtdblock0 rw
ip04>save
ip04>bootm 0x1000000
(uClinux will boot…….)
TIP: If Linux doesn’t boot or you experience other problems reboot into uboot, type “print”, and carefully check bootargs
3/ Now we have uClinux running, but using a ram-based ext2 file system (mtdblock0) for root. So we need to copy /root into the yaffs file system:
On the IP04:
root:~> copy_rootfs.sh
root:~> reboot
4/ Now set up u-boot to mount root from yaffs (some of these env variables may be set already, use ‘print’ to check):
ip04>set autostart yes
ip04>set bootargs ethaddr=your:mac:address root=/dev/mtdblock2 rw
ip04>set nandboot 'nboot 0x2000000 0x0'
ip04>set bootcmd run nandboot
ip04>save
ip04>reset
5/ Boot IP04 to a uClinux root prompt. Use mount to check that root is mounted on mtdblock2 (yaffs file system).
Now we can install some packages using ipkg:
root:~> ipkg update
root:~> ipkg install network-static zaptel-sport native-sounds asterisk
root:~> ipkg install mini-asterisk-gui
root:~> ipkg install commis
root:~> reboot
NOTE: If your IP04 was built before April 2008 use zaptel-spi rather than zaptel-sport in the ipkg install step above.
6/ Essential BAPS commands are:
root~> ipkg update
root~> ipkg list
root~> ipkg list_installed
root~> ipkg install PackageName
root~> ipkg remove PackageName
7/ BAPS uses init.d type start up scripts, so you can stop and start services like this:
root:~> /etc/init.d/asterisk stop
root:~> /etc/init.d/asterisk start
Documentation
After installation many packages include documentation in the /usr/doc directory of the IP04. These are small files designed to capture Blackfin or IP04 specific information, for example simple tests and notes on differences from other versions of the same package. The documentation files can also be browsed from BAPS SVN.
HOWTO – Developer
1/ Checkout BAPS:
$ svn co http://svn.astfin.org/software/baps/trunk baps
$ cd baps
2/ You need this toolchain:
[baps]$ wget http://blackfin.uclinux.org/gf/download/frsrelease/ \
348/3347/blackfin-toolchain-07r1.1-3.i386.tar.gz
[baps]$ tar xzf blackfin-toolchain-07r1.1-3.i386.tar.gz
If you untar the toolchain in baps directory then it will be included in your path automatically. If you untar it somewhere else make sure the bin directories in this toolchain are in your path.
3/ Make a BAPS uImage that supports ipkg. This also configures uClinux-dist to support compiling of other packages. You need to make uClinux before making any other packages.
[baps]$ make -f uClinux.mk uClinux
[baps]$ cp uClinux-dist/images/uImage /tftpboot/uImage
On some recent gcc compilers “make -f uClinux.mk uClinux” may bomb out with a PATH_STR error. To correct add
"#include <limits.h>"
to the list of #includes near the top of uClinux-dist/linux-2.6.x/scripts/mod/sumversion.c then run “make -f uClinux.mk uClinux” again.
4/ This step is Optional, it means reflashing your IP0X. If you just want to build BAPs packages, you can proceed to the next step.
You can try booting from your uImage via tftp, in u-boot:
ip04>set autostart
ip04>set bootargs ethaddr=your:mac:address root=/dev/mtdblock0 rw
ip04>save
ip04>tftp 0x1000000 uImage
ip04>bootm
Or you can flash the uImage as described in the <
Check out ipkg.conf:
root:~> cat /etc/ipkg.conf
src snapshots http://rowetel.com/ucasterisk/ipkg
dest root /
Try installing a simple ipkgs:
root:~> ipkg update
root:~> ipkg list
root:~> ipkg install hello
root:~> hello
5/ BAPS uses init.d type start up scripts, for example:
root:~> ls /etc/init.d
root:~> /etc/init.d/hello
root:~> /etc/init.d/hello enable
root:~> ls -l /etc/rc.d/
6/ Building an ipkg for Asterisk 1.4.4:
[baps]$ make -f libssl.mk && make -f oslec.mk && make -f zaptel.mk
[baps]$ make -f asterisk.mk asterisk-package
You only need to build libssl/oslec/zaptel once, this steps sets up some libraries and include files required for Asterisk.
To just build Asterisk (without building the ipkg):
[baps]$ make -f asterisk.mk
This is useful for testing a .so, you can build Asterisk, then rcp/scp the .so file to the IP04 for testing without a full ipkg install.
There is a generic Asterisk Makefile asterisk-1.4.x.mk, just modify the Asterisk version to build other Asterisk versions. For building Asterisk with Spandsp (e.g. for Caller ID support) use asterisk-spandsp-1.4.x.mk.
HOWTO – IPKG
To build the ipkg:
[baps]$ make -f hello.mk hello
[baps]$ make -f hello.mk hello-package
[baps]$ ls ipkg
To create an index file:
[baps]$ cd ipkg
[baps]$ ../scripts/ipkg-make-index.sh . > Packages
[baps]$ scp Packages /your/web/server
Then change the first line in /etc/ipkg.conf on your IP04:
src snapshots http://you.web.server
And try:
root:~> ipkg update
root:~> ipkg list
NOTES:
1/ If you change the post or pre inst scripts, it is a good idea to rm the existing $(TARGET_DIR) (see Makefile for your package), as the package make scripts don’t seem to recognise when post/pre scripts have been changed.
2/ To debug post/pre inst scripts #!/bin/sh -x is your friend!
3/ To test ipkgs you can rcp down to the target:
[host]$ rcp ipkg/asterisk_1.4.4-1_bfin.ipk root@ip04:/root
[ip04]$ ipkg install asterisk_1.4.4-1_bfin.ipk
If you get complaints about MD5 mismatch, then:
[ip04]$ rm /usr/lib/ipkg/lists/snapshots
HOWTO – uClinux Changes
Say you have changed a busybox option, or modified some files in uClinux-dist. To capture the changes to patches in SVN:
[baps]$ make -f uClinux.mk uClinux-ip04-make-patch
[baps]$ svn status
Tips:
To change linux kernel options:
[baps]$ cd uClinux-dist
[uClinux-dist]$ make linux_menuconfig (kernel changes)
To change user application and library settings:
[baps]$ cd uClinux-dist
[uClinux-dist]$ make config_menuconfig
To modify the IP04 rc, motd etc:
[baps]$ cd uClinux-dist/vendors/Rowetel/IP04 (mess with files)
Then capture changes as above with:
[baps]$ make -f uClinux.mk uClinux-ip04-make-patch
Notes
1/ Patch files are compatible with Astfin, so hopefully it’s possible to move patches back and forth between BAPS and Astfin.
2/ See TODO.txt
3/ To debug init shell scripts, e.g. files/hello.init, add a -x to the first line if the script using vi on the IP04:
#!/bin/sh -x
4/ When writing init scripts your will find the busybox msh shell has some quirks, here is a link that explains them (all one line):
http://dslinux.org/cgi-bin/moin.cgi/DSLinuxMshScriptingGuide?action=show&redirect=DSLinux+msh+scripting+guide
5/ For more information on the IPKG format:
http://handhelds.org/moin/moin.cgi/Ipkg
6/ On the target, the ipkg data is stored in /usr/lib/ipkg/info/
Directories
ipkg – completed packages are placed here
include – from OpenWRT kamikaze, contains useful stuff for building packages.
scripts – Useful scripts from OpenWRT kamikaze
patch – patches for all packages
files – start up scripts for packages, get copied to /etc/init.d on target
G729 Codec Installation
Analog Devices has developed an optimised g729 library for the Blackfin that can run on the IP0X. Note that you require a license from Sipro to run this g729 codec legally. There is no legal way to buy single g729 licenses for IP0X machines at this time.
Here are the instructions for building and installing the g729 codec. Familiarity with compiling Blackfin code for the IP04 is useful but Method 1 is fairly easy for anyone who has an x86 Linux box.
Method 1
If you have not already installed the toolchain/BAPS and built your own uImage this is the easiest way.
1/ On an x86 Linux machine download and unzip the toolchain:
$ mkdir baps
$ cd baps
$ wget http://blackfin.uclinux.org/gf/download/frsrelease/ \
348/3347/blackfin-toolchain-07r1.1-3.i386.tar.gz
$ tar xzf blackfin-toolchain-07r1.1-3.i386.tar.gz
2/ Modify your PATH to include these two directories
/path/to/baps/opt/uClinux/bfin-linux-uclibc/bin
/path/to/baps/opt/uClinux/bfin-uclinux/bin
For example:
$ export PATH=/home/david/baps/opt/uClinux/bfin-linux-uclibc/bin \
:/home/david/baps/opt/uClinux/bfin-uclinux/bin:$PATH
$ echo $PATH
3/ Check out and build libbfgdots:
$ svn co svn://sources.blackfin.uclinux.org/uclinux-dist/trunk/lib/libbfgdots libbfgdots
$ cd libbfgdots; make
Now rcp g729/src.fdpic/libg729ab.so from libbfgdots to /lib on your IP04:
$ rcp g729/src.fdpic/libg729ab.so root@ip04:/lib
4/ Update the uImage of the IP0X. A BF533 kernel is required to run g729. There is a pre-compiled BF533 uImage here. It can be simply installed using the “Updating uImage from uClinux” instructions in the IP0X How-to. Note this image hard codes the “root=” part of the boot argument (kernel command line) to root=/dev/mtdblock2 which is probably what you want.
5/ Reboot the IP0X with the new kernel. Using dmesg check that the IP0X is booting as a BF533 (top few lines) rather than a BF532.
6/ When Asterisk boots it should load the g729 codec. Check the codec is installed with ‘show translation’ at the Asterisk CLI.
Method 2
1/ Make sure the 2007 toolchain is installed as per the Developer How To above. Your path should include these directories:
/path/to/baps/opt/uClinux/bfin-linux-uclibc/bin
/path/to/baps/opt/uClinux/bfin-uclinux/bin
2/ Change the processor type in patch/vendors/Rowetel/config.linux-2.6.x to BF533:
# CONFIG_BF532 is not set
CONFIG_BF533=y
Rebuild the uImage as per Step 3 of the Developer How To above:
[baps]$ make -f uClinux.mk uClinux.mtd2
[baps]$ cp uClinux-dist/images/uImage /tftpboot/uImage
You can test it by booting the uImage from ram:
ip04>tftp 0x1000000 uImage;bootm
Check that it boots as a BF533.
Now flash this new uImage. It is possible to install this new kernel without erasing your root file system if you just erase the first 0×300000 of flash.
ip04>set autostart
ip04>set serverip your.tftp.server
ip04>tftp 0x1000000 uImage_bf533
ip04>nand erase clean 0x0 0x300000
ip04>nand erase 0x0 0x300000
ip04>nand write 0x1000000 0x0 0x300000
3/ Check out and build libbfgdots:
$ svn co svn://sources.blackfin.uclinux.org/uclinux-dist/trunk/lib/libbfgdots libbfgdots
$ cd libbfgdots; make
Now rcp g729/src.fdpic/libg729ab.so from libbfgdots to /lib on your IP04:
$ rcp g729/src.fdpic/libg729ab.so root@ip04:/lib
When Asterisk boots it should load the g729 codec. Check the codec is installed with ‘show translation’ at the Asterisk CLI.
Credits
Thanks to: Jeff Knighton, Alex Tao, Ming C (Vincent) Li, Mike Taht, Keith Huang, Mark Hindess, Nick Basil, Michael O’Conner, Darryl Ross, Jose Luis Duran, Kelvin Chuaa, and Alex Brett for contributing.
Asterisk Now 2.0 GUI Installation
The good people at Digium have been busy working on their Asterisk Now GUI. A lot of people have suggested that Version 2.0 is a big improvement over V1.x. An ipkg for the Asterisk Now 2.0 GUI is available for BAPs. Other ports of this GUI for the IP04 are available in the Astfin distribution and from Voiptel. There are also some earlier versions of the Voiptel V1.x GUI available in ipkg form.
Here are the steps required to install the Asterisk 2.0 GUI on an IP04 running BAPs. Note that Asterisk needs to be upgraded to support the GUI. Make sure you back up any conf files if you want to keep their contents.
root:~> ipkg list_installed
asterisk - 1.4.4-1 -
native-sounds - 1.0-1 -
network-static - 1-1 -
oslec - 1.0-1 -
zaptel-sport - 1.4.3-1 -
Done.
root:~> ipkg remove mini-asterisk-gui asterisk lighttpd
root:~> ipkg update
root:~> ipkg install asterisk-1.4.20 asterisk-gui
root:~> reboot
Wait for a minute for the reboot then point your browser at your IP04. The lightpd package needs too be removed otherwise it clashes with the internal Asterisk Web server.
Asterisk Now 2.0 GUI User Guide
Well, not really a user guide! Just some basic notes to get you started:
Analog and SIP Extensions
- Point your web browser at your IP04 and login with admin/mysecret
- I also like start up an Asterisk CLI session so I can see what the GUI is up to (set verbose 5).
- First check to see if the GUI has picked up your analog ports by clicking on the *Configure Hardware* menu. Check the Analog Hardware section matches your FXS/FXO port configuration.
- Next create a default Dialplan – without this none of the extensions can call each other. Go to *Dial Plans* and click on *New DialPlan*, then Save and *Apply Changes*. This should create DialPlan1. That’s it for this menu.
- Now lets set up a couple of FXS analog extensions. Go to Users menu and click on the edit option for the 6004 extension. From the *Dial Plan* box select DialPlan1, and select one of your FXS ports (e.g. Port 4) from the Technology Section of the GUI. Click Save then *Apply Changes*.
- Repeat the step above for another FXS extension (say 6003 with Port 3).
- Now you should be able to dial one extension from another. Another good test is extension 6000 which is the default IVR menu.
- To add a SIP phone click on *Create New User*. In the General section set the Extension to 6015. Also set Name to 6015, and configure the Dialplan pull down menu. In the VoIP section set the SIP password in the *SIP/IAX password* text box. Note that the actual text box for the SIP/IAX password is located just under the MAC Address text, at least on my browser. Click Save then *Apply Changes*.
- Configure your SIP phone (e.g. via it’s web interface) to be username/password 6015/6015 and the SIP server to be your IP04. Now try dialling the SIP phone from one of the analog phones. You may need to re-boot your SIP phone to get it to register correctly.
- Check out the CLI to see what the GUI is up to. This is what I found after setting up two analog (6004 and 6016), and one SIP (6015) extensions:
ip04*CLI> show dialplan default
--snip--
'6015' => hint: SIP/6015&IAX2/6015 [pbx_config]
1. Dial(${HINT}) [pbx_config]
--snip--
ip04*CLI> sip show peers
Name/username Host Dyn Nat ACL Port Status
6015/6015 192.168.1.23 D 5060 Unmonitored
Analog Trunks
- Click on Trunks. Delete the existing Port 5,6,7,8 trunk, and click on “Create New Trunk”
- Check the *Channels 1* box and make the *Trunk Name* “trunk1″.
- Click Add then *Apply Changes*.
- Click on *Outgoing Calling Rules*, *New Calling Rule*.
- Make the *Calling Rule Name* “rule1″, Pattern “_00″, Strip “2″, and in *Use Trunk* select “trunk1″. When you dial 00 on a handset this will get you an outside line via Port 1. (Note: when I test _0 it wouldn’t work as _0 may clash with another predefined rule).
- Click Save and *Apply Changes*. I get a pop-up message saying a reboot may be required at this stage, however a reboot wasn’t required for me.
- Click on *Dial Plans*. Edit the DialPlan1 rule created above to include “rule1″.
- Click Save and *Apply Changes*.
- Pick up an analog handset and dial 00, you should hear dial tone on the line connected the Port 1.
GUI Gotchas
I was caught by these:
- Remember to reboot after installing asterisk and the GUI.
- If you get a busy tone when you try to dial make sure you have selected a Dialplan (e.g. Dialplan1 above) for that phone.
- If your can’t dial your SIP phone try rebooting the phone.
BAPS TODO
Some tasks that need doing….:
- Can we install kernels (uImage) using a package and no u-boot/RS232?
- Should we separate kernel from baseline root file system install?
- BAPS uImages for BF537 and BF533
- A way to build all packages needed for development, like ip08.mk, or maybe set up dependencies in existing Makefile, e.g. so that libssl.mk is called when making asterisk. Not sure about the best way to go here – the idea behind BAPs is to modularise compilation so I am sensitive to having many dependencies and all the extra output that would generate on the command line.