diff --git a/channels/sig_pri.c b/channels/sig_pri.c index 284b81020610ceed3eec9d43efc0e712c8fefdb0..e542ad1443bea462e517d82c9cdc633e51a2594b 100644 --- a/channels/sig_pri.c +++ b/channels/sig_pri.c @@ -1191,14 +1191,15 @@ static int pri_find_pri_call(struct sig_pri_pri *pri, q931_call *call) } #endif /* defined(HAVE_PRI_CALL_HOLD) */ -static void *do_idle_thread(void *vchan) +static void *do_idle_thread(void *v_pvt) { - struct ast_channel *chan = vchan; - struct sig_pri_chan *pvt = chan->tech_pvt; + struct sig_pri_chan *pvt = v_pvt; + struct ast_channel *chan = pvt->owner; struct ast_frame *f; char ex[80]; /* Wait up to 30 seconds for an answer */ int newms, ms = 30000; + ast_verb(3, "Initiating idle call on channel %s\n", chan->name); snprintf(ex, sizeof(ex), "%d/%s", pvt->channel, pvt->pri->idledial); if (ast_call(chan, ex, 0)) { @@ -1966,7 +1967,7 @@ static void *pri_dchannel(void *vpri) idle = sig_pri_request(pri->pvts[nextidle], AST_FORMAT_ULAW, NULL, 0); if (idle) { pri->pvts[nextidle]->isidlecall = 1; - if (ast_pthread_create_background(&p, NULL, do_idle_thread, idle)) { + if (ast_pthread_create_background(&p, NULL, do_idle_thread, pri->pvts[nextidle])) { ast_log(LOG_WARNING, "Unable to start new thread for idle channel '%s'\n", idle->name); ast_hangup(idle); }