|
|
|
@ -1000,6 +1000,34 @@ static void channel_flash_cb(void *data, struct stasis_subscription *sub,
|
|
|
|
|
ast_free(channel_event_string);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
static void channel_wink_cb(void *data, struct stasis_subscription *sub,
|
|
|
|
|
struct stasis_message *message)
|
|
|
|
|
{
|
|
|
|
|
struct ast_channel_blob *obj = stasis_message_data(message);
|
|
|
|
|
struct ast_str *channel_event_string;
|
|
|
|
|
|
|
|
|
|
channel_event_string = ast_manager_build_channel_state_string(obj->snapshot);
|
|
|
|
|
if (!channel_event_string) {
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/*** DOCUMENTATION
|
|
|
|
|
<managerEvent language="en_US" name="Wink">
|
|
|
|
|
<managerEventInstance class="EVENT_FLAG_CALL">
|
|
|
|
|
<synopsis>Raised when a wink occurs on a channel.</synopsis>
|
|
|
|
|
<syntax>
|
|
|
|
|
<channel_snapshot/>
|
|
|
|
|
</syntax>
|
|
|
|
|
</managerEventInstance>
|
|
|
|
|
</managerEvent>
|
|
|
|
|
***/
|
|
|
|
|
manager_event(EVENT_FLAG_CALL, "Wink",
|
|
|
|
|
"%s",
|
|
|
|
|
ast_str_buffer(channel_event_string));
|
|
|
|
|
|
|
|
|
|
ast_free(channel_event_string);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
static void channel_hangup_handler_cb(void *data, struct stasis_subscription *sub,
|
|
|
|
|
struct stasis_message *message)
|
|
|
|
|
{
|
|
|
|
@ -1362,6 +1390,9 @@ int manager_channels_init(void)
|
|
|
|
|
ret |= stasis_message_router_add(message_router,
|
|
|
|
|
ast_channel_flash_type(), channel_flash_cb, NULL);
|
|
|
|
|
|
|
|
|
|
ret |= stasis_message_router_add(message_router,
|
|
|
|
|
ast_channel_wink_type(), channel_wink_cb, NULL);
|
|
|
|
|
|
|
|
|
|
ret |= stasis_message_router_add(message_router,
|
|
|
|
|
ast_channel_hangup_request_type(), channel_hangup_request_cb,
|
|
|
|
|
NULL);
|
|
|
|
|