summaryrefslogtreecommitdiff
path: root/channels/chan_sip.c
diff options
context:
space:
mode:
authorMark Spencer <markster@digium.com>2004-11-16 23:18:37 +0000
committerMark Spencer <markster@digium.com>2004-11-16 23:18:37 +0000
commit13814b20a1424b4954de7ec42eb9efd8eb67f06a (patch)
treef72c6a9e5aee1ed9a46816a47bbc0312253b8bbc /channels/chan_sip.c
parent6c16e5aa2be3f21141b534e69318a807759e1655 (diff)
Make sure we use new tags for sip register calls (bug #2697)
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@4266 65c4cc65-6c06-0410-ace0-fbb531ad65f3
Diffstat (limited to 'channels/chan_sip.c')
-rwxr-xr-xchannels/chan_sip.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/channels/chan_sip.c b/channels/chan_sip.c
index 3b3931058..3481f84ea 100755
--- a/channels/chan_sip.c
+++ b/channels/chan_sip.c
@@ -4031,8 +4031,11 @@ static int transmit_register(struct sip_registry *r, char *cmd, char *auth, char
if (!auth) {
ast_log(LOG_WARNING, "Already have a call??\n");
return 0;
- } else
+ } else {
p = r->call;
+ p->tag = rand(); /* create a new local tag for every register attempt */
+ p->theirtag[0]='\0'; /* forget their old tag, so we don't match tags when getting response */
+ }
} else {
if (!r->callid_valid) {
build_callid(r->callid, sizeof(r->callid), __ourip, default_fromdomain);