It has a scripting language. Should be possible to just get it to loop looking for RING
Code:
top:
expect {
"RING" goto ring
}
goto top
ring:
! "aplay ring.wav"
And that should just loop around and around and around waiting for the modem to send a "RING", at which point it will call "aplay ring.wav" (assuming you have a suitable ring.wav to play) and terminate.
To execute, Ctrl-A, G, C, enter name of script, hit enter.
You'd have to manually type the AT command to answer it (which I can't be bothered to look up right now) and restart the script to wait for the next one, but it's a start.
Expect has a 60 second timeout, hence the "goto top", so don't worry about busy loop hogging CPU.