Last active 1562019876

Asterisk 1.0.0.1 context

1001.conf Raw
1[1001]
2exten => _X.,1,Set(CALLERID(name)=1.0.0.1)
3exten => _X.,n,Answer
4exten => _X.,n,Wait(1)
5exten => _X.,n,Playback(1001-recordtype) ; "Enter record type on your phone keypad, followed by the hash key. Press 1 to go to next character"
6exten => _X.,n,Read(recordtype,,,si,)
7exten => _X.,n,Playback(1001-domain) ; "Enter domain name to retrieve record, followed by the hash key"
8exten => _X.,n,Read(domain,,,si,)
9exten => _X.,n,Set(RECORD="${SHELL(/usr/bin/1001.py "${recordtype}")}")
10exten => _X.,n,Set(ADDR="${SHELL(/usr/bin/1001.py "${domain}")}")
11exten => _X.,n,SayPhonetic("${ADDR}")
12exten => _X.,n,Playback(1001-result) ; "Result"
13exten => _X.,n,SayPhonetic("${SHELL(/usr/bin/dig +short "${ADDR}" "${RECORD}" @1.0.0.1 | tr ':' 'k')}")
14exten => _X.,n,Wait(1)
15exten => _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"
16exten => _X.,n,Wait(1)
17exten => _X.,n,Hangup()
1001.py Raw
1#!/usr/bin/env python
2# please submit complaints about this code to /dev/null
3from sys import argv,stdout
4
5out = ""
6newchar = False
7for char in argv[1]:
8 if char == "*":
9 out += "."
10 continue
11 if char == "1":
12 newchar = True
13 continue
14 if char == "2":
15 l = "abc"
16 if char == "3":
17 l = "def"
18 if char == "4":
19 l = "ghi"
20 if char == "5":
21 l = "jkl"
22 if char == "6":
23 l = "mno"
24 if char == "7":
25 l = "pqrs"
26 if char == "8":
27 l = "tuv"
28 if char == "9":
29 l = "wxyz"
30 if not out or newchar or out[-1] not in l:
31 out += l[0]
32 else:
33 try:
34 out = out[:-1] + l[l.index(out[-1])+1]
35 except IndexError:
36 out = out[:-1] + l[0]
37 newchar = False
38 continue
39
40stdout.write(out)
41stdout.flush()
42