diff options
4 files changed, 13 insertions, 309 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 deleted file mode 100644 index 115c42fa2..000000000 --- a/main/asterisk-audio-konf/0001-add-n-flag-to-prevent-dynamic-create-of-conference.patch +++ /dev/null @@ -1,151 +0,0 @@ -From 2040c4ebe42ed6a222b87f0148c0c08701afc2fd Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Timo=20Ter=C3=A4s?= <timo.teras@iki.fi> -Date: Mon, 7 Jun 2010 14:20:42 +0300 -Subject: [PATCH] add 'n' flag to prevent dynamic create of conference - ---- - konference/Dialplan.txt | 2 ++ - konference/conference.c | 27 ++++++++++++++++++--------- - konference/conference.h | 2 +- - konference/member.c | 12 +++++++----- - konference/member.h | 3 +++ - 5 files changed, 31 insertions(+), 15 deletions(-) - -diff --git a/konference/Dialplan.txt b/konference/Dialplan.txt -index 455703d..17287dd 100644 ---- a/konference/Dialplan.txt -+++ b/konference/Dialplan.txt -@@ -45,6 +45,8 @@ exten => <ext>,<pri>,Konference(<confname>,<flags>,<optional args>,<more optiona - 'r' : record the conference. it will be recorded to KONFERENCE_RECORDINGFILE with the format KONFERENCE_RECORDINGFORMAT - default for KONFERENCE_RECORDINGFILE is: konference-{conference-name}-{member-uniqueid} - default for KONFERENCE_RECORDINGFORMAT is: wav -+ 'n' : do not create new conference, only join existing ones. -+ if conference does not exist KONFERENCE is set to NOTFOUND - - Future development (these are not implemented yet): - ? -diff --git a/konference/conference.c b/konference/conference.c -index 9790d2e..98fed28 100644 ---- a/konference/conference.c -+++ b/konference/conference.c -@@ -620,7 +620,7 @@ void init_conference( void ) - argument_delimiter = ( !strcmp(PACKAGE_VERSION,"1.4") ? "|" : "," ) ; - } - --struct ast_conference* join_conference( struct ast_conf_member* member, char* max_users_flag, const char* recfile, const char *recformat ) -+struct ast_conference* join_conference( struct ast_conf_member* member, const char* recfile, const char *recformat ) - { - struct ast_conference* conf = NULL ; - -@@ -634,15 +634,25 @@ struct ast_conference* join_conference( struct ast_conf_member* member, char* ma - // unable to find an existing conference, try to create one - if ( conf == NULL ) - { -- // create a new conference -- DEBUG("attempting to create requested conference\n") ; -+ if ( member->no_create_flag ) -+ { -+ DEBUG("conference not found, and create of new conference not allowed\n") ; -+ pbx_builtin_setvar_helper(member->chan, "KONFERENCE", "NOTFOUND"); -+ } -+ else -+ { -+ // create a new conference -+ DEBUG("attempting to create requested conference\n") ; - -- // create the new conference with one member -- conf = create_conf( member->conf_name, member ) ; -+ // create the new conference with one member -+ conf = create_conf( member->conf_name, member ) ; - -- // return an error if create_conf() failed -- if ( conf == NULL ) -- ast_log( LOG_ERROR, "unable to find or create requested conference\n" ) ; -+ // return an error if create_conf() failed -+ if ( conf == NULL ) { -+ ast_log( LOG_ERROR, "unable to find or create requested conference\n" ) ; -+ pbx_builtin_setvar_helper(member->chan, "KONFERENCE", "NORESOURCES"); -+ } -+ } - } - else - { -@@ -656,7 +666,6 @@ struct ast_conference* join_conference( struct ast_conf_member* member, char* ma - add_member( member, conf ) ; - } else { - pbx_builtin_setvar_helper(member->chan, "KONFERENCE", "MAXUSERS"); -- *max_users_flag = 1; - conf = NULL; - } - } -diff --git a/konference/conference.h b/konference/conference.h -index 3322f3f..e8da836 100644 ---- a/konference/conference.h -+++ b/konference/conference.h -@@ -157,7 +157,7 @@ int hash( const char *channel_name ) ; - - int count_exec( struct ast_channel* chan, void* data ) ; - --struct ast_conference* join_conference( struct ast_conf_member* member, char* max_users_flag, const char* recfile, const char* recformat ) ; -+struct ast_conference* join_conference( struct ast_conf_member* member, const char* recfile, const char* recformat ) ; - - int end_conference( const char *name, int hangup ) ; - -diff --git a/konference/member.c b/konference/member.c -index c18fcdc..ff93b36 100644 ---- a/konference/member.c -+++ b/konference/member.c -@@ -758,14 +758,13 @@ int member_exec( struct ast_channel* chan, void* data ) - // setup a conference for the new member - // - -- char max_users_flag = 0 ; -- conf = join_conference( member, &max_users_flag, recfile, recformat ) ; -+ conf = join_conference( member, recfile, recformat ) ; - - if ( conf == NULL ) - { -- ast_log( LOG_NOTICE, "unable to setup member conference %s: max_users_flag is %d\n", member->conf_name, max_users_flag ) ; -+ ast_log( LOG_NOTICE, "unable to setup member conference %s\n", member->conf_name) ; - delete_member( member) ; -- return (max_users_flag ? 0 : -1 ) ; -+ return -1; - } - - // -@@ -1349,7 +1348,7 @@ struct ast_conf_member* create_member( struct ast_channel *chan, const char* dat - else - #endif - { -- // allowed flags are C, c, L, l, V, D, A, C, X, r, R, T, t, M, S, z, o, F, H -+ // allowed flags are C, c, L, l, V, D, A, C, X, r, R, T, t, M, S, z, o, F, H, n - // mute/no_recv options - switch ( flags[i] ) - { -@@ -1405,6 +1404,9 @@ struct ast_conf_member* create_member( struct ast_channel *chan, const char* dat - case 'M': - member->ismoderator = 1; - break; -+ case 'n': -+ member->no_create_flag = 1; -+ break; - #ifdef VIDEO - case 'N': - member->no_camera = 1; -diff --git a/konference/member.h b/konference/member.h -index 0f9005b..28eff6b 100644 ---- a/konference/member.h -+++ b/konference/member.h -@@ -105,6 +105,9 @@ struct ast_conf_member - // wait option flag - char wait_for_moderator_flag; - -+ // creation of new conference not allowed -+ char no_create_flag; -+ - // temp flag for when star is pressed - char star_pressed; - --- -1.7.0.4 - diff --git a/main/asterisk-audio-konf/0002-member-do-not-exit-with-error-if-join_conference-fai.patch b/main/asterisk-audio-konf/0002-member-do-not-exit-with-error-if-join_conference-fai.patch deleted file mode 100644 index aa5e3629e..000000000 --- a/main/asterisk-audio-konf/0002-member-do-not-exit-with-error-if-join_conference-fai.patch +++ /dev/null @@ -1,38 +0,0 @@ -From 287bb3324652e0e3086eefa62a6a1593331c9143 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Timo=20Ter=C3=A4s?= <timo.teras@iki.fi> -Date: Fri, 20 Aug 2010 14:14:22 +0300 -Subject: [PATCH] member: do not exit with error if join_conference() fails -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -This causes Asterisk to hangup the call, but it was not intended -as join_conference() sets dialplan variable properly to indicate -error. - -Signed-off-by: Timo Teräs <timo.teras@iki.fi> ---- - konference/member.c | 3 +-- - 1 files changed, 1 insertions(+), 2 deletions(-) - -diff --git a/konference/member.c b/konference/member.c -index 863e34d..5370e73 100644 ---- a/konference/member.c -+++ b/konference/member.c -@@ -755,12 +755,11 @@ int member_exec( struct ast_channel* chan, void* data ) - // - - conf = join_conference( member, recfile, recformat ) ; -- - if ( conf == NULL ) - { - ast_log( LOG_NOTICE, "unable to setup member conference %s\n", member->conf_name) ; - delete_member( member) ; -- return -1; -+ return 0; - } - - // --- -1.7.0.4 - diff --git a/main/asterisk-audio-konf/0003-member-ability-to-play-an-announcement-to-joiner.patch b/main/asterisk-audio-konf/0003-member-ability-to-play-an-announcement-to-joiner.patch deleted file mode 100644 index f59b8bff7..000000000 --- a/main/asterisk-audio-konf/0003-member-ability-to-play-an-announcement-to-joiner.patch +++ /dev/null @@ -1,105 +0,0 @@ -From 859a208c7ce995930068159cf512ec50d71b16b0 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Timo=20Ter=C3=A4s?= <timo.teras@iki.fi> -Date: Tue, 24 Aug 2010 17:40:06 +0300 -Subject: [PATCH 2/2] member: ability to play an announcement to joiner - -Parameter to playback a file after succesful conference join -(resources, conference existance and PIN verified), but before -actually dispatching the conference data. ---- - konference/Dialplan.txt | 1 + - konference/member.c | 25 +++++++++++++++++++++++++ - konference/member.h | 1 + - 3 files changed, 27 insertions(+), 0 deletions(-) - -diff --git a/konference/Dialplan.txt b/konference/Dialplan.txt -index 17287dd..3784f32 100644 ---- a/konference/Dialplan.txt -+++ b/konference/Dialplan.txt -@@ -64,6 +64,7 @@ exten => <ext>,<pri>,Konference(<confname>,<flags>,<optional args>,<more optiona - max_users=<int> : Limit conference participants to max_users - type=<string>: Type identifier - spy=<string>: Channel name to spy -+ welcome_prompt=<string>: File to playback after a successful join (PIN verified), but before connecting conference audio - - 3. Examples - -diff --git a/konference/member.c b/konference/member.c -index 5370e73..080db81 100644 ---- a/konference/member.c -+++ b/konference/member.c -@@ -829,6 +829,21 @@ int member_exec( struct ast_channel* chan, void* data ) - ) ; - - // -+ // play welcome prompt -+ // -+ if (member->welcome_prompt) { -+ ast_stopstream(chan); -+ res = ast_streamfile(chan, member->welcome_prompt, chan->language); -+ if (!res) { -+ res = ast_waitstream(chan, ""); -+ ast_stopstream(chan); -+ } else { -+ ast_log(LOG_WARNING, "Failed to play welcome prompt '%s' on channel '%s'", -+ member->welcome_prompt, chan->name); -+ } -+ } -+ -+ // - // process loop for new member ( this runs in it's own thread ) - // - -@@ -1064,6 +1079,7 @@ struct ast_conf_member* create_member( struct ast_channel *chan, const char* dat - member->max_users = AST_CONF_MAX_USERS; - member->type = NULL; - member->spyee_channel_name = NULL; -+ member->welcome_prompt = NULL; - - // - // initialize member with passed data values -@@ -1117,6 +1133,7 @@ struct ast_conf_member* create_member( struct ast_channel *chan, const char* dat - static const char arg_max_users[] = "max_users"; - static const char arg_conf_type[] = "type"; - static const char arg_chanspy[] = "spy"; -+ static const char arg_welcomeprompt[] = "welcome_prompt"; - - char *value = token; - const char *key = strsep(&value, "="); -@@ -1162,6 +1179,11 @@ struct ast_conf_member* create_member( struct ast_channel *chan, const char* dat - member->spyee_channel_name = malloc( strlen( value ) + 1 ) ; - strcpy( member->spyee_channel_name, value ) ; - DEBUG("spyee channel name is %s\n", member->spyee_channel_name) ; -+ } else if ( strncasecmp(key, arg_welcomeprompt, sizeof(arg_welcomeprompt) - 1) == 0 ) -+ { -+ member->welcome_prompt = malloc( strlen( value ) + 1 ) ; -+ strcpy( member->welcome_prompt, value ) ; -+ DEBUG("welcome prompt is %s\n", member->welcome_prompt) ; - } else - { - ast_log(LOG_WARNING, "unknown parameter %s with value %s\n", key, value) ; -@@ -1729,6 +1751,9 @@ struct ast_conf_member* delete_member( struct ast_conf_member* member ) - // free the member's copy of the spyee channel name - free(member->spyee_channel_name); - -+ // free the welcome prompt -+ free(member->welcome_prompt); -+ - // clear all sounds - struct ast_conf_soundq *sound = member->soundq; - struct ast_conf_soundq *next; -diff --git a/konference/member.h b/konference/member.h -index 28eff6b..52b5164 100644 ---- a/konference/member.h -+++ b/konference/member.h -@@ -69,6 +69,7 @@ struct ast_conf_member - char *type ; // conference type - char* conf_name ; // name of the conference that own this member - char *spyee_channel_name ; // spyee channel name -+ char *welcome_prompt ; - int max_users ; // zero or max users for this conference - - // voice flags --- -1.7.0.4 - diff --git a/main/asterisk-audio-konf/APKBUILD b/main/asterisk-audio-konf/APKBUILD index 085766d1b..4077b23ca 100644 --- a/main/asterisk-audio-konf/APKBUILD +++ b/main/asterisk-audio-konf/APKBUILD @@ -2,9 +2,9 @@ # Maintainer: Natanael Copa <ncopa@alpinelinux.org> pkgname=asterisk-audio-konf _basever=0 -_gitver=100607 +_gitver=101026 pkgver=${_basever}_git${_gitver} -pkgrel=2 +pkgrel=0 pkgdesc="A fork of AppKonference focused entirely on audio conferencing" url="http://github.com/jthomerson/AsteriskAudioKonf/" license="GPL" @@ -13,13 +13,10 @@ makedepends="asterisk-dev" install= subpackages= _snapfile="$pkgname-$pkgver.tar.bz2" -source="http://build.alpinelinux.org:8010/distfiles/$_snapfile - 0001-add-n-flag-to-prevent-dynamic-create-of-conference.patch - 0002-member-do-not-exit-with-error-if-join_conference-fai.patch - 0003-member-ability-to-play-an-announcement-to-joiner.patch +source="http://dev.alpinelinux.org/~tteras/$_snapfile " -_gitver=100607 +_gitver=101026 _giturl="git://github.com/jthomerson/AsteriskAudioKonf.git" @@ -49,10 +46,14 @@ snapshot() { } prepare() { - cd "$_builddir"/.. - for i in "$srcdir"/*.patch; do - patch -p1 -i "$i" || return 1 - done + cd "$_builddir" + + # Enable Speex16 support + sed -e '/CPPFLAGS += -DAC_USE_SPEEX16/s/^\# *//' -i Makefile + + #for i in "$srcdir"/*.patch; do + # patch -p1 -i "$i" || return 1 + #done } build() { @@ -65,7 +66,4 @@ package() { make INSTALL_PREFIX="$pkgdir" install } -md5sums="8a716a2d1daa622f86a485804e403571 asterisk-audio-konf-0_git100607.tar.bz2 -937afbb9fa2ce57615f09919e15ab2d3 0001-add-n-flag-to-prevent-dynamic-create-of-conference.patch -2d0d8bf20b2a22bd099f1461cfd1fe27 0002-member-do-not-exit-with-error-if-join_conference-fai.patch -0d07d5e69e6aa75bd916ce29569a8509 0003-member-ability-to-play-an-announcement-to-joiner.patch" +md5sums="9f560cae3afc363282db60e0d69c6643 asterisk-audio-konf-0_git101026.tar.bz2" |