diff options
author | mvanbaak <mvanbaak@f38db490-d61c-443f-a65b-d21fe96a405b> | 2009-08-10 18:01:47 +0000 |
---|---|---|
committer | mvanbaak <mvanbaak@f38db490-d61c-443f-a65b-d21fe96a405b> | 2009-08-10 18:01:47 +0000 |
commit | 4548c33d84f71a04a0416a26b9f0dea0ae061cc4 (patch) | |
tree | 8ccb59301b67b972ece5b6e335989b7aa21b737b | |
parent | baf55cdd428ba0054cfa1934d3547159091d2d49 (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: http://svn.digium.com/svn/asterisk/trunk@211475 f38db490-d61c-443f-a65b-d21fe96a405b
-rw-r--r-- | channels/chan_skinny.c | 4 |
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) |