summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorOlle Johansson <oej@edvina.net>2007-05-24 14:41:43 +0000
committerOlle Johansson <oej@edvina.net>2007-05-24 14:41:43 +0000
commit9b95428ccecf401cf6895f06d2ccdcec5e9588af (patch)
tree2ef234321bbf27d4a313749a99b180af5adb0fbd
parent0ec502099f9561e5bc36687f630df254e66a0d77 (diff)
Issue #8409 and accidentally a fix to chan_sip that wasn't supposed to be there
but is still ok... Sorry. Lack of Tea, really. git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@65838 65c4cc65-6c06-0410-ace0-fbb531ad65f3
-rw-r--r--channels/chan_sip.c9
-rw-r--r--res/res_jabber.c5
2 files changed, 11 insertions, 3 deletions
diff --git a/channels/chan_sip.c b/channels/chan_sip.c
index 959244b5d..e17745a09 100644
--- a/channels/chan_sip.c
+++ b/channels/chan_sip.c
@@ -2096,7 +2096,14 @@ static int retrans_pkt(void *data)
usleep(1);
sip_pvt_lock(pkt->owner);
}
- 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 649e7534c..d617aa76a 100644
--- a/res/res_jabber.c
+++ b/res/res_jabber.c
@@ -1853,12 +1853,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);