나는 별표에 내 extensions.conf에서 다음을 수행 할 :기능 - 별표
- 읽기 사용자가 입력 한 숫자에서. - 쉽게
- 그 번호를 wav 파일을 반환하는 스크립트에 입력하십시오.
- 이 wav 파일이 재생됩니다.
나는 system
명령을 알고 있지만 값을 반환하는 방법을 찾아 내지 못했습니다.
,
감사합니다,
스리 람.
나는 별표에 내 extensions.conf에서 다음을 수행 할 :기능 - 별표
나는 system
명령을 알고 있지만 값을 반환하는 방법을 찾아 내지 못했습니다.
,
감사합니다,
스리 람.
프로그램/스크립트에서 값을 파일에 쓰게 한 다음 별표 (예 : ReadFile
) 내의 함수를 사용하여 값을 얻을 수 있습니다. 스크립트 내에서
:이은과 같이 수행 할 수 있습니다
echo -n ${value} > ${fileName}
별표 내에서 :
exten => 0,n,ReadFile(ValueReadFromFile=${fileName},${MAX_FILE_CHAR})
: ${MAX_FILE_CHAR}
는 최대이다. 파일에서 읽어야하는 문자 ${fileName}
. 읽으려는 값은 ValueReadFromFile
에 저장됩니다.
그런 경우에는 Asterisk AGI을 사용합니다. 아이디어는 웹 서버의 CGI 스크립트와 유사합니다. 다양한 언어를 사용할 수 있지만, 파이썬에는 pyst: Python for Asterisk 라이브러리가 사용됩니다. 이러한 AGI 스크립트/프로그램은 채널 변수를 읽거나 설정할 수 있으며이 방법은 Asterisk 다이얼 플랜과 통신합니다. pyst agilib
와 같은 코드의
예 :
wav_to_play = 'other.wav'
user_nr = agilib.get_variable('user_entered_number')
if not user_nr:
wav_to_play = 'nothing.wav'
elif user_nr.endswith('0'):
wav_to_play = 'zero.wav'
# ...
agilib.set_variable('wav_selected', wav_to_play)
wav_selector.agi
이러한 코드를 저장 한 후 (당신이 libs와 등, 일반 파이썬 헤더를 추가해야합니다) 당신이 좋아하는 dialplan을에서 사용할 수 있습니다 :
exten => s,n,Set(user_entered_number=5)
exten => s,n,AGI(wav_selector.agi)
exten => s,n,Background((${wav_selected})