summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichiel van Baak <michiel@vanbaak.info>2009-08-10 18:01:47 +0000
committerMichiel van Baak <michiel@vanbaak.info>2009-08-10 18:01:47 +0000
commit41894bea92b7d2079fd666a3186b84ff92a5e0e5 (patch)
tree8ccb59301b67b972ece5b6e335989b7aa21b737b
parent93b6a46fde2c44d2bd0ca01b9129ce4c3484479e (diff)
add manager events when a skinny device registers/unregisters
like we have in chan_sip (closes issue #15499) Reported by: arifzaman Patches: 2009072600-skinnymanagerevents.diff.txt uploaded by mvanbaak (license 7) git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@211475 65c4cc65-6c06-0410-ace0-fbb531ad65f3
-rw-r--r--channels/chan_skinny.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/channels/chan_skinny.c b/channels/chan_skinny.c
index edaf148d8..86f3a7e3f 100644
--- a/channels/chan_skinny.c
+++ b/channels/chan_skinny.c
@@ -1904,6 +1904,7 @@ static int skinny_register(struct skinny_req *req, struct skinnysession *s)
AST_LIST_TRAVERSE(&d->lines, l, list) {
/* FIXME: All sorts of issues will occur if this line is already connected to a device */
if (l->device) {
+ manager_event(EVENT_FLAG_SYSTEM, "PeerStatus", "ChannelType: Skinny\r\nPeer: Skinny/%s@%s\r\nPeerStatus: Rejected\r\nCause: LINE_ALREADY_CONNECTED\r\n", l->name, l->device->name);
ast_verb(1, "Line %s already connected to %s. Not connecting to %s.\n", l->name, l->device->name, d->name);
} else {
l->device = d;
@@ -1917,6 +1918,7 @@ static int skinny_register(struct skinny_req *req, struct skinnysession *s)
l->instance = instance;
l->newmsgs = ast_app_has_voicemail(l->mailbox, NULL);
set_callforwards(l, NULL, 0);
+ manager_event(EVENT_FLAG_SYSTEM, "PeerStatus", "ChannelType: Skinny\r\nPeer: Skinny/%s@%s\r\nPeerStatus: Registered\r\n", l->name, d->name);
register_exten(l);
/* initialize MWI on line and device */
mwi_event_cb(0, l);
@@ -1956,6 +1958,7 @@ static int skinny_unregister(struct skinny_req *req, struct skinnysession *s)
l->capability = 0;
ast_parse_allow_disallow(&l->prefs, &l->capability, "all", 0);
l->instance = 0;
+ manager_event(EVENT_FLAG_SYSTEM, "PeerStatus", "ChannelType: Skinny\r\nPeer: Skinny/%s@%s\r\nPeerStatus: Unregistered\r\n", l->name, d->name);
unregister_exten(l);
ast_devstate_changed(AST_DEVICE_UNAVAILABLE, "Skinny/%s@%s", l->name, d->name);
}
@@ -7435,6 +7438,7 @@ static int unload_module(void)
if (l->mwi_event_sub)
ast_event_unsubscribe(l->mwi_event_sub);
ast_mutex_unlock(&l->lock);
+ manager_event(EVENT_FLAG_SYSTEM, "PeerStatus", "ChannelType: Skinny\r\nPeer: Skinny/%s@%s\r\nPeerStatus: Unregistered\r\n", l->name, d->name);
unregister_exten(l);
}
if (s->fd > -1)