2
  • Genesys Platform SIP Server から通話の詳細を取得したいと考えています。

  • また、Genesys Platform にはPlatform SDK for .NET があります。

  • Anybod には、SIP サーバーからPlatform SDK for .NET [C#]を使用して通話の詳細を取得する方法を示す簡単なサンプル コードがありますか?

特記事項:

通話の詳細: 特に、特定の通話のAgentIdを取得したかった

Sip サーバーから : Sip サーバーが通話の詳細を取得するのに最適な候補であるかどうかはわかりません。他の提案/代替案を受け入れる

4

5 に答える 5

3

DN アクションを監視するクラスを作成できます。また、何をしなければならなかったかに応じて、特定の DN またはすべての DN を監視します。通話がすべてである場合、これが最善の方法です。

まず、TServerProtocol を定義する必要があります。次に、ホスト、ポート、およびクライアント情報を介して接続する必要があります。

    var endpoint = new Endpoint(host, port, config);
    //Endpoint backupEndpoint = new Endpoint("", 0, config);

    protocol = new TServerProtocol(endpoint)
    {
        ClientName = clientName
    };
    //Sync. way;
    protocol.Open();
    //Async way;
    protocol.BeginOpen();

これを行うには、常に非同期の方法を使用します。理由はわかりました:) SDKが提供するイベントで接続がいつ開いたかを検出できます。

    protocol.Opened += new EventHandler(OnProtocolOpened);
    protocol.Closed += new EventHandler(OnProtocolClosed);
    protocol.Received += new EventHandler(OnMessageReceived);
    protocol.Error += new EventHandler(OnProtocolError);

ここに OnMessageReceived イベントがあります。魔法が起こるこのイベント。すべての通話イベントと DN アクションを追跡できます。ジェネシスのサポートサイトに行くなら。SDK リファレンス マニュアルが見つかります。そのマニュアルには、参照と使用法に関する多くの情報があり、簡単に理解できます。したがって、あなたの場合、通話のagentidが必要です。したがって、これを行うには EventEstablished が必要です。これは受信イベントで使用できます。

    var message = ((MessageEventArgs)e).Message;

    // your event-handling code goes here
    switch (message.Id)
    {
        case EventEstablished.MessageId:
            var eventEstablished = message as EventEstablished;
            var AgentID = eventEstablished.AgentID;
            break;
     }

この使用法で多くのことができます。ダイヤルのように、着信または発信を保留しても、内部通話を検出し、genesys プラットフォームでは検出できないことを報告できます。

これが十分に明確であることを願っています。

于 2016-07-24T18:28:36.330 に答える
1

ルーティング戦略へのアクセス権があり、編集できる場合。ストラテジーにコードを追加して、必要な詳細を Web サーバー (たとえば) または DB に送信できます。私たちの戦略では、そのようなことをしています。ポスト ルーティング戦略としてルーティング ブロックが成功した後、RTargetPlaceSelected および RTargetAgentSelected の値が送信されます。

于 2016-07-19T10:18:16.817 に答える