diff options
author | bkramer <bkramer@f38db490-d61c-443f-a65b-d21fe96a405b> | 2004-11-30 04:14:27 +0000 |
---|---|---|
committer | bkramer <bkramer@f38db490-d61c-443f-a65b-d21fe96a405b> | 2004-11-30 04:14:27 +0000 |
commit | ad7928056863ea909608808227469c21d969c54b (patch) | |
tree | e7ee84d236cff74a7510906aa327519c0c14ddab /channels/chan_vpb.c | |
parent | e3da9b4485a3e2eef35fa9fa30cdeebd0d3f979b (diff) |
/ added "indication" option, to use Ast indication functions
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@4356 f38db490-d61c-443f-a65b-d21fe96a405b
Diffstat (limited to 'channels/chan_vpb.c')
-rwxr-xr-x | channels/chan_vpb.c | 26 |
1 files changed, 23 insertions, 3 deletions
diff --git a/channels/chan_vpb.c b/channels/chan_vpb.c index da3be5b30..c52afdace 100755 --- a/channels/chan_vpb.c +++ b/channels/chan_vpb.c @@ -138,6 +138,9 @@ static int UseLoopDrop=1; /* To use or not to use Native bridging */ static int UseNativeBridge=1; +/* Use Asterisk Indication or VPB */ +static int use_ast_ind=0; + #define TIMER_PERIOD_RINGBACK 2000 #define TIMER_PERIOD_BUSY 700 @@ -1397,8 +1400,12 @@ static int vpb_fixup(struct ast_channel *oldchan, struct ast_channel *newchan) p->owner = newchan; } - if (newchan->_state == AST_STATE_RINGING) - vpb_indicate(newchan, AST_CONTROL_RINGING); + if (newchan->_state == AST_STATE_RINGING){ + if (use_ast_ind == 1) + ast_indicate(newchan, AST_CONTROL_RINGING); + else + vpb_indicate(newchan, AST_CONTROL_RINGING); + } res= ast_mutex_unlock(&p->lock); /* @@ -2174,7 +2181,8 @@ static struct ast_channel *vpb_new(struct vpb_pvt *me, int state, char *context) tmp->pvt->read = vpb_read; tmp->pvt->write = vpb_write; tmp->pvt->bridge = vpb_bridge; - tmp->pvt->indicate = vpb_indicate; + if (use_ast_ind == 0) + tmp->pvt->indicate = vpb_indicate; tmp->pvt->fixup = vpb_fixup; strncpy(tmp->context, context, sizeof(tmp->context)-1); @@ -2316,6 +2324,18 @@ int load_module() vpb_seterrormode(VPB_ERROR_CODE); ast_mutex_lock(&iflock); { + v = ast_variable_browse(cfg, "general"); + while (v){ + if (strcasecmp(v->name, "cards") == 0) { + ast_log(LOG_NOTICE,"VPB Driver configured to use [%d] cards\n",atoi(v->value)); + } + else if (strcasecmp(v->name, "indication") == 0) { + use_ast_ind = 1; + ast_log(LOG_NOTICE,"VPB driver using Asterisk Indication functions!\n"); + } + v = v->next; + } + v = ast_variable_browse(cfg, "interfaces"); while(v) { /* Create the interface list */ |