[mgcp] Add some parsing for RSIP messages coming in

This will just call a callback and leave all the handling
to the application.
This commit is contained in:
Holger Hans Peter Freyther 2010-03-31 06:39:35 +02:00
parent e7d2ae69c9
commit 9bdcc9ca75
2 changed files with 13 additions and 0 deletions

View File

@ -77,6 +77,7 @@ struct mgcp_config;
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);
typedef int (*mgcp_reset)(struct mgcp_config *cfg);
struct mgcp_config {
int source_port;
@ -97,6 +98,7 @@ struct mgcp_config {
mgcp_change change_cb;
mgcp_policy policy_cb;
mgcp_reset reset_cb;
void *data;
struct mgcp_endpoint *endpoints;

View File

@ -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;