From 05cbf8df9b2ea0b41e049698b9f51ee4365ceab0 Mon Sep 17 00:00:00 2001 From: Kevin Harwell Date: Sat, 23 Nov 2013 17:26:57 +0000 Subject: res_pjsip: AMI commands and events. Created the following AMI commands and corresponding events for res_pjsip: PJSIPShowEndpoints - Provides a listing of all pjsip endpoints and a few select attributes on each. Events: EndpointList - for each endpoint a few attributes. EndpointlistComplete - after all endpoints have been listed. PJSIPShowEndpoint - Provides a detail list of attributes for a specified endpoint. Events: EndpointDetail - attributes on an endpoint. AorDetail - raised for each AOR on an endpoint. AuthDetail - raised for each associated inbound and outbound auth TransportDetail - transport attributes. IdentifyDetail - attributes for the identify object associated with the endpoint. EndpointDetailComplete - last event raised after all detail events. PJSIPShowRegistrationsInbound - Provides a detail listing of all inbound registrations. Events: InboundRegistrationDetail - inbound registration attributes for each registration. InboundRegistrationDetailComplete - raised after all detail records have been listed. PJSIPShowRegistrationsOutbound - Provides a detail listing of all outbound registrations. Events: OutboundRegistrationDetail - outbound registration attributes for each registration. OutboundRegistrationDetailComplete - raised after all detail records have been listed. PJSIPShowSubscriptionsInbound - A detail listing of all inbound subscriptions and their attributes. Events: SubscriptionDetail - on each subscription detailed attributes SubscriptionDetailComplete - raised after all detail records have been listed. PJSIPShowSubscriptionsOutbound - A detail listing of all outboundbound subscriptions and their attributes. Events: SubscriptionDetail - on each subscription detailed attributes SubscriptionDetailComplete - raised after all detail records have been listed. (issue ASTERISK-22609) Reported by: Matt Jordan Review: https://reviewboard.asterisk.org/r/2959/ ........ Merged revisions 403131 from http://svn.asterisk.org/svn/asterisk/branches/12 git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@403133 65c4cc65-6c06-0410-ace0-fbb531ad65f3 --- res/res_pjsip_exten_state.c | 13 +++++++++++++ 1 file changed, 13 insertions(+) (limited to 'res/res_pjsip_exten_state.c') diff --git a/res/res_pjsip_exten_state.c b/res/res_pjsip_exten_state.c index 0144e1cbb..f312a522c 100644 --- a/res/res_pjsip_exten_state.c +++ b/res/res_pjsip_exten_state.c @@ -515,6 +515,18 @@ static void subscription_terminated(struct ast_sip_subscription *sub, send_notify(exten_state_sub, NULL, PJSIP_EVSUB_STATE_TERMINATED); } +static void to_ami(struct ast_sip_subscription *sub, + struct ast_str **buf) +{ + struct exten_state_subscription *exten_state_sub = + get_exten_state_sub(sub); + + ast_str_append(buf, 0, "SubscriptionType: extension_state\r\n" + "Extension: %s\r\nExtensionStates: %s\r\n", + exten_state_sub->exten, ast_extension_state2str( + exten_state_sub->last_exten_state)); +} + #define DEFAULT_PRESENCE_BODY "application/pidf+xml" /*! @@ -545,6 +557,7 @@ static struct ast_sip_subscription_handler *create_and_register_handler( handler->resubscribe = resubscribe; handler->subscription_timeout = subscription_timeout; handler->subscription_terminated = subscription_terminated; + handler->to_ami = to_ami; if (ast_sip_register_subscription_handler(handler)) { ast_log(LOG_WARNING, "Unable to register subscription handler %s\n", -- cgit v1.2.3