>백엔드 개발 >Golang >GoESL 대 임시: 통화가 FreeSWITCH의 특정 지점에서 시작되지 않습니다.

GoESL 대 임시: 통화가 FreeSWITCH의 특정 지점에서 시작되지 않습니다.

WBOY
WBOY앞으로
2024-02-06 09:21:04973검색

GoESL 与 Temporal:呼叫并非源自 FreeSWITCH 中的某个点

질문 내용

GoESL(https://www.php.cn/link/d9b64cee05c46d31b10b9869a3198a6d)을 Temporal과 통합하여 FreeSWITCH를 통해 자동 전화를 걸고 있습니다. 이 설정에서는 1,000개의 동시 채널과 50개의 CPS(초당 호출)가 허용됩니다. 전화를 걸 때마다 활동을 통해 통화를 시작하는 임시 워크플로가 시작됩니다.

96번의 성공적인 호출(변수 번호) 후에 FreeSWITCH는 더 이상 호출을 처리하지 않습니다. CLI에는 로그가 없으며 이벤트 소켓 계층에는 추가 시도를 나타내는 이벤트가 없습니다. 그러나 임시 작업자를 중지하면 이전에 "멈춘" 호출이 FreeSWITCH CLI에 나타나 GoESL 클라이언트에 의해 대기열에 추가되었음을 나타냅니다. 작업자가 기본 워크플로를 계속 실행하면서 중단되지 않았음을 확인할 수 있습니다.

다음은 관련 코드 조각입니다:

리드 처리 루프:

으아아아

전화 접속 안내 논리:

으아아아

통화 워크플로 기능:

으아아아

통화 시작 활동을 순서대로 실행합니다.

으아아아

GoESL 또는 Temporal을 사용하면서 통화가 대기열에 있고 특정 지점 이후에는 실행되지 않는 유사한 문제를 겪은 사람이 있습니까? 이 상황을 디버깅하는 방법이나 임시 작업자 스레드를 종료하면 대기 중인 호출 처리가 트리거될 수 있는 이유에 대한 제안이 있습니까?

내가 시도한 것:

  • 제한 사항을 반드시 준수하세요.
  • FreeSWITCH CLI를 사용하여 CDR을 디버깅하고 검사하세요.
  • FreeSWITCH 로그를 확인하여 이상 현상을 찾아보세요.
  • FreeSWITCH 설정에서 GoESL 이벤트를 기록하려고 시도했지만 파일에 기록된 로그가 없습니다.
  • 수정 workflow.Sleep 기간은 몇 밀리초에서 5 - 10초로 수정되어 문제를 일으키는 네트워크 대기 시간이 아닌지 확인했습니다.
  • 워크플로를 종료하기 전에 내 코드나 로그에 오류가 발생하지 않는지 확인했습니다.
  • GoESL과 FreeSWITCH 간의 통신 문제가 아닌지 확인하기 위해 FreeSWITCH 인스턴스가 중지되었습니다. FreeSWITCH 인스턴스를 중지하면 로그에 통신 실패가 표시됩니다. 그렇지 않으면 로그가 수신되지 않습니다.
  • 연구: Google에서 이 기사를 찾았습니다(https://lists.freeswitch.org/pipermail/freeswitch-users/2019-May/131768.html). 이 기사는 우리가 겪었던 동일한 문제와 관련이 있는 것으로 보입니다. 해결책.

정답


GoESL 패키지(https://www.php.cn/link/d9b64cee05c46d31b10b9869a3198a6d)를 다른 GoESL 패키지(https://www.php.cn/)로 변경하기로 결정했습니다. link/ 8c8566b78ac2b99c542bef8c37cac179) 문제가 해결되었습니다. 초기 GoESL 패키지의 근본적인 문제인 것 같습니다.

앞으로 누군가가 같은 문제를 겪게 될 경우를 대비해 여기 Github 저장소(https://github.com/0x19/goesl/issues/40)에 문제를 제기했습니다.

위 내용은 GoESL 대 임시: 통화가 FreeSWITCH의 특정 지점에서 시작되지 않습니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 stackoverflow.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제