Python + モデムを利用してPBXの留守番電話をオンオフ

PBXの留守電自動オンオフ設定が、あまりにしょぼいので、単独内線へつないだモデムから内線コマンドをダイヤルして、留守番電話をオンオフしてみた

PBXが弄れないとちょっとハードル高め

  • PBX側に留守番電話をオンオフするデータが入れてある
  • PBXの単独収容(一般電話機をつなぐポート)へモデムを繋げられる

Python でなければならない理由はほとんどないんだけど、cuコマンド+スクリプトでもできるかも
モデムの認識などはコチラとと同じ

下記では、内線531で留守電オン、530で留守電オフしてます
import time import serial import sys def rusuSwitch(state):     modem = serial.Serial("/dev/ttyACM0"9600timeout=3)     try:         modem.write(b'ATH1\r'# オフフック         time.sleep(1.5)         if state:             modem.write(b'ATD531\r'# 留守電ON         else:             modem.write(b'ATD530\r'# 留守電OFF         time.sleep(0.5)         modem.write(b'ATH0\r'# オンフック     finally:         modem.close() def main():     if len(sys.argv) >= 2:         rusuSwitch(sys.argv[1] == 'on')     else:         print('ON # rusuden.py on\r')         print('OFF# rusuden.py off\r') if __name__ == '__main__':     main()

コメント