From 6cfe6a550e0d487680a4379bc38896620c731691 Mon Sep 17 00:00:00 2001 From: Olle Johansson Date: Thu, 24 May 2007 14:38:30 +0000 Subject: [PATCH] Issue 8409 - phsultan - Fix "login" as component to jabber server. ...and, by accident, fix a bug in chan_sip for stopping a loop on retransmits of BYE requests. git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@65836 65c4cc65-6c06-0410-ace0-fbb531ad65f3 --- channels/chan_sip.c | 9 ++++++++- res/res_jabber.c | 5 +++-- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/channels/chan_sip.c b/channels/chan_sip.c index e7bb640863..df3f2c8190 100644 --- a/channels/chan_sip.c +++ b/channels/chan_sip.c @@ -1934,7 +1934,14 @@ static int retrans_pkt(void *data) usleep(1); ast_mutex_lock(&pkt->owner->lock); } - if (pkt->owner->owner) { + if (pkt->method == SIP_BYE) { + /* Ok, we're not getting answers on SIP BYE's. Who cares? + let's take the call down anyway. */ + if (pkt->owner->owner) + ast_channel_unlock(pkt->owner->owner); + append_history(pkt->owner, "ByeFailure", "Remote peer doesn't respond to bye. Destroying call anyway."); + ast_set_flag(&pkt->owner->flags[0], SIP_NEEDDESTROY); + } if (pkt->owner->owner) { sip_alreadygone(pkt->owner); ast_log(LOG_WARNING, "Hanging up call %s - no reply to our critical packet.\n", pkt->owner->callid); ast_queue_hangup(pkt->owner->owner); diff --git a/res/res_jabber.c b/res/res_jabber.c index 02312e9c04..faf1a0202a 100644 --- a/res/res_jabber.c +++ b/res/res_jabber.c @@ -1845,12 +1845,13 @@ static int aji_client_initialize(struct aji_client *client) static int aji_component_initialize(struct aji_client *client) { int connected = 1; - connected = iks_connect_via(client->p, client->jid->server, client->port, client->user); + + connected = iks_connect_via(client->p, S_OR(client->serverhost, client->jid->server), client->port, client->user); if (connected == IKS_NET_NOCONN) { ast_log(LOG_ERROR, "JABBER ERROR: No Connection\n"); return IKS_HOOK; } else if (connected == IKS_NET_NODNS) { - ast_log(LOG_ERROR, "JABBER ERROR: No DNS\n"); + ast_log(LOG_ERROR, "JABBER ERROR: No DNS %s for client to %s\n", client->name, S_OR(client->serverhost, client->jid->server)); return IKS_HOOK; } else if (!connected) iks_recv(client->p, 30);