From: Richard Mudgett Date: Tue, 28 Jun 2011 17:30:16 +0000 (+0000) Subject: Use the device name and not the channel name to initialize the device state. X-Git-Tag: 1.8.5-rc1~7^2~5 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=3f8e7397103ccb2c370a9cebc5f3c0dddedafb55;p=thirdparty%2Fasterisk.git Use the device name and not the channel name to initialize the device state. Correct ASTERISK-11323 implementation as I don't see how it ever worked as claimed when it used the channel name and not the device name. (issue ASTERISK-11323) git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@325212 65c4cc65-6c06-0410-ace0-fbb531ad65f3 --- diff --git a/channels/chan_dahdi.c b/channels/chan_dahdi.c index 4de5e42052..be17e1d324 100644 --- a/channels/chan_dahdi.c +++ b/channels/chan_dahdi.c @@ -9409,6 +9409,8 @@ static struct ast_channel *dahdi_new(struct dahdi_pvt *i, int state, int startpb int features; struct ast_str *chan_name; struct ast_variable *v; + char *dashptr; + char device_name[AST_CHANNEL_NAME]; if (i->subs[idx].owner) { ast_log(LOG_WARNING, "Channel %d already has a %s call\n", i->channel,subnames[idx]); @@ -9589,7 +9591,13 @@ static struct ast_channel *dahdi_new(struct dahdi_pvt *i, int state, int startpb /* Configure the new channel jb */ ast_jb_configure(tmp, &global_jbconf); - ast_devstate_changed_literal(ast_state_chan2dev(state), tmp->name); + /* Set initial device state */ + ast_copy_string(device_name, tmp->name, sizeof(device_name)); + dashptr = strrchr(device_name, '-'); + if (dashptr) { + *dashptr = '\0'; + } + ast_devstate_changed_literal(AST_DEVICE_UNKNOWN, device_name); for (v = i->vars ; v ; v = v->next) pbx_builtin_setvar_helper(tmp, v->name, v->value);