Linphone

From Openmoko

Revision as of 18:02, 25 July 2010 by Niebert (Talk | contribs)

Jump to: navigation, search

Linphone is a Voice over IP ( VoIP ) application. Its purpose is to make phone calls over the data network, instead of using the telephony network. Especially when you want to avoid international roaming costs for mobile telefony the VoIP communication via WLAN or USB Networking could be a good option.

Contents

SHR-U

Linphone is still not in the SHR-unstable repository but can be built following Building SHR with

 cd shr-unstable/openembedded/recipes/libosip2
 cp libosip2_3.1.0.bb libosip2_3.3.0.bb
 cd ../../..
 bitbake linphone

My linphone packages are here [1] Because of alsa audio errors printed when running which can be seen if you run LinPhone from the commandline, I had to move away

  mv /etc/asound.conf /etc/asound.conf.bak

and then put it back when done. If this is not done it get overloaded by printing the error message. I also remember there was some problem with the mic audio setting. Maybe some could add this here or maybe the koolu setting below is working. I have not tried it yet.

You may want to add gtk+ and libglade dependencies to bitbake recipe file (shr-unstable/openembedded/recipes/linphone/linphone_3.1.0.bb):

 DEPENDS = "intltool libosip2 speex libogg alsa-lib readline libexosip2 gtk+ libglade"

Android

Linphone on Android is availble in the Android Market, but Android on Freerunner does not have access Android Market. So go to http://www.linphone.org/ to follow the releases (because first versions released in 05/2010).

Qtopia

Here is a way to get the command line linphone working on Qtopia. Ideally this could be interfaced with the dialer somehow. Download link broken.

echo "src/gz celtune http://rabenfrost.net/celtune/ipk/armv4t" >/etc/opkg/general-feed.conf
opkg update
opkg install libmediastreamer0
opkg -nodeps install linphone
opkg -nodeps install liblinphone2 linphonec linphone-rings
opkg install libexosip2

cd /etc/
wget http://www.koolu.org/asound.conf
wget http://www.koolu.org/voip-handset.state

alsactl -f voip-handset.state restore # This step required to set proper audio parameters

linphonec
soundcard use 0
proxy add

Initial testing of this had the audio routed properly through the earpiece and good audio from the microphone. There was some echo on the non-Freerunner side, and on initial connection, a bit of a beeping sound. Otherwise, it's a go. Linphone uses only about 10-12% CPU (was using a PCM codec). Sound was decent to a cell phone in Canada using a Wifi connected Freerunner based in Costa Rica.

Here is a quick and dirty how-to. Enhancements can be made to both the voip-handset.state and asound.conf files (these were my initial working scripts). Thanks to Celtune for the excellent repository that is used below.

Regards, Brian Code, Koolu

FDOM

If you want to avoid installing linphone you can use the FDOM image. This includes the linphone installation. You just have to enter your sip-account details.

Configuration of Linphone

Before using Linphone you need a SIP-Account. If you do not have on you can create one (list of providers of free SIP-Accounts). Setting of your Idenitiy, SIP-address and SIP-Server

''Enter proxy sip address:'' sip:sip.provider.com
''Your identity for this proxy:'' sip:xxxxxxxxxx@sip.provider.com
''Do you want to register on this proxy (yes/no):'' yes
''Specify register expiration time in seconds (default is 600):''
''Expiration:'' 600 seconds or so

SIP Server (optional)

If you want to install you own Open Source SIP Server e.g. in a LAN or on a public IP you can install e.g. OpenSIPS. Setting up a SIP server is not necessary for using Linphone (just a SIP account) only if you want to have full control over the SIP environment for testing.

Asterisk

If you want to an Asterisk open source PBXi, telephony engine, and telephony applications toolkit. In sip.conf

[jthneo]
type=friend
username=jthneo
callerid= jth <jth>
secret=thesecret
qualify=no ; linphone will become unreachable if qualify=yes
host=dynamic
nat=yes
canreinvite=yes
disallow=all ; allow the sensible codecs you want
allow=ulaw
allow=alaw
;allow=gsm
;allow=speex
Personal tools

Linphone is a Voice over IP ( VoIP ) application. Its purpose is to make phone calls over the data network, instead of using the telephony network. Especially when you want to avoid international roaming costs for mobile telefony the VoIP communication via WLAN or USB Networking could be a good option.

SHR-U

Linphone is still not in the SHR-unstable repository but can be built following Building SHR with

 cd shr-unstable/openembedded/recipes/libosip2
 cp libosip2_3.1.0.bb libosip2_3.3.0.bb
 cd ../../..
 bitbake linphone

My linphone packages are here [1] Because of alsa audio errors printed when running which can be seen if you run LinPhone from the commandline, I had to move away

  mv /etc/asound.conf /etc/asound.conf.bak

and then put it back when done. If this is not done it get overloaded by printing the error message. I also remember there was some problem with the mic audio setting. Maybe some could add this here or maybe the koolu setting below is working. I have not tried it yet.

You may want to add gtk+ and libglade dependencies to bitbake recipe file (shr-unstable/openembedded/recipes/linphone/linphone_3.1.0.bb):

 DEPENDS = "intltool libosip2 speex libogg alsa-lib readline libexosip2 gtk+ libglade"

Android

Linphone on Android is availble in the Android Market, but Android on Freerunner does not have access Android Market. So go to http://www.linphone.org/ to follow the releases (because first versions released in 05/2010).

Qtopia

Here is a way to get the command line linphone working on Qtopia. Ideally this could be interfaced with the dialer somehow. Download link broken.

echo "src/gz celtune http://rabenfrost.net/celtune/ipk/armv4t" >/etc/opkg/general-feed.conf
opkg update
opkg install libmediastreamer0
opkg -nodeps install linphone
opkg -nodeps install liblinphone2 linphonec linphone-rings
opkg install libexosip2

cd /etc/
wget http://www.koolu.org/asound.conf
wget http://www.koolu.org/voip-handset.state

alsactl -f voip-handset.state restore # This step required to set proper audio parameters

linphonec
soundcard use 0
proxy add

Initial testing of this had the audio routed properly through the earpiece and good audio from the microphone. There was some echo on the non-Freerunner side, and on initial connection, a bit of a beeping sound. Otherwise, it's a go. Linphone uses only about 10-12% CPU (was using a PCM codec). Sound was decent to a cell phone in Canada using a Wifi connected Freerunner based in Costa Rica.

Here is a quick and dirty how-to. Enhancements can be made to both the voip-handset.state and asound.conf files (these were my initial working scripts). Thanks to Celtune for the excellent repository that is used below.

Regards, Brian Code, Koolu

FDOM

If you want to avoid installing linphone you can use the FDOM image. This includes the linphone installation. You just have to enter your sip-account details.

Configuration of Linphone

Before using Linphone you need a SIP-Account. If you do not have on you can create one (list of providers of free SIP-Accounts). Setting of your Idenitiy, SIP-address and SIP-Server

''Enter proxy sip address:'' sip:sip.provider.com
''Your identity for this proxy:'' sip:xxxxxxxxxx@sip.provider.com
''Do you want to register on this proxy (yes/no):'' yes
''Specify register expiration time in seconds (default is 600):''
''Expiration:'' 600 seconds or so

SIP Server (optional)

If you want to install you own Open Source SIP Server e.g. in a LAN or on a public IP you can install e.g. OpenSIPS. Setting up a SIP server is not necessary for using Linphone (just a SIP account) only if you want to have full control over the SIP environment for testing.

Asterisk

If you want to an Asterisk open source PBXi, telephony engine, and telephony applications toolkit. In sip.conf

[jthneo]
type=friend
username=jthneo
callerid= jth <jth>
secret=thesecret
qualify=no ; linphone will become unreachable if qualify=yes
host=dynamic
nat=yes
canreinvite=yes
disallow=all ; allow the sensible codecs you want
allow=ulaw
allow=alaw
;allow=gsm
;allow=speex