diff options
author | Holger Hans Peter Freyther <zecke@selfish.org> | 2010-04-07 10:51:27 +0200 |
---|---|---|
committer | Holger Hans Peter Freyther <zecke@selfish.org> | 2010-04-07 22:52:25 +0200 |
commit | 408cc4ace99a9163136af601549a5d1b67a168c7 (patch) | |
tree | 7457aa49ef0c944ecc8fc4feb4c9e32a9f6d6a0f /openbsc/src | |
parent | b4b135efbf17f81a3faccb488ca35a5086adc618 (diff) |
[mgcp] Add an option to allow using reallocing an endpoint
For some mode of operation it can be acceptable to reallocate
an already allocated endpoint. This can be the case when we
only deal with one call agent that is keeping track of the
endpoint but slightly confused.
Diffstat (limited to 'openbsc/src')
-rw-r--r-- | openbsc/src/mgcp/mgcp_protocol.c | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/openbsc/src/mgcp/mgcp_protocol.c b/openbsc/src/mgcp/mgcp_protocol.c index 7c8b460fa..76eb7c2a0 100644 --- a/openbsc/src/mgcp/mgcp_protocol.c +++ b/openbsc/src/mgcp/mgcp_protocol.c @@ -386,8 +386,14 @@ static struct msgb *handle_create_con(struct mgcp_config *cfg, struct msgb *msg) return create_response(500, "CRCX", trans_id); if (endp->ci != CI_UNUSED) { - LOGP(DMGCP, LOGL_ERROR, "Endpoint is already used. 0x%x\n", ENDPOINT_NUMBER(endp)); - return create_response(500, "CRCX", trans_id); + if (cfg->force_realloc) { + LOGP(DMGCP, LOGL_NOTICE, "Endpoint 0x%x already allocated. Forcing realloc.\n", + ENDPOINT_NUMBER(endp)); + } else { + LOGP(DMGCP, LOGL_ERROR, "Endpoint is already used. 0x%x\n", + ENDPOINT_NUMBER(endp)); + return create_response(500, "CRCX", trans_id); + } } /* parse CallID C: and LocalParameters L: */ |