Node.js
twilio
TwiML

Node.jsとtwilioとwindows10で 国際電話


アカウント凍結で開発終了

20190531_191639.jpg


5月31日(金)

本日の目標

課題1)韓国、台湾、香港へダイヤルできるようにする。

課題2)dial.jsの処理時間を計測する。

課題3)dial.jsを別のファイルから読み込み、?分おきに実行できるようにする。


課題1 

香港の電話番号は固定も携帯も8桁。携帯に絞ると国番号で分岐が必要になるので、めんどくさいから固定、携帯の区別はしない。

結果)香港へダイヤルできた。

注意点)twilioの設定を確認。通話⇒地理による許可⇒Low-Risk香港にチェック

// 架電先 国+頭番号リスト(アジア圏)

const CallToHeadNumList = {

"台湾00": "+8869", //携帯

"韓国00": "+8210", //携帯

"香港00": "+852", //固定,携帯,IPなどall
}


19時56分

Twilio運営から英語で

どんな使い方をしているのか

説明しろとメールが。

急遽、英語の勉強することになりました。

Oh!my gosh!

こちらがアカウント停止中の実行結果です。

認証エラーが出ています。

log_account stop.jpg


課題2

・処理時間が出るようにしました。(定期実行させる時、時間間隔設定に使うため)

  こちらを参考にしました。

  https://blog.roundrop.jp/66/

  https://ameblo.jp/rasenbagel/entry-11558847169.html

(躓いた点)

関数名の頭に数字を使ったらエラーになりました

追加モジュールperf_hooksをインストールしました。

ミリ秒表示されるので、1000で割りました。

(問題点)

表示される処理時間がAPIを叩くまでの時間になっている。

STATUS CALL BACK の やり方を覚えないといけない。

//処理時間の測定(前処理)

const startTime = performance.now(); // 開始時間

//メイン処理
main();

function main(){
//処理内容記入
}

//処理時間の測定(後処理)
const endTime = performance.now(); // 終了時間
console.log('処理時間:'+(endTime - startTime)/1000+'秒'); // 秒表示する

log_account stop1.jpg


課題3

外部ファイルのfunctionを呼び出す方法はわかったが

jsファイルまるごと実行させる方法がわからないのであきらめて

main関数を cronで挟みました。

(参考サイト)

https://qiita.com/n0bisuke/items/66abf6ca1c12f495aa04

//定期実行タイマーセット

cron.schedule('*/10 * * * * *', () => { //10秒おきに実行

//処理時間の測定(前処理)
const startTime = performance.now(); // 開始時間

//メイン処理
main();

function main(){
//ダイヤル処理
}

//処理時間の測定(後処理)
const endTime = performance.now(); // 終了時間
console.log('処理時間:'+(endTime - startTime)/1000+'秒'); // 秒表示する

console.log('10秒ごとに実行')

});

実行中のビデオはこちら


5月30日(木)

ダイヤル処理無視して

あほみたいにループばかりするので、

同期処理するようにソースを書き直そう

一億ループさせるので

ダイヤル後にメモリ解放させましょう

本人の頭がパンクしてきた。

架電先、下8桁の生成に

乱数を使ってみる。

      // 架電先 下半身番号(8桁)を生成

let CallToBodyNum = String(Math.random()).slice(-8);

二万件の発信処理に

少なくとも5時間30分はかかるので

頭番号21種✖️1億回ループさせても

無事に終了できるわけがない。

架電先を乱数で指定し、ループ減らして

終了後に再度実行させよう


午後0時25分

Twilioの仕様により

海外のスマホへ発信できないことが判明

固定電話でやり直します

Screenshot_20190530-120726_Chrome.jpg


午後19時20分

twilio KDDI版

中華民国へ発信できないことが判明

geo_permission.jpg


午後9時54分

韓国と台湾へはダイヤルできた

折り返し確率、1/1024

・参考サイト

メモリ解放方法

http://blog.livedoor.jp/aki_mana/archives/2587785.html

nodeで同期処理例

https://qiita.com/rawHam/items/838eefc80bc35a90e49a

乱数

http://ysklog.net/java/4-15.html


5月29日(水)

Twilioで発信してみよう

エラーが出ました。

発信先21件✖️7570ループ目で。

Ineffective heap なんちゃらエラー

Wait入れて、発信キューが捌けるのを待った方がよいのでしょうか?

対策を考えます。

対策1:下記の呪文を入力



--max-old-space-size=8192



結果1

26000ループあたりで

Windows落ちる

log_cas3vA.jpg

+815035037584

+815035037587

とよた紡織株式会社 (ひらがな豊田)

toyota-bosyoku.com