Ich hatte gerade den Effekt, dass nach einem eingehenden Anruf der Ton weiterhin stummgeschaltet geblieben ist. Das tritt allerdings nur dann auf, wenn ich vorher jemand angerufen habe.
Das Problem liegt in der Behandlung der Variablen currentCalls in fritzlistener.c. Bei einem eingehenden Anruf (RING -> CONNECT -> DISCONNECT) wird currentCalls bei RING inkrementiert und anschliessend wieder bei DISCONNECT dekrementiert. Damit ist die Bedingung (!currentCalls && ...) fürs "unmuten" erfüllt. Es funktioniert wie gewünscht. Bei einem abgehenden Anruf (CALL -> CONNECT -> DISCONNECT) wird die Variable jedoch nicht inkrementiert und bleibt auf 0, wird aber bei DISCONNECT gnadenlos dekrementiert. Damit bleibt der Ton bei allen darauf folgenden Anrufen stummgeschaltet.
"if (currentCalls) currentCalls--;" sollte Abhilfe schaffen