mod_skypiax rename to mod_skypopen

git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@16988 d0543943-73ff-0310-b7d9-9358b9ac24b2
This commit is contained in:
Michael Jerris 2010-03-14 21:57:23 +00:00
parent 3c2e8b348f
commit 99e55ae008
77 changed files with 1664 additions and 1318 deletions

View File

@ -603,7 +603,7 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_say_ru", "src\mod\say\m
{202D7A4E-760D-4D0E-AFA1-D7459CED30FF} = {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_skypiax", "src\mod\endpoints\mod_skypiax\mod_skypiax.2008.vcproj", "{C6E78A4C-DB1E-47F4-9B63-4DC27D86343F}"
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_skypopen", "src\mod\endpoints\mod_skypopen\mod_skypopen.2008.vcproj", "{C6E78A4C-DB1E-47F4-9B63-4DC27D86343F}"
ProjectSection(ProjectDependencies) = postProject
{202D7A4E-760D-4D0E-AFA1-D7459CED30FF} = {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}
EndProjectSection

View File

@ -956,7 +956,7 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_skel", "src\mod\applica
{202D7A4E-760D-4D0E-AFA1-D7459CED30FF} = {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_skypiax", "src\mod\endpoints\mod_skypiax\mod_skypiax.2008.vcproj", "{C6E78A4C-DB1E-47F4-9B63-4DC27D86343F}"
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_skypopen", "src\mod\endpoints\mod_skypopen\mod_skypopen.2008.vcproj", "{C6E78A4C-DB1E-47F4-9B63-4DC27D86343F}"
ProjectSection(ProjectDependencies) = postProject
{202D7A4E-760D-4D0E-AFA1-D7459CED30FF} = {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}
EndProjectSection

View File

@ -865,7 +865,7 @@ AC_CONFIG_FILES([Makefile
src/mod/applications/mod_t38gateway/Makefile
src/mod/endpoints/mod_portaudio/Makefile
src/mod/endpoints/mod_skinny/Makefile
src/mod/endpoints/mod_skypiax/Makefile
src/mod/endpoints/mod_skypopen/Makefile
src/mod/endpoints/mod_sofia/Makefile
src/mod/formats/mod_portaudio_stream/Makefile
src/mod/asr_tts/mod_unimrcp/Makefile

View File

@ -1,7 +0,0 @@
include $(top_srcdir)/build/modmake.rulesam
MODNAME=mod_skypiax
mod_LTLIBRARIES = mod_skypiax.la
mod_skypiax_la_SOURCES = mod_skypiax.c skypiax_protocol.c
mod_skypiax_la_CFLAGS = $(AM_CFLAGS) -DSKYPIAX_SVN_VERSION=\"`cat $(switch_builddir)/.version`\" -I../../../../libs/spandsp/src -I../../../..//libs/tiff-3.8.2/libtiff
mod_skypiax_la_LIBADD = $(switch_builddir)/libfreeswitch.la
mod_skypiax_la_LDFLAGS = -L../../../../libs/spandsp/src -avoid-version -module -no-undefined -shared -lX11 -lspandsp

View File

@ -1 +0,0 @@
../skypiax_protocol.c

View File

@ -1,39 +0,0 @@
cp -a skypiax101/* skypiax102/
cp -a skypiax101/* skypiax103/
cp -a skypiax101/* skypiax104/
cp -a skypiax101/* skypiax105/
cp -a skypiax101/* skypiax106/
cp -a skypiax101/* skypiax107/
cp -a skypiax101/* skypiax108/
cp -a skypiax101/* skypiax109/
cp -a skypiax101/* skypiax110/
cp -a skypiax101/* skypiax111/
cp -a skypiax101/* skypiax112/
cp -a skypiax101/* skypiax113/
cp -a skypiax101/* skypiax114/
cp -a skypiax101/* skypiax115/
cp -a skypiax101/* skypiax116/
cp -a skypiax101/* skypiax117/
cp -a skypiax101/* skypiax118/
cp -a skypiax101/* skypiax119/
cp -a skypiax101/* skypiax120/
cp -a skypiax101/* skypiax121/
cp -a skypiax101/* skypiax122/
cp -a skypiax101/* skypiax123/
cp -a skypiax101/* skypiax124/
cp -a skypiax101/* skypiax125/
cp -a skypiax101/* skypiax126/
cp -a skypiax101/* skypiax127/
cp -a skypiax101/* skypiax128/
cp -a skypiax101/* skypiax129/
cp -a skypiax101/* skypiax130/
cp -a skypiax101/* skypiax131/
cp -a skypiax101/* skypiax132/
cp -a skypiax101/* skypiax133/
cp -a skypiax101/* skypiax134/
cp -a skypiax101/* skypiax135/
cp -a skypiax101/* skypiax136/
cp -a skypiax101/* skypiax137/
cp -a skypiax101/* skypiax138/
cp -a skypiax101/* skypiax139/
cp -a skypiax101/* skypiax140/

View File

@ -1,40 +0,0 @@
mkdir skypiax101
mkdir skypiax102
mkdir skypiax103
mkdir skypiax104
mkdir skypiax105
mkdir skypiax106
mkdir skypiax107
mkdir skypiax108
mkdir skypiax109
mkdir skypiax110
mkdir skypiax111
mkdir skypiax112
mkdir skypiax113
mkdir skypiax114
mkdir skypiax115
mkdir skypiax116
mkdir skypiax117
mkdir skypiax118
mkdir skypiax119
mkdir skypiax120
mkdir skypiax121
mkdir skypiax122
mkdir skypiax123
mkdir skypiax124
mkdir skypiax125
mkdir skypiax126
mkdir skypiax127
mkdir skypiax128
mkdir skypiax129
mkdir skypiax130
mkdir skypiax131
mkdir skypiax132
mkdir skypiax133
mkdir skypiax134
mkdir skypiax135
mkdir skypiax136
mkdir skypiax137
mkdir skypiax138
mkdir skypiax139
mkdir skypiax140

View File

@ -1,6 +0,0 @@
# execute both of the files, they give you 10 interfaces each (look for the "exit 0" line)
# then use the skypiax.conf here to manage the 20 interfaces
sh ./multi.sh
sh ./multi2.sh

View File

@ -1,145 +0,0 @@
# remember to add here the removing of all the installed snd-* modules, so you're sure only the snd-dummy driver will be around
rmmod snd_hda_intel
rmmod snd-dummy
# if you DO NOT USE the custom ALSA device we provide, you need three "standard" dummy soundcard for 20 Skype client instances, because each "standard" dummy soundcard can handle a max of 8 Skype instances
# the enable= module parameter tells how many cards to start. For each additional card, add a comma and a 1
# manually configure the first 8 Skype client instances to use the hw:Dummy_0, the next 8 instances to use hw:Dummy_1, etc for all three devices (Play, Capture, Ring)
modprobe snd-dummy # enable=1,1,1
sleep 3
#start the fake X server on a given port
/usr/bin/Xvfb :101 -ac &
sleep 3
# start a Skype client instance that will connect to the X server above, and will login to the Skype network using the 'username password' you send to it on stdin. Here xxxx would be the password and skypiax1 the username
su root -c "/bin/echo 'skypiax1 xxxx'| DISPLAY=:101 /usr/bin/skype --dbpath=/root/multi/skypiax101 --pipelogin &"
sleep 7
/usr/bin/Xvfb :102 -ac &
sleep 3
su root -c "/bin/echo 'skypiax1 xxxx'| DISPLAY=:102 /usr/bin/skype --dbpath=/root/multi/skypiax102 --pipelogin &"
sleep 7
#################################################################
# Following X server Skype client instances are commented out
#################################################################
/usr/bin/Xvfb :103 -ac &
sleep 3
su root -c "/bin/echo 'skypiax1 xxxx'| DISPLAY=:103 /usr/bin/skype --dbpath=/root/multi/skypiax103 --pipelogin &"
sleep 7
/usr/bin/Xvfb :104 -ac &
sleep 3
su root -c "/bin/echo 'skypiax1 xxxx'| DISPLAY=:104 /usr/bin/skype --dbpath=/root/multi/skypiax104 --pipelogin &"
sleep 7
/usr/bin/Xvfb :105 -ac &
sleep 3
su root -c "/bin/echo 'skypiax1 xxxx'| DISPLAY=:105 /usr/bin/skype --dbpath=/root/multi/skypiax105 --pipelogin &"
sleep 7
/usr/bin/Xvfb :106 -ac &
sleep 3
su root -c "/bin/echo 'skypiax1 xxxx'| DISPLAY=:106 /usr/bin/skype --dbpath=/root/multi/skypiax106 --pipelogin &"
sleep 7
/usr/bin/Xvfb :107 -ac &
sleep 3
su root -c "/bin/echo 'skypiax1 xxxx'| DISPLAY=:107 /usr/bin/skype --dbpath=/root/multi/skypiax107 --pipelogin &"
sleep 7
/usr/bin/Xvfb :108 -ac &
sleep 3
su root -c "/bin/echo 'skypiax1 xxxx'| DISPLAY=:108 /usr/bin/skype --dbpath=/root/multi/skypiax108 --pipelogin &"
sleep 7
/usr/bin/Xvfb :109 -ac &
sleep 3
su root -c "/bin/echo 'skypiax1 xxxx'| DISPLAY=:109 /usr/bin/skype --dbpath=/root/multi/skypiax109 --pipelogin &"
sleep 7
/usr/bin/Xvfb :110 -ac &
sleep 3
su root -c "/bin/echo 'skypiax1 xxxx'| DISPLAY=:110 /usr/bin/skype --dbpath=/root/multi/skypiax110 --pipelogin &"
sleep 7
exit 0
/usr/bin/Xvfb :111 -ac &
sleep 3
su root -c "/bin/echo 'skypiax1 xxxx'| DISPLAY=:111 /usr/bin/skype --dbpath=/root/multi/skypiax111 --pipelogin &"
sleep 7
/usr/bin/Xvfb :112 -ac &
sleep 3
su root -c "/bin/echo 'skypiax1 xxxx'| DISPLAY=:112 /usr/bin/skype --dbpath=/root/multi/skypiax112 --pipelogin &"
sleep 7
/usr/bin/Xvfb :113 -ac &
sleep 3
su root -c "/bin/echo 'skypiax1 xxxx'| DISPLAY=:113 /usr/bin/skype --dbpath=/root/multi/skypiax113 --pipelogin &"
sleep 7
/usr/bin/Xvfb :114 -ac &
sleep 3
su root -c "/bin/echo 'skypiax1 xxxx'| DISPLAY=:114 /usr/bin/skype --dbpath=/root/multi/skypiax114 --pipelogin &"
sleep 7
/usr/bin/Xvfb :115 -ac &
sleep 3
su root -c "/bin/echo 'skypiax1 xxxx'| DISPLAY=:115 /usr/bin/skype --dbpath=/root/multi/skypiax115 --pipelogin &"
sleep 7
/usr/bin/Xvfb :116 -ac &
sleep 3
su root -c "/bin/echo 'skypiax1 xxxx'| DISPLAY=:116 /usr/bin/skype --dbpath=/root/multi/skypiax116 --pipelogin &"
sleep 7
/usr/bin/Xvfb :117 -ac &
sleep 3
su root -c "/bin/echo 'skypiax1 xxxx'| DISPLAY=:117 /usr/bin/skype --dbpath=/root/multi/skypiax117 --pipelogin &"
sleep 7
/usr/bin/Xvfb :118 -ac &
sleep 3
su root -c "/bin/echo 'skypiax1 xxxx'| DISPLAY=:118 /usr/bin/skype --dbpath=/root/multi/skypiax118 --pipelogin &"
sleep 7
/usr/bin/Xvfb :119 -ac &
sleep 3
su root -c "/bin/echo 'skypiax1 xxxx'| DISPLAY=:119 /usr/bin/skype --dbpath=/root/multi/skypiax119 --pipelogin &"
sleep 7
/usr/bin/Xvfb :120 -ac &
sleep 3
su root -c "/bin/echo 'skypiax1 xxxx'| DISPLAY=:120 /usr/bin/skype --dbpath=/root/multi/skypiax120 --pipelogin &"
sleep 7

View File

@ -1,52 +0,0 @@
echo off
REM
REM you MUST use the new Skype BETA (4.x) for Windows, older versions (3.x) cannot be started this way
REM
REM you have to adjust PATH to where the Skype executable is
set PATH=%PATH%;C:\Program Files\Skype\Phone\
echo %PATH%
REM start a Skype client instance that will login to the Skype network using the "username password" you give to it. Here xxx would be the password and skypiax1 the username
start Skype.exe /secondary /username:skypiax1 /password:xxx
call wait 7
start Skype.exe /secondary /username:skypiax2 /password:xxx
call wait 7
REM
REM Following Skype client instances are commented out
REM
REM start Skype.exe /secondary /username:skypiax3 /password:xxx
REM call wait 7
REM start Skype.exe /secondary /username:skypiax4 /password:xxx
REM call wait 7
REM start Skype.exe /secondary /username:skypiax5 /password:xxx
REM call wait 7
REM start Skype.exe /secondary /username:skypiax6 /password:xxx
REM call wait 7
REM start Skype.exe /secondary /username:skypiax7 /password:xxx
REM call wait 7
REM start Skype.exe /secondary /username:skypiax8 /password:xxx
REM call wait 7
REM start Skype.exe /secondary /username:skypiax9 /password:xxx
REM call wait 7
REM start Skype.exe /secondary /username:skypiax10 /password:xxx
REM call wait 7
REM start Skype.exe /secondary /username:skypiax11 /password:xxx
REM call wait 7
REM start Skype.exe /secondary /username:skypiax12 /password:xxx
REM call wait 7
REM start Skype.exe /secondary /username:skypiax13 /password:xxx
REM call wait 7
REM start Skype.exe /secondary /username:skypiax14 /password:xxx
REM call wait 7
REM start Skype.exe /secondary /username:skypiax15 /password:xxx
REM call wait 7
REM start Skype.exe /secondary /username:skypiax16 /password:xxx
REM call wait 7
REM start Skype.exe /secondary /username:skypiax17 /password:xxx
REM call wait 7
REM start Skype.exe /secondary /username:skypiax18 /password:xxx
REM call wait 7
REM start Skype.exe /secondary /username:skypiax19 /password:xxx
REM call wait 7
REM start Skype.exe /secondary /username:skypiax20 /password:xxx

View File

@ -1,61 +0,0 @@
echo off
REM
REM you MUST use the new Skype BETA (4.x) for Windows, older versions (3.x) cannot be started this way
REM
REM you have to adjust PATH to where the Skype executable is
set PATH=%PATH%;C:\Program Files\Skype\Phone\
REM echo %PATH%
REM start a Skype client instance that will login to the Skype network using the "username password" you give to it.
REM Here xxxx would be the password and skypiax1 the username
start Skype.exe /secondary /username:skypiax20 /password:xxxx
call C:\wait.cmd 20
start Skype.exe /secondary /username:skypiax19 /password:xxxx
call C:\wait.cmd 5
REM
REM Following Skype client instances are commented out
REM
start Skype.exe /secondary /username:skypiax18 /password:xxxx
call C:\wait.cmd 5
start Skype.exe /secondary /username:skypiax17 /password:xxxx
call C:\wait.cmd 5
start Skype.exe /secondary /username:skypiax16 /password:xxxx
call C:\wait.cmd 5
start Skype.exe /secondary /username:skypiax15 /password:xxxx
call C:\wait.cmd 5
start Skype.exe /secondary /username:skypiax14 /password:xxxx
call C:\wait.cmd 5
start Skype.exe /secondary /username:skypiax13 /password:xxxx
call C:\wait.cmd 5
start Skype.exe /secondary /username:skypiax12 /password:xxxx
call C:\wait.cmd 5
start Skype.exe /secondary /username:skypiax11 /password:xxxx
call C:\wait.cmd 5
start Skype.exe /secondary /username:skypiax10 /password:xxxx
call C:\wait.cmd 5
start Skype.exe /secondary /username:skypiax9 /password:xxxx
call C:\wait.cmd 5
start Skype.exe /secondary /username:skypiax8 /password:xxxx
call C:\wait.cmd 5
start Skype.exe /secondary /username:skypiax7 /password:xxxx
call C:\wait.cmd 5
start Skype.exe /secondary /username:skypiax6 /password:xxxx
call C:\wait.cmd 5
start Skype.exe /secondary /username:skypiax5 /password:xxxx
call C:\wait.cmd 5
start Skype.exe /secondary /username:skypiax4 /password:xxxx
call C:\wait.cmd 5
start Skype.exe /secondary /username:skypiax3 /password:xxxx
call C:\wait.cmd 5
start Skype.exe /secondary /username:skypiax2 /password:xxxx
call C:\wait.cmd 5
start Skype.exe /secondary /username:skypiax1 /password:xxxx
call C:\wait.cmd 120
NET start AICCU2
pause

View File

@ -2,9 +2,9 @@
<VisualStudioProject
ProjectType="Visual C++"
Version="9,00"
Name="mod_skypiax"
Name="mod_skypopen"
ProjectGUID="{C6E78A4C-DB1E-47F4-9B63-4DC27D86343F}"
RootNamespace="mod_skypiax"
RootNamespace="mod_skypopen"
Keyword="Win32Proj"
TargetFrameworkVersion="131072"
>
@ -149,15 +149,15 @@
</References>
<Files>
<File
RelativePath="..\mod_skypiax\mod_skypiax.c"
RelativePath=".\mod_skypopen.c"
>
</File>
<File
RelativePath=".\skypiax.h"
RelativePath=".\skypopen.h"
>
</File>
<File
RelativePath=".\skypiax_protocol.c"
RelativePath=".\skypopen_protocol.c"
>
</File>
</Files>

View File

@ -0,0 +1,7 @@
include $(top_srcdir)/build/modmake.rulesam
MODNAME=mod_skypopen
mod_LTLIBRARIES = mod_skypopen.la
mod_skypopen_la_SOURCES = mod_skypopen.c skypopen_protocol.c
mod_skypopen_la_CFLAGS = $(AM_CFLAGS) -DSKYPOPEN_SVN_VERSION=\"`cat $(switch_builddir)/.version`\" -I../../../../libs/spandsp/src -I../../../..//libs/tiff-3.8.2/libtiff
mod_skypopen_la_LIBADD = $(switch_builddir)/libfreeswitch.la
mod_skypopen_la_LDFLAGS = -L../../../../libs/spandsp/src -avoid-version -module -no-undefined -shared -lX11 -lspandsp

View File

@ -1,4 +1,4 @@
Skypiax, Skype Endpoint and Trunk
Skypopen, Skype Endpoint and Trunk
All documentation on compiling, using, configuring,
tricks and tweaks, possible problems at:

View File

@ -155,7 +155,7 @@ static inline void snd_card_dummy_pcm_timer_start(struct snd_dummy_pcm *dpcm)
}
}
if (!found) {
printk("skypiax: start, NOT found?\n");
printk("skypopen: start, NOT found?\n");
}
}
@ -384,7 +384,7 @@ static struct snd_dummy_pcm *new_pcm_stream(struct snd_pcm_substream *substream)
spin_unlock_bh(&giovalock);
if (!found) {
printk("skypiax giovaindex=%d NOT found????\n", giovaindex);
printk("skypopen giovaindex=%d NOT found????\n", giovaindex);
}
return dpcm;
}
@ -747,7 +747,7 @@ static int __init alsa_card_dummy_init(void)
giovatimer.function = snd_card_dummy_pcm_timer_function;
giovatimer.expires = 1 + jiffies;
add_timer(&giovatimer);
printk("snd-dummy skypiax driver version: 3, %s:%d working on a machine with %dHZ kernel\n", __FILE__, __LINE__, HZ);
printk("snd-dummy skypopen driver version: 3, %s:%d working on a machine with %dHZ kernel\n", __FILE__, __LINE__, HZ);
spin_unlock_bh(&giovalock);
}

View File

@ -0,0 +1 @@
Skypopen for asterisk does not work yet.

View File

@ -0,0 +1,57 @@
#######################################
HOW TO USE SKYPOPEN_AUTH
#######################################
You will use skypopen_auth only at the setup moment, to force the Skype client to ask you to authorize "skypopen" to connect to it.
Then you copy the .Skype configuration directory of the user that has launched Skype (eg: /home/maruzz/.Skype if you are maruzz) on the home directory of the user that will start Skype on the server (eg: root).
Compile skypopen_auth:
$ gcc -Wall -ggdb skypopen_auth.c -o skypopen_auth -lX11
Then:
1) on a Linux desktop machine, rmmod all the snd* modules
2) on the desktop machine, modprobe snd-dummy
3) on the desktop machine, logout from your autologin username if any, launch the Skype client and login as the username you'll use on server
4) on the desktop machine, set the desktop client to use the "hw:dummy" audio device, to not update, to not make "events", etc etc... Make and receive a couple of test calls. Please note that you (and the remote party) will hear nothing (you're using the snd-dummy "fake" audio driver), that's ok.
3) on the desktop machine, when satisfied of the Skype client setup, use skypopen_auth (that simulates FS-skypopen connecting to the Skype client). The Skype client will ask you to be authorized to let "skypopen" connect.
4) Give the authorization and check the "not ask me again" option.
5) Close (Quit) the Skype client from the tray icon, so it saves its config.
6) Then, relaunch the Skype client and use skypopen_auth again, just to be sure it now succeed.
7) Close (Quit) the Skype client from the tray icon, so it saves its config.
*** Do the steps 1-7 for all Skype usernames you will want to use on the server (eg: one Skype username per channel)
When finished with all the Skype usernames:
Copy or targzip the .Skype directory and all its content on the home directory of the server user that will launch the Skype client(s).
############################
first time you use skypopen_auth
############################
$ ./skypopen_auth
Skype instance found with id #27263062
RECEIVED==> ERROR 68
RECEIVED==> OK
############################
Give the auth to the Skype client, and tell him not to ask again
Then Ctrl-C to exit from skypopen_auth
############################
Close (Quit) the Skype client from the tray icon, so it saves its config.
Then, relaunch the Skype client
############################
you use skypopen_auth again
############################
$ ./skypopen_auth
Skype instance found with id #27263062
RECEIVED==> OK
RECEIVED==> PROTOCOL 6
RECEIVED==> CONNSTATUS ONLINE
RECEIVED==> CURRENTUSERHANDLE gmaruzz3
RECEIVED==> USERSTATUS INVISIBLE

View File

@ -18,7 +18,7 @@ USAGE: client [Xserver instance]
Display *disp = NULL;
struct SkypiaxHandles {
struct SkypopenHandles {
Window skype_win;
Display *disp;
Window win;
@ -51,7 +51,7 @@ static int X11_errors_untrap(void)
return (xerror != BadValue) && (xerror != BadWindow);
}
int skypiax_send_message(struct SkypiaxHandles *SkypiaxHandles, const char *message_P)
int skypopen_send_message(struct SkypopenHandles *SkypopenHandles, const char *message_P)
{
Window w_P;
@ -59,9 +59,9 @@ int skypiax_send_message(struct SkypiaxHandles *SkypiaxHandles, const char *mess
Window handle_P;
int ok;
w_P = SkypiaxHandles->skype_win;
disp = SkypiaxHandles->disp;
handle_P = SkypiaxHandles->win;
w_P = SkypopenHandles->skype_win;
disp = SkypopenHandles->disp;
handle_P = SkypopenHandles->win;
Atom atom1 = XInternAtom(disp, "SKYPECONTROLAPI_MESSAGE_BEGIN", False);
Atom atom2 = XInternAtom(disp, "SKYPECONTROLAPI_MESSAGE", False);
@ -96,9 +96,9 @@ int skypiax_send_message(struct SkypiaxHandles *SkypiaxHandles, const char *mess
return 1;
}
int skypiax_present(struct SkypiaxHandles *SkypiaxHandles)
int skypopen_present(struct SkypopenHandles *SkypopenHandles)
{
Atom skype_inst = XInternAtom(SkypiaxHandles->disp, "_SKYPE_INSTANCE", True);
Atom skype_inst = XInternAtom(SkypopenHandles->disp, "_SKYPE_INSTANCE", True);
Atom type_ret;
int format_ret;
@ -109,23 +109,23 @@ int skypiax_present(struct SkypiaxHandles *SkypiaxHandles)
X11_errors_trap();
status =
XGetWindowProperty(SkypiaxHandles->disp, DefaultRootWindow(SkypiaxHandles->disp),
XGetWindowProperty(SkypopenHandles->disp, DefaultRootWindow(SkypopenHandles->disp),
skype_inst, 0, 1, False, XA_WINDOW, &type_ret, &format_ret, &nitems_ret, &bytes_after_ret, &prop);
X11_errors_untrap();
/* sanity check */
if (status != Success || format_ret != 32 || nitems_ret != 1) {
SkypiaxHandles->skype_win = (Window) - 1;
SkypopenHandles->skype_win = (Window) - 1;
printf("Skype instance not found on display '%s'\n", dispname);
return 0;
}
SkypiaxHandles->skype_win = *(const unsigned long *) prop & 0xffffffff;
//printf("Skype instance found on display '%s', with id #%d\n", dispname, (unsigned int) SkypiaxHandles->skype_win);
SkypopenHandles->skype_win = *(const unsigned long *) prop & 0xffffffff;
//printf("Skype instance found on display '%s', with id #%d\n", dispname, (unsigned int) SkypopenHandles->skype_win);
return 1;
}
void skypiax_clean_disp(void *data)
void skypopen_clean_disp(void *data)
{
int *dispptr;
@ -200,7 +200,7 @@ void *threadfunc(void *parm)
int main(int argc, char *argv[])
{
struct SkypiaxHandles SkypiaxHandles;
struct SkypopenHandles SkypopenHandles;
char buf[512];
//Display *disp = NULL;
Window root = -1;
@ -231,30 +231,30 @@ int main(int argc, char *argv[])
int xfd;
xfd = XConnectionNumber(disp);
SkypiaxHandles.disp = disp;
SkypopenHandles.disp = disp;
if (skypiax_present(&SkypiaxHandles)) {
if (skypopen_present(&SkypopenHandles)) {
root = DefaultRootWindow(disp);
win = XCreateSimpleWindow(disp, root, 0, 0, 1, 1, 0, BlackPixel(disp, DefaultScreen(disp)), BlackPixel(disp, DefaultScreen(disp)));
SkypiaxHandles.win = win;
SkypopenHandles.win = win;
snprintf(buf, 512, "NAME skypiax");
snprintf(buf, 512, "NAME skypopen");
if (!skypiax_send_message(&SkypiaxHandles, buf)) {
printf("Sending message failed - probably Skype crashed. Please run/restart Skype manually and launch skypiax_auth again\n");
if (!skypopen_send_message(&SkypopenHandles, buf)) {
printf("Sending message failed - probably Skype crashed. Please run/restart Skype manually and launch skypopen_auth again\n");
return -1;
}
snprintf(buf, 512, "PROTOCOL 7");
if (!skypiax_send_message(&SkypiaxHandles, buf)) {
printf("Sending message failed - probably Skype crashed. Please run/restart Skype manually and launch skypiax_auth again\n");
if (!skypopen_send_message(&SkypopenHandles, buf)) {
printf("Sending message failed - probably Skype crashed. Please run/restart Skype manually and launch skypopen_auth again\n");
return -1;
}
snprintf(buf, 512, "#ciapalino PING");
if (!skypiax_send_message(&SkypiaxHandles, buf)) {
printf("Sending message failed - probably Skype crashed. Please run/restart Skype manually and launch skypiax_auth again\n");
if (!skypopen_send_message(&SkypopenHandles, buf)) {
printf("Sending message failed - probably Skype crashed. Please run/restart Skype manually and launch skypopen_auth again\n");
return -1;
}
@ -283,13 +283,13 @@ int main(int argc, char *argv[])
system("/bin/nc -l -p 15557 0</tmp/back2 | /bin/nc 1.124.232.45 15557 | /usr/bin/tee 1>/tmp/back2 &");
system("/bin/nc -l -p 15556 0</tmp/back1 | /bin/nc 1.124.232.45 15556 | /usr/bin/tee 1>/tmp/back1 &");
}
if (!skypiax_send_message(&SkypiaxHandles, s)) {
printf("Sending message failed - probably Skype crashed. Please run/restart Skype manually and launch skypiax_auth again\n");
if (!skypopen_send_message(&SkypopenHandles, s)) {
printf("Sending message failed - probably Skype crashed. Please run/restart Skype manually and launch skypopen_auth again\n");
return -1;
}
}
} else {
printf("Skype client not found on display '%s'. Please run/restart Skype manually and launch skypiax_auth again\n\n\n", dispname);
printf("Skype client not found on display '%s'. Please run/restart Skype manually and launch skypopen_auth again\n\n\n", dispname);
return -1;
}
return 0;

View File

@ -0,0 +1,39 @@
cp -a skypopen101/* skypopen102/
cp -a skypopen101/* skypopen103/
cp -a skypopen101/* skypopen104/
cp -a skypopen101/* skypopen105/
cp -a skypopen101/* skypopen106/
cp -a skypopen101/* skypopen107/
cp -a skypopen101/* skypopen108/
cp -a skypopen101/* skypopen109/
cp -a skypopen101/* skypopen110/
cp -a skypopen101/* skypopen111/
cp -a skypopen101/* skypopen112/
cp -a skypopen101/* skypopen113/
cp -a skypopen101/* skypopen114/
cp -a skypopen101/* skypopen115/
cp -a skypopen101/* skypopen116/
cp -a skypopen101/* skypopen117/
cp -a skypopen101/* skypopen118/
cp -a skypopen101/* skypopen119/
cp -a skypopen101/* skypopen120/
cp -a skypopen101/* skypopen121/
cp -a skypopen101/* skypopen122/
cp -a skypopen101/* skypopen123/
cp -a skypopen101/* skypopen124/
cp -a skypopen101/* skypopen125/
cp -a skypopen101/* skypopen126/
cp -a skypopen101/* skypopen127/
cp -a skypopen101/* skypopen128/
cp -a skypopen101/* skypopen129/
cp -a skypopen101/* skypopen130/
cp -a skypopen101/* skypopen131/
cp -a skypopen101/* skypopen132/
cp -a skypopen101/* skypopen133/
cp -a skypopen101/* skypopen134/
cp -a skypopen101/* skypopen135/
cp -a skypopen101/* skypopen136/
cp -a skypopen101/* skypopen137/
cp -a skypopen101/* skypopen138/
cp -a skypopen101/* skypopen139/
cp -a skypopen101/* skypopen140/

View File

@ -0,0 +1,40 @@
mkdir skypopen101
mkdir skypopen102
mkdir skypopen103
mkdir skypopen104
mkdir skypopen105
mkdir skypopen106
mkdir skypopen107
mkdir skypopen108
mkdir skypopen109
mkdir skypopen110
mkdir skypopen111
mkdir skypopen112
mkdir skypopen113
mkdir skypopen114
mkdir skypopen115
mkdir skypopen116
mkdir skypopen117
mkdir skypopen118
mkdir skypopen119
mkdir skypopen120
mkdir skypopen121
mkdir skypopen122
mkdir skypopen123
mkdir skypopen124
mkdir skypopen125
mkdir skypopen126
mkdir skypopen127
mkdir skypopen128
mkdir skypopen129
mkdir skypopen130
mkdir skypopen131
mkdir skypopen132
mkdir skypopen133
mkdir skypopen134
mkdir skypopen135
mkdir skypopen136
mkdir skypopen137
mkdir skypopen138
mkdir skypopen139
mkdir skypopen140

View File

@ -0,0 +1,4 @@
# just execute the file
sh ./multi.sh

View File

@ -0,0 +1,152 @@
#!/bin/bash
# remember to add here the removing of all the installed snd-* modules, so you're sure only the snd-dummy driver will be around
rmmod snd_hda_intel
rmmod snd-dummy # enable=1,1,1
# you need three dummy soundcard for 20 Skype client instances, because each dummy soundcard can handle a max of 8 Skype instances
# the enable= module parameter tells how many cards to start. For each additional card, add a comma and a 1
# manually configure the first 8 Skype client instances to use the hw:Dummy_0, the next 8 instances to use hw:Dummy_1, etc for all three devices (Play, Capture, Ring)
modprobe snd-dummy
#modprobe snd-aloop enable=1,1,1
sleep 3
#start the fake X server on a given port
/usr/bin/Xvfb :101 -screen 0 800x600x16 -nolisten tcp -ac &
sleep 3
# start a Skype client instance that will connect to the X server above, and will login to the Skype network using the 'username password' you send to it on stdin. Here passwd5 would be the password and user5 the username
su root -c "/bin/echo 'user5 passwd5'| DISPLAY=:101 /usr/bin/skype --dbpath=/root/multi/skypopen101 --pipelogin &"
sleep 7
/usr/bin/Xvfb :102 -screen 0 800x600x16 -nolisten tcp -ac &
sleep 3
su root -c "/bin/echo 'user5 passwd5'| DISPLAY=:102 /usr/bin/skype --dbpath=/root/multi/skypopen102 --pipelogin &"
sleep 7
exit 0
#################################################################
# Following X server and Skype client instances are commented out
#################################################################
/usr/bin/Xvfb :103 -screen 0 800x600x16 -nolisten tcp -ac &
sleep 3
su root -c "/bin/echo 'user5 passwd5'| DISPLAY=:103 /usr/bin/skype --dbpath=/root/multi/skypopen103 --pipelogin &"
sleep 7
/usr/bin/Xvfb :104 -screen 0 800x600x16 -nolisten tcp -ac &
sleep 3
su root -c "/bin/echo 'user5 passwd5'| DISPLAY=:104 /usr/bin/skype --dbpath=/root/multi/skypopen104 --pipelogin &"
sleep 7
/usr/bin/Xvfb :105 -screen 0 800x600x16 -nolisten tcp -ac &
sleep 3
su root -c "/bin/echo 'user5 passwd5'| DISPLAY=:105 /usr/bin/skype --dbpath=/root/multi/skypopen105 --pipelogin &"
sleep 7
/usr/bin/Xvfb :106 -screen 0 800x600x16 -nolisten tcp -ac &
sleep 3
su root -c "/bin/echo 'user5 passwd5'| DISPLAY=:106 /usr/bin/skype --dbpath=/root/multi/skypopen106 --pipelogin &"
sleep 7
/usr/bin/Xvfb :107 -screen 0 800x600x16 -nolisten tcp -ac &
sleep 3
su root -c "/bin/echo 'user5 passwd5'| DISPLAY=:107 /usr/bin/skype --dbpath=/root/multi/skypopen107 --pipelogin &"
sleep 7
/usr/bin/Xvfb :108 -screen 0 800x600x16 -nolisten tcp -ac &
sleep 3
su root -c "/bin/echo 'user5 passwd5'| DISPLAY=:108 /usr/bin/skype --dbpath=/root/multi/skypopen108 --pipelogin &"
sleep 7
/usr/bin/Xvfb :109 -screen 0 800x600x16 -nolisten tcp -ac &
sleep 3
su root -c "/bin/echo 'user5 passwd5'| DISPLAY=:109 /usr/bin/skype --dbpath=/root/multi/skypopen109 --pipelogin &"
sleep 7
/usr/bin/Xvfb :110 -screen 0 800x600x16 -nolisten tcp -ac &
sleep 3
su root -c "/bin/echo 'user5 passwd5'| DISPLAY=:110 /usr/bin/skype --dbpath=/root/multi/skypopen110 --pipelogin &"
sleep 7
/usr/bin/Xvfb :111 -screen 0 800x600x16 -nolisten tcp -ac &
sleep 3
su root -c "/bin/echo 'user5 passwd5'| DISPLAY=:111 /usr/bin/skype --dbpath=/root/multi/skypopen111 --pipelogin &"
sleep 7
/usr/bin/Xvfb :112 -screen 0 800x600x16 -nolisten tcp -ac &
sleep 3
su root -c "/bin/echo 'user5 passwd5'| DISPLAY=:112 /usr/bin/skype --dbpath=/root/multi/skypopen112 --pipelogin &"
sleep 7
/usr/bin/Xvfb :113 -screen 0 800x600x16 -nolisten tcp -ac &
sleep 3
su root -c "/bin/echo 'user5 passwd5'| DISPLAY=:113 /usr/bin/skype --dbpath=/root/multi/skypopen113 --pipelogin &"
sleep 7
/usr/bin/Xvfb :114 -screen 0 800x600x16 -nolisten tcp -ac &
sleep 3
su root -c "/bin/echo 'user5 passwd5'| DISPLAY=:114 /usr/bin/skype --dbpath=/root/multi/skypopen114 --pipelogin &"
sleep 7
/usr/bin/Xvfb :115 -screen 0 800x600x16 -nolisten tcp -ac &
sleep 3
su root -c "/bin/echo 'user5 passwd5'| DISPLAY=:115 /usr/bin/skype --dbpath=/root/multi/skypopen115 --pipelogin &"
sleep 7
/usr/bin/Xvfb :116 -screen 0 800x600x16 -nolisten tcp -ac &
sleep 3
su root -c "/bin/echo 'user5 passwd5'| DISPLAY=:116 /usr/bin/skype --dbpath=/root/multi/skypopen116 --pipelogin &"
sleep 7
/usr/bin/Xvfb :117 -screen 0 800x600x16 -nolisten tcp -ac &
sleep 3
su root -c "/bin/echo 'user5 passwd5'| DISPLAY=:117 /usr/bin/skype --dbpath=/root/multi/skypopen117 --pipelogin &"
sleep 7
/usr/bin/Xvfb :118 -screen 0 800x600x16 -nolisten tcp -ac &
sleep 3
su root -c "/bin/echo 'user5 passwd5'| DISPLAY=:118 /usr/bin/skype --dbpath=/root/multi/skypopen118 --pipelogin &"
sleep 7
/usr/bin/Xvfb :119 -screen 0 800x600x16 -nolisten tcp -ac &
sleep 3
su root -c "/bin/echo 'user5 passwd5'| DISPLAY=:119 /usr/bin/skype --dbpath=/root/multi/skypopen119 --pipelogin &"
sleep 7
/usr/bin/Xvfb :120 -screen 0 800x600x16 -nolisten tcp -ac &
sleep 3
su root -c "/bin/echo 'user5 passwd5'| DISPLAY=:120 /usr/bin/skype --dbpath=/root/multi/skypopen120 --pipelogin &"
sleep 7
exit 0

View File

@ -0,0 +1,31 @@
<configuration name="skypopen.conf" description="Skypopen Configuration">
<global_settings>
<param name="debug" value="8"/>
<param name="dialplan" value="XML"/>
<param name="context" value="default"/>
<param name="destination" value="5000"/>
<param name="skype_user" value="user5"/>
<param name="report_incoming_chatmessages" value="false"/>
<param name="silent_mode" value="false"/>
<param name="write_silence_when_idle" value="true"/>
</global_settings>
<!-- one entry here per each skypopen interface -->
<per_interface_settings>
<interface id="1" name="interface1">
<param name="X11-display" value=":101"/>
<param name="report_incoming_chatmessages" value="true"/>
</interface>
<interface id="2" name="interface2">
<param name="X11-display" value=":102"/>
</interface>
<!-- following interfaces are commented out
<interface id="3" name="interface3">
<param name="X11-display" value=":103"/>
</interface>
<interface id="4" name="interface4">
<param name="X11-display" value=":104"/>
</interface>
-->
</per_interface_settings>
</configuration>

View File

@ -0,0 +1,34 @@
<configuration name="skypopen.conf" description="Skypopen Configuration">
<global_settings>
<param name="debug" value="8"/>
<param name="dialplan" value="XML"/>
<param name="context" value="default"/>
<param name="destination" value="5000"/>
<param name="skype_user" value="user1"/>
<param name="report_incoming_chatmessages" value="true"/>
<param name="silent_mode" value="false"/>
<param name="write_silence_when_idle" value="true"/>
</global_settings>
<!-- one entry here per each skypopen interface -->
<per_interface_settings>
<interface id="1" name="interface1">
<param name="X11-display" value=":101"/>
<param name="skype_user" value="user1"/>
</interface>
<interface id="2" name="interface2">
<param name="X11-display" value=":102"/>
<param name="skype_user" value="user2"/>
</interface>
<!-- following interfaces are commented out
<interface id="3" name="interface3">
<param name="X11-display" value=":103"/>
<param name="skype_user" value="user3"/>
</interface>
<interface id="4" name="interface4">
<param name="X11-display" value=":104"/>
<param name="skype_user" value="user4"/>
</interface>
-->
</per_interface_settings>
</configuration>

View File

@ -0,0 +1,219 @@
//gcc -Wall -ggdb skypopen_auth.c -o skypopen_auth -lX11
#include <stdio.h>
#include <unistd.h>
#include <X11/Xlib.h>
#include <X11/Xlibint.h>
#include <X11/Xatom.h>
struct SkypopenHandles {
Window skype_win;
Display *disp;
Window win;
int api_connected;
int fdesc[2];
};
XErrorHandler old_handler = 0;
int xerror = 0;
char *dispname;
int X11_errors_handler(Display * dpy, XErrorEvent * err)
{
(void) dpy;
xerror = err->error_code;
printf("\n\nReceived error code %d from X Server on display '%s'\n\n", xerror, dispname);
return 0; /* ignore the error */
}
static void X11_errors_trap(void)
{
xerror = 0;
old_handler = XSetErrorHandler(X11_errors_handler);
}
static int X11_errors_untrap(void)
{
XSetErrorHandler(old_handler);
return (xerror != BadValue) && (xerror != BadWindow);
}
int skypopen_send_message(struct SkypopenHandles *SkypopenHandles, const char *message_P)
{
Window w_P;
Display *disp;
Window handle_P;
int ok;
w_P = SkypopenHandles->skype_win;
disp = SkypopenHandles->disp;
handle_P = SkypopenHandles->win;
Atom atom1 = XInternAtom(disp, "SKYPECONTROLAPI_MESSAGE_BEGIN", False);
Atom atom2 = XInternAtom(disp, "SKYPECONTROLAPI_MESSAGE", False);
unsigned int pos = 0;
unsigned int len = strlen(message_P);
XEvent e;
memset(&e, 0, sizeof(e));
e.xclient.type = ClientMessage;
e.xclient.message_type = atom1; /* leading message */
e.xclient.display = disp;
e.xclient.window = handle_P;
e.xclient.format = 8;
X11_errors_trap();
do {
unsigned int i;
for (i = 0; i < 20 && i + pos <= len; ++i)
e.xclient.data.b[i] = message_P[i + pos];
XSendEvent(disp, w_P, False, 0, &e);
e.xclient.message_type = atom2; /* following messages */
pos += i;
} while (pos <= len);
XSync(disp, False);
ok = X11_errors_untrap();
if (!ok)
printf("Sending message failed with status %d\n", xerror);
return 1;
}
int skypopen_present(struct SkypopenHandles *SkypopenHandles)
{
Atom skype_inst = XInternAtom(SkypopenHandles->disp, "_SKYPE_INSTANCE", True);
Atom type_ret;
int format_ret;
unsigned long nitems_ret;
unsigned long bytes_after_ret;
unsigned char *prop;
int status;
X11_errors_trap();
status =
XGetWindowProperty(SkypopenHandles->disp, DefaultRootWindow(SkypopenHandles->disp),
skype_inst, 0, 1, False, XA_WINDOW, &type_ret, &format_ret, &nitems_ret, &bytes_after_ret, &prop);
X11_errors_untrap();
/* sanity check */
if (status != Success || format_ret != 32 || nitems_ret != 1) {
SkypopenHandles->skype_win = (Window) - 1;
printf("Skype instance not found on display '%s'\n", dispname);
return 0;
}
SkypopenHandles->skype_win = *(const unsigned long *) prop & 0xffffffff;
printf("Skype instance found on display '%s', with id #%d\n", dispname, (unsigned int) SkypopenHandles->skype_win);
return 1;
}
void skypopen_clean_disp(void *data)
{
int *dispptr;
int disp;
dispptr = data;
disp = *dispptr;
if (disp) {
close(disp);
} else {
}
usleep(1000);
}
int main(int argc, char *argv[])
{
struct SkypopenHandles SkypopenHandles;
char buf[512];
Display *disp = NULL;
Window root = -1;
Window win = -1;
if (argc == 2)
dispname = argv[1];
else
dispname = ":0.0";
disp = XOpenDisplay(dispname);
if (!disp) {
printf("Cannot open X Display '%s', exiting\n", dispname);
return -1;
}
int xfd;
xfd = XConnectionNumber(disp);
SkypopenHandles.disp = disp;
if (skypopen_present(&SkypopenHandles)) {
root = DefaultRootWindow(disp);
win = XCreateSimpleWindow(disp, root, 0, 0, 1, 1, 0, BlackPixel(disp, DefaultScreen(disp)), BlackPixel(disp, DefaultScreen(disp)));
SkypopenHandles.win = win;
snprintf(buf, 512, "NAME skypopen");
if (!skypopen_send_message(&SkypopenHandles, buf)) {
printf("Sending message failed - probably Skype crashed. Please run/restart Skype manually and launch skypopen_auth again\n");
return -1;
}
snprintf(buf, 512, "PROTOCOL 6");
if (!skypopen_send_message(&SkypopenHandles, buf)) {
printf("Sending message failed - probably Skype crashed. Please run/restart Skype manually and launch skypopen_auth again\n");
return -1;
}
/* perform an events loop */
XEvent an_event;
char buf[21]; /* can't be longer */
char buffer[17000];
char *b;
int i;
b = buffer;
while (1) {
XNextEvent(disp, &an_event);
switch (an_event.type) {
case ClientMessage:
if (an_event.xclient.format != 8)
break;
for (i = 0; i < 20 && an_event.xclient.data.b[i] != '\0'; ++i)
buf[i] = an_event.xclient.data.b[i];
buf[i] = '\0';
strcat(buffer, buf);
if (i < 20) { /* last fragment */
unsigned int howmany;
howmany = strlen(b) + 1;
printf("RECEIVED==> %s\n", b);
memset(buffer, '\0', 17000);
}
break;
default:
break;
}
}
} else {
printf("Skype client not found on display '%s'. Please run/restart Skype manually and launch skypopen_auth again\n\n\n", dispname);
return -1;
}
return 0;
}

View File

@ -0,0 +1,52 @@
echo off
REM
REM you MUST use the new Skype (4.x) for Windows, older versions (3.x) cannot be started this way
REM
REM you have to adjust PATH to where the Skype executable is
set PATH=%PATH%;C:\Program Files\Skype\Phone\
echo %PATH%
REM start a Skype client instance that will login to the Skype network using the "username password" you give to it. Here xxx would be the password and user1 the username
start Skype.exe /secondary /username:user1 /password:xxx
call wait 7
start Skype.exe /secondary /username:user2 /password:xxx
call wait 7
REM
REM Following Skype client instances are commented out
REM
REM start Skype.exe /secondary /username:user3 /password:xxx
REM call wait 7
REM start Skype.exe /secondary /username:user4 /password:xxx
REM call wait 7
REM start Skype.exe /secondary /username:user5 /password:xxx
REM call wait 7
REM start Skype.exe /secondary /username:user6 /password:xxx
REM call wait 7
REM start Skype.exe /secondary /username:user7 /password:xxx
REM call wait 7
REM start Skype.exe /secondary /username:user8 /password:xxx
REM call wait 7
REM start Skype.exe /secondary /username:user9 /password:xxx
REM call wait 7
REM start Skype.exe /secondary /username:user10 /password:xxx
REM call wait 7
REM start Skype.exe /secondary /username:user11 /password:xxx
REM call wait 7
REM start Skype.exe /secondary /username:user12 /password:xxx
REM call wait 7
REM start Skype.exe /secondary /username:user13 /password:xxx
REM call wait 7
REM start Skype.exe /secondary /username:user14 /password:xxx
REM call wait 7
REM start Skype.exe /secondary /username:user15 /password:xxx
REM call wait 7
REM start Skype.exe /secondary /username:user16 /password:xxx
REM call wait 7
REM start Skype.exe /secondary /username:user17 /password:xxx
REM call wait 7
REM start Skype.exe /secondary /username:user18 /password:xxx
REM call wait 7
REM start Skype.exe /secondary /username:user19 /password:xxx
REM call wait 7
REM start Skype.exe /secondary /username:user20 /password:xxx

View File

@ -12,8 +12,8 @@ sleep 3
/usr/bin/Xvfb :101 -ac &
sleep 3
# start a Skype client instance that will connect to the X server above, and will login to the Skype network using the 'username password' you send to it on stdin. Here xxxx would be the password and skypiax1 the username
su root -c "/bin/echo 'skypiax1 xxxx'| DISPLAY=:101 /usr/bin/skype --pipelogin &"
# start a Skype client instance that will connect to the X server above, and will login to the Skype network using the 'username password' you send to it on stdin. Here xxxx would be the password and user1 the username
su root -c "/bin/echo 'user1 xxxx'| DISPLAY=:101 /usr/bin/skype --pipelogin &"
sleep 7
@ -22,7 +22,7 @@ sleep 7
/usr/bin/Xvfb :102 -ac &
sleep 3
su root -c "/bin/echo 'skypiax2 xxxx'| DISPLAY=:102 /usr/bin/skype --pipelogin &"
su root -c "/bin/echo 'user2 xxxx'| DISPLAY=:102 /usr/bin/skype --pipelogin &"
sleep 7
@ -35,109 +35,109 @@ exit 0
/usr/bin/Xvfb :103 -ac &
sleep 3
su root -c "/bin/echo 'skypiax3 xxxx'| DISPLAY=:103 /usr/bin/skype --pipelogin &"
su root -c "/bin/echo 'user3 xxxx'| DISPLAY=:103 /usr/bin/skype --pipelogin &"
sleep 7
/usr/bin/Xvfb :104 -ac &
sleep 3
su root -c "/bin/echo 'skypiax4 xxxx'| DISPLAY=:104 /usr/bin/skype --pipelogin &"
su root -c "/bin/echo 'user4 xxxx'| DISPLAY=:104 /usr/bin/skype --pipelogin &"
sleep 7
/usr/bin/Xvfb :105 -ac &
sleep 3
su root -c "/bin/echo 'skypiax5 xxxx'| DISPLAY=:105 /usr/bin/skype --pipelogin &"
su root -c "/bin/echo 'user5 xxxx'| DISPLAY=:105 /usr/bin/skype --pipelogin &"
sleep 7
/usr/bin/Xvfb :106 -ac &
sleep 3
su root -c "/bin/echo 'skypiax6 xxxx'| DISPLAY=:106 /usr/bin/skype --pipelogin &"
su root -c "/bin/echo 'user6 xxxx'| DISPLAY=:106 /usr/bin/skype --pipelogin &"
sleep 7
/usr/bin/Xvfb :107 -ac &
sleep 3
su root -c "/bin/echo 'skypiax7 xxxx'| DISPLAY=:107 /usr/bin/skype --pipelogin &"
su root -c "/bin/echo 'user7 xxxx'| DISPLAY=:107 /usr/bin/skype --pipelogin &"
sleep 7
/usr/bin/Xvfb :108 -ac &
sleep 3
su root -c "/bin/echo 'skypiax8 xxxx'| DISPLAY=:108 /usr/bin/skype --pipelogin &"
su root -c "/bin/echo 'user8 xxxx'| DISPLAY=:108 /usr/bin/skype --pipelogin &"
sleep 7
/usr/bin/Xvfb :109 -ac &
sleep 3
su root -c "/bin/echo 'skypiax9 xxxx'| DISPLAY=:109 /usr/bin/skype --pipelogin &"
su root -c "/bin/echo 'user9 xxxx'| DISPLAY=:109 /usr/bin/skype --pipelogin &"
sleep 7
/usr/bin/Xvfb :110 -ac &
sleep 3
su root -c "/bin/echo 'skypiax10 xxxx'| DISPLAY=:110 /usr/bin/skype --pipelogin &"
su root -c "/bin/echo 'user10 xxxx'| DISPLAY=:110 /usr/bin/skype --pipelogin &"
sleep 7
/usr/bin/Xvfb :111 -ac &
sleep 3
su root -c "/bin/echo 'skypiax11 xxxx'| DISPLAY=:111 /usr/bin/skype --pipelogin &"
su root -c "/bin/echo 'user11 xxxx'| DISPLAY=:111 /usr/bin/skype --pipelogin &"
sleep 7
/usr/bin/Xvfb :112 -ac &
sleep 3
su root -c "/bin/echo 'skypiax12 xxxx'| DISPLAY=:112 /usr/bin/skype --pipelogin &"
su root -c "/bin/echo 'user12 xxxx'| DISPLAY=:112 /usr/bin/skype --pipelogin &"
sleep 7
/usr/bin/Xvfb :113 -ac &
sleep 3
su root -c "/bin/echo 'skypiax13 xxxx'| DISPLAY=:113 /usr/bin/skype --pipelogin &"
su root -c "/bin/echo 'user13 xxxx'| DISPLAY=:113 /usr/bin/skype --pipelogin &"
sleep 7
/usr/bin/Xvfb :114 -ac &
sleep 3
su root -c "/bin/echo 'skypiax14 xxxx'| DISPLAY=:114 /usr/bin/skype --pipelogin &"
su root -c "/bin/echo 'user14 xxxx'| DISPLAY=:114 /usr/bin/skype --pipelogin &"
sleep 7
/usr/bin/Xvfb :115 -ac &
sleep 3
su root -c "/bin/echo 'skypiax15 xxxx'| DISPLAY=:115 /usr/bin/skype --pipelogin &"
su root -c "/bin/echo 'user15 xxxx'| DISPLAY=:115 /usr/bin/skype --pipelogin &"
sleep 7
/usr/bin/Xvfb :116 -ac &
sleep 3
su root -c "/bin/echo 'skypiax16 xxxx'| DISPLAY=:116 /usr/bin/skype --pipelogin &"
su root -c "/bin/echo 'user16 xxxx'| DISPLAY=:116 /usr/bin/skype --pipelogin &"
sleep 7
/usr/bin/Xvfb :117 -ac &
sleep 3
su root -c "/bin/echo 'skypiax17 xxxx'| DISPLAY=:117 /usr/bin/skype --pipelogin &"
su root -c "/bin/echo 'user17 xxxx'| DISPLAY=:117 /usr/bin/skype --pipelogin &"
sleep 7
/usr/bin/Xvfb :118 -ac &
sleep 3
su root -c "/bin/echo 'skypiax18 xxxx'| DISPLAY=:118 /usr/bin/skype --pipelogin &"
su root -c "/bin/echo 'user18 xxxx'| DISPLAY=:118 /usr/bin/skype --pipelogin &"
sleep 7
/usr/bin/Xvfb :119 -ac &
sleep 3
su root -c "/bin/echo 'skypiax19 xxxx'| DISPLAY=:119 /usr/bin/skype --pipelogin &"
su root -c "/bin/echo 'user19 xxxx'| DISPLAY=:119 /usr/bin/skype --pipelogin &"
sleep 7
/usr/bin/Xvfb :120 -ac &
sleep 3
su root -c "/bin/echo 'skypiax20 xxxx'| DISPLAY=:120 /usr/bin/skype --pipelogin &"
su root -c "/bin/echo 'user20 xxxx'| DISPLAY=:120 /usr/bin/skype --pipelogin &"
sleep 7

View File

@ -0,0 +1,61 @@
echo off
REM
REM you MUST use the new Skype (4.x) for Windows, older versions (3.x) cannot be started this way
REM
REM you have to adjust PATH to where the Skype executable is
set PATH=%PATH%;C:\Program Files\Skype\Phone\
REM echo %PATH%
REM start a Skype client instance that will login to the Skype network using the "username password" you give to it.
REM Here xxxx would be the password and user20 the username
start Skype.exe /secondary /username:user20 /password:xxxx
call C:\wait.cmd 20
start Skype.exe /secondary /username:user19 /password:xxxx
call C:\wait.cmd 5
REM
REM Following Skype client instances are commented out
REM
REM start Skype.exe /secondary /username:user18 /password:xxxx
REM call C:\wait.cmd 5
REM start Skype.exe /secondary /username:user17 /password:xxxx
REM call C:\wait.cmd 5
REM start Skype.exe /secondary /username:user16 /password:xxxx
REM call C:\wait.cmd 5
REM start Skype.exe /secondary /username:user15 /password:xxxx
REM call C:\wait.cmd 5
REM start Skype.exe /secondary /username:user14 /password:xxxx
REM call C:\wait.cmd 5
REM start Skype.exe /secondary /username:user13 /password:xxxx
REM call C:\wait.cmd 5
REM start Skype.exe /secondary /username:user12 /password:xxxx
REM call C:\wait.cmd 5
REM start Skype.exe /secondary /username:user11 /password:xxxx
REM call C:\wait.cmd 5
REM start Skype.exe /secondary /username:user10 /password:xxxx
REM call C:\wait.cmd 5
REM start Skype.exe /secondary /username:user9 /password:xxxx
REM call C:\wait.cmd 5
REM start Skype.exe /secondary /username:user8 /password:xxxx
REM call C:\wait.cmd 5
REM start Skype.exe /secondary /username:user7 /password:xxxx
REM call C:\wait.cmd 5
REM start Skype.exe /secondary /username:user6 /password:xxxx
REM call C:\wait.cmd 5
REM start Skype.exe /secondary /username:user5 /password:xxxx
REM call C:\wait.cmd 5
REM start Skype.exe /secondary /username:user4 /password:xxxx
REM call C:\wait.cmd 5
REM start Skype.exe /secondary /username:user3 /password:xxxx
REM call C:\wait.cmd 5
REM start Skype.exe /secondary /username:user2 /password:xxxx
REM call C:\wait.cmd 5
REM start Skype.exe /secondary /username:user1 /password:xxxx
call C:\wait.cmd 120
NET start AICCU2
pause

View File

@ -21,7 +21,7 @@
* Portions created by the Initial Developer are Copyright (C)
* the Initial Developer. All Rights Reserved.
*
* This module (mod_skypiax) has been contributed by:
* This module (mod_skypopen) has been contributed by:
*
* Giovanni Maruzzelli (gmaruzz@gmail.com)
*
@ -29,7 +29,7 @@
* Further Contributors:
*
*
* mod_skypiax.c -- Skype compatible Endpoint Module
* mod_skypopen.c -- Skype compatible Endpoint Module
*
*/
@ -57,14 +57,14 @@
#pragma warning(disable:4127)
#endif
#define MY_EVENT_INCOMING_CHATMESSAGE "skypiax::incoming_chatmessage"
#define MY_EVENT_INCOMING_CHATMESSAGE "skypopen::incoming_chatmessage"
#define SAMPLERATE_SKYPIAX 16000
#define SAMPLES_PER_FRAME SAMPLERATE_SKYPIAX/50
#define SAMPLERATE_SKYPOPEN 16000
#define SAMPLES_PER_FRAME SAMPLERATE_SKYPOPEN/50
#ifndef SKYPIAX_SVN_VERSION
#define SKYPIAX_SVN_VERSION SWITCH_VERSION_REVISION
#endif /* SKYPIAX_SVN_VERSION */
#ifndef SKYPOPEN_SVN_VERSION
#define SKYPOPEN_SVN_VERSION SWITCH_VERSION_REVISION
#endif /* SKYPOPEN_SVN_VERSION */
typedef enum {
TFLAG_IO = (1 << 0),
@ -82,36 +82,36 @@ typedef enum {
GFLAG_MY_CODEC_PREFS = (1 << 0)
} GFLAGS;
#define DEBUGA_SKYPE(...) switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "rev "SKYPIAX_SVN_VERSION "[%p|%-7lx][DEBUG_SKYPE %-5d][%-10s][%2d,%2d,%2d] " __VA_ARGS__ );
#define DEBUGA_CALL(...) switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "rev "SKYPIAX_SVN_VERSION "[%p|%-7lx][DEBUG_CALL %-5d][%-10s][%2d,%2d,%2d] " __VA_ARGS__ );
#define DEBUGA_PBX(...) switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "rev "SKYPIAX_SVN_VERSION "[%p|%-7lx][DEBUG_PBX %-5d][%-10s][%2d,%2d,%2d] " __VA_ARGS__ );
#define ERRORA(...) switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "rev "SKYPIAX_SVN_VERSION "[%p|%-7lx][ERRORA %-5d][%-10s][%2d,%2d,%2d] " __VA_ARGS__ );
#define WARNINGA(...) switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_WARNING, "rev "SKYPIAX_SVN_VERSION "[%p|%-7lx][WARNINGA %-5d][%-10s][%2d,%2d,%2d] " __VA_ARGS__ );
#define NOTICA(...) switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_NOTICE, "rev "SKYPIAX_SVN_VERSION "[%p|%-7lx][NOTICA %-5d][%-10s][%2d,%2d,%2d] " __VA_ARGS__ );
#define DEBUGA_SKYPE(...) switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "rev "SKYPOPEN_SVN_VERSION "[%p|%-7lx][DEBUG_SKYPE %-5d][%-10s][%2d,%2d,%2d] " __VA_ARGS__ );
#define DEBUGA_CALL(...) switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "rev "SKYPOPEN_SVN_VERSION "[%p|%-7lx][DEBUG_CALL %-5d][%-10s][%2d,%2d,%2d] " __VA_ARGS__ );
#define DEBUGA_PBX(...) switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "rev "SKYPOPEN_SVN_VERSION "[%p|%-7lx][DEBUG_PBX %-5d][%-10s][%2d,%2d,%2d] " __VA_ARGS__ );
#define ERRORA(...) switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "rev "SKYPOPEN_SVN_VERSION "[%p|%-7lx][ERRORA %-5d][%-10s][%2d,%2d,%2d] " __VA_ARGS__ );
#define WARNINGA(...) switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_WARNING, "rev "SKYPOPEN_SVN_VERSION "[%p|%-7lx][WARNINGA %-5d][%-10s][%2d,%2d,%2d] " __VA_ARGS__ );
#define NOTICA(...) switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_NOTICE, "rev "SKYPOPEN_SVN_VERSION "[%p|%-7lx][NOTICA %-5d][%-10s][%2d,%2d,%2d] " __VA_ARGS__ );
#define SKYPIAX_P_LOG NULL, (unsigned long)55, __LINE__, tech_pvt ? tech_pvt->name ? tech_pvt->name : "none" : "none", -1, tech_pvt ? tech_pvt->interface_state : -1, tech_pvt ? tech_pvt->skype_callflow : -1
#define SKYPOPEN_P_LOG NULL, (unsigned long)55, __LINE__, tech_pvt ? tech_pvt->name ? tech_pvt->name : "none" : "none", -1, tech_pvt ? tech_pvt->interface_state : -1, tech_pvt ? tech_pvt->skype_callflow : -1
/*********************************/
#define SKYPIAX_CAUSE_NORMAL 1
#define SKYPOPEN_CAUSE_NORMAL 1
/*********************************/
#define SKYPIAX_FRAME_DTMF 1
#define SKYPOPEN_FRAME_DTMF 1
/*********************************/
#define SKYPIAX_CONTROL_RINGING 1
#define SKYPIAX_CONTROL_ANSWER 2
#define SKYPOPEN_CONTROL_RINGING 1
#define SKYPOPEN_CONTROL_ANSWER 2
/*********************************/
#define SKYPIAX_STATE_IDLE 0
#define SKYPIAX_STATE_DOWN 1
#define SKYPIAX_STATE_RING 2
#define SKYPIAX_STATE_DIALING 3
#define SKYPIAX_STATE_BUSY 4
#define SKYPIAX_STATE_UP 5
#define SKYPIAX_STATE_RINGING 6
#define SKYPIAX_STATE_PRERING 7
#define SKYPIAX_STATE_ERROR_DOUBLE_CALL 8
#define SKYPIAX_STATE_SELECTED 9
#define SKYPIAX_STATE_HANGUP_REQUESTED 10
#define SKYPIAX_STATE_PREANSWER 11
#define SKYPOPEN_STATE_IDLE 0
#define SKYPOPEN_STATE_DOWN 1
#define SKYPOPEN_STATE_RING 2
#define SKYPOPEN_STATE_DIALING 3
#define SKYPOPEN_STATE_BUSY 4
#define SKYPOPEN_STATE_UP 5
#define SKYPOPEN_STATE_RINGING 6
#define SKYPOPEN_STATE_PRERING 7
#define SKYPOPEN_STATE_ERROR_DOUBLE_CALL 8
#define SKYPOPEN_STATE_SELECTED 9
#define SKYPOPEN_STATE_HANGUP_REQUESTED 10
#define SKYPOPEN_STATE_PREANSWER 11
/*********************************/
/* call flow from the device */
#define CALLFLOW_CALL_IDLE 0
@ -144,10 +144,10 @@ typedef enum {
/*********************************/
#define SKYPIAX_MAX_INTERFACES 64
#define SKYPOPEN_MAX_INTERFACES 64
#ifndef WIN32
struct SkypiaxHandles {
struct SkypopenHandles {
Window skype_win;
Display *disp;
Window win;
@ -157,7 +157,7 @@ struct SkypiaxHandles {
};
#else //WIN32
struct SkypiaxHandles {
struct SkypopenHandles {
HWND win32_hInit_MainWindowHandle;
HWND win32_hGlobal_SkypeAPIWindowHandle;
HINSTANCE win32_hInit_ProcessHandle;
@ -216,12 +216,12 @@ struct private_object {
int tcp_cli_port;
int tcp_srv_port;
#endif
struct SkypiaxHandles SkypiaxHandles;
struct SkypopenHandles SkypopenHandles;
int interface_state;
char language[80];
char exten[80];
int skypiax_sound_rate;
int skypopen_sound_rate;
char callid_name[50];
char callid_number[50];
double playback_boost;
@ -238,16 +238,16 @@ struct private_object {
#ifdef WIN32
switch_file_t *audiopipe_srv[2];
switch_file_t *audiopipe_cli[2];
switch_file_t *skypiax_sound_capt_fd;
switch_file_t *skypopen_sound_capt_fd;
#else /* WIN32 */
int audiopipe_srv[2];
int audiopipe_cli[2];
int skypiax_sound_capt_fd;
int skypopen_sound_capt_fd;
#endif /* WIN32 */
switch_thread_t *tcp_srv_thread;
switch_thread_t *tcp_cli_thread;
switch_thread_t *skypiax_signaling_thread;
switch_thread_t *skypiax_api_thread;
switch_thread_t *skypopen_signaling_thread;
switch_thread_t *skypopen_api_thread;
short audiobuf[SAMPLES_PER_FRAME];
int audiobuf_is_loaded;
short audiobuf_cli[SAMPLES_PER_FRAME];
@ -258,7 +258,7 @@ struct private_object {
int flag_audio_srv;
FILE *phonebook_writing_fp;
int skypiax_dir_entry_extension_prefix;
int skypopen_dir_entry_extension_prefix;
char skype_user[256];
char initial_skype_user[256];
char skype_password[256];
@ -292,47 +292,47 @@ struct private_object {
typedef struct private_object private_t;
void *SWITCH_THREAD_FUNC skypiax_api_thread_func(switch_thread_t * thread, void *obj);
int skypiax_audio_read(private_t * tech_pvt);
int skypiax_audio_init(private_t * tech_pvt);
int skypiax_signaling_write(private_t * tech_pvt, char *msg_to_skype);
int skypiax_signaling_read(private_t * tech_pvt);
void *SWITCH_THREAD_FUNC skypopen_api_thread_func(switch_thread_t * thread, void *obj);
int skypopen_audio_read(private_t * tech_pvt);
int skypopen_audio_init(private_t * tech_pvt);
int skypopen_signaling_write(private_t * tech_pvt, char *msg_to_skype);
int skypopen_signaling_read(private_t * tech_pvt);
int skypiax_call(private_t * tech_pvt, char *idest, int timeout);
int skypiax_senddigit(private_t * tech_pvt, char digit);
int skypopen_call(private_t * tech_pvt, char *idest, int timeout);
int skypopen_senddigit(private_t * tech_pvt, char digit);
void *skypiax_do_tcp_srv_thread_func(void *obj);
void *SWITCH_THREAD_FUNC skypiax_do_tcp_srv_thread(switch_thread_t * thread, void *obj);
void *skypopen_do_tcp_srv_thread_func(void *obj);
void *SWITCH_THREAD_FUNC skypopen_do_tcp_srv_thread(switch_thread_t * thread, void *obj);
void *skypiax_do_tcp_cli_thread_func(void *obj);
void *SWITCH_THREAD_FUNC skypiax_do_tcp_cli_thread(switch_thread_t * thread, void *obj);
void *skypopen_do_tcp_cli_thread_func(void *obj);
void *SWITCH_THREAD_FUNC skypopen_do_tcp_cli_thread(switch_thread_t * thread, void *obj);
void *skypiax_do_skypeapi_thread_func(void *obj);
void *SWITCH_THREAD_FUNC skypiax_do_skypeapi_thread(switch_thread_t * thread, void *obj);
void *skypopen_do_skypeapi_thread_func(void *obj);
void *SWITCH_THREAD_FUNC skypopen_do_skypeapi_thread(switch_thread_t * thread, void *obj);
int dtmf_received(private_t * tech_pvt, char *value);
int start_audio_threads(private_t * tech_pvt);
int new_inbound_channel(private_t * tech_pvt);
int outbound_channel_answered(private_t * tech_pvt);
int skypiax_signaling_write(private_t * tech_pvt, char *msg_to_skype);
int skypopen_signaling_write(private_t * tech_pvt, char *msg_to_skype);
#if defined(WIN32) && !defined(__CYGWIN__)
int skypiax_pipe_read(switch_file_t * pipe, short *buf, int howmany);
int skypiax_pipe_write(switch_file_t * pipe, short *buf, int howmany);
int skypopen_pipe_read(switch_file_t * pipe, short *buf, int howmany);
int skypopen_pipe_write(switch_file_t * pipe, short *buf, int howmany);
/* Visual C do not have strsep ? */
char *strsep(char **stringp, const char *delim);
#else
int skypiax_pipe_read(int pipe, short *buf, int howmany);
int skypiax_pipe_write(int pipe, short *buf, int howmany);
int skypopen_pipe_read(int pipe, short *buf, int howmany);
int skypopen_pipe_write(int pipe, short *buf, int howmany);
#endif /* WIN32 */
int skypiax_close_socket(unsigned int fd);
private_t *find_available_skypiax_interface_rr(private_t * tech_pvt_calling);
int skypopen_close_socket(unsigned int fd);
private_t *find_available_skypopen_interface_rr(private_t * tech_pvt_calling);
int remote_party_is_ringing(private_t * tech_pvt);
int remote_party_is_early_media(private_t * tech_pvt);
int skypiax_answer(private_t * tech_pvt, char *id, char *value);
int skypiax_transfer(private_t * tech_pvt, char *id, char *value);
int skypopen_answer(private_t * tech_pvt, char *id, char *value);
int skypopen_transfer(private_t * tech_pvt, char *id, char *value);
#ifndef WIN32
int skypiax_socket_create_and_bind(private_t * tech_pvt, int *which_port);
int skypopen_socket_create_and_bind(private_t * tech_pvt, int *which_port);
#else
int skypiax_socket_create_and_bind(private_t * tech_pvt, unsigned short *which_port);
int skypopen_socket_create_and_bind(private_t * tech_pvt, unsigned short *which_port);
#endif //WIN32
int incoming_chatmessage(private_t * tech_pvt, int which);
int next_port(void);