Newer
Older
struct analog_pvt *new_pvt = newp;
int x;
ast_debug(1, "New owner for channel %d is %s\n", new_pvt->channel, ast_channel_name(newchan));
if (new_pvt->owner == oldchan) {
analog_set_new_owner(new_pvt, newchan);
for (x = 0; x < 3; x++) {
if (new_pvt->subs[x].owner == oldchan) {
new_pvt->subs[x].owner = newchan;
}
analog_update_conf(new_pvt);
return 0;
}
int analog_dnd(struct analog_pvt *p, int flag)
{
if (flag == -1) {
return p->dnd;
}
p->dnd = flag;
ast_verb(3, "%s DND on channel %d\n",
flag ? "Enabled" : "Disabled",
p->channel);
/*** DOCUMENTATION
<managerEventInstance>
<synopsis>Raised when the Do Not Disturb state is changed on an Analog channel.</synopsis>
<syntax>
<parameter name="Status">
<enumlist>
<enum name="enabled"/>
<enum name="disabled"/>
</enumlist>
</parameter>
</syntax>
</managerEventInstance>
***/
manager_event(EVENT_FLAG_SYSTEM, "DNDState",
"Channel: DAHDI/%d\r\n"
"Status: %s\r\n", p->channel,
flag ? "enabled" : "disabled");
return 0;
}