Asterisk and chan skype

From JoatWiki
Jump to: navigation, search

Asterisk and chan_skype

(7 May 2007) - This was an experiment with chan_skype to determine its usefulness as a way to channel calls to Asterisk. As such, it was based on a Unbuntu Dapper (6.06 LTS) install, running on top of a VMware virtual machine. I was unable to determine what was causing the connection to Asterisk to drop after 15 minutes or so. It was some kind of time-out issue. This works nicely for single/immediate use applications. It sucks as a long-term solution.

My notes:

1) Register at the chan_skype website. Keep in mind that you want to make sure that you can get the demo version running before you buy the license.

2) Download the appropriate file once you receive the registration acknowledgement email.

3) Make sure you've run your System Update before you attempt to install anything.

4) Run "uname -a" to determine what version kernel you are running.

5) Configure Synaptic to use the other repositories (hint: Menu -> Settings -> Respositories)

6) Use Synaptic to install the appropriate linux-headers file, in addition to VNC, RatPoison, and the usual software compiling utilities (this is one of the hard parts). Do not install Asterisk using this method unless it is version 1.2.9 or greater.

7) Download and install Skype. (Make sure you set up an account!)

8) Download and install Asterisk. (Make sure that openssl, ncurses, zlib and their devel libraries are installed prior to attempting to build Asterisk.) (Make sure that doxygen is installed if you want to build the progdocs.)

9) As root, make the chan_skype binary executable via "chmod a+x chanskype-1.2.10-UBUNTU6.06.bin" and run it. An alternate method would be just run the binary via "sh chanskype-1.2.10-UBUNTU6.06.bin". If the binary complains about missing software, install whatever is missing. If it complains about not being able to recognize what version of Asterisk that you're running, add "1DOT2" or "1DOT4" as an argument. (i.e., "sh chanskype-1.2.10-UBUNTU6.06.bin 1DOT2").

10) Edit /etc/asterisk/skype.conf so that the "channels" parameter equals the maximum number of concurrent calls you will be allowing. (Note: for the personal version, this is "1).

 [general]
 ; general config options, default values are shown
 ; all but debug can go also in the device-specific sections.
 debug=1             ; misc debug flags, default is 0
 channels=3
 context=default

11) Edit /etc/asterisk/extensions.conf (I'll add this later)

12) Create your drone account(s) via:

 useradd -g asterisk -m drone1
 useradd -g asterisk -m drone2
 useradd -g asterisk -m drone3

13) Set up drone1's VNC passwd

 su - drone1
 vncpasswd

14) (Still as drone1) Create a file called ~/.vnc/xstartup containing the following:

 #!/bin/sh
 [ -r $HOME/.Xresources ] && xrdb $HOME/.Xresources
 xsetroot -solid grey
 vncconfig -iconic &
 ratpoison &
 /usr/local/bin/loadskypex.sh 1 &

Be sure to change the number "1" in that last line to match the number of the drone account.

15) (Still as drone1) Make ~/.vnc/xstartup executable via:

 chmod a+x ~/.vnc/xstartup

16) Go back to being root

17) Create /etc/vncservers so that it contains:

 VNCSERVERS=""
 
 VNCSERVERS="$VNCSERVERS 1:drone1"
 VNCSERVERARGS[1]="-geometry 896x672 -depth 16"
 
 VNCSERVERS="$VNCSERVERS 2:drone2"
 VNCSERVERARGS[2]="-geometry 896x672 -depth 16"
 
 VNCSERVERS="$VNCSERVERS 3:drone3"
 VNCSERVERARGS[3]="-geometry 896x672 -depth 16"

18) As drone1, start vncserver. The howto says to use "/etc/init.d/vnserver start". I didn't have that option. I started it, as root, with "vncserver" and entered the password that I used in #14 above. You can test to see if it's working via:

vncviewer 192.168.1.248:1

Hint: If there's a window open in the viewer, don't mess with it. Otherwise, you'll have to kill and restart the vncserver.

Lessons learned:

  1. Be sure to read all of README.txt at /usr/share/doc/chanskype. For Ubuntu users, make sure that you install all of those files in the list near the bottom of README.txt!
  2. The keypad within the Skype client produces DMTF which can control/respond to Asterisk
  3. calls via SkypeIn do not
  4. voice applications running on Unbuntu-based VMs tend to steadily degrade over time (but probably can be fixed). This may be a timeout issue (for which I'm still searching)
  5. the personal version of Chan_Skype is designed so that it only works with one license per machine (i.e., if you want multiple channels, you have to buy the business license which costs 5x more per channel)
  6. the Chan_Skype people need to work on their versions (currently limited to outdated versions of Ubuntu and Fedora)





Comments:

Leave a Comment

Personal tools