aboutsummaryrefslogtreecommitdiffstats
path: root/openbsc/include
diff options
context:
space:
mode:
authorHolger Hans Peter Freyther <zecke@selfish.org>2010-02-26 13:37:05 +0100
committerHolger Hans Peter Freyther <zecke@selfish.org>2010-02-26 13:37:05 +0100
commitfe86d3c9f8a229a788a863d1855c9e3d616b04ea (patch)
tree54a506c9d80ddccd50b734a89b70848bc95bd38e /openbsc/include
parenta820c5f89d0ea3a7aefd1621d9bf1c9c5a25e8eb (diff)
[mgcp] Introduce a policy CB for the MGCP protocol
The are three policies. Accept, Reject and Defer. This will allow to handle network connections and such from the policy callback instead of directly acting on it.
Diffstat (limited to 'openbsc/include')
-rw-r--r--openbsc/include/openbsc/mgcp.h13
1 files changed, 13 insertions, 0 deletions
diff --git a/openbsc/include/openbsc/mgcp.h b/openbsc/include/openbsc/mgcp.h
index fcc4d76ef..004ae7899 100644
--- a/openbsc/include/openbsc/mgcp.h
+++ b/openbsc/include/openbsc/mgcp.h
@@ -65,7 +65,18 @@ struct mgcp_config;
#define MGCP_ENDP_DLCX 2
#define MGCP_ENDP_MDCX 3
+/*
+ * what to do with the msg?
+ * - continue as usual?
+ * - reject and send a failure code?
+ * - defer? do not send anything
+ */
+#define MGCP_POLICY_CONT 4
+#define MGCP_POLICY_REJECT 5
+#define MGCP_POLICY_DEFER 6
+
typedef int (*mgcp_change)(struct mgcp_config *cfg, int endpoint, int state, int local_rtp);
+typedef int (*mgcp_policy)(struct mgcp_config *cfg, int endpoint, int state, const char *transactio_id);
struct mgcp_config {
int source_port;
@@ -85,6 +96,8 @@ struct mgcp_config {
int forward_port;
mgcp_change change_cb;
+ mgcp_policy policy_cb;
+ void *data;
struct mgcp_endpoint *endpoints;
unsigned int last_call_id;