귀하의 증상으로 들었을 때, 특히 별표 문제 인 것처럼 들리지는 않지만 귀하의 스크립트에 문제가 될 수 있습니다. 여기가 AGI 스크립트 자체의 뒤에서 무슨 일이 일어나고 있는지에 대한 지식 없이도 응용 프로그램을 디버깅에 대한 갈 것입니다 방법에 대한 팁 수 ... 첫째
이야, AGI Script script.php completed, returning 4
는 스크립트가 깨끗한 종료 상태 코드없이 종료되는 것을 의미 . returning 0
은 귀하가보고 싶은 것입니다. 스크립트를 실행 한 다음 $?
변수를 사용하여 상태 코드를 확인하면 bash 프롬프트에서 마지막 종료 상태 코드를 볼 수 있습니다. 좋아요 :
[[email protected] ~]$ ./script.php
[[email protected] ~]$ echo $?
0
그런데 별표가 스크립트에 무슨 일이 일어 났는지 알려줍니다. 0이 아닌 것은 "뭔가 잘못되었습니다"입니다. 일반적으로 원하는대로 사용자 정의 할 수 있으므로 특히 확실하지 않습니다. 그런 다음 스크립트를 실행
host*CLI> agi set debug on
을, 당신이 당신의 PHP 스크립트가 오류를 뱉어 것을 찾을 수 있는지 : 당신이 원하는 것
한가지과 같이 AGI의 디버깅을합니다.
또 다른 권장 사항은 PHP가 syslog에 로깅되어 있는지 확인하여/var/log/messages에서 오류를 찾을 수 있도록하는 것입니다. 당신은 당신의 /etc/php.ini
이 줄을 설정하여이 작업을 수행 할 수 있습니다 :
error_log = syslog
마지막으로, 내가 개발 상자를 사용하여 제안, 오류를 복제하려고, 자신에 대한 호출의 무리를 기원하고,을 구축 스크립트를 create a bunch of "call files"으로 보내주십시오.여기
당신이 시작하는 전화 파일입니다 :
당신이 파일을 만든
Channel: LOCAL/[email protected]
MaxRetries: 2
RetryTime: 60
WaitTime: 30
Application: Wait
Data: 30
, 이동이 중요하다 (/var/spool/asterisk/outgoing
로 이동 별표 (*)가 파일을 선택할 수 있기 때문에, 당신은, 포인터 이동을 원하는 너무 빨리 당신이 그 디렉토리에 먼저 쓰고 있다면).
또한 CLI에서 확장 통화를 발신 할 수 있습니다
또한 흥미 데이터를 공급하기 위해 같은 CallerID: John Doe <8005551212>
로 호출 파일에 다른 옵션을 사용할 수 있습니다 host*CLI> channel originate LOCAL/[email protected] application Wait 5
당신의 AGI 응용 프로그램을 사용하여 문제를 복제하는 테스트를 만듭니다.
자세한 해줘서 고맙습니다. 그러나이 문제는 스크립트와 관련이 있다고 생각하지 않습니다. 전화의 3 % 정도만 발생하기 때문입니다. 나는 이미 직접 스크립트를 실행하고, agi 디버그를 활성화하고, PHP 오류 로그를 파일에 적용하려고 시도했다. 오늘은이 토론을 발견했다 : http://lists.digium.com/pipermail/asterisk-users/2011-September /266522.html 나는 같은 문제에 직면하고 있다고 생각한다. AGI() 대신 System()을 사용하려고합니다. 결과를 알려 드리겠습니다. – k4h
실행중인 버전은 무엇입니까?/다른 버전을 사용해 보셨습니까? – dougBTV
또한 버전 1.8.7에 관련된 버그 보고서/수정을 확인하십시오 - https://issues.asterisk.org/jira/browse/ASTERISK-18811 – dougBTV