Index: channels/chan_skinny.c =================================================================== --- channels/chan_skinny.c (revision 247762) +++ channels/chan_skinny.c (working copy) @@ -4890,17 +4920,21 @@ if ((sub && sub->owner) && (sub->owner->_state == AST_STATE_UP)){ c = sub->owner; - if (!ast_masq_park_call(ast_bridged_channel(c), c, 0, &extout)) { - snprintf(message, sizeof(message), "Call Parked at: %d", extout); - transmit_displaynotify(d, message, 10); + if (ast_bridged_channel(c)) { + if (!ast_masq_park_call(ast_bridged_channel(c), c, 0, &extout)) { + snprintf(message, sizeof(message), "Call Parked at: %d", extout); + transmit_displaynotify(d, message, 10); + } else { + transmit_displaynotify(d, "Call Park failed", 10); + } } else { - transmit_displaynotify(d, "Call Park failed", 10); + transmit_displaynotify(d, "Call Park not available", 10); } } else { transmit_displaynotify(d, "Call Park not available", 10); } + break; } - break; case STIMULUS_DND: if (skinnydebug) ast_verb(1, "Received Stimulus: DND (%d/%d)\n", instance, callreference); @@ -5980,12 +6033,15 @@ if ((sub && sub->owner) && (sub->owner->_state == AST_STATE_UP)){ c = sub->owner; - if (!ast_masq_park_call(ast_bridged_channel(c), c, 0, &extout)) { - snprintf(message, sizeof(message), "Call Parked at: %d", extout); - transmit_displaynotify(d, message, 10); + if (ast_bridged_channel(c)) { + if (!ast_masq_park_call(ast_bridged_channel(c), c, 0, &extout)) { + snprintf(message, sizeof(message), "Call Parked at: %d", extout); + transmit_displaynotify(d, message, 10); + } else { + transmit_displaynotify(d, "Call Park failed", 10); + } } else { - transmit_displaynotify(d, "Call Park failed", 10); - } + transmit_displaynotify(d, "Call Park not available", 10); } } else { transmit_displaynotify(d, "Call Park not available", 10); }