ブログを検索

2022/11/11

[ルータ]NVR510導入

NVR510 というヤマハのルータを導入しました。

結線して設定を進めていくうちに SIPサーバの機能設定が見つからないことに気付きました。
SIPサーバ機能くらいはついているとばかり思ってたんですが機能が無いんですね。SIPクライアント機能だけしか無い。
着信したら相手の電話番号や登録済みの名前を PCに表示したかったのですが残念なことになりました。

マニュアルをめくりながら代替案を考えていると使えそうな機能がありました。
一部を抜粋すると「3.11.1 Lua スクリプト
本製品で Lua スクリプトを実行できます。Lua スクリプトにヤマハルーター専用 API を埋め込むことで、本製品の状態に応じ、本製品の設定変更やアクションをプログラミングできるようになります。」

とのこと
着信があったら指定URLの phpスクリプトを(GETで)起動して電話番号を検索させるというLuaスクリプトなんですが Lua という言語は初めてで書くのに苦戦しました。
苦戦しすぎて説明するのも面倒なので書いたものをそのまま載せます
以上

ptn = string.regexp("SIP Call from (.*)")
req_tbl = {
  url = "",
  method = "GET",
  auth_type = "none",
}
-- SYSLOG (info, debug, notice)
log_level = "info"
------------------------------------------------------------
local rtn, str
local res_tbl
while (true) do
  rtn = ""
  str = ""
  req_tbl.url = "https://PATH_TO_URL/tel_search.php"
  rtn, str = rt.syslogwatch(ptn)
  req_tbl.post_text = ""
  if rtn > 0 then
    aaaa, bbbb = string.find(str[1] , "disconnected" , 1 , true)
    if aaaa == nil then
      log_text = string.format("1=%s" , str[1])
      rt.syslog(log_level, log_text)
      str[1] = string.gsub(str[1] , " " , "_")
      str[1] = string.gsub(str[1] , "/" , "_")
      str[1] = string.gsub(str[1] , ":" , "_")
      req_tbl.url = req_tbl.url .. "?text=" .. str[1]
      -- 
      res_tbl = rt.httprequest(req_tbl)
      if (res_tbl.rtn1) and (res_tbl.code) and (res_tbl.code == 200) then
        --
        rt.syslog(log_level, "[Lua] success to send message.")
        rt.syslog(log_level, req_tbl.url)
      else
        --
        rt.syslog(log_level, "[Lua] failed to send message.")
      end
      req_tbl.post_text = ""
    end
  end
end


0 件のコメント:

コメントを投稿

MySQL で SELECT into outfile 出来なくてハマった件

 Windows上の MySQL で SELECT into outfile で CSVファイルをエクスポートしようとしてハマったので残しておく 環境 Windows10 Pro バージョン 1809 MySQL 8.4.0 という環境で SELECT * FROM table1...