How to establish Flash-Asterisk-Skype conference

The goal of this post is establish audio conference between any number of Flash clients and Skype accounts. Flash client mean applications played by Adobe Flash Player.
As a result, we will get a Flash-Skype voice conference.

Establishing and tests require this software.

  1. Linux Centos 5.x. – free
  2. Adobe Flash Player 10 – Free
  3. Flashphoner v1.0.0.109 – Free 10-connects Developer Version
  4. Asterisk v1.6.2.10 – Free Asterisk
  5. Skype v4.2.0.169 – Free
  6. Digium Skype For Asterisk plug-in (hereafter SFA) – $66
  7. Xlite v3.0 – Free
  8. JDK v1.6_21 – Free
  9. Wowza Media Server v2.1.2 – Free 10-connects developer license

Plan:

  1. Asterisk installation.
  2. JDK installation.
  3. Wowza Media Server installation.
  4. Flashphoner installation.
  5. SFA installation.
  6. Creation of manager account in Skype.
  7. Xlite installation.
  8. Test of Skype to Xlite call.
  9. Test of Xlite to Skype call.
  10. Test of Skype to Flash call.
  11. Test of Flash to Skype call.
  12. Test of Xlite+Xlite+Skype conference.
  13. Test of Flash+Flash+Skype conference.
  14. Resume

1. Asterisk installation.

– Download the tar-archive here http://www.asterisk.org/downloads/asterisk/releases/asterisk-1.6.2.10.tar.gz
– Install it in usual way: configure, make, make install

Some libraries which are necessary for functioning of Asterisk are listed below:

  • openssl, openssl-dev
  • ncurses-devel
  • zlib-devel
  • libxml2-devel
  • g++(gcc-c++)
    – Configure sip.conf and extensions.conf files. They must look like this:
    ——————————-
    [color=#0040BF]sip.conf

[i][general]
bindport=5060
bindaddr=101.226.102.61
context=default
allow=all

[2000]
type=friend
secret=2000
host=dynamic
canreinvite=no

[2001]
type=friend
secret=2001
host=dynamic

[2002]
type=friend
secret=2002
host=dynamic[/i][/color]

——————————-
[color=#0040BF]extensions.conf

[i][default]
;exten=>2001,1,Dial(Skype/myaccount@my_personal_skype_account)
;exten=>myaccount,1,Dial(SIP/2000)

exten=>2001,1,Answer
exten=>2001,2,ConfBridge(1,Ma)
exten=>myaccount.1,1,Answer
exten=>myaccount.1,2,ConfBridge(1,Ma)[/i][/color]
——————————
We’ll return to the description of these configuration files, when the rest of the software will be installed.

2. JDK installation
– Download the last JDK version here:
http://www.oracle.com/technetwork/java/javase/downloads/jdk6-jsp-136632.html
This need for Wowza Media Server work.
– Install it.

3. Wowza Media Server installation
– Download Wowza Developer Edition here – http://wowzamedia.com/store.html
– Install it
If you use rpm.bin distribution, Wowza installed by running the downloaded file ./WowzaMediaServer-2.1.2.rpm.bin

4. Flashphoner installation
This is a server software, allows you to develop flashphones and click2call buttons. It can connect any application written in Flash with any SIP client. In other words, Flashphoner – a Flash-VoIP gateway, which allows you call from Flash to landline and mobile phones.
– Download Flashphoner here http://flashphoner.com/.
– check whether you have installed Wowza Media Server, JDK and gcc.
– Install Flashphoner

5. SFA installation
SFA (Skype For Asterisk) is a paid plug-in to Asterisk. The price of a single Skype to Asterisk licencse is $66.
– Read the documentation and learn about pricing policy here
http://www.digium.com/en/products/software/skypeforasterisk.php
– Purchase an SFA license. The key will be sent you by e-mail.
Now you must register the key for your server. After that the key will be tied to your server hardware by MAC-adress. Please note that now, whenever your Mac address will change (change the NIC or move to a new server) you should re-register your SFA-lines to new hardware.
[color=#dddddd]—— Start registration ——[/color]
– Download the registration program here http://downloads.digium.com/pub/register/
– Choose the executable file which is suitable for your system’s architecture and run it
– Enter your contact and personal information such as Name, Address, Phone, E-mail, etc.
– Enter the license key obtained previously.
After registration will finished successfuly, the registration program will create a *.lic-file in the /var/lib/asterisk/licenses/ directory
[color=#dddddd]—— End registration ——[/color]
– Make a backup of your directory with licenses.
– Download the plug-in itself directly, choosing the necessary system’s architecture here: http://downloads.digium.com/pub/telephony/skypeforasterisk/
– Install plugin in usual way: make, make install
– Load SFA modules into Asterisk. This may be done with this commands:
a) Enter to the Asterisk console
$asterisk -r
b) Load here two modules by commands.
[color=#0040BF]*CLI> module load res_skypeforasterisk.so
*CLI> module load chan_skype.so
[/color]
– Congrats! SFA installed and ready for work.

6. Creation a Skype Manager account
– Create Skype Manager account here http://www.skype.com/intl/ru/business
Skype Manager account it the “domain-account”, it will give you a possibility create child accounts and manage it. You need register special manager account even if you already have the personal one (despite the fact that Skype will offer use it)
– Create child account to your Skype Manager account.
Reason that SFA supports operations only with child accounts.
– Configure SFA on your server for work with your new Skype Manager child account.
Config file must look like this
—————————————
[color=#0040BF]chan_skype.conf

[general]
engine_directory=/home/skype
debug=yes
[myaccount]
context=default
secret=myaccount_password
disallow=all
allow=ulaw
[/color]
—————————————
Where:
myaccount – is a child account of Skype Manager account
myaccount_password – skype password for Skype Manager account

7. Xlite installation
– Download free version of Xlite here http://counterpath.com
– Install it and run
– Add SIP account in the “SIP Account Settings” menu with the following parameters:
————————————
[color=#0040BF]Display Name: 2000
User name: 2000
Password: 2000
Authorization user name: 2000
Domain: 101.226.102.61[/color]

————————————
“101.226.102.61” is an example value. Put here the ip-address of your Asterisk server.
Port 5060 will be used by default.

8. Test of Skype–>Xlite call
– Configure extensions.conf file (see “Asterisk installation” section), make it look like this
——————————–
[color=#0040BF]extensions.conf[/color]

[color=#0040BF][default]
exten=>myaccount,1,Dial(SIP/2000)[/color]

——————————–
– Check configure of sip.conf file (see “Asterisk installation” section)
– Check configure of chan_skype.conf file (see “Creation a Skype Manager account” section)
If all this files configures exactly as it appears above, we can from Skype to Skype_Child_Acc and the call goes to the following path:
a. Your_Skype_Acc –> Skype_Child_Acc
b. Skype_Child_Acc –> Your_Asterisk (by chan_skype.conf)
c. Your_Asterisk –> 2000 (by extensions.conf)
d. 2000 –> Xlite (by “SIP Account Settings”)
As a result of the test we must obtain a successful call, for example, from your personal Skype account to Skype_Child_Acc. In this case the call must be picked up by Xlite on
account 2000.

9. Test Xlite –> Skype call
– Configure extensions.conf file (see “Asterisk installation” section), make it look like this
——————————–
[color=#0040BF]extensions.conf

[default]
exten=>2001,1,Dial(Skype/myaccount@my_personal_skype_account)
[/color]
——————————–
– Check configure of sip.conf file (see “Asterisk installation” section)
– Check configure of chan_skype.conf file (see “Creation a Skype Manager account” section)
If all this files configures exactly as it appears above, we can from Xlite to
Your_Skype_Acc and the call goes to the following path:
a. Xlite –> 2001
b. 2001 –> Your_Asterisk
c. Your_Asterisk –> Skype_Child_Acc (by extensions.conf)
d. Skype_Child_Acc –> Your_Skype_Acc (by chan_skype.conf)

10. Test Skype–>Flash call
– Do everything as in “8. Test of Skype–>Xlite call”, but use Flashphoner (client and server application) instead of Xlite.

11. Test Flash–>Skype call
– Do everything as in “9. Test of Xlite–>Skype call”, but use Flashphoner (client and server application) instead of Xlite.

12. Test Xlite+Xlite+Skype conference
– Configure extensions.conf file, make it look like this:
——————————–
[color=#0040BF]extensions.conf

[default]
exten=>2001,1,Answer
exten=>2001,2,ConfBridge(1,M)
exten=>myaccount.1,1,Answer
exten=>myaccount.1,2,ConfBridge(1,M)
[/color]
——————————–
Explanations

  • exten=>2001,1,Answer mean “incoming to 2001 calls answers automatically”
  • exten=>2001,2,ConfBridge(1,M) mean “then redirect caller to conference named “1” and play him music(M) if he is alone. All of this by using ConfBridge module.”
  • ConfBridge module available in Asterisk 1.6 and higher
  • To see all the functions of ConfBridge module, use this command
    [color=#0040BF] *CLI> core show application ConfBridge [/color]
    – Login from two Xlites using accounts 2000 and 2002
    – Login from Skype using Your_Skype_Acc
    – Call from 2000 to 2001
    – Call from 2002 to 2001
    – Call from Your_Skype_Acc to Skype_Child_Acc
    – Congrats! If all is configured properly, you must obtain the conference of the three users
    Note: You need restart Asterisk after every config changes

13. Test Flash+Flash+Skype conference
– Do everything as in “12. Test Xlite+Xlite+Skype conference”, but use Flashphoner (client and server application) instead of Xlite.

14. Audio codecs
Codecs
Speex 16kHz (wideband) codec used on the Flash side.
G.711 used in the Flashphoner<–>Asterisk direction.
G.729 used in the Asterisk<–>Digium<–>Skype direction

15. Resume
So, we configured conference between Adobe Flash Player and Skype.
This function is demanded in flash conference services for the possibility of joining together the Flash and phone Conferences
The possibility for this gives Flashphoner – Flash-SIP server, which allows you to connect Flash and any SIP client.
See more details at Flashphoner blog