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-04-05 22:01:44 +0200
commit9bdcc9ca75a55c5d5bc5b7589e410c39b714c0c3 (patch)
tree758a5eb377283c727541eb293832c6aa4e641c54 /openbsc/src/mgcp
parente7d2ae69c90d3eb27454ca0de8e5db9be34cad40 (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 7ad4e0a1f..b8c011e08 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;