[twilio] Twilio에서 수신 메시지를 녹음 해 봅니다 (Twilio Post 용 서버)
전제 조건
공개 서버 환경
웹 서버 + PHP 환경
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 에 기술한 메세지가 흘러, 전화가 끊어집니다.
완료
Reference
이 문제에 관하여([twilio] Twilio에서 수신 메시지를 녹음 해 봅니다 (Twilio Post 용 서버)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/tcsh/items/a7933468a3bb59efb51d
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
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. 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://
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 에 기술한 메세지가 흘러, 전화가 끊어집니다.
완료
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
sudo cp ~/${FILE_TWIML} ${DIR_TWIML}/ \
&& cat ${DIR_TWIML}/${FILE_TWIML}
<?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>
3. Twilio 설정 변경
4. 전화 앱의 동작 확인
Twilio에서 할당된 전화 번호로 전화합니다.
메시지를 녹음합니다.
완료
Reference
이 문제에 관하여([twilio] Twilio에서 수신 메시지를 녹음 해 봅니다 (Twilio Post 용 서버)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/tcsh/items/a7933468a3bb59efb51d텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)