Sponsor: VoiceMeUp - Corporate & Wholesale VoIP Services

VoIP Mailing List Archives
Mailing list archives for the VoIP community
 SearchSearch 

[asterisk-users] Any Help ? user defined application .module load Crash Asterisk 11.5.1 app_confbridg e.c


 
Post new topic   Reply to topic    VoIP Mailing List Archives Forum Index -> Asterisk Users
View previous topic :: View next topic  
Author Message
hkc323 at gmail.com
Guest





PostPosted: Wed Mar 12, 2014 11:30 pm    Post subject: [asterisk-users] Any Help ? user defined application .module Reply with quote

=====================================================================
Asterisk-11.5.1 Centos6 app_confbrige.c
=====================================================================
APP: MyConfbridgeCount(Confbridgename,variablename)
it will return no of user in conference if conference is created or else
zero.

Task: Using Dailplan user want to retrive no of user in conference
'6050' => 1. Verbose(3,"testMyConfbridgeCount") [pbx_config]
2. MyConfbridgeCount(4000,count) [pbx_config]
3. verbose(3,"== ${count} ====") [pbx_config]
======================================================================
issue:Currently asterisk core dumped as soon as app2 load .
I want to load module as after join confbridge by any user , using
MyConfbridgeCount() to know no of conference user count .

file: app/app_confbrige.c
==========================================================================
partial code of app_confbridge.c:
=========================================================================
static const char *const app2 ="MyConfbridgeCount";


static int count_exec(struct ast_channel *chan, const char *data)
{
int res = 0;
struct conference_bridge *conf=NULL;
int count;
char *localdata;
char val[80] = "0";

struct ao2_iterator i;
//struct conference_bridge *bridge = NULL;
struct conference_bridge tmp;

AST_DECLARE_APP_ARGS(args,
AST_APP_ARG(confno);
AST_APP_ARG(varname);
);

ast_verb(3,"\n============Inside count_exec =============\n");

if ( ast_strlen_zero(data)) {
ast_log(LOG_WARNING, "MyConfbrigeCount requires an argument (conference
number)\n");
ast_verb(3, "\n MyConfbrigeCount requires an argument (conference number\n
");
return -1;

}

if (!ao2_container_count(conference_bridges)) {
ast_verb(3, "No active conferences.");
ast_log(LOG_NOTICE, "No active conferences.");

return -1;
}
if (!(localdata = ast_strdupa(data))){

return -1;
}
AST_STANDARD_APP_ARGS(args, localdata);

ast_copy_string(tmp.name, args.confno, sizeof(tmp.name));

conf = ao2_find(conference_bridges, &tmp, OBJ_POINTER);

if (conf) {
ao2_lock(conf);
count = conf->markedusers;
ao2_unlock(conf);


}else{
count = 0;
}


if (!ast_strlen_zero(args.varname)) {

snprintf(val, sizeof(val), "%d", count);
pbx_builtin_setvar_helper(chan, args.varname, val);
} else {
if ( ast_channel_state(chan)!= AST_STATE_UP) {
ast_answer(chan);
}
res = ast_say_number(chan, count, "",ast_channel_language(chan),(char *)
NULL);
}

return res;
}


static int load_module(void)
{
ast_verb(3 ,"==Inside load_module==");

res |= ast_register_application_xml(app2,count_exec);
return res;
}
static int unload_module(void)
{

res |= ast_unregister_application(app2);
return res;
}

static struct ast_cli_entry cli_confbridge[] = {
AST_CLI_DEFINE(admincount_exec, "MyConfbrigdeCount Show Number of
adminUser(s) in Conference." ),
}
=============core dumap=================================================
Program terminated with signal 11, Segmentation fault.
#0 __strlen_ia32 () at ../sysdeps/i386/i586/strlen.S:56
56 cmpb %dh, (%eax) /* is byte NUL? */

(gdb) bt
#0 __strlen_ia32 () at ../sysdeps/i386/i586/strlen.S:56
#1 0x00c1b4df in _IO_vfprintf_internal (s=0xfffffffe, format=<value
optimized out>, ap=<value optimized out>) at vfprintf.c:1641
#2 0x00c409f0 in _IO_vsnprintf (string=0x835af1c "\374 -- \n======== inside
count_exec == data is at address:[0xbf918b64] data:[nnel)\n", maxlen=<value
optimized out>,
format=0xbf9175c0 "\374 -- \n======== inside count_exec == data is at
address:[%p] data:[%s] ", '=' <repeats 11 times>, "\n",
args=0xbf917724 "d\213\221\277\376\377\377\377\213\261\065\b") at
vsnprintf.c:120
#3 0x081a0f94 in __ast_str_helper (buf=0xbf9176a8, max_len=0, append=0,
fmt=0xbf9175c0 "\374 -- \n======== inside count_exec == data is at address:
[%p] data:[%s] ", '=' <repeats 11 times>, "\n",
ap=0xbf917724 "d\213\221\277\376\377\377\377\213\261\065\b") at strings.c:76
#4 0x081b17d0 in ast_str_set_va (buf=0xbf9176a8, max_len=0,
fmt=0xbf9175c0 "\374 -- \n======== inside count_exec == data is at address:
[%p] data:[%s] ", '=' <repeats 11 times>, "\n",
ap=0xbf917724 "d\213\221\277\376\377\377\377\213\261\065\b") at /usr/src/My-
asterisk/asterisk-11.5.1/include/asterisk/strings.h:803
#5 0x08134a6f in __ast_verbose_ap (file=0xe1ca74 "app_confbridge.c",
line=2453, func=0xe20652 "count_exec", level=3, callid=0x0,
fmt=0xbf9175c0 "\374 -- \n======== inside count_exec == data is at address:
[%p] data:[%s] ", '=' <repeats 11 times>, "\n",
ap=0xbf917724 "d\213\221\277\376\377\377\377\213\261\065\b") at
logger.c:1818
#6 0x08134b0b in __ast_verbose (file=0xe1ca74 "app_confbridge.c", line=2453,
func=0xe20652 "count_exec", level=3,
fmt=0xe1da30 "\n======== inside count_exec == data is at address:[%p] data:
[%s] ", '=' <repeats 11 times>, "\n") at logger.c:1836
#7 0x00e09a45 in count_exec (chan=0xe23c18, data=0xfffffffe <Address
0xfffffffe out of bounds>) at app_confbridge.c:2453
#8 0x080d40eb in __ast_cli_register (e=0xe23c18, ed=0x0) at cli.c:2118
#9 0x080d4459 in ast_cli_register (e=0xe23c18) at cli.c:2178
#10 0x080d4482 in ast_cli_register_multiple (e=0xe237a0, len=13) at
cli.c:2189
#11 0x00e11f7d in load_module () at app_confbridge.c:4771
#12 0x0812ba89 in start_resource (mod=0x87fa908) at loader.c:845
#13 0x0812c45c in load_resource_list (load_order=0xbf918e90,
global_symbols=0, mod_count=0xbf918e88) at loader.c:1045
#14 0x0812ca5a in load_modules (preload_only=0) at loader.c:1198
#15 0x080895f7 in main (argc=4, argv=0xbf91a3a4) at asterisk.c:4180
(gdb)
#0 __strlen_ia32 () at ../sysdeps/i386/i586/strlen.S:56
#1 0x00c1b4df in _IO_vfprintf_internal (s=0xfffffffe, format=<value
optimized out>, ap=<value optimized out>) at vfprintf.c:1641
#2 0x00c409f0 in _IO_vsnprintf (string=0x835af1c "\374 -- \n======== inside
count_exec == data is at address:[0xbf918b64] data:[nnel)\n", maxlen=<value
optimized out>,
format=0xbf9175c0 "\374 -- \n======== inside count_exec == data is at
address:[%p] data:[%s] ", '=' <repeats 11 times>, "\n",
args=0xbf917724 "d\213\221\277\376\377\377\377\213\261\065\b") at
vsnprintf.c:120
#3 0x081a0f94 in __ast_str_helper (buf=0xbf9176a8, max_len=0, append=0,
fmt=0xbf9175c0 "\374 -- \n======== inside count_exec == data is at address:
[%p] data:[%s] ", '=' <repeats 11 times>, "\n",
ap=0xbf917724 "d\213\221\277\376\377\377\377\213\261\065\b") at strings.c:76
#4 0x081b17d0 in ast_str_set_va (buf=0xbf9176a8, max_len=0,
fmt=0xbf9175c0 "\374 -- \n======== inside count_exec == data is at address:
[%p] data:[%s] ", '=' <repeats 11 times>, "\n",
ap=0xbf917724 "d\213\221\277\376\377\377\377\213\261\065\b") at /usr/src/My-
asterisk/asterisk-11.5.1/include/asterisk/strings.h:803
#5 0x08134a6f in __ast_verbose_ap (file=0xe1ca74 "app_confbridge.c",
line=2453, func=0xe20652 "count_exec", level=3, callid=0x0,
fmt=0xbf9175c0 "\374 -- \n======== inside count_exec == data is at address:
[%p] data:[%s] ", '=' <repeats 11 times>, "\n",
ap=0xbf917724 "d\213\221\277\376\377\377\377\213\261\065\b") at
logger.c:1818
#6 0x08134b0b in __ast_verbose (file=0xe1ca74 "app_confbridge.c", line=2453,
func=0xe20652 "count_exec", level=3,
fmt=0xe1da30 "\n======== inside count_exec == data is at address:[%p] data:
[%s] ", '=' <repeats 11 times>, "\n") at logger.c:1836
#7 0x00e09a45 in count_exec (chan=0xe23c18, data=0xfffffffe <Address
0xfffffffe out of bounds>) at app_confbridge.c:2453
#8 0x080d40eb in __ast_cli_register (e=0xe23c18, ed=0x0) at cli.c:2118
#9 0x080d4459 in ast_cli_register (e=0xe23c18) at cli.c:2178
#10 0x080d4482 in ast_cli_register_multiple (e=0xe237a0, len=13) at
cli.c:2189
#11 0x00e11f7d in load_module () at app_confbridge.c:4771
#12 0x0812ba89 in start_resource (mod=0x87fa908) at loader.c:845
#13 0x0812c45c in load_resource_list (load_order=0xbf918e90,
global_symbols=0, mod_count=0xbf918e88) at loader.c:1045
#14 0x0812ca5a in load_modules (preload_only=0) at loader.c:1198
#15 0x080895f7 in main (argc=4, argv=0xbf91a3a4) at asterisk.c:4180


--
_____________________________________________________________________
-- Bandwidth and Colocation Provided by http://www.api-digital.com --
New to Asterisk? Join us for a live introductory webinar every Thurs:
http://www.asterisk.org/hello

asterisk-users mailing list
To UNSUBSCRIBE or update options visit:
http://lists.digium.com/mailman/listinfo/asterisk-users
Back to top
Display posts from previous:   
Post new topic   Reply to topic    VoIP Mailing List Archives Forum Index -> Asterisk Users All times are GMT - 5 Hours
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


Powered by phpBB © 2001, 2005 phpBB Group

VoiceMeUp - Corporate & Wholesale VoIP Services