aboutsummaryrefslogtreecommitdiffstats
path: root/openbsc/src/mgcp
diff options
context:
space:
mode:
authorHolger Hans Peter Freyther <zecke@selfish.org>2010-03-31 06:39:35 +0200
committerHolger Hans Peter Freyther <zecke@selfish.org>2010-03-31 06:39:35 +0200
commit8252b9b947f332692dd1446d277dffde7bcf9bab (patch)
treeeeecdfccabe17a100836cd3ad881a1bb74e38ae1 /openbsc/src/mgcp
parent9fb88021dd580a60a50ab6965ae38093c1189911 (diff)
[mgcp] Add some parsing for RSIP messages coming in
This will just call a callback and leave all the handling to the application.
Diffstat (limited to 'openbsc/src/mgcp')
-rw-r--r--openbsc/src/mgcp/mgcp_protocol.c11
1 files changed, 11 insertions, 0 deletions
diff --git a/openbsc/src/mgcp/mgcp_protocol.c b/openbsc/src/mgcp/mgcp_protocol.c
index 75ccf3928..b9b4659b3 100644
--- a/openbsc/src/mgcp/mgcp_protocol.c
+++ b/openbsc/src/mgcp/mgcp_protocol.c
@@ -98,6 +98,7 @@ static struct msgb *handle_audit_endpoint(struct mgcp_config *cfg, struct msgb *
static struct msgb *handle_create_con(struct mgcp_config *cfg, struct msgb *msg);
static struct msgb *handle_delete_con(struct mgcp_config *cfg, struct msgb *msg);
static struct msgb *handle_modify_con(struct mgcp_config *cfg, struct msgb *msg);
+static struct msgb *handle_rsip(struct mgcp_config *cfg, struct msgb *msg);
static int generate_call_id(struct mgcp_config *cfg)
{
@@ -129,6 +130,9 @@ static const struct mgcp_request mgcp_requests [] = {
MGCP_REQUEST("CRCX", handle_create_con, "CreateConnection")
MGCP_REQUEST("DLCX", handle_delete_con, "DeleteConnection")
MGCP_REQUEST("MDCX", handle_modify_con, "ModifiyConnection")
+
+ /* SPEC extension */
+ MGCP_REQUEST("RSIP", handle_rsip, "ReSetInProgress")
};
static struct msgb *mgcp_msgb_alloc(void)
@@ -655,6 +659,13 @@ error3:
return create_response(error_code, "DLCX", trans_id);
}
+static struct msgb *handle_rsip(struct mgcp_config *cfg, struct msgb *msg)
+{
+ if (cfg->reset_cb)
+ cfg->reset_cb(cfg);
+ return NULL;
+}
+
struct mgcp_config *mgcp_config_alloc(void)
{
struct mgcp_config *cfg;