Brian, I don't doubt that it should work that way... however, when running my script, here's what I get. Array ( ALL CONFIG VARIABLES PRINT HERE - I CAN SEND OFFLINE IF NEEDED ) ---------------- Invoking: log DEBUG Message Object ( [properties] => Array ( [Content-Type] => command/reply [Reply-Text] => OK log level DEBUG [7] ) [content] => ) Invoking: events DTMF Message Object ( [properties] => Array ( [Content-Type] => command/reply [Reply-Text] => OK event listener enabled plain ) [content] => ) DONE PROCESSING MESSAGES I get no Events at all with "events DTMF" When I use "event plain ALL" like in the example, I do get HEARTBEAT and other background events, but no DTMF events at all. I am thinking that I need to send some kind of command to get it "unstuck" or "out of park" or something so that that it starts listening for those tones. I get the same results with the 3CX softphone and the HT 488 SIP ATA. Bill