[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.
This commit is contained in:
parent
b4b135efbf
commit
408cc4ace9
|
@ -97,6 +97,9 @@ struct mgcp_config {
|
|||
char *forward_ip;
|
||||
int forward_port;
|
||||
|
||||
/* spec handling */
|
||||
int force_realloc;
|
||||
|
||||
mgcp_change change_cb;
|
||||
mgcp_policy policy_cb;
|
||||
mgcp_reset reset_cb;
|
||||
|
|
|
@ -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: */
|
||||
|
|
Loading…
Reference in New Issue