summaryrefslogtreecommitdiff
path: root/res
diff options
context:
space:
mode:
authorMatthew Jordan <mjordan@digium.com>2013-08-05 19:01:45 +0000
committerMatthew Jordan <mjordan@digium.com>2013-08-05 19:01:45 +0000
commit80c9ad102e9d42f4918a4c33a712e60c24d89507 (patch)
tree05eeebf83d883a865ed2ce62e7f15f81f66073d8 /res
parent8f290b02a892dd283fc79b4999491f40879d65f8 (diff)
Add AMI registration events for PJSIP outbound registration attempts
This patch adds AMI events whenever an outbound registration attempt succeeds or fails from res_pjsip_outbound_registration. This brings it inline with the existing SIP channel driver and IAX channel driver. Review: https://reviewboard.asterisk.org/r/2729/ git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@396201 65c4cc65-6c06-0410-ace0-fbb531ad65f3
Diffstat (limited to 'res')
-rw-r--r--res/res_pjsip_outbound_registration.c11
1 files changed, 11 insertions, 0 deletions
diff --git a/res/res_pjsip_outbound_registration.c b/res/res_pjsip_outbound_registration.c
index c104b3edf..d9c4f2bb5 100644
--- a/res/res_pjsip_outbound_registration.c
+++ b/res/res_pjsip_outbound_registration.c
@@ -31,6 +31,7 @@
#include "asterisk/module.h"
#include "asterisk/taskprocessor.h"
#include "asterisk/cli.h"
+#include "asterisk/stasis_system.h"
/*** DOCUMENTATION
<configInfo name="res_pjsip_outbound_registration" language="en_US">
@@ -121,6 +122,14 @@ enum sip_outbound_registration_status {
SIP_REGISTRATION_STOPPED,
};
+static const char *sip_outbound_registration_status_str[] = {
+ [SIP_REGISTRATION_UNREGISTERED] = "Unregistered",
+ [SIP_REGISTRATION_REGISTERED] = "Registered",
+ [SIP_REGISTRATION_REJECTED_TEMPORARY] = "Rejected",
+ [SIP_REGISTRATION_REJECTED_PERMANENT] = "Rejected",
+ [SIP_REGISTRATION_STOPPED] = "Stopped",
+};
+
/*! \brief Outbound registration client state information (persists for lifetime of regc) */
struct sip_outbound_registration_client_state {
/*! \brief Current status of this registration */
@@ -386,6 +395,8 @@ static int handle_registration_response(void *data)
response->code, server_uri, client_uri);
}
+ ast_system_publish_registry("PJSIP", client_uri, server_uri, sip_outbound_registration_status_str[response->client_state->status], NULL);
+
/* If deferred destruction is in use see if we need to destroy now */
if (response->client_state->destroy) {
handle_client_state_destruction(response->client_state);