各CHANNEL_EXECUTEイベントのトリガーExecuteApplication呼び出しを知りたいと思います。 Managed ESLのExecuteAsyncメソッドには、これをサポートするパラメータはありません。署名は次のとおりESLから実行されるアプリケーションのアプリケーションUUIDを設定する方法
public ESLevent ExecuteAsync(string app, string arg, string uuid)
アプリはこのExecuteAsync FreeSwitchで開始されるアプリケーションの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)