How to estimate ARMA(1,1) parameters with ML?

#1
Hello!
I'm trying to estimate the parameters of an ARMA(1,1). I'm not interested in using pre-existing packages because i want to do all by myself in Julia.
I'm basing my estimation procedure on this paper http://siteresources.worldbank.org/DEC/Resources/Hevia_ARMA_estimation.pdf. My problem is about the maximization of the log-likelihood. I don't understand how to get mi phi and theta values.

I've followed the state space rappresentation presented in the paper and built the Kalman filter. In this way i should get the likelihood function for my observation vector.

I should be able to optimize the log-likelihood in order to get the value of sigma^2, is this correct and my definitive value for sigma^2?

Once i get the log-likelihood I have it as a functon of the innovations and their variance, how should I optimize it in order to get my phi and theta values? I think that it doesn't make sense to optimize my innovations and their variance because those are the only things that give a shape of the likelihood function for my model that is different from the one of an ARMA(1,1) based on a different serie of datas. Phi and Theta are inside the A and R matrices. Should i write the innovation and their variance as a function of Phi and Theta and than optimize?

Basically I don't understend how to get the values for phi and theta. Thank to everyone who will answer, I know that it will be probably a long answer but I can't find a clear explanation and I can't ask anyone those days!