각 CHANNEL_EXECUTE 이벤트에 대한 트리거 ExecuteApplication 호출을 알고 싶습니다. Managed ESL의 ExecuteAsync 메서드에는이를 지원하는 매개 변수가 없습니다. 서명은 다음과 같습니다 응용 프로그램이 ExecuteAsync FreeSwitch으로 시작ESL에서 실행되는 응용 프로그램의 응용 프로그램 UUID를 설정하는 방법
public ESLevent ExecuteAsync(string app, string arg, string uuid)
응용 프로그램에 대한 UUID를 생성하고,이 이후의 모든 CHANNEL_EXECUTE 이벤트의 응용 프로그램 UUID 헤더 필드에 presen't됩니다. 문제는 ExecuteAsynch 호출이이 UUID를 반환하지 않는다는 것입니다. 이렇게하면 실행중인 응용 프로그램이 여러 개있는 경우 CHANNEL_EXECUTE 이벤트를 추적하는 것이 까다로울 수 있습니다. ExecuteAsynch 의해 반환 된 이벤트는 다음과 같은 형식을 갖는다 (단, UUID는 존재하지 않는다) Bgapi와
{
"Event-Name": "SOCKET_DATA",
"Content-Type": "command/reply",
"Reply-Text": "+OK"
}
예를 들어, API 호출을 실행은 관련 BACKGROUND_JOB위한 잡 UUID 헤더 필드의 값이 될 것이다 job_uuid 파라미터를 지원 이벤트.
public ESLevent Bgapi(string cmd, string arg, string job_uuid)
어떻게하면 재생과 같은 다이얼 플랜 응용 프로그램에서도 같은 결과를 얻을 수 있습니까?
가 관리되는 래퍼으로 숨겨져 어쩌면 나도 확인했지만, esl.c에서 esl_execute 기능 (느릅 나무 래퍼의 ExecuteAsync 방법으로 사용됩니다)이 기능을 지원하지 않는 것 중 하나
ESL_DECLARE(esl_status_t) esl_execute(esl_handle_t *handle, const char *app, const char *arg, const char *uuid)