Last active 1562019876

Asterisk 1.0.0.1 context

S Smith revised this gist 1561687162. 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 1561686800. 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 1557808476. 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()
Newer Older