Make sure we really have a bridged channel (bug #2963)
[asterisk/asterisk.git] / channels / chan_zap.c
index 6227dd0..0c40742 100755 (executable)
@@ -5174,9 +5174,11 @@ static void *ss_thread(void *data)
                                        p->subs[SUB_THREEWAY].owner;
                                struct zt_pvt *pbridge = NULL;
                                  /* set up the private struct of the bridged one, if any */
-                               if (nbridge && ast_bridged_channel(nbridge)) pbridge = ast_bridged_channel(nbridge)->pvt->pvt;
-                               if (nbridge && 
-                                   (!strcmp(nbridge->type,"Zap")) &&
+                               if (nbridge && ast_bridged_channel(nbridge)) 
+                                       pbridge = ast_bridged_channel(nbridge)->pvt->pvt;
+                               if (nbridge && pbridge && 
+                                   (!strcmp(nbridge->type,"Zap")) && 
+                                       (!strcmp(ast_bridged_channel(nbridge)->type, "Zap")) &&
                                    ISTRUNK(pbridge)) {
                                        int func = ZT_FLASH;
                                        /* Clear out the dial buffer */