2015-04-24 8 views
2
  • Я хочу, чтобы получить сведения о вызове от Genesys платформы SIP Server.Genesys Платформа: Получить сведения о вызове из Sip сервера

  • И платформа Genesys имеет Платформа SDK для .NET.

  • Anybod имеет простой код выборки который показывает , как получить сведения о вызове с помощью Platform SDK для .NET [C#] от SIP-сервера?

Дополнительные примечания:

Детали вызовов: особенно я хотел бы получить AgentId для данного вызова

и

От Sip сервера: I я не уверен, что Sip Server является лучшим кандидатом на . Поэтому открыты другие предложения/альтернативы

+0

Просьба предоставить дополнительную информацию - где вам нужно получить данные о звонке? Другая система, которая нуждается в этих данных, или вы хотите что-то разработать в самой платформе? –

+0

Хорошо спасибо за ваш интерес. Другая система нуждается в данных, но я могу использовать платформу для получения этих данных. –

+0

Какую информацию вы запрашиваете для SIP-сервера для вызова? то есть, что вы планируете использовать для идентификации звонка, о котором вы хотите получить информацию? У вас есть «ConnID»? – hynsey

ответ

1

Если у вас есть доступ к стратегии маршрутизации, вы можете ее отредактировать. Вы можете добавить код в стратегию, чтобы отправить информацию, необходимую вам на какой-либо веб-сервер (например) или в БД. Мы делаем такие вещи в нашей стратегии. После успешного создания блока маршрутизации в качестве стратегии постмаршрутизации отправляет значения RTargetPlaceSelected и RTargetAgentSelected.

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. Если вы заходите на сайт поддержки genesys. Вы найдете справочное руководство по SDK. На этом ручном тише легко понять, сколько информации о ссылках и использовании. Итак, в вашем случае вы хотите агента для вызова. Для этого вам понадобится 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 этого не делает.

Надеюсь, это достаточно ясно.