Asterisk+050plusの着信でAGIによるサーバの遠隔操作をしたかった(未完)

・やりたかったこと
1.Asteriskに050plusを収容
2.収容した電話番号に対してスマホなどで発呼する。その際にサフィックスIPアドレスを入れる。
 例えばIPアドレスが「123.456.789.12」だった場合、
 「05012345678*123#456#789#12」といった形で入力する。(#は.(ドット)の代わりとして入力し、後ほどサーバ側で置換)
3.Asteriskは着信した際にAGI(https://www.voip-info.org/asterisk-agi/)でPythonプログラムを起動。
 その際、SIP-INVITEのToヘッダから取得した宛先電話番号をPythonプログラムに渡す。Pythonプログラムでは取得した番号からサフィックス部分を切り取り、加工する。
4.切り取った部分(IPアドレス)をIPTABLES(Linuxファイアウォール)にぶち込んで、そのIPからのVPN接続だけを許容するよう穴を開ける。
 
・実際
1.出来た。というか、まぁ昔やってるんですけど
engetu21.hatenablog.com

2.まぁこれは発呼するだけなので出来た。
3.AGIが動いて宛先電話番号も渡せた。ただし、サフィックスはついてなかった。
 どうやら050plusのサーバ側でサフィックス部分を除外してINVITEのToに電話番号を載せるらしい・・・。
4.3ができてないので、当然できない。
 
 
う〜む・・・。
Toヘッダにサフィックスも載っかる前提だったのでアテが外れた。
他のヘッダにもしかしたら載るかもと思ったけど、RFC3261(http://www.softfront.co.jp/tech/ietfdoc/trans/rfc3261j.txt)見てもなさそう・・・。
まぁそもそもSIPキャプチャしてもなさそうだったからダメなのでしょう。
 
 
もう一つの方法として考えたのは、着信後にIVR(Interactive Voice Response)の要領で発呼側でダイアルIPアドレスを入力させること。
入力終了後にサーバ側のAsteriskでAGIが起動、IPTABLESの設定を書き換える。
 
ただし、この方法は通話料がかかる。元々考えてた案は200OK前(というか180 Ringingの前)で完結するため、お金がかからない。
(ご存知の通り、呼び出し音がなっている間(180 Ringing)ではお金はかからない。発着が通信確定(着側が200OKを返却)してから通話料がかかるようになっている)
 
 
 
1動作で10円だけど、なるべくなら余計なお金は掛けたくないですなぁ。
と思ってたところ、ふと会社から渡されてるスマホは050の電話帯であり、かつNTT Communicationだったのを思い出しました。
そして050plusを提供しているOCNはNTT Communication。
もしや・・・?と調べてみると、やはり無料で通話できますね。
www.ntt.com
 
これを使えば通話料はかからない。
しかしなぁ、会社備品の私的利用はなぁ。う〜む・・・