Phone Number Track and Dial

Jim Ya
Jan 24, 2021

--

某天在網路上發現 Track Phone Number Location Using Python 的教學影片,覺得這太酷了,於是在閒暇之於就瞭解了一下這個專案。

使用了 Google’s libphonenumber library,有 Python 的 API(https://github.com/daviddrysdale/python-phonenumbers),套件先給他裝起來 pip install phonenumbers。

詳細的功能可再流覽 GitHub 內容,這邊只做幾個我覺得有用的功能:

1. Parse phone number

會返回2個值,一為 Country Code,在台灣就是886。另外就是電話號碼(National Number)。

2. Valid phone number

這邊的驗證只是對號碼的長度及格式作驗證,並非對這個號碼是否存在進行驗證,這令我想到有時候會接到一些莫名的電話,接起來後又就斷了,或許可以利用「程式撥號」來做實質的驗證。後面再來補充 Twilio

3. Phone number carrier

carrier 返回的是「電信業者」,別以為是號碼持有人哦~~

4. Geocoder

Geo- 是地理資訊的意思,市話才能明確知道國家的地區,手機號碼都是返回 Taiwan。

註:範例中的手機號碼已經沒有使用了~~

Twilio

首先上官網註冊:Twilio

帳戶驗證的部份有透過「簡訊」及「電話」2種方式收驗證碼,因為我個人收不到簡訊…這裡建議使用電話方式比較快。接到電話後需要按「3」,接著才開始唸驗證碼,驗證碼共六碼,會讀3次,建議拿紙筆抄一下。

帳戶成功啟用後,會轉跳到個人帳戶的DashBoard

先點選取得測試號碼,因為是測試的,所以號碼是隨機給的。

是你的 ACCOUNT SID;

是你的AUTH TOKEN,這兩個等等都會用到。

到這邊可以先把 code 準備好,Twilio 也提供了 SDK 讓開發者可以快速使用

account_sid 及 auth_token 兩個參數也可直接 key 上,或依官方的 SDK 使用環境變數的方式來設定,直接 key 上就要注意後續作品分享等等,千萬不要把這兩個變數赤祼祼的公開了。

在 client.calls.create 的參數設定中,將 to 設定成要撥打的電話(就是要打給誰),而 from_ 就是在前面步驟中取得的測試號碼,記得這裡都是用「country code」 + 「national number」,若你到這邊突然失憶,不曉得這2個是什麼東西,請往前面 1. Parse phone number 複習。以台灣來說,設定上就會是 +886…,from_ 的部分直接把 Dashboard 上的號碼複製貼上就好。

④:點選左邊 side bar 上的三個點,找到「Phone Number」進入號碼管理的頁面

點選列出來的號碼進入該組號碼的設定頁面

往下拉找到「Voice & Fax」,在這裡就會看到 url 參數,是使用 webhook 方式,最後把 url 複製貼到前面的 code 中,就可以進行測試啦(HTTP POST/GET 這部分不影響初步測試,可不更改)

Twilio Test

上述 code 實作都是使用 Jupyter Notebook,你也可以寫成 Script。

測試撥號成功後,對於平常接到的不明電話等,其實就不難理解,至於接起來就斷掉的設定,相信也是可以實現的,phone call 的內容是透過 TwiML,是一個 XML 文件,所以要設定自已的 phone call 內容,會需要發佈一個可訪問的 url,可參考官方文件,後續有實作也會再補充^^

--

--

No responses yet