[svn-commits] nadi: branch group/trunk-cm-csel-hash r47745 - /team/group/trunk-cm-csel-hash...

svn-commits at lists.digium.com svn-commits at lists.digium.com
Thu Nov 16 09:55:00 MST 2006


Author: nadi
Date: Thu Nov 16 10:55:00 2006
New Revision: 47745

URL: http://svn.digium.com/view/asterisk?view=rev&rev=47745
Log:
misdn_ch -> misdn_pvt

Modified:
    team/group/trunk-cm-csel-hash/channels/chan_misdn.c

Modified: team/group/trunk-cm-csel-hash/channels/chan_misdn.c
URL: http://svn.digium.com/view/asterisk/team/group/trunk-cm-csel-hash/channels/chan_misdn.c?view=diff&rev=47745&r1=47744&r2=47745
==============================================================================
--- team/group/trunk-cm-csel-hash/channels/chan_misdn.c (original)
+++ team/group/trunk-cm-csel-hash/channels/chan_misdn.c Thu Nov 16 10:55:00 2006
@@ -161,7 +161,7 @@
 	enum event_log_elements additional;
 };
 
-struct misdn_ch {
+struct misdn_pvt {
 	struct statemachine *sm;
 	
 	char allowed_bearers[BUFFERSIZE];
@@ -205,12 +205,12 @@
 	char context[BUFFERSIZE];
 	int dropped_frame_cnt;
 	int other_pid;
-	struct misdn_ch *other_ch;
+	struct misdn_pvt *other_pvt;
 	const struct tone_zone_sound *ts;
 
 	int destroy_me;
 
-	AST_RWLIST_ENTRY(misdn_ch) next;
+	AST_RWLIST_ENTRY(misdn_pvt) next;
 };
 
 struct allowed_bearer {
@@ -247,7 +247,7 @@
 static int                    g_config_initialized = 0;
 static int                    glob_channel = 0;
 
-static AST_RWLIST_HEAD_STATIC(ch_list, misdn_ch);
+static AST_RWLIST_HEAD_STATIC(pvt_list, misdn_pvt);
 
 static char                ** misdn_key_vector = NULL;
 static int                    misdn_key_vector_size = 0;
@@ -428,7 +428,7 @@
 			"\tinstead." },
 	{ "senddtmf", "no",
 		"Enable this if we should produce DTMF Tones ourselves." },
-	{ "hold_allowed", "no",
+	{ "hold_allowed", "yes",
 		"Enable this to have support for hold and retrieve." },
 	{ "early_bconnect", "yes",
 		"Disable this if you don't mind correct handling of Progress Indicators." },
@@ -667,30 +667,30 @@
 }
 
 /* Statemachine */
-static struct statemachine_handle_retval handle_aevent_hangup (void *p, int state, int event);
-static struct statemachine_handle_retval handle_mevent_setup (void *p, int state, int event);
-static struct statemachine_handle_retval handle_mevent_setup_followup (void *p, int state, int event);
-static struct statemachine_handle_retval handle_mevent_information (void *p, int state, int event);
-static struct statemachine_handle_retval handle_mevent_information_dtmf (void *p, int state, int event);
-static struct statemachine_handle_retval handle_mevent_setup_acknowledge (void *p, int state, int event);
-static struct statemachine_handle_retval handle_mevent_connect (void *p, int state, int event);
-static struct statemachine_handle_retval handle_mevent_disconnect (void *p, int state, int event);
-static struct statemachine_handle_retval handle_mevent_proceeding_progress (void *p, int state, int event);
-static struct statemachine_handle_retval handle_mevent_port_alarm (void *p, int state, int event);
-static struct statemachine_handle_retval handle_mevent_new_channel (void *p, int state, int event);
-static struct statemachine_handle_retval handle_mevent_new_l3id (void *p, int state, int event);
-static struct statemachine_handle_retval handle_mevent_dtmf_tone (void *p, int state, int event);
-static struct statemachine_handle_retval handle_mevent_alerting (void *p, int state, int event);
-static struct statemachine_handle_retval handle_mevent_connect_acknowledge (void *p, int state, int event);
-static struct statemachine_handle_retval handle_mevent_release (void *p, int state, int event);
-static struct statemachine_handle_retval handle_mevent_release_complete (void *p, int state, int event);
-static struct statemachine_handle_retval handle_mevent_cleanup (void *p, int state, int event);
-static struct statemachine_handle_retval handle_mevent_facility (void *p, int state, int event);
-static struct statemachine_handle_retval handle_mevent_retrieve (void *p, int state, int event);
-static struct statemachine_handle_retval handle_mevent_restart (void *p, int state, int event);
-static struct statemachine_handle_retval handle_mevent_hold (void *p, int state, int event);
-static struct statemachine_handle_retval handle_mevent_timeout_1 (void *p, int state, int event);
-static struct statemachine_handle_retval handle_mevent_timeout_2 (void *p, int state, int event);
+static struct statemachine_handle_retval handle_aevent_hangup (void *pvt, int state, int event);
+static struct statemachine_handle_retval handle_mevent_setup (void *pvt, int state, int event);
+static struct statemachine_handle_retval handle_mevent_setup_followup (void *pvt, int state, int event);
+static struct statemachine_handle_retval handle_mevent_information (void *pvt, int state, int event);
+static struct statemachine_handle_retval handle_mevent_information_dtmf (void *pvt, int state, int event);
+static struct statemachine_handle_retval handle_mevent_setup_acknowledge (void *pvt, int state, int event);
+static struct statemachine_handle_retval handle_mevent_connect (void *pvt, int state, int event);
+static struct statemachine_handle_retval handle_mevent_disconnect (void *pvt, int state, int event);
+static struct statemachine_handle_retval handle_mevent_proceeding_progress (void *pvt, int state, int event);
+static struct statemachine_handle_retval handle_mevent_port_alarm (void *pvt, int state, int event);
+static struct statemachine_handle_retval handle_mevent_new_channel (void *pvt, int state, int event);
+static struct statemachine_handle_retval handle_mevent_new_l3id (void *pvt, int state, int event);
+static struct statemachine_handle_retval handle_mevent_dtmf_tone (void *pvt, int state, int event);
+static struct statemachine_handle_retval handle_mevent_alerting (void *pvt, int state, int event);
+static struct statemachine_handle_retval handle_mevent_connect_acknowledge (void *pvt, int state, int event);
+static struct statemachine_handle_retval handle_mevent_release (void *pvt, int state, int event);
+static struct statemachine_handle_retval handle_mevent_release_complete (void *pvt, int state, int event);
+static struct statemachine_handle_retval handle_mevent_cleanup (void *pvt, int state, int event);
+static struct statemachine_handle_retval handle_mevent_facility (void *pvt, int state, int event);
+static struct statemachine_handle_retval handle_mevent_retrieve (void *pvt, int state, int event);
+static struct statemachine_handle_retval handle_mevent_restart (void *pvt, int state, int event);
+static struct statemachine_handle_retval handle_mevent_hold (void *pvt, int state, int event);
+static struct statemachine_handle_retval handle_mevent_timeout_1 (void *pvt, int state, int event);
+static struct statemachine_handle_retval handle_mevent_timeout_2 (void *pvt, int state, int event);
 
 static struct statemachine_transition misdn_state_table[] = {
 	/*
@@ -878,7 +878,7 @@
 	return misdn_chan_states[state];
 }
 
-static inline void event_info_string (char *buf, int bufsize, struct misdn_ch *ch, int *elems, int num)
+static inline void event_info_string (char *buf, int bufsize, struct misdn_pvt *p, int *elems, int num)
 {
 	int first = 0;
 	char tmpbuf[256];
@@ -896,37 +896,37 @@
 			return; \
 	}
 
-	IF_INFO(L_PID, "pid:%d", ch->bc->pid);
-	IF_INFO(L_CHANNEL, "ch:%d", ch->bc->channel);
-	IF_INFO(L_OAD, "oad:%s", ch->bc->oad);
-	IF_INFO(L_DAD, "dad:%s", ch->bc->dad);
-	IF_INFO(L_CAD, "cad:%s", ch->bc->cad);
-	IF_INFO(L_RAD, "rad:%s", ch->bc->rad);
-	IF_INFO(L_MODE, "mode:%s", ch->bc->nt ? "nt" : "te");
-	IF_INFO(L_CAUSE, "cause:%d", ch->bc->cause);
-	IF_INFO(L_OCAUSE, "out_cause:%d", ch->bc->out_cause);
-	IF_INFO(L_DNUMPLAN, "dnumplan:%d", ch->bc->dnumplan);
-	IF_INFO(L_RNUMPLAN, "rnumplan:%d", ch->bc->rnumplan);
-	IF_INFO(L_CPNNUMPLAN, "cpnnumplan:%d", ch->bc->cpnnumplan);
-	IF_INFO(L_INFODAD, "infodad:%s", ch->bc->info_dad);
-	IF_INFO(L_PRES, "pres:%d", ch->bc->pres);
-	IF_INFO(L_SCREEN, "screen:%d", ch->bc->screen);
-	IF_INFO(L_STATE, "state:%s", get_state_string(statemachine_get_state(ch->sm)));
-	IF_INFO(L_BCSTATE, "bc_state:%s", bc_state2str(ch->bc->bc_state));
-	IF_INFO(L_CONTEXT, "ctx:%s", ch->context);
-}
-
-static void log_event (void *p, int direction, int state, int event)
-{
-	struct misdn_ch *ch = p;
+	IF_INFO(L_PID, "pid:%d", p->bc->pid);
+	IF_INFO(L_CHANNEL, "ch:%d", p->bc->channel);
+	IF_INFO(L_OAD, "oad:%s", p->bc->oad);
+	IF_INFO(L_DAD, "dad:%s", p->bc->dad);
+	IF_INFO(L_CAD, "cad:%s", p->bc->cad);
+	IF_INFO(L_RAD, "rad:%s", p->bc->rad);
+	IF_INFO(L_MODE, "mode:%s", p->bc->nt ? "nt" : "te");
+	IF_INFO(L_CAUSE, "cause:%d", p->bc->cause);
+	IF_INFO(L_OCAUSE, "out_cause:%d", p->bc->out_cause);
+	IF_INFO(L_DNUMPLAN, "dnumplan:%d", p->bc->dnumplan);
+	IF_INFO(L_RNUMPLAN, "rnumplan:%d", p->bc->rnumplan);
+	IF_INFO(L_CPNNUMPLAN, "cpnnumplan:%d", p->bc->cpnnumplan);
+	IF_INFO(L_INFODAD, "infodad:%s", p->bc->info_dad);
+	IF_INFO(L_PRES, "pres:%d", p->bc->pres);
+	IF_INFO(L_SCREEN, "screen:%d", p->bc->screen);
+	IF_INFO(L_STATE, "state:%s", get_state_string(statemachine_get_state(p->sm)));
+	IF_INFO(L_BCSTATE, "bc_state:%s", bc_state2str(p->bc->bc_state));
+	IF_INFO(L_CONTEXT, "ctx:%s", p->context);
+}
+
+static void log_event (void *pvt, int direction, int state, int event)
+{
+	struct misdn_pvt *p = pvt;
 	const struct event_log_info *info = get_event_info(event);
 	int elems;
 	char buf[1024] = "";
 
 	elems = info->elements;
 	if (elems)
-		event_info_string(buf, sizeof(buf), ch, &elems, 7);
-	chan_misdn_log(1, ch->bc->port, "%c%s %s%s%s%s",
+		event_info_string(buf, sizeof(buf), p, &elems, 7);
+	chan_misdn_log(1, p->bc->port, "%c%s %s%s%s%s",
 				   event > EVENT_NOTHING && event < EVENT_UNKNOWN ? 'I' : '*',
 				   direction == LOG_RECEIVE ? "->" : "<-",
 				   info->name,
@@ -937,15 +937,15 @@
 	elems = info->additional;
 	while (elems) {
 		*buf = 0;
-		event_info_string(buf, sizeof(buf), ch, &elems, 3);
-		chan_misdn_log(1, ch->bc->port, "      %s\n", buf);
-	}
-}
-
-static int send_event (void *p, int event)
-{
-	struct misdn_ch *ch = p;
-	struct misdn_bchannel *bc = ch->bc;
+		event_info_string(buf, sizeof(buf), p, &elems, 3);
+		chan_misdn_log(1, p->bc->port, "      %s\n", buf);
+	}
+}
+
+static int send_event (void *pvt, int event)
+{
+	struct misdn_pvt *p = pvt;
+	struct misdn_bchannel *bc = p->bc;
 	int re = 0;
 
 	if (event > EVENT_NOTHING && event < EVENT_UNKNOWN) {
@@ -953,24 +953,22 @@
 		if (event == EVENT_HOLD_ACKNOWLEDGE) {
 			/* XXX find a better place for this */
 			/* forget the channel now */
-			ch->bc = NULL;
-			ch->hold_info.port = bc->port;
-			ch->hold_info.channel = bc->channel;
+			p->bc = NULL;
 		}
 	} else {
 		switch (event) {
 		case AEVENT_CPROCEEDING:
-			ast_queue_control(ch->ast, AST_CONTROL_PROCEEDING);
+			ast_queue_control(p->ast, AST_CONTROL_PROCEEDING);
 			break;
 		case AEVENT_CPROGRESS:
-			ast_queue_control(ch->ast, AST_CONTROL_PROGRESS);
+			ast_queue_control(p->ast, AST_CONTROL_PROGRESS);
 			break;
 		case AEVENT_CRINGING:
-			ast_queue_control(ch->ast, AST_CONTROL_RINGING);
-			ast_setstate(ch->ast, AST_STATE_RINGING);
+			ast_queue_control(p->ast, AST_CONTROL_RINGING);
+			ast_setstate(p->ast, AST_STATE_RINGING);
 			break;
 		case AEVENT_CANSWER:
-			ast_queue_control(ch->ast, AST_CONTROL_ANSWER);
+			ast_queue_control(p->ast, AST_CONTROL_ANSWER);
 			break;
 		default:
 			re = -1;
@@ -1060,140 +1058,140 @@
 	AST_HASH_DESTROY(&group_csel_hash);
 }
 
-/* misdn_ch Helper */
-static struct misdn_ch * misdn_ch_init (int orig)
-{
-	struct misdn_ch *ch = calloc(1, sizeof(struct misdn_ch));
-
-	if (!ch) {
+/* misdn_pvt Helper */
+static struct misdn_pvt * misdn_pvt_init (int orig)
+{
+	struct misdn_pvt *p = calloc(1, sizeof(struct misdn_pvt));
+
+	if (!p) {
 		chan_misdn_log(-1, 0, "misdn_request: malloc failed!");
 		return NULL;
 	}
 
-	ch->sm = statemachine_create(ch, MISDN_NOTHING, misdn_state_table,
-								 sizeof(misdn_state_table) / sizeof(struct statemachine_transition),
-								 send_event,
-								 log_event);
-	ch->orginator = orig;
-	ch->need_queue_hangup = 1;
-	ch->need_hangup = 1;
-	ch->need_busy = 1;
-	ch->overlap_dial_task = -1;
-
-	return ch;
-}
-
-static void misdn_ch_queue (struct misdn_ch *chan)
-{
-	AST_RWLIST_WRLOCK(&ch_list);
-	AST_RWLIST_INSERT_TAIL(&ch_list, chan, next);
-	AST_RWLIST_UNLOCK(&ch_list);
-}
-
-static void misdn_ch_dequeue (struct misdn_ch *chan) 
-{
-	if (chan->dsp) 
-		ast_dsp_free(chan->dsp);
-
-	if (chan->trans)
-		ast_translator_free_path(chan->trans);
-
-	AST_RWLIST_WRLOCK(&ch_list);
-	AST_RWLIST_REMOVE(&ch_list, chan, next);
-	AST_RWLIST_UNLOCK(&ch_list);
-}
-
-static struct misdn_ch * misdn_ch_by_bc (struct misdn_bchannel *bc)
-{
-	struct misdn_ch *ch;
-
-	AST_RWLIST_RDLOCK(&ch_list);
-	AST_RWLIST_TRAVERSE(&ch_list, ch, next) {
-		if (ch->bc == bc)
+	p->sm = statemachine_create(p, MISDN_NOTHING, misdn_state_table,
+								sizeof(misdn_state_table) / sizeof(struct statemachine_transition),
+								send_event,
+								log_event);
+	p->orginator = orig;
+	p->need_queue_hangup = 1;
+	p->need_hangup = 1;
+	p->need_busy = 1;
+	p->overlap_dial_task = -1;
+
+	return p;
+}
+
+static inline void misdn_pvt_queue (struct misdn_pvt *p)
+{
+	AST_RWLIST_WRLOCK(&pvt_list);
+	AST_RWLIST_INSERT_TAIL(&pvt_list, p, next);
+	AST_RWLIST_UNLOCK(&pvt_list);
+}
+
+static inline void misdn_pvt_dequeue (struct misdn_pvt *p) 
+{
+	if (p->dsp) 
+		ast_dsp_free(p->dsp);
+
+	if (p->trans)
+		ast_translator_free_path(p->trans);
+
+	AST_RWLIST_WRLOCK(&pvt_list);
+	AST_RWLIST_REMOVE(&pvt_list, p, next);
+	AST_RWLIST_UNLOCK(&pvt_list);
+}
+
+static struct misdn_pvt * misdn_pvt_by_bc (struct misdn_bchannel *bc)
+{
+	struct misdn_pvt *p;
+
+	AST_RWLIST_RDLOCK(&pvt_list);
+	AST_RWLIST_TRAVERSE(&pvt_list, p, next) {
+		if (p->bc == bc)
 			break;
 	}
-	AST_RWLIST_UNLOCK(&ch_list);
-
-	if (!ch)
+	AST_RWLIST_UNLOCK(&pvt_list);
+
+	if (!p)
 		chan_misdn_log(6, bc->port, "$$$ find_chan: No channel found for oad:%s dad:%s\n", bc->oad, bc->dad);
 
-	return ch;
-}
-
-static struct misdn_ch * misdn_ch_by_pid (int pid)
-{
-	struct misdn_ch *ch;
-
-	AST_RWLIST_RDLOCK(&ch_list);
-	AST_RWLIST_TRAVERSE(&ch_list, ch, next) {
-		if (ch->bc && ch->bc->pid == pid)
+	return p;
+}
+
+static struct misdn_pvt * misdn_pvt_by_pid (int pid)
+{
+	struct misdn_pvt *p;
+
+	AST_RWLIST_RDLOCK(&pvt_list);
+	AST_RWLIST_TRAVERSE(&pvt_list, p, next) {
+		if (p->bc && p->bc->pid == pid)
 			break;
 	}
-	AST_RWLIST_UNLOCK(&ch_list);
-
-	if (!ch)
+	AST_RWLIST_UNLOCK(&pvt_list);
+
+	if (!p)
 		chan_misdn_log(6, 0, "$$$ find_chan: No channel found for pid:%d\n", pid);
 
-	return ch;
-}
-
-static struct misdn_ch * misdn_ch_by_ast (struct ast_channel *ast)
-{
-	struct misdn_ch *ch;
-
-	AST_RWLIST_RDLOCK(&ch_list);
-	AST_RWLIST_TRAVERSE(&ch_list, ch, next) {
-		if (ch->ast == ast)
+	return p;
+}
+
+static struct misdn_pvt * misdn_pvt_by_ast (struct ast_channel *ast)
+{
+	struct misdn_pvt *p;
+
+	AST_RWLIST_RDLOCK(&pvt_list);
+	AST_RWLIST_TRAVERSE(&pvt_list, p, next) {
+		if (p->ast == ast)
 			break;
 	}
-	AST_RWLIST_UNLOCK(&ch_list);
-
-	return ch;
-}
-
-static struct misdn_ch * misdn_ch_by_ast_name (char *name)
-{
-	struct misdn_ch *ch;
-
-	AST_RWLIST_RDLOCK(&ch_list);
-	AST_RWLIST_TRAVERSE(&ch_list, ch, next) {
-		if (ch->ast && !strcmp(ch->ast->name, name))
+	AST_RWLIST_UNLOCK(&pvt_list);
+
+	return p;
+}
+
+static struct misdn_pvt * misdn_pvt_by_ast_name (char *name)
+{
+	struct misdn_pvt *p;
+
+	AST_RWLIST_RDLOCK(&pvt_list);
+	AST_RWLIST_TRAVERSE(&pvt_list, p, next) {
+		if (p->ast && !strcmp(p->ast->name, name))
 			break;
 	}
-	AST_RWLIST_UNLOCK(&ch_list);
-
-	return ch;
-}
-
-static struct misdn_ch * misdn_ch_holded (struct misdn_bchannel *bc)
-{
-	struct misdn_ch *ch;
-
-	AST_RWLIST_RDLOCK(&ch_list);
-	AST_RWLIST_TRAVERSE(&ch_list, ch, next) {
-		if (statemachine_get_state(ch->sm) == MISDN_HOLDED && ch->hold_info.port == bc->port)
+	AST_RWLIST_UNLOCK(&pvt_list);
+
+	return p;
+}
+
+static struct misdn_pvt * misdn_pvt_holded (struct misdn_bchannel *bc)
+{
+	struct misdn_pvt *p;
+
+	AST_RWLIST_RDLOCK(&pvt_list);
+	AST_RWLIST_TRAVERSE(&pvt_list, p, next) {
+		if (statemachine_get_state(p->sm) == MISDN_HOLDED && p->hold_info.port == bc->port)
 			break;
 	}
-	AST_RWLIST_UNLOCK(&ch_list);
-
-	if (!ch)
+	AST_RWLIST_UNLOCK(&pvt_list);
+
+	if (!p)
 		chan_misdn_log(6, bc->port, "$$$ find_chan: No channel found for oad:%s dad:%s\n", bc->oad, bc->dad);
 
-	return ch;
-}
-
-static struct misdn_ch * misdn_ch_holded_l3 (unsigned long l3_id)
-{
-	struct misdn_ch *ch;
-
-	AST_RWLIST_RDLOCK(&ch_list);
-	AST_RWLIST_TRAVERSE(&ch_list, ch, next) {
-		if (statemachine_get_state(ch->sm) == MISDN_HOLDED && ch->l3id == l3_id) 
+	return p;
+}
+
+static struct misdn_pvt * misdn_pvt_holded_l3 (unsigned long l3_id)
+{
+	struct misdn_pvt *p;
+
+	AST_RWLIST_RDLOCK(&pvt_list);
+	AST_RWLIST_TRAVERSE(&pvt_list, p, next) {
+		if (statemachine_get_state(p->sm) == MISDN_HOLDED && p->l3id == l3_id) 
 			break;
 	}
-	AST_RWLIST_UNLOCK(&ch_list);
+	AST_RWLIST_UNLOCK(&pvt_list);
 	
-	return ch;
+	return p;
 }
 
 /* Jitterbuffer */
@@ -1313,10 +1311,10 @@
 
 static int bc_jb_empty (struct misdn_bchannel *bc, char *buf, int len) 
 {
-	struct misdn_ch *ch = misdn_ch_by_bc(bc);
-
-	if (ch && ch->jb)
-		return misdn_jb_empty(ch->jb, buf, len);
+	struct misdn_pvt *p = misdn_pvt_by_bc(bc);
+
+	if (p && p->jb)
+		return misdn_jb_empty(p->jb, buf, len);
 
 	return -1;
 }
@@ -1490,9 +1488,9 @@
 	}
 }
 
-static void print_bc_info (int fd, struct misdn_ch *ch, struct misdn_bchannel *bc)
-{
-	struct ast_channel *ast = ch->ast;
+static void print_bc_info (int fd, struct misdn_pvt *p, struct misdn_bchannel *bc)
+{
+	struct ast_channel *ast = p->ast;
 
 	ast_cli(fd,
 			"* Pid:%d Prt:%d Ch:%d Mode:%s Org:%s dad:%s oad:%s rad:%s ctx:%s state:%s\n",
@@ -1500,12 +1498,12 @@
 			bc->port,
 			bc->channel,
 			bc->nt ? "NT" : "TE",
-			ch->orginator == ORG_AST ? "*" : "I",
+			p->orginator == ORG_AST ? "*" : "I",
 			ast ? ast->exten : "",
 			ast ? AST_CID_P(ast) : "",
 			bc->rad,
 			ast ? ast->context : "",
-			get_state_string(statemachine_get_state(ch->sm)));
+			get_state_string(statemachine_get_state(p->sm)));
 
 	if (misdn_debug[bc->port] > 0)
 		ast_cli(fd,
@@ -1520,32 +1518,32 @@
 				"  --> echo_cancel: %d\n"
 				"  --> notone : rx %d tx:%d\n"
 				"  --> bc_hold: %d\n",
-				ch->ast->name,
-				ch->l3id,
-				ch->addr,
+				p->ast->name,
+				p->l3id,
+				p->addr,
 				bc->addr,
 				bc->l3_id,
 				bc->display,
 				bc_state2str(bc->bc_state),
 				get_bearer_str(bc->capability),
 				bc->ec_enable,
-				ch->norxtone,
-				ch->notxtone,
+				p->norxtone,
+				p->notxtone,
 				bc->holded);
 }
 
-static void import_ch (struct ast_channel *chan, struct misdn_bchannel *bc, struct misdn_ch *ch)
+static void import_ch (struct ast_channel *chan, struct misdn_bchannel *bc, struct misdn_pvt *p)
 {
 	const char *tmp;
 
 	tmp = pbx_builtin_getvar_helper(chan, "MISDN_PID");
 	if (tmp) {
-		ch->other_pid = atoi(tmp);
+		p->other_pid = atoi(tmp);
 		chan_misdn_log(2, bc->port, "IMPORT_PID: importing pid:%s\n", tmp);
-		if (ch->other_pid > 0) {
-			ch->other_ch = misdn_ch_by_pid(ch->other_pid);
-			if (ch->other_ch)
-				ch->other_ch->other_ch = ch;
+		if (p->other_pid > 0) {
+			p->other_pvt = misdn_pvt_by_pid(p->other_pid);
+			if (p->other_pvt)
+				p->other_pvt->other_pvt = p;
 		}
 	}
 }
@@ -1659,14 +1657,14 @@
 }
 
 /* Channel Helpers */
-static int pbx_start_chan (struct misdn_ch *ch)
-{
-	int ret = ast_pbx_start(ch->ast);	
-	ch->need_hangup = ret >= 0 ? 0 : 1;
+static int pbx_start_chan (struct misdn_pvt *p)
+{
+	int ret = ast_pbx_start(p->ast);	
+	p->need_hangup = ret >= 0 ? 0 : 1;
 	return ret;
 }
 
-static void export_chan (struct ast_channel *chan, struct misdn_bchannel *bc, struct misdn_ch *ch)
+static void export_chan (struct ast_channel *chan, struct misdn_bchannel *bc, struct misdn_pvt *p)
 {
 	char tmp[32];
 	chan_misdn_log(2, bc->port, "EXPORT_PID: pid:%d\n", bc->pid);
@@ -1674,9 +1672,9 @@
 	pbx_builtin_setvar_helper(chan, "_MISDN_PID", tmp);
 }
 
-static void send_digit_to_chan (struct misdn_ch *ch, char digit)
-{
-	struct ast_channel *chan = ch->ast; 
+static void send_digit_to_chan (struct misdn_pvt *p, char digit)
+{
+	struct ast_channel *chan = p->ast; 
 	static const char *dtmf_tones[] = {
 		"!941+1336/100, !0/100",	/* 0 */
 		"!697+1209/100, !0/100",	/* 1 */
@@ -1708,7 +1706,7 @@
 		ast_log(LOG_DEBUG, "Unable to handle DTMF tone '%c' for '%s'\n", digit, chan->name);
 }
 
-static void send_cause_to_ast (struct ast_channel *ast, struct misdn_bchannel *bc, struct misdn_ch *ch)
+static void send_cause_to_ast (struct ast_channel *ast, struct misdn_bchannel *bc, struct misdn_pvt *p)
 {
 	if (!ast) {
 		chan_misdn_log(2, 0, "send_cause_to_ast: No Ast\n");
@@ -1718,7 +1716,7 @@
 		chan_misdn_log(2, 0, "send_cause_to_ast: No BC\n");
 		return;
 	}
-	if (!ch) {
+	if (!p) {
 		chan_misdn_log(2, 0, "send_cause_to_ast: No Ch\n");
 		return;
 	}
@@ -1726,145 +1724,145 @@
 	ast->hangupcause = bc->cause;
 
 	if (bc->cause == 21 || bc->cause == 17) {
-		statemachine_set_state(ch->sm, MISDN_BUSY);
-		if (!ch->need_busy) {
+		statemachine_set_state(p->sm, MISDN_BUSY);
+		if (!p->need_busy) {
 			chan_misdn_log(2, bc->port, "Queued busy already\n");
 		} else {
 			chan_misdn_log(2, bc->port, " --> * SEND: Queue Busy pid:%d\n", bc->pid);
 			ast_queue_control(ast, AST_CONTROL_BUSY);
-			ch->need_busy = 0;
-		}
-	}
-}
-
-static int dialtone_indicate (struct misdn_ch *ch)
+			p->need_busy = 0;
+		}
+	}
+}
+
+static int dialtone_indicate (struct misdn_pvt *p)
 {
 	const struct tone_zone_sound *ts= NULL;
 	int nd = 0;
 
-	if (!cm_get_strcasecmp(misdn_cm, "yes", PORT, MCFG_NODIALTONE, ch->bc->port))
+	if (!cm_get_strcasecmp(misdn_cm, "yes", PORT, MCFG_NODIALTONE, p->bc->port))
 		nd = 1;
 	if (nd) {
-		chan_misdn_log(2, ch->bc->port, "Not sending Dialtone, because config wants it\n");
+		chan_misdn_log(2, p->bc->port, "Not sending Dialtone, because config wants it\n");
 		return 0;
 	}
 
-	chan_misdn_log(3, ch->bc->port, " --> Dial\n");
-	ts = ast_get_indication_tone(ch->ast->zone, "dial");
-	ch->ts = ts;	
+	chan_misdn_log(3, p->bc->port, " --> Dial\n");
+	ts = ast_get_indication_tone(p->ast->zone, "dial");
+	p->ts = ts;	
 
 	if (ts) {
-		ch->notxtone = 0;
-		ch->norxtone = 0;
-		ast_playtones_start(ch->ast, 0, ts->data, 0);
-		chan_misdn_log(4, ch->bc->port, "Starting Playtones\n");
-		misdn_lib_tone_generator_start(ch->bc);
+		p->notxtone = 0;
+		p->norxtone = 0;
+		ast_playtones_start(p->ast, 0, ts->data, 0);
+		chan_misdn_log(4, p->bc->port, "Starting Playtones\n");
+		misdn_lib_tone_generator_start(p->bc);
 	}
 
 	return 0;
 }
 
-static int hanguptone_indicate (struct misdn_ch *ch)
-{
-	misdn_lib_send_tone(ch->bc, TONE_HANGUP);
+static int hanguptone_indicate (struct misdn_pvt *p)
+{
+	misdn_lib_send_tone(p->bc, TONE_HANGUP);
 	return 0;
 }
 
-static int stop_indicate (struct misdn_ch *ch)
-{
-	chan_misdn_log(3, ch->bc->port, " --> None\n");
-	misdn_lib_tone_generator_stop(ch->bc);
-	ast_playtones_stop(ch->ast);
+static int stop_indicate (struct misdn_pvt *p)
+{
+	chan_misdn_log(3, p->bc->port, " --> None\n");
+	misdn_lib_tone_generator_stop(p->bc);
+	ast_playtones_stop(p->ast);
 	return 0;
 }
 
-static int start_bc_tones (struct misdn_ch *ch)
-{
-	misdn_lib_tone_generator_stop(ch->bc);
-	ch->notxtone = 0;
-	ch->norxtone = 0;
+static int start_bc_tones (struct misdn_pvt *p)
+{
+	misdn_lib_tone_generator_stop(p->bc);
+	p->notxtone = 0;
+	p->norxtone = 0;
 	return 0;
 }
 
-static int stop_bc_tones (struct misdn_ch *ch)
-{
-	ch->notxtone = 1;
-	ch->norxtone = 1;
+static int stop_bc_tones (struct misdn_pvt *p)
+{
+	p->notxtone = 1;
+	p->norxtone = 1;
 	return 0;
 }
 
-static void hangup_chan (struct misdn_ch *ch)
+static void hangup_chan (struct misdn_pvt *p)
 {
 	int port;
 
-	if (!ch || !ch->bc) {
-		chan_misdn_log(2, 0, "Cannot hangup chan, no ch or no ch->bc!\n");
+	if (!p || !p->bc) {
+		chan_misdn_log(2, 0, "Cannot hangup chan, no ch or no p->bc!\n");
 		return;
 	}
 	
-	port = ch->bc ? ch->bc->port : 0;
+	port = p->bc ? p->bc->port : 0;
 	chan_misdn_log(2, port, "hangup_chan\n");
 
-	if (ch->need_hangup) {
+	if (p->need_hangup) {
 		chan_misdn_log(2, port, "-> hangup\n");
-		send_cause_to_ast(ch->ast, ch->bc, ch);
-		ch->need_hangup = ch->need_queue_hangup = 0;
-		if (ch->ast)
-			ast_hangup(ch->ast);
+		send_cause_to_ast(p->ast, p->bc, p);
+		p->need_hangup = p->need_queue_hangup = 0;
+		if (p->ast)
+			ast_hangup(p->ast);
 		return;
 	}
 
-	if (!ch->need_queue_hangup) {
+	if (!p->need_queue_hangup) {
 		chan_misdn_log(2, port, "No need to queue hangup\n");
 	}
 
-	ch->need_queue_hangup = 0;
-	if (ch->ast) {
-		send_cause_to_ast(ch->ast, ch->bc, ch);
-		ast_queue_hangup(ch->ast);
+	p->need_queue_hangup = 0;
+	if (p->ast) {
+		send_cause_to_ast(p->ast, p->bc, p);
+		ast_queue_hangup(p->ast);
 		chan_misdn_log(2, port, "-> queue_hangup\n");
 	} else
 		chan_misdn_log(2, port, "Cannot hangup chan, no ast\n");
 }
 
 /* Isdn asks us to release channel, pendant to misdn_hangup */
-static void release_chan (struct misdn_ch *ch)
+static void release_chan (struct misdn_pvt *p)
 {
 	struct ast_channel *ast;
-	struct misdn_bchannel *bc = ch->bc;
-
-	if (!ch) {
+	struct misdn_bchannel *bc = p->bc;
+
+	if (!p) {
 		chan_misdn_log(2, bc->port, "release_chan: No ch!\n");
 		return;
 	}
-	ast = ch->ast;
+	ast = p->ast;
 	chan_misdn_log(2, bc->port, "release_chan: bc with l3id: %x\n", bc->l3_id);
 
-	if (ch->jb) {
-		misdn_jb_destroy(ch->jb);
-		ch->jb = NULL;
+	if (p->jb) {
+		misdn_jb_destroy(p->jb);
+		p->jb = NULL;
 	} else if (!bc->nojitter)
 		chan_misdn_log(5, bc->port, "Jitterbuffer already destroyed.\n");
 
-	if (ch->overlap_dial) {
-		if (ch->overlap_dial_task != -1) {
-			misdn_tasks_remove(ch->overlap_dial_task);
-			ch->overlap_dial_task = -1;
-		}
-		ast_mutex_destroy(&ch->overlap_tv_lock);
-	}
-
-	if (ch->orginator == ORG_AST)
+	if (p->overlap_dial) {
+		if (p->overlap_dial_task != -1) {
+			misdn_tasks_remove(p->overlap_dial_task);
+			p->overlap_dial_task = -1;
+		}
+		ast_mutex_destroy(&p->overlap_tv_lock);
+	}
+
+	if (p->orginator == ORG_AST)
 		--misdn_out_calls[bc->port];
 	else
 		--misdn_in_calls[bc->port];
 
-	close(ch->pipe[0]);
-	close(ch->pipe[1]);
+	close(p->pipe[0]);
+	close(p->pipe[1]);
 
 	if (ast && MISDN_ASTERISK_TECH_PVT(ast)) {
 		chan_misdn_log(2, bc->port, "* RELEASING CHANNEL pid:%d ctx:%s dad:%s oad:%s state: %s\n",
-					   bc->pid, ast->context, ast->exten, AST_CID_P(ast), get_state_string(statemachine_get_state(ch->sm)));
+					   bc->pid, ast->context, ast->exten, AST_CID_P(ast), get_state_string(statemachine_get_state(p->sm)));
 		chan_misdn_log(3, bc->port, " --> * State Down\n");
 		MISDN_ASTERISK_TECH_PVT(ast) = NULL;
 		if (ast->_state != AST_STATE_RESERVED) {
@@ -1873,19 +1871,19 @@
 		}
 	}
 
-	misdn_ch_dequeue(ch);
-	statemachine_destroy(ch->sm);
-	free(ch);
-}
-
-static void misdn_transfer_bc (struct misdn_ch *ch, struct misdn_ch *holded_ch)
-{
-	chan_misdn_log(4, 0, "TRANSFERING %s to %s\n", holded_ch->ast->name, ch->ast->name);
-	statemachine_set_state(ch->sm, MISDN_HOLD_DISCONNECT);
-	ast_moh_stop(AST_BRIDGED_P(holded_ch->ast));
-	statemachine_set_state(holded_ch->sm, MISDN_CONNECTED);
-/* 	misdn_lib_transfer(holded_ch->bc); */
-	ast_channel_masquerade(holded_ch->ast, AST_BRIDGED_P(ch->ast));
+	misdn_pvt_dequeue(p);
+	statemachine_destroy(p->sm);
+	free(p);
+}
+
+static void misdn_transfer_bc (struct misdn_pvt *p, struct misdn_pvt *holded_p)
+{
+	chan_misdn_log(4, 0, "TRANSFERING %s to %s\n", holded_p->ast->name, p->ast->name);
+	statemachine_set_state(p->sm, MISDN_HOLD_DISCONNECT);
+	ast_moh_stop(AST_BRIDGED_P(holded_p->ast));
+	statemachine_set_state(holded_p->sm, MISDN_CONNECTED);
+/* 	misdn_lib_transfer(holded_p->bc); */
+	ast_channel_masquerade(holded_p->ast, AST_BRIDGED_P(p->ast));
 }
 
 static int add_in_calls (int port)
@@ -1929,42 +1927,42 @@
 {
 	struct timeval tv_end, tv_now;
 	int diff;
-	struct misdn_ch *ch = (struct misdn_ch *)data;
-
-	chan_misdn_log(4, ch->bc->port, "overlap dial task, chan_state: %d\n", statemachine_get_state(ch->sm));
-
-	if (statemachine_get_state(ch->sm) != MISDN_WAITING4DIGS) {
-		ch->overlap_dial_task = -1;
+	struct misdn_pvt *p = (struct misdn_pvt *)data;
+
+	chan_misdn_log(4, p->bc->port, "overlap dial task, chan_state: %d\n", statemachine_get_state(p->sm));
+
+	if (statemachine_get_state(p->sm) != MISDN_WAITING4DIGS) {
+		p->overlap_dial_task = -1;
 		return 0;
 	}
 
-	ast_mutex_lock(&ch->overlap_tv_lock);
-	tv_end = ch->overlap_tv;
-	ast_mutex_unlock(&ch->overlap_tv_lock);
-
-	tv_end.tv_sec += ch->overlap_dial;
+	ast_mutex_lock(&p->overlap_tv_lock);
+	tv_end = p->overlap_tv;
+	ast_mutex_unlock(&p->overlap_tv_lock);
+
+	tv_end.tv_sec += p->overlap_dial;
 	tv_now = ast_tvnow();
 
 	diff = ast_tvdiff_ms(tv_end, tv_now);
 
 	if (diff <= 100) {
 		/* if we are 100ms near the timeout, we are satisfied.. */
-		stop_indicate(ch);
-		if (ast_exists_extension(ch->ast, ch->context, ch->bc->dad, 1, ch->bc->oad)) {
-			statemachine_set_state(ch->sm, MISDN_DIALING);
-			if (pbx_start_chan(ch) < 0) {
-				chan_misdn_log(-1, ch->bc->port, "ast_pbx_start returned < 0 in misdn_overlap_dial_task\n");
+		stop_indicate(p);
+		if (ast_exists_extension(p->ast, p->context, p->bc->dad, 1, p->bc->oad)) {
+			statemachine_set_state(p->sm, MISDN_DIALING);
+			if (pbx_start_chan(p) < 0) {
+				chan_misdn_log(-1, p->bc->port, "ast_pbx_start returned < 0 in misdn_overlap_dial_task\n");
 				goto misdn_overlap_dial_task_disconnect;
 			}
 		} else {
 misdn_overlap_dial_task_disconnect:
-			hanguptone_indicate(ch);
-			if (ch->bc->nt)
-				misdn_lib_send_event(ch->bc, EVENT_RELEASE_COMPLETE);
+			hanguptone_indicate(p);
+			if (p->bc->nt)
+				misdn_lib_send_event(p->bc, EVENT_RELEASE_COMPLETE);
 			else
-				misdn_lib_send_event(ch->bc, EVENT_RELEASE);
-		}
-		ch->overlap_dial_task = -1;
+				misdn_lib_send_event(p->bc, EVENT_RELEASE);
+		}
+		p->overlap_dial_task = -1;
 		return 0;
 	}
 
@@ -2017,7 +2015,7 @@
 {
 	char *channame,
 		 *nr; 
-	struct misdn_ch *ch;
+	struct misdn_pvt *p;
 
 	if (argc != 5)
 		return RESULT_SHOWUSAGE;
@@ -2025,17 +2023,17 @@
 	channame = argv[3];
 	nr = argv[4];
 	ast_cli(fd, "Sending Calldeflection (%s) to %s\n", nr, channame);
-	ch = misdn_ch_by_ast_name(channame);
-	if (!ch) {
+	p = misdn_pvt_by_ast_name(channame);
+	if (!p) {
 		ast_cli(fd, "Sending CD with nr %s to %s failed: Channel does not exist.\n", nr, channame);
 	} else {
 		if (strlen(nr) >= 15) {
 			ast_cli(fd, "Sending CD with nr %s to %s failed: Number too long (up to 15 digits are allowed).\n", nr, channame);
 			return 0; 
 		}
-		ch->bc->fac_out.Function = Fac_CD;
-		strncpy((char *)ch->bc->fac_out.u.CDeflection.DeflectedToNumber, nr, sizeof(ch->bc->fac_out.u.CDeflection.DeflectedToNumber));
-		misdn_lib_send_event(ch->bc, EVENT_FACILITY);
+		p->bc->fac_out.Function = Fac_CD;
+		strncpy((char *)p->bc->fac_out.u.CDeflection.DeflectedToNumber, nr, sizeof(p->bc->fac_out.u.CDeflection.DeflectedToNumber));
+		misdn_lib_send_event(p->bc, EVENT_FACILITY);
 	}
 
 	return 0; 
@@ -2045,7 +2043,7 @@
 {
 	char *channame,
 		 *msg; 
-	struct misdn_ch *ch;
+	struct misdn_pvt *p;
 	int i,
 		msglen;
 
@@ -2055,14 +2053,14 @@
 	channame = argv[3];
 	msg = argv[4];
 	ast_cli(fd, "Sending %s to %s\n", msg, channame);
-	ch = misdn_ch_by_ast_name(channame);
-	if (!ch) {
+	p = misdn_pvt_by_ast_name(channame);
+	if (!p) {
 		ast_cli(fd, "Sending %s to %s failed Channel does not exist\n", msg, channame);
 	} else {
 		msglen = strlen(msg);
 		for (i = 0; i < msglen; ++i) {
 			ast_cli(fd, "Sending: %c\n", msg[i]);
-			send_digit_to_chan(ch, msg[i]);
+			send_digit_to_chan(p, msg[i]);
 			usleep(250000);
 		}
 	}
@@ -2073,7 +2071,7 @@
 static int misdn_toggle_echocancel (int fd, int argc, char *argv[])
 {
 	char *channame; 
-	struct misdn_ch *ch;
+	struct misdn_pvt *p;
 
 	if (argc != 4)
 		return RESULT_SHOWUSAGE;
@@ -2081,16 +2079,16 @@
 	channame = argv[3];
 	ast_cli(fd, "Toggling EchoCancel on %s\n", channame);
 
-	ch = misdn_ch_by_ast_name(channame);
-	if (!ch) {
+	p = misdn_pvt_by_ast_name(channame);
+	if (!p) {
 		ast_cli(fd, "Toggling EchoCancel %s failed Channel does not exist\n", channame);
 	} else {
-		ch->toggle_ec = ch->toggle_ec ? 0 : 1;
-		if (ch->toggle_ec) {
-			config_bc_echocancel(ch->bc);
-			manager_ec_enable(ch->bc);
+		p->toggle_ec = p->toggle_ec ? 0 : 1;
+		if (p->toggle_ec) {
+			config_bc_echocancel(p->bc);
+			manager_ec_enable(p->bc);
 		} else {
-			manager_ec_disable(ch->bc);
+			manager_ec_disable(p->bc);
 		}
 	}
 
@@ -2101,7 +2099,7 @@
 {
 	char *channame,
 		 *msg; 
-	struct misdn_ch *ch;
+	struct misdn_pvt *p;
 
 	if (argc != 5)
 		return RESULT_SHOWUSAGE;
@@ -2109,10 +2107,10 @@
 	channame = argv[3];
 	msg = argv[4];
 	ast_cli(fd, "Sending %s to %s\n", msg, channame);
-	ch = misdn_ch_by_ast_name(channame);
-	if (ch && ch->bc) {
-		ast_copy_string(ch->bc->display, msg, sizeof(ch->bc->display));
-		misdn_lib_send_event(ch->bc, EVENT_INFORMATION);
+	p = misdn_pvt_by_ast_name(channame);
+	if (p && p->bc) {
+		ast_copy_string(p->bc->display, msg, sizeof(p->bc->display));
+		misdn_lib_send_event(p->bc, EVENT_INFORMATION);
 	} else {
 		ast_cli(fd, "No such channel %s\n", channame);
 		return RESULT_FAILURE;
@@ -2135,44 +2133,44 @@
 
 static int misdn_show_cls (int fd, int argc, char *argv[])
 {
-	struct misdn_ch *ch;
-
-	AST_RWLIST_RDLOCK(&ch_list);
-	ast_cli(fd, "Chan List:\n");
-	AST_RWLIST_TRAVERSE(&ch_list, ch, next) {
+	struct misdn_pvt *p;
+
+	AST_RWLIST_RDLOCK(&pvt_list);
+	ast_cli(fd, "Channel List:\n");
+	AST_RWLIST_TRAVERSE(&pvt_list, p, next) {
 		if (misdn_debug[0] > 2)
-			ast_cli(fd, "Bc:%p Ast:%p\n", ch->bc, ch->ast);
-		if (ch->bc) {
-			print_bc_info(fd, ch, ch->bc);
+			ast_cli(fd, "Bc:%p Ast:%p\n", p->bc, p->ast);
+		if (p->bc) {
+			print_bc_info(fd, p, p->bc);
 		} else {
-			if (statemachine_get_state(ch->sm) == MISDN_HOLDED)
+			if (statemachine_get_state(p->sm) == MISDN_HOLDED)
 				chan_misdn_log(0, 0, "IT'S A HOLDED BC:\n --> l3_id: %x\n --> dad:%s oad:%s\n --> hold_port: %d\n --> hold_channel: %d\n",
-							   ch->l3id, ch->ast->exten, AST_CID_P(ch->ast), ch->hold_info.port, ch->hold_info.channel);
+							   p->l3id, p->ast->exten, AST_CID_P(p->ast), p->hold_info.port, p->hold_info.channel);
 			else
-				ast_cli(fd,"* Channel in unknown STATE !!! Exten:%s, Callerid:%s\n", ch->ast->exten, AST_CID_P(ch->ast));
-		}
-	}
-	AST_RWLIST_UNLOCK(&ch_list);
+				ast_cli(fd,"* Channel in unknown STATE !!! Exten:%s, Callerid:%s\n", p->ast->exten, AST_CID_P(p->ast));
+		}
+	}
+	AST_RWLIST_UNLOCK(&pvt_list);
 
 	return 0;
 }
 
 static int misdn_show_cl (int fd, int argc, char *argv[])
 {
-	struct misdn_ch *ch;
+	struct misdn_pvt *p;
 
 	if (argc != 4)
 		return RESULT_SHOWUSAGE;
 
-	AST_RWLIST_RDLOCK(&ch_list);
-	ast_cli(fd, "Chan List:\n");
-	AST_RWLIST_TRAVERSE(&ch_list, ch, next) {
-		if (ch->bc && ch->ast && !strcasecmp(ch->ast->name, argv[3])) {
-			print_bc_info(fd, ch, ch->bc);
+	AST_RWLIST_RDLOCK(&pvt_list);
+	ast_cli(fd, "Channel List:\n");
+	AST_RWLIST_TRAVERSE(&pvt_list, p, next) {
+		if (p->bc && p->ast && !strcasecmp(p->ast->name, argv[3])) {
+			print_bc_info(fd, p, p->bc);
 			break; 
 		}
 	}
-	AST_RWLIST_UNLOCK(&ch_list);
+	AST_RWLIST_UNLOCK(&pvt_list);
 
 	return 0;
 }
@@ -2386,26 +2384,26 @@
 };
 
 /* Channel configuration */
-static int config_ch_pres_screen (struct misdn_ch *ch)
+static int config_ch_pres_screen (struct misdn_pvt *p)
 {
 	struct ast_channel *ast;
 	struct misdn_bchannel *bc;
 	int	pres = 0,
 		screen = 0;
 
-	if (!ch) {
-		ast_log(LOG_WARNING, "Cannot configure without chanlist\n");
+	if (!p) {
+		ast_log(LOG_WARNING, "Cannot configure without misdn_pvt\n");
 		return -1;
 	}
 
-	ast = ch->ast;
-	bc = ch->bc;
+	ast = p->ast;
+	bc = p->bc;
 	if (!ast || !bc) {
 		ast_log(LOG_WARNING, "Cannot configure without ast || bc\n");
 		return -1;
 	}
 
-	if (ch->orginator == ORG_AST) {
+	if (p->orginator == ORG_AST) {
 		/*misdn_call*/
 		chan_misdn_log(5, bc->port, "config_ch_pres_screen: Getting Config\n");
 		cm_get_int(misdn_cm, pres, PORT, MCFG_PRESENTATION, bc->port);
@@ -2477,15 +2475,15 @@
 			screen = AST_PRES_USER_NUMBER_UNSCREENED;
 			chan_misdn_log(2, bc->port, " --> SCREEN: Unscreened (%d)\n", bc->screen);
 		}
-		ch->ast->cid.cid_pres = pres + screen;
+		p->ast->cid.cid_pres = pres + screen;
 	}
 
 	return 0;
 }
 
-static int config_ch_hdlc (struct misdn_ch *ch)
-{
-	struct misdn_bchannel *bc = ch->bc;
+static int config_ch_hdlc (struct misdn_pvt *p)
+{
+	struct misdn_bchannel *bc = p->bc;
 	int hdlc;
 
 	if (cm_get_int(misdn_cm, hdlc, PORT, MCFG_HDLC, bc->port) || hdlc < 0)
@@ -2502,11 +2500,11 @@
 	return 0;
 }
 
-static void config_ch_jitterbuffer (struct misdn_ch *ch)
-{
-	struct misdn_bchannel *bc = ch->bc;
-	int len = ch->jb_len,
-		threshold = ch->jb_upper_threshold;
+static void config_ch_jitterbuffer (struct misdn_pvt *p)
+{
+	struct misdn_bchannel *bc = p->bc;
+	int len = p->jb_len,
+		threshold = p->jb_upper_threshold;
 
 	chan_misdn_log(5, bc->port, "config_ch_jitterbuffer: Called\n");
 
@@ -2520,13 +2518,13 @@
 		}
 		if (threshold > len)
 			chan_misdn_log(0, bc->port, "config_ch_jitterbuffer: Jitterbuffer Threshold > Jitterbuffer setting to Jitterbuffer -1\n");
-		if (ch->jb) {
+		if (p->jb) {
 			chan_misdn_log(0, bc->port, "config_ch_jitterbuffer: We've got a Jitterbuffer Already on this port.\n");
-			misdn_jb_destroy(ch->jb);
-			ch->jb = NULL;
-		}
-		ch->jb = misdn_jb_init(len, threshold);
-		if (!ch->jb) 
+			misdn_jb_destroy(p->jb);
+			p->jb = NULL;
+		}
+		p->jb = misdn_jb_init(len, threshold);
+		if (!p->jb) 
 			bc->nojitter = 1;
 	}
 }
@@ -2544,7 +2542,7 @@
 	return 0;
 }
 
-static int config_ch (struct misdn_ch *ch, int orig)
+static int config_ch (struct misdn_pvt *p, int orig)
 {
 	struct ast_channel *ast;
 	struct misdn_bchannel *bc;
@@ -2553,13 +2551,13 @@
 	ast_group_t pg,
 				cg;
 
-	if (!ch) {
-		ast_log(LOG_WARNING, "Cannot configure without chanlist\n");
+	if (!p) {
+		ast_log(LOG_WARNING, "Cannot configure without misdn_pvt\n");
 		return -1;
 	}
 
-	ast = ch->ast;
-	bc = ch->bc;
+	ast = p->ast;
+	bc = p->bc;
 	if (!ast || !bc) {
 		ast_log(LOG_WARNING, "Cannot configure without ast || bc\n");
 		return -1;
@@ -2581,16 +2579,16 @@
 	bc->AOCDtype = Fac_None;
 	config_bc_echocancel(bc);
 
-	cm_get_int(misdn_cm, ch->incoming_early_audio, PORT, MCFG_INCOMING_EARLY_AUDIO, bc->port);
-	cm_get_int(misdn_cm, ch->jb_len, PORT, MCFG_JITTERBUFFER, bc->port);
-	cm_get_int(misdn_cm, ch->jb_upper_threshold, PORT, MCFG_JITTERBUFFER_UPPER_THRES, bc->port);
-	cm_get_int(misdn_cm, ch->nttimeout, PORT, MCFG_NTTIMEOUT, bc->port);
-	cm_get(misdn_cm, ch->allowed_bearers, sizeof(ch->allowed_bearers), PORT, MCFG_ALLOWED_BEARERS, bc->port);
-	cm_get(misdn_cm, ch->context, sizeof(ch->context), PORT, MCFG_CONTEXT, bc->port);
-	ast_copy_string(ast->context, ch->context, sizeof(ast->context));	
-	ch->overlap_dial_task = -1;
-	config_ch_hdlc(ch);
-	config_ch_jitterbuffer(ch);
+	cm_get_int(misdn_cm, p->incoming_early_audio, PORT, MCFG_INCOMING_EARLY_AUDIO, bc->port);
+	cm_get_int(misdn_cm, p->jb_len, PORT, MCFG_JITTERBUFFER, bc->port);
+	cm_get_int(misdn_cm, p->jb_upper_threshold, PORT, MCFG_JITTERBUFFER_UPPER_THRES, bc->port);
+	cm_get_int(misdn_cm, p->nttimeout, PORT, MCFG_NTTIMEOUT, bc->port);
+	cm_get(misdn_cm, p->allowed_bearers, sizeof(p->allowed_bearers), PORT, MCFG_ALLOWED_BEARERS, bc->port);
+	cm_get(misdn_cm, p->context, sizeof(p->context), PORT, MCFG_CONTEXT, bc->port);
+	ast_copy_string(ast->context, p->context, sizeof(ast->context));	
+	p->overlap_dial_task = -1;
+	config_ch_hdlc(p);
+	config_ch_jitterbuffer(p);
 
 	cm_get(misdn_cm, buf, sizeof(buf), PORT, MCFG_PICKUPGROUP, bc->port);
 	sscanf(buf, "%lld", &pg);
@@ -2606,9 +2604,9 @@
 	if (orig == ORG_AST) {
 		if (strstr(faxdetect, "outgoing") || strstr(faxdetect, "both")) {
 			if (strstr(faxdetect, "nojump"))
-				ch->faxdetect = 2;
+				p->faxdetect = 2;
 			else
-				ch->faxdetect = 1;
+				p->faxdetect = 1;
 		}
 

[... 1793 lines stripped ...]


More information about the svn-commits mailing list