알렉산더 단말기 어댑터에 연결하여 CTI를 구축하려면

5218 단어 PythonFileMakertech

개시하다


이 글은 Qita의뉴스.를 다시 썼다.새로운 지식을 조금 추가하였다.
CTI는 Computer Telephony Integration의 약칭으로 컴퓨터와 전화를 통합하는 기술이다.전화를 받은 후 컴퓨터로 상대방의 전화번호를 얻고 관련 고객 정보를 표시한다.파이톤을 사용하여 알렉산더 단말기 어댑터에서 전화번호를 가져와 FileMaker에 전달하는 절차를 설명합니다.당사는 DB에서만 FileMaker를 사용하기 때문에 이 글의 내용을 통용할 수 있습니다.

작업 환경


아래의 환경에서 운행하고 있다.
Windows 10 pro
Python 3.6
프로그램 자체는 다른 운영체제에서도 실행할 수 있지만 TA용 드라이버가 없으면 힘들다.

CTI 프로그램


import datetime
import webbrowser
import serial

# ターミナルアダプタ(ALEXONシリーズ)のシリアルポートを開く
with serial.Serial('COM3', 9600) as ser:

    # 初回だけ電話番号を取得できるようになるおまじないをする(謎のATコマンド)
    ser.write(b'ATG55=3ATG56=0\r')

    # 実行結果を取得(2回)
    result = ser.readline()
    print(result.decode())
    result = ser.readline()
    print(result.decode())

    while True:
        # 改行まで読み込み
        l_bin = ser.readline()
        line = l_bin.decode()
        # 電話番号は4カラム目
        number = line.split()[3]
        # FMPプロトコルでFileMakerを呼び出す
        url = 'fmp://{ユーザーID}:{パスワード}@{FMSのホスト名orIPアドレス}/{ファイル名}?script={スクリプト名}&param=' + number
        webbrowser.open(url)
        # ログ出力
        dt = datetime.datetime.today()
        log = dt.strftime("%Y-%m-%d %H:%M:%S") + ' ' + line.rstrip()
        print(log)

설치 모듈


pip install pyserial

프로그램 설명


우선 다음과 같은 수수께끼 같은 AT 지령을 보냈다.
AT G55=3
AT G56=0
알렉산더의 TA는 기본적으로 전화번호를 출력하지 않지만 AT 명령을 실행하면 출력한다.나는 설명서를 숙독했지만 아무 데도 없었다.
이후 직렬통신을 통해 취득한 내용만 분석해 전화번호 부분을 꺼내 FileMaker로 보냈다.만약 상대방이 모뎀이나 TA라면 이렇게 짧은 코드로 CTI를 실현할 수 있다.
실행 후에도 동작하지 않으면 장치 관리자에서 TA의 포트가 COM3인지 확인하십시오.

좋은 웹페이지 즐겨찾기