[twilio] Twilio에서 수신 메시지를 녹음 해 봅니다 (Twilio Post 용 서버)

11120 단어 twilioPHP

전제 조건



공개 서버 환경


  • (참고) Amazon Linux 환경 구축
  • 키 쌍 만들기(신규): ぃ tp // 이 m / tsh / ms / 59303d9506 또는 7d13f744
  • 인스턴스 만들기(Public): ぃ tp // 이 m / tsh / ms / 굳이 8f1f0d706237327c5


  • 웹 서버 + PHP 환경


  • Twilio Post 용 서버 환경 구축 (AmazonLinux + nginx + php-fpm) :

  • 0. 사전 준비



    파일 보관 장소 만들기



    변수 설정
    DIR_HTML='/usr/share/nginx/html'
    DIR_TWIML="${DIR_HTML}/sysadm/xml"
    DIR_PHP_SCRIPT="${DIR_HTML}/php"
    URL_PHP_SCRIPT=$(echo ${DIR_PHP_SCRIPT} | sed "s|${DIR_HTML}||" )
    

    명령
    sudo mkdir -p ${DIR_TWIML} ${DIR_PHP_SCRIPT} \
      && ls ${DIR_TWIML} ${DIR_PHP_SCRIPT}
    

    1. 전화 녹음 앱 만들기



    서버에 전화 수신 앱을 만듭니다.

    1.1. Twilio의 요청을 처리하는 스크립트 작성



    변수 설정
    FILE_PHP_SCRIPT='handleRecording.php'
    MSG_THANKYOU='ご連絡ありがとうございました。'
    

    변수 확인
    cat << ETX
    
      FILE_PHP_SCRIPT: ${FILE_PHP_SCRIPT}
      MSG_THANKYOU: ${MSG_THANKYOU}
    
    ETX
    

    명령 (일본어의 경우)
    cat << EOF > ~/${FILE_PHP_SCRIPT}
    <?php
    echo "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n";
    echo "<Response><Say language=\"ja-jp\">${MSG_THANKYOU}</Say></Response>";
    EOF
    

    1.2. 웹 서버의 공개 문서 디렉토리에 스크립트 배치



    명령
    sudo cp ~/${FILE_PHP_SCRIPT} ${DIR_PHP_SCRIPT}/ \
      && cat ${DIR_PHP_SCRIPT}/${FILE_PHP_SCRIPT}
    

    /usr/share/nginx/html/php/handleRecording.php
    <?php
    echo "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n";
    echo "<Response><Say language=\"ja-jp\">ご連絡ありがとうございました。</Say></Response>";
    

    1.3. 스크립트에 대한 액세스 확인



    브라우저에서 http:///php/handleRecording.php로 이동하여 "연락해 주셔서 감사합니다."가 표시되면 OK입니다.

    2. TwilioML 파일 만들기



    2.1. TwilioML 파일 만들기



    변수 설정
    FILE_TWIML='voicemail_record.xml'
    MSG_SAY='ビープおんのあとに、20秒以内でメッセージをおねがいします。終了したらシャープボタンを押してください。'
    MSG_ERROR="I did not receive a recording. Goodbye."
    MAX_LENGTH_RECORD='20'
    

    변수 확인
    cat << ETX
    
      URL_PHP_SCRIPT:    ${URL_PHP_SCRIPT}
      FILE_TWIML:    ${FILE_TWIML}
      MSG_SAY:           ${MSG_SAY}
      MSG_ERROR:         ${MSG_ERROR}
      FILE_PHP_SCRIPT:   ${FILE_PHP_SCRIPT}
      MAX_LENGTH_RECORD: ${MAX_LENGTH_RECORD}
    
    ETX
    

    명령 (일본어 버전)
    cat << EOF > ~/${FILE_TWIML}
    <?xml version="1.0" encoding="UTF-8"?>
    <Response>
        <Say language="ja-jp">${MSG_SAY}</Say>
        <Record
            action="/php/handleRecording.php"
            method="GET"
            maxLength="20"
            finishOnKey="#"
        />
        <Say>${MSG_ERROR}</Say>
    </Response>
    EOF
    

    명령
    xmllint ~/${FILE_TWIML} -noout
    

    2.2. 웹 서버의 공개 문서 디렉토리에 TwilioML 파일 배치



    TwilioML을 배치 장소는, GET로 취득할 수 있는 환경이면 좋기 때문에 S3상에서도 괜찮습니다만, 이번은 상기의 공개 Web 서버상에 배치합니다.

    명령
    sudo cp ~/${FILE_TWIML} ${DIR_TWIML}/ \
      && cat ${DIR_TWIML}/${FILE_TWIML}
    

    /usr/share/nginx/html/sysadm/xml/complex_gather.xml
    <?xml version="1.0" encoding="UTF-8"?>
    <Response>
        <Say language="ja-jp">ビープおんのあとに、20秒以内でメッセージをおねがいします。終了したらシャープボタンを押してください。</Say>
        <Record
            action="/php/handleRecording.php"
            method="GET"
            maxLength="20"
            finishOnKey="#"
        />
        <Say>I did not receive a recording. Goodbye.</Say>
    </Response>
    

    2.3. TwilioML 파일에 대한 액세스 확인



    브라우저에서 http:///sysadm/xml/voicemail_record.xml로 이동하여 XML이 표시되면 OK입니다.

    3. Twilio 설정 변경


  • 로그인: h tp : ///와 ぃぃ오.ぢーぇb. 이 m
  • 화면: 'Voice, SMS & MMS' > '전화 번호: ' htps : // jp. 그리고 오. 코 m / 우세 r / 아코 톤 t / ぉ 이세 - sms - ms / p
  • 전화 번호 링크를 클릭합니다.
  • 팝업에서 음성 통화 탭을 선택합니다.
  • 요청 URL에 TwiML(XML 파일) URL을 붙여넣습니다.
  • 예: http://username:password@ /sysadm/xml/voicemail_record.xml
  • username:password는 기본 인증 사용자 이름(예: sysadm)과 암호(예: #userPass123)를 설명합니다.

  • URL을 붙여 넣은 열의 오른쪽 드롭 다운에서 'HTTP GET'을 선택하십시오.



  • 저장 버튼을 클릭합니다.

  • 4. 전화 앱의 동작 확인



  • Twilio에서 할당된 전화 번호로 전화합니다.
  • voicemail_record.xml에 설명된 메시지가 흐릅니다.


  • 메시지를 녹음합니다.
  • 잠시 기다리거나 # 키를 누릅니다.

  • handleRecording.php 에 기술한 메세지가 흘러, 전화가 끊어집니다.

  • 완료

    좋은 웹페이지 즐겨찾기