별표:다이얼 플랜을 계속하기 전에 AGI 스크립트(bash)가 완료될 때까지 기다리지 마십시오.

StackOverflow https://stackoverflow.com/questions/19840520

  •  29-07-2022
  •  | 
  •  

문제

발신자의 위치를 ​​찾기 위해(국가 및 지역 코드를 일치시켜) 발신자 ID를 데이터베이스와 일치시키는 bash 스크립트를 실행하는 Asterisk 다이얼 플랜이 있습니다.데이터베이스가 상당히 크기 때문에(글로벌 규모) 완료하는 데 최대 15초가 걸립니다.

통화에 응답한 후 즉시 이 스크립트를 실행해야 하지만(통화가 끝나기 전에 사용자가 전화를 끊는 경우) 사용자가 스크립트 실행을 기다리지 않기를 바랍니다.반환 값은 이상적으로 전화 끊기 직전에 번호 계획 끝에서 처리되어야 합니다.

Q1:나는 찾았다 http://www.voip-info.org/wiki/view/Asterisk+AGI#Forkandcontinuedialplan 이는 Perl 스크립트와 관련된 내 문제를 다룹니다.Bash에서 동일한 작업을 어떻게 수행합니까?끝에 "&"를 추가하여 bash 스크립트를 백그라운드로 보낼 수 있다는 것을 알고 있지만 AGI 스크립트를 사용할 때 다이얼 플랜에서 이를 수행하는 방법을 모르겠습니다.

Q2:사용자가 전화를 끊기 전에/다이얼 플랜이 "0이 아닌 값으로 종료"된 경우에도 값을 어떻게 처리할 수 있습니까?

당신의 도움을 주셔서 감사합니다!

도움이 되었습니까?

해결책

fastagi 인터페이스를 사용하세요.또는 AMI 리스너로 UserEvent를 실행하세요.

AGI는 원하는 대로 작동하도록 설계되지 않았으므로 작동하지 않습니다.

물론 nohup 명령을 사용하여 불멸의 bash 스크립트를 얻을 수 있지만 실제로는 그렇지 않습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top