Если кому-то интересно, я справился с задачей)
Нужно было просто воспользоваться callEventHandler'ом, он способен реагировать на событие звонка и выводить. А вот как сидеть в бекграунде - это совсем другой вопрос)
let callCenter = CTCallCenter()
func callEvent (call:CTCall!) {
println("Got into callEvent")
if (call.callState == CTCallStateConnected) { println("Connected") }
else if (call.callState == CTCallStateDialing) { println("Dialing") }
else if (call.callState == CTCallStateDisconnected) {println("Disconnected")}
else if (call.callState == CTCallStateIncoming) {println("Incoming call")}
}