[mythtv] ; Switch to menu mode on "*" ; Pass all other digits as they are exten => key-num,1,GotoIf($["x${CMD}" != "x*"]?return) exten => key-num,n,Set(MODE=menu) exten => key-num,n,Set(CMD=none) exten => key-num,n(return),Return exten => key-menu,1,GotoIf($["x${CMD}" != "x*"]?translatekey) exten => key-menu,n,Set(MODE=num) exten => key-menu,n,Set(CMD=none) exten => key-menu,n,Return exten => key-menu,n(translatekey),GotoIf($["x${CMD}" != "x1"]?check2) exten => key-menu,n,Set(CMD=m) exten => key-menu,n,Return exten => key-menu,n(check2),GotoIf($["x${CMD}" != "x2"]?check3) exten => key-menu,n,Set(CMD=up) exten => key-menu,n,Return exten => key-menu,n(check3),GotoIf($["x${CMD}" != "x3"]?check4) exten => key-menu,n,Set(CMD=escape) exten => key-menu,n,Return exten => key-menu,n(check4),GotoIf($["x${CMD}" != "x4"]?check5) exten => key-menu,n,Set(CMD=left) exten => key-menu,n,Return exten => key-menu,n(check5),GotoIf($["x${CMD}" != "x5"]?check6) exten => key-menu,n,Set(CMD=down) exten => key-menu,n,Return exten => key-menu,n(check6),GotoIf($["x${CMD}" != "x6"]?check7) exten => key-menu,n,Set(CMD=right) exten => key-menu,n,Return exten => key-menu,n(check7),GotoIf($["x${CMD}" != "x7"]?check8) exten => key-menu,n,Set(CMD=escape) exten => key-menu,n,Return exten => key-menu,n(check8),GotoIf($["x${CMD}" != "x8"]?check9) exten => key-menu,n,Set(CMD=escape) exten => key-menu,n,Return exten => key-menu,n(check9),GotoIf($["x${CMD}" != "x9"]?check0) exten => key-menu,n,Set(CMD=escape) exten => key-menu,n,Return exten => key-menu,n(check0),GotoIf($["x${CMD}" != "x0"]?return) exten => key-menu,n,Set(CMD=escape) exten => key-menu,n(return),Return exten => key,1,GoSub(key-${MODE}|1) ; Do mode-specific processing exten => key,n,GotoIf($["x${CMD}" != "xnone"]?checkpound) exten => key,n,Goto(return) exten => key,n(checkpound),GotoIf($["x${CMD}" != "x"]?send) ; on "#", CMD will be empty exten => key,n,Set(CMD=enter) exten => key,n(send),System(printf \'key ${CMD}\\r\\nquit\\r\\n\' | nc 192.168.1.199 6546) exten => key,n(return),Return exten => s,1,Set(MODE=num) exten => s,n(loop),While(1) exten => s,n,Read(CMD||1) ; Read a digit from the phone exten => s,n,GoSub(key|1) ; Run the key extension to process the digit exten => s,n,EndWhile