aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTimo Teräs <timo.teras@iki.fi>2010-06-08 17:07:29 +0300
committerTimo Teräs <timo.teras@iki.fi>2010-06-08 17:07:57 +0300
commitc9fa4d6d35b47255fe92924684caa86c9c3d2c67 (patch)
treebcbdedd82087626df3ff2763e6ec69b4ab9af2c1
parent4b772691044ae04d6a616af7726d3558b67c988d (diff)
downloadalpine_aports-c9fa4d6d35b47255fe92924684caa86c9c3d2c67.tar.bz2
alpine_aports-c9fa4d6d35b47255fe92924684caa86c9c3d2c67.tar.xz
alpine_aports-c9fa4d6d35b47255fe92924684caa86c9c3d2c67.zip
main/asterisk-audio-konf: new aport (backported from edge)
-rw-r--r--main/asterisk-audio-konf/0001-add-n-flag-to-prevent-dynamic-create-of-conference.patch151
-rw-r--r--main/asterisk-audio-konf/APKBUILD67
2 files changed, 218 insertions, 0 deletions
diff --git a/main/asterisk-audio-konf/0001-add-n-flag-to-prevent-dynamic-create-of-conference.patch b/main/asterisk-audio-konf/0001-add-n-flag-to-prevent-dynamic-create-of-conference.patch
new file mode 100644
index 0000000000..115c42fa28
--- /dev/null
+++ b/main/asterisk-audio-konf/0001-add-n-flag-to-prevent-dynamic-create-of-conference.patch
@@ -0,0 +1,151 @@
1From 2040c4ebe42ed6a222b87f0148c0c08701afc2fd Mon Sep 17 00:00:00 2001
2From: =?UTF-8?q?Timo=20Ter=C3=A4s?= <timo.teras@iki.fi>
3Date: Mon, 7 Jun 2010 14:20:42 +0300
4Subject: [PATCH] add 'n' flag to prevent dynamic create of conference
5
6---
7 konference/Dialplan.txt | 2 ++
8 konference/conference.c | 27 ++++++++++++++++++---------
9 konference/conference.h | 2 +-
10 konference/member.c | 12 +++++++-----
11 konference/member.h | 3 +++
12 5 files changed, 31 insertions(+), 15 deletions(-)
13
14diff --git a/konference/Dialplan.txt b/konference/Dialplan.txt
15index 455703d..17287dd 100644
16--- a/konference/Dialplan.txt
17+++ b/konference/Dialplan.txt
18@@ -45,6 +45,8 @@ exten => <ext>,<pri>,Konference(<confname>,<flags>,<optional args>,<more optiona
19 'r' : record the conference. it will be recorded to KONFERENCE_RECORDINGFILE with the format KONFERENCE_RECORDINGFORMAT
20 default for KONFERENCE_RECORDINGFILE is: konference-{conference-name}-{member-uniqueid}
21 default for KONFERENCE_RECORDINGFORMAT is: wav
22+ 'n' : do not create new conference, only join existing ones.
23+ if conference does not exist KONFERENCE is set to NOTFOUND
24
25 Future development (these are not implemented yet):
26 ?
27diff --git a/konference/conference.c b/konference/conference.c
28index 9790d2e..98fed28 100644
29--- a/konference/conference.c
30+++ b/konference/conference.c
31@@ -620,7 +620,7 @@ void init_conference( void )
32 argument_delimiter = ( !strcmp(PACKAGE_VERSION,"1.4") ? "|" : "," ) ;
33 }
34
35-struct ast_conference* join_conference( struct ast_conf_member* member, char* max_users_flag, const char* recfile, const char *recformat )
36+struct ast_conference* join_conference( struct ast_conf_member* member, const char* recfile, const char *recformat )
37 {
38 struct ast_conference* conf = NULL ;
39
40@@ -634,15 +634,25 @@ struct ast_conference* join_conference( struct ast_conf_member* member, char* ma
41 // unable to find an existing conference, try to create one
42 if ( conf == NULL )
43 {
44- // create a new conference
45- DEBUG("attempting to create requested conference\n") ;
46+ if ( member->no_create_flag )
47+ {
48+ DEBUG("conference not found, and create of new conference not allowed\n") ;
49+ pbx_builtin_setvar_helper(member->chan, "KONFERENCE", "NOTFOUND");
50+ }
51+ else
52+ {
53+ // create a new conference
54+ DEBUG("attempting to create requested conference\n") ;
55
56- // create the new conference with one member
57- conf = create_conf( member->conf_name, member ) ;
58+ // create the new conference with one member
59+ conf = create_conf( member->conf_name, member ) ;
60
61- // return an error if create_conf() failed
62- if ( conf == NULL )
63- ast_log( LOG_ERROR, "unable to find or create requested conference\n" ) ;
64+ // return an error if create_conf() failed
65+ if ( conf == NULL ) {
66+ ast_log( LOG_ERROR, "unable to find or create requested conference\n" ) ;
67+ pbx_builtin_setvar_helper(member->chan, "KONFERENCE", "NORESOURCES");
68+ }
69+ }
70 }
71 else
72 {
73@@ -656,7 +666,6 @@ struct ast_conference* join_conference( struct ast_conf_member* member, char* ma
74 add_member( member, conf ) ;
75 } else {
76 pbx_builtin_setvar_helper(member->chan, "KONFERENCE", "MAXUSERS");
77- *max_users_flag = 1;
78 conf = NULL;
79 }
80 }
81diff --git a/konference/conference.h b/konference/conference.h
82index 3322f3f..e8da836 100644
83--- a/konference/conference.h
84+++ b/konference/conference.h
85@@ -157,7 +157,7 @@ int hash( const char *channel_name ) ;
86
87 int count_exec( struct ast_channel* chan, void* data ) ;
88
89-struct ast_conference* join_conference( struct ast_conf_member* member, char* max_users_flag, const char* recfile, const char* recformat ) ;
90+struct ast_conference* join_conference( struct ast_conf_member* member, const char* recfile, const char* recformat ) ;
91
92 int end_conference( const char *name, int hangup ) ;
93
94diff --git a/konference/member.c b/konference/member.c
95index c18fcdc..ff93b36 100644
96--- a/konference/member.c
97+++ b/konference/member.c
98@@ -758,14 +758,13 @@ int member_exec( struct ast_channel* chan, void* data )
99 // setup a conference for the new member
100 //
101
102- char max_users_flag = 0 ;
103- conf = join_conference( member, &max_users_flag, recfile, recformat ) ;
104+ conf = join_conference( member, recfile, recformat ) ;
105
106 if ( conf == NULL )
107 {
108- ast_log( LOG_NOTICE, "unable to setup member conference %s: max_users_flag is %d\n", member->conf_name, max_users_flag ) ;
109+ ast_log( LOG_NOTICE, "unable to setup member conference %s\n", member->conf_name) ;
110 delete_member( member) ;
111- return (max_users_flag ? 0 : -1 ) ;
112+ return -1;
113 }
114
115 //
116@@ -1349,7 +1348,7 @@ struct ast_conf_member* create_member( struct ast_channel *chan, const char* dat
117 else
118 #endif
119 {
120- // allowed flags are C, c, L, l, V, D, A, C, X, r, R, T, t, M, S, z, o, F, H
121+ // allowed flags are C, c, L, l, V, D, A, C, X, r, R, T, t, M, S, z, o, F, H, n
122 // mute/no_recv options
123 switch ( flags[i] )
124 {
125@@ -1405,6 +1404,9 @@ struct ast_conf_member* create_member( struct ast_channel *chan, const char* dat
126 case 'M':
127 member->ismoderator = 1;
128 break;
129+ case 'n':
130+ member->no_create_flag = 1;
131+ break;
132 #ifdef VIDEO
133 case 'N':
134 member->no_camera = 1;
135diff --git a/konference/member.h b/konference/member.h
136index 0f9005b..28eff6b 100644
137--- a/konference/member.h
138+++ b/konference/member.h
139@@ -105,6 +105,9 @@ struct ast_conf_member
140 // wait option flag
141 char wait_for_moderator_flag;
142
143+ // creation of new conference not allowed
144+ char no_create_flag;
145+
146 // temp flag for when star is pressed
147 char star_pressed;
148
149--
1501.7.0.4
151
diff --git a/main/asterisk-audio-konf/APKBUILD b/main/asterisk-audio-konf/APKBUILD
new file mode 100644
index 0000000000..cd87e2780e
--- /dev/null
+++ b/main/asterisk-audio-konf/APKBUILD
@@ -0,0 +1,67 @@
1# Contributor:
2# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
3pkgname=asterisk-audio-konf
4_basever=0
5_gitver=100607
6pkgver=${_basever}_git${_gitver}
7pkgrel=0
8pkgdesc="A fork of AppKonference focused entirely on audio conferencing"
9url="http://github.com/jthomerson/AsteriskAudioKonf/"
10license="GPL"
11depends=
12makedepends="asterisk-dev"
13install=
14subpackages=
15_snapfile="$pkgname-$pkgver.tar.bz2"
16source="http://build.alpinelinux.org:8010/distfiles/$_snapfile
17 0001-add-n-flag-to-prevent-dynamic-create-of-conference.patch
18 "
19
20_gitver=100607
21_giturl="git://github.com/jthomerson/AsteriskAudioKonf.git"
22
23
24_builddir="$srcdir"/$pkgname/konference
25
26
27snapshot() {
28 _gitver=$(date +%y%m%d)
29 pkgver=${_basever}_git$_gitver
30 _snapfile="$pkgname-$pkgver.tar.bz2"
31
32 if [ -d "$SRCDEST"/$pkgname ]; then
33 cd "$SRCDEST"/$pkgname
34 git pull --rebase || return 1
35 else
36 cd "$SRCDEST"
37 git clone $_giturl $pkgname
38 fi
39 cd "$SRCDEST"
40 tar -jcf $_snapfile $pkgname
41
42 pkgrel=0
43 sed -i -e "s/^_gitver=.*/_gitver=${_gitver}/" \
44 -e "s/^pkgrel=.*/pkgrel=$pkgrel/" \
45 "$startdir"/APKBUILD
46 checksum
47}
48
49prepare() {
50 cd "$_builddir"/..
51 for i in "$srcdir"/*.patch; do
52 patch -p1 -i "$i" || return 1
53 done
54}
55
56build() {
57 cd "$_builddir"
58 make || return 1
59}
60
61package() {
62 cd "$_builddir"
63 make INSTALL_PREFIX="$pkgdir" install
64}
65
66md5sums="8a716a2d1daa622f86a485804e403571 asterisk-audio-konf-0_git100607.tar.bz2
67937afbb9fa2ce57615f09919e15ab2d3 0001-add-n-flag-to-prevent-dynamic-create-of-conference.patch"