struct unistimsession *s = l->parent->session;
int res;
+ if (!s) {
+ return NULL;
+ }
ast_verb(3, "Starting switch on '%s@%s-%d' to %s\n", l->name, l->parent->name, sub->softkey, s->device->phone_number);
ast_channel_lock(chan);
ast_channel_exten_set(chan, s->device->phone_number);
struct unistim_subchannel *sub = get_sub(pte->device, SUB_REAL);
struct unistim_subchannel *sub_3way = get_sub(pte->device, SUB_THREEWAY);
+ if (!sub) {
+ return;
+ }
if ((keycode >= KEY_0) && (keycode <= KEY_SHARP)) {
if (keycode == KEY_SHARP) {
keycode = '#';
}
switch (keycode) {
case KEY_FUNC1:
- if (ast_channel_state(sub->owner) == AST_STATE_UP) {
+ if (sub->owner && ast_channel_state(sub->owner) == AST_STATE_UP) {
if (sub_3way) {
close_call(pte);
}