From 48647bfc086b463c38fa247e31b9831eab42440b Mon Sep 17 00:00:00 2001 From: Mark Spencer <markster@digium.com> Date: Mon, 12 May 2003 16:16:33 +0000 Subject: [PATCH] Make canreinvite globally applicable git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@1003 65c4cc65-6c06-0410-ace0-fbb531ad65f3 --- channels/chan_sip.c | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/channels/chan_sip.c b/channels/chan_sip.c index b4b391f7e2..35ae95ca77 100755 --- a/channels/chan_sip.c +++ b/channels/chan_sip.c @@ -351,6 +351,8 @@ static struct sip_registry *registrations; static int sipsock = -1; static int globalnat = 0; +static int globalcanreinvite = REINVITE_INVITE; + static struct sockaddr_in bindaddr; @@ -1288,7 +1290,7 @@ static struct sip_pvt *sip_alloc(char *callid, struct sockaddr_in *sin, int useg else strncpy(p->callid, callid, sizeof(p->callid) - 1); /* Assume reinvite OK and via INVITE */ - p->canreinvite = REINVITE_INVITE; + p->canreinvite = globalcanreinvite; p->dtmfmode = globaldtmfmode; if (p->dtmfmode & SIP_DTMF_RFC2833) p->noncodeccapability |= AST_RTP_DTMF; @@ -5059,6 +5061,7 @@ static int reload_config(void) strncpy(context, "default", sizeof(context) - 1); strcpy(language, ""); strcpy(fromdomain, ""); + globalcanreinvite = REINVITE_INVITE; v = ast_variable_browse(cfg, "general"); while(v) { /* Create the interface list */ @@ -5085,6 +5088,11 @@ static int reload_config(void) strncpy(fromdomain, v->value, sizeof(fromdomain)-1); } else if (!strcasecmp(v->name, "nat")) { globalnat = ast_true(v->value); + } else if (!strcasecmp(v->name, "canreinvite")) { + if (!strcasecmp(v->value, "update")) + globalcanreinvite = REINVITE_UPDATE; + else + globalcanreinvite = ast_true(v->value); } else if (!strcasecmp(v->name, "maxexpirey") || !strcasecmp(v->name, "maxexpiry")) { max_expiry = atoi(v->value); if (max_expiry < 1) -- GitLab