Update: August 22, 2012
Yate 4.2 is already out and so I updated the below instructions and adde a new Makefile. See the related blog on Yate 4.2 at the link below:
Yate-4.2 on Openwrt with Google Voice support
==================================
Puiblished: June 2, 2012
I had been using Yate4 for sometime and it is an excellent telephony application. As of this writing openwrt trunk only includes yate-3.2 and this limits some of the advancements in the application. I like a lot of things about yate, even though it may not be categorized as a replacement for asterisk. For a lot of folks, the excellent Google Voice support in yate, makes it a must have item in their embedded device running openwrt.
I will explain how to make yate 4.1working in openwrt. There are help pages available in openwrt for
1. how to create custom feeds
2. how to create a package
And they both explain a lot of detail on how you can achive getting custom feeds in clean way. So I am not planning to put a lot of effort on explaining those, and will focus on the core part, the makefile.
Also I will show you how to create an ipk file which you can install on your openwrt platform. The cleaner way of doing is create a custom feed and put yate4 package with the makefile in the custom feed.
Here is the makefile you can use for this purpose.
Makefile.yate
The steps to compile your own ipk is below. The pre-requisite for this is that you already have setup your openwrt compile environment, and know how to compile openwrt from source.
1. Goto your openwrt compile environment base directory.
2. mkdir package/yate
3. Download Makefile.yate to package/yate/Makefile
----
Note: if you dont have compiled openwrt in this directory, you might have to build the toolchain before the next step.
make tools/install
make toolchain/install
----
4. make package/yate/compile
5. make package/yate/install
You will have the yate4 ipk file under bin/packages
Now you can use opkg install yate4.ipk to install this package to your openwrt platform.
How to make google voice working. I was going to explain this detail here, and was documenting how I made it working. But I realized that now there is an excellent documenation in the official yate webpage.
Here is the link: Yate4-ConnectingToGoogleVoice
Follow that link to make google voice working.
Note: For a handful of folks, who dont have an openwrt compile environment, and want to have an ipk, please post a comment with the exact router model you have (to know the cpu) and your kernel version. If I already have an ipk compatable for the model, I will share it with you. (please dont expect a reply if I dont have the ipk for you.)
Good job man! My router is TP-Link WA901ND Version 1.x, if you have the IPK please let me know. My email address is ipmirt@gmail.com thank you
ReplyDeleteAttila sorry I dont have the ipk for AR7240. I will try to compile one for you sometime.
DeleteCheck the below link on how to setup an openwrt environment yourself. You will find that it is not that hard.
https://forum.openwrt.org/viewtopic.php?id=8410
Brilliant!
ReplyDeleteI bought a Belkin N300 router to interface with an Arduino and your previous post helped me get OpenWrt up on that router. Then I was wondering how to install Yate on that specific OpenWrt version and I find this post!
Thanks Manoj for making it possible for me, a complete Linux newbie, to use the $22 router with 2 usb ports for my home automation projects.
Wilfred, I am glad to see that you found the blog helpful.
DeleteI'm having issue on compiling you package
ReplyDeleteerror message is as below.
###########################################
[bls@localhost openwrt]$ make package/feeds/packages/yate/compile
make[1] package/feeds/packages/yate/compile
make[2] -C package/toolchain compile
make[2] -C package/uclibc++ compile
make[2] -C package/zlib compile
make[2] -C feeds/packages/net/yate4 compile
.
.
.
#make DESTDIR=/home/nikescar/openwrt/openwrt/build_dir/target-mips_r2_uClibc-0.9.33.2/yate/ipkg-ar71xx/yate install
#install -m0755 /home/nikescar/openwrt/openwrt/build_dir/target-mips_r2_uClibc-0.9.33.2/yate/ipkg-install/usr/bin /home/nikescar/openwrt/openwrt/build_dir/target-mips_r2_uClibc-0.9.33.2/yate/ipkg-ar71xx/yate/usr/bin
#install -m0644 /home/nikescar/openwrt/openwrt/build_dir/target-mips_r2_uClibc-0.9.33.2/yate/ipkg-install/etc/yate /home/nikescar/openwrt/openwrt/build_dir/target-mips_r2_uClibc-0.9.33.2/yate/ipkg-ar71xx/yate/etc/yate
find /home/nikescar/openwrt/openwrt/build_dir/target-mips_r2_uClibc-0.9.33.2/yate/ipkg-ar71xx/yate -name 'CVS' -o -name '.svn' -o -name '.#*' -o -name '*~'| xargs -r rm -rf
Package yate is missing dependencies for the following libraries:
libstdc++.so.6
make[2]: *** [/home/nikescar/openwrt/openwrt/bin/ar71xx/packages/yate_4.1.0-1-6_ar71xx.ipk] Error 1
make[2]: Leaving directory `/home/nikescar/openwrt/openwrt/feeds/packages/net/yate4'
make[1]: *** [package/feeds/packages/yate/compile] Error 2
make[1]: Leaving directory `/home/nikescar/openwrt/openwrt'
make: *** [package/feeds/packages/yate/compile] Error 2
[bls@localhost openwrt]$
issue seem to be in your host system. please note the dependency issue reported and try debugging and google search.
DeleteHi, I have not spent much time around make in a while and I'm not sure what I'm getting wrong. My build env is producing output for my router but I don't seem to have something set correctly to include the package build.
ReplyDelete$ make package/yate3/compile V=99
make[1]: Entering directory `/home/foo/openwrt/trunk'
make[2]: Entering directory `/home/foo/openwrt/trunk/package/toolchain'
WARNING: skipping libssp -- package not selected
WARNING: skipping libstdcpp -- package not selected
WARNING: skipping libpthread -- package not selected
WARNING: skipping librt -- package not selected
WARNING: skipping libgfortran -- package not selected
WARNING: skipping ldd -- package not selected
WARNING: skipping ldconfig -- package not selected
make[2]: Leaving directory `/home/foo/openwrt/trunk/package/toolchain'
make[2]: Entering directory `/home/foo/openwrt/trunk/package/uclibc++'
WARNING: skipping uclibcxx -- package not selected
make[2]: Leaving directory `/home/foo/openwrt/trunk/package/uclibc++'
make[2]: Entering directory `/home/foo/openwrt/trunk/package/yate3'
WARNING: skipping yate -- package not selected
make[2]: Leaving directory `/home/foo/openwrt/trunk/package/yate3'
make[1]: Leaving directory `/home/foo/openwrt/trunk'
Ignore the post above. I had borked my build env. Here's how I started clean again:
Deletesvn co svn://svn.openwrt.org/openwrt/trunk/
cd trunk
./scripts/feeds update -a
mkdir package/yate3
cp ~/Desktop/Makefile.yate package/yate3/Makefile
make menuconfig (enabled yate under network, telephony)
make
make package/yate3/compile V=99
Now, I've just got some dependancies unmet:
Package yate is missing dependencies for the following libraries:
libstdc++.so.6
libz.so.1
Would you suggest adding these to package/yate3/Makefile or another way?
Thanks,
Alan
Added the depends to the yate3/Makefile:
DeleteDEPENDS:=+libpthread +uclibcxx +zlib +libstdcpp
make menuconfig
make
make packages/yate3/install V=s
and I have a package in bin/ar71xx/packages
Yay!!
Thanks much!!
Alan
Alan,
DeleteThanks for bringing up this dependency issue. I did not face this earlier probably because of the versions of gcc I was using.
Your post will be helpful for other folks using similar build environment.
Thanks for your contribution.
By the way I did not see your post for help till today (so not replying earlier was unintentional).
Manoj
I am closing further comments on this thread, since I published an updated thread here:
ReplyDeleteYate-4.2 on Openwrt with Google Voice support
http://manojpi.blogspot.com/2012/08/yate-42-on-openwrt-with-google-voice.html