aboutsummaryrefslogtreecommitdiffstats
path: root/channels
diff options
context:
space:
mode:
authorfile <file@f38db490-d61c-443f-a65b-d21fe96a405b>2008-04-09 16:53:52 +0000
committerfile <file@f38db490-d61c-443f-a65b-d21fe96a405b>2008-04-09 16:53:52 +0000
commite7d8d0906fe889a68eea018fd64dea3fd9194752 (patch)
tree719c940bd9ae0213b8b6f74cfb2cc4d1cfe964e3 /channels
parent39161be32e8e99c10f67cc6792a816280a4a0deb (diff)
Merged revisions 113785 via svnmerge from
https://origsvn.digium.com/svn/asterisk/trunk ................ r113785 | file | 2008-04-09 13:52:04 -0300 (Wed, 09 Apr 2008) | 12 lines Merged revisions 113784 via svnmerge from https://origsvn.digium.com/svn/asterisk/branches/1.4 ........ r113784 | file | 2008-04-09 13:50:45 -0300 (Wed, 09 Apr 2008) | 4 lines If we receive an AUTHREQ from the remote server and we are unable to reply (for example they have a secret configured, but we do not) then queue a hangup frame on the Asterisk channel. This will cause the channel to hangup and a HANGUP to be sent via IAX2 to the remote side which is the proper thing to do in this scenario. (closes issue #12385) Reported by: viraptor ........ ................ git-svn-id: http://svn.digium.com/svn/asterisk/branches/1.6.0@113786 f38db490-d61c-443f-a65b-d21fe96a405b
Diffstat (limited to 'channels')
-rw-r--r--channels/chan_iax2.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/channels/chan_iax2.c b/channels/chan_iax2.c
index 791a8479e..4d1e60bf9 100644
--- a/channels/chan_iax2.c
+++ b/channels/chan_iax2.c
@@ -8633,9 +8633,13 @@ retryowner2:
break;
}
if (authenticate_reply(iaxs[fr->callno], &iaxs[fr->callno]->addr, &ies, iaxs[fr->callno]->secret, iaxs[fr->callno]->outkey)) {
+ struct ast_frame hangup_fr = { .frametype = AST_FRAME_CONTROL,
+ .subclass = AST_CONTROL_HANGUP,
+ };
ast_log(LOG_WARNING,
"I don't know how to authenticate %s to %s\n",
ies.username ? ies.username : "<unknown>", ast_inet_ntoa(iaxs[fr->callno]->addr.sin_addr));
+ iax2_queue_frame(fr->callno, &hangup_fr);
}
if (!iaxs[fr->callno]) {
ast_mutex_unlock(&iaxsl[fr->callno]);