S Smith revised this gist . Go to revision
1 file changed, 1 insertion
1001.py
| @@ -1,4 +1,5 @@ | |||
| 1 | 1 | #!/usr/bin/env python | |
| 2 | + | # please submit complaints about this code to /dev/null | |
| 2 | 3 | from sys import argv,stdout | |
| 3 | 4 | ||
| 4 | 5 | out = "" | |
S Smith revised this gist . Go to revision
1 file changed, 4 insertions, 4 deletions
1001.conf
| @@ -2,16 +2,16 @@ | |||
| 2 | 2 | exten => _X.,1,Set(CALLERID(name)=1.0.0.1) | |
| 3 | 3 | exten => _X.,n,Answer | |
| 4 | 4 | exten => _X.,n,Wait(1) | |
| 5 | - | exten => _X.,n,AGI(googletts.agi,"Enter record type on your phone keypad, followed by the hash key. Press 1 to go to next character",en) | |
| 5 | + | exten => _X.,n,Playback(1001-recordtype) ; "Enter record type on your phone keypad, followed by the hash key. Press 1 to go to next character" | |
| 6 | 6 | exten => _X.,n,Read(recordtype,,,si,) | |
| 7 | - | exten => _X.,n,AGI(googletts.agi,"Enter domain name to retrieve record, followed by the hash key",en) | |
| 7 | + | exten => _X.,n,Playback(1001-domain) ; "Enter domain name to retrieve record, followed by the hash key" | |
| 8 | 8 | exten => _X.,n,Read(domain,,,si,) | |
| 9 | 9 | exten => _X.,n,Set(RECORD="${SHELL(/usr/bin/1001.py "${recordtype}")}") | |
| 10 | 10 | exten => _X.,n,Set(ADDR="${SHELL(/usr/bin/1001.py "${domain}")}") | |
| 11 | 11 | exten => _X.,n,SayPhonetic("${ADDR}") | |
| 12 | - | exten => _X.,n,AGI(googletts.agi,"Result",en) | |
| 12 | + | exten => _X.,n,Playback(1001-result) ; "Result" | |
| 13 | 13 | exten => _X.,n,SayPhonetic("${SHELL(/usr/bin/dig +short "${ADDR}" "${RECORD}" @1.0.0.1 | tr ':' 'k')}") | |
| 14 | 14 | exten => _X.,n,Wait(1) | |
| 15 | - | exten => _X.,n,AGI(googletts.agi,"1.1.1.1 is a partnership between Cloudflare and APNIC but don't ask them for support with this phone number",en) | |
| 15 | + | exten => _X.,n,Playback(1001-partnership) ; "1.1.1.1 is a partnership between Cloudflare and APNIC but don't ask them for support with this phone number" | |
| 16 | 16 | exten => _X.,n,Wait(1) | |
| 17 | 17 | exten => _X.,n,Hangup() | |
S Smith revised this gist . Go to revision
2 files changed, 57 insertions
1001.conf(file created)
| @@ -0,0 +1,17 @@ | |||
| 1 | + | [1001] | |
| 2 | + | exten => _X.,1,Set(CALLERID(name)=1.0.0.1) | |
| 3 | + | exten => _X.,n,Answer | |
| 4 | + | exten => _X.,n,Wait(1) | |
| 5 | + | exten => _X.,n,AGI(googletts.agi,"Enter record type on your phone keypad, followed by the hash key. Press 1 to go to next character",en) | |
| 6 | + | exten => _X.,n,Read(recordtype,,,si,) | |
| 7 | + | exten => _X.,n,AGI(googletts.agi,"Enter domain name to retrieve record, followed by the hash key",en) | |
| 8 | + | exten => _X.,n,Read(domain,,,si,) | |
| 9 | + | exten => _X.,n,Set(RECORD="${SHELL(/usr/bin/1001.py "${recordtype}")}") | |
| 10 | + | exten => _X.,n,Set(ADDR="${SHELL(/usr/bin/1001.py "${domain}")}") | |
| 11 | + | exten => _X.,n,SayPhonetic("${ADDR}") | |
| 12 | + | exten => _X.,n,AGI(googletts.agi,"Result",en) | |
| 13 | + | exten => _X.,n,SayPhonetic("${SHELL(/usr/bin/dig +short "${ADDR}" "${RECORD}" @1.0.0.1 | tr ':' 'k')}") | |
| 14 | + | exten => _X.,n,Wait(1) | |
| 15 | + | exten => _X.,n,AGI(googletts.agi,"1.1.1.1 is a partnership between Cloudflare and APNIC but don't ask them for support with this phone number",en) | |
| 16 | + | exten => _X.,n,Wait(1) | |
| 17 | + | exten => _X.,n,Hangup() | |
1001.py(file created)
| @@ -0,0 +1,40 @@ | |||
| 1 | + | #!/usr/bin/env python | |
| 2 | + | from sys import argv,stdout | |
| 3 | + | ||
| 4 | + | out = "" | |
| 5 | + | newchar = False | |
| 6 | + | for char in argv[1]: | |
| 7 | + | if char == "*": | |
| 8 | + | out += "." | |
| 9 | + | continue | |
| 10 | + | if char == "1": | |
| 11 | + | newchar = True | |
| 12 | + | continue | |
| 13 | + | if char == "2": | |
| 14 | + | l = "abc" | |
| 15 | + | if char == "3": | |
| 16 | + | l = "def" | |
| 17 | + | if char == "4": | |
| 18 | + | l = "ghi" | |
| 19 | + | if char == "5": | |
| 20 | + | l = "jkl" | |
| 21 | + | if char == "6": | |
| 22 | + | l = "mno" | |
| 23 | + | if char == "7": | |
| 24 | + | l = "pqrs" | |
| 25 | + | if char == "8": | |
| 26 | + | l = "tuv" | |
| 27 | + | if char == "9": | |
| 28 | + | l = "wxyz" | |
| 29 | + | if not out or newchar or out[-1] not in l: | |
| 30 | + | out += l[0] | |
| 31 | + | else: | |
| 32 | + | try: | |
| 33 | + | out = out[:-1] + l[l.index(out[-1])+1] | |
| 34 | + | except IndexError: | |
| 35 | + | out = out[:-1] + l[0] | |
| 36 | + | newchar = False | |
| 37 | + | continue | |
| 38 | + | ||
| 39 | + | stdout.write(out) | |
| 40 | + | stdout.flush() | |