Issue #8409 and accidentally a fix to chan_sip that wasn't supposed to be there
authorOlle Johansson <oej@edvina.net>
Thu, 24 May 2007 14:41:43 +0000 (14:41 +0000)
committerOlle Johansson <oej@edvina.net>
Thu, 24 May 2007 14:41:43 +0000 (14:41 +0000)
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

channels/chan_sip.c
res/res_jabber.c

index 959244b..e17745a 100644 (file)
@@ -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);
index 649e753..d617aa7 100644 (file)
@@ -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);