add: DBG("DEBUG:tm:t_uac: next_hop=<%.*s>\n",dialog->hooks.next_hop->len, dialog->hooks.next_hop->s);
context: int t_uac(str* method, str* headers, str* body, dlg_t* dialog,												transaction_cb cb, void* cbp){	struct socket_info* send_sock;	union sockaddr_union to_su;	struct cell *new_cell;	struct retr_buf *request;	char* buf;	int buf_len;	int ret;	unsigned int hi;	ret=-1;		/*** added by dcm 	 * - needed by external ua to send a request within a dlg	 */	if(!dialog->hooks.next_hop && w_calculate_hooks(dialog)<0)		goto error2;	send_sock = uri2sock(dialog->hooks.next_hop, &to_su, PROTO_NONE);	if (!send_sock) {		ret=ser_error;		LOG(L_ERR, "t_uac: no socket found\n");		goto error2;	}		new_cell = build_cell(0); 	if (!new_cell) {		ret=E_OUT_OF_MEM;		LOG(L_ERR, "t_uac: short of cell shmem\n");		goto error2;	}	/* add the callback the the transaction for LOCAL_COMPLETED event */	if(cb && insert_tmcb(&(new_cell->tmcb_hl),TMCB_LOCAL_COMPLETED,cb,cbp)!=1){		ret=E_OUT_OF_MEM;		LOG(L_ERR, "t_uac: short of tmcb shmem\n");		goto error2;	}	if (method->len==INVITE_LEN && memcmp(method->s, INVITE, INVITE_LEN)==0)		new_cell->flags |= T_IS_INVITE_FLAG;	new_cell->flags |= T_IS_LOCAL_FLAG;	set_kr(REQ_FWDED);	request = &new_cell->uac[0].request;	request->dst.to = to_su;	request->dst.send_sock = send_sock;	request->dst.proto = send_sock->proto;	request->dst.proto_reserved1 = 0;	hi=dlg2hash(dialog);	LOCK_HASH(hi);	insert_into_hash_table_unsafe(new_cell, hi);	UNLOCK_HASH(hi);	buf = build_uac_req(method, headers, body, dialog, 0, new_cell,		&buf_len, send_sock);	if (!buf) {		LOG(L_ERR, "t_uac: Error while building message\n");		ret=E_OUT_OF_MEM;		goto error1;	}	new_cell->method.s = buf;	new_cell->method.len = method->len;	request->buffer = buf;	request->buffer_len = buf_len;	new_cell->nr_of_outgoings++;		if (SEND_BUFFER(request) == -1) {		LOG(L_ERR, "t_uac: Attempt to send to '%.*s' failed\n", 			dialog->hooks.next_hop->len,			dialog->hooks.next_hop->s);	}		start_retr(request);	return 1; error1:	LOCK_HASH(hi);	remove_from_hash_table_unsafe(new_cell);	UNLOCK_HASH(hi);	free_cell(new_cell);error2:	return ret;}