diff options
author | Timo Teräs <timo.teras@iki.fi> | 2010-06-08 17:07:29 +0300 |
---|---|---|
committer | Timo Teräs <timo.teras@iki.fi> | 2010-06-08 17:07:57 +0300 |
commit | c9fa4d6d35b47255fe92924684caa86c9c3d2c67 (patch) | |
tree | bcbdedd82087626df3ff2763e6ec69b4ab9af2c1 | |
parent | 4b772691044ae04d6a616af7726d3558b67c988d (diff) | |
download | alpine_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.patch | 151 | ||||
-rw-r--r-- | main/asterisk-audio-konf/APKBUILD | 67 |
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 @@ | |||
1 | From 2040c4ebe42ed6a222b87f0148c0c08701afc2fd Mon Sep 17 00:00:00 2001 | ||
2 | From: =?UTF-8?q?Timo=20Ter=C3=A4s?= <timo.teras@iki.fi> | ||
3 | Date: Mon, 7 Jun 2010 14:20:42 +0300 | ||
4 | Subject: [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 | |||
14 | diff --git a/konference/Dialplan.txt b/konference/Dialplan.txt | ||
15 | index 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 | ? | ||
27 | diff --git a/konference/conference.c b/konference/conference.c | ||
28 | index 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 | } | ||
81 | diff --git a/konference/conference.h b/konference/conference.h | ||
82 | index 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 | |||
94 | diff --git a/konference/member.c b/konference/member.c | ||
95 | index 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; | ||
135 | diff --git a/konference/member.h b/konference/member.h | ||
136 | index 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 | -- | ||
150 | 1.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> | ||
3 | pkgname=asterisk-audio-konf | ||
4 | _basever=0 | ||
5 | _gitver=100607 | ||
6 | pkgver=${_basever}_git${_gitver} | ||
7 | pkgrel=0 | ||
8 | pkgdesc="A fork of AppKonference focused entirely on audio conferencing" | ||
9 | url="http://github.com/jthomerson/AsteriskAudioKonf/" | ||
10 | license="GPL" | ||
11 | depends= | ||
12 | makedepends="asterisk-dev" | ||
13 | install= | ||
14 | subpackages= | ||
15 | _snapfile="$pkgname-$pkgver.tar.bz2" | ||
16 | source="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 | |||
27 | snapshot() { | ||
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 | |||
49 | prepare() { | ||
50 | cd "$_builddir"/.. | ||
51 | for i in "$srcdir"/*.patch; do | ||
52 | patch -p1 -i "$i" || return 1 | ||
53 | done | ||
54 | } | ||
55 | |||
56 | build() { | ||
57 | cd "$_builddir" | ||
58 | make || return 1 | ||
59 | } | ||
60 | |||
61 | package() { | ||
62 | cd "$_builddir" | ||
63 | make INSTALL_PREFIX="$pkgdir" install | ||
64 | } | ||
65 | |||
66 | md5sums="8a716a2d1daa622f86a485804e403571 asterisk-audio-konf-0_git100607.tar.bz2 | ||
67 | 937afbb9fa2ce57615f09919e15ab2d3 0001-add-n-flag-to-prevent-dynamic-create-of-conference.patch" | ||